/* ---- shared: reset, utilities, editor, modal, chat ---- */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,p{margin:0}
ul{margin:0;padding:0;list-style:none}
.wrap{width:min(1240px,100% - 48px);margin-inline:auto}
@media (max-width:640px){.wrap{width:calc(100% - 40px)}}
.cp-section{position:relative}
.cp-section:not(.sec-hero){transform:translateY(12px);transition:transform .7s ease}
.cp-section.in,.cp-section.sec-hero{transform:none}
@media (prefers-reduced-motion:reduce){.cp-section{opacity:1;transform:none;transition:none}}
.cp-img{background-size:cover;background-position:center;background-color:var(--plate,#8a857c);position:relative;overflow:hidden}
.cp-form-done{display:grid;gap:6px;padding:20px 0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 24px;border:1px solid transparent;text-decoration:none;white-space:nowrap;transition:background .2s,color .2s,border-color .2s;line-height:1}
.js-status::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#b0483c;margin-right:9px;vertical-align:1px}
.js-status.is-open::before{background:#2f8f4e}
/* section hidden in edit mode */
.cp-section.is-hidden{display:none}
body.is-editing .cp-section.is-hidden{display:block;opacity:.35;outline:1px dashed currentColor}

/* ---- modal ---- */
.cp-modal{position:fixed;inset:0;z-index:900;display:grid;place-items:center;padding:20px;opacity:0;transition:opacity .2s}
.cp-modal.is-on{opacity:1}
.cp-modal-bg{position:absolute;inset:0;background:rgba(10,10,10,.55);backdrop-filter:blur(2px)}
.cp-modal-card{position:relative;width:min(460px,100%);background:var(--surface,#fff);color:var(--fg-surface,#111);padding:36px 32px;font-family:var(--font-body);max-height:90vh;overflow:auto}
.cp-modal-x{position:absolute;top:10px;right:12px;background:none;border:0;font-size:26px;line-height:1;opacity:.6}
.cp-modal-kicker{font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.6;margin-bottom:10px}
.cp-modal-title{font-family:var(--font-display);font-size:28px;line-height:1.15;font-weight:var(--display-weight,500);margin-bottom:8px}
.cp-modal-meta{font-size:14px;opacity:.75;margin-bottom:22px;line-height:1.5}
.cp-form{display:grid;gap:14px}
.cp-form label{display:grid;gap:6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;opacity:.9}
.cp-form input,.cp-form textarea,.cp-form select{width:100%;padding:12px 0;border:0;border-bottom:1px solid rgba(0,0,0,.25);background:transparent;font-size:16px;letter-spacing:0;text-transform:none;outline:none;border-radius:0}
.cp-form input:focus,.cp-form textarea:focus{border-bottom-color:var(--primary)}
.cp-form .btn{margin-top:8px;width:100%}
.cp-form-note{font-size:12px;opacity:.85;line-height:1.5;text-transform:none;letter-spacing:0}
.cp-modal .btn-primary{background:var(--primary);color:var(--on-primary)}
.cp-modal .btn-ghost{border-color:rgba(0,0,0,.2);background:transparent}
.cp-modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.cp-upgrade-list{display:grid;gap:8px;font-size:14px;margin-top:4px}
.cp-upgrade-list li{padding-left:16px;position:relative}
.cp-upgrade-list li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:1px;background:currentColor}
.cp-upgrade-list li:first-child{padding-left:0}.cp-upgrade-list li:first-child::before{display:none}
#cp-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:#111;color:#fff;padding:12px 18px;font-size:14px;z-index:1000;opacity:0;transition:.25s;pointer-events:none;font-family:var(--font-body)}
#cp-toast.is-on{opacity:1;transform:translate(-50%,0)}

/* ---- chatbot ---- */
#cp-chat{position:fixed;right:22px;bottom:22px;z-index:800;font-family:var(--font-body)}
.cp-chat-fab{width:54px;height:54px;border-radius:50%;border:0;background:var(--primary);color:var(--on-primary);display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.25);transition:transform .2s}
.cp-chat-fab:hover{transform:translateY(-2px)}
.cp-chat-panel{position:absolute;right:0;bottom:66px;width:min(340px,calc(100vw - 44px));background:#fff;color:#111;box-shadow:0 20px 60px rgba(0,0,0,.28);display:flex;flex-direction:column;max-height:70vh;overflow:hidden}
.cp-chat-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:var(--primary);color:var(--on-primary)}
.cp-chat-head strong{display:block;font-size:14px}.cp-chat-head span{font-size:12px;opacity:.8}
.cp-chat-x{background:none;border:0;font-size:22px;color:inherit;opacity:.8}
.cp-chat-log{padding:16px;display:grid;gap:8px;overflow:auto;min-height:120px;font-size:14px;line-height:1.45}
.cp-chat-msg{padding:10px 13px;max-width:88%;border-radius:2px}
.cp-chat-msg.bot{background:#f2f2f0;justify-self:start}
.cp-chat-msg.me{background:var(--primary);color:var(--on-primary);justify-self:end}
.cp-chat-msg a{color:inherit;font-weight:600}
.cp-chat-quick{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px}
.cp-chat-quick button{border:1px solid #ddd;background:#fff;padding:6px 10px;font-size:12px;border-radius:999px}
.cp-chat-form{display:flex;border-top:1px solid #eee}
.cp-chat-form input{flex:1;border:0;padding:14px 16px;font-size:14px;outline:none}
.cp-chat-form button{border:0;background:none;width:46px;font-size:18px}
.cp-chat-foot{margin:0;padding:6px 16px 10px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;opacity:.45}

/* ---- editor ---- */
#cp-edit-fab{position:fixed;left:22px;bottom:22px;z-index:850;font-family:var(--font-body)}
.cp-fab-main{display:flex;align-items:center;gap:10px;height:48px;padding:0 18px 0 14px;border-radius:999px;border:0;background:#111;color:#fff;font-size:14px;font-weight:500;box-shadow:0 10px 30px rgba(0,0,0,.28);transition:transform .2s}
.cp-fab-main:hover{transform:translateY(-2px)}
[data-theme="dark"] .cp-fab-main{background:#fff;color:#111}
#cp-edit-bar{position:fixed;left:22px;bottom:22px;z-index:860;width:min(320px,calc(100vw - 44px));background:#fff;color:#111;box-shadow:0 24px 70px rgba(0,0,0,.3);font-family:'Inter',system-ui,sans-serif;font-size:13px;display:flex;flex-direction:column;max-height:calc(100vh - 44px)}
.cp-bar-head{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid #eee}
.cp-bar-dot{width:8px;height:8px;border-radius:50%;background:#2f8f4e}
.cp-bar-who{margin-left:auto;opacity:.5;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}
.cp-bar-tabs{display:flex;border-bottom:1px solid #eee}
.cp-bar-tabs button{flex:1;padding:10px 0;border:0;background:none;font-size:12px;letter-spacing:.04em;opacity:.55;border-bottom:2px solid transparent}
.cp-bar-tabs button.is-on{opacity:1;border-bottom-color:#111}
.cp-bar-body{padding:14px 16px;overflow:auto}
.cp-sec-list li{display:flex;align-items:center;gap:10px;padding:9px 8px;border:1px solid #eee;margin-bottom:6px;background:#fff;cursor:grab}
.cp-sec-list li.is-off .cp-sec-name{opacity:.4;text-decoration:line-through}
.cp-sec-list li.is-drag{opacity:.4}
.cp-sec-list li.is-over{border-color:#111}
.cp-grip{opacity:.4;letter-spacing:-2px;background:none;border:0;cursor:grab;padding:0 2px}
.cp-sec-name{flex:1}
.cp-eye{border:0;background:none;font-size:12px;opacity:.7}
.cp-field{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #f0f0f0}
.cp-field select{border:1px solid #ddd;padding:6px 8px;background:#fff;border-radius:0}
.cp-color{display:flex;align-items:center;gap:8px}
.cp-color input{width:30px;height:30px;border:1px solid #ddd;padding:0;background:none}
.cp-color code{font-size:12px;opacity:.6}
.cp-badge{font-size:9px;letter-spacing:.1em;padding:2px 5px;background:#eef0ff;color:#3a48cc;border-radius:2px;margin-left:6px}
.cp-reset{width:100%;margin-top:12px;border:1px solid #ddd!important;font-size:11px;white-space:normal;text-align:center;padding:10px}
.cp-bar-p{margin:0 0 10px;opacity:.7;line-height:1.5}
.cp-data-list li{display:grid;gap:2px;padding:8px 0;border-bottom:1px solid #f0f0f0}
.cp-data-list span{opacity:.55;font-size:12px}
.cp-data-list+.btn{margin-top:12px;width:100%;border:1px solid #ddd;font-size:12px}
.cp-bar-actions{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #eee}
.cp-bar-actions .btn{flex:1;padding:11px 12px;font-size:13px}
.cp-bar-actions .btn-primary{background:#111;color:#fff}
.cp-bar-actions .btn-ghost{border:1px solid #ddd}
.cp-bar-hint{margin:0;padding:0 16px 12px;font-size:11px;opacity:.5;line-height:1.4}
body.is-editing [data-path]{outline:1px dashed rgba(90,110,255,.55);outline-offset:3px;cursor:text;min-width:1ch}
body.is-editing [data-path]:hover,body.is-editing [data-path]:focus{outline:1px solid #5768ff;background:rgba(87,104,255,.06)}
body.is-editing [data-cp]{position:relative;outline:1px dotted rgba(0,0,0,.25);outline-offset:3px;cursor:not-allowed}
body.is-editing [data-cp]::after{content:"CP";position:absolute;top:-9px;right:-6px;font:600 8px/1 'Inter',sans-serif;letter-spacing:.08em;padding:3px 4px;background:#3a48cc;color:#fff;border-radius:2px;pointer-events:none}
body.is-editing .cp-section{outline:1px solid transparent;transition:outline-color .2s}
body.is-editing .cp-section:hover{outline-color:rgba(87,104,255,.6)}
body.is-editing .cp-section.drop-before{box-shadow:0 -4px 0 0 #5768ff}
body.is-editing .cp-section.drop-after{box-shadow:0 4px 0 0 #5768ff}
body.is-editing .cp-section.is-drag{opacity:.35}
.cp-sec-tools{position:absolute;top:10px;right:10px;z-index:40;display:flex;align-items:center;gap:2px;background:#fff;color:#111;padding:4px 6px 4px 10px;font:500 11px/1 'Inter',sans-serif;box-shadow:0 6px 20px rgba(0,0,0,.2);opacity:0;transition:opacity .15s}
.cp-section:hover .cp-sec-tools{opacity:1}
.cp-sec-label{margin-right:6px;letter-spacing:.06em;text-transform:uppercase;opacity:.6}
.cp-sec-tools button{border:0;background:none;width:26px;height:26px;display:grid;place-items:center;font-size:13px}
.cp-sec-tools button:hover{background:#f0f0f0}
.cp-img-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:0;background:#fff;color:#111;padding:9px 14px;font:500 12px 'Inter',sans-serif;opacity:0;transition:.15s;z-index:5}
.cp-img:hover .cp-img-btn{opacity:1}
body.is-editing .cp-img{outline:1px dashed rgba(90,110,255,.5);outline-offset:-1px}
body.is-editing .cp-sec-tools *{cursor:pointer}
body.is-editing #cp-chat{display:none}
@media (max-width:640px){#cp-edit-bar{left:12px;bottom:12px;width:calc(100vw - 24px)} #cp-edit-fab{left:14px;bottom:14px} #cp-chat{right:14px;bottom:14px}}

/* settings tab */
.cp-lock{font-style:normal;font-size:9px;letter-spacing:.08em;padding:1px 4px;background:#111;color:#fff;border-radius:2px;vertical-align:1px;margin-left:2px}
.cp-locked{display:grid;gap:8px;padding:6px 0 4px;font-size:13px;line-height:1.5}
.cp-locked .btn{justify-self:start;background:#111;color:#fff;padding:9px 14px;font-size:12px;margin-top:6px}
.cp-badge.is-demo{background:#fff4e0;color:#9a5b00}
.cp-sub{font-size:11px;margin:-4px 0 6px;opacity:.6}
.cp-sub a{color:#3a48cc}
.cp-field.cp-col{flex-direction:column;align-items:stretch;gap:6px}
.cp-field input[type=text]{border:1px solid #ddd;padding:7px 9px;font-size:13px;background:#fff;width:100%}
.cp-file{display:flex;gap:6px}
.cp-file .btn{border:1px solid #ddd!important;padding:7px 10px;font-size:12px;background:#fff;color:#111;border-radius:0;letter-spacing:0;text-transform:none;font-family:inherit;font-weight:500}
body.is-editing.is-free [data-path],body.is-editing.is-free [data-cp]{outline:none;cursor:default}
body.is-editing.is-free [data-cp]::after{display:none}
body.is-editing.is-free .cp-img{outline:none}
body.is-editing.is-free #cp-chat{display:block}
#cp-edit-bar .cp-bar-body select{max-width:150px}

#cp-demo-hint{position:fixed;left:22px;bottom:22px;z-index:845;display:flex;align-items:center;gap:9px;height:44px;padding:0 16px;border-radius:999px;border:1px solid rgba(0,0,0,.12);background:#fff;color:#111;font:500 13px/1 'Inter',system-ui,sans-serif;box-shadow:0 10px 30px rgba(0,0,0,.18);cursor:pointer}
#cp-demo-hint:hover{transform:translateY(-1px)}
.cp-demo-dot{width:8px;height:8px;border-radius:50%;background:#5768ff;box-shadow:0 0 0 4px rgba(87,104,255,.18)}
@media (max-width:640px){#cp-demo-hint{left:14px;bottom:14px;font-size:12px;padding:0 12px}}

/* ===== Neo Design System: editor panel ===== */
#cp-edit-bar{--neo:#5768FF;--neo-soft:#EEF0FF;--neo-bg:#F5F7FA;--neo-ink:#14172B;--neo-mute:#6B7186;--neo-line:#E3E6EE;width:min(380px,calc(100vw - 44px));border-radius:16px;background:#fff;color:var(--neo-ink);box-shadow:0 24px 64px rgba(20,23,43,.22),0 0 0 1px rgba(20,23,43,.06);font-family:'Inter',system-ui,sans-serif;font-size:13px;overflow:hidden}
#cp-edit-bar .cp-bar-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--neo-line)}
#cp-edit-bar .cp-bar-head strong{display:block;font-size:14px;font-weight:600;letter-spacing:-.01em}
#cp-edit-bar .cp-bar-head>div{flex:1;min-width:0}
#cp-edit-bar .cp-bar-who{display:block;margin:2px 0 0;font-size:11px;color:var(--neo-mute);max-width:100%;opacity:1}
.cp-bar-logo{width:32px;height:32px;border-radius:9px;background:var(--neo);color:#fff;display:grid;place-items:center;font:700 11px/1 'Inter',sans-serif;letter-spacing:.04em;flex:none}
#cp-edit-bar .cp-bar-tabs{margin:12px 18px 0;padding:3px;background:var(--neo-bg);border-radius:10px;border:0;gap:2px}
#cp-edit-bar .cp-bar-tabs button{border:0;border-radius:8px;padding:8px 0;font-size:12.5px;font-weight:500;color:var(--neo-mute);opacity:1;transition:.15s}
#cp-edit-bar .cp-bar-tabs button.is-on{background:#fff;color:var(--neo-ink);box-shadow:0 1px 3px rgba(20,23,43,.12)}
#cp-edit-bar .cp-lock{background:none;color:inherit;font-size:10px;padding:0;margin-left:2px;opacity:.7}
#cp-edit-bar .cp-bar-body{padding:14px 18px 6px;overflow:auto;max-height:calc(100vh - 300px)}
.neo-crumb{margin:0 0 12px;font-size:11.5px;color:var(--neo-mute)}
.neo-crumb i{font-style:normal;opacity:.5;margin:0 4px}
.neo-group{border:1px solid var(--neo-line);border-radius:12px;padding:4px 14px;margin-bottom:10px;background:#fff}
.neo-group h4{margin:10px 0 2px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--neo-mute)}
.neo-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--neo-line);cursor:pointer}
.neo-group h4+.neo-row,.neo-group h4+.neo-row+.neo-link{border-top:0}
.neo-group>.neo-row:first-of-type{border-top:0}
.neo-lbl{flex:1;font-weight:500;font-size:13.5px;line-height:1.3}
.neo-lbl small{display:block;font-weight:400;font-size:11.5px;color:var(--neo-mute);margin-top:2px;line-height:1.35}
.neo-indent{padding-left:14px;border-left:2px solid var(--neo-soft);margin-left:2px;border-top:0!important;padding-top:2px}
.neo-indent.is-off{opacity:.45}
.neo-select select,#cp-edit-bar select{appearance:none;-webkit-appearance:none;border:1px solid var(--neo-line);border-radius:8px;padding:8px 30px 8px 10px;font:inherit;font-size:12.5px;color:var(--neo-ink);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7186' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;max-width:170px;text-overflow:ellipsis}
#cp-edit-bar select:focus,#cp-edit-bar input[type=text]:focus{outline:none;border-color:var(--neo);box-shadow:0 0 0 3px var(--neo-soft)}
.neo-switch{position:relative;width:38px;height:22px;flex:none}
.neo-switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.neo-switch i{position:absolute;inset:0;border-radius:999px;background:#CBD0DC;transition:.18s}
.neo-switch i::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:.18s}
.neo-switch input:checked+i{background:var(--neo)}
.neo-switch input:checked+i::after{transform:translateX(16px)}
.neo-switch input:focus-visible+i{box-shadow:0 0 0 3px var(--neo-soft)}
.neo-tag{font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--neo-bg);color:var(--neo-mute);white-space:nowrap;letter-spacing:.02em}
.neo-tag.demo{background:#FFF4E0;color:#9A5B00}.neo-tag.ok{background:#E6F4EC;color:#1F8A4C}.neo-tag.cp{background:var(--neo-soft);color:var(--neo)}
.neo-tag.pro{background:var(--neo);color:#fff}.neo-tag.free{background:#E6F4EC;color:#1F8A4C}
.neo-link{display:block;font-size:12px;color:var(--neo);text-decoration:none;padding:0 0 10px;margin-top:-6px;font-weight:500}
.neo-link:hover{text-decoration:underline}
.neo-field{display:grid;gap:6px;padding:10px 0;border-top:1px solid var(--neo-line);font-size:12px;font-weight:500;color:var(--neo-mute)}
.neo-group h4+.neo-field{border-top:0}
.neo-field input[type=text]{border:1px solid var(--neo-line);border-radius:8px;padding:9px 11px;font:inherit;font-size:13.5px;font-weight:400;color:var(--neo-ink);background:#fff;width:100%}
.neo-field small{font-size:11px;font-weight:400;color:var(--neo-mute);justify-self:end}
.neo-media{display:flex;gap:12px;align-items:center}
.neo-thumb{width:72px;height:48px;border-radius:8px;background:#ddd center/cover;flex:none;border:1px solid var(--neo-line)}
.neo-media-btns{display:flex;gap:6px;flex-wrap:wrap}
.neo-media+small{justify-self:start;line-height:1.4}
.neo-btn{font:600 12.5px/1 'Inter',system-ui,sans-serif;padding:9px 13px;border-radius:8px;border:1px solid var(--neo-line);background:#fff;color:var(--neo-ink);cursor:pointer;transition:.15s;letter-spacing:0;text-transform:none}
.neo-btn:hover{background:var(--neo-bg)}
.neo-btn.ghost{background:#fff}
.neo-btn.primary{background:var(--neo);border-color:var(--neo);color:#fff}
.neo-btn.primary:hover{background:#4657e6}
#cp-edit-bar .cp-bar-actions{display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--neo-line);background:#fff}
#cp-edit-bar .cp-bar-actions .neo-btn{flex:1;padding:11px 12px;font-size:13px}
#cp-edit-bar .cp-bar-hint{padding:0 18px 14px;font-size:11px;color:var(--neo-mute);opacity:1;line-height:1.45}
#cp-edit-bar .cp-locked{padding:8px 4px 12px}
#cp-edit-bar .cp-locked .neo-btn{justify-self:start}
/* Free plan: the Pro tabs are shown in full but cannot be used; the banner above them carries the price and the request link. */
#cp-edit-bar .cp-pro-banner{border:1px solid #d9dcff;background:#f4f5ff;border-radius:12px;padding:12px 14px;margin:6px 0 12px}
#cp-edit-bar .cp-pro-banner p{margin:0 0 4px}
#cp-edit-bar .cp-pro-preview{opacity:.55;pointer-events:none;user-select:none;filter:grayscale(.15)}
/* Pro tabs restyled */
#cp-edit-bar .cp-sec-list li{border:1px solid var(--neo-line);border-radius:10px;padding:10px 10px;margin-bottom:6px}
#cp-edit-bar .cp-sec-list li.is-over{border-color:var(--neo);box-shadow:0 0 0 3px var(--neo-soft)}
#cp-edit-bar .cp-field{border-bottom:1px solid var(--neo-line);padding:11px 0}
#cp-edit-bar .cp-reset{border:1px solid var(--neo-line)!important;border-radius:8px;font-weight:500}
@media (max-width:640px){#cp-edit-bar{width:calc(100vw - 24px);border-radius:14px}}

/* image slot without a source: quiet plate in the club colour, never stock */
.cp-img.is-empty{background:linear-gradient(160deg,color-mix(in srgb,var(--primary) 22%,var(--bg)) 0%,color-mix(in srgb,var(--primary) 46%,var(--bg)) 100%)}
.cp-img.is-empty::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 80% 10%,rgba(255,255,255,.22),transparent 60%)}
.neo-field textarea{border:1px solid var(--neo-line);border-radius:8px;padding:9px 11px;font:inherit;font-size:13px;font-weight:400;line-height:1.45;color:var(--neo-ink);background:#fff;width:100%;resize:vertical}
.neo-field textarea:focus{outline:none;border-color:var(--neo);box-shadow:0 0 0 3px var(--neo-soft)}
.neo-note{margin:4px 0 10px;font-size:11.5px;color:var(--neo-mute);line-height:1.45}
#cp-edit-bar .cp-bar-tabs button .neo-tag.pro{font-size:9px;padding:2px 6px;margin-left:4px;vertical-align:1px;font-style:normal}

/* ===== Pro: shared library sections (inherit template type via .label/.display/.btn) ===== */
.sh-note{margin-top:18px;font-size:12px;opacity:.55}
.sh-events{display:grid;gap:0;border-top:1px solid var(--line);margin-top:8px}
.sh-event{display:grid;grid-template-columns:72px 1fr auto;gap:24px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.sh-date{display:grid;text-align:center;line-height:1}.sh-date b{font-family:var(--font-display);font-size:26px;font-weight:var(--display-weight,500)}.sh-date small{font-size:11px;letter-spacing:.1em;text-transform:uppercase;opacity:.6;margin-top:4px}
.sh-ev-body{display:grid;gap:4px}.sh-ev-body b{font-size:18px;font-weight:600}.sh-ev-body span{font-size:14px;opacity:.65}
.sh-arrow{font-size:20px;opacity:.5;transition:.15s}.sh-event:hover .sh-arrow{opacity:1;transform:translateX(4px)}
.sh-reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px}
.sh-review{margin:0;padding:26px 0 0;border-top:1px solid var(--line)}
.sh-stars{color:var(--primary);letter-spacing:.1em;font-size:14px;margin-bottom:14px}
.sh-review blockquote{margin:0;font-size:17px;line-height:1.55}
.sh-review figcaption{margin-top:14px;font-size:12px;opacity:.6}
.sh-ig-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px;flex-wrap:wrap}
.sh-ig{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.sh-ig .cp-img{aspect-ratio:1}
.sh-text{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.sh-text.is-left .sh-text-img{order:-1}
.sh-text h2{font-size:clamp(32px,4vw,56px);margin-bottom:18px}
.sh-body{font-size:17px;line-height:1.6;opacity:.85;max-width:48ch;margin-bottom:26px}
.sh-text-img{aspect-ratio:4/3}
.sh-quote{max-width:900px;text-align:center}
.sh-quote p{font-size:clamp(26px,3.6vw,48px);line-height:1.2}
.sh-who{display:block;margin-top:24px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.6}
.sh-faq{max-width:760px}
.sh-faq details{border-top:1px solid var(--line)}.sh-faq details:last-child{border-bottom:1px solid var(--line)}
.sh-faq summary{list-style:none;cursor:pointer;padding:18px 0;font-size:17px;font-weight:600;display:flex;justify-content:space-between;gap:20px}
.sh-faq summary::-webkit-details-marker{display:none}.sh-faq summary::after{content:"+";font-weight:400;opacity:.5}.sh-faq details[open] summary::after{content:"–"}
.sh-faq details p{padding:0 0 20px;opacity:.75;max-width:60ch;line-height:1.6}
/* variants */
.sh-rows{display:grid;gap:0;margin-top:8px}
.sh-row{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:48px 0;border-top:1px solid var(--line)}
.sh-row:nth-child(even) .cp-img{order:2}
.sh-row .cp-img{aspect-ratio:3/2}
.sh-row h3{font-size:clamp(26px,3vw,40px);margin-bottom:14px}
.sh-row p{opacity:.8;line-height:1.6;max-width:44ch}
.sh-list-wrap{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:start}
.sh-list .sh-li{padding:20px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:24px}
.sh-list .sh-li:last-child{border-bottom:1px solid var(--line)}
.sh-li h3{font-family:var(--font-display);font-weight:var(--display-weight,500);font-size:22px}
.sh-li p{opacity:.75;line-height:1.55}
.sh-team{display:grid;gap:0}
.sh-tm{display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}
.sh-tm:last-child{border-bottom:1px solid var(--line)}
.sh-tm .cp-img{aspect-ratio:1;border-radius:50%}
.sh-tm b{display:block;font-size:17px}.sh-tm span{font-size:13px;opacity:.65}
@media (max-width:900px){.sh-reviews{grid-template-columns:1fr}.sh-text,.sh-row,.sh-list-wrap{grid-template-columns:1fr;gap:28px}.sh-row:nth-child(even) .cp-img{order:0}.sh-ig{grid-template-columns:repeat(3,1fr)}.sh-list .sh-li{grid-template-columns:1fr;gap:6px}.sh-event{grid-template-columns:60px 1fr;gap:16px}.sh-arrow{display:none}}
/* tones */
.cp-section.tone-surface{background:var(--surface);color:var(--fg-surface,var(--fg))}
.cp-section.tone-dark{background:var(--fg);color:var(--bg)}
.cp-section.tone-dark .label{color:inherit;opacity:.85}
.cp-section.tone-dark .btn-ghost{border-color:currentColor}
.cp-section.tone-dark .btn-primary{background:var(--bg);color:var(--fg);border-color:var(--bg)}
.cp-section.tone-dark [style*="color"]{color:inherit}
/* style toggles */
html.hero-compact .sec-hero .hero{min-height:0!important;height:auto!important}
html.hero-compact .sec-hero .hero .wrap{padding-top:140px!important;padding-bottom:56px!important}
html.hero-compact .sec-hero .hero .cp-img:not(.sh-text-img){min-height:0}
html.hero-compact .sec-hero .hero-txt{padding-top:120px!important}
html.btn-rounded .btn,html.btn-rounded .slot,html.btn-rounded .plan,html.btn-rounded .cp-img{border-radius:8px}
html.no-credit .cp-credit{display:none}
.cp-logo{height:30px;width:auto;display:block;max-width:180px;object-fit:contain}
.ftr-logo .cp-logo{height:36px}
/* editor bits */
.cp-sec-main{display:flex;align-items:center;gap:8px;width:100%}
.cp-sec-opts{display:flex;gap:6px;margin:8px 0 0 24px;width:calc(100% - 24px)}
.cp-sec-opts select{flex:1;min-width:0;max-width:none!important;font-size:11.5px;padding:5px 26px 5px 8px}
#cp-edit-bar .cp-sec-list li{display:block;cursor:default}
#cp-edit-bar .cp-sec-list li .cp-grip{cursor:grab}
.cp-mini{border:0;background:none;width:24px;height:24px;border-radius:6px;font-size:12px;color:var(--neo-mute)}
.cp-mini:hover{background:var(--neo-bg);color:var(--neo-ink)}
.cp-lib{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--neo-line);padding:11px 0;cursor:pointer;font:inherit;color:inherit}
.neo-group h4+.cp-lib{border-top:0}
.cp-lib:hover .cp-plus{background:var(--neo);color:#fff}
.cp-plus{width:26px;height:26px;border-radius:50%;background:var(--neo-soft);color:var(--neo);display:grid;place-items:center;font-weight:600;font-size:16px;flex:none}
.cp-hist{display:grid;gap:0;margin:0 0 8px}
.cp-hist li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--neo-line)}
.cp-hist li:first-child{border-top:0}
.cp-hist b{display:block;font-size:12.5px;font-weight:600}.cp-hist small{font-size:11px;color:var(--neo-mute)}
.cp-hist .neo-btn{padding:6px 10px;font-size:11.5px}
.cp-logo-thumb{display:grid;place-items:center;background:var(--neo-bg) center/contain no-repeat;font-size:11px;padding:4px;text-align:center}
#cp-edit-bar .cp-reset{width:100%;margin-top:6px}

.cp-opt{flex:1;display:grid;gap:3px;min-width:0}
.cp-opt small{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--neo-mute);font-weight:600}
.cp-opt select{width:100%}
/* dark tone: force inherited colour on template text */
.cp-section.tone-dark :where(h1,h2,h3,h4,p,span,b,small,li,cite,blockquote,summary,div:not(.cp-img):not(.cp-sec-tools)){color:inherit}
.cp-section.tone-dark :where(p,small,.meta,.note,cite,figcaption){opacity:.82}
.cp-section.tone-dark .slot,.cp-section.tone-dark .plan,.cp-section.tone-dark .cl,.cp-section.tone-dark .sh-review{background:transparent;border-color:color-mix(in srgb,currentColor 25%,transparent)}
.cp-section.tone-dark .hrs div,.cp-section.tone-dark .day,.cp-section.tone-dark .class-row,.cp-section.tone-dark .sh-event,.cp-section.tone-dark .sh-row,.cp-section.tone-dark .sh-li,.cp-section.tone-dark details{border-color:color-mix(in srgb,currentColor 22%,transparent)}
.cp-section.tone-surface .slot,.cp-section.tone-surface .plan{background:var(--bg)}
/* shared section titles */
.sec-events h2.display,.sec-reviews h2.display,.sec-instagram h2.display,.sec-faq h2.display,.sec-textblock h2.display{font-size:clamp(32px,4.2vw,58px);margin-bottom:28px;max-width:20ch}
.sec-instagram .sh-ig-head h2.display{margin-bottom:0}

/* ===== CP-widget ===== */
#cp-widget{position:fixed;right:22px;bottom:22px;z-index:800;display:flex;align-items:stretch;background:#fff;color:#111;border-radius:12px;box-shadow:0 12px 36px rgba(0,0,0,.22),0 0 0 1px rgba(0,0,0,.06);font-family:var(--font-body);font-size:14px;font-weight:500;overflow:hidden}
#cp-widget a{display:flex;align-items:center;padding:0 18px;height:50px;text-decoration:none;color:inherit;border-left:1px solid rgba(0,0,0,.1);white-space:nowrap;transition:background .15s}
#cp-widget a:hover{background:#f3f3f1}
#cp-widget .cp-w-logo{border-left:0;padding:0 18px;display:flex;align-items:center;justify-content:center}
#cp-widget .cp-w-logo img{height:14px;width:auto;display:block;flex:none;object-fit:contain}
body.is-editing #cp-widget{opacity:.6;pointer-events:none}
@media (max-width:640px){#cp-widget{left:20px;right:20px;bottom:16px;justify-content:stretch;border-radius:12px}#cp-widget a{flex:1;justify-content:center;padding:0 14px;font-size:13px}#cp-widget .cp-w-logo{flex:0 0 58px;padding:0}}
body.is-editing #cp-chat,body.is-editing.is-free #cp-chat{display:block}
/* keep the demo hint/edit fab clear of the widget on mobile */
@media (max-width:640px){#cp-demo-hint,#cp-edit-fab{bottom:76px}#cp-chat{bottom:76px}}

#cp-demo-hint .s{display:none}
@media (max-width:640px){#cp-demo-hint .l{display:none}#cp-demo-hint .s{display:inline}#cp-demo-hint{height:38px}}

/* minimise editor panel */
.cp-bar-min{border:0;background:none;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--neo-mute);cursor:pointer;flex:none;margin-left:2px}
.cp-bar-min:hover{background:var(--neo-bg);color:var(--neo-ink)}
#cp-edit-bar.is-min{display:none}
#cp-bar-pill{position:fixed;left:22px;bottom:22px;z-index:860;display:flex;align-items:center;gap:10px;height:46px;padding:0 14px 0 8px;border:0;border-radius:999px;background:#fff;color:#14172B;font:600 13px 'Inter',system-ui,sans-serif;box-shadow:0 12px 36px rgba(20,23,43,.24),0 0 0 1px rgba(20,23,43,.06);cursor:pointer;transition:transform .15s}
#cp-bar-pill:hover{transform:translateY(-1px)}
#cp-bar-pill{--neo:#5768FF;--neo-soft:#EEF0FF;--neo-mute:#6B7186}
#cp-bar-pill .cp-bar-logo{width:30px;height:30px;border-radius:8px}
#cp-bar-pill .neo-tag{font-style:normal}
@media (max-width:640px){#cp-bar-pill{left:14px;bottom:76px}}

/* hamburger → kruisje: lijnen absoluut gepositioneerd zodat de X exact symmetrisch is */
.hdr-burger{position:relative;z-index:101;width:40px!important;height:40px!important}
.hdr-burger span{position:absolute!important;left:50%;top:50%;width:22px!important;height:2px!important;margin:0!important;border-radius:1px;background:currentColor;transform:translate(-50%,-50%) translateY(var(--y,0)) rotate(0);transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .2s;transform-origin:center}
.hdr-burger span:nth-child(1){--y:-7px}
.hdr-burger span:nth-child(2){--y:0px}
.hdr-burger span:nth-child(3){--y:7px}
.hdr-burger.is-open span:nth-child(1){transform:translate(-50%,-50%) rotate(45deg)}
.hdr-burger.is-open span:nth-child(2){opacity:0;transform:translate(-50%,-50%) scaleX(.2)}
.hdr-burger.is-open span:nth-child(3){transform:translate(-50%,-50%) rotate(-45deg)}
body.menu-open .hdr{color:var(--fg);background:var(--bg);border-bottom-color:transparent}
body.menu-open{overflow:hidden}
.hdr-menu{opacity:0;transform:translateY(-8px);transition:opacity .25s,transform .25s;pointer-events:none}
.hdr-menu.is-open{opacity:1;transform:none;pointer-events:auto}
@media (prefers-reduced-motion:reduce){.hdr-burger span,.hdr-menu{transition:none}}

/* ---- Quinten review 16-09-2026 ---- */
/* Names of memberships, classes, facilities and coaches stay inside their card: wrap anywhere, no overflow. */
.cp-section .plan, .cp-section .cls, .cp-section .class-row, .cp-section .fac, .cp-section .team > *, .cp-section .cl, .cp-section .five > *, .cp-section .rail > *{min-width:0}
.cp-section .plan h3, .cp-section .cls h3, .cp-section .class-row h3, .cp-section .fac h3, .cp-section .team h3, .cp-section .cl h3, .cp-section .cl b, .cp-section .five h3, .cp-section .rail b, .cp-section .rail h3, .cp-section .plan .price{overflow-wrap:anywhere;word-break:normal;hyphens:auto;min-width:0;max-width:100%}
.cp-section .plan h3, .cp-section .cls h3, .cp-section .cl h3, .cp-section .cl b, .cp-section .five h3{font-size:clamp(15px,1.15vw + 9px,22px);line-height:1.15}
/* Long lists fold behind "Toon alle N": 6 memberships, 8 coaches, 12 activities (hidden until .show-all). */
.cp-cap.cap-6:not(.show-all) > :nth-child(n+7), .cp-cap.cap-7:not(.show-all) > :nth-child(n+8), .cp-cap.cap-8:not(.show-all) > :nth-child(n+9), .cp-cap.cap-12:not(.show-all) > :nth-child(n+13){display:none}
.cp-more{display:inline-flex;margin:18px auto 0;justify-self:center;background:transparent;color:inherit;cursor:pointer}
.wrap > .cp-more{display:table;margin-left:auto;margin-right:auto}
/* In-page frame for webshop and member zone (the widget opens Club Planner inside the site). */
.cp-frame{position:fixed;inset:0;z-index:9990;opacity:0;transition:opacity .2s ease}
.cp-frame.is-on{opacity:1}
.cp-frame-bg{position:absolute;inset:0;background:rgba(10,12,16,.55);backdrop-filter:blur(2px)}
.cp-frame-card{position:absolute;inset:24px;max-width:1100px;margin:0 auto;background:#fff;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.cp-frame-head{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 18px;border-bottom:1px solid #e6e8ec;font:500 13px/1 Inter,system-ui,sans-serif;color:#111}
.cp-frame-head strong{flex:1;font-weight:600}
.cp-frame-head a{color:#111;text-decoration:none;font-size:15px;padding:6px 8px;border-radius:8px}
.cp-frame-head a:hover{background:#f1f2f4}
.cp-frame-x{border:0;background:#f1f2f4;width:32px;height:32px;border-radius:50%;font-size:20px;line-height:1;cursor:pointer;color:#111}
.cp-frame iframe{flex:1;width:100%;border:0;background:#fff}
body.frame-open{overflow:hidden}
@media (max-width:640px){.cp-frame-card{inset:0;border-radius:0}}
/* Panel: coaches and facilities editors. */
#cp-edit-bar .neo-input{width:100%;box-sizing:border-box;border:1px solid #e3e6ea;border-radius:8px;padding:8px 10px;font:inherit;font-size:13px;color:#111;background:#fff}
#cp-edit-bar .neo-input:focus{outline:2px solid #5768FF;outline-offset:1px;border-color:#5768FF}
#cp-edit-bar .neo-input:disabled{background:#f6f7f9;color:#9aa0a6}
#cp-edit-bar textarea.neo-input{resize:vertical;min-height:56px;line-height:1.4}
#cp-edit-bar .neo-team{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid #eef0f3}
#cp-edit-bar .neo-team:first-child{border-top:0}
#cp-edit-bar .neo-team-name{display:flex;align-items:center;gap:10px;min-width:0;cursor:pointer;margin:0}
#cp-edit-bar .neo-team-name .neo-lbl{min-width:0}
#cp-edit-bar .neo-team-name .neo-lbl small{display:block}
#cp-edit-bar .neo-team .neo-input{font-size:12px;padding:6px 8px}
#cp-edit-bar .neo-team:not(.is-on) .neo-lbl{color:#8a9097}
#cp-edit-bar #cp-team{max-height:320px;overflow:auto;padding-right:4px}
#cp-edit-bar .neo-fac{border:1px solid #e3e6ea;border-radius:12px;padding:12px;margin:10px 0;display:grid;gap:10px;background:#fff}
#cp-edit-bar .neo-fac-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center}
#cp-edit-bar .neo-fac-title{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#cp-edit-bar .neo-thumb-sm{width:44px;height:44px;border-radius:8px;background:#eef0f3 center/cover no-repeat}
#cp-edit-bar .neo-fac .neo-field{margin:0}
#cp-edit-bar .neo-fac-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px}
#cp-edit-bar .neo-check{display:flex;align-items:center;gap:6px;font-size:12px;color:#556;margin:0;cursor:pointer}
#cp-edit-bar .neo-check input{width:16px;height:16px;margin:0}

/* ===== Go-live hand-off 17-09-2026 ===== */
/* skip link: first stop for keyboard and screen reader */
.cp-skip{position:absolute;left:12px;top:-64px;z-index:10000;background:#111;color:#fff;padding:12px 16px;font:500 14px/1 system-ui,sans-serif;text-decoration:none;border-radius:6px;transition:top .15s}
.cp-skip:focus{top:12px}
:focus-visible{outline:2px solid var(--primary-ink,var(--primary));outline-offset:2px}
/* descriptions from Club Planner never run away with a card */
.plan p[data-cp],.five p,.cl p,.class-row p,.card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
/* every image slot of a card keeps its ratio, photo or colour plate */
.cp-img{background-repeat:no-repeat}
/* hero without a photo: a dark plate in the club colour, so the white type reads */
.sec-hero .cp-img.is-empty{background:linear-gradient(160deg,var(--primary-deep),color-mix(in srgb,var(--primary-deep) 50%,#000))}
.sec-hero .cp-img.is-empty::before{opacity:.35}
/* touch targets: 44 px */
#site .btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box}
#site .hdr-nav a,#site .hdr-login{display:inline-flex;align-items:center;min-height:44px}
#site .slot{min-height:44px}
#cp-widget a{min-height:44px}
@media (pointer:coarse),(max-width:900px){
  #site .ftr li a,#site .addr a,#site .class-row .meta a,#site .cp-privacy a,#site .hdr-menu small a{display:inline-flex;align-items:center;min-height:44px}
  #site .hdr-menu small{font-size:15px}
  #site .hdr-menu small a{font-size:17px;font-weight:600;color:inherit}
}
/* mobile menu: the whole screen, above the chat bubble and the quick bar */
.hdr-menu{height:100vh;height:100dvh;overflow-y:auto;box-sizing:border-box}
body.menu-open{overflow:hidden}
body.menu-open .cplb-btn,body.menu-open .cplb-panel,body.menu-open .cplb-teaser,body.menu-open #cp-chat,body.menu-open #cp-widget,body.menu-open #cp-member-banner,body.frame-open .cplb-btn,body.frame-open .cplb-teaser{display:none !important}
@media (max-width:640px){#site .sec-hero .wrap,#site .sec-hero .hero-txt{padding-bottom:104px}}
/* forms: privacy line */
.cp-privacy{margin-top:12px}
.cp-privacy a{color:inherit;text-decoration:underline}
/* membership card that sells (nord lists plans as rows) */
.plan-link{margin-left:14px;font-size:14px;text-decoration:underline;text-underline-offset:3px;color:inherit;white-space:nowrap}
/* Reserveren en kopen: the nested page in the page, as tall as its content */
.cp-nested{margin-top:28px}
.cp-nested-frame{display:block;width:100%;height:640px;min-height:320px;border:0;background:transparent}
.sec-booking .sh-body{max-width:60ch;margin-top:14px;line-height:1.6}
.sec-booking .cp-nested-head .btn{margin-top:24px}
body.is-editing .cp-nested-frame{pointer-events:none}
/* members who expect the member portal on the bare address */
#cp-member-banner{position:fixed;left:22px;bottom:22px;z-index:790;display:flex;gap:14px;align-items:center;width:max-content;max-width:calc(100vw - 24px);background:#111;color:#fff;padding:10px 12px 10px 18px;border-radius:999px;font:500 14px/1.35 var(--font-body,system-ui),system-ui,sans-serif;box-shadow:0 10px 30px rgba(0,0,0,.25)}
#cp-member-banner a{color:#fff;text-decoration:underline;text-underline-offset:3px}
#cp-member-banner button{border:0;background:rgba(255,255,255,.18);color:#fff;width:32px;height:32px;border-radius:50%;font-size:18px;line-height:1;cursor:pointer;flex:none}
@media (max-width:640px){#cp-member-banner{border-radius:14px;left:12px;bottom:14px;max-width:calc(100vw - 100px)}}
/* panel: docks left or right, lists of what is on the site */
body.cp-dock-right #cp-edit-bar,body.cp-dock-right #cp-bar-pill{left:auto;right:22px}
body.cp-dock-right.is-editing #cp-widget,body.cp-dock-right.is-editing #cp-chat{right:auto;left:22px}
@media (max-width:640px){body.cp-dock-right #cp-edit-bar,body.cp-dock-right #cp-bar-pill{right:12px}}
#cp-edit-bar .cp-bar-head .cp-bar-min + .cp-bar-min{margin-left:4px}
#cp-edit-bar .neo-cat-head span{white-space:nowrap}
#cp-edit-bar .neo-cat-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--neo-mute);margin-bottom:8px}
#cp-edit-bar .neo-cat{max-height:264px;overflow:auto;border:1px solid var(--neo-line);border-radius:10px;padding:2px 10px;background:#fff}
#cp-edit-bar .neo-cat-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--neo-line);cursor:pointer}
#cp-edit-bar .neo-cat-row:last-child{border-bottom:0}
#cp-edit-bar .neo-cat-row .neo-lbl{font-size:13px;min-width:0}
#cp-edit-bar button.neo-link{border:0;background:none;padding:0;color:var(--neo);font:inherit;cursor:pointer}
.cp-more-sm{display:block;width:100%;margin-top:8px;padding:0 12px;min-height:44px;border:1px dashed currentColor;background:transparent;color:inherit;opacity:.75;font:inherit;font-size:13px;cursor:pointer;border-radius:inherit}
.cp-more-sm:hover{opacity:1}
#site .hdr-logo{display:inline-flex;align-items:center;min-height:44px}
@media (pointer:coarse),(max-width:900px){#site .cp-credit a{display:inline-flex;align-items:center;min-height:44px}}
/* Login (Quinten, 18-09-2026): a secondary button, not a grey text link next to the opening-hours status. The border follows
   currentColor so it holds on Volt's dark header and on Atelier's transparent header above the hero, before and after the scroll turn. */
#site .hdr .hdr-login{border:1px solid currentColor;background:transparent;color:inherit;opacity:.75;text-decoration:none}
#site .hdr .hdr-login:hover{opacity:1}
/* below the template's burger breakpoint the header button makes room; Login lives in the menu there */
@media (max-width:1000px){#site .hdr .hdr-login{display:none}}
#site .hdr-menu small .hdr-login{display:flex;width:100%;min-height:48px;margin-top:6px;border:1px solid currentColor;background:transparent;color:var(--fg);font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;text-decoration:none;box-sizing:border-box}
#cp-edit-bar .neo-confirm{border:1px solid var(--neo);background:var(--neo-soft)}
#cp-edit-bar .neo-confirm .neo-check{display:flex;gap:10px;align-items:flex-start;font-weight:600;font-size:13px;cursor:pointer}
#cp-edit-bar .neo-warn{border-left:3px solid #d97706;background:#fff7ed;color:#7c2d12;padding:8px 10px;border-radius:6px}
/* Volt: the activity name sits on the photo in display type. It stays inside its card: bound on both sides, a size that
   fits a card of 360 px, hyphenated, and cut after four lines (Quinten, 18-09-2026: "Beratungs- und Ersttermin" ran into the next card). */
#site .card .fig{overflow:hidden}
#site .card .name{left:20px;right:20px;bottom:16px;font-size:clamp(28px,2.6vw,40px);line-height:.98;overflow-wrap:anywhere;word-break:normal;hyphens:auto;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
/* every card title in every template breaks inside its own box */
.cp-section h3,.cp-section .name,.cp-section .slot span,.cp-section .slot b,.cp-section .sh-event b{overflow-wrap:anywhere;hyphens:auto;min-width:0}
/* the chatbot switched off (also while editing, before the page is published) */
html.cp-nochat .cplb-btn,html.cp-nochat .cplb-panel,html.cp-nochat .cplb-teaser{display:none !important}
/* Pro: exceptions on the opening hours (today's notice + the coming ones) */
#site .cp-exc-today{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin:18px 0 0;padding:12px 16px;border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:var(--radius,4px);font-size:14.5px;line-height:1.45}
#site .cp-exc-today.is-closed{border-left-color:#C8452F}
#site .cp-exc-today b{font-weight:600}
#site .cp-exc{margin-top:22px}
#site .cp-exc ul{list-style:none;margin:8px 0 0;padding:0;font-size:14px;line-height:1.45}
#site .cp-exc li{display:flex;flex-wrap:wrap;gap:2px 12px;padding:5px 0}
#site .cp-exc .dt{min-width:150px;color:var(--muted)}
/* Pro: the sub page of an activity, a coach or the location - the template's own header, footer, fonts and colours */
#site .cp-page-link{color:inherit;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .3s}
#site .cp-page-link:hover,#site .cp-page-link:focus-visible{background-size:100% 1px}
#site .cp-page-link::after{content:" \2192";opacity:.45;font-size:.8em}
#site .cp-sub{background:var(--bg);color:var(--fg);min-height:70vh}
#site .cp-sub.no-hero{padding-top:110px}
#site .cp-sub-hero{position:relative;height:46vh;min-height:280px;max-height:620px;overflow:hidden;background:var(--plate,#7d8790);view-transition-name:cp-page-img}
#site .cp-sub-hero img{width:100%;height:100%;object-fit:cover;display:block}
#site .cp-sub-wrap{max-width:760px;margin:0 auto;padding:34px 20px 96px}
#site .cp-sub-back{display:inline-block;margin-bottom:26px;padding:6px 0;font-size:13.5px;color:var(--muted);text-decoration:none}
#site .cp-sub-back:hover{color:var(--fg)}
#site .cp-sub h1.display{font-size:clamp(36px,8vw,64px);line-height:1.02;margin:0 0 18px}
#site .cp-sub-lede{font-size:18px;line-height:1.5;color:var(--muted);margin:0 0 26px}
#site .cp-sub-kv{display:grid;grid-template-columns:auto 1fr;gap:10px 24px;margin:0 0 28px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:15px;line-height:1.45}
#site .cp-sub-kv dt{color:var(--muted)}
#site .cp-sub-kv dd{margin:0}
#site .cp-sub-body{font-size:16.5px;line-height:1.65;margin:0 0 8px}
#site .cp-sub-h{font-family:var(--font-body);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--primary-ink,var(--primary));margin:0 0 14px}
#site .cp-sub-none{margin:30px 0 0;padding:16px 18px;border:1px solid var(--line);color:var(--muted);font-size:15px}
#site .cp-sub-sched{margin:38px 0 0}
#site .cp-sub-sched ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
#site .cp-sub-sched li{position:relative;display:grid;grid-template-columns:1fr auto;gap:3px 16px;align-items:center;padding:15px 2px;border-bottom:1px solid var(--line)}
#site .cp-sub-sched li.is-next::before{content:"";position:absolute;left:-14px;top:0;bottom:0;width:2px;background:var(--primary)}
#site .cp-sub-sched .d{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
#site .cp-sub-sched .t{font-family:var(--font-display);font-weight:var(--display-weight,600);font-size:24px;line-height:1.1}
#site .cp-sub-sched .t em{font-family:var(--font-body);font-style:normal;font-weight:700;font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin-left:10px;padding:3px 8px;border-radius:999px;background:var(--primary);color:var(--on-primary);vertical-align:3px}
#site .cp-sub-sched .m{font-size:14px;color:var(--muted)}
#site .cp-sub-sched .b{grid-column:2;grid-row:1/4;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border:1px solid var(--line);border-radius:var(--radius,0);background:none;color:inherit;font:600 12px/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
#site .cp-sub-sched .b:hover{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
#site .cp-sub-sched li.is-full .b{border-style:dashed}
#site .cp-sub-busy{margin:34px 0 0;padding:22px;border:1px solid var(--line);border-radius:var(--radius,0)}
#site .cp-sub-busy .bars{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:end;height:90px;margin-bottom:8px}
#site .cp-sub-busy .bars div{height:100%;display:flex;align-items:flex-end}
#site .cp-sub-busy .bars i{display:block;width:100%;background:var(--primary);opacity:.32;border-radius:2px 2px 0 0}
#site .cp-sub-busy .bars .is-top i{opacity:.95}
#site .cp-sub-busy .bars .is-low i{opacity:.6;background:currentColor}
#site .cp-sub-busy .bars .is-flat i{background:var(--line);opacity:1}
#site .cp-sub-busy .days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;text-align:center;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
#site .cp-sub-busy p{margin:0;font-size:15px;line-height:1.5}
#site .cp-sub-busy .src{margin-top:10px;font-size:12px;color:var(--muted)}
#site .cp-sub-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}
@media (min-width:900px){#site .cp-sub-hero{height:56vh}#site .cp-sub-wrap{padding:48px 24px 130px}}
@view-transition{navigation:auto}
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none !important}}
/* Pro: image treatment - every image in the same duotone of the club colour (grey, then a dark tint in lighten and a light one in multiply) */
html.cp-duo #site .cp-img:not(.is-empty):not([data-raw]){background-image:linear-gradient(var(--duo-light),var(--duo-light)),linear-gradient(var(--duo-dark),var(--duo-dark)),linear-gradient(var(--duo-grey),var(--duo-grey)),var(--img) !important;background-blend-mode:multiply,lighten,saturation,normal;background-size:cover;background-position:center}
html.cp-duo #site .cp-sub-hero img{filter:grayscale(.7) contrast(1.05)}
/* Pro: campaign bar - fixed on top, the header moves under it by its measured height */
.cp-camp{position:fixed;inset:0 0 auto;z-index:120;display:flex;gap:6px 14px;align-items:center;justify-content:center;flex-wrap:wrap;padding:11px 46px 11px 18px;background:var(--primary);color:var(--on-primary);font:500 13px/1.35 var(--font-body);text-align:center}
.cp-camp[hidden]{display:none}
.cp-camp .kort{display:none}
.cp-camp .cd{font-variant-numeric:tabular-nums;opacity:.85}
.cp-camp a{color:inherit;text-underline-offset:3px;font-weight:700}
.cp-camp button{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;background:none;color:inherit;font-size:20px;line-height:1;opacity:.8;cursor:pointer}
#site .hdr{top:var(--camp-h,0px)}
@media (max-width:700px){.cp-camp{justify-content:flex-start;text-align:left;flex-wrap:nowrap;padding:10px 44px 10px 14px;font-size:12.5px}.cp-camp .lang,.cp-camp .cd{display:none}.cp-camp .kort{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-camp a{margin-left:auto;white-space:nowrap}}
/* Pro: booking rail - a card top right past the hero, a bar at the bottom on smaller screens */
#cp-rail{position:fixed;z-index:790;right:20px;top:calc(var(--camp-h,0px) + 92px);width:240px;padding:20px;background:var(--surface,#fff);color:var(--fg-surface,var(--fg));border:1px solid var(--line);border-radius:var(--radius,0);box-shadow:0 18px 50px rgba(0,0,0,.16);opacity:0;pointer-events:none;transition:opacity .35s;font-family:var(--font-body)}
#cp-rail.on{opacity:1;pointer-events:auto}
#cp-rail .lab{font-size:10px;letter-spacing:.16em;text-transform:uppercase;opacity:.65}
#cp-rail .slot{margin:10px 0 4px;font-family:var(--font-display);font-weight:var(--display-weight,500);font-size:23px;line-height:1.15}
#cp-rail .meta{margin:0 0 14px;font-size:12.5px;opacity:.75}
#cp-rail .btn{width:100%;min-height:44px;justify-content:center;display:inline-flex;align-items:center;box-sizing:border-box;text-decoration:none;cursor:pointer}
@media (max-width:1180px){
 #cp-rail{right:0;left:0;top:auto;bottom:0;width:auto;border-radius:0;border-width:1px 0 0;display:flex;align-items:center;gap:14px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(0,0,0,.16)}
 #cp-rail .col{flex:1;min-width:0}
 #cp-rail .lab{font-size:9.5px}
 #cp-rail .slot{margin:2px 0 0;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #cp-rail .meta{margin:0;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #cp-rail .btn{width:auto;flex:0 0 auto;padding:12px 16px;font-size:12.5px}
 /* the page keeps room under its last line, and the quick bar and the chatbot button move up while the rail shows */
 body.has-rail #site{padding-bottom:78px}
 body.rail-on #cp-widget{bottom:calc(78px + env(safe-area-inset-bottom))}
 body.rail-on .cplb-btn,body.rail-on .cplb-teaser{bottom:calc(88px + env(safe-area-inset-bottom)) !important}
 body.rail-on #cp-member-banner{bottom:calc(84px + env(safe-area-inset-bottom))}
 body.rail-on:has(#cp-widget) #cp-member-banner{bottom:calc(146px + env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){#cp-rail{transition:none}}
/* editor: template head above the tabs, start line, template chooser */
.cp-bar-tpl{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--neo-line)}
.cp-bar-tpl-thumb{flex:0 0 64px;height:44px;border-radius:6px;background:var(--primary) center/cover no-repeat;position:relative;overflow:hidden;display:grid;place-items:center}
.cp-bar-tpl-thumb span{font:600 7px/1.1 system-ui,sans-serif;color:#fff;text-align:center;padding:2px 4px;background:rgba(0,0,0,.35);border-radius:3px;max-width:58px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-bar-tpl-tx{flex:1;min-width:0;display:grid;gap:2px}
.cp-bar-tpl-tx small{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--neo-mute)}
.cp-bar-tpl-tx strong{font-size:14px;color:var(--neo-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-steps{list-style:none;margin:0;padding:10px 16px;display:flex;gap:6px;align-items:center;border-bottom:1px solid var(--neo-line);font:500 12px/1.2 system-ui,sans-serif;color:var(--neo-mute)}
.cp-steps li{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.cp-steps li + li::before{content:"→";opacity:.5;margin-right:2px}
.cp-steps b{flex:0 0 18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:10.5px;background:var(--neo-soft);color:var(--neo-mute)}
.cp-steps .is-done{color:var(--neo-ink)}
.cp-steps .is-done b{background:#2f8f4e;color:#fff}
.cp-steps .is-now b{background:var(--neo);color:#fff}
.cp-steps button{border:0;background:var(--neo);color:#fff;border-radius:6px;padding:7px 10px;font:600 12px/1 system-ui,sans-serif;cursor:pointer;white-space:nowrap}
.neo-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.neo-field.is-bad input{border-color:#C8452F}
.neo-field.is-bad small{color:#C8452F}
.cp-pagelist{list-style:none;margin:14px 0 0;padding:0;max-height:50vh;overflow:auto;font-size:14px}
.cp-pagelist li{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid rgba(0,0,0,.1)}
.cp-pagelist span{flex:0 0 84px;opacity:.6}
.cp-pagelist a{word-break:break-all}
body.cp-chooser-open{overflow:hidden}
#cp-chooser{position:fixed;inset:0;z-index:100000;background:#F3F4F6;color:#111;overflow-y:auto;font-family:system-ui,-apple-system,sans-serif}
.cp-ch-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;background:rgba(243,244,246,.94);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.08)}
.cp-ch-head > div{display:flex;align-items:center;gap:14px}
.cp-ch-head strong{display:block;font-size:19px}
.cp-ch-head small{display:block;font-size:13.5px;color:#5b6270;margin-top:3px;max-width:70ch;line-height:1.45}
.cp-ch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:22px;padding:24px;max-width:1500px;margin:0 auto}
.cp-ch-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.06),0 8px 24px rgba(0,0,0,.06);display:flex;flex-direction:column}
.cp-ch-card.is-current{outline:2px solid var(--neo,#5768FF)}
.cp-ch-frame{position:relative;aspect-ratio:16/10;overflow:hidden;background:#e7e9ee}
.cp-ch-frame iframe{position:absolute;left:0;top:0;width:1280px;height:800px;border:0;transform-origin:0 0;transform:scale(var(--s,.28));pointer-events:none}
.cp-ch-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px}
.cp-ch-meta strong{display:block;font-size:15.5px}
.cp-ch-meta small{display:block;font-size:12.5px;color:#5b6270;margin-top:2px}
@media (max-width:640px){.cp-ch-grid{grid-template-columns:1fr;padding:14px}.cp-ch-head{padding:14px}}
/* Pro: video hero - fades in over the poster once it plays; the pause button is always reachable */
#site .cp-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease}
#site .cp-hero-video.is-on{opacity:1}
html.cp-duo #site .cp-hero-video{filter:grayscale(.7) contrast(1.05)}
#cp-vidctl{position:absolute;right:16px;top:calc(var(--camp-h,0px) + 92px);z-index:5;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(0,0,0,.3);backdrop-filter:blur(6px);color:#fff;font:600 11.5px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.sec-hero{position:relative}
/* Pro: member view - a layer in the browser on top of the public page */
#site .cp-hi{display:inline-flex;flex-wrap:wrap;gap:4px 6px;align-items:baseline;width:fit-content;max-width:100%;margin:0 0 16px;padding:9px 16px;border:1px solid currentColor;border-radius:999px;font:400 13.5px/1.4 var(--font-body);opacity:1}
#site .cp-hi b{font-weight:600}
.cp-asvisitor{position:fixed;left:16px;bottom:16px;z-index:780;min-height:40px;padding:9px 16px;border:0;border-radius:999px;background:#111;color:#fff;font:500 12.5px/1 system-ui,sans-serif;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.25)}
@media (max-width:1180px){body.rail-on .cp-asvisitor{bottom:calc(88px + env(safe-area-inset-bottom))}}
.neo-checks{display:grid;gap:6px;padding:4px 0 10px}
