{"version":3,"file":"2bd5012a-31cebe609e21349fc3b2.js","mappings":"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","sources":["webpack://hult-gatsby-storyblok/./node_modules/add-to-calendar-button/dist/module/index.js"],"sourcesContent":["import { tzlib_get_ical_block, tzlib_get_offset, tzlib_get_timezones } from 'timezones-ical-library';\n/*!\n * @preserve\n *\n * ++++++++++++++++++++++\n * Add to Calendar Button\n * ++++++++++++++++++++++\n *\n * Version: 2.6.18\n * Creator: Jens Kuerschner (https://jekuer.com)\n * Project: https://github.com/add2cal/add-to-calendar-button\n * License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)\n * Note: DO NOT REMOVE THE COPYRIGHT NOTICE ABOVE!\n *\n */\nconst atcbVersion = '2.6.18';\nconst atcbCssTemplate = {\n \"default\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:1px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#d2d2d2;--btn-border-radius:6px;--btn-padding-x:1em;--btn-padding-y:.65em;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 2px -1px;--btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 12px -2px,rgba(0 0 0 / 25%) 0 3px 5px -2px;--btn-active-shadow:rgba(0 0 0 / 30%) 0 6px 13px -2px,rgba(0 0 0 / 25%) 0 4px 5px -2px;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-font-weight:400;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:6px;--list-padding:.8em;--list-shadow:rgba(0 0 0 / 20%) 0 4px 13px -2px,rgba(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 50%) 0 4px 30px -3px,rgba(0 0 0 / 30%) 0 2px 8px -2px;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--modal-text:#000;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-border-radius:6px;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 65%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 10%) 0 2px 3px -1px;--modal-btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 13px -2px,rgba(0 0 0 / 20%) 0 3px 5px -2px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgba(0 0 0 / 20%) 0 5px 12px -2px,rgba(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgba(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-border:#3d3d3d;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgba(255 255 255 / 5%) -3px -3px 30px -1px,rgba(0 0 0 / 40%) 2px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 3px -1px;--btn-hover-shadow:rgba(0 0 0 / 90%) 2px 5px 20px -4px,rgba(0 0 0 / 50%) 1px 2px 6px -2px;--btn-active-shadow:rgba(0 0 0 / 90%) 2px 5px 20px -4px,rgba(0 0 0 / 50%) 1px 2px 6px -2px;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(0 0 0 / 60%) 0 4px 20px -2px,rgba(0 0 0 / 40%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 40%) -1px 3px 30px 2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 40%) 3px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 5px -1px;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgba(0 0 0 / 60%) 0 0 20px -2px,rgba(0 0 0 / 30%) 1px 2px 3px -1px;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:1px solid var(--btn-border);border-radius:var(--btn-border-radius);box-shadow:var(--btn-shadow);box-sizing:content-box;color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:.13em;max-width:300px;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button:not(.atcb-no-text,.atcb-modal-style,.atcb-dropoverlay,.atcb-single){min-width:calc(11.6em - 2 * var(--btn-padding-x))}.atcb-button.atcb-no-text{display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .13em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .13em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-no-text.atcb-active,.atcb-button.atcb-no-text:focus,.atcb-button.atcb-no-text:hover{height:3.26em;width:3.26em;padding:0!important}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:4px;height:1px;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;font-weight:var(--list-font-weight);padding:0 4px;position:absolute;z-index:14000090}.atcb-list-wrapper.atcb-dropoverlay{z-index:15000000;max-width:max-content}.atcb-list{background-color:var(--list-background);border-radius:0 0 var(--list-border-radius) var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-dropup .atcb-list-item:last-child{border-radius:0;padding-bottom:calc(var(--list-padding) + .45em)}.atcb-dropoverlay .atcb-list .atcb-list-item:first-child,.atcb-dropup .atcb-list,.atcb-dropup .atcb-list-item:first-child,.atcb-list.atcb-modal .atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-dropoverlay .atcb-list .atcb-list-item:only-child,.atcb-list.atcb-modal .atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:calc(var(--list-padding) + .45em)}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:var(--list-padding)}.atcb-dropoverlay .atcb-list,.atcb-list.atcb-modal{border-radius:var(--list-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay) .atcb-checkmark,.atcb-button.atcb-single:focus .atcb-checkmark,.atcb-button.atcb-single:hover .atcb-checkmark{top:-.77em;right:-.37em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-trigger{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.atcb-modal-content.no-headline{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;padding-top:1.8em}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline,.rsvp-inline-wrapper.atcb-modal-box{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em}.pro-form{text-align:left}.pro-form:not(.no-intro){border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em}.pro-form.no-intro:not(.no-headline){padding-top:.5em}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:1.2em;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:1px solid var(--modal-btn-text);border-radius:var(--input-border-radius);box-shadow:var(--btn-shadow);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\n \"3d\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#d2d2d2;--btn-border-radius:6px;--btn-padding-x:1em;--btn-padding-y:.65em;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 2px -1px;--btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 12px -2px,rgba(0 0 0 / 25%) 0 3px 5px -2px;--btn-active-shadow:rgba(0 0 0 / 40%) 0 8px 13px -2px,rgba(0 0 0 / 30%) 0 5px 5px -3px;--btn-active-shadow-up:rgba(0 0 0 / 30%) 0 6px 13px -2px,rgba(0 0 0 / 15%) 0 2px 2px -1px,rgba(0 0 0 / 25%) 0 -3px 10px -1px;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:6px;--list-padding:.8em;--list-shadow:rgba(0 0 0 / 20%) 0 4px 13px -2px,rgba(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 50%) 0 4px 30px -3px,rgba(0 0 0 / 30%) 0 2px 8px -2px;--modal-text:#000;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-border-radius:6px;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 65%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 10%) 0 2px 3px -1px;--modal-btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 13px -2px,rgba(0 0 0 / 20%) 0 3px 5px -2px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgba(0 0 0 / 20%) 0 5px 12px -2px,rgba(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgba(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-border:#4d4d4d;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgba(255 255 255 / 5%) -3px -3px 30px -1px,rgba(0 0 0 / 40%) 2px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 3px -1px;--btn-hover-shadow:rgba(0 0 0 / 90%) 2px 5px 20px -4px,rgba(0 0 0 / 50%) 1px 2px 6px -2px;--btn-active-shadow:rgba(0 0 0 / 90%) 2px 5px 20px -4px,rgba(0 0 0 / 50%) 1px 2px 6px -2px;--btn-active-shadow-up:rgba(0 0 0 / 80%) 2px 4px 20px -4px,rgba(0 0 0 / 30%) 1px 1px 3px -1px,rgba(0 0 0 / 45%) 0 -3px 10px -1px;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(0 0 0 / 60%) 0 4px 20px -2px,rgba(0 0 0 / 40%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 40%) -1px 3px 30px 2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 40%) 3px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 5px -1px;--modal-btn-hover-shadow:none;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgba(0 0 0 / 60%) 0 0 20px -2px,rgba(0 0 0 / 30%) 1px 2px 3px -1px;--date-btn-hover-shadow:none;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:1px solid var(--btn-border);border-radius:var(--btn-border-radius);box-shadow:var(--btn-shadow);box-sizing:content-box;color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:0;max-width:300px;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:center;touch-action:manipulation;transform:translate3d(0,0,-12px);user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button:not(.atcb-no-text,.atcb-modal-style,.atcb-dropoverlay,.atcb-single){min-width:calc(11.6em - 2 * var(--btn-padding-x))}.atcb-button.atcb-no-text{display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){background-color:var(--btn-hover-background);z-index:15000000}.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropup,.atcb-dropoverlay){box-shadow:var(--btn-active-shadow);transform:perspective(100px) rotateX(12deg) translate3d(0,0,2px);transition:transform .1s linear}.atcb-button.atcb-active.atcb-dropup:not(.atcb-modal-style,.atcb-dropoverlay){box-shadow:var(--btn-active-shadow-up);transform:perspective(100px) rotateX(348deg) translate3d(0,0,2px);transition:transform .1s linear}.atcb-button.atcb-active.atcb-dropoverlay{transform:translate3d(0,0,0);z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:6px;height:1px;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;padding:0 4px;position:absolute;transform:translate3d(0,0,0);z-index:14000090}.atcb-list{background-color:var(--list-background);border-radius:0 0 var(--list-border-radius) var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-wrapper.atcb-dropdown:not(.atcb-dropup,.atcb-dropoverlay){animation:atcb-list-slide-down .4s ease 50ms 1 normal both;opacity:0}.atcb-list-wrapper.atcb-dropup:not(.atcb-dropoverlay){animation:atcb-list-slide-up .4s ease 50ms 1 normal both;opacity:0}.atcb-list-wrapper.atcb-dropoverlay{transform:translate3d(0,0,2px);z-index:15000000;animation:atcb-list-slide-center .3s ease 0s 1 normal both;opacity:0}@keyframes atcb-list-slide-down{0%{opacity:0;transform:rotateX(70deg);transform-origin:top}100%{opacity:1;transform:rotateX(0);transform-origin:top}}@keyframes atcb-list-slide-up{0%{opacity:0;transform:rotateX(70deg);transform-origin:bottom}100%{opacity:1;transform:rotateX(0);transform-origin:bottom}}@keyframes atcb-list-slide-center{0%{opacity:0;transform:scaleY(1)}1%{opacity:1;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-dropup .atcb-list-item:last-child{border-radius:0;padding-bottom:calc(var(--list-padding) + .7em)}.atcb-dropoverlay .atcb-list .atcb-list-item:first-child,.atcb-dropup .atcb-list,.atcb-dropup .atcb-list-item:first-child,.atcb-list.atcb-modal .atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-dropoverlay .atcb-list .atcb-list-item:only-child,.atcb-list.atcb-modal .atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:calc(var(--list-padding) + .7em)}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:var(--list-padding)}.atcb-dropoverlay .atcb-list,.atcb-list.atcb-modal{border-radius:var(--list-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-trigger{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.atcb-modal-content.no-headline{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;padding-top:1.8em}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline,.rsvp-inline-wrapper.atcb-modal-box{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em}.pro-form{text-align:left}.pro-form:not(.no-intro){border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em}.pro-form.no-intro:not(.no-headline){padding-top:.5em}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:1.2em;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:1px solid var(--modal-btn-text);border-radius:var(--input-border-radius);box-shadow:var(--btn-shadow);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\n \"flat\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:8px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#545454;--btn-padding-x:1.2em;--btn-padding-y:.8em;--btn-shadow:#333;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--list-background:#f5f5f5;--list-hover-background:#fff;--list-border:#545454;--list-text:#333;--list-font-weight:400;--list-hover-text:#000;--list-close-background:#545454;--list-close-text:#b0b0b0;--list-close-text-hover:#777;--list-padding:.8em;--modal-text:#000;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-btn-bar:#bababa;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#545454;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#676767;--modal-headline-text-align:center;--modal-headline-text-transform:uppercase;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#414141;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--overlay-background:rgba(20 20 20 / 40%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#222;--btn-hover-background:#373737;--btn-border:#515151;--btn-shadow:#000;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--list-background:#222;--list-hover-background:#373737;--list-border:#515151;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#111;--list-close-text:#777;--list-close-text-hover:#f1f1f1;--modal-text:#f1f1f1;--modal-background:#242424;--modal-btn-bar:#313131;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#414141;--date-btn-cal-background:#c7c7cd;--date-btn-background:#2d2d2d;--date-btn-hover-background:#474747;--overlay-background:rgba(20 20 20 / 75%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(0.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:.2em solid var(--btn-border);box-sizing:content-box;color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:0;max-width:300px;padding:var(--btn-padding-y) var(--btn-padding-x);top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow);position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button:not(.atcb-no-text,.atcb-modal-style,.atcb-dropoverlay,.atcb-single){min-width:calc(11.6em - 2 * var(--btn-padding-x))}.atcb-button.atcb-no-text{display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-button.atcb-click:not([disabled]){top:-3px;left:-3px;box-shadow:3px 3px 0 0 var(--btn-shadow)}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-hover-background);top:-5px;left:-5px;box-shadow:5px 5px 0 0 var(--btn-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:.9em;line-height:1em;margin-right:.8em;width:.9em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:1em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-icon-trigger svg{display:none}.atcb-button .atcb-icon-trigger::after{content:\\\"+\\\";font-family:Arial,Helvetica,sans-serif;font-size:1.5em}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:0;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;font-weight:var(--list-font-weight);padding:0 2px 0 6px;position:absolute;z-index:16000090}.atcb-list-wrapper.atcb-no-text.atcb-dropdown{padding:0}.atcb-list-wrapper:not(.atcb-dropup,.atcb-dropoverlay){animation:list-entrance-bottom .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropup{animation:list-entrance-top .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropoverlay{z-index:15000000}@keyframes list-entrance-bottom{0%{opacity:0;transform:translateY(150px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-top{0%{opacity:0;transform:translateY(-150px)}100%{opacity:1;transform:translateY(0)}}.atcb-list{background:var(--list-background);box-sizing:border-box;border:.15em solid var(--list-border);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);outline:0}.atcb-dropup .atcb-list-item:last-child{border-bottom-width:0}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{border-top-width:0}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{border-top-width:.15em}.atcb-list-item .atcb-icon{margin:0 auto;height:1em;width:1em}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item.atcb-list-item-close:hover{color:var(--list-close-text-hover)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{border:.15em solid var(--btn-border);background-color:var(--modal-background);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{padding-top:0}.atcb-modal-content{font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{padding-top:0}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{border:.2em solid var(--btn-border);background-color:var(--modal-btn-secondary-background);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow)}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);color:var(--modal-btn-hover-text);text-decoration:none;top:-3px;left:-3px;box-shadow:3px 3px 0 0 var(--btn-shadow)}.atcb-subevent-btn{border:.15em solid var(--btn-border);display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;background-color:var(--date-btn-background);padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow);width:100%}.atcb-subevent-btn:hover{align-items:center;top:-3px;left:-3px;box-shadow:3px 3px 0 0 var(--btn-shadow)}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-2.1em;right:-2em;padding:.5em;border-radius:100%;height:1.5em}.atcb-checkmark svg{height:100%;width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{background-color:transparent;border:0;filter:none;min-width:100%;margin-bottom:0}.atcb-modal-content.no-headline{padding-top:1.8em}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline,.rsvp-inline-wrapper.atcb-modal-box{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em}.pro-form{text-align:left}.pro-form:not(.no-intro){border-top:2px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em}.pro-form.no-intro:not(.no-headline){padding-top:.5em}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:2px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:2px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:1.2em;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:2px solid var(--modal-btn-text);border-radius:var(--input-border-radius);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);color:var(--status-active-text);opacity:1;transform:scale(1.1)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:.2em solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\n \"round\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:1px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#d2d2d2;--btn-border-radius:500px;--btn-padding-x:1.3em;--btn-padding-y:.65em;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--btn-shadow:rgba(0 0 0 / 15%) 0 4px 10px -2px,rgba(0 0 0 / 20%) 0 2px 3px -1px;--btn-hover-shadow:rgba(0 0 0 / 30%) 0 5px 15px -3px,rgba(0 0 0 / 25%) 0 3px 5px -2px;--btn-active-shadow:rgba(0 0 0 / 35%) 0 6px 15px -3px,rgba(0 0 0 / 25%) 0 4px 6px -2px;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-font-weight:400;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:11px;--list-padding:.8em 1.2em;--list-min-width:100%;--list-shadow:rgba(0 0 0 / 20%) 0 4px 13px -2px,rgba(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 50%) 0 4px 30px -3px,rgba(0 0 0 / 30%) 0 2px 8px -2px;--modal-text:#000;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-border-radius:9px;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 65%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgba(0 0 0 / 10%) 2px 3px 10px -3px,rgba(0 0 0 / 25%) 1px 1px 8px -4px;--modal-btn-hover-shadow:rgba(0 0 0 / 35%) 3px 5px 15px -2px,rgba(0 0 0 / 20%) 2px 4px 25px -6px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgba(0 0 0 / 20%) 0 5px 12px -2px,rgba(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgba(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-border:#4d4d4d;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgba(255 255 255 / 5%) -3px -3px 30px -1px,rgba(0 0 0 / 40%) 2px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 3px -1px;--btn-hover-shadow:rgba(0 0 0 / 90%) 2px 5px 20px -4px,rgba(0 0 0 / 50%) 1px 2px 6px -2px;--btn-active-shadow:rgba(0 0 0 / 90%) 2px 5px 20px -4px,rgba(0 0 0 / 50%) 1px 2px 6px -2px;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(0 0 0 / 60%) 0 4px 20px -2px,rgba(0 0 0 / 40%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 40%) -1px 3px 30px 2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 40%) 3px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 5px -1px;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgba(0 0 0 / 60%) 0 0 20px -2px,rgba(0 0 0 / 30%) 1px 2px 3px -1px;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:1px solid var(--btn-border);border-radius:var(--btn-border-radius);box-shadow:var(--btn-shadow);color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:.13em;max-width:350px;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button.atcb-no-text{min-width:0;border-radius:100%;display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .13em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-no-text.atcb-active,.atcb-button.atcb-no-text:focus,.atcb-button.atcb-no-text:hover{height:3.26em;width:3.26em;padding:0}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-no-text),.atcb-button.atcb-single:not(.atcb-no-text,[disabled]):focus,.atcb-button.atcb-single:not(.atcb-no-text,[disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .13em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-active.atcb-no-text:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single.atcb-no-text:not([disabled]):focus,.atcb-button.atcb-single.atcb-no-text:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .28em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-dropup::after,.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{content:\\\"\\\";width:0;height:0;position:absolute;left:0;right:0;margin:0 auto}.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{top:100%;border:0 solid transparent;border-bottom:none;border-top-color:var(--btn-border)}.atcb-button.atcb-dropup::after{bottom:100%;border:0 solid transparent;border-top:none;border-bottom-color:var(--btn-border)}.atcb-button.atcb-active.atcb-dropup::after,.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{border-width:.35em;transition:border-width .1s linear .1s}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:-15px;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;font-weight:var(--list-font-weight);position:absolute;z-index:14000090;width:auto}.atcb-list-wrapper:not(.atcb-dropup,.atcb-dropoverlay){animation:list-entrance-bottom .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropup{animation:list-entrance-top .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropoverlay{animation:list-entrance-center .2s ease 0s 1 normal forwards;z-index:15000000}@keyframes list-entrance-bottom{0%{opacity:0;transform:translateY(250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-top{0%{opacity:0;transform:translateY(-250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-center{0%{opacity:0;transform:scaleY(1)}1%{opacity:1;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}.atcb-list{background-color:var(--list-background);border-radius:var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:var(--list-min-width);position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content-subevents{margin:auto;width:fit-content}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay) .atcb-checkmark,.atcb-button:focus .atcb-checkmark,.atcb-button:hover .atcb-checkmark{top:-.77em;right:-.37em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-trigger{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.atcb-modal-content.no-headline{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;padding-top:1.8em}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline,.rsvp-inline-wrapper.atcb-modal-box{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em}.pro-form{text-align:left}.pro-form:not(.no-intro){border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em}.pro-form.no-intro:not(.no-headline){padding-top:.5em}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:1.2em;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:1px solid var(--modal-btn-text);border-radius:var(--input-border-radius);box-shadow:var(--btn-shadow);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\n \"neumorphism\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-font-weight:600;--btn-text:#444;--btn-hover-text:#111;--btn-border-radius:15px;--btn-padding-x:1.2em;--btn-padding-y:1em;--btn-shadow:rgba(40 40 40 / 30%) 0.3em 0.3em 0.6em,rgba(255 255 255 / 70%) -0.1em -0.1em 0.3em;--btn-hover-shadow:rgba(40 40 40 / 50%) 0.4em 0.4em 0.8em,rgba(255 255 255 / 90%) -0.2em -0.2em 0.5em;--btn-active-shadow:inset rgba(40 40 40 / 40%) 0.15em 0.15em 0.3em,inset rgba(255 255 255 / 90%) -0.2em -0.2em 0.5em;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#444;--list-font-weight:400;--list-hover-text:#111;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:11px;--list-padding:1em;--list-min-width:100%;--list-shadow:rgba(40 40 40 / 30%) 0.4em 0.4em 0.8em,rgba(255 255 255 / 80%) -0.2em -0.2em 0.5em;--modal-text:#111;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-border-radius:9px;--modal-shadow:drop-shadow(5px 8px 30px rgba(0 0 0 / 70%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#222;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgba(40 40 40 / 15%) 0.2em 0.2em 0.4em,rgba(255 255 255 / 30%) -0.1em -0.1em 0.3em;--modal-btn-hover-shadow:rgba(40 40 40 / 40%) 0.4em 0.4em 0.7em,rgba(255 255 255 / 70%) -0.2em -0.2em 0.5em;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#e3e5ea;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgba(0 0 0 / 20%) 0 5px 12px -2px,rgba(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:#dcdcdc;--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgba(0 0 0 / 70%) 0.3em 0.3em 0.6em,rgba(230 230 230 / 20%) -0.05em -0.05em 0.4em;--btn-hover-shadow:rgba(0 0 0 / 90%) 0.4em 0.4em 0.9em,rgba(230 230 230 / 25%) -0.08em -0.08em 0.6em -0.1em;--btn-active-shadow:inset rgba(0 0 0 / 80%) 0.15em 0.15em 0.25em,inset rgba(230 230 230 / 10%) -0.2em -0.2em 0.7em -0.1em;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(0 0 0) 0.3em 0.3em 1em,rgba(230 230 230 / 40%) -0.08em -0.08em 0.6em;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(5px 8px 35px rgba(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgba(0 0 0 / 60%) 0.2em 0.2em 0.6em,rgba(230 230 230 / 15%) -0.1em -0.1em 0.4em;--modal-btn-hover-shadow:rgba(0 0 0 / 80%) 0.3em 0.3em 0.8em,rgba(230 230 230 / 15%) -0.1em -0.1em 0.6em;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgba(0 0 0 / 70%) 0.2em 0.2em 0.8em,rgba(230 230 230 / 15%) -0.1em -0.1em 0.5em;--date-btn-hover-shadow:rgba(0 0 0) 0.3em 0.4em 1em,rgba(230 230 230 / 15%) -0.2em -0.2em 0.8em;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:#141414;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(0.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--btn-shadow);color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:0;max-width:350px;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;transition:box-shadow .1s ease-in-out,background-color .1s ease-in-out;z-index:1}.atcb-button.atcb-no-text{min-width:0;border-radius:100%;display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:-15px;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;font-weight:var(--list-font-weight);position:absolute;width:auto;animation:list-entrance .6s ease 0s 1 normal forwards;z-index:15000000}@keyframes list-entrance{0%{opacity:0}100%{opacity:1}}.atcb-list{background-color:var(--list-background);border-radius:var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:var(--list-min-width);position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{box-shadow:none;align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:box-shadow .15s ease-in-out,padding .15s ease-in-out,margin .15s ease-in-out}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{box-shadow:var(--btn-shadow);background-color:var(--list-hover-background);color:var(--list-hover-text);padding:calc(var(--list-padding) + .2em);margin:-.2em;position:relative;z-index:15000010}.atcb-list-item:focus-visible{box-shadow:var(--btn-shadow);background-color:var(--list-hover-background);color:var(--accent-color);padding:calc(var(--list-padding) + .2em);margin:-.2em;position:relative;z-index:15000010;outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{animation:list-entrance .6s ease 0s 1 normal forwards;filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay) .atcb-checkmark,.atcb-button.atcb-single:focus .atcb-checkmark,.atcb-button.atcb-single:hover .atcb-checkmark{top:-.77em;right:-.37em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .1s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-trigger{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.atcb-modal-content.no-headline{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;padding-top:1.8em}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline,.rsvp-inline-wrapper.atcb-modal-box{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em}.pro-form{text-align:left}.pro-form:not(.no-intro){border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em}.pro-form.no-intro:not(.no-headline){padding-top:.5em}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;box-shadow:var(--btn-shadow);caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input:not([disabled],[type=checkbox],[type=radio]):hover{box-shadow:var(--btn-active-shadow)}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{box-shadow:var(--btn-active-shadow)}.pro-field input[type=email]:focus-visible,.pro-field input[type=number]:focus-visible,.pro-field input[type=text]:focus-visible{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:1.2em;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;background-color:var(--input-background);border-radius:var(--input-border-radius);box-shadow:var(--btn-shadow);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{color:var(--form-success)}#rsvp-status-group label.status-declined{color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{background-color:var(--btn-hover-background);display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\n \"text\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:5px;--btn-underline:#a9ceff;--btn-border:#a8a8a8;--btn-padding-x:.75em;--btn-padding-y:.75em;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--btn-hover-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 2px -1px;--btn-text-shadow:#fff;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-font-weight:400;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:11px;--list-padding:.8em 1.2em;--list-min-width:100%;--list-shadow:rgba(0 0 0 / 20%) 0 4px 13px -2px,rgba(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 50%) 0 4px 30px -3px,rgba(0 0 0 / 30%) 0 2px 8px -2px;--modal-text:#000;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-border-radius:9px;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 65%));--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--modal-btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 13px -2px,rgba(0 0 0 / 25%) 0 3px 5px -2px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgba(0 0 0 / 20%) 0 5px 12px -2px,rgba(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgba(200 200 200 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-underline:#336db9;--btn-border:#888;--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-text:#dedede;--btn-hover-text:#fff;--btn-text-shadow:#000;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#fff;--list-close-background:#282828;--list-shadow:rgba(255 255 255 / 5%) -12px -5px 20px -8px,rgba(255 255 255 / 6%) -7px -5px 15px -3px,rgba(0 0 0 / 50%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 3px 3px 20px -3px;--list-modal-shadow:rgba(255 255 255 / 8%) -12px -5px 30px -8px,rgba(255 255 255 / 8%) -7px -5px 15px -3px,rgba(0 0 0 / 60%) 4px 6px 50px -4px,rgba(0 0 0 / 90%) 8px 12px 40px -2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 40%) 3px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 5px -1px;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgba(0 0 0 / 60%) 0 0 20px -2px,rgba(0 0 0 / 30%) 1px 2px 3px -1px;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(0.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{background-image:linear-gradient(120deg,var(--btn-underline) 0,var(--btn-underline) 100%);background-repeat:no-repeat;background-size:100% 8%;background-position:0 100%;background-color:transparent;border:0;border-radius:0;transition:background-size .1s ease-in,border-radius .2s ease-in,box-shadow .1s ease-in;align-items:center;color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.2em;margin:0 .2em;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:left;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button.atcb-no-text{min-width:0;display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-size:100% 100%;box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text);text-shadow:0 0 .7em var(--btn-text-shadow);border-radius:21px}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){background-size:100% 10%;border-radius:3px 3px 11px 11px;background-position:0 0;background-color:var(--btn-background);color:var(--btn-text);text-shadow:none;z-index:15000000}.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-size:100% 10%;background-position:0 100%;border-radius:11px 11px 3px 3px;background-color:var(--btn-background);color:var(--btn-text);text-shadow:none}.atcb-button.atcb-active.atcb-dropup{background-position:0 100%;border-radius:11px 11px 3px 3px}.atcb-button.atcb-dropup::after,.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{content:\\\"\\\";width:0;height:0;position:absolute;left:0;right:0;margin:0 auto}.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{top:100%;border:0 solid transparent;border-bottom:none;border-top-color:var(--btn-background)}.atcb-button.atcb-dropup::after{bottom:100%;border:0 solid transparent;border-top:none;border-bottom-color:var(--btn-background)}.atcb-button.atcb-active.atcb-dropup::after,.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{border-width:.35em;transition:border-width .1s linear .1s}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:.9em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:1em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-icon-trigger svg{display:none}.atcb-button .atcb-icon-trigger::after{content:\\\"+\\\";font-family:Arial,Helvetica,sans-serif;font-size:1.5em}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:-15px;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;font-weight:var(--list-font-weight);position:absolute;z-index:14000090;width:auto}.atcb-list-wrapper:not(.atcb-dropup,.atcb-dropoverlay){animation:list-entrance-bottom .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropup{animation:list-entrance-top .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropoverlay{animation:list-entrance-center .2s ease 0s 1 normal forwards;z-index:15000000}@keyframes list-entrance-bottom{0%{opacity:0;transform:translateY(250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-top{0%{opacity:0;transform:translateY(-250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-center{0%{opacity:0;transform:scaleY(1)}1%{opacity:1;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}.atcb-list{background-color:var(--list-background);border-radius:var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:var(--list-min-width);position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto;height:1em;width:1em}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:21px;box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.atcb-modal-content.no-headline{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;padding-top:1.8em}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline,.rsvp-inline-wrapper.atcb-modal-box{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em}.pro-form{text-align:left}.pro-form:not(.no-intro){border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em}.pro-form.no-intro:not(.no-headline){padding-top:.5em}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:1.2em;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:1px solid var(--modal-btn-text);border-radius:var(--input-border-radius);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\n \"date\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#d2d2d2;--btn-border-radius:4px;--btn-text:#333;--btn-hover-text:#000;--btn-shadow:rgba(0 0 0 / 13%) 0 4px 10px -2px,rgba(0 0 0 / 18%) 0 2px 3px -1px;--btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 12px -2px,rgba(0 0 0 / 25%) 0 3px 5px -2px;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-font-weight:400;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-shadow:rgba(0 0 0 / 20%) 0 4px 13px -2px,rgba(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 50%) 0 4px 30px -3px,rgba(0 0 0 / 30%) 0 2px 8px -2px;--modal-text:#000;--modal-text-align:left;--modal-text-align-rtl:right;--modal-background:#f5f5f5;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 65%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 10%) 0 2px 3px -1px;--modal-btn-hover-shadow:rgba(0 0 0 / 25%) 0 5px 13px -2px,rgba(0 0 0 / 20%) 0 3px 5px -2px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:3px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgba(0 0 0 / 10%) 0 4px 10px -2px,rgba(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgba(0 0 0 / 20%) 0 5px 12px -2px,rgba(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgba(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#474747;--btn-border:#4d4d4d;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgba(0 0 0 / 70%) 0 0 25px -2px,rgba(0 0 0 / 40%) 1px 2px 4px -1px;--btn-hover-shadow:rgba(0 0 0 / 90%) 2px 3px 25px -3px,rgba(0 0 0 / 50%) 1px 4px 6px -2px;--list-background:#2e2e2e;--list-hover-background:#474747;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(0 0 0 / 60%) 0 4px 20px -2px,rgba(0 0 0 / 40%) 0 2px 4px -1px;--list-modal-shadow:rgba(0 0 0 / 40%) -1px 3px 30px 2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgba(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 40%) 3px 3px 10px -2px,rgba(0 0 0 / 40%) 1px 2px 5px -1px;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgba(0 0 0 / 60%) 0 0 20px -2px,rgba(0 0 0 / 30%) 1px 2px 3px -1px;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button,.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:var(--btn-border-radius);padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.atcb-subevent-btn{width:100%}.atcb-button{box-shadow:var(--btn-shadow);min-width:16em;max-width:18em;position:relative;z-index:1}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus,.atcb-button:hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow)}.atcb-button:focus-visible,.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not(.atcb-active):hover,.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:var(--btn-border-radius) 0 0 var(--btn-border-radius);align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 var(--btn-border-radius) var(--btn-border-radius) 0}.atcb-button:hover .atcb-date-btn-left,.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-button:not(.atcb-active):hover .atcb-date-btn-hover,.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-button:not(.atcb-active):hover .atcb-date-btn-details,.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:4px;height:1px;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;font-weight:var(--list-font-weight);padding:0 4px;position:absolute;z-index:14000090}.atcb-list-wrapper.atcb-dropoverlay{z-index:15000000}.atcb-list{border-radius:0 0 var(--btn-border-radius) var(--btn-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:.8em;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--btn-border-radius) var(--btn-border-radius)}.atcb-dropup .atcb-list-item:last-child{border-radius:0;padding-bottom:1.25em}.atcb-dropoverlay .atcb-list .atcb-list-item:first-child,.atcb-dropup .atcb-list-item:first-child,.atcb-list.atcb-modal .atcb-list-item:first-child{border-radius:var(--btn-border-radius) var(--btn-border-radius) 0 0}.atcb-dropoverlay .atcb-list .atcb-list-item:only-child,.atcb-list.atcb-modal .atcb-list-item:only-child{border-radius:var(--btn-border-radius)}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:1.25em}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:.8em}.atcb-dropoverlay .atcb-list,.atcb-list.atcb-modal{border-radius:var(--btn-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--btn-border-radius) var(--btn-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--btn-border-radius) var(--btn-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--btn-border-radius) var(--btn-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.pro{text-align:center}.pro ol,.pro ul{margin:auto;text-align:left;width:fit-content}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro-form{border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em;text-align:left}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding:1.5em 0;text-align:center}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.atcb-modal-content .pro p{margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgba(255 255 255 / 80%));height:auto;padding:8px 0;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\"\n};\nconst atcbIsBrowser = () => {\n if (typeof window === 'undefined') {\n return false;\n } else {\n return true;\n }\n};\nconst atcbIsiOS = atcbIsBrowser() ? () => {\n if (/iPad|iPhone|iPod/i.test(navigator.userAgent) && !/MSStream/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n} : () => {\n return false;\n};\nconst atcbIsAndroid = atcbIsBrowser() ? () => {\n if (/android/i.test(navigator.userAgent) && !/MSStream/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n} : () => {\n return false;\n};\n/*const atcbIsChrome = atcbIsBrowser()\n ? () => {\n if (/chrome|chromium|crios|google inc/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };*/\nconst atcbIsSafari = atcbIsBrowser() ? () => {\n if (/^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n} : () => {\n return false;\n};\nconst atcbIsMobile = () => {\n if (atcbIsAndroid() || atcbIsiOS()) {\n return true;\n } else {\n return false;\n }\n};\nconst atcbIsWebView = atcbIsBrowser() ? () => {\n if (/(; ?wv|(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari))/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n} : () => {\n return false;\n};\nconst atcbIsProblematicWebView = atcbIsBrowser() ? () => {\n if (/(Instagram)/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n} : () => {\n return false;\n};\nconst atcbDefaultTarget = atcbIsWebView() ? '_system' : '_blank';\nconst atcbOptions = ['apple', 'google', 'ical', 'ms365', 'outlookcom', 'msteams', 'yahoo'];\nconst atcbValidRecurrOptions = ['apple', 'google', 'ical'];\nconst atcbInvalidSubscribeOptions = ['msteams'];\nconst atcbIOSInvalidOptions = ['ical'];\nconst atcbAndroidInvalidOptions = ['apple'];\nconst atcbStates = [];\nconst atcbWcParams = ['debug', 'proOverride', 'cspnonce', 'identifier', 'name', 'dates', 'description', 'startDate', 'startTime', 'endDate', 'endTime', 'timeZone', 'useUserTZ', 'location', 'status', 'uid', 'organizer', 'attendee', 'icsFile', 'images', 'recurrence', 'recurrence_until', 'recurrence_byDay', 'recurrence_byMonth', 'recurrence_byMonthDay', 'recurrence_weekstart', 'sequence', 'recurrence_interval', 'recurrence_count', 'availability', 'created', 'updated', 'subscribe', 'options', 'optionsMobile', 'optionsIOS', 'iCalFileName', 'listStyle', 'buttonStyle', 'trigger', 'hideIconButton', 'hideIconList', 'hideIconModal', 'hideTextLabelButton', 'hideTextLabelList', 'buttonsList', 'hideBackground', 'hideCheckmark', 'hideBranding', 'size', 'label', 'inline', 'inlineRsvp', 'customLabels', 'customCss', 'lightMode', 'language', 'hideRichData', 'bypassWebViewCheck', 'blockInteraction', 'styleLight', 'styleDark', 'disabled', 'hidden', 'hideButton', 'pastDateHandling', 'proxy', 'fakeMobile', 'fakeIOS', 'fakeAndroid', 'forceOverlay', 'rsvp', 'ty', 'customVar', 'dev'];\nconst atcbWcProParams = ['debug', 'proOverride', 'cspnonce', 'attendee', 'images', 'size', 'inline', 'inlineRsvp', 'customLabels', 'customCss', 'lightMode', 'language', 'bypassWebViewCheck', 'blockInteraction', 'styleLight', 'styleDark', 'disabled', 'hidden', 'fakeMobile', 'fakeIOS', 'fakeAndroid', 'forceOverlay', 'customVar', 'proxy', 'dev'];\nconst atcbWcBooleanParams = ['debug', 'proOverride', 'useUserTZ', 'hideIconButton', 'hideIconList', 'hideIconModal', 'hideTextLabelButton', 'hideTextLabelList', 'subscribe', 'hideBackground', 'hideCheckmark', 'hideBranding', 'inlineRsvp', 'hideRichData', 'buttonsList', 'inline', 'bypassWebViewCheck', 'blockInteraction', 'disabled', 'hidden', 'hideButton', 'proxy', 'fakeMobile', 'fakeIOS', 'fakeAndroid', 'forceOverlay', 'dev'];\nconst atcbWcObjectParams = ['customLabels', 'ty', 'rsvp', 'customVar'];\nconst atcbWcObjectArrayParams = ['dates'];\nconst atcbWcArrayParams = ['images', 'options', 'optionsMobile', 'optionsIOS'];\nconst atcbWcNumberParams = ['sequence', 'recurrence_interval', 'recurrence_count'];\nconst atcbIcon = {\n trigger: '',\n apple: '',\n google: '',\n ical: '',\n msteams: '',\n ms365: '',\n outlookcom: '',\n yahoo: '',\n close: '',\n location: '',\n warning: '',\n checkmark: '',\n rsvp: ''\n};\nasync function atcb_decorate_data(data) {\n data = atcb_decorate_data_boolean(data);\n data.timeZone = atcb_decorate_data_timezone(data.timeZone);\n data = atcb_decorate_data_rrule(data);\n data = atcb_decorate_data_options(data);\n data = atcb_decorate_data_style(data);\n data.sizes = atcb_decorate_sizes(data.size);\n data.lightMode = atcb_decorate_light_mode(data.lightMode);\n data = atcb_decorate_data_i18n(data);\n data = atcb_decorate_data_dates(data);\n data = atcb_decorate_data_meta(data);\n data = atcb_decorate_data_extend(data);\n data = atcb_decorate_data_button_status_handling(data);\n data = await atcb_decorate_data_rsvp(data);\n return data;\n}\nfunction atcb_decorate_data_boolean(data) {\n for (let i = 0; i < atcbWcBooleanParams.length; i++) {\n const attr = atcbWcBooleanParams[`${i}`];\n if (data[`${attr}`]) {\n if (typeof data[`${attr}`] !== 'boolean') {\n const val = data[`${attr}`].toString().trim().toLowerCase() || '';\n data[`${attr}`] = val === '' || val === 'true' ? true : false;\n }\n } else {\n data[`${attr}`] = false;\n }\n }\n return data;\n}\nfunction atcb_decorate_data_timezone() {\n let tz = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n if (!tz || tz === '') {\n return 'GMT';\n }\n return tz;\n}\nfunction atcb_decorate_data_rrule(data) {\n if (data.recurrence && data.recurrence !== '') {\n data.recurrence = data.recurrence.replace(/\\s+/g, '').toUpperCase();\n if (!/^(RRULE:[\\w=;,:+-/\\\\]+|daily|weekly|monthly|yearly)$/im.test(data.recurrence)) {\n data.recurrence = '!wrong rrule format!';\n } else {\n if (/^RRULE:/i.test(data.recurrence)) {\n data.recurrence_simplyfied = false;\n const rruleParts = data.recurrence.substring(6).split(';');\n const rruleObj = new Object();\n rruleParts.forEach(function (rule) {\n rruleObj[rule.split('=')[0]] = rule.split('=')[1];\n });\n data.recurrence_until = rruleObj.UNTIL ? rruleObj.UNTIL : '';\n data.recurrence_count = rruleObj.COUNT ? rruleObj.COUNT : '';\n data.recurrence_byDay = rruleObj.BYDAY ? rruleObj.BYDAY : '';\n data.recurrence_byMonth = rruleObj.BYMONTH ? rruleObj.BYMONTH : '';\n data.recurrence_byMonthDay = rruleObj.BYMONTHDAY ? rruleObj.BYMONTHDAY : '';\n data.recurrence_interval = rruleObj.INTERVAL ? rruleObj.INTERVAL : 1;\n data.recurrence_frequency = rruleObj.FREQ ? rruleObj.FREQ : '';\n } else {\n data.recurrence_simplyfied = true;\n if (!data.recurrence_interval || data.recurrence_interval === '') {\n data.recurrence_interval = 1;\n }\n if (!data.recurrence_weekstart || data.recurrence_weekstart === '' | data.recurrence_weekstart.length > 2) {\n data.recurrence_weekstart = 'MO';\n }\n data.recurrence_frequency = data.recurrence;\n data.recurrence = 'RRULE:FREQ=' + data.recurrence + ';WKST=' + data.recurrence_weekstart + ';INTERVAL=' + data.recurrence_interval;\n if (data.recurrence_until && data.recurrence_until !== '') {\n if (data.endTime && data.endTime !== '') {\n data.recurrence = data.recurrence + ';UNTIL=' + data.recurrence_until.replace(/-/g, '').slice(0, 8) + 'T' + data.endTime.replace(':', '') + '00';\n } else {\n data.recurrence = data.recurrence + ';UNTIL=' + data.recurrence_until.replace(/-/g, '').slice(0, 8);\n }\n }\n if (data.recurrence_count && data.recurrence_count !== '') {\n data.recurrence = data.recurrence + ';COUNT=' + data.recurrence_count;\n }\n if (data.recurrence_byDay && data.recurrence_byDay !== '') {\n data.recurrence = data.recurrence + ';BYDAY=' + data.recurrence_byDay;\n }\n if (data.recurrence_byMonth && data.recurrence_byMonth !== '') {\n data.recurrence = data.recurrence + ';BYMONTH=' + data.recurrence_byMonth;\n }\n if (data.recurrence_byMonthDay && data.recurrence_byMonthDay !== '') {\n data.recurrence = data.recurrence + ';BYMONTHDAY=' + data.recurrence_byMonthDay;\n }\n }\n }\n }\n return data;\n}\nfunction atcb_decorate_data_options(data) {\n const theOptions = function () {\n if (atcbIsiOS() || data.fakeIOS) {\n if (data.optionsIOS && data.optionsIOS.length > 0) {\n return data.optionsIOS;\n }\n if (data.optionsMobile && data.optionsMobile.length > 0) {\n return data.optionsMobile;\n }\n }\n if ((atcbIsAndroid() || data.fakeMobile || data.fakeAndroid) && data.optionsMobile && data.optionsMobile.length > 0) {\n return data.optionsMobile;\n }\n return data.options || ['ical'];\n }();\n let newOptions = [];\n let iCalGiven = false;\n let appleGiven = false;\n for (let i = 0; i < theOptions.length; i++) {\n const cleanOption = theOptions[`${i}`].split('|');\n const optionName = cleanOption[0].toLowerCase().replace('microsoft', 'ms').replace(/\\./, '');\n if (optionName === 'apple') {\n appleGiven = true;\n }\n if (optionName === 'ical') {\n iCalGiven = true;\n }\n if ((atcbIsiOS() || data.fakeIOS) && atcbIOSInvalidOptions.includes(optionName) || (atcbIsAndroid() || data.fakeAndroid) && atcbAndroidInvalidOptions.includes(optionName) || data.recurrence && data.recurrence !== '' && (!atcbValidRecurrOptions.includes(optionName) || data.recurrence_until && data.recurrence_until !== '' && (optionName === 'apple' || optionName === 'ical') || (atcbIsiOS() || data.fakeIOS) && optionName === 'google') || data.subscribe && atcbInvalidSubscribeOptions.includes(optionName)) {\n continue;\n }\n if ((atcbIsMobile() || data.fakeMobile) && data.subscribe && (optionName === 'ms365' || optionName === 'outlookcom')) {\n continue;\n }\n newOptions.push(optionName);\n }\n if (data.subscribe && data.icsFile && data.icsFile.startsWith('https://calendar.google.com/calendar/') && !data.icsFile.endsWith('.ics')) {\n newOptions = ['google'];\n }\n if (newOptions.length === 0) {\n if (!atcbIsiOS() && !data.fakeIOS) {\n newOptions.push('ical');\n }\n iCalGiven = true;\n }\n if ((atcbIsiOS() || data.fakeIOS) && iCalGiven && !appleGiven) {\n newOptions.push('apple');\n }\n if ((atcbIsAndroid() || data.fakeAndroid) && appleGiven && !iCalGiven) {\n newOptions.push('ical');\n }\n data.options = newOptions;\n return data;\n}\nfunction atcb_decorate_data_style(data) {\n if (data.inlineRSVP) {\n data.inline = true;\n }\n if (!data.listStyle || data.listStyle === '') {\n data.listStyle = 'dropdown';\n }\n if (data.listStyle === 'modal') {\n data.trigger = 'click';\n }\n if (data.buttonStyle && data.buttonStyle !== '' && data.buttonStyle != 'default') {\n if (data.buttonStyle == 'round' || data.buttonStyle == 'text' || data.buttonStyle == 'date' || data.buttonStyle == 'neumorphism') {\n data.trigger = 'click';\n }\n } else {\n data.buttonStyle = 'default';\n }\n if ((data.buttonStyle == 'default' || data.buttonStyle == '3d' || data.buttonStyle == 'flat') && !data.hideTextLabelList && data.hideTextLabelButton && (data.listStyle == 'dropdown' || data.listStyle == 'dropdown-static' || data.listStyle == 'dropup-static')) {\n data.listStyle = 'overlay';\n }\n if (data.buttonsList && data.buttonStyle == 'date') {\n data.buttonsList = false;\n }\n return data;\n}\nfunction atcb_decorate_sizes(size) {\n const sizes = [];\n sizes['l'] = sizes['m'] = sizes['s'] = 16;\n if (size && size !== '') {\n const sizeParts = size.split('|');\n for (let i = 0; i < sizeParts.length; i++) {\n sizeParts[`${i}`] = parseInt(sizeParts[`${i}`]);\n }\n if (sizeParts[0] >= 0 && sizeParts[0] < 11) {\n sizes['l'] = sizes['m'] = sizes['s'] = 10 + sizeParts[0];\n }\n if (sizeParts.length > 2) {\n if (sizeParts[1] >= 0 && sizeParts[1] < 11) {\n sizes['m'] = 10 + sizeParts[1];\n }\n if (sizeParts[2] >= 0 && sizeParts[2] < 11) {\n sizes['s'] = 10 + sizeParts[2];\n }\n } else if (sizeParts.length == 2) {\n if (sizeParts[1] >= 0 && sizeParts[1] < 11) {\n sizes['m'] = sizes['s'] = 10 + sizeParts[1];\n }\n }\n }\n return sizes;\n}\nfunction atcb_decorate_light_mode() {\n let lightMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n if (lightMode == 'system' && atcbIsBrowser()) {\n const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)');\n return prefersDarkScheme.matches ? 'dark' : 'light';\n }\n if (lightMode != 'bodyScheme' && lightMode != 'dark') {\n return 'light';\n }\n return lightMode;\n}\nfunction atcb_decorate_data_i18n(data) {\n if (!data.language || data.language === '' || !availableLanguages.includes(data.language)) {\n data.language = 'en';\n }\n if (data.language.length > 2) {\n data.language = data.language.substring(0, 2);\n }\n if (rtlLanguages.includes(data.language)) {\n data.rtl = true;\n } else {\n data.rtl = false;\n }\n return data;\n}\nfunction atcb_decorate_data_dates(data) {\n if (data.dates && data.dates.length > 0) {\n for (let i = 0; i < data.dates.length; i++) {\n if (!data.dates[`${i}`].timeZone && data.timeZone) {\n data.dates[`${i}`].timeZone = data.timeZone;\n }\n if (!data.dates[`${i}`].useUserTZ && data.useUserTZ) {\n data.dates[`${i}`].useUserTZ = data.useUserTZ;\n }\n const cleanedUpDates = atcb_date_cleanup(data.dates[`${i}`]);\n data.dates[`${i}`].startDate = cleanedUpDates.startDate;\n data.dates[`${i}`].endDate = cleanedUpDates.endDate;\n data.dates[`${i}`].startTime = cleanedUpDates.startTime;\n data.dates[`${i}`].endTime = cleanedUpDates.endTime;\n data.dates[`${i}`].timeZone = cleanedUpDates.timeZone;\n data.dates[`${i}`].timestamp = atcb_date_specials_calculation('timestamp', data.dates[`${i}`].startDate, data.dates[`${i}`].startTime, data.dates[`${i}`].timeZone);\n data.dates[`${i}`].overdue = atcb_date_specials_calculation('overdue', data.dates[`${i}`].endDate, data.dates[`${i}`].endTime, data.dates[`${i}`].timeZone);\n }\n } else {\n data.dates = [];\n data.dates[0] = new Object();\n if (data.useUserTZ) data.dates[0].useUserTZ = data.useUserTZ;\n const cleanedUpDates = atcb_date_cleanup(data);\n data.startDate = data.dates[0].startDate = cleanedUpDates.startDate;\n data.endDate = data.dates[0].endDate = cleanedUpDates.endDate;\n data.startTime = data.dates[0].startTime = cleanedUpDates.startTime;\n data.endTime = data.dates[0].endTime = cleanedUpDates.endTime;\n data.timeZone = data.dates[0].timeZone = cleanedUpDates.timeZone;\n if (!data.recurrence) {\n data.dates[0].overdue = atcb_date_specials_calculation('overdue', data.endDate, data.endTime, data.timeZone);\n } else {\n data.dates[0].overdue = false;\n }\n }\n const now = new Date();\n if (!data.created || data.created === '') {\n data.created = atcb_format_datetime(now, 'clean', true);\n }\n if (!data.updated || data.updated === '') {\n data.updated = atcb_format_datetime(now, 'clean', true);\n }\n return data;\n}\nfunction atcb_decorate_data_meta(data) {\n if (!data.status || data.status === '') {\n data.status = 'CONFIRMED';\n }\n if (!data.sequence || data.sequence === '') {\n data.sequence = 0;\n }\n return data;\n}\nfunction atcb_decorate_data_description(data, i) {\n const cleanDescription = desc => desc.replace(/(\\\\r\\\\n|\\\\n|\\\\r|)/g, '');\n let description = data.dates[`${i}`].description || data.description || '';\n if (description) {\n description = cleanDescription(description);\n if (data.customVar) {\n for (const key in data.customVar) {\n const sanitizedKey = key.replace(/[^a-zA-Z0-9\\-_.]/g, '');\n // eslint-disable-next-line security/detect-non-literal-regexp\n description = description.replace(new RegExp(`%%${sanitizedKey}%%`, 'g'), data.customVar[`${key}`]);\n }\n }\n const descriptionHtmlFree = atcb_rewrite_html_elements(description, true);\n const descriptionHtmlFreeICal = atcb_rewrite_html_elements(description, true, true);\n description = atcb_rewrite_html_elements(description);\n data.dates[`${i}`] = {\n ...data.dates[`${i}`],\n description,\n descriptionHtmlFree,\n descriptionHtmlFreeICal\n };\n } else {\n data.dates[`${i}`].descriptionHtmlFree = data.dates[`${i}`].descriptionHtmlFreeICal = data.dates[`${i}`].description = '';\n }\n return data;\n}\nfunction atcb_decorate_data_extend(data) {\n for (let i = 0; i < data.dates.length; i++) {\n data = atcb_decorate_data_description(data, i);\n if (!data.dates[`${i}`].name || data.dates[`${i}`].name === '') {\n data.dates[`${i}`].name = data.name;\n }\n if (!data.dates[`${i}`].status) {\n data.dates[`${i}`].status = data.status.toUpperCase();\n } else {\n data.dates[`${i}`].status = data.dates[`${i}`].status.toUpperCase();\n }\n if (!data.dates[`${i}`].sequence) {\n data.dates[`${i}`].sequence = data.sequence;\n }\n if (!data.dates[`${i}`].organizer && data.organizer) {\n data.dates[`${i}`].organizer = data.organizer;\n }\n if (!data.dates[`${i}`].attendee && data.attendee) {\n data.dates[`${i}`].attendee = data.attendee;\n }\n if (!data.dates[`${i}`].availability && data.availability) {\n data.dates[`${i}`].availability = data.availability.toLowerCase();\n } else if (data.dates[`${i}`].availability) {\n data.dates[`${i}`].availability = data.dates[`${i}`].availability.toLowerCase();\n }\n if (!data.dates[`${i}`].location && data.location) {\n data.dates[`${i}`].location = data.location;\n }\n if (data.dates[`${i}`].location && data.dates[`${i}`].location.startsWith('http')) {\n data.dates[`${i}`].onlineEvent = true;\n } else {\n data.dates[`${i}`].onlineEvent = false;\n }\n if (!data.dates[`${i}`].uid) {\n if (i === 0 && data.uid && data.uid !== '') {\n data.dates[0].uid = data.uid;\n } else {\n if (data.uid && data.uid !== '') {\n data.dates[`${i}`].uid = data.uid + '-' + (i + 1);\n } else {\n data.dates[`${i}`].uid = atcb_generate_uuid();\n }\n }\n }\n if (data.customVar) {\n for (const key in data.customVar) {\n const sanitizedKey = key.replace(/[^a-zA-Z0-9\\-_.]/g, '');\n // eslint-disable-next-line security/detect-non-literal-regexp\n data.dates[`${i}`].name = data.dates[`${i}`].name.replace(new RegExp(`%%${sanitizedKey}%%`, 'g'), data.customVar[`${key}`]);\n // eslint-disable-next-line security/detect-non-literal-regexp\n data.dates[`${i}`].location = data.dates[`${i}`].location.replace(new RegExp(`%%${sanitizedKey}%%`, 'g'), data.customVar[`${key}`]);\n }\n }\n }\n if (data.recurrence && data.recurrence !== '') {\n data.dates[0].recurrence = data.recurrence;\n }\n if (data.dates.length > 1) {\n data.dates.sort((a, b) => a.timestamp - b.timestamp);\n }\n return data;\n}\nfunction atcb_date_cleanup(dateTimeData) {\n if (!dateTimeData.endDate || dateTimeData.endDate === '') {\n dateTimeData.endDate = dateTimeData.startDate;\n }\n const endpoints = ['start', 'end'];\n endpoints.forEach(function (point) {\n if (!/^(\\d{4}-\\d{2}-\\d{2}T?(?:\\d{2}:\\d{2}|)Z?|today(?:\\+\\d{1,4}|))$/i.test(dateTimeData[point + 'Date'])) {\n dateTimeData[point + 'Date'] = 'badly-formed';\n } else {\n dateTimeData[point + 'Date'] = atcb_date_calculation(dateTimeData[point + 'Date']);\n if (dateTimeData[point + 'Date']) {\n dateTimeData[point + 'Date'] = dateTimeData[point + 'Date'].replace(/\\.\\d{3}/, '').replace('Z', '');\n const tmpSplitStartDate = dateTimeData[point + 'Date'].split('T');\n if (tmpSplitStartDate[1]) {\n dateTimeData[point + 'Date'] = tmpSplitStartDate[0];\n dateTimeData[point + 'Time'] = tmpSplitStartDate[1];\n }\n }\n if (dateTimeData[point + 'Time'] && dateTimeData[point + 'Time'].length === 8) {\n const timeStr = dateTimeData[point + 'Time'];\n dateTimeData[point + 'Time'] = timeStr.substring(0, timeStr.length - 3);\n }\n }\n });\n if (dateTimeData.timeZone === 'currentBrowser' || dateTimeData.useUserTZ) {\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'GMT';\n if (dateTimeData.useUserTZ && dateTimeData.startTime && dateTimeData.startTime !== '' && dateTimeData.endTime && dateTimeData.endTime !== '') {\n const newStartDateTime = atcb_translate_via_time_zone(dateTimeData.startDate, dateTimeData.startTime, dateTimeData.timeZone, browserTimezone);\n const newEndDateTime = atcb_translate_via_time_zone(dateTimeData.endDate, dateTimeData.endTime, dateTimeData.timeZone, browserTimezone);\n dateTimeData.startDate = newStartDateTime[0];\n dateTimeData.startTime = newStartDateTime[1];\n dateTimeData.endDate = newEndDateTime[0];\n dateTimeData.endTime = newEndDateTime[1];\n }\n dateTimeData.timeZone = browserTimezone;\n }\n return dateTimeData;\n}\nfunction atcb_date_specials_calculation(type, dateString) {\n let timeString = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n let timeZone = arguments.length > 3 ? arguments[3] : undefined;\n try {\n const tmpDate = function () {\n if (timeString) {\n const offsetEnd = tzlib_get_offset(timeZone, dateString, timeString);\n return new Date(dateString + ' ' + timeString + ':00 GMT' + offsetEnd);\n }\n return new Date(dateString);\n }();\n if (type === 'timestamp') {\n return tmpDate.getTime();\n }\n if (!timeString) {\n tmpDate.setDate(tmpDate.getDate() + 1);\n }\n const currentUtcDate = new Date().toISOString();\n return tmpDate.getTime() < new Date(currentUtcDate).getTime();\n } catch (e) {\n return false;\n }\n}\nfunction atcb_date_calculation(dateString) {\n const today = new Date();\n const todayString = today.getUTCFullYear() + '-' + (today.getUTCMonth() + 1) + '-' + today.getUTCDate();\n dateString = dateString.replace(/today/gi, todayString);\n const dateStringParts = dateString.split('+');\n const dateParts = dateStringParts[0].split('-');\n let newDate = function () {\n if (dateParts[0].length < 4) {\n return new Date(Date.UTC(dateParts[2], dateParts[0] - 1, dateParts[1]));\n }\n return new Date(Date.UTC(dateParts[0], dateParts[1] - 1, dateParts[2]));\n }();\n if (dateStringParts[1] && dateStringParts[1] > 0) {\n newDate.setDate(newDate.getDate() + parseInt(dateStringParts[1]));\n }\n try {\n return newDate.toISOString().replace(/T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z/g, '');\n } catch (e) {\n return false;\n }\n}\nfunction atcb_decorate_data_button_status_handling(data) {\n if (!data.pastDateHandling || data.pastDateHandling != 'disable' && data.pastDateHandling != 'hide') {\n data.pastDateHandling = 'none';\n }\n data.allOverdue = function () {\n for (let i = 0; i < data.dates.length; i++) {\n if (!data.dates[`${i}`].overdue) {\n return false;\n }\n }\n return true;\n }();\n if (data.allOverdue) {\n if (data.pastDateHandling == 'disable') {\n data.disabled = true;\n } else if (data.pastDateHandling == 'hide') {\n data.hidden = true;\n }\n }\n data.allCancelled = function () {\n for (let i = 0; i < data.dates.length; i++) {\n if (!data.dates[`${i}`].status || data.dates[`${i}`].status.toLowerCase() !== 'cancelled') {\n return false;\n }\n }\n return true;\n }();\n if (data.disabled || data.hidden) {\n data.blockInteraction = true;\n }\n return data;\n}\nasync function atcb_decorate_data_rsvp(data) {\n if (typeof atcb_check_booked_out !== 'function' || !data.rsvp || Object.keys(data.rsvp).length === 0) return data;\n data.rsvp.expired = function () {\n if (data.rsvp && data.rsvp.expires && new Date(data.rsvp.expires) < new Date()) {\n return true;\n }\n return false;\n }();\n data.rsvp.bookedOut = await atcb_check_booked_out(data);\n if (data.rsvp.expired || data.rsvp.bookedOut) {\n data.blockInteraction = true;\n }\n if (data.blockInteraction) {\n data.disabled = true;\n }\n return data;\n}\nasync function atcb_check_required(data) {\n if (!data.name || data.name === '') {\n throw new Error('Add to Calendar Button generation failed: required name information missing');\n }\n if (data.dates != null && data.dates.length > 0) {\n if (data.subscribe === true && data.dates.length > 1) {\n throw new Error('Add to Calendar Button generation failed: a subscription calendar cannot be a multi-date setup');\n }\n const requiredMultiField = ['name', 'startDate'];\n const requiredMultiFieldFlex = ['name'];\n return requiredMultiField.every(function (field) {\n for (let i = 0; i < data.dates.length; i++) {\n if (!requiredMultiFieldFlex.includes(`${field}`) && (!data.dates[`${i}`][`${field}`] || data.dates[`${i}`][`${field}`] === '') || requiredMultiFieldFlex.includes(`${field}`) && (!data.dates[`${i}`][`${field}`] || data.dates[`${i}`][`${field}`] === '') && (!data[`${field}`] || data[`${field}`] === '')) {\n if (!data.subscribe || field !== 'startDate') {\n throw new Error('Add to Calendar Button generation failed: required setting missing [dates array object #' + (i + 1) + '/' + data.dates.length + '] => [' + field + ']');\n } else {\n data.dates[`${i}`].startDate = 'today';\n }\n }\n }\n return true;\n });\n } else {\n const requiredSingleField = ['startDate'];\n return requiredSingleField.every(function (field) {\n if (!data[`${field}`] || data[`${field}`] === '') {\n if (!data.subscribe || field !== 'startDate') {\n throw new Error('Add to Calendar Button generation failed: required setting missing [' + field + ']');\n } else {\n data.startDate = 'today';\n }\n }\n return true;\n });\n }\n}\nasync function atcb_validate(data) {\n const msgPrefix = 'Add to Calendar Button generation (' + data.identifier + ')';\n try {\n await atcb_validate_icsFile(data, msgPrefix);\n await atcb_validate_buttonStyle(data, msgPrefix);\n await atcb_validate_subscribe(data, msgPrefix);\n await atcb_validate_created(data, msgPrefix);\n await atcb_validate_updated(data, msgPrefix);\n await atcb_validate_options(data, msgPrefix);\n await atcb_validate_date_blocks(data, msgPrefix);\n await atcb_validate_rrule(data, msgPrefix);\n if (data.recurrence_simplyfied) {\n await atcb_validate_rrule_simplyfied(data, msgPrefix);\n }\n return true;\n } catch (e) {\n throw new Error(e.message);\n }\n}\nasync function atcb_validate_icsFile(data, msgPrefix) {\n let i = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n let msgSuffix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n const icsFileStr = function () {\n if (i !== '' && data.dates[`${i}`].icsFile) {\n return data.dates[`${i}`].icsFile;\n }\n if (i === '' && data.icsFile) {\n return data.icsFile;\n }\n return '';\n }();\n if (icsFileStr !== '') {\n if (!atcb_secure_url(icsFileStr, false) || !data.icsFile.startsWith('https://') && !data.icsFile.startsWith('http://')) {\n throw new Error(msgPrefix + ' failed: explicit ics file path not valid' + msgSuffix);\n }\n }\n return true;\n}\nasync function atcb_validate_buttonStyle(data, msgPrefix) {\n const availableStyles = ['default', '3d', 'flat', 'round', 'neumorphism', 'text', 'date', 'custom', 'none'];\n if (!availableStyles.includes(data.buttonStyle)) {\n throw new Error(msgPrefix + ' failed: provided buttonStyle invalid');\n }\n if (data.customCss && data.customCss !== '' && (!atcb_secure_url(data.customCss, false) || !/\\.css($|\\?)/.test(data.customCss))) {\n throw new Error(msgPrefix + ' failed: customCss provided, but no valid url');\n }\n if ((!data.customCss || data.customCss === '') && data.buttonStyle === 'custom') {\n throw new Error(msgPrefix + ' failed: buttonStyle \"custom\" selected, but no customCss file provided');\n }\n if (data.rsvp && (data.buttonStyle === 'date' || data.buttonStyle === 'none')) {\n throw new Error(msgPrefix + ' failed: buttonStyle ' + data.buttonStyle + ' is not compatible with the RSVP functionality');\n }\n return true;\n}\nasync function atcb_validate_subscribe(data, msgPrefix) {\n if (data.subscribe === true && (!data.icsFile || data.icsFile === '')) {\n throw new Error(msgPrefix + ' failed: a subscription calendar requires a valid explicit ics file as well');\n }\n return true;\n}\nasync function atcb_validate_created(data, msgPrefix) {\n if (!/^\\d{8}T\\d{6}Z$/.test(data.created)) {\n throw new Error(msgPrefix + ' failed: created date format not valid. Needs to be a full ISO-8601 UTC date and time string, formatted YYYYMMDDTHHMMSSZ');\n }\n return true;\n}\nasync function atcb_validate_updated(data, msgPrefix) {\n if (!/^\\d{8}T\\d{6}Z$/.test(data.updated)) {\n throw new Error(msgPrefix + ' failed: updated date format not valid. Needs to be a full ISO-8601 UTC date and time string, formatted YYYYMMDDTHHMMSSZ');\n }\n return true;\n}\nasync function atcb_validate_options(data, msgPrefix) {\n const isValid = data.options.every(option => {\n if (!atcbOptions.includes(option)) {\n throw new Error(`${msgPrefix} failed: invalid option [${option}]`);\n }\n return true;\n });\n return isValid;\n}\nasync function atcb_validate_date_blocks(data, msgPrefix) {\n try {\n for (let i = 0; i < data.dates.length; i++) {\n const msgSuffix = function () {\n if (data.dates.length === 1) {\n return '';\n } else {\n return ' [dates array object #' + (i + 1) + '/' + data.dates.length + '] ';\n }\n }();\n await atcb_validate_icsFile(data, msgPrefix, i, msgSuffix);\n await atcb_validate_status(data, msgPrefix, i, msgSuffix);\n await atcb_validate_availability(data, msgPrefix, i, msgSuffix);\n await atcb_validate_organizer(data, msgPrefix, i, msgSuffix);\n await atcb_validate_attendee(data, msgPrefix, i, msgSuffix);\n await atcb_validate_uid(data, msgPrefix, i, msgSuffix);\n await atcb_validate_sequence(data, msgPrefix, i, msgSuffix);\n await atcb_validate_timezone(data, msgPrefix, i, msgSuffix);\n await atcb_validate_datetime(data, msgPrefix, i, msgSuffix);\n }\n return true;\n } catch (e) {\n throw new Error(e.message);\n }\n}\nasync function atcb_validate_status(data, msgPrefix, i, msgSuffix) {\n const allowedStatuses = ['tentative', 'confirmed', 'cancelled'];\n if (!allowedStatuses.includes(data.dates[`${i}`].status.toLowerCase())) {\n throw new Error(msgPrefix + ' failed: event status needs to be TENTATIVE, CONFIRMED, or CANCELLED' + msgSuffix);\n }\n return true;\n}\nasync function atcb_validate_availability(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].availability && data.dates[`${i}`].availability !== '' && data.dates[`${i}`].availability !== 'free' && data.dates[`${i}`].availability !== 'busy') {\n throw new Error(msgPrefix + ' failed: event availability needs to be \"free\" or \"busy\"' + msgSuffix);\n }\n return true;\n}\nasync function atcb_validate_organizer(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].organizer && data.dates[`${i}`].organizer !== '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n if (organizerParts.length !== 2 || organizerParts[0].length > 50 || organizerParts[1].length > 80 || !atcb_validEmail(organizerParts[1])) {\n throw new Error(msgPrefix + ' failed: organizer needs to match the schema \"NAME|EMAIL\" with a valid email address' + msgSuffix);\n }\n }\n return true;\n}\nasync function atcb_validate_attendee(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].attendee && data.dates[`${i}`].attendee !== '') {\n if (!data.dates[`${i}`].organizer || data.dates[`${i}`].organizer === '') {\n throw new Error(msgPrefix + ' failed: if an attendee is set, you also need to set the organizer' + msgSuffix);\n }\n const attendeeParts = data.dates[`${i}`].attendee.split('|');\n if (attendeeParts.length === 1 && atcb_validEmail(attendeeParts[0])) {\n return true;\n }\n if (attendeeParts.length !== 2 || attendeeParts[0].length > 50 || attendeeParts[1].length > 80 || !atcb_validEmail(attendeeParts[1])) {\n throw new Error(msgPrefix + ' failed: attendee needs to be a valid email address or match the schema \"NAME|EMAIL\" with EMAIL being a valid email address' + msgSuffix);\n }\n }\n return true;\n}\nasync function atcb_validate_uid(data, msgPrefix, i, msgSuffix) {\n if (!/^(\\w|-){1,254}$/.test(data.dates[`${i}`].uid)) {\n if (data.debug) {\n console.warn(msgPrefix + ': UID not valid. May only contain alpha, digits, and dashes; and be less than 255 characters. Falling back to an automated value!' + msgSuffix);\n }\n data.dates[`${i}`].uid = atcb_generate_uuid();\n }\n if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(data.dates[`${i}`].uid) && data.debug) {\n console.warn(msgPrefix + ': UID is highly recommended to be a hex-encoded random Universally Unique Identifier (UUID)!' + msgSuffix);\n }\n return true;\n}\nasync function atcb_validate_sequence(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].sequence && (data.dates[`${i}`].sequence < 0 || data.dates[`${i}`].sequence % 1 !== 0)) {\n if (data.debug) {\n console.log(msgPrefix + ': sequence needs to be a full number >= 0. Used the default 0 instead' + msgSuffix);\n }\n data.dates[`${i}`].sequence = 0;\n }\n return true;\n}\nasync function atcb_validate_timezone(data, msgPrefix, i, msgSuffix) {\n const validTimeZones = tzlib_get_timezones();\n if (!validTimeZones.includes(data.dates[`${i}`].timeZone)) {\n throw new Error(msgPrefix + ' failed: invalid time zone given' + msgSuffix);\n }\n return true;\n}\nasync function atcb_validate_datetime(data, msgPrefix, i, msgSuffix) {\n const selectedDate = data.dates[`${i}`];\n const dates = ['startDate', 'endDate'];\n const newDate = {};\n dates.forEach(date => {\n const dateString = selectedDate[`${date}`];\n if (dateString.length !== 10) {\n throw new Error(`${msgPrefix} failed: date misspelled [-> YYYY-MM-DD]${msgSuffix}`);\n }\n const dateParts = dateString.split('-');\n if (dateParts.length !== 3) {\n throw new Error(`${msgPrefix} failed: date misspelled [${date}: ${dateString}]${msgSuffix}`);\n }\n newDate[`${date}`] = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]);\n });\n const times = ['startTime', 'endTime'];\n times.forEach(time => {\n const timeString = selectedDate[`${time}`];\n if (timeString) {\n if (timeString.length !== 5) {\n throw new Error(`${msgPrefix} failed: time misspelled [-> HH:MM]${msgSuffix}`);\n }\n const timeParts = timeString.split(':');\n if (timeParts.length !== 2 || timeParts[0] > 23 || timeParts[1] > 59) {\n throw new Error(`${msgPrefix} failed: time misspelled [${time}: ${timeString}]${msgSuffix}`);\n }\n const dateKey = time === 'startTime' ? 'startDate' : 'endDate';\n newDate[`${dateKey}`] = new Date(newDate[`${dateKey}`].getTime() + parseInt(timeParts[0], 10) * 3600000 + parseInt(timeParts[1], 10) * 60000);\n }\n });\n if (selectedDate.startTime && !selectedDate.endTime || !selectedDate.startTime && selectedDate.endTime) {\n throw new Error(`${msgPrefix} failed: if you set a starting or end time, the respective other one also needs to be defined${msgSuffix}`);\n }\n if (newDate.endDate < newDate.startDate) {\n throw new Error(`${msgPrefix} failed: end date before start date${msgSuffix}`);\n }\n return true;\n}\nasync function atcb_validate_rrule(data, msgPrefix) {\n if (data.recurrence && data.recurrence !== '' && data.dates.length > 1) {\n throw new Error(msgPrefix + ' failed: RRULE and multi-date set at the same time');\n }\n if (data.recurrence && data.recurrence !== '' && !/^RRULE:[\\w=;,:+-/\\\\]+$/i.test(data.recurrence)) {\n throw new Error(msgPrefix + ' failed: RRULE data misspelled');\n }\n return true;\n}\nasync function atcb_validate_rrule_simplyfied(data, msgPrefix) {\n if (data.recurrence_interval && (data.recurrence_interval < 1 || data.recurrence_interval % 1 !== 0)) {\n throw new Error(msgPrefix + ' failed: recurrence data (interval) misspelled');\n }\n if (data.recurrence_until && data.recurrence_until !== '' && !/^(\\d|-|:)+$/i.test(data.recurrence_until)) {\n throw new Error(msgPrefix + ' failed: recurrence data (until) misspelled');\n }\n if (data.recurrence_count && (data.recurrence_count < 1 || data.recurrence_count % 1 !== 0)) {\n throw new Error(msgPrefix + ' failed: recurrence data (interval) misspelled');\n }\n if (data.recurrence_byMonth && data.recurrence_byMonth !== '' && !/^(\\d|,)+$/.test(data.recurrence_byMonth)) {\n throw new Error(msgPrefix + ' failed: recurrence data (byMonth) misspelled');\n }\n if (data.recurrence_byMonthDay && data.recurrence_byMonthDay !== '' && !/^(\\d|,)+$/.test(data.recurrence_byMonthDay)) {\n throw new Error(msgPrefix + ' failed: recurrence data (byMonthDay) misspelled');\n }\n if (data.recurrence_byDay && data.recurrence_byDay !== '' && !/^(\\d|-|MO|TU|WE|TH|FR|SA|SU|,)+$/im.test(data.recurrence_byDay)) {\n throw new Error(msgPrefix + ' failed: recurrence data (byDay) misspelled');\n }\n if (data.recurrence_weekstart && data.recurrence_weekstart !== '' && !/^(MO|TU|WE|TH|FR|SA|SU)$/im.test(data.recurrence_weekstart)) {\n throw new Error(msgPrefix + ' failed: recurrence data (weekstart) misspelled');\n }\n return true;\n}\nfunction atcb_toggle(host, action) {\n let data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n let button = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n let keyboardTrigger = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n let generatedButton = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n if (action == 'open') {\n atcb_open(host, data, button, keyboardTrigger, generatedButton);\n } else if (action == 'close' || button.classList.contains('atcb-active') || host.querySelector('.atcb-active-modal')) {\n atcb_close(host, keyboardTrigger);\n } else {\n atcb_open(host, data, button, keyboardTrigger, generatedButton);\n }\n}\nasync function atcb_open(host, data) {\n let button = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n let keyboardTrigger = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n let generatedButton = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n if (host.querySelector('.atcb-list') || host.querySelector('.atcb-modal')) return;\n atcb_log_event('openList', data.identifier, data.identifier);\n atcbStates['active'] = data.identifier;\n const list = atcb_generate_dropdown_list(host, data);\n const listWrapper = document.createElement('div');\n listWrapper.classList.add('atcb-list-wrapper');\n listWrapper.setAttribute('part', 'atcb-list-wrapper');\n if (data.hideTextLabelList) {\n listWrapper.classList.add('atcb-no-text');\n }\n if (button) {\n button.classList.add('atcb-active');\n button.setAttribute('aria-expanded', true);\n if (data.listStyle === 'modal') {\n button.classList.add('atcb-modal-style');\n list.classList.add('atcb-modal');\n } else {\n listWrapper.append(list);\n listWrapper.classList.add('atcb-dropdown');\n if (data.listStyle === 'overlay') {\n listWrapper.classList.add('atcb-dropoverlay');\n }\n }\n if (generatedButton) {\n list.classList.add('atcb-generated-button');\n }\n } else {\n list.classList.add('atcb-modal');\n }\n const bgOverlay = atcb_generate_bg_overlay(host, data.trigger, data.listStyle === 'modal', !data.hideBackground);\n if (data.listStyle === 'modal') {\n const modalHost = await atcb_generate_modal_host(host, data);\n modalHost.querySelector('.atcb-modal-host-initialized').append(bgOverlay);\n bgOverlay.append(list);\n if (!data.hideBranding) {\n atcb_create_atcbl(modalHost, false);\n }\n atcb_set_sizes(list, data.sizes);\n atcb_manage_body_scroll(modalHost);\n atcb_set_fullsize(bgOverlay);\n } else {\n if (data.forceOverlay) {\n host = await atcb_generate_overlay_dom(host, data);\n button = host.querySelector('button.atcb-button');\n }\n host.querySelector('.atcb-initialized').append(listWrapper);\n listWrapper.append(list);\n if (data.buttonStyle != 'default') {\n listWrapper.classList.add('atcb-style-' + data.buttonStyle);\n }\n if (!data.hideBranding) {\n atcb_create_atcbl(host);\n }\n host.append(bgOverlay);\n atcb_set_sizes(list, data.sizes);\n listWrapper.style.display = 'none';\n setTimeout(function () {\n listWrapper.style.display = 'block';\n if (data.listStyle === 'dropdown-static') {\n atcb_position_list(host, button, listWrapper, true);\n } else if (data.listStyle === 'dropup-static') {\n atcb_position_list(host, button, listWrapper, false, true);\n } else {\n atcb_position_list(host, button, listWrapper);\n }\n }, 5);\n atcb_set_fullsize(bgOverlay);\n }\n const focusEl = function () {\n const hostEl = host.querySelector('.atcb-list-item');\n if (hostEl) {\n return hostEl;\n }\n const modalHost = document.getElementById(data.identifier + '-modal-host');\n if (!modalHost) {\n return;\n }\n return modalHost.shadowRoot.querySelector('.atcb-list-item');\n }();\n if (focusEl) {\n if (keyboardTrigger) {\n focusEl.focus();\n } else {\n focusEl.focus({\n preventScroll: true\n });\n focusEl.blur();\n }\n }\n}\nfunction atcb_close(host) {\n let keyboardTrigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const existingModalHost = document.getElementById(host.host.getAttribute('atcb-button-id') + '-modal-host');\n const allModals = function () {\n if (!existingModalHost || existingModalHost.length === 0) {\n return [];\n }\n return existingModalHost.shadowRoot.querySelectorAll('.atcb-modal[data-modal-nr]');\n }();\n if (allModals.length > 1) {\n existingModalHost.shadowRoot.querySelectorAll('.atcb-modal[data-modal-nr=\"' + allModals.length + '\"]')[0].remove();\n const nextModal = existingModalHost.shadowRoot.querySelectorAll('.atcb-modal[data-modal-nr=\"' + (allModals.length - 1) + '\"]')[0];\n nextModal.classList.remove('atcb-hidden');\n let focusEl = nextModal;\n const availableButtons = nextModal.getElementsByTagName('button');\n if (availableButtons.length > 0) {\n focusEl = availableButtons[0];\n }\n focusEl.focus();\n if (!keyboardTrigger) {\n focusEl.blur();\n }\n } else {\n const newFocusEl = function () {\n const hostEl = host.querySelector('.atcb-active, .atcb-active-modal');\n if (hostEl) {\n return hostEl;\n }\n return document.querySelector('.atcb-active, .atcb-active-modal');\n }();\n if (newFocusEl) {\n newFocusEl.focus({\n preventScroll: true\n });\n if (!keyboardTrigger) {\n newFocusEl.blur();\n }\n }\n Array.from(host.querySelectorAll('.atcb-active')).forEach(button => {\n button.classList.remove('atcb-active');\n button.setAttribute('aria-expanded', false);\n });\n Array.from(host.querySelectorAll('.atcb-active-modal')).forEach(modal => {\n modal.classList.remove('atcb-active-modal');\n });\n Array.from(document.querySelectorAll('.atcb-active')).forEach(button => {\n button.classList.remove('atcb-active');\n button.setAttribute('aria-expanded', false);\n });\n Array.from(document.querySelectorAll('.atcb-active-modal')).forEach(modal => {\n modal.classList.remove('atcb-active-modal');\n });\n if (existingModalHost) {\n existingModalHost.remove();\n }\n document.body.classList.remove('atcb-modal-no-scroll');\n document.documentElement.classList.remove('atcb-modal-no-scroll');\n Array.from(host.querySelectorAll('.atcb-list-wrapper')).concat(Array.from(host.querySelectorAll('.atcb-list'))).concat(Array.from(host.querySelectorAll('#atcb-reference'))).concat(Array.from(host.querySelectorAll('#atcb-bgoverlay'))).forEach(el => el.remove());\n const hiddenButton = document.querySelector('.atcb-shadow-hide');\n if (hiddenButton) {\n hiddenButton.shadowRoot.querySelector('.atcb-initialized').style.opacity = '1';\n hiddenButton.classList.remove('atcb-shadow-hide');\n window.removeEventListener('scroll', atcb_position_shadow_button_listener);\n window.removeEventListener('resize', atcb_position_shadow_button_listener);\n }\n atcbStates['active'] = '';\n }\n}\nasync function atcb_generate_ty(hostEl, dataObj) {\n let host = hostEl;\n let data = dataObj;\n if (!hostEl.host) {\n host = host.shadowRoot;\n data = await atcb_decorate_data(data);\n }\n const copyIcon = '';\n const copiedIcon = '';\n const mailIcon = '';\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n if ((!data.proKey || data.proKey === '') && !window.location.hostname.match(/^(localhost|.*\\.add-to-calendar-pro.com)$/)) {\n return;\n }\n const tyHost = await atcb_generate_modal_host(host, data);\n atcb_set_fullsize(tyHost.querySelector('.atcb-modal-host-initialized'));\n const tyData = data.ty;\n if ((tyData.type === 'link' || tyData.type === 'form') && (!tyData.url || tyData.url === '' || !tyData.url.startsWith('http'))) {\n tyData.type = 'text';\n }\n if (!tyData.headline || tyData.headline === '') {\n tyData.headline = atcb_translate_hook('thankyou', data) + '!';\n }\n let tyContent = '

' + atcb_translate_hook('form.success', data) + '

';\n if (tyData.text && tyData.text !== '') {\n tyContent += atcb_rewrite_html_elements(tyData.text);\n }\n if (tyData.type === 'share') {\n tyContent += `

\n \n ${mailIcon}\n ${atcb_translate_hook('label.share.email', data)}\n \n \n

`;\n }\n let header = {};\n if (tyData.type === 'form') {\n const noIntro = !tyData.text || tyData.text === '' || tyData.text === undefined;\n const label = function () {\n if (tyData.button_label && tyData.button_label !== '') {\n return tyData.button_label;\n }\n return atcb_translate_hook('submit', data);\n }();\n tyContent += '
';\n if (tyData.fields && tyData.fields.length > 0) {\n const headerField = tyData.fields.find(field => field.name === 'header' && field.type === 'hidden');\n if (headerField && headerField.default && headerField.default !== '' && headerField.default.startsWith('{')) {\n try {\n header = JSON.parse(headerField.default);\n if (Object.keys(header).length === 0) {\n header.atcb = true;\n }\n tyData.fields = tyData.fields.filter(field => field.name !== 'header');\n } catch (e) {\n /* do nothing */\n }\n }\n const customForm = atcb_build_form(tyData.fields, data.identifier + '-ty');\n tyData.fields = customForm.fields;\n tyContent += customForm.html;\n }\n tyContent += '

';\n tyContent += '

...

';\n tyContent += '
';\n }\n if (tyData.type === 'link') {\n const label = function () {\n if (tyData.button_label && tyData.button_label !== '') {\n return tyData.button_label;\n }\n return atcb_translate_hook('continue', data);\n }();\n tyContent += '

' + label + '

';\n }\n tyContent += '
';\n await atcb_create_modal(tyHost, data, 'checkmark', tyData.headline, tyContent);\n if (tyData.type === 'share') {\n const copyBtn = tyHost.getElementById('atcb-ty-share-copy');\n copyBtn.addEventListener('click', function () {\n atcb_copy_to_clipboard(tyData.url);\n copyBtn.innerHTML = copiedIcon + atcb_translate_hook('label.share.copied', data) + '!';\n setTimeout(function () {\n copyBtn.innerHTML = copyIcon + atcb_translate_hook('label.share.copy', data);\n }, 3000);\n });\n copyBtn.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n copyBtn.click();\n }\n });\n }\n if (tyData.type === 'form') {\n const tyForm = tyHost.getElementById(data.identifier + '-ty-form');\n const errorMsg = tyHost.getElementById('submit-error');\n const tyFormSubmit = tyHost.getElementById('pro-form-submit');\n const tyFormSubmitting = tyHost.getElementById('pro-form-submitting');\n tyFormSubmit.addEventListener('click', async function (e) {\n e.preventDefault();\n tyFormSubmitting.style.display = 'block';\n tyFormSubmit.style.display = 'none';\n let valid = atcb_validate_form(tyHost, tyData.fields);\n if (!valid) {\n errorMsg.textContent = atcb_translate_hook('form.error.required', data) + '.';\n }\n if (valid) {\n const bodyData = [];\n let skipRadio = false;\n tyData.fields.forEach(field => {\n if (field.type !== 'label') {\n if (field.type === 'radio') {\n if (!skipRadio) {\n const radioGroup = tyHost.querySelectorAll('[name=\"' + field.name + '\"]');\n radioGroup.forEach(function (radio) {\n if (radio.checked) {\n bodyData.push({\n name: field.name,\n value: radio.value\n });\n }\n });\n skipRadio = true;\n }\n } else if (field.type === 'checkbox') {\n bodyData.push({\n name: field.name,\n value: tyHost.getElementById(field.fieldId).checked\n });\n skipRadio = false;\n } else {\n bodyData.push({\n name: field.name,\n value: tyHost.getElementById(field.fieldId).value\n });\n skipRadio = false;\n }\n }\n });\n const request = await sendPostRequest(tyData.url, bodyData, header);\n if (request === true) {\n tyHost.getElementById('ty-success-msg').style.display = 'block';\n tyHost.getElementById('ty-content').style.display = 'none';\n return;\n }\n errorMsg.textContent = atcb_translate_hook('form.error.sending', data) + '.';\n }\n tyForm.classList.add('form-error');\n tyFormSubmitting.style.display = 'none';\n tyFormSubmit.style.display = 'block';\n });\n tyFormSubmit.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n tyFormSubmit.click();\n }\n });\n }\n}\nasync function atcb_generate_rsvp_form(host, data, hostEl) {\n let keyboardTrigger = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n const rsvpData = data.rsvp;\n const noIntro = !rsvpData.text || rsvpData.text === '' || rsvpData.text === undefined;\n const noHeadline = !rsvpData.headline || rsvpData.headline === '' || rsvpData.headline === undefined;\n let hiddenContent = '';\n let rsvpContent = '
';\n const sentStatus = localStorage.getItem(data.proKey + '-rsvp-sent') || false;\n if (sentStatus) {\n rsvpContent += '
';\n rsvpContent += '

' + atcb_translate_hook('form.success.already', data) + '

';\n if (!data.hideButton) rsvpContent += '
';\n if (data.inlineRsvp) rsvpContent += '';\n rsvpContent += '
';\n }\n rsvpContent += '

' + atcb_translate_hook('form.success.sent', data) + '

' + atcb_translate_hook('form.success.email', data) + '

' + atcb_translate_hook('form.success.doi', data) + '

';\n rsvpContent += '
' + atcb_translate_hook('form.success.demo', data) + '
';\n rsvpContent += '
';\n if (rsvpData.text && rsvpData.text !== '') {\n rsvpContent += atcb_rewrite_html_elements(rsvpData.text);\n }\n rsvpContent += '
';\n const staticID = data.proKey || 'demo-rsvp';\n if (rsvpData.initial_confirmation === false) {\n rsvpContent += '
';\n rsvpContent += '

' + atcb_translate_hook('form.status', data) + '

';\n rsvpContent += '
';\n if (rsvpData.maybe_option === true) {\n rsvpContent += '
';\n }\n rsvpContent += '
';\n rsvpContent += '
';\n } else {\n hiddenContent += '';\n }\n const maxAmount = rsvpData.maxpp || 1;\n if (maxAmount === 1) {\n hiddenContent += '';\n } else {\n rsvpContent += '
';\n rsvpContent += '
';\n }\n const attendee = function () {\n if (data.attendee && data.attendee !== '') {\n const attendeeParts = data.attendee.split('|');\n if (attendeeParts.length > 1) {\n return attendeeParts[1];\n }\n return attendeeParts[0];\n }\n return '';\n }();\n if (attendee !== '') {\n hiddenContent += '';\n } else {\n rsvpContent += '
';\n rsvpContent += '
';\n }\n if (rsvpData.fields && rsvpData.fields.length > 0) {\n const customForm = atcb_build_form(rsvpData.fields, data.identifier + '-rsvp', data.disabled);\n rsvpData.fields = customForm.fields;\n rsvpContent += customForm.html;\n }\n rsvpContent += hiddenContent;\n rsvpContent += '

';\n rsvpContent += '

...

';\n rsvpContent += '
';\n rsvpContent += '
';\n let rsvpHost = null;\n if (!data.inlineRsvp) {\n rsvpHost = await atcb_generate_modal_host(host, data);\n atcb_set_fullsize(rsvpHost.querySelector('.atcb-modal-host-initialized'));\n await atcb_create_modal(rsvpHost, data, undefined, rsvpData.headline, rsvpContent, [{\n type: 'none',\n label: atcb_translate_hook('label.rsvp.restart', data),\n small: true,\n primary: true,\n id: 'pro-form-restart'\n }, {\n type: 'close',\n label: atcb_translate_hook('close', data),\n small: true,\n id: 'modal-btn-close'\n }, {\n type: 'close',\n label: atcb_translate_hook('cancel', data),\n small: true,\n id: 'modal-btn-cancel'\n }], [], keyboardTrigger, {}, false);\n } else {\n rsvpHost = host;\n const rsvpInlineWrapper = document.createElement('div');\n rsvpInlineWrapper.classList.add('atcb-modal-box', 'rsvp-inline-wrapper');\n rsvpInlineWrapper.setAttribute('part', 'atcb-modal-box');\n if (data.rtl) {\n rsvpInlineWrapper.classList.add('atcb-rtl');\n }\n hostEl.append(rsvpInlineWrapper);\n if (rsvpData.headline) {\n const rsvpInlineHeadline = document.createElement('div');\n rsvpInlineHeadline.classList.add('atcb-modal-headline');\n rsvpInlineWrapper.append(rsvpInlineHeadline);\n rsvpInlineHeadline.innerHTML = rsvpData.headline;\n }\n const rsvpInlineContent = document.createElement('div');\n rsvpInlineContent.classList.add('atcb-modal-content');\n rsvpInlineWrapper.append(rsvpInlineContent);\n if (!data.hideBranding) {\n const atcbL = atcb_create_atcbl(rsvpHost, false, true);\n rsvpInlineWrapper.append(atcbL);\n }\n if (rsvpData.expired) {\n rsvpInlineContent.innerHTML = '

' + atcb_translate_hook('label.rsvp.expired', data) + '

';\n return;\n } else if (rsvpData.bookedOut) {\n rsvpInlineContent.innerHTML = '

' + atcb_translate_hook('label.rsvp.bookedout', data) + '

';\n return;\n } else {\n rsvpInlineContent.innerHTML = rsvpContent;\n }\n }\n const closeBtn = rsvpHost.getElementById('modal-btn-close');\n const cancelBtn = rsvpHost.getElementById('modal-btn-cancel');\n const restartBtn = rsvpHost.getElementById('pro-form-restart');\n atcb_log_event('openRSVP', data.identifier, data.identifier);\n if (data.debug) {\n console.log('RSVP form for \"' + data.identifier + '\" created');\n }\n if (sentStatus) {\n if (cancelBtn) cancelBtn.style.display = 'none';\n const atcbHost = rsvpHost.getElementById('rsvp-atcb');\n if (atcbHost && !data.hideButton) {\n const atcbData = JSON.parse(JSON.stringify(data));\n atcbData.hideTextLabelButton = true;\n atcbData.hideIconButton = false;\n atcbData.buttonsList = true;\n atcb_generate_button(host, atcbHost, atcbData);\n }\n } else {\n if (closeBtn) closeBtn.style.display = 'none';\n if (restartBtn) restartBtn.style.display = 'none';\n }\n const rsvpForm = rsvpHost.getElementById(data.identifier + '-rsvp-form');\n const errorMsg = rsvpHost.getElementById('submit-error');\n const rsvpFormSubmit = rsvpHost.getElementById('pro-form-submit');\n const rsvpFormSubmitting = rsvpHost.getElementById('pro-form-submitting');\n const rsvpRestart = rsvpHost.getElementById('pro-form-restart');\n if (rsvpFormSubmit) {\n rsvpFormSubmit.addEventListener('click', async function (e) {\n e.preventDefault();\n rsvpFormSubmitting.style.display = 'block';\n rsvpFormSubmit.style.display = 'none';\n const staticFields = [{\n type: 'email',\n name: data.proKey + '-email',\n fieldId: data.identifier + '-rsvp-email',\n required: true\n }, {\n type: 'number',\n name: data.proKey + '-amount',\n fieldId: data.identifier + '-rsvp-amount',\n required: true\n }];\n let valid = atcb_validate_form(rsvpHost, [...staticFields, ...rsvpData.fields]);\n const amountEl = rsvpHost.getElementById(data.identifier + '-rsvp-amount');\n const amount = parseInt(amountEl.value) || 1;\n if (rsvpData.maxpp && rsvpData.maxpp > 0 && amount > rsvpData.maxpp) {\n amountEl.classList.add('error');\n valid = false;\n }\n if (!valid) {\n errorMsg.textContent = atcb_translate_hook('form.error.required', data) + '.';\n }\n if (valid) {\n if (!data.proKey || data.proKey === '') {\n rsvpHost.getElementById('rsvp-success-msg-demo').style.display = 'block';\n rsvpHost.getElementById('rsvp-content').style.display = 'none';\n atcb_log_event('successRSVP', data.identifier, data.identifier);\n if (cancelBtn) cancelBtn.style.display = 'none';\n if (closeBtn) closeBtn.style.display = 'block';\n return;\n }\n const bodyData = [];\n bodyData.push({\n name: 'prokey',\n value: data.proKey\n });\n bodyData.push({\n name: 'language',\n value: data.language\n });\n const statusValEl = rsvpHost.querySelector('[name=\"' + data.proKey + '-status\"]:checked');\n bodyData.push({\n name: 'status',\n value: statusValEl ? statusValEl.value : 'confirmed'\n });\n bodyData.push({\n name: 'amount',\n value: amount\n });\n bodyData.push({\n name: 'email',\n value: rsvpHost.getElementById(data.identifier + '-rsvp-email').value\n });\n if (data.dev) bodyData.push({\n name: 'dev',\n value: true\n });\n const bodyData_payload = {};\n let skipRadio = false;\n rsvpData.fields.forEach(field => {\n if (field.type !== 'label') {\n if (field.type === 'radio') {\n if (!skipRadio) {\n const radioGroup = rsvpHost.querySelectorAll('[name=\"' + field.name + '\"]');\n radioGroup.forEach(function (radio) {\n if (radio.checked) {\n bodyData_payload[field.name] = radio.value;\n }\n });\n skipRadio = true;\n }\n } else if (field.type === 'checkbox') {\n bodyData_payload[field.name] = rsvpHost.getElementById(field.fieldId).checked;\n skipRadio = false;\n } else {\n bodyData_payload[field.name] = rsvpHost.getElementById(field.fieldId).value;\n skipRadio = false;\n }\n }\n });\n if (Object.keys(bodyData_payload).length > 0) {\n bodyData.push({\n name: 'payload',\n value: bodyData_payload\n });\n }\n const request = await sendPostRequest('https://api.add-to-calendar-pro.com/24586219-9910-41fe-9b59-df53de9db7af', bodyData, {\n rsvp: true\n });\n if (request === 'doi' || request === true) {\n rsvpHost.getElementById('rsvp-success-msg').style.display = 'block';\n if (request === 'doi') {\n rsvpHost.getElementById('rsvp-success-msg-doi').style.display = 'block';\n } else {\n rsvpHost.getElementById('rsvp-success-msg-email').style.display = 'block';\n }\n rsvpHost.getElementById('rsvp-content').style.display = 'none';\n if (cancelBtn) cancelBtn.style.display = 'none';\n if (closeBtn) closeBtn.style.display = 'block';\n atcb_log_event('successRSVP', data.identifier, data.identifier);\n localStorage.setItem(data.proKey + '-rsvp-sent', true);\n return;\n }\n if (request.error && request.error === 2) {\n errorMsg.textContent = atcb_translate_hook('form.error.email', data) + '.';\n } else if (request.error && request.error === 5) {\n errorMsg.textContent = atcb_translate_hook('label.rsvp.expired', data) + '.';\n } else if (request.error && request.error === 6) {\n if (amount > 1) {\n errorMsg.textContent = atcb_translate_hook('form.error.bookedoutmany', data) + '.';\n } else {\n errorMsg.textContent = atcb_translate_hook('label.rsvp.bookedout', data) + '.';\n }\n } else {\n errorMsg.textContent = atcb_translate_hook('form.error.sending', data) + '.';\n }\n }\n rsvpForm.classList.add('form-error');\n rsvpFormSubmitting.style.display = 'none';\n rsvpFormSubmit.style.display = 'block';\n });\n rsvpFormSubmit.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n rsvpFormSubmit.click();\n }\n });\n }\n if (rsvpRestart) {\n rsvpRestart.addEventListener('click', function (e) {\n e.preventDefault();\n rsvpHost.getElementById('rsvp-sent-content').style.display = 'none';\n rsvpHost.getElementById('rsvp-content').style.display = 'block';\n if (closeBtn) closeBtn.style.display = 'none';\n if (restartBtn) restartBtn.style.display = 'none';\n if (cancelBtn) cancelBtn.style.display = 'block';\n });\n rsvpRestart.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n rsvpRestart.click();\n }\n });\n }\n}\nasync function atcb_generate_rsvp_button(host, data) {\n const btnHostEl = host.querySelector('.atcb-initialized');\n const buttonTriggerWrapper = document.createElement('div');\n buttonTriggerWrapper.classList.add('atcb-button-wrapper');\n if (data.rtl) {\n buttonTriggerWrapper.classList.add('atcb-rtl');\n }\n btnHostEl.append(buttonTriggerWrapper);\n atcb_set_sizes(buttonTriggerWrapper, data.sizes);\n const buttonTrigger = document.createElement('button');\n buttonTrigger.classList.add('atcb-button', 'atcb-click', 'atcb-single');\n if (data.disabled) {\n buttonTrigger.setAttribute('disabled', true);\n }\n if (data.hideTextLabelButton) {\n buttonTrigger.classList.add('atcb-no-text');\n }\n buttonTrigger.type = 'button';\n buttonTrigger.setAttribute('aria-expanded', false);\n buttonTriggerWrapper.append(buttonTrigger);\n const label = function () {\n if (data.rsvp.expired) {\n return atcb_translate_hook('label.rsvp.expired', data);\n }\n if (data.rsvp.bookedOut) {\n return atcb_translate_hook('label.rsvp.bookedout', data);\n }\n return atcb_translate_hook('label.rsvp', data);\n }();\n atcb_generate_label(host, data, buttonTrigger, 'rsvp', !data.hideIconButton, label, true);\n if (data.debug) {\n console.log('Add to Calendar RSVP Button \"' + data.identifier + '\" created');\n }\n return true;\n}\nasync function atcb_check_booked_out(data) {\n if (data.rsvp && data.rsvp.max && data.proKey && data.proKey !== '') {\n try {\n const response = await fetch('https://api.add-to-calendar-pro.com/dffb8bbd-ee5e-4a4f-a7ea-503af98ca468?prokey=' + data.proKey + (data.dev ? '&dev=true' : ''), {\n method: 'GET'\n });\n if (!response.ok) {\n throw new Error('Network response was not ok');\n }\n const responseJson = await response.json();\n if (parseInt(responseJson.total) >= data.rsvp.max) {\n return true;\n }\n } catch (error) {\n console.error('Error:', error);\n }\n }\n return false;\n}\nfunction atcb_build_form(fields) {\n let identifier = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n let disabled = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n let form = '';\n let hiddenForm = '';\n let n = 0;\n let prevType = '';\n let skipped = false;\n for (let i = 1; i <= fields.length; i++) {\n skipped = false;\n const field = fields[i - 1];\n if (field.type !== 'label' && (!field.name || field.name === '')) {\n skipped = true;\n continue;\n }\n if (prevType === 'radio' && field.type !== 'radio' || prevType !== 'radio') {\n n = i;\n }\n fields[i - 1].fieldId = identifier + '-' + i;\n const fieldValue = field.type === 'radio' ? field.placeholder || '' : field.default || '';\n const fieldLabel = field.label || '';\n const fieldPlaceholder = field.type === 'radio' ? '' : field.placeholder || '';\n let fieldHtml = '';\n if (prevType !== 'hidden' && i === n && i !== 1 && !skipped) {\n fieldHtml += '';\n }\n if (field.type !== 'hidden' && i === n) {\n fieldHtml += '
';\n }\n if (field.type === 'label') {\n fieldHtml += '

' + fieldLabel + '

';\n } else {\n if (field.type === 'radio') {\n fieldHtml += '
';\n }\n if (field.type === 'hidden') {\n hiddenForm += '';\n } else {\n fieldHtml += atcb_create_field_html(field.type, field.name, fieldLabel, field.fieldId, field.required, fieldValue, field.default, fieldPlaceholder, disabled);\n }\n if (field.type === 'radio') {\n fieldHtml += '
';\n }\n }\n form += fieldHtml;\n prevType = field.type;\n }\n if (prevType !== 'hidden') {\n form += '
';\n }\n form += hiddenForm;\n return {\n html: form,\n fields: fields\n };\n}\nfunction atcb_create_field_html(type, name, fieldLabel, fieldId) {\n let required = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n let fieldValue = arguments.length > 5 ? arguments[5] : undefined;\n let defaultVal = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n let fieldPlaceholder = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : '';\n let disabled = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;\n let fieldHtml = '';\n if ((type === 'text' || type === 'number') && (fieldLabel !== '' || required)) {\n fieldHtml += '';\n }\n fieldHtml += '';\n if ((type === 'checkbox' || type === 'radio') && (fieldLabel !== '' || required)) {\n fieldHtml += '';\n }\n return fieldHtml;\n}\nfunction atcb_validate_form(host, fields) {\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n let state = true;\n fields.forEach(function (field) {\n if (field.type !== 'label' && field.type !== 'radio') {\n const input = host.getElementById(field.fieldId);\n if (field.type !== 'checkbox') {\n input.value = atcb_secure_content(input.value.trim());\n if (field.type === 'number') {\n input.value = input.value.replace(/\\D/g, '');\n }\n if (field.type === 'email' && input.value !== '' && !atcb_validEmail(input.value)) {\n input.classList.add('error');\n state = false;\n return;\n }\n if (field.required && input.value === '') {\n input.classList.add('error');\n state = false;\n return;\n } else {\n input.classList.remove('error');\n }\n } else {\n if (field.required && input.checked === false) {\n input.classList.add('error');\n state = false;\n return;\n } else {\n input.classList.remove('error');\n }\n }\n }\n if (field.type === 'radio') {\n const radioGroup = host.querySelectorAll('[name=\"' + field.name + '\"]');\n let checked = false;\n radioGroup.forEach(function (radio) {\n if (radio.checked) {\n checked = true;\n }\n });\n if (checked === false) {\n radioGroup[0].classList.add('error');\n state = false;\n return;\n } else {\n radioGroup[0].classList.remove('error');\n }\n }\n });\n return state;\n}\nasync function sendPostRequest(url, fields) {\n let header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n let formData = new FormData();\n let data = {};\n let requestData = {};\n if (Object.keys(header).length === 0) {\n fields.forEach(field => {\n formData.append(field.name, field.value);\n });\n requestData = {\n method: 'POST',\n body: formData\n };\n } else {\n header['Cache-Control'] = 'no-cache';\n header['Content-Type'] = 'application/json';\n header['Accept'] = '*/*';\n fields.forEach(field => {\n data[field.name] = field.value;\n });\n requestData = {\n method: 'POST',\n headers: header,\n body: JSON.stringify(data)\n };\n }\n try {\n const response = await fetch(url, requestData);\n const responseJson = await response.json();\n if (!response.ok) {\n console.error('Network response was not ok');\n if (responseJson.error) return responseJson;\n return false;\n }\n if (responseJson.status && responseJson.status === 'doi') {\n return 'doi';\n }\n return true;\n } catch (error) {\n console.error('Error:', error);\n return false;\n }\n}\nfunction atcb_generate_label(host, data, parent, type) {\n let icon = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n let text = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : '';\n let oneOption = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;\n switch (type) {\n case 'trigger':\n case 'rsvp':\n default:\n parent.id = data.identifier;\n if (!data.blockInteraction) {\n parent.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || event.key === 'Alt' && event.key === 'Control' && event.code === 'Space') {\n event.preventDefault();\n if (type === 'rsvp' && typeof atcb_generate_rsvp_form === 'function') {\n atcb_generate_rsvp_form(host, data, parent, true);\n } else {\n atcb_toggle(host, 'auto', data, parent, true, true);\n }\n }\n });\n parent.addEventListener('touchend', atcb_debounce_leading(event => {\n event.preventDefault();\n if (type === 'rsvp' && typeof atcb_generate_rsvp_form === 'function') {\n atcb_generate_rsvp_form(host, data, parent);\n } else {\n atcb_toggle(host, 'auto', data, parent, false, true);\n }\n }));\n if (data.trigger === 'click' || type === 'rsvp' && typeof atcb_generate_rsvp_form === 'function') {\n parent.addEventListener('mouseup', atcb_debounce_leading(event => {\n event.preventDefault();\n if (type === 'rsvp' && typeof atcb_generate_rsvp_form === 'function') {\n atcb_generate_rsvp_form(host, data, parent);\n } else {\n atcb_toggle(host, 'auto', data, parent, false, true);\n }\n }));\n } else {\n parent.addEventListener('mouseenter', function () {\n atcb_toggle(host, 'open', data, parent, false, true);\n });\n }\n }\n break;\n case 'apple':\n case 'google':\n case 'ical':\n case 'msteams':\n case 'ms365':\n case 'outlookcom':\n case 'yahoo':\n parent.id = data.identifier + '-' + type;\n if (!data.blockInteraction) {\n parent.addEventListener('click', atcb_debounce_leading(() => {\n if (oneOption) {\n host.querySelector('#' + parent.id)?.blur();\n atcb_log_event('openSingletonLink', parent.id, data.identifier);\n } else {\n atcb_toggle(host, 'close');\n atcb_log_event('openCalendarLink', parent.id, data.identifier);\n }\n atcb_generate_links(host, type, data);\n }));\n parent.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n if (oneOption) {\n host.querySelector('#' + parent.id)?.blur();\n atcb_log_event('openSingletonLink', parent.id, data.identifier);\n } else {\n atcb_toggle(host, 'close');\n atcb_log_event('openCalendarLink', parent.id, data.identifier);\n }\n atcb_generate_links(host, type, data, 'all', true);\n }\n });\n }\n break;\n case 'close':\n parent.id = data.identifier + '-close';\n parent.addEventListener('click', atcb_debounce(() => {\n atcb_log_event('closeList', 'List Close Button', atcbStates['active']);\n atcb_toggle(host, 'close');\n }));\n parent.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n atcb_log_event('closeList', 'List Close Button', atcbStates['active']);\n atcb_toggle(host, 'close', data, 'all', true);\n }\n });\n break;\n }\n atcb_generate_label_content(data, parent, type, icon, text, oneOption);\n}\nfunction atcb_generate_label_content(data, parent, type, icon, text, oneOption) {\n const defaultTriggerText = function () {\n if (data.pastDateHandling != 'none') {\n let allOverdue = true;\n for (let i = 0; i < data.dates.length; i++) {\n if (!data.dates[`${i}`].overdue) {\n allOverdue = false;\n break;\n }\n }\n if (allOverdue) {\n return atcb_translate_hook('expired', data);\n }\n }\n return atcb_translate_hook('label.addtocalendar', data);\n }();\n if (text === '') {\n if (data.options.length === 1 || type === 'trigger') {\n text = defaultTriggerText;\n } else if (type === 'close') {\n text = atcb_translate_hook('close', data);\n } else {\n text = atcb_translate_hook(type, data);\n }\n }\n if (data.buttonStyle === 'date' && (type === 'trigger' || oneOption)) {\n return;\n }\n parent.setAttribute('aria-label', oneOption ? atcb_translate_hook('label.addtocalendar', data) + ' (' + atcb_translate_hook(type, data) + '): ' + data.name : type === 'trigger' ? text + ': ' + data.name : text);\n if (icon) {\n const iconEl = document.createElement('div');\n iconEl.classList.add('atcb-icon');\n iconEl.setAttribute('part', type === 'trigger' ? 'atcb-button-icon' : 'atcb-list-icon');\n iconEl.classList.add(`atcb-icon-${type}`);\n iconEl.innerHTML = atcbIcon[`${type}`];\n parent.append(iconEl);\n }\n if ((type === 'trigger' || oneOption) && !data.hideTextLabelButton || !oneOption && type !== 'trigger' && !data.hideTextLabelList) {\n const textEl = document.createElement('span');\n textEl.classList.add('atcb-text');\n textEl.setAttribute('part', type === 'trigger' ? 'atcb-button-text' : 'atcb-list-text');\n textEl.textContent = text;\n parent.append(textEl);\n }\n}\nfunction atcb_generate_button(host, button, data) {\n const oneOption = function () {\n if (data.options.length === 1 || data.buttonsList && data.buttonStyle != 'date') {\n return true;\n }\n return false;\n }();\n const optionSplit = oneOption ? data.options : ['default'];\n optionSplit.forEach(function (option, index) {\n const buttonTriggerWrapper = document.createElement('div');\n buttonTriggerWrapper.classList.add('atcb-button-wrapper');\n buttonTriggerWrapper.setAttribute('part', 'atcb-button-wrapper');\n if (data.rtl) {\n buttonTriggerWrapper.classList.add('atcb-rtl');\n }\n button.append(buttonTriggerWrapper);\n atcb_set_sizes(buttonTriggerWrapper, data.sizes);\n const buttonTrigger = document.createElement('button');\n buttonTrigger.classList.add('atcb-button');\n buttonTrigger.setAttribute('part', 'atcb-button');\n if (data.disabled) {\n buttonTrigger.setAttribute('disabled', true);\n }\n if (data.hideTextLabelButton) {\n buttonTrigger.classList.add('atcb-no-text');\n }\n if (data.trigger === 'click') {\n buttonTrigger.classList.add('atcb-click');\n }\n if (data.listStyle === 'overlay') {\n buttonTrigger.classList.add('atcb-dropoverlay');\n }\n buttonTrigger.type = 'button';\n buttonTrigger.setAttribute('aria-expanded', false);\n buttonTriggerWrapper.append(buttonTrigger);\n if (data.buttonStyle === 'date') {\n atcb_generate_date_button(data, buttonTrigger, 'all', oneOption);\n }\n if (oneOption) {\n buttonTrigger.classList.add('atcb-single');\n const label = function () {\n if (data.buttonsList && data.options.length > 1) {\n return atcb_translate_hook(`${data.options[`${index}`]}`, data);\n }\n return data.label;\n }();\n atcb_generate_label(host, data, buttonTrigger, option, !data.hideIconButton, label, true);\n buttonTrigger.id = data.identifier;\n if (data.buttonsList) {\n buttonTrigger.id = data.identifier + '-' + option;\n }\n } else {\n atcb_generate_label(host, data, buttonTrigger, 'trigger', !data.hideIconButton, data.label);\n const buttonDropdownAnchor = document.createElement('div');\n buttonDropdownAnchor.classList.add('atcb-dropdown-anchor');\n buttonTrigger.append(buttonDropdownAnchor);\n }\n if (!data.hideCheckmark && !data.hideTextLabelButton && !data.buttonsList && !data.disabled && !data.allCancelled) {\n const btnCheck = document.createElement('div');\n btnCheck.classList.add('atcb-checkmark');\n btnCheck.innerHTML = atcbIcon['checkmark'];\n buttonTrigger.append(btnCheck);\n }\n });\n if (data.debug) {\n console.log('Add to Calendar Button \"' + data.identifier + '\" created');\n }\n}\nfunction atcb_generate_dropdown_list(host, data) {\n const optionsList = document.createElement('div');\n optionsList.classList.add('atcb-list');\n optionsList.setAttribute('part', 'atcb-list');\n optionsList.role = 'list';\n if (data.rtl) {\n optionsList.classList.add('atcb-rtl');\n }\n let listCount = 0;\n data.options.forEach(function (option) {\n const optionItem = document.createElement('div');\n optionItem.classList.add('atcb-list-item');\n optionItem.setAttribute('part', 'atcb-list-item');\n optionItem.role = 'link';\n optionItem.tabIndex = 0;\n listCount++;\n optionItem.dataset.optionNumber = listCount;\n optionsList.append(optionItem);\n atcb_generate_label(host, data, optionItem, option, !data.hideIconList);\n });\n if (data.listStyle === 'modal') {\n const optionItem = document.createElement('div');\n optionItem.classList.add('atcb-list-item', 'atcb-list-item-close');\n optionItem.setAttribute('part', 'atcb-list-item-close');\n optionItem.role = 'button';\n optionItem.tabIndex = 0;\n listCount++;\n optionItem.dataset.optionNumber = listCount;\n optionsList.append(optionItem);\n atcb_generate_label(host, data, optionItem, 'close', !data.hideIconList);\n }\n return optionsList;\n}\nfunction atcb_generate_bg_overlay(host) {\n let trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n let modal = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n let darken = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n let closable = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n const bgOverlay = function () {\n if (modal) {\n return document.createElement('dialog');\n }\n return document.createElement('div');\n }();\n if (modal) {\n bgOverlay.setAttribute('open', true);\n }\n bgOverlay.id = 'atcb-bgoverlay';\n if (!darken) {\n bgOverlay.classList.add('atcb-no-bg');\n }\n bgOverlay.role = 'button';\n bgOverlay.tabIndex = 0;\n if (closable) {\n bgOverlay.addEventListener('mouseup', atcb_debounce_leading(e => {\n if (e.target !== e.currentTarget) return;\n atcb_log_event('closeList', 'Background Hit', atcbStates['active']);\n atcb_toggle(host, 'close');\n }));\n let fingerMoved = false;\n bgOverlay.addEventListener('touchstart', atcb_debounce_leading(() => fingerMoved = false), {\n passive: true\n });\n bgOverlay.addEventListener('touchmove', atcb_debounce_leading(() => fingerMoved = true), {\n passive: true\n });\n bgOverlay.addEventListener('touchend', atcb_debounce(e => {\n if (fingerMoved !== false || e.target !== e.currentTarget) return;\n atcb_log_event('closeList', 'Background Hit', atcbStates['active']);\n atcb_toggle(host, 'close');\n }), {\n passive: true\n });\n if (trigger !== 'click') {\n bgOverlay.addEventListener('mousemove', atcb_debounce_leading(e => {\n if (e.target !== e.currentTarget) return;\n atcb_log_event('closeList', 'Background Hit', atcbStates['active']);\n atcb_toggle(host, 'close');\n }));\n } else {\n bgOverlay.classList.add('atcb-click');\n }\n }\n return bgOverlay;\n}\nfunction atcb_create_atcbl(host) {\n let atList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n let returnEl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n const atcbL = document.createElement('div');\n atcbL.id = 'atcb-reference';\n setTimeout(() => {\n const svg = '';\n atcbL.innerHTML = '' + svg + '';\n }, 500);\n if (atList) {\n host.querySelector('.atcb-initialized .atcb-list-wrapper').append(atcbL);\n } else if (returnEl) {\n return atcbL;\n } else {\n if (window.innerHeight > 1000 || window.innerWidth > 1000) {\n host.append(atcbL);\n atcbL.classList.add('fixed-ref');\n }\n }\n}\nasync function atcb_create_modal(mainHost, data) {\n let icon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n let headline = arguments.length > 3 ? arguments[3] : undefined;\n let content = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '';\n let buttons = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];\n let subEvents = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : [];\n let keyboardTrigger = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;\n let goto = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : {};\n let closable = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : true;\n atcbStates['active'] = data.identifier;\n const noHeadline = !headline || headline === '' || headline === undefined;\n const modalHost = await atcb_generate_modal_host(mainHost, data, false);\n const bgOverlay = function () {\n const el = modalHost.getElementById('atcb-bgoverlay');\n if (!el) {\n const newOverlay = atcb_generate_bg_overlay(mainHost, 'click', true, !data.hideBackground, closable);\n modalHost.querySelector('.atcb-modal-host-initialized').append(newOverlay);\n return newOverlay;\n }\n return el;\n }();\n const modalWrapper = document.createElement('div');\n modalWrapper.classList.add('atcb-modal');\n bgOverlay.append(modalWrapper);\n const modalCount = modalHost.querySelectorAll('.atcb-modal').length;\n modalWrapper.dataset.modalNr = modalCount;\n modalWrapper.tabIndex = 0;\n modalWrapper.focus({\n preventScroll: true\n });\n modalWrapper.blur();\n const parentButton = function () {\n const hostEl = mainHost.getElementById(data.identifier);\n if (hostEl) {\n return hostEl;\n }\n return document.getElementById(data.identifier);\n }();\n if (parentButton) {\n parentButton.classList.add('atcb-active-modal');\n }\n const modal = document.createElement('div');\n modal.classList.add('atcb-modal-box');\n modal.setAttribute('part', 'atcb-modal-box');\n if (data.rtl) {\n modal.classList.add('atcb-rtl');\n }\n modalWrapper.append(modal);\n atcb_set_sizes(modal, data.sizes);\n atcb_set_fullsize(bgOverlay);\n if (icon !== '' && !data.hideIconModal) {\n const modalIcon = document.createElement('div');\n modalIcon.classList.add('atcb-modal-icon');\n modalIcon.innerHTML = atcbIcon[`${icon}`];\n modal.append(modalIcon);\n }\n if (!noHeadline) {\n const modalHeadline = document.createElement('div');\n modalHeadline.classList.add('atcb-modal-headline');\n modalHeadline.textContent = headline;\n modal.append(modalHeadline);\n }\n if (content !== '') {\n const modalContent = document.createElement('div');\n modalContent.classList.add('atcb-modal-content');\n if (noHeadline) modalContent.classList.add('no-headline');\n modalContent.innerHTML = content;\n modal.append(modalContent);\n }\n if (!data.hideBranding) {\n atcb_create_atcbl(modalHost, false);\n }\n if (subEvents.length > 1) {\n const modalsubEventsContentWrapper = document.createElement('div');\n modalsubEventsContentWrapper.classList.add('atcb-modal-content');\n modal.append(modalsubEventsContentWrapper);\n const modalsubEventsContent = document.createElement('div');\n modalsubEventsContent.classList.add('atcb-modal-content-subevents');\n modalsubEventsContentWrapper.append(modalsubEventsContent);\n for (let i = 1; i < subEvents.length; i++) {\n const modalSubEventButton = document.createElement('button');\n modalSubEventButton.type = 'button';\n modalSubEventButton.id = data.identifier + '-' + subEvents[0] + '-' + i;\n if (atcbStates[`${data.identifier}`][`${subEvents[0]}`][i - 1] > 0) {\n modalSubEventButton.classList.add('atcb-saved');\n }\n modalSubEventButton.classList.add('atcb-subevent-btn');\n modalsubEventsContent.append(modalSubEventButton);\n atcb_generate_date_button(data, modalSubEventButton, i);\n if (!data.dates[i - 1].overdue || data.pastDateHandling === 'none') {\n if (i === 1 && keyboardTrigger) {\n modalSubEventButton.focus();\n }\n modalSubEventButton.addEventListener('click', atcb_debounce(() => {\n atcb_log_event('openSubEventLink', modalSubEventButton.id, data.identifier);\n modalSubEventButton.blur();\n atcb_generate_links(mainHost, subEvents[0], data, subEvents[`${i}`], keyboardTrigger, true);\n }));\n } else {\n modalSubEventButton.setAttribute('disabled', true);\n }\n }\n }\n if (buttons.length === 0) {\n buttons.push({\n type: 'close',\n label: atcb_translate_hook('close', data),\n small: true\n });\n }\n const modalButtons = document.createElement('div');\n modalButtons.classList.add('atcb-modal-buttons');\n modal.append(modalButtons);\n buttons.forEach((button, index) => {\n let modalButton;\n if (button.href && button.href !== '') {\n modalButton = document.createElement('a');\n modalButton.setAttribute('target', atcbDefaultTarget);\n modalButton.setAttribute('href', button.href);\n modalButton.setAttribute('rel', 'noopener');\n } else {\n modalButton = document.createElement('button');\n modalButton.type = 'button';\n }\n if (button.id && button.id !== '') {\n modalButton.id = button.id;\n }\n modalButton.classList.add('atcb-modal-btn');\n if (button.primary) {\n modalButton.classList.add('atcb-modal-btn-primary');\n }\n if (button.small) {\n modalButton.classList.add('btn-small');\n }\n if (!button.label || button.label === '') {\n button.label = atcb_translate_hook('modal.button.default', data);\n }\n modalButton.textContent = button.label;\n modalButtons.append(modalButton);\n if (index === 0 && subEvents.length < 2 && keyboardTrigger) {\n modalButton.focus();\n }\n switch (button.type) {\n default:\n case 'close':\n modalButton.addEventListener('click', atcb_debounce(() => {\n atcb_log_event('closeList', 'Modal Close Button', atcbStates['active']);\n atcb_close(mainHost);\n }));\n modalButton.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || event.key === 'Alt' && event.key === 'Control' && event.code === 'Space') {\n atcb_log_event('closeList', 'Modal Close Button', atcbStates['active']);\n atcb_toggle(mainHost, 'close', '', '', true);\n }\n });\n break;\n case 'yahoo2nd':\n // for yahoo subscribe modal, where we guide the user through the process\n modalButton.addEventListener('click', atcb_debounce(() => {\n atcb_close(mainHost);\n atcb_subscribe_yahoo_modal_switch(mainHost, data);\n }));\n modalButton.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || event.key === 'Alt' && event.key === 'Control' && event.code === 'Space') {\n atcb_toggle(mainHost, 'close', '', '', true);\n atcb_subscribe_yahoo_modal_switch(mainHost, data, keyboardTrigger);\n }\n });\n break;\n case '2timeslink':\n // for the note that the user shall click the button twice\n modalButton.addEventListener('click', atcb_debounce(() => {\n atcb_close(mainHost);\n atcb_generate_links(mainHost, goto.type, data, goto.id, keyboardTrigger, false, true);\n }));\n modalButton.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || event.key === 'Alt' && event.key === 'Control' && event.code === 'Space') {\n atcb_toggle(mainHost, 'close', '', '', true);\n atcb_generate_links(mainHost, goto.type, data, goto.id, keyboardTrigger, false, true);\n }\n });\n break;\n case 'none':\n break;\n }\n });\n if (modalCount > 1) {\n const prevModal = modalHost.querySelector('.atcb-modal[data-modal-nr=\"' + (modalCount - 1) + '\"]');\n prevModal.classList.add('atcb-hidden');\n }\n atcb_manage_body_scroll(modalHost, modalWrapper);\n return;\n}\nfunction atcb_subscribe_yahoo_modal_switch(host, data, keyboardTrigger) {\n atcb_set_fully_successful(host, data);\n atcb_generate_links(host, 'yahoo2nd', data, 'all', keyboardTrigger);\n}\nfunction atcb_generate_date_button(data, parent) {\n let subEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';\n let oneOption = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (subEvent != 'all') {\n subEvent = parseInt(subEvent) - 1;\n } else if (data.dates.length == 1) {\n subEvent = 0;\n }\n const fullTimeInfo = atcb_generate_timestring(data.dates, data.language, subEvent);\n const hoverText = function () {\n if (subEvent !== 'all' && data.dates[`${subEvent}`].status.toLowerCase() === 'cancelled' || subEvent === 'all' && data.allCancelled) {\n return atcb_translate_hook('date.status.cancelled', data) + '
' + atcb_translate_hook('date.status.cancelled.cta', data);\n }\n if (data.pastDateHandling != 'none') {\n if (subEvent === 'all' && data.allOverdue || subEvent != 'all' && data.dates[`${subEvent}`].overdue) {\n return atcb_translate_hook('expired', data);\n }\n }\n if (data.label && data.label != '') {\n return data.label;\n }\n return '+ ' + atcb_translate_hook('label.addtocalendar', data);\n }();\n const cancelledInfo = function () {\n if (subEvent !== 'all' && data.dates[`${subEvent}`].status.toLowerCase() === 'cancelled' || subEvent === 'all' && data.allCancelled) {\n return atcb_translate_hook('date.status.cancelled', data);\n }\n return '';\n }();\n const recurringString = function () {\n if (fullTimeInfo.length == 0) {\n return atcb_translate_hook('recurring', data) + ' ⟳';\n }\n return '⟳';\n }();\n let subEventAll = false;\n if (subEvent === 'all') {\n subEvent = 0;\n subEventAll = true;\n }\n const startDate = new Date(atcb_generate_time(data.dates[`${subEvent}`]).start);\n const allDay = atcb_generate_time(data.dates[`${subEvent}`]).allday;\n const timeZone = data.dates[`${subEvent}`].timeZone;\n const btnLeft = document.createElement('div');\n btnLeft.classList.add('atcb-date-btn-left');\n parent.append(btnLeft);\n const btnDay = document.createElement('div');\n btnDay.classList.add('atcb-date-btn-day');\n btnLeft.append(btnDay);\n const btnMonth = document.createElement('div');\n btnMonth.classList.add('atcb-date-btn-month');\n btnDay.textContent = startDate.toLocaleString(data.language, {\n day: 'numeric',\n timeZone: allDay ? 'UTC' : timeZone\n });\n btnMonth.textContent = startDate.toLocaleString(data.language, {\n month: 'short',\n timeZone: allDay ? 'UTC' : timeZone\n });\n btnLeft.append(btnMonth);\n const btnRight = document.createElement('div');\n btnRight.classList.add('atcb-date-btn-right');\n parent.append(btnRight);\n const btnDetails = document.createElement('div');\n btnDetails.classList.add('atcb-date-btn-details');\n btnRight.append(btnDetails);\n const btnHeadline = document.createElement('div');\n btnHeadline.classList.add('atcb-date-btn-headline');\n const btnHeadlineText = data.dates.length > 1 && subEventAll ? data.name : data.dates[`${subEvent}`].name;\n btnHeadline.textContent = btnHeadlineText;\n btnDetails.append(btnHeadline);\n if (data.dates[`${subEvent}`].location && data.dates[`${subEvent}`].location !== '' && !data.dates[`${subEvent}`].onlineEvent || cancelledInfo !== '') {\n const btnLocation = document.createElement('div');\n btnLocation.classList.add('atcb-date-btn-content');\n btnDetails.append(btnLocation);\n if (cancelledInfo != '') {\n btnLocation.classList.add('atcb-date-btn-cancelled');\n btnLocation.textContent = cancelledInfo;\n } else {\n const btnLocationIcon = document.createElement('span');\n btnLocationIcon.classList.add('atcb-date-btn-content-icon');\n btnLocationIcon.innerHTML = atcbIcon['location'];\n btnLocation.append(btnLocationIcon);\n const btnLocationText = document.createElement('span');\n btnLocationText.classList.add('atcb-date-btn-content-location');\n btnLocationText.textContent = data.dates[`${subEvent}`].location;\n btnLocation.append(btnLocationText);\n }\n } else {\n if (data.dates[`${subEvent}`].description !== '' && fullTimeInfo.length === 0 && (!data.recurrence || data.recurrence === '')) {\n const btnDescription = document.createElement('div');\n btnDescription.classList.add('atcb-date-btn-content');\n btnDescription.textContent = data.dates[`${subEvent}`].descriptionHtmlFree;\n btnDescription.style.cssText = 'overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;';\n btnDetails.append(btnDescription);\n } else {\n btnHeadline.style.cssText = '-webkit-line-clamp: 2;';\n if (fullTimeInfo.length == 0 && (data.recurrence == null || data.recurrence == '')) {\n btnRight.style.alignSelf = 'center';\n btnHeadline.style.cssText = 'text-align: center; -webkit-line-clamp: 2;';\n }\n }\n }\n if (fullTimeInfo.length > 0 || data.recurrence != null && data.recurrence != '') {\n const btnDateTime = document.createElement('div');\n btnDateTime.classList.add('atcb-date-btn-content');\n btnDetails.append(btnDateTime);\n const btnDateTimeIcon = document.createElement('span');\n btnDateTimeIcon.classList.add('atcb-date-btn-content-icon');\n btnDateTimeIcon.innerHTML = atcbIcon['ical'];\n btnDateTime.append(btnDateTimeIcon);\n const btnDateTimeText = document.createElement('span');\n btnDateTimeText.classList.add('atcb-date-btn-content-text');\n btnDateTime.append(btnDateTimeText);\n fullTimeInfo.forEach(function (block) {\n const btnDateTimeTextBlock = document.createElement('span');\n btnDateTimeTextBlock.textContent = block;\n btnDateTimeText.append(btnDateTimeTextBlock);\n });\n if (data.recurrence != null && data.recurrence != '') {\n const recurSign = document.createElement('span');\n recurSign.innerHTML = recurringString;\n btnDateTimeText.append(recurSign);\n }\n }\n const btnHover = document.createElement('div');\n btnHover.classList.add('atcb-date-btn-hover');\n btnHover.innerHTML = hoverText;\n btnRight.append(btnHover);\n if (!data.hideCheckmark && data.dates[`${subEvent}`].status.toLowerCase() !== 'cancelled') {\n const btnCheck = document.createElement('div');\n btnCheck.classList.add('atcb-checkmark');\n btnCheck.innerHTML = atcbIcon['checkmark'];\n parent.append(btnCheck);\n }\n const ariaLabel = hoverText.replace(/
/g, ' ').replace(/\\+\\s/g, '') + (oneOption ? ' (' + atcb_translate_hook(data.options[0], data) + ')' : '') + ': ' + btnHeadlineText + (data.dates[`${subEvent}`].location && data.dates[`${subEvent}`].location !== '' ? ', ' + data.dates[`${subEvent}`].location : '') + ', ' + fullTimeInfo.join(' ');\n parent.setAttribute('aria-label', ariaLabel);\n}\nasync function atcb_generate_modal_host(host, data) {\n let reset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n const existingModalHost = document.getElementById(data.identifier + '-modal-host');\n if (existingModalHost) {\n if (!reset) {\n return existingModalHost.shadowRoot;\n }\n existingModalHost.remove();\n }\n let newModalHost = document.createElement('div');\n newModalHost.id = data.identifier + '-modal-host';\n if (host.host.hasAttribute('cspnonce')) {\n newModalHost.setAttribute('cspnonce', host.host.getAttribute('cspnonce'));\n }\n newModalHost.setAttribute('atcb-button-id', data.identifier);\n newModalHost.classList.add('add-to-calendar');\n newModalHost.setAttribute('style', 'transform:translate3D(0, 0, 0);visibility:visible;opacity:1;position:fixed;top:0;left:0;width:100%;height:100%;display:flex;z-index:13999998;');\n document.body.append(newModalHost);\n newModalHost.attachShadow({\n mode: 'open',\n delegateFocus: true\n });\n const elem = document.createElement('template');\n elem.innerHTML = '
';\n newModalHost.shadowRoot.append(elem.content.cloneNode(true));\n atcb_set_light_mode(newModalHost.shadowRoot, data);\n await atcb_load_css(newModalHost.shadowRoot, null, data);\n return newModalHost.shadowRoot;\n}\nasync function atcb_generate_overlay_dom(host, data) {\n const newHost = await atcb_generate_modal_host(host, data);\n atcb_set_fullsize(newHost.querySelector('.atcb-modal-host-initialized'));\n const nodes = Array.from(host.children);\n nodes.forEach(node => {\n if (node.tagName != 'STYLE') {\n newHost.querySelector('.atcb-modal-host-initialized').append(node.cloneNode(true));\n }\n });\n newHost.querySelector('button.atcb-button').removeAttribute('id');\n host.host.classList.add('atcb-shadow-hide');\n host.querySelector('.atcb-initialized').style.opacity = '0';\n atcb_position_shadow_button(host, newHost);\n window.addEventListener('scroll', atcb_position_shadow_button_listener);\n window.addEventListener('resize', atcb_position_shadow_button_listener);\n return newHost.querySelector('.atcb-modal-host-initialized');\n}\nfunction atcb_generate_rich_data(data, parent) {\n const schemaEl = document.createElement('script');\n schemaEl.id = 'atcb-schema-' + data.identifier;\n if (parent.hasAttribute('cspnonce')) {\n const cspnonceRegex = /[`'\"()[\\]{}<>\\s]/;\n if (cspnonceRegex.test(parent.getAttribute('cspnonce'))) {\n throw new Error('cspnonce input contains forbidden characters.');\n }\n schemaEl.setAttribute('nonce', parent.getAttribute('cspnonce'));\n }\n schemaEl.type = 'application/ld+json';\n const id = data.name.replace(/\\s/g, '');\n const schemaContentMulti = [];\n if (data.dates.length > 1) {\n const parts = [];\n parts.push('\"@context\":\"https://schema.org\"');\n parts.push('\"@type\":\"EventSeries\"');\n parts.push('\"@id\":\"' + id + '\"');\n parts.push('\"name\":\"' + data.name + '\",');\n schemaContentMulti.push('{\\r\\n' + parts.join(',\\r\\n') + '\\r\\n');\n }\n const schemaContentFull = [];\n for (let i = 0; i < data.dates.length; i++) {\n const schemaContent = [];\n schemaContent.push('\"@context\":\"https://schema.org\"');\n schemaContent.push('\"@type\":\"Event\"');\n if (data.dates.length > 1) {\n schemaContent.push('\"@id\":\"' + id + '-' + (i + 1) + '\"');\n }\n if (data.dates[`${i}`].status.toLowerCase() === 'cancelled') {\n schemaContent.push('\"eventStatus\":\"https://schema.org/EventCancelled\"');\n } else {\n schemaContent.push('\"eventStatus\":\"https://schema.org/EventScheduled\"');\n }\n schemaContent.push('\"name\":\"' + data.dates[`${i}`].name + '\"');\n if (data.dates[`${i}`].descriptionHtmlFree) {\n schemaContent.push('\"description\":\"' + data.dates[`${i}`].descriptionHtmlFree + '\"');\n }\n const formattedDate = atcb_generate_time(data.dates[`${i}`], 'delimiters', 'general', true);\n schemaContent.push('\"startDate\":\"' + formattedDate.start + '\"');\n if (formattedDate.duration) {\n schemaContent.push('\"duration\":\"' + formattedDate.duration + '\"');\n }\n schemaContent.push(data.dates[`${i}`].onlineEvent ? '\"eventAttendanceMode\":\"https://schema.org/OnlineEventAttendanceMode\",\\r\\n\"location\": {\\r\\n\"@type\":\"VirtualLocation\",\\r\\n\"url\":\"' + data.dates[`${i}`].location + '\"\\r\\n}' : '\"location\":\"' + data.dates[`${i}`].location + '\"');\n if (data.recurrence && data.recurrence !== '') {\n schemaContent.push(...atcb_generate_rich_data_recurrence(data, formattedDate));\n } else {\n schemaContent.push('\"endDate\":\"' + formattedDate.end + '\"');\n }\n if (data.dates[`${i}`].organizer && data.dates[`${i}`].organizer !== '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n schemaContent.push('\"organizer\":{\\r\\n\"@type\":\"Person\",\\r\\n\"name\":\"' + organizerParts[0] + '\",\\r\\n\"email\":\"' + organizerParts[1] + '\"\\r\\n}');\n }\n const imageData = [];\n if (data.images) {\n if (Array.isArray(data.images)) {\n for (let i = 0; i < data.images.length; i++) {\n if (atcb_secure_url(data.images[`${i}`], data.debug) && data.images[`${i}`].startsWith('http')) {\n imageData.push('\"' + data.images[`${i}`] + '\"');\n }\n }\n }\n }\n if (imageData.length > 0) {\n schemaContent.push('\"image\":[\\r\\n' + imageData.join(',\\r\\n') + ']');\n }\n schemaContentFull.push('{\\r\\n' + schemaContent.join(',\\r\\n') + '\\r\\n}');\n }\n if (data.dates.length > 1) {\n schemaEl.textContent = schemaContentMulti.join(',\\r\\n') + '\"subEvents\":[\\r\\n' + schemaContentFull.join(',\\r\\n') + '\\r\\n]\\r\\n}';\n } else {\n schemaEl.textContent = schemaContentFull[0];\n }\n document.body.insertBefore(schemaEl, document.body.firstChild);\n}\nfunction atcb_generate_rich_data_recurrence(data, formattedDate) {\n const schemaRecurrenceContent = [];\n schemaRecurrenceContent.push('\"eventSchedule\": { \"@type\": \"Schedule\"');\n schemaRecurrenceContent.push('\"scheduleTimezone\":\"' + data.dates[0].timeZone + '\"');\n if (data.recurrence_interval && data.recurrence_interval !== '' && data.recurrence_frequency && data.recurrence_frequency !== '') {\n const repeatFrequency = 'P' + data.recurrence_interval + data.recurrence_frequency.substring(0, 1);\n schemaRecurrenceContent.push('\"repeatFrequency\":\"' + repeatFrequency + '\"');\n }\n if (data.recurrence_byDay && data.recurrence_byDay !== '') {\n const byDayString = function () {\n if (/\\d/.test(data.recurrence_byDay)) {\n return '\"' + data.recurrence_byDay + '\"';\n } else {\n const byDays = data.recurrence_byDay.split(',');\n const helperMap = {\n MO: 'https://schema.org/Monday',\n TU: 'https://schema.org/Tuesday',\n WE: 'https://schema.org/Wednesday',\n TH: 'https://schema.org/Thursday',\n FR: 'https://schema.org/Friday',\n SA: 'https://schema.org/Saturday',\n SU: 'https://schema.org/Sunday'\n };\n const output = [];\n for (let i = 0; i < byDays.length; i++) {\n output.push('\"' + helperMap[byDays[`${i}`]] + '\"');\n }\n return '[' + output.join(',') + ']';\n }\n }();\n schemaRecurrenceContent.push('\"byDay\":' + byDayString);\n }\n if (data.recurrence_byMonth && data.recurrence_byMonth !== '') {\n const byMonthString = data.recurrence_byMonth.includes(',') ? '[' + data.recurrence_byMonth + ']' : data.recurrence_byMonth;\n schemaRecurrenceContent.push('\"byMonth\":\"' + byMonthString + '\"');\n }\n if (data.recurrence_byMonthDay && data.recurrence_byMonthDay !== '') {\n const byMonthDayString = data.recurrence_byMonthDay.includes(',') ? '[' + data.recurrence_byMonthDay + ']' : data.recurrence_byMonthDay;\n schemaRecurrenceContent.push('\"byMonthDay\":\"' + byMonthDayString + '\"');\n }\n if (data.recurrence_count && data.recurrence_count !== '') {\n schemaRecurrenceContent.push('\"repeatCount\":\"' + data.recurrence_count + '\"');\n }\n if (data.recurrence_until && data.recurrence_until !== '') {\n schemaRecurrenceContent.push('\"endDate\":\"' + data.recurrence_until + '\"');\n }\n if (data.startTime && data.startTime !== '' && data.endTime && data.endTime !== '') {\n schemaRecurrenceContent.push('\"startTime\":\"' + data.startTime + ':00\"');\n schemaRecurrenceContent.push('\"endTime\":\"' + data.endTime + ':00\"');\n schemaRecurrenceContent.push('\"duration\":\"' + formattedDate.duration + '\"');\n }\n schemaRecurrenceContent.push('\"startDate\":\"' + data.startDate + '\" }');\n return schemaRecurrenceContent;\n}\nfunction atcb_generate_links(host, type, data) {\n let subEvent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'all';\n let keyboardTrigger = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n let multiDateModal = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n let skipDoubleLink = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;\n let linkType = type;\n if (type === 'apple') {\n linkType = 'ical';\n }\n if (subEvent !== 'all') {\n subEvent = parseInt(subEvent) - 1;\n } else if (data.dates.length == 1) {\n subEvent = 0;\n }\n if (data.subscribe) {\n atcb_generate_subscribe_links(host, linkType, data, keyboardTrigger);\n return;\n }\n if (subEvent !== 'all') {\n if (data.dates[`${subEvent}`].status.toLowerCase() === 'cancelled' && linkType !== 'ical') {\n atcb_create_modal(host, data, 'warning', atcb_translate_hook('date.status.cancelled', data), atcb_translate_hook('date.status.cancelled.cta', data), [], [], keyboardTrigger);\n } else {\n if (!skipDoubleLink) {}\n switch (linkType) {\n case 'ical':\n // also for apple (see above)\n atcb_generate_ical(host, data, subEvent, keyboardTrigger);\n break;\n case 'google':\n atcb_generate_google(data, data.dates[`${subEvent}`], subEvent);\n break;\n case 'msteams':\n atcb_generate_msteams(data, data.dates[`${subEvent}`], subEvent);\n break;\n case 'ms365':\n atcb_generate_microsoft(data, data.dates[`${subEvent}`], subEvent);\n break;\n case 'outlookcom':\n atcb_generate_microsoft(data, data.dates[`${subEvent}`], subEvent, 'outlookcom');\n break;\n case 'yahoo':\n atcb_generate_yahoo(data, data.dates[`${subEvent}`], subEvent);\n break;\n }\n const modalHost = document.getElementById(data.identifier + '-modal-host');\n if (modalHost) {\n const subEventButton = modalHost.shadowRoot.getElementById(data.identifier + '-' + type + '-' + (subEvent + 1));\n if (subEventButton) {\n subEventButton.classList.add('atcb-saved');\n }\n }\n if (data.dates[`${subEvent}`].status.toLowerCase() !== 'cancelled') atcbStates[`${data.identifier}`][`${type}`][`${subEvent}`]++;\n const filteredStates = atcbStates[`${data.identifier}`][`${type}`].filter(function (value) {\n return value < 1;\n });\n if (filteredStates.length == 0) {\n atcb_set_fully_successful(host, data, multiDateModal);\n }\n }\n return;\n }\n atcb_generate_multidate_links(host, type, linkType, data, keyboardTrigger, multiDateModal);\n}\nfunction atcb_generate_multidate_links(host, type, linkType, data, keyboardTrigger, multiDateModal) {\n if (linkType === 'ical' && data.dates.every(function (theSubEvent) {\n if (theSubEvent.status.toLowerCase() == 'cancelled' || theSubEvent.organizer != null && theSubEvent.organizer != '') {\n return false;\n }\n return true;\n })) {\n atcb_generate_ical(host, data, 'all', keyboardTrigger);\n for (let i = 0; i < atcbStates[`${data.identifier}`][`${type}`].length; i++) {\n atcbStates[`${data.identifier}`][`${type}`][`${i}`]++;\n }\n atcb_set_fully_successful(host, data, multiDateModal);\n return;\n }\n if (!multiDateModal) {\n const individualButtons = [type];\n for (let i = 0; i < data.dates.length; i++) {\n individualButtons.push(i + 1);\n }\n atcb_create_modal(host, data, type, atcb_translate_hook('modal.multidate.h', data), atcb_translate_hook('modal.multidate.text', data), [], individualButtons, keyboardTrigger);\n }\n}\nfunction atcb_generate_subscribe_links(host, linkType, data, keyboardTrigger) {\n const adjustedFileUrl = data.icsFile.replace('https://', 'webcal://');\n switch (linkType) {\n case 'ical':\n // also for apple (see above)\n if (atcbIsAndroid() || data.fakeAndroid) {\n atcb_subscribe_ical(data, data.icsFile);\n break;\n }\n atcb_subscribe_ical(data, adjustedFileUrl);\n break;\n case 'google':\n atcb_subscribe_google(data, adjustedFileUrl);\n break;\n case 'ms365':\n atcb_subscribe_microsoft(data, adjustedFileUrl, data.name);\n break;\n case 'outlookcom':\n atcb_subscribe_microsoft(data, adjustedFileUrl, data.name, 'outlookcom');\n break;\n case 'yahoo':\n if (data.proxy) {\n atcb_open_cal_url(data, 'yahoo', '', true);\n return;\n }\n atcb_copy_to_clipboard(data.icsFile);\n atcb_create_modal(host, data, 'yahoo', atcb_translate_hook('modal.subscribe.yahoo.h', data), atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.subscribe.yahoo.text', data), [{\n label: atcb_translate_hook('modal.subscribe.yahoo.button', data),\n primary: true,\n type: 'yahoo2nd',\n href: 'https://www.yahoo.com/calendar'\n }, {\n label: atcb_translate_hook('cancel', data)\n }], [], keyboardTrigger);\n return;\n case 'yahoo2nd':\n atcb_copy_to_clipboard(data.icsFile);\n atcb_create_modal(host, data, 'yahoo', atcb_translate_hook('modal.subscribe.yahoo.h', data), atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.subscribe.yahoo.text', data), [{\n label: atcb_translate_hook('modal.subscribe.yahoo.button', data),\n type: 'none',\n href: 'https://www.yahoo.com/calendar'\n }, {\n label: atcb_translate_hook('cancel', data)\n }], [], keyboardTrigger);\n return;\n }\n atcb_set_fully_successful(host, data);\n}\nfunction atcb_set_fully_successful(host, data) {\n let multiDateModal = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n const trigger = host.getElementById(data.identifier);\n if (trigger) {\n trigger.classList.add('atcb-saved');\n }\n atcb_saved_hook(host, data);\n if (multiDateModal && host.querySelectorAll('.atcb-modal[data-modal-nr]').length < 2) {\n atcb_toggle(host, 'close');\n }\n}\nfunction atcb_subscribe_ical(data, fileUrl) {\n atcb_open_cal_url(data, 'ical', fileUrl, true);\n}\nfunction atcb_subscribe_google(data, fileUrl) {\n const baseUrl = 'https://calendar.google.com/calendar/r?cid=';\n const baseUrlApp = 'calendar.google.com/calendar?cid=';\n const fileUrlRegex = /^(https?:\\/\\/|webcal:\\/\\/|\\/\\/)calendar\\.google\\.com\\//;\n const newFileUrl = function () {\n if (fileUrlRegex.test(fileUrl)) {\n return fileUrl.replace(/^(.)*\\?cid=/, '');\n }\n return encodeURIComponent(fileUrl);\n }();\n if (atcbIsAndroid() || data.fakeAndroid) {\n atcb_open_cal_url(data, 'google', 'intent://' + baseUrlApp + newFileUrl + '#Intent;scheme=https;package=com.google.android.calendar;end', true);\n return;\n }\n if ((atcbIsiOS() && atcbIsSafari() || data.fakeIOS) && fileUrlRegex.test(fileUrl)) {\n atcb_open_cal_url(data, 'google', 'googlecalendar://' + baseUrlApp + newFileUrl, true);\n return;\n }\n atcb_open_cal_url(data, 'google', baseUrl + newFileUrl, true);\n}\nfunction atcb_subscribe_microsoft(data, fileUrl, calName) {\n let type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'ms365';\n const urlParts = [];\n const baseUrl = function () {\n if (type == 'outlookcom') {\n return 'https://outlook.live.com/calendar/0/addfromweb/?';\n } else {\n return 'https://outlook.office.com/calendar/0/addfromweb/?';\n }\n }();\n urlParts.push('url=' + encodeURIComponent(fileUrl));\n urlParts.push('name=' + encodeURIComponent(calName));\n atcb_open_cal_url(data, type, baseUrl + urlParts.join('&'), true);\n}\nfunction atcb_generate_google(data, date) {\n let subEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';\n const urlParts = [];\n urlParts.push('https://calendar.google.com/calendar/render?action=TEMPLATE');\n const formattedDate = atcb_generate_time(date, 'clean', 'google');\n urlParts.push('dates=' + encodeURIComponent(formattedDate.start) + '%2F' + encodeURIComponent(formattedDate.end));\n if (date.timeZone && date.timeZone !== '' && !/(GMT[+|-]\\d{1,2}|Etc\\/U|Etc\\/Zulu|CET|CST6CDT|EET|EST|EST5EDT|MET|MST|MST7MDT|PST8PDT|WET)/i.test(date.timeZone) && !formattedDate.allday) {\n urlParts.push('ctz=' + date.timeZone);\n }\n if (date.name && date.name !== '') {\n urlParts.push('text=' + encodeURIComponent(date.name));\n }\n const tmpDataDescription = [];\n if (date.description && date.description !== '') {\n tmpDataDescription.push(date.description);\n }\n if (date.location && date.location !== '') {\n urlParts.push('location=' + encodeURIComponent(date.location));\n if (atcbIsiOS() || data.fakeIOS) {\n if (tmpDataDescription.length > 0) {\n tmpDataDescription.push('

');\n }\n tmpDataDescription.push('📍: ' + date.location);\n }\n }\n if (tmpDataDescription.length > 0) {\n urlParts.push('details=' + encodeURIComponent(tmpDataDescription.join('')));\n }\n if (date.recurrence && date.recurrence !== '') {\n urlParts.push('recur=' + encodeURIComponent(date.recurrence));\n }\n if (date.availability && date.availability !== '') {\n const availabilityPart = function () {\n if (date.availability == 'free') {\n return 'crm=AVAILABLE&trp=false';\n }\n return 'crm=BUSY&trp=true';\n }();\n urlParts.push(availabilityPart);\n }\n atcb_open_cal_url(data, 'google', urlParts.join('&'), false, subEvent);\n}\nfunction atcb_generate_yahoo(data, date) {\n let subEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';\n const urlParts = [];\n urlParts.push('https://calendar.yahoo.com/?v=60');\n const formattedDate = atcb_generate_time(date, 'clean');\n if (formattedDate.allday) {\n if (formattedDate.start === formattedDate.end) {\n urlParts.push('dur=allday&st=' + encodeURIComponent(formattedDate.start));\n } else {\n const allDayDate = JSON.parse(JSON.stringify(date));\n allDayDate.startTime = '00:00';\n allDayDate.endTime = '23:59';\n allDayDate.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const formattedAllDayDate = atcb_generate_time(allDayDate, 'clean');\n urlParts.push('st=' + encodeURIComponent(formattedAllDayDate.start) + '&et=' + encodeURIComponent(formattedAllDayDate.end));\n }\n } else {\n urlParts.push('st=' + encodeURIComponent(formattedDate.start) + '&et=' + encodeURIComponent(formattedDate.end));\n }\n if (date.name && date.name !== '') {\n urlParts.push('title=' + encodeURIComponent(date.name));\n }\n if (date.location && date.location !== '') {\n urlParts.push('in_loc=' + encodeURIComponent(date.location));\n }\n if (date.descriptionHtmlFree && date.descriptionHtmlFree !== '') {\n urlParts.push('desc=' + encodeURIComponent(date.descriptionHtmlFree));\n }\n atcb_open_cal_url(data, 'yahoo', urlParts.join('&'), false, subEvent);\n}\nfunction atcb_generate_microsoft(data, date) {\n let subEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';\n let type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'ms365';\n const urlParts = [];\n const basePath = function () {\n if (atcbIsMobile() || data.fakeMobile) {\n return '/calendar/0/deeplink/compose?path=%2Fcalendar%2Faction%2Fcompose&rru=addevent';\n }\n return '/calendar/action/compose?rru=addevent';\n }();\n const baseUrl = function () {\n if (type == 'outlookcom') {\n return 'https://outlook.live.com' + basePath;\n } else {\n return 'https://outlook.office.com' + basePath;\n }\n }();\n urlParts.push(baseUrl);\n const formattedDate = atcb_generate_time(date, 'delimiters', 'microsoft');\n urlParts.push('startdt=' + formattedDate.start);\n urlParts.push('enddt=' + formattedDate.end);\n if (formattedDate.allday) {\n urlParts.push('allday=true');\n }\n if (date.name && date.name !== '') {\n urlParts.push('subject=' + encodeURIComponent(date.name.replace(/&/g, '&')));\n }\n if (date.location && date.location !== '') {\n urlParts.push('location=' + encodeURIComponent(date.location));\n }\n if (date.description && date.description !== '') {\n urlParts.push('body=' + encodeURIComponent(date.description));\n }\n atcb_open_cal_url(data, type, urlParts.join('&'), false, subEvent);\n}\nfunction atcb_generate_msteams(data, date) {\n let subEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';\n const urlParts = [];\n const baseUrl = 'https://teams.microsoft.com/l/meeting/new?';\n const formattedDate = atcb_generate_time(date, 'delimiters', 'msteams', true);\n if (!formattedDate.allday || atcbIsMobile() || data.fakeMobile) {\n urlParts.push('startTime=' + encodeURIComponent(formattedDate.start));\n urlParts.push('endTime=' + encodeURIComponent(formattedDate.end));\n } else {\n urlParts.push('startTime=' + formattedDate.start);\n urlParts.push('endTime=' + formattedDate.end);\n }\n if (date.name && date.name !== '') {\n urlParts.push('subject=' + encodeURIComponent(date.name));\n }\n let locationString = '';\n if (date.location && date.location !== '') {\n locationString = date.location;\n locationString += ' // ';\n urlParts.push('location=' + encodeURIComponent(locationString));\n }\n if (date.descriptionHtmlFree && date.descriptionHtmlFree != '') {\n urlParts.push('content=' + locationString + encodeURIComponent(date.descriptionHtmlFree));\n }\n atcb_open_cal_url(data, 'msteams', baseUrl + urlParts.join('&'), false, subEvent);\n}\nfunction atcb_open_cal_url(data, type, url) {\n let subscribe = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n let subEvent = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n let target = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : '';\n if (target === '') {\n target = atcbDefaultTarget;\n }\n if (atcb_secure_url(url)) {\n if (data.proxy && data.proKey && data.proKey !== '') {\n const urlType = subscribe ? 's' : 'o';\n const query = function () {\n const parts = [];\n if (data.attendee && data.attendee !== '') {\n parts.push('attendee=' + encodeURIComponent(data.attendee));\n }\n if (data.customVar && typeof data.customVar === 'object' && Object.keys(data.customVar).length > 0) {\n parts.push('customvar=' + encodeURIComponent(JSON.stringify(data.customVar)));\n }\n if (data.dates && data.dates.length > 1 && subEvent !== null && subEvent !== 'all') {\n parts.push('sub-event=' + subEvent);\n }\n if (parts.length > 0) {\n return '?' + parts.join('&');\n }\n return '';\n }();\n url = (data.dev ? 'https://dev.caldn.net/' : 'https://go.caldn.net/') + data.proKey + '/' + urlType + '/' + type + query;\n if (!atcb_secure_url(url)) {\n return;\n }\n }\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n const newTab = window.open(url, target);\n if (newTab) {\n newTab.focus();\n }\n }\n}\nfunction atcb_generate_ical(host, data) {\n let subEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';\n let keyboardTrigger = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (subEvent !== 'all') {\n subEvent = parseInt(subEvent);\n }\n const filename = atcb_determine_ical_filename(data, subEvent);\n const givenIcsFile = function () {\n const potentialHostAttendee = host.host.getAttribute('attendee') || '';\n const potentialHostCustomVar = host.host.getAttribute('customVar') || '';\n if (data.attendee && data.attendee !== '' && potentialHostAttendee !== '' || data.customVar && data.customVar !== '' && potentialHostCustomVar !== '') {\n return '';\n }\n if (subEvent !== 'all' && data.dates[`${subEvent}`].icsFile && data.dates[`${subEvent}`].icsFile !== '') {\n return data.dates[`${subEvent}`].icsFile;\n }\n if (data.icsFile && data.icsFile !== '') {\n return data.icsFile;\n }\n return '';\n }();\n if (data.proxy) {\n atcb_open_cal_url(data, 'ical', 'https://add-to-calendar-pro.com', false, subEvent);\n return;\n }\n if (givenIcsFile !== '' && (!atcbIsiOS() || !atcbIsWebView() || data.bypassWebViewCheck)) {\n atcb_save_file(givenIcsFile, filename);\n return;\n }\n const now = new Date();\n const ics_lines = ['BEGIN:VCALENDAR', 'VERSION:2.0'];\n ics_lines.push('PRODID:-// https://add-to-calendar-pro.com // button v' + atcbVersion + ' //EN');\n ics_lines.push('CALSCALE:GREGORIAN');\n if (subEvent == 'all') {\n ics_lines.push('METHOD:PUBLISH');\n } else {\n if (data.dates[`${subEvent}`].status && data.dates[`${subEvent}`].status.toLowerCase() === 'cancelled') {\n ics_lines.push('METHOD:CANCEL');\n } else {\n if (data.dates[`${subEvent}`].organizer && data.dates[`${subEvent}`].organizer != '') {\n ics_lines.push('METHOD:REQUEST');\n } else {\n ics_lines.push('METHOD:PUBLISH');\n }\n }\n }\n const usedTimeZones = [];\n const loopStart = function () {\n if (subEvent != 'all') {\n return subEvent;\n }\n return 0;\n }();\n const loopEnd = function () {\n if (subEvent != 'all') {\n return subEvent;\n }\n return data.dates.length - 1;\n }();\n for (let i = loopStart; i <= loopEnd; i++) {\n const formattedDate = atcb_generate_time(data.dates[`${i}`], 'clean', 'ical');\n const timeAddon = function () {\n if (formattedDate.allday) {\n return ';VALUE=DATE';\n }\n if (data.dates[`${i}`].timeZone && data.dates[`${i}`].timeZone !== '') {\n const timeZoneBlock = tzlib_get_ical_block(data.dates[`${i}`].timeZone);\n if (!usedTimeZones.includes(data.dates[`${i}`].timeZone)) {\n ics_lines.push(timeZoneBlock[0]);\n }\n usedTimeZones.push(data.dates[`${i}`].timeZone);\n return ';' + timeZoneBlock[1];\n }\n }();\n ics_lines.push('BEGIN:VEVENT');\n if (data.dates[`${i}`].uid && data.dates[`${i}`].uid !== '') {\n ics_lines.push('UID:' + data.dates[`${i}`].uid);\n }\n ics_lines.push('DTSTAMP:' + atcb_format_datetime(now, 'clean', true));\n ics_lines.push('DTSTART' + timeAddon + ':' + formattedDate.start);\n ics_lines.push('DTEND' + timeAddon + ':' + formattedDate.end);\n ics_lines.push('SUMMARY:' + atcb_rewrite_ical_text(data.dates[`${i}`].name, true));\n if (data.dates[`${i}`].descriptionHtmlFreeICal && data.dates[`${i}`].descriptionHtmlFreeICal !== '') {\n ics_lines.push('DESCRIPTION:' + atcb_rewrite_ical_text(data.dates[`${i}`].descriptionHtmlFreeICal, true));\n }\n if (data.dates[`${i}`].description && data.dates[`${i}`].description !== '') {\n ics_lines.push('X-ALT-DESC;FMTTYPE=text/html:\\r\\n \\r\\n \\r\\n ' + atcb_rewrite_ical_text(data.dates[`${i}`].description, true) + '\\r\\n ');\n }\n if (data.dates[`${i}`].location && data.dates[`${i}`].location !== '') {\n ics_lines.push('LOCATION:' + atcb_rewrite_ical_text(data.dates[`${i}`].location, true));\n }\n if (data.dates[`${i}`].organizer && data.dates[`${i}`].organizer !== '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n ics_lines.push('ORGANIZER;CN=' + atcb_rewrite_ical_text(organizerParts[0], false, true) + ':MAILTO:' + organizerParts[1]);\n }\n if (data.dates[`${i}`].attendee && data.dates[`${i}`].attendee !== '') {\n const attendeeParts = data.dates[`${i}`].attendee.split('|');\n if (attendeeParts.length === 2) {\n ics_lines.push('ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=' + atcb_rewrite_ical_text(attendeeParts[0], false, true) + ';X-NUM-GUESTS=0:mailto:' + attendeeParts[1]);\n } else {\n ics_lines.push('ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=' + attendeeParts[0] + ';X-NUM-GUESTS=0:mailto:' + attendeeParts[0]);\n }\n }\n if (data.recurrence && data.recurrence !== '') {\n ics_lines.push(data.recurrence);\n }\n if (data.dates[`${i}`].availability && data.dates[`${i}`].availability !== '') {\n const transpVal = function () {\n if (data.dates[`${i}`].availability == 'free') {\n return 'TRANSPARENT';\n }\n return 'OPAQUE';\n }();\n ics_lines.push('TRANSP:' + transpVal);\n }\n ics_lines.push('SEQUENCE:' + data.dates[`${i}`].sequence);\n ics_lines.push('STATUS:' + data.dates[`${i}`].status);\n ics_lines.push('CREATED:' + data.created);\n ics_lines.push('LAST-MODIFIED:' + data.updated);\n ics_lines.push('END:VEVENT');\n }\n ics_lines.push('END:VCALENDAR');\n const dataUrl = function () {\n if (givenIcsFile != '') {\n return givenIcsFile;\n }\n return 'data:text/calendar;charset=utf-8,' + encodeURIComponent(ics_lines.join('\\r\\n'));\n }();\n if (atcbIsiOS() && !atcbIsSafari() || atcbIsWebView() && (atcbIsiOS() || atcbIsAndroid() && atcbIsProblematicWebView())) {\n atcb_ical_copy_note(host, dataUrl, data, keyboardTrigger);\n return;\n }\n atcb_save_file(dataUrl, filename);\n}\nfunction atcb_determine_ical_filename(data, subEvent) {\n const filenameSuffix = function () {\n if (subEvent != 'all' && subEvent != 0) {\n return '-' + parseInt(subEvent) + 1;\n }\n return '';\n }();\n if (data.iCalFileName != null && data.iCalFileName != '') {\n return data.iCalFileName + filenameSuffix;\n }\n if (data.icsFile != null && data.icsFile != '') {\n const filenamePart = data.icsFile.split('/').pop().split('.')[0];\n if (filenamePart != '') {\n return filenamePart + filenameSuffix;\n }\n }\n return 'event-to-save-in-my-calendar' + filenameSuffix;\n}\nfunction atcb_ical_copy_note(host, dataUrl, data, keyboardTrigger) {\n atcb_copy_to_clipboard(dataUrl);\n if (atcbIsiOS() && !atcbIsSafari()) {\n atcb_create_modal(host, data, 'warning', atcb_translate_hook('modal.opensafari.ical.h', data), atcb_translate_hook('modal.opensafari.ical.text', data) + '
' + atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.opensafari.ical.steps', data), [], [], keyboardTrigger);\n return;\n }\n atcb_create_modal(host, data, 'warning', atcb_translate_hook('modal.webview.ical.h', data), atcb_translate_hook('modal.webview.ical.text', data) + '
' + atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.webview.ical.steps', data), [], [], keyboardTrigger);\n}\nfunction atcb_saved_hook(host, data) {\n atcb_log_event('success', data.identifier, data.identifier);\n if (data.ty && typeof atcb_generate_ty === 'function') {\n setTimeout(() => {\n atcb_generate_ty(host, data);\n }, 1000);\n }\n}\nfunction atcb_save_file(file, filename) {\n try {\n const save = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');\n save.rel = 'noopener';\n save.href = file;\n if (atcbIsMobile()) {\n save.target = '_self';\n } else {\n save.target = '_blank';\n }\n save.download = filename + '.ics';\n const evt = new MouseEvent('click', {\n view: window,\n button: 0,\n bubbles: true,\n cancelable: false\n });\n save.dispatchEvent(evt);\n (window.URL || window.webkitURL).revokeObjectURL(save.href);\n } catch (e) {\n console.error(e);\n }\n}\nfunction atcb_generate_time(data) {\n let style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'delimiters';\n let targetCal = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'general';\n let addTimeZoneOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (data.startTime && data.startTime !== '' && data.endTime && data.endTime !== '') {\n const newStartDate = new Date(data.startDate + 'T' + data.startTime + ':00.000+00:00');\n if (!data.endDate) data.endDate = data.startDate;\n const newEndDate = new Date(data.endDate + 'T' + data.endTime + ':00.000+00:00');\n const durationMS = newEndDate - newStartDate;\n const durationHours = Math.floor(durationMS / 1000 / 60 / 60);\n const durationMinutes = Math.floor((durationMS - durationHours * 60 * 60 * 1000) / 1000 / 60 % 60);\n const durationString = function () {\n if (durationHours < 10) {\n return '0' + durationHours + ':' + ('0' + durationMinutes).slice(-2);\n }\n return durationHours + ':' + ('0' + durationMinutes).slice(-2);\n }();\n if (targetCal == 'ical' || targetCal == 'google' && !/(GMT[+|-]\\d{1,2}|Etc\\/U|Etc\\/Zulu|CET|CST6CDT|EET|EST|EST5EDT|MET|MST|MST7MDT|PST8PDT|WET)/i.test(data.timeZone)) {\n return {\n start: atcb_format_datetime(newStartDate, 'clean', true, true),\n end: atcb_format_datetime(newEndDate, 'clean', true, true),\n duration: durationString,\n allday: false\n };\n }\n const offsetStart = tzlib_get_offset(data.timeZone, data.startDate, data.startTime);\n const offsetEnd = tzlib_get_offset(data.timeZone, data.endDate, data.endTime);\n if (addTimeZoneOffset) {\n const formattedOffsetStart = offsetStart.slice(0, 3) + ':' + offsetStart.slice(3);\n const formattedOffsetEnd = offsetEnd.slice(0, 3) + ':' + offsetEnd.slice(3);\n return {\n start: newStartDate.toISOString().replace('.000Z', formattedOffsetStart),\n end: newEndDate.toISOString().replace('.000Z', formattedOffsetEnd),\n duration: durationString,\n allday: false\n };\n }\n const calcOffsetStart = parseInt(offsetStart[0] + 1) * -1 * ((parseInt(offsetStart.substring(1, 3)) * 60 + parseInt(offsetStart.substring(3, 5))) * 60 * 1000);\n const calcOffsetEnd = parseInt(offsetEnd[0] + 1) * -1 * ((parseInt(offsetEnd.substring(1, 3)) * 60 + parseInt(offsetEnd.substring(3, 5))) * 60 * 1000);\n newStartDate.setTime(newStartDate.getTime() + calcOffsetStart);\n newEndDate.setTime(newEndDate.getTime() + calcOffsetEnd);\n return {\n start: atcb_format_datetime(newStartDate, style),\n end: atcb_format_datetime(newEndDate, style),\n duration: durationString,\n allday: false\n };\n } else {\n const startDate = data.startDate.split('-');\n const endDate = data.endDate ? data.endDate.split('-') : startDate;\n const newStartDate = new Date(Date.UTC(startDate[0], startDate[1] - 1, startDate[2], 12, 0, 0));\n const newEndDate = new Date(Date.UTC(endDate[0], endDate[1] - 1, endDate[2], 12, 0, 0));\n if (targetCal === 'google' || targetCal === 'microsoft' && !atcbIsMobile() || targetCal === 'msteams' || targetCal === 'ical') {\n newEndDate.setDate(newEndDate.getDate() + 1);\n }\n if (targetCal === 'msteams') {\n if (atcbIsMobile()) {\n const offset = newStartDate.getTimezoneOffset();\n const formattedOffset = function () {\n if (offset < 0) {\n return '+' + ('0' + Math.abs(offset / 60)).slice(-2) + ':' + ('0' + Math.abs(offset % 60)).slice(-2);\n } else {\n return '-' + ('0' + Math.abs(offset / 60)).slice(-2) + ':' + ('0' + Math.abs(offset % 60)).slice(-2);\n }\n }();\n return {\n start: atcb_format_datetime(newStartDate, style, false, true) + 'T00:00:00' + formattedOffset,\n end: atcb_format_datetime(newEndDate, style, false, true) + 'T00:00:00' + formattedOffset,\n allday: true\n };\n }\n return {\n start: atcb_format_datetime(newStartDate, style, false, true) + '+00:00',\n end: atcb_format_datetime(newEndDate, style, false, true) + '+00:00',\n allday: true\n };\n }\n return {\n start: atcb_format_datetime(newStartDate, style, false),\n end: atcb_format_datetime(newEndDate, style, false),\n allday: true\n };\n }\n}\nfunction atcb_format_datetime(datetime) {\n let style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'delimiters';\n let includeTime = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n let removeZ = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n const regex = function () {\n if (includeTime) {\n if (style == 'clean') {\n return /(-|:|(\\.\\d{3}))/g;\n }\n return /(\\.\\d{3})/g;\n }\n if (style == 'clean') {\n return /(-|T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z)/g;\n }\n return /T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z/g;\n }();\n const output = removeZ ? datetime.toISOString().replace(regex, '').replace('Z', '') : datetime.toISOString().replace(regex, '');\n return output;\n}\nfunction offsetToMilliseconds(offset) {\n const sign = offset[0] === '+' ? 1 : -1;\n const hours = parseInt(offset.substring(1, 3), 10);\n const minutes = parseInt(offset.substring(3, 5), 10);\n const totalMinutes = (hours * 60 + minutes) * sign;\n const milliseconds = totalMinutes * 60000;\n return milliseconds;\n}\nfunction atcb_translate_via_time_zone(date, time, baseTimeZone, targetTimeZone) {\n const dateTime = new Date(`${date}T${time}:00Z`);\n const offset = tzlib_get_offset(baseTimeZone, date, time);\n const dateTimeUTC = new Date(dateTime.getTime() - offsetToMilliseconds(offset));\n const formatter = new Intl.DateTimeFormat('en-CA', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n timeZone: targetTimeZone,\n hourCycle: 'h23'\n });\n const dateInTargetTimeZone = formatter.format(dateTimeUTC);\n return [date, time] = dateInTargetTimeZone.split(', ');\n}\nfunction atcb_generate_timestring(dates) {\n let language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en';\n let subEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';\n let decorate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n let browserTimeOverride = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n let enforceYear = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n let hideTimeZone = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;\n if (decorate) {\n const tmpRootTZ = atcb_decorate_data_timezone();\n dates = atcb_decorate_data_dates({\n dates: dates,\n timeZone: tmpRootTZ\n }).dates;\n }\n let startDateInfo, endDateInfo, timeZoneInfoStart, timeZoneInfoEnd;\n let formattedTimeStart = {};\n let formattedTimeEnd = {};\n let timeBlocks = [];\n let timeZoneInfoStringStart = '';\n let timeZoneInfoStringEnd = '';\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n if (subEvent === 'all') {\n formattedTimeStart = atcb_generate_time(dates[0]);\n formattedTimeEnd = atcb_generate_time(dates[dates.length - 1]);\n timeZoneInfoStart = browserTimeOverride ? browserTimezone : dates[0].timeZone;\n timeZoneInfoEnd = browserTimeOverride ? browserTimezone : dates[dates.length - 1].timeZone;\n } else {\n formattedTimeStart = atcb_generate_time(dates[`${subEvent}`]);\n formattedTimeEnd = formattedTimeStart;\n timeZoneInfoStart = browserTimeOverride ? browserTimezone : dates[`${subEvent}`].timeZone;\n timeZoneInfoEnd = timeZoneInfoStart;\n }\n startDateInfo = new Date(formattedTimeStart.start);\n endDateInfo = new Date(formattedTimeEnd.end);\n if (formattedTimeStart.allday) {\n timeZoneInfoStart = 'GMT';\n }\n if (formattedTimeEnd.allday) {\n timeZoneInfoEnd = 'GMT';\n }\n const magicLocationPhrases = ['global', 'world-wide', 'worldwide', 'online'];\n const convertable = function () {\n let i = 0;\n let j = dates.length - 1;\n if (subEvent != 'all') {\n i = j = subEvent;\n }\n for (i; i <= j; i++) {\n const magicLocation = function () {\n if (dates[`${i}`].location && dates[`${i}`].location !== '') {\n if (magicLocationPhrases.includes(dates[`${i}`].location.toLowerCase())) {\n return true;\n }\n }\n return false;\n }();\n if (!magicLocation && !dates[`${i}`].onlineEvent) {\n return false;\n }\n }\n return true;\n }();\n if (convertable) {\n timeZoneInfoStart = timeZoneInfoEnd = browserTimezone;\n } else {\n if (!formattedTimeStart.allday && browserTimezone !== timeZoneInfoStart && timeZoneInfoStart !== timeZoneInfoEnd) {\n timeZoneInfoStringStart = '(' + timeZoneInfoStart + ')';\n }\n if (!formattedTimeEnd.allday && browserTimezone !== timeZoneInfoEnd || timeZoneInfoStart !== timeZoneInfoEnd) {\n timeZoneInfoStringEnd = '(' + timeZoneInfoEnd + ')';\n }\n }\n const now = new Date();\n const dropYearStart = function () {\n if (!enforceYear && startDateInfo.getFullYear() === now.getFullYear()) {\n return true;\n }\n return false;\n }();\n const dropYearEnd = function () {\n if (!enforceYear && endDateInfo.getFullYear() === now.getFullYear()) {\n return true;\n }\n return false;\n }();\n const formatOptionsStart = get_format_options(timeZoneInfoStart, dropYearStart, language);\n const formatOptionsEnd = get_format_options(timeZoneInfoEnd, dropYearEnd, language);\n if (startDateInfo.toLocaleDateString(language, formatOptionsEnd.DateLong) === endDateInfo.toLocaleDateString(language, formatOptionsEnd.DateLong)) {\n if (formattedTimeStart.allday) {\n if (!dropYearStart) {\n timeBlocks.push(startDateInfo.toLocaleDateString(language, formatOptionsStart.DateLong));\n }\n } else {\n let timeString = '';\n if (dropYearStart) {\n timeString = startDateInfo.toLocaleString(language, formatOptionsStart.Time);\n } else {\n timeString = startDateInfo.toLocaleString(language, formatOptionsStart.DateTimeLong);\n }\n if (language === 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n if (timeZoneInfoStringStart !== '' && !hideTimeZone) {\n timeBlocks.push(timeZoneInfoStringStart);\n }\n timeBlocks.push('-');\n timeString = endDateInfo.toLocaleTimeString(language, formatOptionsEnd.Time);\n if (language === 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n if (timeZoneInfoStringEnd !== '' && !hideTimeZone) {\n timeBlocks.push(timeZoneInfoStringEnd);\n }\n }\n } else {\n if (formattedTimeStart.allday) {\n timeBlocks.push(startDateInfo.toLocaleDateString(language, formatOptionsStart.DateLong));\n } else {\n let timeString = '';\n if (dropYearStart) {\n timeString = startDateInfo.toLocaleString(language, formatOptionsStart.Time);\n } else {\n timeString = startDateInfo.toLocaleString(language, formatOptionsStart.DateTimeLong);\n }\n if (language === 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n }\n if (timeZoneInfoStringStart !== '' && !hideTimeZone) {\n timeBlocks.push(timeZoneInfoStringStart);\n }\n timeBlocks.push('-');\n if (formattedTimeEnd.allday) {\n timeBlocks.push(endDateInfo.toLocaleDateString(language, formatOptionsEnd.DateLong));\n } else {\n let timeString = endDateInfo.toLocaleString(language, formatOptionsEnd.DateTimeLong);\n if (language === 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n }\n if (timeZoneInfoStringEnd !== '' && !hideTimeZone) {\n timeBlocks.push(timeZoneInfoStringEnd);\n }\n }\n return timeBlocks;\n}\nfunction get_format_options(timeZoneInfo) {\n let dropYear = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let language = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'en';\n const hoursFormat = function () {\n if (language === 'en') {\n return 'h12';\n }\n return 'h23';\n }();\n if (dropYear) {\n return {\n DateLong: {\n timeZone: timeZoneInfo,\n month: 'short',\n day: 'numeric'\n },\n DateTimeLong: {\n timeZone: timeZoneInfo,\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat\n },\n Time: {\n timeZone: timeZoneInfo,\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat\n }\n };\n }\n return {\n DateLong: {\n timeZone: timeZoneInfo,\n year: 'numeric',\n month: 'numeric',\n day: 'numeric'\n },\n DateTimeLong: {\n timeZone: timeZoneInfo,\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat\n },\n Time: {\n timeZone: timeZoneInfo,\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat\n }\n };\n}\nfunction atcb_secure_content(data) {\n let isJSON = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const toClean = isJSON ? JSON.stringify(data) : data.toString();\n const cleanedUp = toClean.replace(/(<(?!br)([^>]+)>)/gi, '');\n if (isJSON) {\n return JSON.parse(cleanedUp);\n } else {\n return cleanedUp;\n }\n}\nfunction atcb_secure_url(url) {\n let throwError = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (url && url.match(/((\\.\\.\\/)|(\\.\\.\\\\)|(%2e%2e%2f)|(%252e%252e%252f)|(%2e%2e\\/)|(%252e%252e\\/)|(\\.\\.%2f)|(\\.\\.%252f)|(%2e%2e%5c)|(%252e%252e%255c)|(%2e%2e\\\\)|(%252e%252e\\\\)|(\\.\\.%5c)|(\\.\\.%255c)|(\\.\\.%c0%af)|(\\.\\.%25c0%25af)|(\\.\\.%c1%9c)|(\\.\\.%25c1%259c))/gi)) {\n if (throwError) {\n console.error('Seems like the generated URL includes at least one security issue and got blocked. Please check the calendar button parameters!');\n }\n return false;\n } else {\n return true;\n }\n}\nfunction atcb_validEmail(email) {\n if (!/^.{0,70}@.{1,30}\\.[a-zA-Z]{2,9}$/.test(email)) {\n return false;\n }\n return true;\n}\nfunction atcb_rewrite_html_elements(content) {\n let clear = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let iCalBreaks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (clear) {\n if (iCalBreaks) {\n content = content.replace(/(\\[br\\s?\\/?\\]|\\{br\\s?\\/?\\}|(\\[\\/p\\](?=.))|(\\{\\/p\\}(?=.)))/gi, '\\\\n');\n } else {\n content = content.replace(/(\\[br\\s?\\/?\\]|\\{br\\s?\\/?\\}|(\\[\\/p\\](?=.))|(\\{\\/p\\}(?=.)))/gi, ' ');\n }\n content = content.replace(/\\[url\\](.+?)\\[\\/url\\]/gi, (match, p1) => {\n return p1.split('|')[0];\n });\n content = content.replace(/\\{url\\}(.+?)\\{\\/url\\}/gi, (match, p1) => {\n return p1.split('|')[0];\n });\n content = content.replace(/\\[(|\\/)(hr|p|b|strong|u|i|em|li|ul|ol|h\\d)\\]/gi, '');\n content = content.replace(/\\{(|\\/)(hr|p|b|strong|u|i|em|li|ul|ol|h\\d)\\}/gi, '');\n content = content.replace(/&[#a-zA-Z0-9]{1,9};/gi, '');\n } else {\n content = content.replace(/\\[url\\]((?:(?!\\[\\/url\\])[\\w&$+.,:;=~!*'?@^%#|\\s\\-()[\\]/])*)\\[\\/url\\]/gi, function (match, p1) {\n return atcb_parse_url_code(p1);\n });\n content = content.replace(/\\{url\\}((?:(?!\\[\\/url\\])[\\w&$+.,:;=~!*'?@^%#|\\s\\-()[\\]/])*)\\{\\/url\\}/gi, function (match, p1) {\n return atcb_parse_url_code(p1);\n });\n content = content.replace(/\\[(\\/|)(br|hr|p|b|strong|u|i|em|li|ul|ol|h\\d)(\\s?\\/?)\\]/gi, '<$1$2$3>');\n content = content.replace(/\\{(\\/|)(br|hr|p|b|strong|u|i|em|li|ul|ol|h\\d)(\\s?\\/?)\\}/gi, '<$1$2$3>');\n }\n return content;\n}\nfunction atcb_parse_url_code(input) {\n const urlText = input.split('|');\n const text = function () {\n if (urlText.length > 1 && urlText[1] != '') {\n return urlText[1];\n } else {\n return urlText[0];\n }\n }();\n return '' + text + '';\n}\nfunction atcb_rewrite_ical_text(content) {\n let truncate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n let inQuotes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (inQuotes) {\n content = content.replace(/\"/g, '');\n } else {\n content = content.replace(/\\\\/g, '\\\\\\\\').replace(/(,|;)/g, '\\\\$1').replace(/\\\\\\\\n/g, '\\\\n');\n }\n if (truncate) {\n content = content.replace(/.{60}/g, '$&' + '\\r\\n ');\n }\n return content;\n}\nfunction atcb_position_list(host, trigger, list) {\n let blockUpwards = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n let blockDownwards = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n let anchorSet = false;\n const originalTrigger = trigger;\n if (trigger.querySelector('.atcb-dropdown-anchor') !== null) {\n trigger = trigger.querySelector('.atcb-dropdown-anchor');\n anchorSet = true;\n }\n list.style.position = 'relative';\n list.style.display = 'inline-block';\n let triggerDim = trigger.getBoundingClientRect();\n const btnDim = originalTrigger.getBoundingClientRect();\n const btnParentDim = originalTrigger.parentNode.getBoundingClientRect();\n const viewportHeight = document.documentElement.clientHeight;\n if (anchorSet === true && !list.classList.contains('atcb-dropoverlay')) {\n let listDim = list.getBoundingClientRect();\n list.style.width = listDim.width + 'px';\n if (list.classList.contains('atcb-dropup') || !blockUpwards && triggerDim.top + listDim.height > viewportHeight - 20 && 2 * btnDim.top + btnDim.height - triggerDim.top - listDim.height > 20 || blockDownwards) {\n originalTrigger.classList.add('atcb-dropup');\n list.classList.add('atcb-dropup');\n list.style.bottom = btnParentDim.bottom - btnDim.bottom + (triggerDim.top - btnDim.top) + 'px';\n } else {\n list.style.top = btnDim.top - btnParentDim.top + (triggerDim.top - btnDim.top) + 'px';\n if (originalTrigger.classList.contains('atcb-dropup')) {\n originalTrigger.classList.remove('atcb-dropup');\n }\n }\n triggerDim = trigger.getBoundingClientRect();\n if (!list.classList.contains('atcb-style-round') && !list.classList.contains('atcb-style-text') && !list.classList.contains('atcb-style-neumorphism')) {\n list.style.minWidth = triggerDim.width + 'px';\n if (list.classList.contains('atcb-dropdown')) {\n list.style.maxWidth = triggerDim.width + 'px';\n }\n }\n listDim = list.getBoundingClientRect();\n list.style.left = Math.round(triggerDim.left - btnParentDim.left - (listDim.width - triggerDim.width) / 2) + 'px';\n } else {\n list.style.minWidth = btnDim.width + 20 + 'px';\n const listDim = list.getBoundingClientRect();\n list.style.width = listDim.width + 'px';\n const sideMargin = Math.round((btnDim.width - listDim.width) / 2);\n list.style.margin = -Math.round((listDim.height + btnDim.height) / 2) + 'px ' + sideMargin + 'px 0 ' + sideMargin + 'px';\n }\n list.style.position = 'absolute';\n list.style.display = 'block';\n const atcbL = host.querySelector('#atcb-reference');\n if (atcbL) {\n if (originalTrigger.classList.contains('atcb-dropup')) {\n originalTrigger.parentNode.after(atcbL);\n atcbL.classList.add('atcb-dropup');\n }\n }\n}\nfunction atcb_position_shadow_button(originalShadowHost, modalShadowHost) {\n const wrapperDim = originalShadowHost.querySelector('.atcb-initialized ').getBoundingClientRect();\n const newWrapper = modalShadowHost.querySelector('.atcb-initialized');\n let widthVal = wrapperDim.width;\n if (wrapperDim.width < 250) {\n widthVal = 250;\n }\n newWrapper.style.width = widthVal + 'px';\n newWrapper.style.height = wrapperDim.height + 'px';\n newWrapper.style.top = wrapperDim.top + 'px';\n newWrapper.style.left = wrapperDim.left + 'px';\n}\nfunction atcb_position_shadow_button_listener() {\n const active = atcbStates['active'];\n if (active !== null && active !== '') {\n const originalEl = document.querySelector('add-to-calendar-button[atcb-button-id=' + active + ']').shadowRoot;\n const shadowEl = document.querySelector('div[atcb-button-id=' + active + ']').shadowRoot;\n atcb_position_shadow_button(originalEl, shadowEl);\n }\n}\nfunction atcb_manage_body_scroll(host) {\n let modalObj = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n const modal = function () {\n if (modalObj != null) {\n return modalObj;\n } else {\n const allModals = host.querySelectorAll('.atcb-modal');\n if (allModals.length === 0) {\n return null;\n }\n return allModals[allModals.length - 1];\n }\n }();\n if (modal == null) {\n return;\n }\n const modalDim = modal.getBoundingClientRect();\n if (modalDim.height + 150 > window.innerHeight) {\n document.body.classList.add('atcb-modal-no-scroll');\n document.documentElement.classList.add('atcb-modal-no-scroll');\n } else {\n document.body.classList.remove('atcb-modal-no-scroll');\n document.documentElement.classList.remove('atcb-modal-no-scroll');\n }\n}\nfunction atcb_set_fullsize(el) {\n el.style.width = window.innerWidth + 'px';\n el.style.height = window.innerHeight + 100 + 'px';\n}\nfunction atcb_set_sizes(el, sizes) {\n el.style.setProperty('--base-font-size-l', sizes['l'] + 'px');\n el.style.setProperty('--base-font-size-m', sizes['m'] + 'px');\n el.style.setProperty('--base-font-size-s', sizes['s'] + 'px');\n}\nfunction atcb_generate_uuid() {\n const id = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));\n return id;\n}\nfunction atcb_copy_to_clipboard(dataString) {\n const tmpInput = document.createElement('input');\n document.body.append(tmpInput);\n const editable = tmpInput.contentEditable;\n const readOnly = tmpInput.readOnly;\n tmpInput.contentEditable = true;\n tmpInput.readOnly = false;\n tmpInput.value = dataString;\n if (atcbIsiOS()) {\n var range = document.createRange();\n range.selectNodeContents(tmpInput);\n var selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n tmpInput.setSelectionRange(0, 999999);\n } else {\n tmpInput.select();\n }\n tmpInput.contentEditable = editable;\n tmpInput.readOnly = readOnly;\n document.execCommand('copy');\n tmpInput.remove();\n}\nfunction atcb_debounce(func) {\n var _this = this;\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200;\n let timer;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(_this, args);\n }, timeout);\n };\n}\nfunction atcb_debounce_leading(func) {\n var _this2 = this;\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300;\n let timer;\n return function () {\n if (!timer) {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n func.apply(_this2, args);\n }\n clearTimeout(timer);\n timer = setTimeout(() => {\n timer = undefined;\n }, timeout);\n };\n}\nfunction atcb_log_event(event, trigger, identifier) {\n const parentEl = function () {\n const customTrigger = document.getElementById(identifier);\n if (customTrigger) {\n return customTrigger;\n }\n return document.querySelector('[atcb-button-id=\"' + identifier + '\"]');\n }();\n if (parentEl) {\n parentEl.setAttribute('atcb-last-event', event + ':' + trigger);\n }\n if (atcbIsBrowser()) {\n atcb_push_to_data_layer(event, trigger);\n }\n}\nfunction atcb_push_to_data_layer(event, trigger) {\n let action = '';\n switch (event) {\n case 'initialization':\n action = 'Initialized';\n break;\n case 'openList':\n action = 'Opened';\n break;\n case 'closeList':\n action = 'Closed';\n break;\n case 'openCalendarLink':\n action = 'Opened';\n break;\n case 'openSingletonLink':\n action = 'Opened';\n break;\n case 'openSubEventLink':\n action = 'Opened';\n break;\n case 'openRSVP':\n action = 'Opened';\n break;\n case 'success':\n action = 'Saved';\n break;\n case 'successRSVP':\n action = 'Saved';\n break;\n }\n const category = event === 'openRSVP' || event === 'successRSVP' ? 'Add-to-Calendar-RSVP' : 'Add-to-Calendar-Button';\n const atcbDataLayer = window.dataLayer = window.dataLayer || [];\n atcbDataLayer.push({\n eventCategory: category,\n eventAction: action,\n eventLabel: trigger,\n event: event\n });\n}\n\n/* How to add new languages:\n * 1. Duplicate the \"en\" block at the following \"i18nStrings\" object.\n * 2. Change the key to the ISO 639-1 code of your language (https://www.w3schools.com/tags/ref_language_codes.asp).\n * 3. Translate the labels.\n * 4. Add the language to the \"rtlLanguages\" array below, if it write from right to left.\n * 4. Update the \"language\" part at the configuration page of the demo page - add the new lagnuages to the \"Options\" info (/demo/pages/configuration.vue).\n * 5. Also update the language.ts file at the demo page, so the language appears at the demo playground (/demo/src/components/models/language.ts).\n */\nconst rtlLanguages = ['ar', 'fa'];\nconst calendarNames = {\n apple: 'Apple',\n google: 'Google',\n ms365: 'Microsoft 365',\n msteams: 'Microsoft Teams',\n outlookcom: 'Outlook.com',\n yahoo: 'Yahoo'\n};\nconst i18nStrings = {\n en: {\n 'label.addtocalendar': 'Add to Calendar',\n ical: 'iCal File',\n ...calendarNames,\n 'modal.button.default': 'Click me',\n 'modal.webview.ical.h': 'Open your browser',\n 'modal.webview.ical.text': 'Unfortunately, in-app browsers have problems with the way we generate the calendar file.',\n 'modal.clipboard.text': 'We automatically copied a magical URL into your clipboard.',\n 'modal.webview.ical.steps': '
  1. Open another browser on your phone, ...
  2. Paste the clipboard content and go.
',\n 'modal.opensafari.ical.h': 'Open Safari',\n 'modal.opensafari.ical.text': 'Unfortunately, iOS has some problems generating and opening the calendar file outside of Safari.',\n 'modal.opensafari.ical.steps': '
  1. Open Safari, ...
  2. Paste the clipboard content and go.
',\n 'modal.multidate.h': 'This is an event series',\n 'modal.multidate.text': 'Add the individual events one by one:',\n 'date.status.cancelled': 'This date got cancelled.',\n 'date.status.cancelled.cta': 'Please update your calendar!',\n 'modal.subscribe.yahoo.h': 'Add Calendar to Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Open now the Yahoo Calendar.
  2. Click the \"Actions\" tab.
  3. Hit \"Follow Other Calendars\".
  4. Set a name and paste the clipboard content into the url field.
',\n 'modal.subscribe.yahoo.button': 'Open Yahoo Calendar',\n close: 'Close',\n continue: 'Continue',\n cancel: 'Cancel',\n expired: 'Expired',\n recurring: 'Recurring',\n thankyou: 'Thank you',\n submit: 'Submit',\n 'label.rsvp': 'RSVP',\n 'label.share.email': 'Share via Email',\n 'label.share.copy': 'Copy Link',\n 'label.share.copied': 'Copied',\n 'label.share.email.subject': 'Save this event',\n 'form.error.required': 'You did not properly fill all required fields',\n 'form.error.sending': 'There was a problem sending your response. Please try again later',\n 'form.success': 'Sent successfully!'\n },\n de: {\n 'label.addtocalendar': 'Im Kalender speichern',\n ical: 'iCal-Datei',\n ...calendarNames,\n 'modal.button.default': 'Klick mich',\n 'modal.webview.ical.h': 'Öffne deinen Browser',\n 'modal.webview.ical.text': 'Leider haben In-App-Browser Probleme mit der Art, wie wir Kalender-Dateien erzeugen.',\n 'modal.clipboard.text': 'Wir haben automatisch eine magische URL in deine Zwischenablage kopiert.',\n 'modal.webview.ical.steps': '
  1. Öffne einen anderen Browser auf deinem Smartphone, ...
  2. Nutze die Einfügen-Funktion, um fortzufahren.
',\n 'modal.opensafari.ical.h': 'Öffne Safari',\n 'modal.opensafari.ical.text': 'Leider hat iOS einige Probleme beim Generieren und Öffnen der Kalenderdatei außerhalb von Safari.',\n 'modal.opensafari.ical.steps': '
  1. Öffne Safari, ...
  2. Nutze die Einfügen-Funktion, um fortzufahren.
',\n 'modal.multidate.h': 'Dies ist eine Termin-Reihe',\n 'modal.multidate.text': 'Füge die einzelnen Termine der Reihe nach deinem Kalender hinzu:',\n 'date.status.cancelled': 'Dieser Termin wurde abgesagt.',\n 'date.status.cancelled.cta': 'Bitte aktualisiere deinen Kalender!',\n 'modal.subscribe.yahoo.h': 'Kalender zu Yahoo hinzufügen',\n 'modal.subscribe.yahoo.text': '
  1. Öffne den Yahoo-Kalender.
  2. Klicke auf den \"Aktionen\"-Tab.
  3. Wähle \"Weiteren Kalendern folgen\".
  4. Wähle einen Namen und füge die URL aus deiner Zwischenablage in das URL-Feld ein.
',\n 'modal.subscribe.yahoo.button': 'Yahoo-Kalender öffnen',\n close: 'Schließen',\n continue: 'Weiter',\n cancel: 'Abbrechen',\n expired: 'Abgelaufen',\n recurring: 'Wiederkehrend',\n thankyou: 'Danke',\n submit: 'Absenden',\n 'label.share.email': 'Per E-Mail teilen',\n 'label.share.copy': 'Link kopieren',\n 'label.share.copied': 'Kopiert',\n 'label.share.email.subject': 'Merke dir diesen Termin',\n 'form.error.required': 'Du hast nicht alle erforderlichen Felder korrekt ausgefüllt',\n 'form.error.sending': 'Es gab ein Problem beim Senden deiner Antwort. Bitte versuche es später noch einmal',\n 'form.success': 'Erfolgreich gesendet!'\n },\n es: {\n 'label.addtocalendar': 'Añadir al Calendario',\n ical: 'iCal Ficha',\n ...calendarNames,\n 'modal.button.default': 'Haz clic mí',\n 'modal.webview.ical.h': 'Abra su browser',\n 'modal.webview.ical.text': 'Lamentablemente, los browsers in-app tienen problemas con la forma en que generamos el archivo del calendario.',\n 'modal.clipboard.text': 'Hemos copiado automáticamente una URL mágica en su portapapeles.',\n 'modal.webview.ical.steps': '
  1. Abre otro browser en tu smartphone, ...
  2. Utilice la función de pegar para continuar.
',\n 'modal.opensafari.ical.h': 'Abrir Safari',\n 'modal.opensafari.ical.text': 'Desafortunadamente, iOS tiene algunos problemas para generar y abrir el archivo de calendario fuera de Safari.',\n 'modal.opensafari.ical.steps': '
  1. Abrir Safari, ...
  2. Utilice la función de pegar para continuar.
',\n 'modal.multidate.h': 'Esta es una serie de fechas',\n 'modal.multidate.text': 'Añada las fechas individuales a su calendario en orden:',\n 'date.status.cancelled': 'Esta fecha fue cancelada.',\n 'date.status.cancelled.cta': 'Actualice su calendario!',\n 'modal.subscribe.yahoo.h': 'Añadir calendario a Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Abra el calendario de Yahoo.
  2. Haga clic en la pestaña \"Acciones\".
  3. Seleccione \"Seguir otros calendarios\".
  4. Elige un nombre y pega la URL de tu portapapeles en el campo URL.
',\n 'modal.subscribe.yahoo.button': 'Abrir calendario de Yahoo',\n close: 'Ciérralo',\n continue: 'Continuar',\n cancel: 'Cancelar',\n expired: 'Caducada',\n recurring: 'Periódica',\n thankyou: 'Gracias',\n submit: 'Enviar',\n 'label.share.email': 'Compartir por E-mail',\n 'label.share.copy': 'Copiar enlace',\n 'label.share.copied': 'Copiado',\n 'label.share.email.subject': 'Recuerda esta fecha',\n 'form.error.required': 'No has completado correctamente todos los campos requeridos',\n 'form.error.sending': 'Hubo un problema al enviar tu respuesta. Por favor, inténtalo de nuevo más tarde',\n 'form.success': 'Enviado con éxito!'\n },\n pt: {\n 'label.addtocalendar': 'Incluir no Calendário',\n ical: 'Ficheiro iCal',\n ...calendarNames,\n 'modal.button.default': 'Clicar-me',\n 'modal.webview.ical.h': 'Abra o seu browser',\n 'modal.webview.ical.text': 'Infelizmente, os navegadores em tampas têm problemas com a forma como geramos o ficheiro de calendário.',\n 'modal.clipboard.text': 'Copiámos automaticamente um URL mágico para a sua área de transferência.',\n 'modal.webview.ical.steps': '
  1. Abrir outro browser en tu smartphone, ...
  2. Use a função colar para continuar.
',\n 'modal.opensafari.ical.h': 'Safari aberto',\n 'modal.opensafari.ical.text': 'Infelizmente, o iOS tem alguns problemas para gerar e abrir o arquivo de calendário fora do Safari.',\n 'modal.opensafari.ical.steps': '
  1. Safari aberto, ...
  2. Use a função colar para continuar.
',\n 'modal.multidate.h': 'Esta é uma série de datas',\n 'modal.multidate.text': 'Adicione as datas individuais ao seu calendário, por ordem:',\n 'date.status.cancelled': 'Esta data foi cancelada.',\n 'date.status.cancelled.cta': 'Actualize o seu calendário!',\n 'modal.subscribe.yahoo.h': 'Adicionar calendário ao Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Abrir o calendário do Yahoo.
  2. Clique no separador \"Acções\".
  3. Seleccione \"Seguir outros calendários\".
  4. Escolha um nome e cole o URL da sua área de transferência no campo URL.
',\n 'modal.subscribe.yahoo.button': 'Abra o Calendário do Yahoo',\n close: 'Fechar',\n continue: 'Continuar',\n cancel: 'Cancelar',\n expired: 'Expirada',\n recurring: 'Recorrente',\n thankyou: 'Obrigado',\n submit: 'Enviar',\n 'label.share.email': 'Compartilhar por e-mail',\n 'label.share.copy': 'Copiar link',\n 'label.share.copied': 'Copiado',\n 'label.share.email.subject': 'Lembre-se desta data',\n 'form.error.required': 'Você não preencheu todos os campos obrigatórios corretamente',\n 'form.error.sending': 'Houve um problema ao enviar sua resposta. Por favor, tente novamente mais tarde',\n 'form.success': 'Enviado com sucesso!'\n },\n fr: {\n 'label.addtocalendar': \"Ajouter à l'Agenda\",\n ical: 'Fichier iCal',\n ...calendarNames,\n 'modal.button.default': 'Cliquez-moi',\n 'modal.webview.ical.h': 'Ouvrez votre navigateur',\n 'modal.webview.ical.text': 'Malheureusement, les navigateurs intégrés aux applications ont des problèmes avec la manière dont nous créons les fichiers de calendrier.',\n 'modal.clipboard.text': 'Nous avons automatiquement copié une URL magique dans votre presse-papier.',\n 'modal.webview.ical.steps': '
  1. Ouvrez un autre navigateur sur votre smartphone ;
  2. Collez le contenu du presse-papier et continuez.
',\n 'modal.opensafari.ical.h': 'Ouvrir Safari',\n 'modal.opensafari.ical.text': 'Malheureusement, iOS rencontre des problèmes pour générer et ouvrir le fichier de calendrier en dehors de Safari.',\n 'modal.opensafari.ical.steps': '
  1. Ouvrez Safari ;
  2. Collez le contenu du presse-papier et continuez.
',\n 'modal.multidate.h': 'Ceci est une liste d’évènements',\n 'modal.multidate.text': 'Ajouter les évènements un par un :',\n 'date.status.cancelled': 'Cet évènement est annulé.',\n 'date.status.cancelled.cta': 'Actualisez votre agenda !',\n 'modal.subscribe.yahoo.h': 'Ajouter un agenda à Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Ouvrez l’Agenda Yahoo ;
  2. Cliquez sur l’onglet « Actions » ;
  3. Sélectionnez « Suivre d’autres agendas » ;
  4. Choisissez un nom et collez le contenu de votre presse-papier dans le champ URL.
',\n 'modal.subscribe.yahoo.button': 'Ouvrir le calendrier Yahoo',\n close: 'Fermer',\n continue: 'Continuer',\n cancel: 'Annuler',\n expired: 'Expiré',\n recurring: 'Récurrent',\n thankyou: 'Merci',\n submit: 'Envoyer',\n 'label.share.email': 'Partager par E-mail',\n 'label.share.copy': 'Copier le lien',\n 'label.share.copied': 'Copié',\n 'label.share.email.subject': 'Retenez cette date',\n 'form.error.required': \"Tu n'as pas correctement rempli tous les champs requis\",\n 'form.error.sending': \"Il y a eu un problème lors de l'envoi de ta réponse. Veuillez réessayer plus tard\",\n 'form.success': 'Envoyé avec succès!'\n },\n nl: {\n 'label.addtocalendar': 'Opslaan in Agenda',\n ical: 'iCal File',\n ...calendarNames,\n 'modal.button.default': 'Klik me',\n 'modal.webview.ical.h': 'Open uw browser',\n 'modal.webview.ical.text': 'Helaas hebben in-app browsers problemen met de manier waarop wij kalenderbestanden maken.',\n 'modal.clipboard.text': 'We hebben automatisch een magische URL naar je klembord gekopieerd.',\n 'modal.webview.ical.steps': '
  1. Open een andere browser op uw smartphone, ...
  2. Gebruik de insert functie om verder te gaan.
',\n 'modal.opensafari.ical.h': 'Open Safari',\n 'modal.opensafari.ical.text': 'Helaas heeft iOS enkele problemen met het genereren en openen van het agendabestand buiten Safari.',\n 'modal.opensafari.ical.steps': '
  1. Open Safari, ...
  2. Gebruik de insert functie om verder te gaan.
',\n 'modal.multidate.h': 'Dit is een reeks data',\n 'modal.multidate.text': 'Voeg de afzonderlijke delen één voor één toe:',\n 'date.status.cancelled': 'Deze datum is geannuleerd.',\n 'date.status.cancelled.cta': 'Uw agenda bijwerken!',\n 'modal.subscribe.yahoo.h': 'Toevoegen aan Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Open de Yahoo calendar.
  2. Klik op de \"Acties\" tab.
  3. Selecteer \"Volg Andere Agenda\\'s\".
  4. Kies een naam en plak de URL van uw klembord in het URL-veld.
',\n 'modal.subscribe.yahoo.button': 'Open Yahoo Agenda',\n close: 'Sluiten',\n continue: 'Doorgaan',\n cancel: 'Annuleren',\n expired: 'Verlopen',\n recurring: 'Terugkerend',\n thankyou: 'Bedankt',\n submit: 'Versturen',\n 'label.share.email': 'Delen via E-mail',\n 'label.share.copy': 'Link kopiëren',\n 'label.share.copied': 'Gekopieerd',\n 'label.share.email.subject': 'Onthoud deze datum',\n 'form.error.required': 'Je hebt niet alle vereiste velden correct ingevuld',\n 'form.error.sending': 'Er was een probleem met het versturen van je antwoord. Probeer het later opnieuw',\n 'form.success': 'Succesvol verstuurd!'\n },\n tr: {\n 'label.addtocalendar': 'Takvime Ekle',\n ical: 'iCal Dosyası',\n ...calendarNames,\n 'modal.button.default': 'Beni tıklayın',\n 'modal.webview.ical.h': 'Tarayıcınızı açın',\n 'modal.webview.ical.text': 'Ne yazık ki, uygulama içi tarayıcılar takvim dosyalarını oluşturma şeklimizle ilgili sorunlar yaşıyor.',\n 'modal.clipboard.text': 'Panonuza otomatik olarak sihirli bir URL kopyaladık.',\n 'modal.webview.ical.steps': '
  1. Akıllı telefonunuzda başka bir tarayıcı açın, ...
  2. Devam etmek için insert fonksiyonunu kullanın.
',\n 'modal.opensafari.ical.h': 'Açık Safari',\n 'modal.opensafari.ical.text': 'Ne yazık ki iOS, takvim dosyasını Safari dışında oluştururken ve açarken bazı sorunlar yaşıyor.',\n 'modal.opensafari.ical.steps': '
  1. Açık Safari, ...
  2. Devam etmek için insert fonksiyonunu kullanın.
',\n 'modal.multidate.h': 'Bu bir etkinlik serisidir',\n 'modal.multidate.text': 'Parçaları teker teker ekleyin:',\n 'date.status.cancelled': 'Bu tarih iptal edildi.',\n 'date.status.cancelled.cta': 'Lütfen takviminizi güncelleyin!',\n 'modal.subscribe.yahoo.h': \"Yahoo'ya takvim ekleme\",\n 'modal.subscribe.yahoo.text': '
  1. Yahoo takvimini açın.
  2. \"Eylemler\" sekmesine tıklayın.
  3. \"Diğer Takvimleri Takip Et\" öğesini seçin.
  4. Bir ad seçin ve URL\\'yi panonuzdan URL alanına yapıştırın.
',\n 'modal.subscribe.yahoo.button': 'Yahoo Takvimini aç',\n close: 'Kapat',\n continue: 'Devam etmek',\n cancel: 'İptal',\n expired: 'Günü geçmiş',\n recurring: 'Yinelenen',\n thankyou: 'Teşekkürler',\n submit: 'Gönder',\n 'label.share.email': 'E-posta ile Paylaş',\n 'label.share.copy': 'Bağlantıyı Kopyala',\n 'label.share.copied': 'Kopyalandı',\n 'label.share.email.subject': 'Bu Tarihi Unutma',\n 'form.error.required': 'Gerekli tüm alanları doğru şekilde doldurmadınız',\n 'form.error.sending': 'Yanıtınızı gönderirken bir sorun oluştu. Lütfen daha sonra tekrar deneyin',\n 'form.success': 'Başarıyla gönderildi!'\n },\n zh: {\n 'label.addtocalendar': '添加到日历',\n ical: 'iCal 文件',\n ...calendarNames,\n 'modal.button.default': '点我',\n 'modal.webview.ical.h': '打开浏览器',\n 'modal.webview.ical.text': '不幸的是,应用内浏览器在我们生成日历文件的方式上存在问题。',\n 'modal.clipboard.text': '我们自动将魔术 URL 复制到您的剪贴板。',\n 'modal.webview.ical.steps': '
  1. 打开手机上的任何其他浏览器, ...
  2. 粘贴剪贴板内容并开始。
',\n 'modal.opensafari.ical.h': '打开 Safari',\n 'modal.opensafari.ical.text': '不幸的是,iOS 在 Safari 之外生成和打开日历文件时遇到一些问题。',\n 'modal.opensafari.ical.steps': '
  1. 打开 Safari, ...
  2. 粘贴剪贴板内容并开始。
',\n 'modal.multidate.h': '这是一个活动系列',\n 'modal.multidate.text': '逐个添加各个部分:',\n 'date.status.cancelled': '此日期已取消。',\n 'date.status.cancelled.cta': '请更新您的日历!',\n 'modal.subscribe.yahoo.h': '将日历添加到 Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. 打开 Yahoo 日历。
  2. 点击“操作”标签。
  3. 选择“关注其他日历”。
  4. 选择一个名称并将剪贴板中的 URL 粘贴到 URL 字段中。
',\n 'modal.subscribe.yahoo.button': '打开雅虎日历',\n close: '关',\n continue: '继续',\n cancel: '中止',\n expired: '已到期',\n recurring: '再次发生的',\n thankyou: '谢谢',\n submit: '提交',\n 'label.share.email': '通过电子邮件分享',\n 'label.share.copy': '复制链接',\n 'label.share.copied': '已复制',\n 'label.share.email.subject': '记住这个日期',\n 'form.error.required': '你没有正确填写所有必填字段',\n 'form.error.sending': '发送你的回复时出现问题。请稍后再试',\n 'form.success': '成功发送!'\n },\n ar: {\n 'label.addtocalendar': 'إضافة إلى التقويم',\n ical: 'ملف iCal',\n ...calendarNames,\n 'modal.button.default': 'انقر فوق لي',\n 'modal.webview.ical.h': 'افتح المستعرض الخاص بك',\n 'modal.webview.ical.text': 'لسوء الحظ ، تواجه المتصفحات داخل التطبيق مشاكل في طريقة إنشاء ملف التقويم.',\n 'modal.clipboard.text': 'قمنا تلقائيًا بنسخ عنوان URL سحري إلى الحافظة الخاصة بك.',\n 'modal.webview.ical.steps': '
  1. افتح أي متصفح آخر على هاتفك الذكي, ...
  2. .الصق محتوى الحافظة واذهب
',\n 'modal.opensafari.ical.h': 'افتح Safari',\n 'modal.opensafari.ical.text': 'لسوء الحظ ، يواجه iOS بعض المشكلات في إنشاء ملف التقويم وفتحه خارج Safari.',\n 'modal.opensafari.ical.steps': '
  1. افتح Safari, ...
  2. الصق محتوى الحافظة واذهب.
',\n 'modal.multidate.h': 'هذه سلسلة أحداث',\n 'modal.multidate.text': 'أضف الأجزاء الفردية واحدة تلو الأخرى:',\n 'date.status.cancelled': 'تم إلغاء هذا التاريخ.',\n 'date.status.cancelled.cta': 'الرجاء تحديث التقويم الخاص بك!',\n 'modal.subscribe.yahoo.h': 'أضف التقويم إلى Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. افتح تقويم Yahoo.
  2. انقر فوق علامة التبويب \"الإجراءات\".
  3. حدد \"متابعة تقويمات أخرى\".
  4. اختر اسمًا والصق عنوان URL من الحافظة الخاصة بك في حقل URL.
',\n 'modal.subscribe.yahoo.button': 'افتح تقويم ياهو',\n close: 'قريب',\n continue: 'استمر',\n cancel: 'إحباط',\n expired: 'منتهي الصلاحية',\n recurring: 'يتكرر',\n thankyou: 'شكرا',\n submit: 'إرسال',\n 'label.share.email': 'مشاركة عبر البريد الإلكتروني',\n 'label.share.copy': 'نسخ الرابط',\n 'label.share.copied': 'تم النسخ',\n 'label.share.email.subject': 'تذكر هذا الموعد',\n 'form.error.required': 'لم تقم بملء جميع الحقول المطلوبة بشكل صحيح',\n 'form.error.sending': 'حدثت مشكلة أثناء إرسال ردك. الرجاء المحاولة لاحقاً',\n 'form.success': 'تم الإرسال بنجاح!'\n },\n hi: {\n 'label.addtocalendar': 'कैलेंडर में जोड़ें',\n ical: 'iCal फ़ाइल',\n ...calendarNames,\n 'modal.button.default': 'मुझे क्लिक करें',\n 'modal.webview.ical.h': 'अपना ब्राउज़र खोलें',\n 'modal.webview.ical.text': 'दुर्भाग्य से, इन-ऐप ब्राउज़र में कैलेंडर फ़ाइल बनाने के तरीके में समस्याएँ हैं।',\n 'modal.clipboard.text': 'हमने आपके क्लिपबोर्ड पर स्वचालित रूप से एक जादुई URL कॉपी कर लिया है।',\n 'modal.webview.ical.steps': '
  1. अपने फ़ोन पर दूसरा ब्राउज़र खोलें, ...
  2. क्लिपबोर्ड सामग्री चिपकाएं और जाएं।
',\n 'modal.opensafari.ical.h': 'सफारी खोलें',\n 'modal.opensafari.ical.text': 'दुर्भाग्य से, iOS में सफ़ारी के बाहर कैलेंडर फ़ाइल बनाने और खोलने में कुछ समस्याएँ हैं।',\n 'modal.opensafari.ical.steps': '
  1. सफारी खोलें, ...
  2. क्लिपबोर्ड सामग्री चिपकाएं और जाएं।
',\n 'modal.multidate.h': 'यह एक इवेंट सीरीज़ है',\n 'modal.multidate.text': 'अलग-अलग हिस्सों को एक-एक करके जोड़ें:',\n 'date.status.cancelled': 'यह तिथि रद्द हो गई।',\n 'date.status.cancelled.cta': 'कृपया अपना कैलेंडर अपडेट करें!',\n 'modal.subscribe.yahoo.h': 'Yahoo . में कैलेंडर जोड़ें',\n 'modal.subscribe.yahoo.text': '
  1. Yahoo कैलेंडर खोलें।
  2. \"कृती\" टैब पर क्लिक करें।
  3. \"इतर कॅलेंडर्सचे अनुसरण करा\" चुनें।
  4. एक नाम चुनें और अपने क्लिपबोर्ड से URL को URL फ़ील्ड में पेस्ट करें।
',\n 'modal.subscribe.yahoo.button': 'याहू कैलेंडर खोलें',\n close: 'बंद करना',\n continue: 'जारी रखें',\n cancel: 'रद्द करना',\n expired: 'खत्म हो चुका',\n recurring: 'पुनरावर्ती',\n thankyou: 'धन्यवाद',\n submit: 'जमा करें',\n 'label.share.email': 'ईमेल के माध्यम से साझा करें',\n 'label.share.copy': 'लिंक कॉपी करें',\n 'label.share.copied': 'कॉपी हो गया',\n 'label.share.email.subject': 'इस तारीख को याद रखें',\n 'form.error.required': 'आपने सभी आवश्यक फ़ील्ड सही ढंग से नहीं भरी हैं',\n 'form.error.sending': 'आपका जवाब भेजते समय एक समस्या हुई। कृपया बाद में पुनः प्रयास करें',\n 'form.success': 'सफलतापूर्वक भेजा गया!'\n },\n pl: {\n 'label.addtocalendar': 'Dodaj do kalendarza',\n ical: 'Plik iCal',\n ...calendarNames,\n 'modal.button.default': 'Kliknij mnie',\n 'modal.webview.ical.h': 'Otwórz przeglądarkę',\n 'modal.webview.ical.text': 'Niestety, przeglądarki in-app mają problemy ze sposobem, w jaki generujemy plik kalendarza.',\n 'modal.clipboard.text': 'Automatycznie skopiowaliśmy magiczny adres URL do schowka.',\n 'modal.webview.ical.steps': '
  1. Otwórz inną przeglądarkę w swoim telefonie, ...
  2. Wklej zawartość schowka i ruszaj.
',\n 'modal.opensafari.ical.h': 'Otwórz Safari',\n 'modal.opensafari.ical.text': 'Niestety iOS ma pewne problemy z generowaniem i otwieraniem pliku kalendarza poza Safari.',\n 'modal.opensafari.ical.steps': '
  1. Otwórz Safari, ...
  2. Wklej zawartość schowka i ruszaj.
',\n 'modal.multidate.h': 'To jest cykl imprez',\n 'modal.multidate.text': 'Dodawać po kolei poszczególne części:',\n 'date.status.cancelled': 'Ta data została odwołana.',\n 'date.status.cancelled.cta': 'Zaktualizuj swój kalendarz!',\n 'modal.subscribe.yahoo.h': 'Dodaj kalendarz do Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Otwórz kalendarz Yahoo.
  2. Kliknij na zakładkę \"Czynności\".
  3. Wybierz \"Obserwuj inne kalendarze\".
  4. Wybierz nazwę i wklej adres URL ze schowka w polu URL.
',\n 'modal.subscribe.yahoo.button': 'Otwórz kalendarz Yahoo',\n close: 'Zamknij',\n continue: 'Kontynuować',\n cancel: 'Anuluj',\n expired: 'Wygasły',\n recurring: 'Powtarzający się',\n thankyou: 'Dziękuję',\n submit: 'Wyślij',\n 'label.share.email': 'Udostępnij przez e-mail',\n 'label.share.copy': 'Kopiuj link',\n 'label.share.copied': 'Skopiowane',\n 'label.share.email.subject': 'Zapamiętaj tę datę',\n 'form.error.required': 'Nie wypełniłeś wszystkich wymaganych pól poprawnie',\n 'form.error.sending': 'Wystąpił problem z wysłaniem twojej odpowiedzi. Spróbuj ponownie później',\n 'form.success': 'Wysłano pomyślnie!'\n },\n id: {\n 'label.addtocalendar': 'Tambahkan ke Kalender',\n ical: 'File iCal',\n ...calendarNames,\n 'modal.button.default': 'Klik saya',\n 'modal.webview.ical.h': 'Buka browser Anda',\n 'modal.webview.ical.text': 'Sayangnya, browser dalam aplikasi memiliki masalah dengan cara kami menghasilkan file kalender.',\n 'modal.clipboard.text': 'Kami telah secara otomatis menyalin URL ajaib ke clipboard Anda.',\n 'modal.webview.ical.steps': '
  1. Buka peramban lain pada ponsel Anda, ...
  2. Tempelkan konten clipboard dan pergi.
',\n 'modal.opensafari.ical.h': 'Buka Safari',\n 'modal.opensafari.ical.text': 'Sayangnya, iOS memiliki beberapa masalah dalam membuat dan membuka file kalender di luar Safari.',\n 'modal.opensafari.ical.steps': '
  1. Buka Safari, ...
  2. Tempelkan konten clipboard dan pergi.
',\n 'modal.multidate.h': 'Ini adalah rangkaian acara',\n 'modal.multidate.text': 'Tambahkan masing-masing bagian satu per satu:',\n 'date.status.cancelled': 'Tanggal ini dibatalkan.',\n 'date.status.cancelled.cta': 'Perbarui kalender Anda!',\n 'modal.subscribe.yahoo.h': 'Tambahkan kalender ke Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Buka kalender Yahoo.
  2. Klik pada tab \"Tindakan\".
  3. Pilih \"Ikuti Kalender Lain\".
  4. Pilih nama dan tempelkan URL dari clipboard Anda ke bidang URL.
',\n 'modal.subscribe.yahoo.button': 'Buka kalender Yahoo',\n close: 'Tutup',\n continue: 'Lanjutkan',\n cancel: 'Batal',\n expired: 'Kedaluwarsa',\n recurring: 'Berulang',\n thankyou: 'Terima kasih',\n submit: 'Kirim',\n 'label.share.email': 'Bagikan via email',\n 'label.share.copy': 'Salin tautan',\n 'label.share.copied': 'Tersalin',\n 'label.share.email.subject': 'Ingat tanggal ini',\n 'form.error.required': 'Kamu belum mengisi semua kolom yang diperlukan dengan benar',\n 'form.error.sending': 'Ada masalah saat mengirim jawabanmu. Coba lagi nanti',\n 'form.success': 'Berhasil terkirim!'\n },\n no: {\n 'label.addtocalendar': 'Legg til i kalenderen',\n ical: 'iCal-fil',\n ...calendarNames,\n 'modal.button.default': 'Klikk på meg',\n 'modal.webview.ical.h': 'Åpne nettleseren din',\n 'modal.webview.ical.text': 'Dessverre har nettlesere i appen problemer med måten vi genererer kalenderfilen på.',\n 'modal.clipboard.text': 'Vi kopierte automatisk en magisk URL til utklippstavlen din.',\n 'modal.webview.ical.steps': '
  1. Åpne en annen nettleser på telefonen, ...
  2. Lim inn innholdet på utklippstavlen og gå.
',\n 'modal.opensafari.ical.h': 'Åpne Safari',\n 'modal.opensafari.ical.text': 'Dessverre har iOS noen problemer med å generere og åpne kalenderfilen utenfor Safari.',\n 'modal.opensafari.ical.steps': '
  1. Åpne Safari, ...
  2. Lim inn innholdet på utklippstavlen og gå.
',\n 'modal.multidate.h': 'Dette er en avtaleserie',\n 'modal.multidate.text': 'Legg til de enkelte datoene i kalenderen din i rekkefølge:',\n 'date.status.cancelled': 'Denne datoen ble avlyst.',\n 'date.status.cancelled.cta': 'Oppdater kalenderen din!',\n 'modal.subscribe.yahoo.h': 'Legg til kalender til Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Åpne Yahoo-kalenderen.
  2. Klikk på «Handlinger»-fanen.
  3. Velg «Følg andre kalendere».
  4. Velg et navn og lim inn URL-en fra utklippstavlen i URL-feltet.
',\n 'modal.subscribe.yahoo.button': 'Åpne Yahoo-kalenderen',\n close: 'Lukk',\n continue: 'Fortsette',\n cancel: 'Avbryt',\n expired: 'Utløpt',\n recurring: 'Tilbakevendende',\n thankyou: 'Takk',\n submit: 'Send inn',\n 'label.share.email': 'Del via e-post',\n 'label.share.copy': 'Kopier lenke',\n 'label.share.copied': 'Kopiert',\n 'label.share.email.subject': 'Husk denne datoen',\n 'form.error.required': 'Du har ikke fylt ut alle de nødvendige feltene riktig',\n 'form.error.sending': 'Det oppsto et problem med å sende svaret ditt. Vennligst prøv igjen senere',\n 'form.success': 'Sendt suksessfullt!'\n },\n fi: {\n 'label.addtocalendar': 'Lisää kalenteriin',\n ical: 'iCal-tiedosto',\n ...calendarNames,\n 'modal.button.default': 'Klikkaa minua',\n 'modal.webview.ical.h': 'Avaa selain',\n 'modal.webview.ical.text': 'Valitettavasti sovelluksen sisäisillä selaimilla on ongelmia kalenteritiedoston luomisessa.',\n 'modal.clipboard.text': 'Olemme automaattisesti kopioineet maagisen URL-osoitteen leikepöydällesi.',\n 'modal.webview.ical.steps': '
  1. Avaa toinen selain puhelimessasi., ...
  2. liitä leikepöydän sisältö ja lähde.
',\n 'modal.opensafari.ical.h': 'Avaa Safari',\n 'modal.opensafari.ical.text': 'Valitettavasti iOS:llä on ongelmia kalenteritiedoston luomisessa ja avaamisessa Safarin ulkopuolella.',\n 'modal.opensafari.ical.steps': '
  1. Avaa Safari, ...
  2. liitä leikepöydän sisältö ja lähde.
',\n 'modal.multidate.h': 'Tämä on tapahtumasarja',\n 'modal.multidate.text': 'Lisää yksittäiset osat yksi kerrallaan:',\n 'date.status.cancelled': 'Tämä päivämäärä peruttiin.',\n 'date.status.cancelled.cta': 'Päivitä kalenterisi!',\n 'modal.subscribe.yahoo.h': 'Lisää kalenteri Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Avaa Yahoo-kalenteri.
  2. Napsauta \"Toiminnot\"-välilehteä.
  3. Valitse \"Seuraa muiden kalentereita\".
  4. Valitse nimi ja liitä URL-osoite leikepöydältäsi URL-kenttään.
',\n 'modal.subscribe.yahoo.button': 'Avaa Yahoo-kalenteri',\n close: 'Sulje',\n continue: 'Jatkaa',\n cancel: 'Peruuta',\n expired: 'Vanhentunut',\n recurring: 'Toistuva',\n thankyou: 'Kiitos',\n submit: 'Lähetä',\n 'label.share.email': 'Jaa sähköpostitse',\n 'label.share.copy': 'Kopioi linkki',\n 'label.share.copied': 'Kopioitu',\n 'label.share.email.subject': 'Muista tämä päivämäärä',\n 'form.error.required': 'Et täyttänyt kaikkia vaadittuja kenttiä oikein',\n 'form.error.sending': 'Vastauksen lähettämisessä ilmeni ongelma. Yritä myöhemmin uudelleen',\n 'form.success': 'Lähetetty onnistuneesti!'\n },\n sv: {\n 'label.addtocalendar': 'Lägg till i kalender',\n ical: 'iCal-fil',\n ...calendarNames,\n 'modal.button.default': 'Klicka på mig',\n 'modal.webview.ical.h': 'Öppna din webbläsare',\n 'modal.webview.ical.text': 'Tyvärr har webbläsare i appen problem med hur vi genererar kalenderfilen.',\n 'modal.clipboard.text': 'Vi har automatiskt kopierat en magisk URL till ditt klippblock.',\n 'modal.webview.ical.steps': '
  1. Öppna en annan webbläsare på telefonen, ...
  2. Insätt innehållet i klippbordet och kör.
',\n 'modal.opensafari.ical.h': 'Öppna Safari',\n 'modal.opensafari.ical.text': 'Tyvärr har iOS vissa problem med att generera och öppna kalenderfilen utanför Safari.',\n 'modal.opensafari.ical.steps': '
  1. Öppna Safari, ...
  2. Insätt innehållet i klippbordet och kör.
',\n 'modal.multidate.h': 'Detta är en evenemangsserie',\n 'modal.multidate.text': 'Lägg till de enskilda delarna en efter en:',\n 'date.status.cancelled': 'Detta datum har ställts in.',\n 'date.status.cancelled.cta': 'Uppdatera din kalender!',\n 'modal.subscribe.yahoo.h': 'Lägg till kalender i Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Öppna Yahoo-kalendern.
  2. Klicka på fliken \"Åtgärder\".
  3. Välj \"Följ andra kalendrar\".
  4. Välj ett namn och klistra in URL:en från klippbordet i URL-fältet.
',\n 'modal.subscribe.yahoo.button': 'Öppna Yahoo-kalendern',\n close: 'Stäng',\n continue: 'Fortsätta',\n cancel: 'Avbryt',\n expired: 'Utgånget',\n recurring: 'Återkommande',\n thankyou: 'Tack',\n submit: 'Skicka',\n 'label.share.email': 'Dela via e-post',\n 'label.share.copy': 'Kopiera länk',\n 'label.share.copied': 'Kopierat',\n 'label.share.email.subject': 'Kom ihåg detta datum',\n 'form.error.required': 'Du har inte fyllt i alla nödvändiga fält korrekt',\n 'form.error.sending': 'Det uppstod ett problem när ditt svar skickades. Försök igen senare',\n 'form.success': 'Skickat framgångsrikt!'\n },\n cs: {\n 'label.addtocalendar': 'Přidat do kalendáře',\n ical: 'Soubor iCal',\n ...calendarNames,\n 'modal.button.default': 'Klikněte na mě',\n 'modal.webview.ical.h': 'Otevřete prohlížeč',\n 'modal.webview.ical.text': 'Prohlížeče v aplikacích mají bohužel problémy se způsobem generování souboru kalendáře.',\n 'modal.clipboard.text': 'Do schránky jsme automaticky zkopírovali kouzelnou adresu URL.',\n 'modal.webview.ical.steps': '
  1. Otevření jiného prohlížeče v telefonu, ...
  2. Vložte obsah schránky a přejděte.
',\n 'modal.opensafari.ical.h': 'Otevřít Safari',\n 'modal.opensafari.ical.text': 'Bohužel má iOS nějaké problémy s generováním a otevíráním souboru kalendáře mimo Safari.',\n 'modal.opensafari.ical.steps': '
  1. Otevřít Safari, ...
  2. Vložte obsah schránky a přejděte.
',\n 'modal.multidate.h': 'Jedná se o sérii událostí',\n 'modal.multidate.text': 'Přidávejte jednotlivé díly jeden po druhém:',\n 'date.status.cancelled': 'Toto datum bylo zrušeno.',\n 'date.status.cancelled.cta': 'Aktualizujte svůj kalendář!',\n 'modal.subscribe.yahoo.h': 'Přidat kalendář do Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Otevřete kalendář Yahoo.
  2. Klikněte na kartu \"Akce\".
  3. Vyberte možnost \"Sledovat další kalendáře\".
  4. Vyberte název a vložte adresu URL ze schránky do pole URL.
',\n 'modal.subscribe.yahoo.button': 'Otevřete kalendář Yahoo',\n close: 'Zavřít',\n continue: 'Pokračovat',\n cancel: 'Storno',\n expired: 'Platnost vypršela',\n recurring: 'Opakující se',\n thankyou: 'Děkuji',\n submit: 'Odeslat',\n 'label.share.email': 'Sdílet e-mailem',\n 'label.share.copy': 'Kopírovat odkaz',\n 'label.share.copied': 'Zkopírováno',\n 'label.share.email.subject': 'Zapamatuj si tento termín',\n 'form.error.required': 'Nevyplnil jsi správně všechna požadovaná pole',\n 'form.error.sending': 'Při odesílání tvé odpovědi došlo k problému. Zkus to prosím později znovu',\n 'form.success': 'Úspěšně odesláno!'\n },\n ja: {\n 'label.addtocalendar': 'カレンダーに追加',\n ical: 'iCalファイル',\n ...calendarNames,\n 'modal.button.default': 'クリックしてください',\n 'modal.webview.ical.h': 'ブラウザを起動する',\n 'modal.webview.ical.text': '残念ながら、アプリ内ブラウザは、カレンダーファイルの生成方法に問題があります。',\n 'modal.clipboard.text': '魔法のURLを自動的にクリップボードにコピーしています。',\n 'modal.webview.ical.steps': '
  1. スマートフォンで別のブラウザを起動する, ...
  2. クリップボードの内容を貼り付けて行く。
',\n 'modal.opensafari.ical.h': 'オープンSafari',\n 'modal.opensafari.ical.text': '残念ながら、iOS では、Safari の外でカレンダー ファイルを生成したり開いたりする際にいくつかの問題があります。',\n 'modal.opensafari.ical.steps': '
  1. オープンSafari, ...
  2. クリップボードの内容を貼り付けて行く。
',\n 'modal.multidate.h': 'イベントシリーズです',\n 'modal.multidate.text': '個々のパーツを一つずつ追加していく:',\n 'date.status.cancelled': 'この日はキャンセルになりました。',\n 'date.status.cancelled.cta': 'カレンダーを更新する!',\n 'modal.subscribe.yahoo.h': 'Yahooにカレンダーを追加する',\n 'modal.subscribe.yahoo.text': '
  1. Yahooカレンダーを開く。
  2. [実行] タブをクリックします。
  3. [その他のカレンダーのフォロー] を選択します。
  4. 名前を決めて、クリップボードにあるURLをURL欄に貼り付けます。
',\n 'modal.subscribe.yahoo.button': 'Yahooカレンダーを開く',\n close: '閉じる',\n continue: '続ける',\n cancel: 'キャンセル',\n expired: '期限切れ',\n recurring: '繰り返し',\n thankyou: 'ありがとう',\n submit: '送信',\n 'label.share.email': 'メールで共有',\n 'label.share.copy': 'リンクをコピー',\n 'label.share.copied': 'コピー済み',\n 'label.share.email.subject': 'この日付を覚えておいて',\n 'form.error.required': '必要なフィールドをすべて正しく入力していません',\n 'form.error.sending': 'あなたの回答を送信する際に問題が発生しました。後で再試行してください',\n 'form.success': '正常に送信されました!'\n },\n it: {\n 'label.addtocalendar': 'Aggiungi al calendario',\n ical: 'File iCal',\n ...calendarNames,\n 'modal.button.default': 'Clicca su di me',\n 'modal.webview.ical.h': 'Aprire il browser',\n 'modal.webview.ical.text': 'Purtroppo i browser in-app hanno problemi con il modo in cui generiamo il file del calendario.',\n 'modal.clipboard.text': 'Abbiamo copiato automaticamente un URL magico negli appunti.',\n 'modal.webview.ical.steps': '
  1. Aprire un altro browser sul cellulare, ...
  2. Incollare il contenuto degli appunti e partire.
',\n 'modal.opensafari.ical.h': 'Aprire Safari',\n 'modal.opensafari.ical.text': \"Sfortunatamente, iOS ha alcuni problemi nella generazione e nell'apertura del file del calendario al di fuori di Safari.\",\n 'modal.opensafari.ical.steps': '
  1. Aprire Safari, ...
  2. Incollare il contenuto degli appunti e partire.
',\n 'modal.multidate.h': 'Questa è una serie di eventi',\n 'modal.multidate.text': 'Aggiungere le singole parti una per una:',\n 'date.status.cancelled': 'La data è stata annullata.',\n 'date.status.cancelled.cta': 'Aggiornare il calendario!',\n 'modal.subscribe.yahoo.h': 'Aggiungi il calendario a Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Aprire il calendario di Yahoo.
  2. Fare clic sulla scheda \"Azioni\".
  3. Selezionare \"Segui altri calendari\".
  4. Scegliere un nome e incollare l\\'URL dagli appunti nel campo URL.
',\n 'modal.subscribe.yahoo.button': 'Apri il calendario di Yahoo',\n close: 'Chiudere',\n continue: 'Continuare',\n cancel: 'Annulla',\n expired: 'Scaduta',\n recurring: 'Ricorrente',\n thankyou: 'Grazie',\n submit: 'Invia',\n 'label.share.email': 'Condividi via Email',\n 'label.share.copy': 'Copia il link',\n 'label.share.copied': 'Copiato',\n 'label.share.email.subject': 'Ricorda questa data',\n 'form.error.required': 'Non hai compilato correttamente tutti i campi richiesti',\n 'form.error.sending': \"C'è stato un problema nell'invio della tua risposta. Prova di nuovo più tardi\",\n 'form.success': 'Inviato con successo!'\n },\n ko: {\n 'label.addtocalendar': '캘린더에 추가',\n ical: 'iCal 파일',\n ...calendarNames,\n 'modal.button.default': '클릭 해주세요',\n 'modal.webview.ical.h': '브라우저 열기',\n 'modal.webview.ical.text': '불행히도 인앱 브라우저는 캘린더 파일을 생성하는 방식에 문제가 있습니다.',\n 'modal.clipboard.text': '매직 URL을 클립보드에 자동으로 복사했습니다.',\n 'modal.webview.ical.steps': '
  1. 휴대전화에서 다른 브라우저 열기, ...
  2. 클립보드 내용을 붙여넣고 이동합니다.
',\n 'modal.opensafari.ical.h': 'Safari 열기',\n 'modal.opensafari.ical.text': '안타깝게도 iOS에는 Safari 외부에서 캘린더 파일을 생성하고 여는 데 몇 가지 문제가 있습니다.',\n 'modal.opensafari.ical.steps': '
  1. Safari 열기, ...
  2. 클립보드 내용을 붙여넣고 이동합니다.
',\n 'modal.multidate.h': '이벤트 시리즈입니다',\n 'modal.multidate.text': '개별 부품을 하나씩 추가:',\n 'date.status.cancelled': '이 날짜는 취소되었습니다.',\n 'date.status.cancelled.cta': '캘린더를 업데이트하세요!',\n 'modal.subscribe.yahoo.h': 'Yahoo에 캘린더 추가',\n 'modal.subscribe.yahoo.text': '
  1. Yahoo 캘린더를 엽니다.
  2. \"동작\" 탭을 클릭합니다.
  3. \"다른 일정관리 팔로우\"를 선택합니다.
  4. 이름을 선택하고 클립보드의 URL을 URL 필드에 붙여넣습니다.
',\n 'modal.subscribe.yahoo.button': '야후 캘린더 열기',\n close: '닫다',\n continue: '계속하다',\n cancel: '취소',\n expired: '만료됨',\n recurring: '되풀이',\n thankyou: '감사합니다',\n submit: '제출하기',\n 'label.share.email': '이메일로 공유하기',\n 'label.share.copy': '링크 복사하기',\n 'label.share.copied': '복사됨',\n 'label.share.email.subject': '이 날짜를 기억하세요',\n 'form.error.required': '필수 필드를 모두 올바르게 채우지 않았습니다',\n 'form.error.sending': '응답을 보내는 데 문제가 발생했습니다. 나중에 다시 시도해주세요',\n 'form.success': '성공적으로 전송됨!'\n },\n vi: {\n 'label.addtocalendar': 'Thêm vào Lịch',\n ical: 'Tệp iCal',\n ...calendarNames,\n 'modal.button.default': 'Nhấp vào đây',\n 'modal.webview.ical.h': 'Mở trình duyệt của bạn',\n 'modal.webview.ical.text': 'Rất tiếc, các trình duyệt trong ứng dụng gặp sự cố với cách chúng tôi tạo tệp lịch.',\n 'modal.clipboard.text': 'Chúng tôi đã tự động sao chép một URL ma thuật vào khay nhớ tạm của bạn.',\n 'modal.webview.ical.steps': '
  1. Mở trình duyệt khác trên điện thoại của bạn, ...
  2. Dán nội dung khay nhớ tạm và bắt đầu.
',\n 'modal.opensafari.ical.h': 'Mở Safari',\n 'modal.opensafari.ical.text': 'Rất tiếc, iOS gặp một số sự cố khi tạo và mở tệp lịch bên ngoài Safari.',\n 'modal.opensafari.ical.steps': '
  1. Mở Safari, ...
  2. Dán nội dung khay nhớ tạm và bắt đầu.
',\n 'modal.multidate.h': 'Đây là một chuỗi sự kiện',\n 'modal.multidate.text': 'Thêm từng phần riêng lẻ một:',\n 'date.status.cancelled': 'Ngày này đã bị hủy.',\n 'date.status.cancelled.cta': 'Cập nhật lịch của bạn!',\n 'modal.subscribe.yahoo.h': 'Thêm lịch vào Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Mở Lịch Yahoo.
  2. Nhấp vào tab \"Hành động\".
  3. Chọn \"Theo dõi các Lịch khác\".
  4. Chọn tên và dán URL từ khay nhớ tạm của bạn vào trường URL.
',\n 'modal.subscribe.yahoo.button': 'Mở lịch Yahoo',\n close: 'Đóng',\n continue: 'Tiếp tục',\n cancel: 'Hủy bỏ',\n expired: 'Hết hạn',\n recurring: 'Định kỳ',\n thankyou: 'Cảm ơn',\n submit: 'Gửi',\n 'label.share.email': 'Chia sẻ qua Email',\n 'label.share.copy': 'Sao chép liên kết',\n 'label.share.copied': 'Đã sao chép',\n 'label.share.email.subject': 'Ghi nhớ ngày này',\n 'form.error.required': 'Bạn chưa điền đúng tất cả các trường bắt buộc',\n 'form.error.sending': 'Có sự cố khi gửi phản hồi của bạn. Vui lòng thử lại sau',\n 'form.success': 'Gửi thành công!'\n },\n ro: {\n 'label.addtocalendar': 'Adauga In Calendar',\n ical: 'Fisier iCal',\n ...calendarNames,\n 'modal.button.default': 'Apasa-ma',\n 'modal.webview.ical.h': 'Deschide browserul',\n 'modal.webview.ical.text': 'Din pacate, browserele din aplicatie au probleme cu generarea de fisiere pentru calendar.',\n 'modal.clipboard.text': 'Ti-am copiat automat un URL magic in clipboard',\n 'modal.webview.ical.steps': '
  1. Deschide un alt browser pe telefonul tau, ...
  2. Lipeste continutul din clipboard si continua.
',\n 'modal.opensafari.ical.h': 'Deschide Safari',\n 'modal.opensafari.ical.text': 'Din păcate, iOS are unele probleme la generarea și deschiderea fișierului calendar în afara Safari.',\n 'modal.opensafari.ical.steps': '
  1. Deschides Safari, ...
  2. Lipeste continutul din clipboard si continua.
',\n 'modal.multidate.h': 'Aceasta este o serie de evenimente',\n 'modal.multidate.text': 'Adauga evenimentele individuale una cate una:',\n 'date.status.cancelled': 'Aceasta data a fost anulata.',\n 'date.status.cancelled.cta': 'Te rugam sa-ti updatezi calendarul!',\n 'modal.subscribe.yahoo.h': 'Adauga Calendar in Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Deschide acum calendarul Yahoo.
  2. Apasa pe tab-ul de \"Actiuni\".
  3. Apasa \"Urmareste alte calendare\".
  4. Seteaza un nume si lipeste continutul din clipboard in casuta cu url.
',\n 'modal.subscribe.yahoo.button': 'Deschideți calendarul Yahoo',\n close: 'Inchide',\n continue: 'Continua',\n cancel: 'Anuleaza',\n expired: 'Expirat',\n recurring: 'Recurente',\n thankyou: 'Mulțumesc',\n submit: 'Trimite',\n 'label.share.email': 'Distribuie prin e-mail',\n 'label.share.copy': 'Copiază linkul',\n 'label.share.copied': 'Copiat',\n 'label.share.email.subject': 'Ține minte această dată',\n 'form.error.required': 'Nu ai completat corect toate câmpurile necesare',\n 'form.error.sending': 'A apărut o problemă la trimiterea răspunsului tău. Încearcă din nou mai târziu',\n 'form.success': 'Trimis cu succes!'\n },\n fa: {\n 'label.addtocalendar': 'افزودن به تقویم',\n ical: 'پرونده iCal',\n ...calendarNames,\n 'modal.button.default': 'اینجا کلیک کنید',\n 'modal.webview.ical.h': 'مرورگر خود را باز کنید',\n 'modal.webview.ical.text': 'متاسفانه، مرورگرهای درون برنامه‌ای با نحوه تولید پرونده تقویم مشکل دارند.',\n 'modal.clipboard.text': 'ما به طور خودکار یک نشانی اینترنتی جادویی را در کلیپ‌بورد شما کپی کردیم.',\n 'modal.webview.ical.steps': '
  1. مرورگر دیگری را در گوشی خود باز کنید، ...
  2. محتوای کلیپ‌بورد را Paste کنید و Go را بزنید که آدرس باز شود.
',\n 'modal.opensafari.ical.h': 'سافاری را باز کنید',\n 'modal.opensafari.ical.text': 'متأسفانه iOS در تولید و باز کردن فایل تقویم خارج از سافاری مشکلاتی دارد.',\n 'modal.opensafari.ical.steps': '
  1. سافاری را باز کنید، ...
  2. محتوای کلیپ‌بورد را Paste کنید و Go را بزنید که آدرس باز شود.
',\n 'modal.multidate.h': 'این یک سری رویداد است',\n 'modal.multidate.text': 'رویدادهای شخصی را یکی یکی اضافه کنید:',\n 'date.status.cancelled': 'این تاریخ لغو شد',\n 'date.status.cancelled.cta': 'لطفا تقویم خود را به‌روز کنید!',\n 'modal.subscribe.yahoo.h': 'افزودن تقویم به یاهو',\n 'modal.subscribe.yahoo.text': '
  1. اکنون تقویم یاهو را باز کنید.
  2. روی زبانه «Actions» کلیک کنید.
  3. روی «Follow Other Calendars» ضربه بزنید.
  4. یک نام وارد کنید و محتوای کلیپ‌بورد را در قسمت url قرار دهید.
',\n 'modal.subscribe.yahoo.button': 'تقویم یاهو را باز کنید',\n close: 'بستن',\n continue: 'ادامه دادن',\n cancel: 'لغو',\n expired: 'منقضی شده',\n thankyou: 'ممنون',\n submit: 'ارسال',\n 'label.share.email': 'اشتراک‌گذاری از طریق ایمیل',\n 'label.share.copy': 'کپی لینک',\n 'label.share.copied': 'کپی شد',\n 'label.share.email.subject': 'این تاریخ را به یاد داشته باشید',\n 'form.error.required': 'شما همه فیلدهای لازم را به درستی پر نکرده‌اید',\n 'form.error.sending': 'مشکلی در ارسال پاسخ شما وجود داشت. لطفا بعدا دوباره تلاش کنید',\n 'form.success': 'با موفقیت ارسال شد!'\n },\n et: {\n 'label.addtocalendar': 'Lisa kalendrisse',\n ical: 'iCal fail',\n ...calendarNames,\n 'modal.button.default': 'Kliki siia',\n 'modal.webview.ical.h': 'Ava oma veebilehitseja',\n 'modal.webview.ical.text': 'Kahjuks on rakendusesisestel veebilehitsejatel probleeme kalendrifailide loomisega.',\n 'modal.clipboard.text': 'Kalendri veebi aadress on automaatselt kopeeritud sinu lõikelauale.',\n 'modal.webview.ical.steps': '
  1. Ava teine veebilehitseja oma telefonis, ...
  2. Kleebi lõikelaua sisu ning mine sellele lehele.
',\n 'modal.opensafari.ical.h': 'Ava Safari',\n 'modal.opensafari.ical.text': 'Kahjuks on iOS-il probleeme kalendrifaili genereerimise ja avamisega väljaspool Safarit.',\n 'modal.opensafari.ical.steps': '
  1. Ava Safari, ...
  2. Kleebi lõikelaua sisu ning mine sellele lehele.
',\n 'modal.multidate.h': 'See on sündmuste seeria',\n 'modal.multidate.text': 'Ava üksikud sündmused ükshaaval:',\n 'date.status.cancelled': 'See kuupäev on tühistatud.',\n 'date.status.cancelled.cta': 'Palun uuenda oma kalendrit!',\n 'modal.subscribe.yahoo.h': 'Lisa kalender Yahoo-sse',\n 'modal.subscribe.yahoo.text': '
  1. Ava oma Yahoo kalender.
  2. Kliki \"Actions\" vahelehte.
  3. Vajuta \"Follow Other Calendars\".
  4. Määra nimi ning lisa lõikelaua sisu URL (veebi aadressi) väljale.
',\n 'modal.subscribe.yahoo.button': 'Avage Yahoo kalender',\n close: 'Sulge',\n continue: 'Jätkama',\n cancel: 'Tühista',\n expired: 'Aegunud',\n thankyou: 'Aitäh',\n submit: 'Saada',\n 'label.share.email': 'Jaga e-posti teel',\n 'label.share.copy': 'Kopeeri link',\n 'label.share.copied': 'Kopeeritud',\n 'label.share.email.subject': 'Pane see kuupäev kirja',\n 'form.error.required': 'Sa pole kõiki nõutavaid välju korrektselt täitnud',\n 'form.error.sending': 'Sinu vastuse saatmisel tekkis probleem. Palun proovi hiljem uuesti',\n 'form.success': 'Edukalt saadetud!'\n }\n};\nconst availableLanguages = Object.keys(i18nStrings);\nfunction atcb_translate_hook(identifier, data) {\n if (data.customLabels && data.customLabels[`${identifier}`] && data.customLabels[`${identifier}`] !== '') {\n return atcb_rewrite_html_elements(data.customLabels[`${identifier}`]);\n } else {\n return atcb_translate(identifier, data.language);\n }\n}\nfunction atcb_translate(identifier, language) {\n if (!language) {\n language = 'en';\n }\n if (i18nStrings[`${language}`][`${identifier}`]) {\n return i18nStrings[`${language}`][`${identifier}`];\n }\n if (language !== 'en') {\n return atcb_translate(identifier, 'en');\n }\n return identifier;\n}\nlet atcbInitialGlobalInit = false;\nlet atcbBtnCount = 0;\nconst lightModeMutationObserver = [];\nconst template = `
`;\nif (atcbIsBrowser()) {\n class AddToCalendarButton extends HTMLElement {\n constructor() {\n super();\n this._initialized = new Promise(resolve => this._initializedResolver = resolve);\n const elem = document.createElement('template');\n elem.innerHTML = template;\n this.attachShadow({\n mode: 'open',\n delegateFocus: true\n });\n this.shadowRoot.append(elem.content.cloneNode(true));\n this.state = {\n initializing: false,\n initialized: false,\n ready: false,\n updatePending: false\n };\n this.data = {};\n this.error = false;\n }\n connectedCallback() {\n if (!this.initializing) {\n this.initializing = true;\n setTimeout(() => this.initializeComponent(), 0);\n }\n }\n async initializeComponent() {\n if (this.state.ready) {\n return;\n }\n this.state.initializing = true;\n const debugVal = this.getAttribute('debug');\n this.debug = this.hasAttribute('debug') && (!debugVal || debugVal === 'true' || debugVal === '') ? true : false;\n if (this.hasAttribute('proOverride') || this.hasAttribute('prooverride')) {\n let proOverrideVal = null;\n if (this.hasAttribute('proOverride') && this.getAttribute('proOverride') !== '') {\n proOverrideVal = this.getAttribute('proOverride');\n } else {\n proOverrideVal = this.getAttribute('prooverride');\n }\n this.proOverride = !proOverrideVal || proOverrideVal === 'true' || proOverrideVal === '' ? true : false;\n }\n if (this.hasAttribute('proKey') && this.getAttribute('proKey') !== '' || this.hasAttribute('prokey') && this.getAttribute('prokey') !== '') {\n if (this.hasAttribute('proKey') && this.getAttribute('proKey') !== '') {\n this.data = await atcb_get_pro_data(this.getAttribute('proKey'), this);\n } else {\n this.data = await atcb_get_pro_data(this.getAttribute('prokey'), this);\n }\n if (this.data.proKey) this.proKey = this.data.proKey;\n }\n if (!this.data.name || this.data.name === '') {\n this.data.proKey = '';\n try {\n this.data = await atcb_process_inline_data(this, this.debug);\n } catch (e) {\n if (this.debug) {\n console.error(e);\n atcb_render_debug_msg(this.shadowRoot, e);\n }\n this.state.initializing = false;\n this.state.ready = true;\n return;\n }\n }\n await this.initButton();\n this.state.initializing = false;\n this.state.initialized = true;\n this.state.ready = true;\n this._initializedResolver();\n return;\n }\n whenInitialized() {\n return this._initialized;\n }\n disconnectedCallback() {\n atcb_cleanup(this.shadowRoot, this.identifier);\n if (this.debug) {\n console.log('Add to Calendar Button \"' + this.identifier + '\" destroyed');\n }\n if (document.querySelectorAll('add-to-calendar-button').length === 0) {\n atcbBtnCount = 0;\n }\n }\n static get observedAttributes() {\n const observeAdditionally = ['instance', 'prokey', 'proKey'];\n if (this.proKey && this.proKey !== '') {\n return atcbWcProParams.map(element => {\n return element.toLowerCase();\n }).concat(observeAdditionally);\n }\n return atcbWcParams.map(element => {\n return element.toLowerCase();\n }).concat(observeAdditionally);\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (!this.state.ready) {\n return;\n }\n if (this.debug && this.state.initialized) {\n console.log(`${name}'s value has been changed from ${oldValue} to ${newValue}`);\n }\n if (!this.updatePending) {\n this.updatePending = true;\n setTimeout(() => this.updateComponent(), 0);\n }\n }\n async updateComponent() {\n if (!this.updatePending) return;\n this.data = {};\n this.shadowRoot.querySelector('.atcb-initialized').remove();\n const elem = document.createElement('template');\n elem.innerHTML = template;\n this.shadowRoot.append(elem.content.cloneNode(true));\n if (this.hasAttribute('proKey') && this.getAttribute('proKey') !== '') {\n this.data = await atcb_get_pro_data(this.getAttribute('proKey'), this);\n if (this.data.proKey) this.proKey = this.data.proKey;\n } else if (this.hasAttribute('prokey') && this.getAttribute('prokey') !== '') {\n this.data = await atcb_get_pro_data(this.getAttribute('prokey'), this);\n if (this.data.proKey) this.proKey = this.data.proKey;\n }\n if (!this.data.name || this.data.name === '') {\n try {\n this.data = await atcb_process_inline_data(this, this.debug);\n } catch (e) {\n if (this.debug) {\n console.error(e);\n atcb_render_debug_msg(this.shadowRoot, e);\n }\n this.updatePending = false;\n return;\n }\n }\n atcb_cleanup(this.shadowRoot, this.identifier);\n await this.initButton();\n this.updatePending = false;\n }\n async initButton() {\n if (!this.state.initialized) {\n atcbBtnCount = atcbBtnCount + 1;\n }\n if (this.identifier && this.identifier !== '') {\n this.data.identifier = this.identifier;\n } else {\n if (this.data.identifier && this.data.identifier !== '') {\n if (!/^[\\w\\-_]+$/.test(this.data.identifier)) {\n this.data.identifier = '';\n if (this.debug) {\n let prefix = 'Add to Calendar Button';\n if (this.data.rsvp && Object.keys(this.data.rsvp).length > 0) {\n prefix = 'RSVP';\n }\n console.warn(prefix + ' generation: identifier invalid - using auto numbers instead');\n }\n } else {\n this.data.identifier = 'atcb-btn-' + this.data.identifier;\n }\n }\n if (this.data.identifier == null || this.data.identifier == '') {\n this.data.identifier = 'atcb-btn-' + atcbBtnCount;\n }\n this.identifier = this.data.identifier;\n }\n this.setAttribute('atcb-button-id', this.data.identifier);\n this.classList.add('add-to-calendar');\n try {\n this.style.visibility = 'visible';\n this.style.opacity = '1';\n this.style.position = 'relative';\n await atcb_build_button(this.shadowRoot, this.data);\n return true;\n } catch (e) {\n if (this.debug) {\n console.error(e.message ? e.message : e);\n atcb_render_debug_msg(this.shadowRoot, e);\n }\n return false;\n }\n }\n }\n if (!customElements.get('add-to-calendar-button')) {\n customElements.define('add-to-calendar-button', AddToCalendarButton);\n }\n}\nasync function atcb_process_inline_data(el) {\n let debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let data;\n try {\n data = atcb_read_attributes(el);\n await atcb_check_required(data);\n } catch (e) {\n const slotInput = el.innerHTML.trim();\n if (!slotInput) {\n throw new Error('Add to Calendar Button generation failed: No data provided.');\n }\n try {\n const atcbJsonInput = JSON.parse(atcb_secure_content(slotInput.replace(/(\\r\\n|\\n|\\r)/g, ''), false));\n await atcb_check_required(atcbJsonInput);\n data = atcbJsonInput;\n } catch (jsonError) {\n if (debug) {\n console.error(jsonError);\n }\n throw new Error('Add to Calendar Button generation failed: no data provided or missing required fields - see console logs for details');\n }\n }\n return data;\n}\nfunction atcb_read_attributes(el) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : atcbWcParams;\n let data = {};\n for (let i = 0; i < params.length; i++) {\n let attr = params[`${i}`];\n if (el.hasAttribute(`${attr}`)) {\n let inputVal = atcb_secure_content(el.getAttribute(`${attr}`).replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false);\n let val;\n if (atcbWcBooleanParams.includes(attr)) {\n val = !inputVal || inputVal === '' || inputVal.toLowerCase() === 'true' ? true : false;\n } else if (atcbWcObjectParams.includes(attr)) {\n val = JSON.parse(inputVal);\n } else if (atcbWcObjectArrayParams.includes(attr)) {\n const cleanedInput = function () {\n if (inputVal.substring(0, 1) != '[') {\n return '[' + inputVal + ']';\n }\n return inputVal;\n }();\n val = JSON.parse(cleanedInput);\n } else if (atcbWcArrayParams.includes(attr)) {\n const cleanedInput = function () {\n let newVal = inputVal;\n if (inputVal.includes('\"') || inputVal.includes(\"'\")) {\n if (inputVal.includes('[')) {\n newVal = inputVal.substring(2, inputVal.length - 2);\n } else {\n newVal = inputVal.substring(1, inputVal.length - 1);\n }\n }\n if (!inputVal.includes('|')) {\n newVal = newVal.replace(/\\s/g, '');\n }\n return newVal;\n }();\n if (cleanedInput.includes(\"','\")) {\n val = cleanedInput.split(\"','\");\n } else {\n val = cleanedInput.split('\",\"');\n }\n } else if (atcbWcNumberParams.includes(attr)) {\n val = parseInt(inputVal);\n } else {\n val = inputVal;\n }\n if (typeof val === 'object' && Object.keys(val).length === 0 || Array.isArray(val) && (val.length === 0 || val.length === 1 && val[0] === '')) {\n continue;\n }\n data[`${attr}`] = val;\n }\n }\n return data;\n}\nasync function atcb_build_button(host, data) {\n try {\n data = await atcb_decorate_data(data);\n await atcb_validate(data);\n const rootObj = host.querySelector('.atcb-initialized');\n atcb_set_light_mode(host, data);\n rootObj.setAttribute('lang', data.language);\n atcb_load_css(host, rootObj, data);\n atcb_setup_state_management(data);\n atcb_set_global_event_listener(host, data);\n atcb_init_log(data.proKey, data.debug);\n if (!data.hidden) {\n if (typeof atcb_generate_rsvp_form === 'function' && data.rsvp && Object.keys(data.rsvp).length > 0) {\n if (!data.inlineRsvp) {\n await atcb_generate_rsvp_button(host, data);\n } else {\n await atcb_generate_rsvp_form(host, data, rootObj);\n }\n } else {\n atcb_generate_button(host, rootObj, data);\n }\n if (!data.hideRichData && !data.subscribe && data.name && data.dates[0].location && data.dates[0].startDate) {\n atcb_generate_rich_data(data, host.host);\n }\n }\n atcb_log_event('initialization', data.identifier, data.identifier);\n return true;\n } catch (e) {\n throw new Error(e.message);\n }\n}\nfunction atcb_cleanup(host, identifier) {\n atcb_close(host);\n atcb_unset_global_event_listener(identifier);\n const schemaEl = document.getElementById('atcb-schema-' + identifier);\n if (schemaEl) {\n schemaEl.remove();\n }\n Array.from(host.querySelectorAll('.atcb-debug-error-msg')).concat(Array.from(host.querySelectorAll('style'))).concat(Array.from(host.querySelectorAll('link'))).concat(Array.from(host.querySelectorAll('.atcb-placeholder'))).concat(Array.from(host.querySelectorAll('.atcb-button-wrapper'))).forEach(el => el.remove());\n delete atcbStates[`${identifier}`];\n}\nfunction atcb_set_light_mode(shadowRoot, data) {\n shadowRoot.host.classList.remove('atcb-dark', 'atcb-light', 'atcb-bodyScheme');\n const hostLightMode = function () {\n if (data.lightMode == 'bodyScheme') {\n if (document.body.classList.contains('atcb-dark') || document.documentElement.classList.contains('atcb-dark') || document.body.classList.contains('atcp-dark') || document.documentElement.classList.contains('atcp-dark') || document.body.classList.contains('dark') || document.documentElement.classList.contains('dark')) {\n return 'dark';\n } else {\n return 'light';\n }\n }\n return data.lightMode;\n }();\n shadowRoot.host.classList.add('atcb-' + hostLightMode);\n}\nfunction atcb_csp_nonce(host) {\n const cspnonceRegex = /[`'\"()[\\]{}<>\\s]/;\n if (!host.host.hasAttribute('cspnonce')) {\n return null;\n }\n if (cspnonceRegex.test(host.host.getAttribute('cspnonce'))) {\n throw new Error('cspnonce input contains forbidden characters.');\n }\n return host.host.getAttribute('cspnonce');\n}\nasync function atcb_load_css(host) {\n let rootObj = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n let data = arguments.length > 2 ? arguments[2] : undefined;\n const nonceVal = atcb_csp_nonce(host);\n if (!document.getElementById('atcb-global-style')) {\n const cssGlobalContent = document.createElement('style');\n cssGlobalContent.id = 'atcb-global-style';\n const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;\n cssGlobalContent.innerText = '.atcb-modal-no-scroll{overflow-y:hidden !important;-webkit-overflow-scrolling:touch;} body.atcb-modal-no-scroll{padding-right:' + scrollBarWidth + 'px;}';\n if (nonceVal) {\n cssGlobalContent.setAttribute('nonce', nonceVal);\n }\n document.head.append(cssGlobalContent);\n }\n const generalCssContent = document.createElement('style');\n const initWidth = data.inlineRsvp && data.rsvp && Object.keys(data.rsvp).length > 0 ? '100%' : 'fit-content';\n generalCssContent.innerText = `.atcb-initialized { display: block; position: relative; width: ${initWidth}; }.atcb-initialized.atcb-inline { display: inline-block; }.atcb-initialized.atcb-buttons-list { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--buttonslist-gap); }.atcb-hidden { display: none; }`;\n if (nonceVal) {\n generalCssContent.setAttribute('nonce', nonceVal);\n }\n host.prepend(generalCssContent);\n const overrideDefaultCss = function () {\n if (data.styleLight) {\n return ':host{' + atcb_secure_content(data.styleLight.replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false) + '}';\n }\n return '';\n }();\n const overrideDarkCss = function () {\n if (data.styleDark) {\n return ':host(.atcb-dark){' + atcb_secure_content(data.styleDark.replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false) + '}';\n }\n return '';\n }();\n if (data.customCss && data.customCss !== '') {\n const cssFile = document.createElement('link');\n cssFile.setAttribute('rel', 'stylesheet');\n cssFile.setAttribute('type', 'text/css');\n cssFile.setAttribute('href', data.customCss);\n if (nonceVal) {\n cssFile.setAttribute('nonce', nonceVal);\n }\n if (!rootObj) {\n await loadExternalCssAsynch(cssFile, host, null, nonceVal, null, false, false, overrideDefaultCss + overrideDarkCss);\n } else {\n const placeholder = document.createElement('div');\n placeholder.classList.add('atcb-placeholder');\n host.prepend(placeholder);\n const placeholderCssContent = document.createElement('style');\n placeholderCssContent.innerText = '.atcb-placeholder { background-color: #777; border-radius: 200px; height: 40px; opacity: .3; width: 150px; }';\n if (nonceVal) {\n placeholderCssContent.setAttribute('nonce', nonceVal);\n }\n host.prepend(placeholderCssContent);\n loadExternalCssAsynch(cssFile, host, rootObj, nonceVal, placeholder, data.inline, data.buttonsList, overrideDefaultCss + overrideDarkCss);\n }\n return;\n }\n if (data.buttonStyle !== 'none' && atcbCssTemplate[`${data.buttonStyle}`]) {\n const cssContent = document.createElement('style');\n if (nonceVal) {\n cssContent.setAttribute('nonce', nonceVal);\n }\n cssContent.innerText = atcbCssTemplate[`${data.buttonStyle}`] + overrideDefaultCss + overrideDarkCss;\n host.prepend(cssContent);\n }\n if (rootObj) {\n if (data.inline) {\n rootObj.style.display = 'inline-block';\n rootObj.classList.add('atcb-inline');\n } else {\n if (data.buttonsList) {\n rootObj.classList.add('atcb-buttons-list');\n }\n }\n rootObj.classList.remove('atcb-hidden');\n }\n}\nasync function loadExternalCssAsynch(cssFile, host) {\n let rootObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n let nonceVal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n let placeholder = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n let inline = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n let buttonsList = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;\n let overrideCss = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : '';\n if (overrideCss !== '') {\n const cssContent = document.createElement('style');\n cssContent.innerText = overrideCss;\n if (nonceVal) {\n cssContent.setAttribute('nonce', nonceVal);\n }\n host.prepend(cssContent);\n }\n try {\n host.prepend(cssFile);\n await new Promise(resolve => {\n cssFile.onload = resolve;\n });\n if (rootObj) {\n if (placeholder) {\n placeholder.remove();\n }\n if (inline) {\n rootObj.style.display = 'inline-block';\n rootObj.classList.add('atcb-inline');\n } else {\n if (buttonsList) {\n rootObj.classList.add('atcb-buttons-list');\n }\n }\n rootObj.classList.remove('atcb-hidden');\n }\n } catch (e) {\n console.log(e);\n }\n}\nfunction atcb_render_debug_msg(host, error) {\n if (host.querySelector('.atcb-debug-error-msg')) return;\n const nonceVal = atcb_csp_nonce(host);\n const errorBanner = document.createElement('div');\n errorBanner.classList.add('atcb-debug-error-msg');\n const cssContent = document.createElement('style');\n cssContent.innerText = '.atcb-debug-error-msg { color: #bf2e2e; font-size: 12px; font-weight: bold; padding: 12px 15px; border: 2px solid #bf2e2e; max-width: 180px; border-radius: 13px; }';\n if (nonceVal) {\n cssContent.setAttribute('nonce', nonceVal);\n }\n host.prepend(cssContent);\n errorBanner.textContent = error;\n host.append(errorBanner);\n}\nasync function atcb_action(inputData, triggerElement) {\n let keyboardTrigger = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!atcbIsBrowser()) {\n return;\n }\n let data = await async function () {\n const cleanedInput = atcb_secure_content(inputData);\n if (cleanedInput.prokey && cleanedInput.prokey !== '') {\n cleanedInput.proKey = cleanedInput.prokey;\n }\n if (cleanedInput.proKey && cleanedInput.proKey !== '') {\n const proData = await atcb_get_pro_data(cleanedInput.proKey, null, cleanedInput);\n if (proData.name && proData.name != '') {\n return proData;\n }\n }\n return cleanedInput;\n }();\n data.debug = data.debug === 'true';\n try {\n await atcb_check_required(data);\n } catch (e) {\n if (data.debug) {\n console.error(e);\n }\n throw new Error('Add to Calendar Button generation failed: no data provided or missing required fields - see console logs for details');\n }\n data = await atcb_decorate_data(data);\n let root = document.body;\n data.trigger = 'click';\n if (triggerElement) {\n root = triggerElement;\n if (triggerElement.id && triggerElement.id !== '') {\n data.identifier = triggerElement.id;\n } else {\n if (data.identifier && data.identifier != '' && /^[\\w\\-_]+$/.test(data.identifier)) {\n data.identifier = 'atcb-btn-' + data.identifier;\n } else {\n data.identifier = 'atcb-btn-custom';\n }\n triggerElement.id = data.identifier;\n }\n if (data.listStyle === 'dropdown' || data.listStyle === 'dropdown-static' || data.listStyle === 'dropup-static') {\n data.listStyle = 'modal';\n }\n } else {\n data.identifier = 'atcb-btn-custom';\n data.listStyle = 'modal';\n }\n try {\n await atcb_validate(data);\n } catch (e) {\n console.error(e);\n return false;\n }\n const oneOption = function () {\n if (data.options.length === 1) {\n return true;\n }\n return false;\n }();\n const potentialExistingHost = document.getElementById('atcb-customTrigger-' + data.identifier + '-host');\n if (potentialExistingHost) {\n atcb_close(potentialExistingHost.shadowRoot, false);\n if (atcbStates[`${atcbStates['active']}`]) {\n delete atcbStates[`${atcbStates['active']}`];\n }\n potentialExistingHost.remove();\n }\n atcb_log_event('initialization', data.identifier, data.identifier);\n if (!data.blockInteraction && !data.hidden) {\n const host = document.createElement('div');\n host.id = 'atcb-customTrigger-' + data.identifier + '-host';\n if (root === document.body) {\n document.body.append(host);\n } else {\n root.after(host);\n }\n if (triggerElement) {\n const btnDim = triggerElement.getBoundingClientRect();\n host.style.position = 'relative';\n host.style.left = -btnDim.width + 'px';\n host.style.top = btnDim.height + 'px';\n }\n host.setAttribute('atcb-button-id', data.identifier);\n host.attachShadow({\n mode: 'open',\n delegateFocus: true\n });\n const elem = document.createElement('template');\n elem.innerHTML = template;\n host.shadowRoot.append(elem.content.cloneNode(true));\n const rootObj = host.shadowRoot.querySelector('.atcb-initialized');\n atcb_setup_state_management(data);\n atcb_set_light_mode(host.shadowRoot, data);\n host.shadowRoot.querySelector('.atcb-initialized').setAttribute('lang', data.language);\n atcb_load_css(host.shadowRoot, rootObj, data);\n atcb_set_global_event_listener(host.shadowRoot, data);\n if (typeof atcb_generate_rsvp_form === 'function' && data.rsvp && Object.keys(data.rsvp).length > 0) {\n atcb_generate_rsvp_form(host.shadowRoot, data, triggerElement, keyboardTrigger);\n } else {\n if (oneOption) {\n atcb_generate_links(host.shadowRoot, data.options[0], data, 'all', keyboardTrigger);\n atcb_log_event('openSingletonLink', data.identifier, data.identifier);\n } else {\n atcb_toggle(host.shadowRoot, 'open', data, triggerElement, keyboardTrigger);\n }\n }\n }\n atcb_init_log(data.proKey, data.debug);\n if (data.debug) {\n console.log('Add to Calendar Button \"' + data.identifier + '\" triggered');\n }\n return data.identifier;\n}\nfunction atcb_setup_state_management(data) {\n const singleDates = [];\n for (let i = 0; i < data.options.length; i++) {\n singleDates[data.options[`${i}`]] = [];\n for (let id = 1; id <= data.dates.length; id++) {\n if (data.dates[id - 1].status.toLowerCase() === 'cancelled') {\n singleDates[data.options[`${i}`]].push(1);\n } else {\n singleDates[data.options[`${i}`]].push(0);\n }\n }\n }\n atcbStates[data.identifier] = singleDates;\n}\nfunction atcb_init_log() {\n let pro = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!atcbInitialGlobalInit) {\n const versionOutput = function () {\n if (debug) {\n return ' (version ' + atcbVersion + ')';\n }\n return '';\n }();\n if (pro != '') {\n console.log('Add to Calendar PRO script initialized' + versionOutput + ' | https://add-to-calendar-pro.com');\n } else {\n console.log('%c\\nAdd to Calendar Button script initialized' + versionOutput + '\\n' + 'see https://add-to-calendar-button.com for details.\\n', 'font-weight: bold;');\n console.log('✨ %cPRO version available at https://add-to-calendar-pro.com ← check it out!', 'font-weight: bold; line-height: 60px;');\n }\n atcbInitialGlobalInit = true;\n }\n}\nasync function atcb_get_pro_data(licenseKey) {\n let el = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n let directData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n if (licenseKey && licenseKey !== '') {\n try {\n const proOverride = el ? el.proOverride : directData.proOverride;\n const dataOverrides = el ? atcb_read_attributes(el, proOverride ? atcbWcParams : atcbWcProParams) : directData;\n const response = await fetch((dataOverrides.dev ? 'https://event-dev.caldn.net/' : 'https://event.caldn.net/') + licenseKey + '/config.json');\n if (response.ok) {\n const data = await response.json();\n if (!data.name || data.name === '') {\n throw new Error('Not possible to read proKey config from server...');\n }\n if (proOverride) {\n atcbWcParams.forEach(key => {\n if (Object.prototype.hasOwnProperty.call(dataOverrides, key) && ['hideBranding', 'hidebranding', 'rsvp', 'ty'].indexOf(key) === -1) {\n data[`${key}`] = dataOverrides[`${key}`];\n }\n });\n } else {\n atcbWcProParams.forEach(key => {\n if (Object.prototype.hasOwnProperty.call(dataOverrides, key)) {\n data[`${key}`] = dataOverrides[`${key}`];\n }\n });\n }\n data.proKey = licenseKey;\n data.identifier = licenseKey;\n return data;\n }\n throw new Error('Not possible to read proKey config from server...');\n } catch (e) {\n console.error('Add to Calendar Button proKey invalid or server not responding! Falling back to local data...');\n }\n }\n return {};\n}\nfunction atcb_set_global_event_listener(host, data) {\n if (!atcbIsBrowser()) {\n return;\n }\n if (data.lightMode == 'bodyScheme') {\n lightModeMutationObserver[data.identifier] = new MutationObserver(function (mutationsList) {\n mutationsList.forEach(mutation => {\n if (mutation.attributeName === 'class') {\n atcb_set_light_mode(host, data);\n }\n });\n });\n lightModeMutationObserver[data.identifier].observe(document.documentElement, {\n attributes: true\n });\n lightModeMutationObserver[data.identifier].observe(document.body, {\n attributes: true\n });\n }\n if (!atcbInitialGlobalInit) {\n document.addEventListener('keyup', atcb_global_listener_keyup);\n document.addEventListener('keydown', atcb_global_listener_keydown);\n window.addEventListener('resize', atcb_global_listener_resize);\n }\n}\nfunction atcb_global_listener_keyup(event) {\n const host = function () {\n const root = document.querySelector('[atcb-button-id=\"' + atcbStates['active'] + '\"]');\n if (root) {\n return root.shadowRoot;\n }\n return null;\n }();\n if (host && event.key === 'Escape') {\n atcb_log_event('closeList', 'Ecs Hit', atcbStates['active']);\n atcb_toggle(host, 'close', '', '', true);\n }\n}\nfunction atcb_global_listener_keydown(event) {\n const host = function () {\n const root = document.querySelector('[atcb-button-id=\"' + atcbStates['active'] + '\"]');\n const rootModal = document.getElementById(atcbStates['active'] + '-modal-host');\n if (rootModal) {\n return rootModal.shadowRoot;\n }\n if (root) {\n return root.shadowRoot;\n }\n return null;\n }();\n if (host && host.querySelector('.atcb-list') && (event.key === 'ArrowDown' || event.key === 'ArrowUp' || event.key === 'Tab')) {\n event.preventDefault();\n let targetFocus = 0;\n let currFocusOption = host.activeElement;\n const optionListCount = host.querySelectorAll('.atcb-list-item').length;\n if (currFocusOption && currFocusOption.classList.contains('atcb-list-item')) {\n if (event.key === 'ArrowDown' && currFocusOption.dataset.optionNumber < optionListCount) {\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) + 1;\n } else if (event.key === 'Tab') {\n if (currFocusOption.dataset.optionNumber < optionListCount) {\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) + 1;\n } else {\n targetFocus = 1;\n }\n } else if (event.key === 'ArrowUp' && currFocusOption.dataset.optionNumber >= 1) {\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) - 1;\n }\n if (targetFocus > 0) {\n host.querySelector('.atcb-list-item[data-option-number=\"' + targetFocus + '\"]').focus();\n }\n } else {\n switch (event.key) {\n default:\n host.querySelector('.atcb-list-item[data-option-number=\"1\"]').focus();\n break;\n case 'ArrowUp':\n host.querySelector('.atcb-list-item[data-option-number=\"' + optionListCount + '\"]').focus();\n break;\n }\n }\n }\n}\nfunction atcb_global_listener_resize() {\n const host = function () {\n const root = document.querySelector('[atcb-button-id=\"' + atcbStates['active'] + '\"]');\n const rootModal = document.getElementById(atcbStates['active'] + '-modal-host');\n if (rootModal) {\n return rootModal.shadowRoot;\n }\n if (root) {\n return root.shadowRoot;\n }\n return null;\n }();\n if (host) {\n const activeOverlay = host.querySelector('#atcb-bgoverlay');\n if (activeOverlay) {\n atcb_set_fullsize(activeOverlay);\n atcb_manage_body_scroll(host);\n }\n }\n}\nfunction atcb_unset_global_event_listener(identifier) {\n if (typeof lightModeMutationObserver[`${identifier}`] !== 'undefined') {\n lightModeMutationObserver[`${identifier}`].disconnect();\n }\n}\nexport { atcb_action, i18nStrings, atcbCssTemplate as cssStyles, atcb_generate_ty, atcb_generate_timestring };"],"names":["atcbVersion","atcbCssTemplate","atcbIsBrowser","window","atcbIsiOS","test","navigator","userAgent","atcbIsAndroid","atcbIsSafari","atcbIsMobile","atcbIsWebView","atcbIsProblematicWebView","atcbDefaultTarget","atcbOptions","atcbValidRecurrOptions","atcbInvalidSubscribeOptions","atcbIOSInvalidOptions","atcbAndroidInvalidOptions","atcbStates","atcbWcParams","atcbWcProParams","atcbWcBooleanParams","atcbWcObjectParams","atcbWcObjectArrayParams","atcbWcArrayParams","atcbWcNumberParams","atcbIcon","trigger","apple","google","ical","msteams","ms365","outlookcom","yahoo","close","location","warning","checkmark","rsvp","async","atcb_decorate_data","data","i","length","attr","val","toString","trim","toLowerCase","atcb_decorate_data_boolean","timeZone","atcb_decorate_data_timezone","inlineRSVP","inline","listStyle","buttonStyle","hideTextLabelList","hideTextLabelButton","buttonsList","atcb_decorate_data_style","theOptions","fakeIOS","optionsIOS","optionsMobile","fakeMobile","fakeAndroid","options","newOptions","iCalGiven","appleGiven","optionName","split","replace","includes","recurrence","recurrence_until","subscribe","push","icsFile","startsWith","endsWith","atcb_decorate_data_options","toUpperCase","recurrence_simplyfied","rruleParts","substring","rruleObj","Object","forEach","rule","UNTIL","recurrence_count","COUNT","recurrence_byDay","BYDAY","recurrence_byMonth","BYMONTH","recurrence_byMonthDay","BYMONTHDAY","recurrence_interval","INTERVAL","recurrence_frequency","FREQ","recurrence_weekstart","endTime","slice","atcb_decorate_data_rrule","sizes","size","sizeParts","parseInt","atcb_decorate_sizes","lightMode","arguments","undefined","matchMedia","matches","atcb_decorate_light_mode","pastDateHandling","allOverdue","dates","overdue","disabled","hidden","allCancelled","status","blockInteraction","atcb_decorate_data_button_status_handling","atcb_decorate_data_description","name","sequence","organizer","attendee","availability","onlineEvent","uid","atcb_generate_uuid","customVar","key","sanitizedKey","RegExp","sort","a","b","timestamp","atcb_decorate_data_extend","atcb_decorate_data_meta","atcb_decorate_data_dates","language","availableLanguages","rtlLanguages","rtl","atcb_decorate_data_i18n","keys","expired","expires","Date","bookedOut","atcb_check_booked_out","atcb_decorate_data_rsvp","tz","useUserTZ","cleanedUpDates","atcb_date_cleanup","startDate","endDate","startTime","atcb_date_specials_calculation","now","created","atcb_format_datetime","updated","description","descriptionHtmlFree","atcb_rewrite_html_elements","descriptionHtmlFreeICal","dateTimeData","point","dateString","today","todayString","getUTCFullYear","getUTCMonth","getUTCDate","dateStringParts","dateParts","newDate","UTC","setDate","getDate","toISOString","e","atcb_date_calculation","tmpSplitStartDate","timeStr","browserTimezone","Intl","DateTimeFormat","resolvedOptions","newStartDateTime","atcb_translate_via_time_zone","newEndDateTime","type","timeString","tmpDate","offsetEnd","getTime","currentUtcDate","atcb_check_required","Error","requiredMultiFieldFlex","every","field","atcb_validate","msgPrefix","identifier","atcb_validate_icsFile","customCss","atcb_secure_url","atcb_validate_buttonStyle","atcb_validate_subscribe","atcb_validate_created","atcb_validate_updated","isValid","option","atcb_validate_options","msgSuffix","atcb_validate_status","atcb_validate_availability","atcb_validate_organizer","atcb_validate_attendee","atcb_validate_uid","atcb_validate_sequence","atcb_validate_timezone","atcb_validate_datetime","message","atcb_validate_date_blocks","atcb_validate_rrule","atcb_validate_rrule_simplyfied","icsFileStr","organizerParts","atcb_validEmail","attendeeParts","debug","console","warn","log","selectedDate","date","time","timeParts","dateKey","atcb_toggle","host","action","button","keyboardTrigger","generatedButton","atcb_open","classList","contains","querySelector","atcb_close","atcb_log_event","list","optionsList","document","createElement","add","setAttribute","role","listCount","optionItem","tabIndex","dataset","optionNumber","append","atcb_generate_label","hideIconList","atcb_generate_dropdown_list","listWrapper","bgOverlay","atcb_generate_bg_overlay","hideBackground","modalHost","atcb_generate_modal_host","hideBranding","atcb_create_atcbl","atcb_set_sizes","atcb_manage_body_scroll","atcb_set_fullsize","forceOverlay","newHost","nodes","Array","from","children","node","tagName","cloneNode","removeAttribute","style","opacity","atcb_position_shadow_button","addEventListener","atcb_position_shadow_button_listener","atcb_generate_overlay_dom","display","setTimeout","atcb_position_list","focusEl","hostEl","getElementById","shadowRoot","focus","preventScroll","blur","existingModalHost","getAttribute","allModals","querySelectorAll","remove","nextModal","availableButtons","getElementsByTagName","newFocusEl","modal","body","documentElement","concat","el","hiddenButton","removeEventListener","atcb_generate_ty","dataObj","copyIcon","proKey","hostname","match","tyHost","tyData","ty","url","headline","atcb_translate_hook","tyContent","text","encodeURIComponent","header","noIntro","label","button_label","fields","headerField","find","default","JSON","parse","atcb","filter","customForm","atcb_build_form","html","atcb_create_modal","copyBtn","atcb_copy_to_clipboard","innerHTML","event","preventDefault","click","tyForm","errorMsg","tyFormSubmit","tyFormSubmitting","valid","atcb_validate_form","textContent","bodyData","skipRadio","radio","checked","value","fieldId","sendPostRequest","atcb_generate_rsvp_form","rsvpData","noHeadline","hiddenContent","rsvpContent","sentStatus","localStorage","getItem","hideButton","inlineRsvp","staticID","initial_confirmation","maybe_option","maxAmount","maxpp","rsvpHost","rsvpInlineWrapper","rsvpInlineHeadline","rsvpInlineContent","atcbL","small","primary","id","closeBtn","cancelBtn","restartBtn","atcbHost","atcbData","stringify","hideIconButton","atcb_generate_button","rsvpForm","rsvpFormSubmit","rsvpFormSubmitting","rsvpRestart","staticFields","required","amountEl","amount","statusValEl","dev","bodyData_payload","request","setItem","error","max","response","fetch","method","ok","responseJson","json","total","form","hiddenForm","n","prevType","skipped","fieldValue","placeholder","fieldLabel","fieldPlaceholder","fieldHtml","atcb_create_field_html","defaultVal","state","input","atcb_secure_content","radioGroup","formData","FormData","requestData","headers","parent","icon","oneOption","code","atcb_debounce_leading","atcb_generate_links","atcb_debounce","defaultTriggerText","iconEl","textEl","atcb_generate_label_content","index","buttonTriggerWrapper","buttonTrigger","atcb_generate_date_button","buttonDropdownAnchor","hideCheckmark","btnCheck","darken","closable","target","currentTarget","fingerMoved","passive","atList","returnEl","innerHeight","innerWidth","mainHost","content","buttons","subEvents","goto","newOverlay","modalWrapper","modalCount","modalNr","parentButton","hideIconModal","modalIcon","modalHeadline","modalContent","modalsubEventsContentWrapper","modalsubEventsContent","modalSubEventButton","modalButtons","modalButton","href","atcb_subscribe_yahoo_modal_switch","atcb_set_fully_successful","subEvent","fullTimeInfo","startDateInfo","endDateInfo","timeZoneInfoStart","timeZoneInfoEnd","decorate","browserTimeOverride","enforceYear","hideTimeZone","tmpRootTZ","formattedTimeStart","formattedTimeEnd","timeBlocks","timeZoneInfoStringStart","timeZoneInfoStringEnd","atcb_generate_time","start","end","allday","magicLocationPhrases","convertable","j","dropYearStart","getFullYear","dropYearEnd","formatOptionsStart","get_format_options","formatOptionsEnd","toLocaleDateString","DateLong","toLocaleString","Time","DateTimeLong","toLocaleTimeString","atcb_generate_timestring","hoverText","cancelledInfo","recurringString","subEventAll","allDay","btnLeft","btnDay","btnMonth","day","month","btnRight","btnDetails","btnHeadline","btnHeadlineText","btnLocation","btnLocationIcon","btnLocationText","cssText","alignSelf","btnDescription","btnDateTime","btnDateTimeIcon","btnDateTimeText","block","btnDateTimeTextBlock","recurSign","btnHover","ariaLabel","join","reset","newModalHost","hasAttribute","attachShadow","mode","delegateFocus","elem","atcb_set_light_mode","atcb_load_css","atcb_generate_rich_data_recurrence","formattedDate","schemaRecurrenceContent","repeatFrequency","byDayString","byDays","helperMap","MO","TU","WE","TH","FR","SA","SU","output","byMonthString","byMonthDayString","duration","multiDateModal","linkType","adjustedFileUrl","atcb_subscribe_ical","fileUrl","baseUrl","baseUrlApp","fileUrlRegex","newFileUrl","atcb_open_cal_url","atcb_subscribe_google","atcb_subscribe_microsoft","proxy","atcb_generate_subscribe_links","theSubEvent","atcb_generate_ical","individualButtons","atcb_generate_multidate_links","urlParts","tmpDataDescription","availabilityPart","atcb_generate_google","locationString","atcb_generate_msteams","atcb_generate_microsoft","allDayDate","formattedAllDayDate","atcb_generate_yahoo","subEventButton","atcb_saved_hook","calName","basePath","urlType","query","parts","newTab","open","filename","filenameSuffix","iCalFileName","filenamePart","pop","atcb_determine_ical_filename","givenIcsFile","potentialHostAttendee","potentialHostCustomVar","bypassWebViewCheck","atcb_save_file","ics_lines","usedTimeZones","loopStart","loopEnd","timeAddon","timeZoneBlock","atcb_rewrite_ical_text","transpVal","dataUrl","atcb_ical_copy_note","file","save","createElementNS","rel","download","evt","MouseEvent","view","bubbles","cancelable","dispatchEvent","URL","webkitURL","revokeObjectURL","targetCal","addTimeZoneOffset","newStartDate","newEndDate","durationMS","durationHours","Math","floor","durationMinutes","durationString","offsetStart","formattedOffsetStart","formattedOffsetEnd","calcOffsetStart","calcOffsetEnd","setTime","offset","getTimezoneOffset","formattedOffset","abs","datetime","regex","baseTimeZone","targetTimeZone","dateTime","dateTimeUTC","sign","offsetToMilliseconds","dateInTargetTimeZone","year","hour","minute","hourCycle","format","timeZoneInfo","hoursFormat","isJSON","cleanedUp","throwError","email","p1","atcb_parse_url_code","urlText","truncate","blockUpwards","blockDownwards","anchorSet","originalTrigger","position","triggerDim","getBoundingClientRect","btnDim","btnParentDim","parentNode","viewportHeight","clientHeight","minWidth","width","listDim","sideMargin","round","margin","height","top","bottom","maxWidth","left","after","originalShadowHost","modalShadowHost","wrapperDim","newWrapper","widthVal","active","modalObj","setProperty","c","crypto","getRandomValues","Uint8Array","dataString","tmpInput","editable","contentEditable","readOnly","range","createRange","selectNodeContents","selection","getSelection","removeAllRanges","addRange","setSelectionRange","select","execCommand","func","_this","this","timer","timeout","_len","args","_key","clearTimeout","apply","_this2","_len2","_key2","parentEl","customTrigger","category","dataLayer","eventCategory","eventAction","eventLabel","atcb_push_to_data_layer","calendarNames","i18nStrings","en","continue","cancel","recurring","thankyou","submit","de","es","pt","fr","nl","tr","zh","ar","hi","pl","no","fi","sv","cs","ja","it","ko","vi","ro","fa","et","customLabels","atcb_translate","atcbInitialGlobalInit","atcbBtnCount","lightModeMutationObserver","template","AddToCalendarButton","HTMLElement","constructor","super","_initialized","Promise","resolve","_initializedResolver","initializing","initialized","ready","updatePending","connectedCallback","initializeComponent","debugVal","proOverrideVal","proOverride","atcb_get_pro_data","atcb_process_inline_data","atcb_render_debug_msg","initButton","whenInitialized","disconnectedCallback","atcb_cleanup","observedAttributes","observeAdditionally","map","element","attributeChangedCallback","oldValue","newValue","updateComponent","prefix","visibility","rootObj","atcb_setup_state_management","atcb_set_global_event_listener","atcb_init_log","btnHostEl","atcb_generate_rsvp_button","hideRichData","schemaEl","schemaContentMulti","schemaContentFull","schemaContent","imageData","images","isArray","insertBefore","firstChild","atcb_generate_rich_data","atcb_build_button","customElements","get","define","atcb_read_attributes","slotInput","atcbJsonInput","jsonError","params","inputVal","cleanedInput","newVal","disconnect","atcb_unset_global_event_listener","hostLightMode","atcb_csp_nonce","nonceVal","cssGlobalContent","scrollBarWidth","clientWidth","innerText","head","generalCssContent","initWidth","prepend","overrideDefaultCss","styleLight","overrideDarkCss","styleDark","cssFile","placeholderCssContent","loadExternalCssAsynch","cssContent","overrideCss","onload","errorBanner","atcb_action","inputData","triggerElement","prokey","proData","root","potentialExistingHost","singleDates","versionOutput","licenseKey","directData","dataOverrides","prototype","hasOwnProperty","call","indexOf","MutationObserver","mutationsList","mutation","attributeName","observe","attributes","atcb_global_listener_keyup","atcb_global_listener_keydown","atcb_global_listener_resize","rootModal","targetFocus","currFocusOption","activeElement","optionListCount","activeOverlay"],"sourceRoot":""}