/**
 * Header option 2 (includes/header-v2.php). Self-contained, prefix o2-. Buttons are styled with two classes because
 * Elementor's kit styles every <button>. Notes: /home/asltip/docs/header-redesign/
 */
.o2-wrap{max-width:1240px;margin:0 auto;padding:0 24px}
.o2-util{background:#0b2f52;color:#bcd3ea;font:400 13px 'Heebo',sans-serif}
.o2-util__in{display:flex;justify-content:space-between;align-items:center;height:36px;gap:16px}
.o2-util__r{display:flex;gap:22px}
.o2-util a{color:#dbe9f6;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.o2-util a:hover{color:#fff}
.o2-util svg{width:13px;height:13px}
.o2{position:sticky;top:0;z-index:500;background:#fff;border-bottom:1px solid #e3ebf2;font-family:'Heebo',sans-serif;transition:box-shadow .2s}
.admin-bar .o2{top:32px}
.o2.is-scrolled{box-shadow:0 4px 16px rgba(4,26,46,.08)}
.o2-main{height:76px;display:flex;align-items:center;gap:28px}
.o2-logo{display:block;width:200px;flex:0 0 auto}
.o2-logo svg{display:block;width:100%;height:auto}
.o2-ul{list-style:none;margin:0;padding:0;display:flex;gap:2px}
.o2-li{position:relative;margin:0;padding:0;list-style:none}
.o2-li::before{display:none}
.o2 .o2-a{display:inline-flex;align-items:center;gap:5px;padding:9px 12px;margin:0;border:0;border-radius:6px;background:none;box-shadow:none;color:#00070e;font:400 16px/1.2 'Heebo',sans-serif;letter-spacing:0;text-transform:none;white-space:nowrap;cursor:pointer}
.o2 a.o2-a{text-decoration:none}
.o2 a.o2-a:hover{color:#1578cc}
.o2 .o2-a:focus-visible{outline:2px solid #1578cc;outline-offset:2px}
.o2-chev{width:14px;height:14px;color:#8a97a5;transition:transform .2s}
.o2-li:hover .o2-a,.o2-li.is-open .o2-a{color:#1578cc}
.o2-li:hover .o2-chev,.o2-li.is-open .o2-chev{transform:rotate(180deg);color:#1578cc}
.o2-drop{display:none;position:absolute;left:0;top:100%;margin-top:8px;width:270px;background:#fff;border:1px solid #e3ebf2;border-radius:14px;box-shadow:0 16px 38px rgba(4,26,46,.13);padding:16px 10px 10px;z-index:2}
.o2-drop::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
.o2-li:hover .o2-drop,.o2-li.is-open .o2-drop{display:block}
.o2 .o2-drop__intro{margin:0 10px 10px;padding-bottom:12px;border-bottom:1px solid #eef2f6;font-size:13.5px;line-height:1.45;color:#5b6876}
.o2 .o2-drop__ul{list-style:none;margin:0;padding:0;display:block}
.o2 .o2-drop__ul li{margin:0;padding:0;list-style:none}
.o2 .o2-drop__ul li::before{display:none}
.o2 .o2-drop__ul a{display:block;padding:8px 10px;border-radius:7px;color:#00070e;font:400 15px 'Heebo',sans-serif;text-decoration:none;white-space:nowrap}
.o2 .o2-drop__ul a:hover{background:#f4f9fd;color:#1578cc}
.o2-search{position:relative;margin:0 0 0 auto;width:340px;max-width:100%}
.o2-search__bar{display:flex;align-items:center;height:46px;background:#f4f9fd;border:1.5px solid #cbdeef;border-radius:999px;padding:0 4px 0 16px}
.o2-search.is-open .o2-search__bar,.o2-search__bar:focus-within{border-color:#1578cc;background:#fff}
.o2-search.is-error .o2-search__bar{border-color:#c0392b}
.o2-search__l{display:flex;align-items:center;gap:6px;flex:0 0 auto;margin:0 6px 0 0;padding:0 10px 0 0;border-right:1px solid #cbdeef;font:600 14px 'Heebo',sans-serif;color:#12507f;white-space:nowrap;letter-spacing:0;text-transform:none}
.o2-pin{width:16px;height:16px;color:#0d7d3f}
.o2-search .o2-search__pc::-webkit-search-cancel-button,.o2-search .o2-search__pc::-webkit-search-decoration{-webkit-appearance:none;appearance:none}
.o2-search .o2-search__pc{-webkit-appearance:none;appearance:none;flex:1;min-width:0;width:auto;border:0;outline:0;background:transparent;font:400 15px 'Heebo',sans-serif;color:#00070e;padding:0;margin:0;height:auto;box-shadow:none}
.o2-search__bar button[type=submit]{flex:0 0 auto;width:38px;height:38px;min-height:0;margin:0;padding:0;border:0;border-radius:50%;background:#0d7d3f;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none}
.o2-search__bar button[type=submit]:hover{background:#109e50}
.o2-search__bar button svg{width:18px;height:18px;stroke:#fff}
/* the panel that opens under the search: type, distance, age, then on to the form's "what support" step */
.o2-search__more{display:none;position:absolute;right:0;top:calc(100% + 8px);width:320px;background:#fff;border:1px solid #e3ebf2;border-radius:14px;box-shadow:0 16px 38px rgba(4,26,46,.13);padding:16px;z-index:3;flex-direction:column;gap:12px}
.o2-search.is-open .o2-search__more{display:flex}
.o2-seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#eef3f8;border-radius:10px}
.o2-seg label{margin:0;padding:0;cursor:pointer;font-size:14px;letter-spacing:0;text-transform:none}
.o2-seg input{position:absolute;opacity:0;width:1px;height:1px}
.o2-seg span{display:block;padding:8px 6px;border-radius:7px;text-align:center;font:600 14px 'Heebo',sans-serif;color:#46586a}
.o2-seg input:checked+span{background:#fff;color:#00070e;box-shadow:0 1px 4px rgba(4,26,46,.12)}
.o2-seg input:focus-visible+span{outline:2px solid #1578cc;outline-offset:1px}
.o2-field{display:flex;flex-direction:column;gap:5px;margin:0;padding:0;letter-spacing:0;text-transform:none}
.o2-field[hidden]{display:none}
.o2-field span{font:600 13px 'Heebo',sans-serif;color:#46586a}
.o2-search select{width:100%;height:42px;margin:0;padding:0 34px 0 12px;border:1.5px solid #cbdeef;border-radius:8px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6876' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center/16px;font:400 15px 'Heebo',sans-serif;color:#00070e;-webkit-appearance:none;appearance:none;box-shadow:none}
.o2-search select:focus{outline:2px solid #1578cc;outline-offset:1px;border-color:#1578cc}
.o2-search .o2-search__go{width:100%;height:auto;min-height:0;margin:2px 0 0;padding:13px;border:0;border-radius:6px;background:#0d7d3f;color:#fff;font:500 12px 'Heebo',sans-serif;letter-spacing:.11em;text-transform:uppercase;cursor:pointer;box-shadow:none}
.o2-search .o2-search__go:hover{background:#109e50}
.o2 .o2-search__note,.o2m .o2-search__note{margin:-4px 0 0;font-size:12.5px;color:#5b6876;text-align:center}
.o2 .o2-burger,.o2m .o2-burger{display:none;margin:0 -6px 0 0;padding:6px;border:0;background:none;box-shadow:none;line-height:0;color:#12507f;cursor:pointer}
.o2-burger svg{width:28px;height:28px;stroke:#12507f}
@media (max-width:1240px){.o2-main{gap:20px}.o2-search{width:250px}.o2-search__l span{display:none}} /* compact search once Courses + Events are top level */
@media (max-width:1060px){
  .o2-nav,.o2-main .o2-search{display:none}
  .o2 .o2-burger{display:block;margin-left:auto}
  .o2-util__line{display:none}
  .o2-util__in{justify-content:flex-end}
}
@media (max-width:782px){.admin-bar .o2{top:46px}}
@media (max-width:640px){
  .o2-util{display:none}
  .o2-wrap{padding:0 16px}
  .o2-main{height:66px}
  .o2-logo{width:170px}
}
/* Phone menu */
.o2m[hidden]{display:none}
.o2m{position:fixed;inset:0;z-index:100000;background:#fff;display:flex;flex-direction:column;overflow:auto;font-family:'Heebo',sans-serif}
body.o2m-open{overflow:hidden}
.o2m-top{display:flex;justify-content:space-between;align-items:center;padding:0 16px;height:66px;border-bottom:1px solid #e3ebf2;flex:0 0 auto}
.o2m-top .o2-logo{width:170px}
.o2m .o2-burger{display:block}
.o2m-body{padding:18px 16px}
.o2m .o2m-k{margin:0 0 10px;font:600 16px 'Heebo',sans-serif;color:#00070e}
.o2m .o2-search{width:100%;margin:0}
.o2m .o2-search__more{display:none;position:static;width:auto;margin-top:12px;padding:0;border:0;box-shadow:none} /* phone menu: options appear once the search is tapped (Dylan, 15 Oct 2026) */
.o2m .o2-search.is-open .o2-search__more{display:flex}
.o2m-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:22px 0 6px;padding:4px;background:#eef3f8;border-radius:12px}
.o2m .o2m-tab{margin:0;border:0;background:transparent;border-radius:9px;padding:11px 6px;font:600 15px/1.2 'Heebo',sans-serif;color:#46586a;letter-spacing:0;text-transform:none;cursor:pointer;box-shadow:none}
.o2m .o2m-tab.is-on{background:#fff;color:#00070e;box-shadow:0 1px 4px rgba(4,26,46,.12)}
.o2m .o2m-list{list-style:none;margin:0;padding:0}
.o2m .o2m-list[hidden]{display:none}
.o2m .o2m-list li{margin:0;padding:0;border-bottom:1px solid #eef2f6;list-style:none}
.o2m .o2m-list li::before{display:none}
.o2m .o2m-list a{display:flex;justify-content:space-between;align-items:center;padding:15px 2px;font:400 17px 'Heebo',sans-serif;color:#00070e;text-decoration:none}
.o2m-list a svg{width:16px;height:16px;color:#9fb0c1}
.o2m .o2m-list--links{margin-top:8px}
.o2m-about{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:24px}
.o2m-about span{flex-basis:100%;font:700 12px 'Heebo',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#5b6876}
.o2m .o2m-about a{color:#1578cc;font-size:15px;text-decoration:none}
.o2m-foot{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px;background:#f4f9fd;border-top:1px solid #e3ebf2}
.o2m-foot a{display:flex;justify-content:center;padding:13px;border-radius:6px;font:500 15px 'Heebo',sans-serif;text-decoration:none}
.o2m .o2m-login{background:#0b2f52;color:#fff}
.o2m .o2m-contact{border:1.5px solid #cbdeef;color:#12507f;background:#fff}
@media (prefers-reduced-motion:reduce){.o2,.o2-chev{transition:none}}

/* The logo's letters fade in one by one after load, as the old header's did (.logo_wrap.animate in style.min.css). */
.o2-main .o2-logo .letter{opacity:0;transition:opacity .75s ease}
.o2-main .o2-logo.is-animated .letter{opacity:1}
.o2-main .o2-logo.is-animated .letter_1{transition-delay:.1s}
.o2-main .o2-logo.is-animated .letter_2{transition-delay:.2s}
.o2-main .o2-logo.is-animated .letter_3{transition-delay:.3s}
.o2-main .o2-logo.is-animated .letter_4{transition-delay:.4s}
.o2-main .o2-logo.is-animated .letter_5{transition-delay:.5s}
.o2m .o2-logo .letter{opacity:1}
@media (prefers-reduced-motion:reduce){.o2-main .o2-logo .letter{opacity:1;transition:none}}

/* Homepage: its first Elementor section is pulled up 70px against the theme's 80px top gap. The old pale header hid the
   10px left over; under the white header it showed as a strip, so close it. */
body.home .o2 ~ .container.container--standard{margin-top:70px}
@media (max-width:767px){body.home .o2 ~ .container.container--standard{margin-top:60px}} /* Elementor's phone breakpoint pulls it up 60px, not 70 */

/* ---- Members-area header (includes/header-members-v2-o2.php) ---- */
.o2-util__members{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:#fff}
.o2-util__members::before{content:"";width:18px;height:3px;border-radius:2px;background:#1acd6a}
.o2 .o2-drop--plain{width:auto;min-width:220px;padding:8px}
.o2 .o2-drop--right{left:auto;right:0}
.o2-account{position:relative;margin-left:auto}
.o2 .o2-account__btn{gap:8px;padding:6px 10px 6px 6px;border:1.5px solid #e3ebf2;border-radius:999px}
.o2 .o2-account__btn:hover,.o2-account.is-open .o2-account__btn{border-color:#cbdeef;background:#f4f9fd}
.o2-account__av{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#0b2f52;color:#fff;font:600 14px 'Heebo',sans-serif;flex:0 0 auto}
.o2-account__name{max-width:140px;overflow:hidden;text-overflow:ellipsis}
.o2 .o2-login-btn{margin-left:auto;display:inline-flex;padding:11px 18px;border-radius:4px;background:#0d7d3f;color:#fff;font:500 12px 'Heebo',sans-serif;letter-spacing:.11em;text-transform:uppercase;text-decoration:none}
.o2--members .o2-nav{margin-left:8px}
@media (max-width:1060px){.o2-account,.o2 .o2-login-btn{display:none}}
/* members phone menu */
.o2m-account{display:flex;align-items:center;gap:12px;padding:4px 0 18px;border-bottom:1px solid #eef2f6}
.o2m-account .o2-account__av{width:40px;height:40px;font-size:16px}
.o2m-account__name{font:600 17px 'Heebo',sans-serif;color:#00070e}
.o2m .o2m-account a{margin-left:auto;color:#1578cc;font:500 15px 'Heebo',sans-serif;text-decoration:none}
.o2m-g{border-bottom:1px solid #eef2f6}
.o2m-g summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:15px 2px;font:400 17px 'Heebo',sans-serif;color:#00070e;cursor:pointer}
.o2m-g summary::-webkit-details-marker{display:none}
.o2m-g summary .o2-chev{width:18px;height:18px}
.o2m-g[open] summary .o2-chev{transform:rotate(180deg)}
.o2m .o2m-g a{display:block;padding:9px 0 9px 14px;font:400 16px 'Heebo',sans-serif;color:#46586a;text-decoration:none}
.o2m-g[open]{padding-bottom:10px}
.o2m .o2m-a{display:block;padding:15px 2px;font:400 17px 'Heebo',sans-serif;color:#00070e;text-decoration:none;border-bottom:1px solid #eef2f6}

/* Account menu: the member's ASLTIP number (15 Oct 2026) */
.o2 .o2-acct-id{display:flex;flex-direction:column;gap:2px;padding:6px 10px 10px;margin:0 0 6px;border-bottom:1px solid #eef2f6}
.o2 .o2-acct-id__k{font:500 12px 'Heebo',sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#5b6b7b}
.o2 .o2-acct-id__v{font:600 17px 'Heebo',sans-serif;color:#0b2f52;font-variant-numeric:tabular-nums}
.o2m-account__who{display:flex;flex-direction:column;gap:2px;min-width:0}
.o2m-account__num{font:400 14px 'Heebo',sans-serif;color:#5b6b7b;font-variant-numeric:tabular-nums}
