/* CGS Core: registration, the stylesheet. Moved from the <style> blocks
   WPCode snippet 25095289 printed with the modal and with the full notice. */
/* The z-index has to clear the mobile header, not just ordinary page content.
   DiviPixel pins #main-header to position:fixed with z-index 9999999 inside a
   max-width:980px media query (style id mobile-menu-fixed-header-css), and puts
   its own slide-in menu at 10000000. At 999999 this overlay lost to the header,
   which then painted over the top 80px of the card: the title bar and the close
   button were hidden, and a tap on the close button hit the logo instead.
   Desktop never showed it, because above 980px the header drops to 99999. */
.cgs-reg-ov{position:fixed;inset:0;background:rgba(15,18,40,.55);display:none;align-items:center;justify-content:center;z-index:2147483647;padding:20px;box-sizing:border-box}
.cgs-reg-ov[aria-hidden="false"]{display:flex}
.cgs-reg-card{background:#fff;border-radius:16px;overflow:hidden;width:100%;max-width:440px;position:relative;box-shadow:0 14px 44px rgba(0,0,0,.32);font-family:"Roboto Flex",Helvetica,Arial,sans-serif;max-height:92vh;overflow-y:auto}
.cgs-reg-x{position:absolute;top:11px;right:11px;width:30px;height:30px;border:none;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:20px;line-height:1;cursor:pointer;z-index:2}
.cgs-reg-head{background:#27318B;padding:20px 24px 16px}
.cgs-reg-h{margin:0;color:#fff !important;font-size:20px;line-height:1.25;font-weight:700;font-family:"Montserrat",Helvetica,Arial,sans-serif}
.cgs-reg-rule{height:3px;background:#F1C500}
.cgs-reg-bd{padding:18px 24px 24px}
.cgs-reg-sub{margin:0 0 14px;font-size:13.5px;line-height:1.5;color:#3a3f4b}
.cgs-reg-in,.cgs-reg-bd select{width:100%;height:auto;padding:14px 16px !important;border:1px solid #868b9c;border-radius:8px;font-size:15px;margin-bottom:14px !important;box-sizing:border-box;font-family:inherit;color:#1a1a2e;background:#fff}
/* Our own chevron, inset 16px from the border (owner, 2026-10-14): the
   native arrow sat hard against the right edge. After the base rule so it wins. */
.cgs-reg-bd select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:44px !important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%231a1a2e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center;background-size:12px 8px}
.cgs-reg-bd select::-ms-expand{display:none}
.cgs-reg-in:focus,.cgs-reg-bd select:focus{outline:none;border-color:#27318B;box-shadow:0 0 0 3px rgba(39,49,139,.15)}
.cgs-reg-f [hidden]{display:none !important}
/* Three groups (about you, where you are, how you heard), a little further
   apart than the fields inside them. */
.cgs-reg-grp{margin:0 0 16px}
/* Floating labels (owner, 2026-10-13). The label is a real <label> sitting in
   the box like a placeholder; once the field has a value it moves up onto the
   border, small and navy. :placeholder-shown covers typing, .has-val (set by
   the script) covers selects, and the autofill rules cover a browser filling
   the box in. A select has no placeholder, so it always matches
   :not(:placeholder-shown); that rule names input for that reason.
   pointer-events:none, so a tap on the label reaches the box.
   Divi styles labels, hence the !important. The resting grey #5f6474 is 5.9:1
   on white; navy is 11:1. With the label inside the box, the border is what
   shows there is a box at all, so it is #868b9c, 3.4:1 (WCAG 1.4.11). */
.cgs-reg-fl{position:relative}
.cgs-reg-fl>label{position:absolute !important;left:13px !important;top:15px !important;margin:0 !important;padding:0 4px !important;background:#fff;color:#5f6474 !important;font-size:15px !important;line-height:1.2 !important;font-weight:400 !important;pointer-events:none;transition:top .15s ease,font-size .15s ease,color .15s ease;max-width:calc(100% - 40px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block !important}
.cgs-reg-fl>input.cgs-reg-in:not(:placeholder-shown)+label,.cgs-reg-fl.has-val>label{top:-8px !important;font-size:12px !important;color:#27318B !important}
.cgs-reg-fl>.cgs-reg-in:-webkit-autofill+label{top:-8px !important;font-size:12px !important;color:#27318B !important}
.cgs-reg-fl>.cgs-reg-in:autofill+label{top:-8px !important;font-size:12px !important;color:#27318B !important}
.cgs-reg-fl>.cgs-reg-in:focus+label,.cgs-reg-fl>select:focus~label{color:#27318B !important}
@media (prefers-reduced-motion:reduce){.cgs-reg-fl>label{transition:none}}
/* Help, error and hint lines sit right under their field, inside its group. */
.cgs-reg-help,.cgs-reg-err,.cgs-reg-hint{margin:-8px 0 12px !important;padding:0 2px !important;font-size:13px;line-height:1.4}
.cgs-reg-help{color:#5f6474}
.cgs-reg-err{color:#b3261e;font-weight:500}
/* An empty error line stays in the page (no display:none), so a screen reader
   still announces it as a live region when text arrives on blur. */
.cgs-reg-err:empty{margin:0 !important}
.cgs-reg-hint{color:#1a1a2e}
.cgs-reg-hint-use{background:none !important;border:none !important;padding:0 !important;color:#27318B !important;text-decoration:underline;font:inherit;font-weight:600;cursor:pointer}
.cgs-reg-in[aria-invalid="true"]{border-color:#b3261e !important}
.cgs-reg-in[aria-invalid="true"]:focus{box-shadow:0 0 0 3px rgba(179,38,30,.15)}
/* Hybrid: how you will attend (2026-10-15). Two bordered choices, the picked
   one navy; a full room's In person is greyed and cannot be picked. The
   fieldset loses Divi's and the browser's own frame. */
.cgs-reg-att{border:0 !important;padding:0 !important;min-width:0}
.cgs-reg-att-h{margin:0 0 8px !important;padding:0 !important;font-size:15px;font-weight:700;color:#1a1a2e}
.cgs-reg-att-o{display:flex !important;gap:10px;align-items:center;margin:0 0 8px !important;padding:12px 14px !important;border:1px solid #868b9c;border-radius:8px;font-size:15px !important;font-weight:400 !important;color:#1a1a2e !important;cursor:pointer}
.cgs-reg-att-o small{color:#5f6474;font-size:13px}
.cgs-reg-att-o:has(input:checked){border-color:#27318B;box-shadow:0 0 0 1px #27318B}
.cgs-reg-att-o.is-off{opacity:.55;cursor:not-allowed}
.cgs-reg-att-o input{margin:0;accent-color:#27318B}
.cgs-reg-att .cgs-reg-help,.cgs-reg-att .cgs-reg-err{margin:0 0 8px !important}
.cgs-reg-opt{display:flex;gap:9px;align-items:flex-start;margin:6px 0 16px;font-size:13px;line-height:1.5;color:#3a3f4b}
.cgs-reg-opt span{text-wrap:pretty}
.cgs-reg-opt input{margin-top:2px}
.cgs-reg-terms{margin:0 0 14px;font-size:13px;line-height:1.5;color:#3a3f4b;text-wrap:pretty}
.cgs-reg-terms a{color:#27318B !important;text-decoration:underline}
.cgs-reg-btn{width:100%;padding:13px;border:none !important;border-radius:8px;background:#27318B !important;color:#fff !important;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit}
.cgs-reg-btn:hover{background:#1f2870 !important}.cgs-reg-btn:disabled{opacity:.65;cursor:default}
.cgs-reg-msg{margin:10px 0 0;text-align:center;font-size:13px;color:#c0392b;min-height:1px}
.cgs-reg-ok{padding:26px 24px;text-align:center}.cgs-reg-ok h3{color:#27318B;font-family:"Montserrat",sans-serif;margin:0 0 8px}
.cgs-reg-hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden}
.cgs-reg-open{display:inline-block;background:#27318B !important;color:#fff !important;padding:13px 30px;border-radius:50px;font-weight:700;font-size:16px;text-decoration:none;border:none;cursor:pointer}
.cgs-reg-open:hover{background:#1f2870 !important}
@media (max-width:480px){.cgs-reg-card{max-width:none}}
/* The full notice (the grey "This event is full" pill). */
.cgs-reg-open-wrap{margin:20px 0}
.cgs-reg-open-top{margin:16px 0 0}
.cgs-reg-full{display:inline-block;background:#e8e8e8 !important;color:#333 !important;padding:13px 30px;border-radius:50px;font-weight:700;font-size:16px;margin:0}
