/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Nov 15 2026 | 02:42:36 */
@import url('https://fonts.googleapis.com/css2?family=Oxanium:wght@400;500;600;700&family=Sulphur+Point:wght@400;500;600;700&family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,400,0,0&display=swap');

/* HSE ELEMENTS | IN-PERSON TRAINING | COMPLETE REPLACEMENT STYLESHEET
   Aligned directly with HSE Elements homepage / About design language.
   Course tiles retain geometric styling with optional photo previews on selection.
   Distinctive dark/amber brand tonal treatments for fourteen course tiles.
*/

/* 01 | FOUNDATION */
body:has(.hse-ip) { margin-top:0; }
body:has(.hse-ip) .wp-site-blocks,
body:has(.hse-ip) .wp-site-blocks > main,
body:has(.hse-ip) .wp-block-post-content,
body:has(.hse-ip) .entry-content { margin-block-start:0; padding-block-start:0; }
body:has(.hse-ip) .wp-site-blocks > header:has(.hse-site-header) + * { margin-block-start:0; }
body:has(.hse-ip) .wp-block-post-content > .wp-block-html:has(.hse-ip) { margin-block-start:0; padding-block-start:0; }
.hse-ip, .hse-ip-team, .hse-ip-after {
  --ip-amber:#FFC84A;
  --ip-deep-amber:#D89B2B;
  --ip-bright-amber:#FFD578;
  --ip-light-amber:#FAD995;
  --ip-black:#000;
  --ip-graphite:#111;
  --ip-ink:#151515;
  --ip-muted:#565653;
  --ip-white:#fff;
  --ip-offwhite:#F7F7F5;
  --ip-ease:cubic-bezier(.22,1,.36,1);
  --ip-radius:14px;
  --ip-radius-lg:18px;
  --ip-gutter:clamp(20px,4.6vw,86px);
  --ip-max:1520px;
  position:relative;
  color:var(--ip-white);
  font-family:'Sulphur Point',Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}
.hse-ip { isolation:isolate; width:100%; max-width:none; margin:0; overflow-x:clip; background:#101111; }
.hse-ip *, .hse-ip *::before, .hse-ip *::after,
.hse-ip-team *, .hse-ip-team *::before, .hse-ip-team *::after,
.hse-ip-after *, .hse-ip-after *::before, .hse-ip-after *::after { box-sizing:border-box; }
.hse-ip h1,.hse-ip h2,.hse-ip h3,.hse-ip p,.hse-ip-team h2,.hse-ip-team p,.hse-ip-after h2,.hse-ip-after p { margin:0; }
.hse-ip h1,.hse-ip h2,.hse-ip h3,.hse-ip-team h2,.hse-ip-after h2 { font-family:'Oxanium',Arial,sans-serif; font-weight:500; letter-spacing:-.045em; line-height:1.04; text-wrap:balance; }
.hse-ip h1 em,.hse-ip h2 em,.hse-ip-team h2 em,.hse-ip-after h2 em { font-style:normal; color:var(--ip-amber); }
.hse-ip a,.hse-ip-team a,.hse-ip-after a { text-decoration:none; }
.hse-ip button,.hse-ip input { font:inherit; }
.hse-ip button { cursor:pointer; }
.hse-ip :is(a,button,input):focus-visible,.hse-ip-team a:focus-visible,.hse-ip-after a:focus-visible { outline:3px solid var(--ip-amber); outline-offset:4px; }
.hse-ip [hidden] { display:none!important; }
.hse-ip__container { width:min(calc(100% - var(--ip-gutter)*2),var(--ip-max)); margin-inline:auto; }
.hse-ip__sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; border:0!important; }
.hse-ip .hse-ip__icon,.hse-ip-team .hse-ip__icon,.hse-ip-after .hse-ip__icon {
  display:inline-grid!important; place-items:center; flex:none;
  font-family:'Material Symbols Rounded'; font-style:normal; font-weight:normal;
  font-size:24px; line-height:1!important; letter-spacing:normal;
  text-transform:none; white-space:nowrap; direction:ltr;
  -webkit-font-feature-settings:'liga'; font-feature-settings:'liga';
  -webkit-font-smoothing:antialiased;
  font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;
}
.hse-ip__overline,.hse-ip-after__eyebrow {
  display:inline-block; font:700 clamp(11px,.8vw,13px)/1.4 'Oxanium',Arial,sans-serif;
  letter-spacing:.16em; text-transform:uppercase;
}
.hse-ip :is(#hse-ip-courses,#training-calendar) { scroll-margin-top:clamp(90px,10vw,130px); }

/* 02 | HOMEPAGE-MATCHED BUTTONS, ICONS INSTEAD OF ARROWS */
.hse-ip .hse-ip__button,.hse-ip-team .hse-ip__button,.hse-ip-after .hse-ip__button {
  --ip-pressed-fill:#fff;
  position:relative; isolation:isolate; display:inline-flex; align-items:center;
  justify-content:center; gap:13px; width:fit-content; max-width:100%;
  min-height:49px; padding:12px 20px; border:1px solid transparent;
  border-radius:10px; overflow:hidden; vertical-align:middle;
  font:700 12px/1.25 'Oxanium',Arial,sans-serif; letter-spacing:.015em;
  text-transform:uppercase; text-align:center; cursor:pointer;
  transition:transform .27s var(--ip-ease),background-color .27s ease,
    border-color .27s ease,box-shadow .27s ease,color .27s ease;
}
.hse-ip__button::before { content:''; position:absolute; inset:0; z-index:-1;
  pointer-events:none; background:var(--ip-pressed-fill);
  transform:translateX(-102%); transition:transform .43s var(--ip-ease); }
.hse-ip__button:active::before { transform:translateX(0); }
.hse-ip__button > .hse-ip__icon { font-size:19px!important; transition:transform .27s var(--ip-ease); }
.hse-ip__button:hover { transform:translateY(-2px); }
.hse-ip__button:active { transform:translateY(0); }
.hse-ip__button:hover > .hse-ip__icon { transform:scale(1.06); }
.hse-ip .hse-ip__button--primary,.hse-ip-team .hse-ip__button--primary,.hse-ip-after .hse-ip__button--primary {
  background:var(--ip-amber); color:var(--ip-black);
  box-shadow:0 10px 30px rgba(216,155,43,.12),inset 0 1px rgba(255,255,255,.25);
}
.hse-ip .hse-ip__button--primary:hover,.hse-ip-team .hse-ip__button--primary:hover,.hse-ip-after .hse-ip__button--primary:hover {
  background:var(--ip-bright-amber); color:var(--ip-black);
  box-shadow:0 14px 36px rgba(216,155,43,.2);
}
.hse-ip .hse-ip__button--primary:active,.hse-ip-team .hse-ip__button--primary:active,.hse-ip-after .hse-ip__button--primary:active {
  background:var(--ip-bright-amber); color:var(--ip-black);
  border-color:rgba(216,155,43,.77);
  box-shadow:inset 0 0 0 2px rgba(255,200,74,.3),0 0 0 4px rgba(255,200,74,.12),0 4px 16px rgba(0,0,0,.1);
}
.hse-ip .hse-ip__button--glass {
  color:var(--ip-white); border-color:rgba(255,255,255,.34);
  background:rgba(255,255,255,.09);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
  backdrop-filter:blur(18px) saturate(130%);
  box-shadow:inset 0 1px rgba(255,255,255,.12);
}
.hse-ip .hse-ip__button--glass:hover {
  color:var(--ip-black); background:var(--ip-amber);
  border-color:rgba(255,213,120,.75); box-shadow:0 10px 25px rgba(0,0,0,.17);
}
.hse-ip .hse-ip__button--glass:active {
  color:var(--ip-black); background:var(--ip-amber);
  border-color:var(--ip-amber); box-shadow:inset 0 0 0 2px rgba(255,200,74,.25);
}

/* 03 | HERO: FROSTED AMBER EYEBROW, FLOATING ROUNDED DIAMONDS */
.hse-ip__hero {
  position:relative; isolation:isolate; min-height:clamp(675px,84svh,910px);
  overflow:hidden; padding:clamp(105px,10vw,150px) 0 clamp(70px,7vw,115px);
  color:#fff;
  background:radial-gradient(ellipse at 10% 5%,rgba(255,200,74,.14),transparent 46%),
    radial-gradient(ellipse at 100% 80%,rgba(255,200,74,.08),transparent 47%),
    linear-gradient(130deg,#171918,#0A0B0B 64%,#151515);
}
.hse-ip__hero-wash { position:absolute; right:-14%; bottom:-35%; width:57vw; aspect-ratio:1;
  border-radius:50%; background:rgba(255,200,74,.065); filter:blur(95px); pointer-events:none; }
.hse-ip__hero-art-shapes { position:absolute; inset:0; overflow:hidden; z-index:0; pointer-events:none; }
.hse-ip__hero-diamond {
  position:absolute; display:block; aspect-ratio:1; transform:rotate(45deg);
  border:1px solid rgba(255,213,120,.2); border-radius:clamp(15px,2.4vw,30px);
  background:linear-gradient(135deg,rgba(255,200,74,.095),rgba(255,255,255,.015) 76%);
  box-shadow:inset 0 1px rgba(255,255,255,.08);
  animation:ip-hero-diamond-enter 1.85s var(--ip-ease) var(--ip-enter-delay,.12s) both,
    ip-hero-float var(--ip-duration,14s) ease-in-out var(--ip-delay,0s) infinite;
}
.hse-ip__hero-diamond--1 { width:clamp(290px,35vw,575px); top:-290px; left:-140px; --ip-duration:15s; }
.hse-ip__hero-diamond--2 { width:clamp(360px,43vw,665px); top:-345px; right:15%; --ip-duration:18s; --ip-delay:-5s; }
.hse-ip__hero-diamond--3 { width:clamp(210px,24vw,380px); bottom:-98px; right:-120px; --ip-duration:16s; --ip-delay:-8s; }
.hse-ip__hero-diamond--4 { width:clamp(180px,21vw,310px); bottom:-120px; left:37%; --ip-duration:17s; --ip-delay:-11s; }
.hse-ip__hero-diamond--5 { width:clamp(180px,19vw,300px); bottom:7%; left:-155px; --ip-duration:13s; --ip-delay:-6s; }
/* Desktop, large desktop, and tablet: remove the two centre shapes. */
.hse-ip__hero-diamond--2,.hse-ip__hero-diamond--4 { display:none; }
@keyframes ip-hero-diamond-enter { from { opacity:0; translate:var(--ip-enter-x,0px) var(--ip-enter-y,32px); } to { opacity:1; translate:0 0; } }
@keyframes ip-hero-float { 0%,100% { transform:translate3d(0,0,0) rotate(45deg); } 50% { transform:translate3d(9px,-25px,0) rotate(45deg); } }
.hse-ip__hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.09fr) minmax(0,.91fr);
  gap:clamp(42px,6vw,108px); align-items:center; }
.hse-ip__hero-copy { min-width:0; max-width:750px; }
.hse-ip__hero-media { display:flex; flex-direction:column; min-width:0; align-self:center; }
.hse-ip .hse-ip__eyebrow {
  display:inline-flex; align-items:center; width:fit-content;
  padding:8px 15px; margin:0;
  border:1px solid rgba(255,200,74,.8); border-radius:999px;
  color:var(--ip-amber); background:rgba(255,200,74,.20);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
  backdrop-filter:blur(18px) saturate(135%);
  box-shadow:inset 0 1px rgba(255,255,255,.22),0 5px 20px rgba(216,155,43,.12);
  font:700 clamp(11px,.8vw,13px)/1.4 'Oxanium',sans-serif;
  letter-spacing:.14em; text-transform:uppercase;
}
.hse-ip__hero h1 { margin:clamp(22px,2.2vw,35px) 0 25px; font-size:clamp(43px,5vw,83px); color:#fff; }
.hse-ip__hero :is(.hse-ip__hero-lede,.hse-ip__hero-sub) {
  max-width:615px; color:rgba(255,255,255,.88);
  font:400 clamp(16px,1.35vw,20px)/1.5 'Sulphur Point',sans-serif;
}
.hse-ip__hero-sub { margin-top:15px!important; }
.hse-ip__hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:13px; margin-top:clamp(25px,2.8vw,38px); }
.hse-ip__hero-micro {
  display:inline-flex; align-items:center; align-self:flex-end; flex-wrap:nowrap; gap:10px;
  width:fit-content; max-width:calc(100% - 24px); margin:clamp(21px,2.7vw,35px) 12px 0 0;
  white-space:nowrap;
  padding:11px 15px; border:1px solid rgba(255,255,255,.26);
  border-radius:999px; color:var(--ip-light-amber);
  background:rgba(0,0,0,.54); -webkit-backdrop-filter:blur(19px) saturate(140%);
  backdrop-filter:blur(19px) saturate(140%);
  box-shadow:inset 0 1px rgba(255,255,255,.13),0 9px 26px rgba(0,0,0,.16);
  font:700 clamp(9px,.8vw,11px)/1.45 'Oxanium',sans-serif; letter-spacing:.08em;
}
.hse-ip__hero-micro .hse-ip__icon { display:block; flex:0 0 19px; width:19px; height:19px; stroke:var(--ip-amber); stroke-width:1.7; stroke-linejoin:round; stroke-linecap:round; fill:none; }
.hse-ip__micro-sep { width:3px; height:3px; flex:none; border-radius:50%; background:var(--ip-deep-amber); }
.hse-ip__hero-art { position:relative; min-width:0; height:clamp(440px,39vw,595px); }
.hse-ip__hero-photo {
  position:absolute; inset:12px; overflow:hidden; border-radius:var(--ip-radius-lg);
  border:2px solid rgba(255,200,74,.68);
  background:rgba(255,255,255,.07); -webkit-backdrop-filter:blur(13px) saturate(130%);
  backdrop-filter:blur(13px) saturate(130%);
  box-shadow:0 0 0 6px rgba(255,200,74,.16),inset 0 1px rgba(255,255,255,.25),0 20px 45px rgba(0,0,0,.29);
  transform:translate3d(0,0,0);
  transition:transform .46s var(--ip-ease),border-color .58s var(--ip-ease),box-shadow .58s var(--ip-ease);
}
.hse-ip__hero-photo:hover { transform:translate3d(0,-5px,0); border-color:rgba(255,255,255,.9); box-shadow:0 0 0 6px rgba(255,255,255,.3),0 24px 48px rgba(0,0,0,.3); }
.hse-ip__hero-photo:active { transform:translate3d(0,0,0); border-color:var(--ip-deep-amber); box-shadow:0 0 0 6px rgba(216,155,43,.3),0 17px 37px rgba(0,0,0,.25); }
.hse-ip__hero-photo img { display:block; position:absolute; top:-32px; left:0; width:100%; height:calc(100% + 64px); object-fit:cover; object-position:center; border-radius:calc(var(--ip-radius-lg) - 2px); translate:0 var(--ip-hero-parallax,0px); will-change:translate; filter:saturate(.9) contrast(1.03); transition:filter .55s var(--ip-ease); }
.hse-ip__hero-photo:active img { filter:grayscale(1) contrast(1.03); }
.hse-ip__hero-art::before { content:''; position:absolute; inset:-15px 32px 38px -21px; z-index:-1;
  border:2px solid rgba(255,200,74,.45); border-radius:calc(var(--ip-radius-lg) + 2px);
  box-shadow:0 0 0 3px rgba(255,200,74,.04); pointer-events:none; }
.hse-ip__photo-glass {
  position:absolute; z-index:2; top:0; right:-12px; left:auto; bottom:auto;
  display:flex; align-items:center; gap:14px; max-width:85%;
  padding:17px 22px; border:1px solid rgba(255,255,255,.34);
  border-radius:var(--ip-radius); color:#fff;
  background:rgba(20,21,20,.54); -webkit-backdrop-filter:blur(20px) saturate(150%);
  backdrop-filter:blur(20px) saturate(150%);
  box-shadow:inset 0 1px rgba(255,255,255,.17),0 20px 44px rgba(0,0,0,.22);
  font:400 clamp(13px,1vw,15px)/1.25 'Sulphur Point',sans-serif;
}
.hse-ip__photo-glass .hse-ip__icon { font-size:28px!important; color:var(--ip-amber); }
.hse-ip__photo-glass strong { font-weight:600; }
.hse-ip.has-js .hse-ip__photo-glass:not(.is-ip-tag-visible) { opacity:0; translate:36px 0; }
.hse-ip.has-js .hse-ip__photo-glass { transition:opacity .88s var(--ip-ease),translate .88s var(--ip-ease); }
.hse-ip.has-js .hse-ip__photo-glass.is-ip-tag-visible { opacity:1; translate:0 0; }

/* 04 | BUILT FOR APPLICATION: LIGHT CARD SURFACES / DEEP AMBER ACCENT */
.hse-ip__why { padding:clamp(78px,8.5vw,138px) 0; background:var(--ip-offwhite); color:var(--ip-ink); }
.hse-ip__section-top { display:flex; justify-content:space-between; align-items:center; gap:35px; }
.hse-ip__section-top h2,.hse-ip__catalogue-head h2,.hse-ip__schedule h2 { margin-top:13px; font-size:clamp(36px,4vw,66px); }
.hse-ip__why .hse-ip__overline,.hse-ip__benefit-no { color:var(--ip-deep-amber); }
.hse-ip__why h2 em { color:#666660; }
.hse-ip__section-details { display:grid; gap:13px; width:min(100%,520px); padding-top:3px; }
.hse-ip__section-details p { color:var(--ip-muted); font-size:clamp(16px,1.25vw,18px); line-height:1.6; }
.hse-ip__benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; margin-top:clamp(38px,4vw,65px); }
/* Stationary hover surface around the moving interior prevents edge-triggered jitter. */
.hse-ip__benefit { min-width:0; position:relative; min-height:260px; }
.hse-ip__benefit-surface {
  position:relative; isolation:isolate; height:100%; min-height:260px; overflow:hidden;
  padding:29px 29px 31px; border:1px solid rgba(255,255,255,.93);
  border-radius:var(--ip-radius-lg);
  background:linear-gradient(142deg,rgba(255,255,255,.91),rgba(232,234,231,.66));
  box-shadow:inset 0 1px rgba(255,255,255,.94),0 12px 30px rgba(24,29,29,.07);
  transform:translate3d(0,0,0);
  transition:transform .46s var(--ip-ease),border-color .36s ease,box-shadow .46s var(--ip-ease),background .36s ease;
}
.hse-ip__benefit-surface::after {
  content:''; position:absolute; width:74px; height:74px; right:-26px; bottom:-29px;
  border:1px solid rgba(216,155,43,.3); border-radius:12px;
  background:linear-gradient(145deg,rgba(255,200,74,.085),rgba(255,255,255,.05));
  transform:rotate(45deg); animation:ip-floating-diamond 9s ease-in-out infinite; pointer-events:none;
  transition:background .32s ease,border-color .32s ease,box-shadow .32s ease;
}
.hse-ip__benefit:nth-child(2) .hse-ip__benefit-surface::after { animation-delay:-3s; }
.hse-ip__benefit:nth-child(3) .hse-ip__benefit-surface::after { animation-delay:-6s; }
.hse-ip__benefit:active .hse-ip__benefit-surface::after { border-color:rgba(255,255,255,.93); background:linear-gradient(135deg,rgba(255,255,255,.63),rgba(255,255,255,.3)); box-shadow:inset 0 1px rgba(255,255,255,.82),0 6px 19px rgba(255,255,255,.18); }
@keyframes ip-floating-diamond { 0%,100% { translate:0 0; } 50% { translate:-5px -14px; } }
.hse-ip__benefit:hover .hse-ip__benefit-surface {
  transform:translate3d(0,-4px,0); border-color:rgba(216,155,43,.56);
  box-shadow:inset 0 1px rgba(255,255,255,.85),0 20px 39px rgba(25,25,25,.11);
}
.hse-ip__benefit:active .hse-ip__benefit-surface {
  transform:translate3d(0,0,0); border-color:rgba(216,155,43,.77);
  background:linear-gradient(122deg,#FFE09D 0%,#FFC84A 52%,#ECAF34 100%);
  box-shadow:inset 0 1px rgba(255,255,255,.59),0 10px 26px rgba(80,55,9,.15);
}
.hse-ip__benefit-no { display:inline-block; position:relative; z-index:1; font:700 11px/1.4 'Oxanium',sans-serif; letter-spacing:.1em; }
.hse-ip__benefit-icon {
  position:absolute; z-index:1; top:23px; right:25px;
  display:grid; place-items:center; width:44px; height:44px;
  border:1px solid rgba(216,155,43,.42); border-radius:12px;
  background:rgba(255,200,74,.13); color:var(--ip-deep-amber);
  transition:background-color .3s ease,border-color .3s ease,color .3s ease;
}
.hse-ip__benefit-icon .hse-ip__icon { font-size:23px!important; }
.hse-ip__benefit:hover .hse-ip__benefit-icon { background:var(--ip-amber); border-color:var(--ip-amber); color:#000; }
.hse-ip__benefit:active .hse-ip__benefit-icon { background:#000; border-color:#000; color:var(--ip-amber); }
.hse-ip__benefit:active .hse-ip__benefit-no { color:#000; }
.hse-ip__benefit h3 { position:relative; z-index:1; margin-top:65px; font-size:clamp(22px,2vw,29px); color:#171717; }
.hse-ip__benefit p { position:relative; z-index:1; margin-top:11px; max-width:330px; font-size:15px; line-height:1.6; color:#555650; }
.hse-ip__benefit:active :is(h3,p) { color:#111; }

/* 05 | CATALOGUE: READABLE TYPE, GLASS FILTERS, DISTINCT BRAND-COLOURED COURSE TILES */
.hse-ip__catalogue { padding:clamp(85px,8vw,136px) 0 clamp(94px,9vw,148px); background:radial-gradient(ellipse at 85% 5%,rgba(255,200,74,.09),transparent 45%),#0C0D0C; }
.hse-ip__catalogue-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,440px); align-items:start; gap:clamp(30px,7vw,110px); }
.hse-ip__catalogue .hse-ip__overline { color:var(--ip-amber); }
.hse-ip__catalogue-head h2 { color:#fff; }
.hse-ip__catalogue-head h2 em { color:var(--ip-amber); }
.hse-ip__catalogue-actions { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:24px; padding-top:0; }
.hse-ip__catalogue-button-slot { display:inline-flex; align-self:flex-start; padding:5px 0 6px; }
.hse-ip__catalogue-button-slot .hse-ip__button:hover { transform:none; }
.hse-ip__catalogue-button-slot:hover .hse-ip__button { transform:translate3d(0,-3px,0); }
.hse-ip__catalogue-button-slot:active .hse-ip__button { transform:translate3d(0,0,0); }
.hse-ip__catalogue-actions p { max-width:440px; color:rgba(255,255,255,.86); font:400 clamp(16px,1.25vw,18px)/1.6 'Sulphur Point',sans-serif; }
.hse-ip__filterbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px 20px;
  margin-top:clamp(43px,5vw,80px); padding:23px 0; overflow:visible; border-top:1px solid rgba(255,255,255,.19); border-bottom:1px solid rgba(255,255,255,.19); }
.hse-ip__filter-pills {
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  min-width:0; padding-block:12px; overflow:visible;
}
/* Draw complete pill outlines above the contents on a stationary, non-blurred layer.
   This avoids Safari's bottom-edge border/compositing artefacts at any breakpoint. */
.hse-ip .hse-ip__filter {
  position:relative; isolation:isolate; display:inline-flex; flex:0 0 auto;
  align-items:center; justify-content:center; min-height:44px;
  margin:0; padding:0; overflow:visible; -webkit-appearance:none; appearance:none;
  border:0; border-radius:10px;
  background:rgba(255,255,255,.085);
  color:rgba(255,255,255,.87);
  box-shadow:inset 0 1px rgba(255,255,255,.13);
  font:600 12px/1.25 'Oxanium',sans-serif; white-space:nowrap; cursor:pointer;
  transition:background-color .28s ease,color .28s ease,box-shadow .3s ease;
}
.hse-ip .hse-ip__filter::after {
  content:''; position:absolute; inset:0; z-index:3;
  border:2px solid rgba(255,255,255,.58); border-radius:inherit;
  pointer-events:none; background:transparent;
  transition:border-color .28s ease;
}
.hse-ip__filter-surface {
  position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:10px 14px; margin:0; border:0; border-radius:9px;
  background:transparent; color:inherit;
  transform:translate3d(0,0,0); transition:transform .35s var(--ip-ease);
}
.hse-ip__filter-count { margin-left:8px; opacity:.7; font-size:10px; }
.hse-ip .hse-ip__filter:hover {
  background:var(--ip-amber); color:#000;
  box-shadow:inset 0 1px rgba(255,255,255,.18),0 10px 21px rgba(0,0,0,.15);
}
.hse-ip .hse-ip__filter:hover::after { border-color:var(--ip-amber); }
.hse-ip__filter:hover .hse-ip__filter-surface { transform:translate3d(0,-2px,0); }
.hse-ip .hse-ip__filter:active { background:rgba(255,200,74,.26); color:#fff; }
.hse-ip__filter:active .hse-ip__filter-surface { transform:translate3d(0,0,0); }
.hse-ip .hse-ip__filter.is-active {
  background:rgba(255,200,74,.24); color:#fff;
  box-shadow:inset 0 1px rgba(255,248,231,.12),0 5px 16px rgba(216,155,43,.1);
}
.hse-ip .hse-ip__filter.is-active::after { border-color:rgba(255,200,74,.86); }
.hse-ip .hse-ip__filter.is-active:hover { background:var(--ip-amber); color:#000; }
.hse-ip .hse-ip__filter.is-active:hover::after { border-color:var(--ip-amber); }
.hse-ip .hse-ip__filter.is-active:active { background:rgba(255,200,74,.42); color:#fff; }
.hse-ip__search {
  position:relative; box-sizing:border-box; display:flex; align-items:center; gap:10px;
  flex:0 0 265px; width:265px; max-width:100%; min-width:0;
  height:46px; min-height:46px; max-height:46px; padding:0 13px; margin:0;
  overflow:hidden; border:2px solid rgba(255,255,255,.69); border-radius:10px;
  background:rgba(255,255,255,.19); color:#fff;
  -webkit-backdrop-filter:blur(18px) saturate(145%); backdrop-filter:blur(18px) saturate(145%);
  box-shadow:inset 0 1px rgba(255,255,255,.19);
  transition:background-color .3s ease,border-color .3s ease,box-shadow .3s ease;
}
/* Large desktop: share the same two-column guides as the course heading, so
   the search field begins below the description/button and fills that column. */
@media (min-width:1700px) {
  .hse-ip__schedule { --ip-schedule-intro-max:1000px; }
  .hse-ip__filterbar {
    display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,440px);
    column-gap:clamp(30px,7vw,110px); align-items:center;
  }
  .hse-ip__filter-pills { flex-wrap:nowrap; }
  .hse-ip__search { grid-column:2; width:100%; max-width:none; flex:initial; }
}
.hse-ip__search .hse-ip__icon { display:inline-grid!important; align-items:center; flex:0 0 20px;
  width:20px; font-size:19px!important; color:rgba(255,255,255,.95); }
/* Explicit form reset: WordPress themes can force a white native search input inside the glass field. */
.hse-ip .hse-ip__search input#hse-ip-search[type='search'] {
  box-sizing:border-box!important; -webkit-appearance:none!important; appearance:none!important;
  display:block!important; flex:1 1 auto; width:0!important; min-width:0!important;
  height:100%!important; min-height:0!important; max-height:100%!important;
  padding:0!important; margin:0!important; border:0!important; border-radius:0!important;
  outline:0!important; background:transparent!important; background-color:transparent!important;
  background-image:none!important; box-shadow:none!important; color:#fff!important;
  font:400 13px/1.35 'Sulphur Point',sans-serif!important; -webkit-text-fill-color:#fff;
}
.hse-ip .hse-ip__search input#hse-ip-search::placeholder { color:rgba(255,255,255,.83)!important; opacity:1; }
.hse-ip__search:focus-within { border-color:var(--ip-bright-amber); background:rgba(255,200,74,.21);
  box-shadow:inset 0 1px rgba(255,255,255,.23),0 0 0 3px rgba(255,200,74,.18),0 0 18px rgba(255,200,74,.19); }
.hse-ip__search:has(input:not(:placeholder-shown)) { border-color:var(--ip-bright-amber); background:rgba(255,200,74,.24);
  box-shadow:inset 0 1px rgba(255,255,255,.3),0 0 0 3px rgba(255,200,74,.18),0 0 19px rgba(255,200,74,.22); }
/* Custom clear control ensures a bright white X on browsers that draw a black native X. */
.hse-ip .hse-ip__search input#hse-ip-search::-webkit-search-cancel-button { -webkit-appearance:none; appearance:none; display:none; }
.hse-ip .hse-ip__search input#hse-ip-search:focus-visible { outline:none!important; }
.hse-ip .hse-ip__search .hse-ip__search-clear { appearance:none; display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px;
  margin:0; padding:0; border:0; border-radius:7px; background:rgba(0,0,0,.22); color:#fff;
  box-shadow:none; cursor:pointer; transition:background-color .2s ease; }
.hse-ip .hse-ip__search .hse-ip__search-clear[hidden] { display:none!important; }
.hse-ip__search-clear .hse-ip__icon { color:#fff!important; font-size:20px!important; }
.hse-ip .hse-ip__search .hse-ip__search-clear:hover { background:rgba(0,0,0,.42); }
.hse-ip .hse-ip__search .hse-ip__search-clear:active { background:rgba(255,255,255,.2); }
.hse-ip__result-count { margin:28px 0 33px!important; color:rgba(255,255,255,.72); font:700 11px/1.5 'Oxanium',sans-serif; letter-spacing:.095em; text-transform:uppercase; }
.hse-ip__course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; }
.hse-ip__course { position:relative; min-width:0; min-height:485px; --spot-x:50%; --spot-y:15%; --card-top:#303030; --card-bottom:#171717; --card-accent:#FFC84A; --card-wash:rgba(255,200,74,.075); }
.hse-ip__course:nth-child(1) { --card-top:#25282A; --card-bottom:#101214; --card-accent:#FFC84A; --card-wash:rgba(255,200,74,.075); }
.hse-ip__course:nth-child(2) { --card-top:#383530; --card-bottom:#171513; --card-accent:#FFD578; --card-wash:rgba(255,213,120,.11); }
.hse-ip__course:nth-child(3) { --card-top:#222222; --card-bottom:#090909; --card-accent:#FAD995; --card-wash:rgba(250,217,149,.075); --ip-course-image-position:50% 50%; }
.hse-ip__course:nth-child(4) { --card-top:#404040; --card-bottom:#1F1F1F; --card-accent:#FFC84A; --card-wash:rgba(255,255,255,.085); }
.hse-ip__course:nth-child(5) { --card-top:#383123; --card-bottom:#15130E; --card-accent:#EFB43B; --card-wash:rgba(239,180,59,.1); --ip-course-image-position:50% 50%; }
.hse-ip__course:nth-child(6) { --card-top:#34383A; --card-bottom:#141718; --card-accent:#FAD995; --card-wash:rgba(255,255,255,.055); }
.hse-ip__course:nth-child(7) { --card-top:#302D28; --card-bottom:#0E0E0D; --card-accent:#FFD578; --card-wash:rgba(255,213,120,.12); --ip-course-image-position:10% 38%; }
.hse-ip__course:nth-child(8) { --card-top:#2C2C2C; --card-bottom:#1D1B17; --card-accent:#FFC84A; --card-wash:rgba(216,155,43,.08); }
.hse-ip__course:nth-child(9) { --card-top:#3B3933; --card-bottom:#171613; --card-accent:#F5DDAF; --card-wash:rgba(245,221,175,.13); --ip-course-image-position:5% 15%; }
.hse-ip__course:nth-child(10) { --card-top:#303233; --card-bottom:#111313; --card-accent:#EFB43B; --card-wash:rgba(255,255,255,.07); --ip-course-image-position:5% 14%; }
.hse-ip__course:nth-child(11) { --card-top:#32291A; --card-bottom:#17130E; --card-accent:#FFD578; --card-wash:rgba(255,200,74,.14); --ip-course-image-position:50% 30%; }
.hse-ip__course:nth-child(12) { --card-top:#292D2E; --card-bottom:#101414; --card-accent:#FAD995; --card-wash:rgba(250,217,149,.095); --ip-course-image-position:center; }
.hse-ip__course:nth-child(13) { --card-top:#38312A; --card-bottom:#151310; --card-accent:#EFB43B; --card-wash:rgba(239,180,59,.115); --ip-course-image-position:center; }
.hse-ip__course:nth-child(14) { --card-top:#2B302D; --card-bottom:#111613; --card-accent:#FAD995; --card-wash:rgba(250,217,149,.09); --ip-course-image-position:center; }
/* Outer article is stationary; surface alone lifts without reveal/hover collisions. */
.hse-ip__course-surface {
  position:relative; isolation:isolate; display:flex; flex-direction:column;
  min-height:485px; height:100%; padding:24px 25px 26px; overflow:hidden;
  border:1px solid rgba(255,255,255,.25); border-radius:var(--ip-radius-lg);
  background:radial-gradient(ellipse at 85% 10%,var(--card-wash),transparent 52%),
    linear-gradient(145deg,var(--card-top),var(--card-bottom));
  -webkit-backdrop-filter:blur(19px) saturate(135%); backdrop-filter:blur(19px) saturate(135%);
  box-shadow:inset 0 1px rgba(255,255,255,.13),0 15px 37px rgba(0,0,0,.25);
  transform:translate3d(0,0,0);
  transition:transform .46s var(--ip-ease),border-color .4s ease,box-shadow .46s var(--ip-ease),background .4s ease;
}
/* Actual course imagery is activated only when a customer selects a card; it is never displayed initially.
   Image URLs live in each article's data-course-image attribute for easy replacement. */
.hse-ip__course-surface::before {
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:linear-gradient(180deg,rgba(0,0,0,.62),rgba(0,0,0,.78) 60%,rgba(0,0,0,.91)),var(--ip-course-image,none);
  background-position:center,var(--ip-course-image-position,center); background-repeat:no-repeat; background-size:cover;
  opacity:0; transition:opacity .52s ease;
}
.hse-ip__course-preview-trigger { position:absolute; inset:0; z-index:4; border:0; border-radius:inherit;
  background:transparent; box-shadow:none; cursor:pointer; }
.hse-ip .hse-ip__course-preview-trigger:focus-visible { outline:3px solid var(--ip-bright-amber); outline-offset:-6px; }
.hse-ip__course-surface::after {
  content:''; position:absolute; z-index:0; right:-67px; top:110px;
  width:132px; height:132px; border:1px solid var(--card-accent); border-radius:19px;
  transform:rotate(45deg); opacity:.24; pointer-events:none;
  background:linear-gradient(125deg,var(--card-wash),transparent 80%);
  animation:ip-course-edge-float 11s ease-in-out infinite;
  transition:opacity .32s ease;
}
.hse-ip__course:nth-child(3n+2) .hse-ip__course-surface::after { animation-delay:-4s; }
.hse-ip__course:nth-child(3n+3) .hse-ip__course-surface::after { animation-delay:-7s; }
@keyframes ip-course-edge-float { 0%,100% { translate:0 0; } 50% { translate:-6px -15px; } }
.hse-ip__course-glow { position:absolute; z-index:0; inset:0; pointer-events:none; border-radius:inherit;
  background:radial-gradient(320px circle at var(--spot-x) var(--spot-y),rgba(255,200,74,.15),transparent 75%);
  opacity:0; transition:opacity .38s ease; }
.hse-ip__course:hover .hse-ip__course-surface {
  transform:translate3d(0,-5px,0); border-color:rgba(255,200,74,.72);
  box-shadow:inset 0 1px rgba(255,213,120,.2),0 25px 50px rgba(0,0,0,.35);
}
.hse-ip__course:hover .hse-ip__course-glow { opacity:1; }
.hse-ip__course:active .hse-ip__course-glow { opacity:1; background:radial-gradient(340px circle at var(--spot-x) var(--spot-y),rgba(255,200,74,.44),rgba(255,200,74,.19) 47%,transparent 81%); }
.hse-ip__course.is-preview-active .hse-ip__course-glow { opacity:0; }
.hse-ip__course:is(:active,.is-preview-active) .hse-ip__course-surface { transform:translate3d(0,0,0); border-color:var(--ip-bright-amber); box-shadow:inset 0 1px rgba(255,255,255,.3),0 0 0 2px rgba(255,200,74,.5),0 0 34px rgba(255,200,74,.43),0 11px 27px rgba(0,0,0,.26); }
.hse-ip__course:focus-within .hse-ip__course-surface { border-color:var(--ip-amber); }
.hse-ip__course :is(.hse-ip__course-top,.hse-ip__course-symbol,.hse-ip__course-meta,h3,.hse-ip__course-copy,.hse-ip__course-facts,.hse-ip__course-bottom) { position:relative; z-index:2; }
.hse-ip__course .hse-ip__course-bottom { z-index:5; pointer-events:none; }
.hse-ip__course-bottom .hse-ip__course-cta,.hse-ip__course-bottom .hse-ip__course-details { position:relative; z-index:6; pointer-events:auto; }
/* Selected photo mode retains the complete original details, with no extra right-hand diamond. */
.hse-ip__course.is-preview-active .hse-ip__course-surface::before { opacity:1; }
.hse-ip__course.is-preview-active .hse-ip__course-surface::after { opacity:0; }
.hse-ip__course.is-preview-active h3 { text-shadow:0 2px 13px rgba(0,0,0,.7); }
.hse-ip__course.is-preview-active :is(.hse-ip__course-copy,.hse-ip__course-facts,.hse-ip__course-category,.hse-ip__course-id,.hse-ip__course-code) { text-shadow:0 2px 12px rgba(0,0,0,.9); }
.hse-ip__course.is-preview-active .hse-ip__course-bottom { border-top-color:rgba(255,255,255,.42); }
.hse-ip__course.is-preview-active .hse-ip__price strong { text-shadow:0 2px 13px rgba(0,0,0,.8); }
.hse-ip__course.is-preview-active .hse-ip__course-cta { background:rgba(16,16,16,.54); border-color:rgba(255,200,74,.72); color:var(--ip-bright-amber); -webkit-backdrop-filter:blur(15px); backdrop-filter:blur(15px); }
.hse-ip__course.is-preview-active .hse-ip__course-cta:hover { background:var(--ip-amber); border-color:var(--ip-amber); color:#000; }
.hse-ip__course.is-preview-active .hse-ip__course-cta:active { background:#fff; border-color:#fff; color:#000; }

.hse-ip__course-top { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.hse-ip__course-id { color:rgba(255,255,255,.64); font:700 10px/1.3 'Oxanium',sans-serif; letter-spacing:.16em; }
.hse-ip__course-code { min-width:40px; padding:7px 9px; text-align:center;
  color:var(--card-accent); border:1px solid color-mix(in srgb,var(--card-accent) 38%,transparent);
  border-radius:7px; background:rgba(255,255,255,.045);
  font:700 10px/1.2 'Oxanium',sans-serif; letter-spacing:.06em; }
.hse-ip__course-symbol { display:grid; place-items:center; height:100px; flex:0 0 100px; isolation:isolate; }
.hse-ip__course-symbol::before,.hse-ip__course-symbol::after {
  content:''; position:absolute; left:50%; top:50%;
  width:86px; height:86px; margin-left:-43px; margin-top:-43px;
  border:1px solid color-mix(in srgb,var(--card-accent) 58%,transparent);
  border-radius:14px; background:color-mix(in srgb,var(--card-accent) 8%,transparent);
  transform:rotate(45deg); transform-origin:center;
  transition:transform .66s var(--ip-ease),border-color .4s ease,background-color .4s ease;
}
.hse-ip__course-symbol::after {
  width:60px; height:60px; margin-left:-30px; margin-top:-30px;
  transform:rotate(0); border-radius:10px;
  border-color:color-mix(in srgb,var(--card-accent) 45%,transparent);
  background:rgba(0,0,0,.14);
}
/* On hover OUTER diamond becomes square, INNER square becomes diamond. */
.hse-ip__course:hover .hse-ip__course-symbol::before { transform:rotate(0); border-color:var(--card-accent); }
.hse-ip__course:hover .hse-ip__course-symbol::after { transform:rotate(45deg); border-color:var(--card-accent); background:color-mix(in srgb,var(--card-accent) 12%,transparent); }
.hse-ip__course:is(:active,.is-preview-active) .hse-ip__course-symbol::after { transform:rotate(45deg); border-color:var(--ip-amber); background:var(--ip-amber); }
.hse-ip__course-symbol > .hse-ip__course-graphic {
  position:relative; z-index:2; display:grid; place-items:center; width:55px; height:55px;
  color:var(--card-accent); transition:color .35s ease,transform .45s var(--ip-ease);
}
.hse-ip__course-graphic svg { display:block; width:39px; height:39px; overflow:visible; }
.hse-ip__course:hover .hse-ip__course-symbol > span { transform:scale(1.035); }
.hse-ip__course:is(:active,.is-preview-active) .hse-ip__course-symbol > span { color:#000; transform:scale(1); }
.hse-ip__course-meta { display:flex; flex-wrap:wrap; align-items:center; min-height:21px; }
.hse-ip__course-category { color:var(--card-accent); font:700 10px/1.4 'Oxanium',sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.hse-ip__course h3 { min-height:51px; margin-top:12px; font-size:clamp(21px,1.9vw,27px); color:#fff; }
.hse-ip__course-copy { margin-top:7px; max-width:360px; min-height:59px;
  color:rgba(255,255,255,.74); font-size:14px; line-height:1.55; }
.hse-ip__course-facts { display:grid; gap:12px; margin-top:18px; margin-bottom:22px; }
.hse-ip__course-facts > div { display:flex; align-items:flex-start; gap:10px; min-width:0; }
.hse-ip__course-facts .hse-ip__icon { font-size:20px!important; margin-top:1px; color:var(--card-accent); }
.hse-ip__course-facts > div > span:not(.hse-ip__icon) { display:flex; flex-direction:column; min-width:0; }
.hse-ip__course-facts small { color:rgba(255,255,255,.61); font:700 9px/1.4 'Oxanium',sans-serif; letter-spacing:.11em; }
.hse-ip__course-facts strong { color:#f9f9f9; font:500 12px/1.4 'Sulphur Point',sans-serif; overflow-wrap:anywhere; }
.hse-ip__course-bottom { display:flex; align-items:end; justify-content:space-between; gap:12px;
  margin-top:auto; padding-top:21px; border-top:1px solid rgba(255,255,255,.19); }
.hse-ip__course-bottom--with-details { flex-wrap:wrap; container:ip-course-actions / inline-size; }
.hse-ip__course-actions { display:flex; flex:0 1 auto; justify-content:flex-end; align-items:center; gap:7px; min-width:0; margin-left:auto; }
/* Tablet and desktop: keep the two buttons directly beside one another when
   the footer has room. On narrower cards, they occupy their own full-width
   row, with Course Details aligned left and View Dates aligned right. */
@media (min-width:701px) {
  @container ip-course-actions (max-width:343px) {
    .hse-ip__course-actions { flex-basis:100%; justify-content:space-between; margin-left:0; }
  }
}
.hse-ip__course-details {
  display:inline-flex; align-items:center; justify-content:center; flex:none;
  min-height:44px; padding:10px 12px;
  border:1px solid rgba(255,255,255,.72); border-radius:10px;
  background:rgba(255,255,255,.14); color:#fff;
  -webkit-backdrop-filter:blur(16px) saturate(135%); backdrop-filter:blur(16px) saturate(135%);
  box-shadow:inset 0 1px rgba(255,255,255,.18);
  font:700 10px/1.25 'Oxanium',sans-serif; letter-spacing:.025em; white-space:nowrap;
  transition:transform .28s var(--ip-ease),background-color .28s ease,border-color .28s ease,color .28s ease,box-shadow .28s ease;
}
.hse-ip__course-details:hover { transform:translateY(-2px); background:#000; color:#fff; border-color:rgba(255,255,255,.75); box-shadow:0 8px 20px rgba(0,0,0,.22); }
.hse-ip__course-details:active { transform:translateY(0); background:#fff; color:#000; border-color:#C5CBCD; box-shadow:inset 0 1px rgba(255,255,255,.85); }
.hse-ip__price small { display:block; color:rgba(255,255,255,.65); font:700 9px/1.45 'Oxanium',sans-serif; letter-spacing:.08em; white-space:nowrap; }
.hse-ip__price small span { color:var(--card-accent); margin-left:4px; }
.hse-ip__price strong { display:block; margin-top:5px; color:#fff;
  font:600 31px/1.1 'Oxanium',sans-serif; letter-spacing:-.045em; }
.hse-ip__course-cta { position:relative; display:inline-flex; align-items:center; justify-content:center; flex:none;
  min-height:44px; padding:10px 13px;
  border:1px solid rgba(255,200,74,.5); border-radius:10px;
  background:rgba(255,200,74,.12); color:var(--ip-bright-amber);
  font:700 11px/1.25 'Oxanium',sans-serif; letter-spacing:.04em; white-space:nowrap;
  transition:transform .28s var(--ip-ease),background-color .28s ease,border-color .28s ease,color .28s ease,box-shadow .28s ease;
}
.hse-ip__course-cta:hover { background:var(--ip-amber); color:#000; border-color:var(--ip-amber);
  transform:translateY(-2px); box-shadow:0 9px 21px rgba(255,200,74,.17); }
.hse-ip__course-cta:active { background:#fff; border-color:#fff; color:#000; transform:translateY(0); box-shadow:none; }
.hse-ip__empty { margin-top:26px; padding:36px; border:1px solid rgba(255,200,74,.31); border-radius:14px;
  background:rgba(255,255,255,.05); text-align:center; color:#fff; }
.hse-ip__empty strong { font:600 20px/1.3 'Oxanium',sans-serif; }
.hse-ip__empty p { color:rgba(255,255,255,.72); margin:8px 0 20px; }

.hse-ip__empty button {
  -webkit-appearance:none;
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:6px 0 8px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#000;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}


/* SHOW ALL COURSES | STATIONARY AMBER BUTTON */
.hse-ip__reset-surface {
  position:relative;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:12px 17px;
  overflow:hidden;
  border:1px solid transparent;
  border-radius:10px;
  background:var(--ip-amber);
  color:#000;
  font:700 12px/1.25 'Oxanium',sans-serif;
  transform:none;
  box-shadow:
    inset 0 1px rgba(255,255,255,.24),
    0 6px 18px rgba(216,155,43,.10);
  transition:
    color .3s ease,
    border-color .3s ease,
    box-shadow .4s ease;
}

/* TWO INDEPENDENT LEFT-TO-RIGHT WIPE LAYERS */
.hse-ip__reset-surface::before,
.hse-ip__reset-surface::after {
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  transform:translateX(0);
  transition:transform .46s cubic-bezier(.4,0,.2,1);
}

/* FROSTED AMBER GLASS LAYER */
.hse-ip__reset-surface::before {
  z-index:-2;
  background:linear-gradient(
    115deg,
    rgba(134,91,20,.88),
    rgba(103,72,17,.90)
  );
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  backdrop-filter:blur(18px) saturate(140%);
  box-shadow:inset 0 1px rgba(255,255,255,.25);
}

/* INITIAL SOLID AMBER LAYER */
.hse-ip__reset-surface::after {
  z-index:-1;
  background:var(--ip-amber);
}

/* HOVER | AMBER SLIDES RIGHT, REVEALING FROSTED GLASS */
.hse-ip__empty button:hover .hse-ip__reset-surface {
  color:#fff;
  border-color:rgba(255,200,74,.90);
  box-shadow:
    inset 0 1px rgba(255,255,255,.27),
    0 0 0 1px rgba(255,200,74,.16),
    0 8px 24px rgba(216,155,43,.20);
}

.hse-ip__empty button:is(:hover,:active,.is-resetting)
.hse-ip__reset-surface::after {
  transform:translateX(103%);
}

/* ACTIVE | FROSTED GLASS SLIDES RIGHT, REVEALING INITIAL AMBER */
.hse-ip__empty button:is(:active,.is-resetting)
.hse-ip__reset-surface::before {
  transform:translateX(-103%);
}

.hse-ip__empty button:is(:active,.is-resetting)
.hse-ip__reset-surface {
  color:#000;
  border-color:transparent;
  box-shadow:
    inset 0 1px rgba(255,255,255,.24),
    0 6px 18px rgba(216,155,43,.10);
}

.hse-ip__price-note {
  position:relative;
  isolation:isolate;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  width:fit-content;
  max-width:100%;
  gap:11px;
  margin:clamp(27px,3vw,40px) 0 12px!important;
  padding:17px 21px;
  overflow:visible;
  border:0;
  border-radius:999px;
  background:transparent;
  box-shadow:none;
  color:rgba(255,255,255,.9);
  font:400 13px/1.5 'Sulphur Point',sans-serif;
}

/* Frosted-white background, separate from the border */
.hse-ip__price-note::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  background:rgba(255,255,255,.18);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
  backdrop-filter:blur(18px) saturate(135%);
}

/* Independent silver outline, unaffected by blur rendering */
.hse-ip__price-note::after {
  content:'';
  position:absolute;
  inset:0;
  z-index:2;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(196,204,211,.9);
  pointer-events:none;
}

.hse-ip__price-note .hse-ip__icon { margin-top:1px; color:#fff; font-size:20px!important; }

/* 06 | WHITE COURSE REGISTRATION + WHITE EVENTLY CALENDAR BACKGROUND */
.hse-ip__schedule { padding:clamp(75px,7vw,115px) 0 38px; background:#fff; color:var(--ip-ink); }
.hse-ip__schedule .hse-ip__overline { color:var(--ip-deep-amber); }
.hse-ip__schedule h2 { color:var(--ip-ink); }
.hse-ip__schedule h2 em { color:#666660; }
.hse-ip__schedule-wrap { position:relative; isolation:isolate; }
.hse-ip__schedule-intro { position:relative; z-index:1; max-width:min(100%,clamp(805px,80vw,var(--ip-schedule-intro-max,950px))); }
.hse-ip__schedule-brandmark {
  position:absolute; z-index:0; top:8px; right:clamp(0px,1.2vw,24px);
  display:grid; place-items:center; width:clamp(170px,22vw,295px);
  aspect-ratio:1; isolation:isolate; pointer-events:none;
}
.hse-ip__schedule-brandmark-diamond {
  position:relative; z-index:1; display:grid; place-items:center; width:80%; height:80%;
  border:2px solid rgba(255,255,255,.94); border-radius:clamp(18px,2vw,28px);
  transform:rotate(45deg);
  background:linear-gradient(135deg,rgba(255,255,255,.97),rgba(255,255,255,.82));
  -webkit-backdrop-filter:blur(14px) saturate(130%); backdrop-filter:blur(14px) saturate(130%);
  box-shadow:inset 0 1px rgba(255,255,255,.98),0 0 0 1px rgba(216,155,43,.10),
    0 15px 39px rgba(216,155,43,.14),0 0 38px rgba(255,200,74,.18);
  animation:ip-schedule-brand-float 14s ease-in-out -2s infinite;
}
.hse-ip__schedule-brandmark-spark {
  position:absolute; z-index:0; display:block; aspect-ratio:1; transform:rotate(45deg);
  border:1px solid rgba(255,255,255,.98); border-radius:clamp(9px,1.2vw,16px);
  background:linear-gradient(135deg,rgba(255,255,255,.93),rgba(230,232,231,.60));
  -webkit-backdrop-filter:blur(17px) saturate(135%); backdrop-filter:blur(17px) saturate(135%);
  box-shadow:inset 0 1px rgba(255,255,255,1),0 0 0 1px rgba(66,66,66,.08),
    0 11px 24px rgba(216,155,43,.11);
  animation:ip-schedule-spark-float 10s ease-in-out -3s infinite;
}
.hse-ip__schedule-brandmark-spark--one { width:24%; top:-24%; left:-30%; }
.hse-ip__schedule-brandmark-spark--two { width:25%; right:-16%; bottom:-18%; animation:ip-schedule-spark-float-two 17s ease-in-out -9s infinite; }
@keyframes ip-schedule-spark-float {
  0%,100% { transform:translate3d(0,0,0) rotate(45deg); }
  50% { transform:translate3d(5px,-11px,0) rotate(45deg); }
}
@keyframes ip-schedule-spark-float-two {
  0%,100% { transform:translate3d(0,0,0) rotate(45deg); }
  50% { transform:translate3d(-8px,7px,0) rotate(45deg); }
}
.hse-ip__schedule-brandmark-image {
  display:block; width:88%; height:88%; max-width:none; object-fit:contain;
  transform:rotate(-45deg); opacity:.96;
}
@keyframes ip-schedule-brand-float {
  0%,100% { transform:translate3d(0,0,0) rotate(45deg); }
  50% { transform:translate3d(-7px,-13px,0) rotate(45deg); }
}
.hse-ip__schedule-intro p { max-width:min(100%,clamp(675px,68vw,1100px)); margin-top:23px; color:var(--ip-muted); font:400 clamp(16px,1.25vw,18px)/1.6 'Sulphur Point',sans-serif; }
.hse-ip__schedule-intro .hse-ip__schedule-group-note { margin-top:14px; }
.hse-ip__schedule-group-link,
.hse-ip__schedule-group-link:visited {
  display:inline-block;
  color:var(--ip-deep-amber);
  font-weight:700;
  text-decoration:none;
  transform:translate3d(0,0,0);
  transition:transform .35s var(--ip-ease),color .27s ease;
}
.hse-ip__schedule-group-link:hover {
  color:var(--ip-amber);
  text-decoration:none;
  transform:translate3d(0,-2px,0);
}
.hse-ip__schedule-group-link:active {
  color:var(--ip-black);
  text-decoration:none;
  transform:translate3d(0,0,0);
}
.hse-ip__schedule-steps { display:flex; flex-wrap:wrap; gap:12px; margin-top:36px; }
/* Each outside capsule stays still as a hit area; the inset surface animates. */
.hse-ip__schedule-steps > .hse-ip__step { display:inline-flex; flex:0 0 auto; align-items:center; padding:6px 0 8px; }
.hse-ip__step-surface { display:inline-flex; align-items:center; gap:9px; min-height:47px;
  padding:8px 12px 8px 8px; border:1px solid rgba(255,255,255,.98); border-radius:999px;
  background:#fff; color:#161616; font:700 11px/1.25 'Oxanium',sans-serif; letter-spacing:.04em;
  box-shadow:inset 0 1px rgba(255,255,255,.95),0 4px 18px rgba(0,0,0,.075);
  transform:translate3d(0,0,0); transition:transform .39s var(--ip-ease),border-color .3s ease,
  background-color .3s ease,box-shadow .39s var(--ip-ease); }
.hse-ip__schedule-steps b { display:grid; place-items:center; width:30px; height:30px; border-radius:50%;
  border:1px solid #fff; background:#fff; color:#000; box-shadow:0 0 0 1px rgba(0,0,0,.12);
  font:700 11px/1 'Oxanium',sans-serif; transition:background-color .3s ease,border-color .3s ease,color .3s ease; }
.hse-ip__schedule-steps > .hse-ip__step:hover .hse-ip__step-surface { transform:translate3d(0,-3px,0);
  border-color:var(--ip-amber); box-shadow:0 10px 25px rgba(216,155,43,.12); }
.hse-ip__schedule-steps > .hse-ip__step:active .hse-ip__step-surface { transform:translate3d(0,0,0);
  border-color:var(--ip-amber); background:var(--ip-amber); color:#000; box-shadow:0 4px 13px rgba(216,155,43,.14); }
.hse-ip__schedule-steps > .hse-ip__step:active b { border-color:#fff; background:var(--ip-amber); color:#000; }
/* Preserve the staggered left-to-right reveal on the stationary outside wrappers. */
.hse-ip.has-js .hse-ip__schedule-steps > .hse-ip__step { translate:-30px 0; }
.hse-ip.has-js .hse-ip__schedule-steps > .hse-ip__step.is-visible { translate:0 0; }
.hse-ip__calendar-anchor { display:flex; align-items:center; gap:10px; margin-top:53px; padding:19px 0 13px;
  border-top:1px solid rgba(216,155,43,.42); color:#242424;
  font:700 11px/1.4 'Oxanium',sans-serif; letter-spacing:.1em; }
.hse-ip__calendar-anchor .hse-ip__icon { color:var(--ip-deep-amber); font-size:23px!important; }
.hse-ip__calendar-live { margin-left:auto; color:var(--ip-deep-amber); }
/* Live WPEvently FullCalendar on the In-Person Training page.
   Style the real .fc root regardless of how the shortcode/plugin wraps it.
   These are the original integrated calendar rules, not appended patches. */


/* Shared legend: labels communicate the location in addition to colour. */
body:has(#hse-in-person-training) .hse-ip-calendar-legend {
  display:flex; align-items:center; flex-wrap:wrap; gap:11px 22px;
  width:min(calc(100% - clamp(40px,9.2vw,172px)),1520px); max-width:1520px; margin:0 auto 18px; padding:0 clamp(14px,2.2vw,32px);
  font:600 12px/1.4 'Oxanium',Arial,sans-serif;
}
body:has(#hse-in-person-training) .hse-ip-calendar-legend__label { color:#4A4A48; letter-spacing:.04em; text-transform:uppercase; }
body:has(#hse-in-person-training) .hse-ip-calendar-legend__item { display:inline-flex; align-items:center; gap:9px; color:#242424; }
body:has(#hse-in-person-training) .hse-ip-calendar-legend__swatch {
  display:inline-block; width:20px; height:15px; border-radius:3px;
  border:1px solid rgba(0,0,0,.2);
}
body:has(#hse-in-person-training) .hse-ip-calendar-legend__item--vaughan .hse-ip-calendar-legend__swatch { background:#FFC84A; border-color:#D89B2B; }
body:has(#hse-in-person-training) .hse-ip-calendar-legend__item--ottawa .hse-ip-calendar-legend__swatch { background:#242424; border-color:#B8B8B4; }
/* Native FullCalendar CSS variables, type, and layout. */
body:has(#hse-in-person-training) .fc {
  --ip-cal-amber:#FFC84A;
  --ip-cal-bright:#FFD578;
  --ip-cal-dark:#242424;
  --ip-cal-grey:#ECECE9;
  --ip-cal-line:#D7D7D3;
  --ip-cal-ink:#151515;
  box-sizing:border-box;
  width:min(calc(100% - clamp(40px,9.2vw,172px)),1520px);
  max-width:1520px;
  margin:12px auto clamp(65px,6vw,95px);
  padding:clamp(14px,2.2vw,32px);
  border:1px solid #ECECE9;
  border-radius:14px;
  background:#fff;
  box-shadow:0 12px 32px rgba(0,0,0,.065);
  --fc-border-color:#E5E5E1;
  --fc-page-bg-color:#fff;
  --fc-neutral-bg-color:#F7F7F5;
  --fc-today-bg-color:#FAD995;
  --fc-event-bg-color:#F7F7F5;
  --fc-event-border-color:#B8B8B4;
  --fc-event-text-color:#242424;
  --fc-button-text-color:#fff;
  --fc-button-bg-color:#242424;
  --fc-button-border-color:#5C5C58;
  --fc-button-hover-bg-color:#FFC84A;
  --fc-button-hover-border-color:#FFC84A;
  --fc-button-active-bg-color:#FFD578;
  --fc-button-active-border-color:#FFC84A;
  min-width:0; color:#242424;
  font:400 15px/1.45 'Sulphur Point',Arial,sans-serif;
}
/* Header keeps navigation, month title and view options readable at every width. */
body:has(#hse-in-person-training) .fc .fc-toolbar.fc-header-toolbar {
  display:flex; flex-direction:column; align-items:stretch; justify-content:center;
  gap:13px; margin:0; padding:clamp(18px,2.5vw,30px);
  border:1px solid #242424; border-radius:11px 11px 0 0;
  background:linear-gradient(125deg,#111111,#242424);
  color:#fff;
}
body:has(#hse-in-person-training) .fc .fc-header-toolbar > .fc-toolbar-chunk {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:10px 16px; min-width:0; width:100%;
}
body:has(#hse-in-person-training) .fc .fc-header-toolbar > .fc-toolbar-chunk:has(.fc-prev-button) { order:1; justify-content:space-between; }
body:has(#hse-in-person-training) .fc .fc-header-toolbar > .fc-toolbar-chunk:has(.fc-toolbar-title) { order:2; }
body:has(#hse-in-person-training) .fc .fc-header-toolbar > .fc-toolbar-chunk:has(.fc-dayGridMonth-button,.fc-dayGridWeek-button,.fc-timeGridWeek-button,.fc-listWeek-button,.fc-listMonth-button) { order:3; }
body:has(#hse-in-person-training) .fc .fc-toolbar-title {
  margin:2px 0; color:#fff;
  font:600 clamp(21px,2.5vw,30px)/1.2 'Oxanium',Arial,sans-serif;
  letter-spacing:-.03em; text-align:center;
}
body:has(#hse-in-person-training) .fc .fc-button-group { display:inline-flex; align-items:stretch; }
body:has(#hse-in-person-training) .fc .fc-button {
  min-width:43px; min-height:44px; padding:10px 13px;
  border:1px solid #7E7E7A; border-radius:7px;
  background:#3C3C3C; color:#fff;
  font:600 12px/1.2 'Oxanium',Arial,sans-serif;
  text-shadow:none; box-shadow:none; cursor:pointer;
  transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease;
}
body:has(#hse-in-person-training) .fc .fc-button-group > .fc-button { border-radius:0; }
body:has(#hse-in-person-training) .fc .fc-button-group > .fc-button:first-child { border-radius:7px 0 0 7px; }
body:has(#hse-in-person-training) .fc .fc-button-group > .fc-button:last-child { border-radius:0 7px 7px 0; }
body:has(#hse-in-person-training) .fc .fc-button:not(:disabled):hover {
  background:#FFC84A; color:#111; border-color:#FFC84A;
}
body:has(#hse-in-person-training) .fc .fc-button:is(:active,.fc-button-active):not(:disabled) {
  background:#5C5C58; color:#fff; border-color:#B8B8B4;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);
}
body:has(#hse-in-person-training) .fc .fc-button:disabled { opacity:.43; cursor:not-allowed; }
body:has(#hse-in-person-training) .fc .fc-button:focus-visible { outline:3px solid #FFC84A; outline-offset:2px; }
body:has(#hse-in-person-training) .fc .fc-button .fc-icon { color:inherit; font-size:17px; vertical-align:middle; }
/* Day and week grid: light neutral cells, light amber today, disciplined borders. */
body:has(#hse-in-person-training) .fc .fc-scrollgrid { border-color:#E5E5E1; }
body:has(#hse-in-person-training) .fc .fc-scrollgrid :is(th,td) { border-color:#E5E5E1; }
body:has(#hse-in-person-training) .fc .fc-col-header-cell { padding:12px 3px; background:#F7F7F5; color:#242424; }
body:has(#hse-in-person-training) .fc .fc-col-header-cell-cushion {
  color:#242424; text-decoration:none;
  font:600 12px/1.35 'Oxanium',Arial,sans-serif; letter-spacing:.04em; text-transform:uppercase;
}
body:has(#hse-in-person-training) .fc .fc-daygrid-day { background:#fff; }
body:has(#hse-in-person-training) .fc .fc-daygrid-day.fc-day-today { background:#FAD995!important; }
body:has(#hse-in-person-training) .fc .fc-col-header-cell.fc-day-today { background:#FAD995!important; }
body:has(#hse-in-person-training) .fc .fc-timegrid-col.fc-day-today { background:#FAD995!important; }
body:has(#hse-in-person-training) .fc .fc-daygrid-day-frame { min-height:clamp(86px,10vw,135px); }
body:has(#hse-in-person-training) .fc .fc-daygrid-day-number {
  padding:10px 11px; color:#242424; text-decoration:none;
  font:500 14px/1.3 'Sulphur Point',Arial,sans-serif;
}
body:has(#hse-in-person-training) .fc .fc-day-today .fc-daygrid-day-number { color:#111; font-weight:700; }
body:has(#hse-in-person-training) .fc .fc-day-other .fc-daygrid-day-number { color:#B8B8B4; }
/* Unknown/unassigned events use neutral styling until the saved venue is identified. */
body:has(#hse-in-person-training) .fc :is(.fc-daygrid-event,.fc-timegrid-event,.fc-h-event,.fc-v-event) {
  border:1px solid #B8B8B4!important; border-radius:7px;
  background:#F7F7F5!important; color:#242424!important;
  text-decoration:none; box-shadow:none; overflow:hidden;
  transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease;
}
/* Keep Day view unchanged. Week view uses the entire native side-by-side lane. */
body:has(#hse-in-person-training) .fc .fc-timeGridDay-view .fc-timegrid-event {
  margin-left:2px!important; margin-right:2px!important;
}
body:has(#hse-in-person-training) .fc .fc-timeGridWeek-view .fc-timegrid-col-events {
  margin-left:0!important; margin-right:0!important;
}
body:has(#hse-in-person-training) .fc .fc-timeGridWeek-view .fc-timegrid-event {
  margin-left:0!important; margin-right:0!important;
  padding-left:2px!important; padding-right:2px!important;
}
body:has(#hse-in-person-training) .fc :is(.fc-daygrid-event,.fc-timegrid-event,.fc-h-event,.fc-v-event):hover {
  background:#ECECE9!important; border-color:#5C5C58!important;
}
/* Location classes are assigned from saved WPEvently venue metadata (not course names). */
body:has(#hse-in-person-training) .fc :is(.fc-daygrid-event,.fc-timegrid-event,.fc-h-event,.fc-v-event).hse-ip-cal--vaughan {
  border-color:#D89B2B!important; background:#FFC84A!important; color:#111!important;
}
body:has(#hse-in-person-training) .fc :is(.fc-daygrid-event,.fc-timegrid-event,.fc-h-event,.fc-v-event).hse-ip-cal--vaughan:is(:hover,:active) {
  border-color:rgba(0,0,0,.38)!important; background:#FFD578!important; color:#111!important;
  box-shadow:none;
}
body:has(#hse-in-person-training) .fc :is(.fc-daygrid-event,.fc-timegrid-event,.fc-h-event,.fc-v-event).hse-ip-cal--ottawa {
  border-color:#B8B8B4!important; background:#242424!important; color:#fff!important;
}
body:has(#hse-in-person-training) .fc :is(.fc-daygrid-event,.fc-timegrid-event,.fc-h-event,.fc-v-event).hse-ip-cal--ottawa:is(:hover,:active) {
  border-color:#FFC84A!important; background:rgba(17,17,17,.9)!important; color:#fff!important;
  -webkit-backdrop-filter:blur(18px) saturate(135%); backdrop-filter:blur(18px) saturate(135%);
}
body:has(#hse-in-person-training) .fc .fc-event-main,
body:has(#hse-in-person-training) .fc :is(.fc-event-title,.fc-event-time,.fc-event-title-container,.mep-cal-event-inner,.mep-cal-event-time,.mep-cal-event-title) {
  color:inherit!important; font:600 12px/1.35 'Sulphur Point',Arial,sans-serif;
  background:transparent!important; border:0!important; outline:0!important; box-shadow:none!important;
}
body:has(#hse-in-person-training) .fc .mep-cal-event-inner {
  display:flex; align-items:center; gap:4px; width:100%; min-width:0;
  padding:4px 8px; border-radius:0; box-sizing:border-box;
  border:0!important; outline:0!important; box-shadow:none!important;
  background:transparent!important; color:inherit!important;
}
/* Preserve the Day inset. Week text uses all available space inside its card. */
body:has(#hse-in-person-training) .fc .fc-timeGridDay-view .fc-timegrid-event .mep-cal-event-inner {
  padding-left:4px!important; padding-right:4px!important;
}
body:has(#hse-in-person-training) .fc .mep-cal-event-time,
body:has(#hse-in-person-training) .fc .mep-cal-event-title {
  color:inherit!important; font:600 12px/1.35 'Sulphur Point',Arial,sans-serif!important;
  border:0!important; outline:0!important; box-shadow:none!important;
  background:transparent!important;
}
body:has(#hse-in-person-training) .fc .mep-cal-event-time {
  border:0!important; outline:0!important; box-shadow:none!important;
  background:transparent!important; padding:0!important;
}
/* Use the saved venue class for all event text; JS clears WPEvently's inline red time/title colours. */
body:has(#hse-in-person-training) .fc .fc-event.hse-ip-cal--ottawa :is(.fc-event-main,.fc-event-time,.fc-event-title,.mep-cal-event-inner,.mep-cal-event-time,.mep-cal-event-title) {
  color:#fff!important;
}
body:has(#hse-in-person-training) .fc .fc-event.hse-ip-cal--vaughan :is(.fc-event-main,.fc-event-time,.fc-event-title,.mep-cal-event-inner,.mep-cal-event-time,.mep-cal-event-title) {
  color:#111!important;
}
/* Slightly larger Day-view text, with less card padding and no change to placement. */
body:has(#hse-in-person-training) .fc .fc-timeGridDay-view .fc-timegrid-event :is(.mep-cal-event-time,.mep-cal-event-title,.fc-event-time,.fc-event-title) {
  font-size:13px!important;
}
/* Event colours live on the outer card only. No nested coloured border or time badge. */
/* Week view: keep FullCalendar's native side-by-side event positions; fit complete words inside each card. */
body:has(#hse-in-person-training) .fc .fc-timeGridWeek-view .fc-timegrid-event .mep-cal-event-inner {
  display:block!important; width:100%; min-width:0; max-width:100%;
  border:0!important; border-radius:0; box-shadow:none!important;
  background:transparent!important; padding:3px 0!important;
}
body:has(#hse-in-person-training) .fc .fc-timeGridWeek-view .fc-timegrid-event .fc-event-main { padding:0!important; }
body:has(#hse-in-person-training) .fc .fc-timeGridWeek-view .fc-timegrid-event :is(.mep-cal-event-time,.mep-cal-event-title,.fc-event-time,.fc-event-title) {
  display:block!important; width:100%!important; min-width:0; max-width:100%!important;
  white-space:normal!important; overflow:visible!important; text-overflow:clip!important;
  overflow-wrap:normal!important; word-break:normal!important; hyphens:none!important;
  font-size:var(--hse-ip-week-font-size,14px)!important; line-height:1.2!important;
}
body:has(#hse-in-person-training) .fc .fc-timeGridWeek-view .fc-timegrid-event :is(.mep-cal-event-time,.fc-event-time) {
  white-space:normal!important;
}
body:has(#hse-in-person-training) .fc .fc-timeGridWeek-view .fc-timegrid-event .mep-cal-event-time {
  box-sizing:border-box; margin-bottom:3px;
}
body:has(#hse-in-person-training) .fc .fc-daygrid-event { margin:2px 3px; padding:4px 6px; }
body:has(#hse-in-person-training) .fc .fc-daygrid-more-link {
  color:#242424; font:600 12px/1.4 'Oxanium',Arial,sans-serif;
  text-decoration:underline; text-underline-offset:3px;
}

/* WPEvently "View all events" summary button: Week shape, Week/Day interaction. */
body:has(#hse-in-person-training) .fc .fc-timeGridWeek-view .mep-cal-day-summary-button {
  display:flex;
  align-items:center;
  justify-content:center;
  width:calc(100% - 8px)!important;
  height:auto!important;
  min-height:44px;
  padding:4px!important;
  border-radius:8px!important;
  box-sizing:border-box;
  text-align:center;
  white-space:normal;
}
body:has(#hse-in-person-training) .fc :is(.fc-timeGridWeek-view,.fc-timeGridDay-view) .mep-cal-day-summary-button {
  transition:transform .28s cubic-bezier(.22,1,.36,1),background-color .28s ease,border-color .28s ease,color .28s ease;
}
body:has(#hse-in-person-training) .fc :is(.fc-timeGridWeek-view,.fc-timeGridDay-view) .mep-cal-day-summary-button:hover {
  background:#FFC84A!important;
  border:1px solid #fff!important;
  color:#000!important;
  transform:translateY(-2px);
}
body:has(#hse-in-person-training) .fc :is(.fc-timeGridWeek-view,.fc-timeGridDay-view) .mep-cal-day-summary-button:active {
  background:#000!important;
  border:1px solid #fff!important;
  color:#fff!important;
  transform:translateY(0);
}
body:has(#hse-in-person-training) .fc .fc-popover {
  border:1px solid #D7D7D3; border-radius:9px; overflow:hidden;
  background:#fff; box-shadow:0 12px 32px rgba(0,0,0,.14);
}
body:has(#hse-in-person-training) .fc .fc-popover-header { padding:10px 13px; background:#242424; color:#fff; }
body:has(#hse-in-person-training) .fc .fc-popover-close { color:#FFC84A; opacity:1; }
/* The "All Events" popup can be mounted outside the calendar root.
   Use the real saved venue for its dots and location labels in Week and Day. */
body:has(#hse-in-person-training) .hse-ip-calendar-events-popover .hse-ip-calendar-popover-date,
body:has(#hse-in-person-training) .hse-ip-calendar-events-popover .fc-popover-title {
  font-family:'Oxanium',Arial,sans-serif!important;
}
body:has(#hse-in-person-training) .hse-ip-calendar-events-popover .hse-ip-calendar-popover-location {
  display:inline-block; margin-left:9px;
  color:#4A4A48; font:600 11px/1.35 'Oxanium',Arial,sans-serif;
  vertical-align:baseline;
}
body:has(#hse-in-person-training) .hse-ip-calendar-events-popover :is(.mep-cal-day-popover-item,.mep-cal-day-popover-row):hover {
  background:#FAD995!important;
}
body:has(#hse-in-person-training) .hse-ip-calendar-events-popover .hse-ip-calendar-popover-dot {
  box-sizing:border-box; display:inline-block; flex:none;
  width:12px; height:12px; border:0!important;
  border-radius:50%; box-shadow:none!important; background-image:none!important;
}
body:has(#hse-in-person-training) .hse-ip-calendar-events-popover :is(.hse-ip-calendar-popover-dot,.mep-cal-day-popover-dot).hse-ip-cal--ottawa {
  background:#000!important;
}
body:has(#hse-in-person-training) .hse-ip-calendar-events-popover :is(.hse-ip-calendar-popover-dot,.mep-cal-day-popover-dot).hse-ip-cal--vaughan {
  background:#FFC84A!important;
}
body:has(#hse-in-person-training) .fc .fc-timegrid-slot-label,
body:has(#hse-in-person-training) .fc .fc-timegrid-axis {
  color:#4A4A48; background:#F7F7F5;
  font:500 12px/1.4 'Sulphur Point',Arial,sans-serif;
}
/* List: location and the original event time share the left column; repeated title time is removed via JS. */
body:has(#hse-in-person-training) .fc .fc-list-table { width:100%; border-collapse:separate; border-spacing:0; }
body:has(#hse-in-person-training) .fc .fc-list-table tr.fc-list-event:last-child > td:first-child { border-bottom-left-radius:12px; }
body:has(#hse-in-person-training) .fc .fc-list-table tr.fc-list-event:last-child > td:last-child { border-bottom-right-radius:12px; }
body:has(#hse-in-person-training) .fc .fc-list-day-cushion { padding:0; background:#ECECE9; }
body:has(#hse-in-person-training) .fc .fc-list-day-text,
body:has(#hse-in-person-training) .fc .fc-list-day-side-text {
  color:#242424; font:600 14px/1.3 'Oxanium',Arial,sans-serif;
}
body:has(#hse-in-person-training) .fc .fc-list-event td {
  padding:5px 8px; background:#fff; border-color:#ECECE9;
  border-top:0; border-bottom:0;
  vertical-align:middle!important;
  transition:background-color .3s ease,color .3s ease,border-color .3s ease;
}
body:has(#hse-in-person-training) .fc .fc-list-event-time {
  color:#242424; white-space:normal; width:175px;
  font:600 13px/1.45 'Oxanium',Arial,sans-serif;
}
body:has(#hse-in-person-training) .fc .fc-list-event-time :is(.hse-ip-calendar-list-location,.hse-ip-calendar-list-time) {
  display:block;
}
body:has(#hse-in-person-training) .fc .fc-list-event-time .hse-ip-calendar-list-time {
  margin-top:1px; white-space:nowrap;
  font:500 11px/1.45 'Sulphur Point',Arial,sans-serif;
}
body:has(#hse-in-person-training) .fc .fc-list-event-title,
body:has(#hse-in-person-training) .fc .fc-list-event-title a,
body:has(#hse-in-person-training) .fc .fc-list-event .mep-cal-event-inner,
body:has(#hse-in-person-training) .fc .fc-list-event .mep-cal-event-title,
body:has(#hse-in-person-training) .fc .fc-list-event .mep-cal-event-time {
  color:#242424!important;
  font:600 15px/1.4 'Oxanium',Arial,sans-serif;
  text-decoration:none!important;
}
body:has(#hse-in-person-training) .fc .fc-list-event:hover td { background:#F7F7F5; }
body:has(#hse-in-person-training) .fc .fc-list-event-graphic { width:44px; text-align:center; }
body:has(#hse-in-person-training) .fc .fc-list-event-title { padding-left:8px!important; }
body:has(#hse-in-person-training) .fc .fc-list-event-dot {
  display:inline-block; vertical-align:middle; margin:0 auto;
  border-color:#FFC84A!important;
}
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--vaughan .fc-list-event-dot {
  box-sizing:border-box; width:12px; height:12px;
  border:0!important; border-radius:50%; background:#000!important; box-shadow:none!important;
}
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--ottawa .fc-list-event-dot {
  box-sizing:border-box; width:12px; height:12px;
  border:0!important; border-radius:50%; background:#fff!important; box-shadow:none!important;
}
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--vaughan td { background:#FFC84A; border-color:#D89B2B; }
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--vaughan:is(:hover,:active) td {
  background:#FFD578; border-color:rgba(0,0,0,.38); color:#111!important;
}
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--vaughan .fc-list-event-time,
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--vaughan .fc-list-event-title,
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--vaughan .fc-list-event-title a { color:#111!important; }
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--ottawa td { background:#242424; border-color:#FFC84A; }
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--ottawa:is(:hover,:active) td {
  background:rgba(17,17,17,.9); border-color:#FFC84A; color:#fff!important;
  -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
}
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--ottawa .fc-list-event-time,
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--ottawa .fc-list-event-title,
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--ottawa .fc-list-event-title a { color:#fff!important; }
body:has(#hse-in-person-training) .fc .fc-list-event .fc-list-event-title a {
  display:flex; align-items:center; min-height:24px;
  background:transparent!important; border:0!important; outline:0!important; box-shadow:none!important;
}
body:has(#hse-in-person-training) .fc .fc-list-event .fc-list-event-title .mep-cal-event-inner {
  width:100%; min-width:0; padding:0; border:0!important; outline:0!important;
  box-shadow:none!important; background:transparent!important;
}
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--ottawa:is(:hover,:active) :is(.fc-list-event-time,.fc-list-event-title,.fc-list-event-title a,.mep-cal-event-inner,.mep-cal-event-title,.mep-cal-event-time) {
  color:#fff!important;
}
body:has(#hse-in-person-training) .fc .fc-list-event.hse-ip-cal--vaughan:is(:hover,:active) :is(.fc-list-event-time,.fc-list-event-title,.fc-list-event-title a,.mep-cal-event-inner,.mep-cal-event-title,.mep-cal-event-time) {
  color:#111!important;
}
body:has(#hse-in-person-training) .fc .hse-ip-calendar-venue-label {
  display:inline-flex; align-items:center; margin-left:9px; padding:2px 7px;
  border:1px solid #D7D7D3; border-radius:999px;
  background:#F7F7F5; color:#5C5C58;
  font:600 11px/1.35 'Oxanium',Arial,sans-serif;
}
body:has(#hse-in-person-training) .fc .fc-list-empty { padding:30px; background:#F7F7F5; color:#5C5C58; }

body:has(#hse-in-person-training) .mep-cal-tooltip {
  border:1px solid #D7D7D3; border-radius:16px; overflow:hidden;
  background:#fff; box-shadow:0 18px 36px rgba(0,0,0,.16);
  pointer-events:auto;
}
body:has(#hse-in-person-training) .mep-cal-tooltip-header {
  display:flex; align-items:flex-start; gap:16px; padding:18px 20px;
  background:#242424; color:#fff;
}
body:has(#hse-in-person-training) .mep-cal-tooltip-thumb {
  width:56px; height:56px; border-radius:12px; object-fit:cover; flex:0 0 56px;
}
body:has(#hse-in-person-training) .mep-cal-tooltip-title {
  color:inherit!important; font:600 18px/1.25 'Oxanium',Arial,sans-serif;
}
body:has(#hse-in-person-training) .mep-cal-tooltip-badges { display:none; }
body:has(#hse-in-person-training) .mep-cal-tooltip-content,
body:has(#hse-in-person-training) .mep-cal-tooltip-body,
body:has(#hse-in-person-training) .mep-cal-tooltip .mep-cal-tooltip-list {
  padding:18px 20px; background:#fff; color:#4A4A48;
  font:500 14px/1.5 'Sulphur Point',Arial,sans-serif;
}
body:has(#hse-in-person-training) .mep-cal-tooltip :is(i,.material-icons,.dashicons) { color:#8F959C; }
body:has(#hse-in-person-training) .mep-cal-tooltip.hse-ip-cal--vaughan { border-color:rgba(17,17,17,.22); background:#FFF8E8; }
body:has(#hse-in-person-training) .mep-cal-tooltip.hse-ip-cal--vaughan .mep-cal-tooltip-header { background:#FFC84A; color:#111; }
body:has(#hse-in-person-training) .mep-cal-tooltip.hse-ip-cal--vaughan :is(.mep-cal-tooltip-content,.mep-cal-tooltip-body,.mep-cal-tooltip .mep-cal-tooltip-list) { background:#FFF8E8; color:#4A4A48; }
body:has(#hse-in-person-training) .mep-cal-tooltip.hse-ip-cal--ottawa { border-color:#FFC84A; background:#fff; }
body:has(#hse-in-person-training) .mep-cal-tooltip.hse-ip-cal--ottawa .mep-cal-tooltip-header { background:#242424; color:#fff; }
body:has(#hse-in-person-training) .mep-cal-tooltip.hse-ip-cal--ottawa :is(.mep-cal-tooltip-content,.mep-cal-tooltip-body,.mep-cal-tooltip .mep-cal-tooltip-list) { background:#fff; color:#4A4A48; }

/* COMPACT SESSION REGISTRATION | WPEvently tooltips in every calendar view
   and individual entries in Week/Day/Month "View all" popovers.
   This is a regular link to the existing event page, not an add-to-cart action. */
body:has(#hse-in-person-training) .hse-ip-calendar-register {
  display:inline-flex; align-items:center; justify-content:center;
  box-sizing:border-box; width:max-content; max-width:100%;
  min-height:34px; margin:12px 0 0; padding:8px 12px;
  border:1px solid transparent; border-radius:8px;
  text-decoration:none!important; white-space:nowrap;
  text-align:center; text-transform:uppercase;
  font:700 10px/1.2 'Oxanium',Arial,sans-serif;
  letter-spacing:.015em;
  box-shadow:inset 0 1px rgba(255,255,255,.16);
  transform:translateY(0);
  cursor:pointer;
  transition:transform .27s cubic-bezier(.22,1,.36,1),background-color .27s ease,
    border-color .27s ease,color .27s ease,box-shadow .27s ease;
}
body:has(#hse-in-person-training) .hse-ip-calendar-register.hse-ip-cal--ottawa {
  border-color:#D89B2B; background:#FFC84A; color:#000;
}
body:has(#hse-in-person-training) .hse-ip-calendar-register.hse-ip-cal--ottawa:hover {
  transform:translateY(-2px); border-color:#E6E6E6; background:#fff; color:#000;
  box-shadow:0 7px 18px rgba(0,0,0,.12);
}
body:has(#hse-in-person-training) .hse-ip-calendar-register.hse-ip-cal--ottawa:active {
  transform:translateY(0); border-color:rgba(255,200,74,.78);
  background:rgba(15,15,15,.76); color:#FFC84A;
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  backdrop-filter:blur(16px) saturate(140%);
  box-shadow:inset 0 1px rgba(255,255,255,.18),0 0 0 2px rgba(255,200,74,.16);
}
body:has(#hse-in-person-training) .hse-ip-calendar-register.hse-ip-cal--vaughan {
  border-color:#111; background:#111; color:#fff;
}
body:has(#hse-in-person-training) .hse-ip-calendar-register.hse-ip-cal--vaughan:hover {
  transform:translateY(-2px); border-color:rgba(255,200,74,.75);
  background:rgba(255,200,74,.45); color:#000;
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  backdrop-filter:blur(16px) saturate(140%);
  box-shadow:inset 0 1px rgba(255,255,255,.24),0 8px 20px rgba(216,155,43,.16);
}
body:has(#hse-in-person-training) .hse-ip-calendar-register.hse-ip-cal--vaughan:active {
  transform:translateY(0); border-color:rgba(255,255,255,.78);
  background:rgba(15,15,15,.76); color:#fff;
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  backdrop-filter:blur(16px) saturate(140%);
  box-shadow:inset 0 1px rgba(255,255,255,.26),0 0 0 2px rgba(255,255,255,.14);
}
body:has(#hse-in-person-training) .hse-ip-calendar-register:focus-visible {
  outline:2px solid #FFC84A; outline-offset:3px;
}
body:has(#hse-in-person-training) .hse-ip-calendar-events-popover .hse-ip-calendar-register {
  margin:7px 0 9px var(--hse-ip-popover-register-indent,0px);
  max-width:calc(100% - var(--hse-ip-popover-register-indent,0px));
}
/* Tablet retains comfortable outer padding. */
@media (max-width:990px) {
  body:has(#hse-in-person-training) .fc { width:calc(100% - 48px); margin-bottom:72px; }
  body:has(#hse-in-person-training) .fc { padding:16px; }
  body:has(#hse-in-person-training) .fc .fc-toolbar.fc-header-toolbar { padding:20px; gap:12px; }
  body:has(#hse-in-person-training) .fc .fc-header-toolbar > .fc-toolbar-chunk:has(.fc-prev-button) { justify-content:space-between; }
  body:has(#hse-in-person-training) .fc .fc-daygrid-day-frame { min-height:94px; }
}
/* On mobile, left and right arrow groups sit at opposing edges, ABOVE the month. */
@media (max-width:700px) {
  body:has(#hse-in-person-training) .fc { width:calc(100% - 32px); margin-bottom:56px; }
  body:has(#hse-in-person-training) .fc { padding:9px; border-radius:11px; }
  body:has(#hse-in-person-training) .hse-ip-calendar-legend { gap:9px 14px; font-size:11px; width:calc(100% - 30px); padding:0 12px; }
  body:has(#hse-in-person-training) .fc { font-size:12px; }
  body:has(#hse-in-person-training) .fc .fc-toolbar.fc-header-toolbar { gap:12px; padding:17px 11px; }
  body:has(#hse-in-person-training) .fc .fc-header-toolbar > .fc-toolbar-chunk:has(.fc-prev-button) {
    display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    column-gap:7px; width:100%; justify-content:stretch;
  }
  body:has(#hse-in-person-training) .fc .fc-toolbar-chunk:has(.fc-prev-button) > .fc-button-group:first-of-type { grid-column:1; justify-self:start; }
  body:has(#hse-in-person-training) .fc .fc-toolbar-chunk:has(.fc-prev-button) > .fc-button-group:nth-of-type(2) { grid-column:3; justify-self:end; }
  body:has(#hse-in-person-training) .fc .fc-toolbar-chunk:has(.fc-prev-button) > .fc-today-button { grid-column:2; justify-self:center; }
  body:has(#hse-in-person-training) .fc .fc-toolbar-title { font-size:clamp(18px,5.2vw,25px); }
  body:has(#hse-in-person-training) .fc .fc-button { min-width:35px; min-height:39px; padding:7px 9px; font-size:11px; }
  body:has(#hse-in-person-training) .fc .fc-col-header-cell { padding:9px 0; }
  body:has(#hse-in-person-training) .fc .fc-col-header-cell-cushion { font-size:10px; letter-spacing:0; }
  body:has(#hse-in-person-training) .fc .fc-daygrid-day-frame { min-height:75px; }
  body:has(#hse-in-person-training) .fc .fc-daygrid-day-number { padding:6px; font-size:12px; }
  body:has(#hse-in-person-training) .fc .fc-daygrid-event { margin:1px; padding:3px; border-radius:3px; }

body:has(#hse-in-person-training) .fc .fc-timeGridDay-view .fc-timegrid-event .mep-cal-event-title {
  text-align:center!important;
}
  body:has(#hse-in-person-training) .fc :is(.fc-event-title,.fc-event-time) { font-size:10px; line-height:1.3; }
  body:has(#hse-in-person-training) .fc .fc-list-event td { padding:5px 6px; }
  body:has(#hse-in-person-training) .fc .fc-list-event-time { width:80px; font-size:12px; white-space:normal; }
  body:has(#hse-in-person-training) .fc .fc-list-event-time .hse-ip-calendar-list-time { font-size:10px; white-space:normal; }
  body:has(#hse-in-person-training) .fc .fc-list-event-graphic { width:27px; }
  body:has(#hse-in-person-training) .fc .fc-list-event-title { padding-left:5px!important; }
  body:has(#hse-in-person-training) .fc .fc-list-event-title a { font-size:12px; }
  body:has(#hse-in-person-training) .fc .hse-ip-calendar-venue-label { margin-left:5px; padding:2px 5px; }
}
@media (max-width:380px) {
  body:has(#hse-in-person-training) .fc { width:calc(100% - 24px); }
  body:has(#hse-in-person-training) .fc { padding:7px; }
  body:has(#hse-in-person-training) .fc .fc-toolbar.fc-header-toolbar { padding:14px 8px; }
  body:has(#hse-in-person-training) .fc .fc-button { min-width:31px; min-height:37px; padding:7px 6px; font-size:10px; }
  body:has(#hse-in-person-training) .fc .fc-col-header-cell-cushion { font-size:9px; }
  body:has(#hse-in-person-training) .fc .fc-daygrid-day-frame { min-height:68px; }
  body:has(#hse-in-person-training) .fc .fc-daygrid-day-number { padding:5px 4px; font-size:11px; }
  body:has(#hse-in-person-training) .fc :is(.fc-event-title,.fc-event-time) { font-size:9px; }
}

/* 07 | TRAINING BUILT AROUND YOUR ORGANIZATION — BLACK IMAGE / COPY SPLIT */
.hse-ip-team { width:100%; max-width:none; margin:0; padding:clamp(78px,8.5vw,132px) 0;
  isolation:isolate; overflow:hidden; background:#090909; color:#fff; }
.hse-ip-team__diamonds { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.hse-ip-team__diamond {
  position:absolute; display:block; aspect-ratio:1; transform:rotate(45deg);
  border:1px solid rgba(255,213,120,.2); border-radius:clamp(15px,2.4vw,30px);
  background:linear-gradient(135deg,rgba(255,200,74,.095),rgba(255,255,255,.015) 76%);
  box-shadow:inset 0 1px rgba(255,255,255,.08);
  animation:ip-hero-float 15s ease-in-out infinite;
}
.hse-ip-team__diamond--one { width:clamp(155px,17vw,265px); top:-115px; left:-90px; }
.hse-ip-team__diamond--two { width:clamp(150px,16vw,250px); bottom:-115px; right:-83px; animation-duration:18s; animation-delay:-6s; }
.hse-ip-team__layout { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:center; gap:clamp(38px,6vw,100px); }
.hse-ip-team__visual { position:relative; aspect-ratio:1.08/1; min-height:385px; }
.hse-ip-team__visual-frame {
  position:absolute; inset:0; overflow:hidden;
  border:2px solid rgba(255,200,74,.44); border-radius:var(--ip-radius-lg);
  background:#222; box-shadow:0 0 0 5px rgba(255,200,74,.1),0 22px 52px rgba(0,0,0,.28);
  transform:translate3d(0,0,0);
  transition:transform .44s var(--ip-ease),border-color .37s ease,box-shadow .44s var(--ip-ease);
}
.hse-ip-team__visual:hover .hse-ip-team__visual-frame {
  transform:translate3d(0,-5px,0);
  border-color:rgba(255,213,120,.86);
  box-shadow:0 0 0 6px rgba(255,200,74,.31),inset 0 0 0 2px rgba(255,235,185,.48),0 28px 60px rgba(0,0,0,.34);
}
.hse-ip-team__visual:active .hse-ip-team__visual-frame {
  transform:translate3d(0,0,0); border-color:rgba(255,255,255,.96);
  box-shadow:0 0 0 6px rgba(255,255,255,.32),inset 0 0 0 2px rgba(255,255,255,.84),0 18px 40px rgba(0,0,0,.28);
}
.hse-ip-team__visual img {
  display:block; position:absolute; top:-32px; left:0; width:100%; height:calc(100% + 64px); object-fit:cover; object-position:center;
  translate:0 var(--ip-team-parallax,0px); will-change:translate;
  filter:grayscale(0); transition:filter .42s ease;
}
.hse-ip-team__visual:active img { filter:grayscale(1); }
.hse-ip-team__eyebrow { margin:0 0 18px!important; color:var(--ip-amber);
  font:700 clamp(11px,.8vw,13px)/1.4 'Oxanium',Arial,sans-serif; text-transform:uppercase; letter-spacing:.16em; }
.hse-ip-team h2 { max-width:725px; color:#fff; font-size:clamp(36px,4vw,66px); }
.hse-ip-team__copy p:not(.hse-ip-team__eyebrow) { max-width:635px; margin-top:16px;
  color:rgba(255,255,255,.81); font:400 clamp(16px,1.18vw,18px)/1.6 'Sulphur Point',sans-serif; }
.hse-ip-team__copy p.hse-ip-team__lead { color:#fff; font-weight:600; margin-top:28px; }
.hse-ip-team__copy .hse-ip__button { margin-top:29px; }

/* 08 | CTA: original homepage-style photographic panel and amber surround */
.hse-ip-after { position:relative; isolation:isolate; width:100%; max-width:none; margin:0; padding:clamp(70px,8vw,120px) 0;
  background:var(--ip-amber); color:#fff; }
.hse-ip-after > .hse-ip__container { position:relative; z-index:2; }
.hse-ip-after__panel { position:relative; isolation:isolate; display:grid; grid-template-columns:1fr .78fr;
  align-items:start; gap:clamp(35px,7vw,120px); min-height:305px;
  padding:clamp(36px,5vw,78px); overflow:hidden;
  border:1px solid rgba(255,255,255,.61); border-radius:var(--ip-radius-lg);
  background:rgba(0,0,0,.77); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  box-shadow:0 0 0 5px rgba(255,255,255,.2),inset 0 1px rgba(255,255,255,.28),0 25px 62px rgba(0,0,0,.18);
  transform:translate3d(0,0,0);
  transition:transform .42s var(--ip-ease),border-color .42s ease,box-shadow .42s var(--ip-ease);
}
.hse-ip-after__panel:hover { transform:translate3d(0,-4px,0);
  box-shadow:0 0 0 5px rgba(255,255,255,.2),inset 0 1px rgba(255,255,255,.28),0 31px 72px rgba(0,0,0,.2); }
.hse-ip-after__panel:active { transform:translate3d(0,0,0); border-color:#fff;
  box-shadow:0 0 0 5px rgba(255,255,255,.33),inset 0 0 0 1px rgba(255,255,255,.82),0 19px 46px rgba(0,0,0,.18); }
.hse-ip-after__photo { position:absolute; inset:0; z-index:-2; }
.hse-ip-after__photo img { width:100%; height:100%; object-fit:cover; object-position:58% 68%; }
/* Large desktop: shift the CTA photo down within its frame. */
@media (min-width:1440px) {
  .hse-ip-after__photo img { object-position:58% 42%; }
}
.hse-ip-after__panel::before { content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg,rgba(11,12,12,.95),rgba(11,12,12,.78) 56%,rgba(11,12,12,.89)); }
.hse-ip-after__panel::after { content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(105deg,rgba(255,200,74,.22),rgba(216,155,43,.27) 52%,rgba(255,200,74,.13));
  opacity:0; transition:opacity .42s ease; }
.hse-ip-after__panel:hover::after { opacity:1; }
.hse-ip-after__panel:active::after { opacity:0; }
.hse-ip-after__title,.hse-ip-after__details { position:relative; z-index:1; }
.hse-ip-after__eyebrow { margin:0 0 16px!important; color:var(--ip-light-amber); }
.hse-ip-after h2 { max-width:720px; color:#fff; font-size:clamp(36px,4vw,66px); }
.hse-ip-after__details p { max-width:520px; color:rgba(255,255,255,.86);
  font:400 clamp(16px,1.3vw,19px)/1.55 'Sulphur Point',sans-serif; }
.hse-ip-after__details p + p { margin-top:13px; }
.hse-ip-after__details .hse-ip__button { margin-top:25px; }

/* 09 | SOFT ENTRANCE REVEALS: independent translate keeps card hover stable */
.hse-ip.has-js .hse-ip__reveal { opacity:0; translate:0 18px;
  transition:opacity .72s ease,translate .72s var(--ip-ease);
  transition-delay:var(--reveal-delay,0ms); }
.hse-ip.has-js .hse-ip__reveal.is-visible { opacity:1; translate:0 0; }

/* 10 | RESPONSIVE */
@media (min-width:701px) and (max-width:1230px) {
  .hse-ip__schedule-brandmark-diamond { border-radius:13px; }
  .hse-ip__schedule-brandmark-spark { border-radius:6px; }
  .hse-ip__photo-glass { top:auto; right:auto; left:0; bottom:0; }
}
@media (max-width:1230px) {
  .hse-ip__hero-grid { grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr); gap:clamp(26px,4vw,60px); }
  .hse-ip__hero h1 { font-size:clamp(42px,5vw,69px); }
  .hse-ip__hero { padding-top:clamp(138px,12vw,165px); }
  .hse-ip__hero-micro { font-size:clamp(8px,.75vw,11px); letter-spacing:.01em; gap:5px; padding:9px 10px; }
  .hse-ip__hero-actions { flex-wrap:nowrap; gap:7px; }
  .hse-ip__hero-actions .hse-ip__button { min-width:0; flex:0 1 auto; white-space:nowrap; padding-inline:10px; gap:6px; font-size:clamp(9px,.93vw,11px); }
  .hse-ip__hero-actions .hse-ip__icon { font-size:16px!important; }
  .hse-ip__filterbar { align-items:center; }
  .hse-ip__search { flex:0 0 265px; }
  .hse-ip__schedule-brandmark { width:clamp(132px,16vw,190px); }
  .hse-ip__course-surface { padding:23px 20px; }
  .hse-ip__course-bottom { gap:8px; }
  .hse-ip__course-cta { padding:10px 11px; }
  .hse-ip__course-details { padding:10px 11px; }
}
@media (max-width:990px) {
  .hse-ip__hero { padding:146px 0 81px; }
  .hse-ip__hero-grid { grid-template-columns:1fr; gap:52px; }
  .hse-ip__hero-copy { max-width:765px; }
  .hse-ip__hero-media { width:100%; max-width:680px; margin-inline:auto; }
  .hse-ip__hero-micro { align-self:flex-start; margin:clamp(21px,2.7vw,35px) 0 0 12px; }
  .hse-ip__hero-actions { flex-wrap:nowrap; gap:clamp(6px,1vw,12px); }
  .hse-ip__hero-actions .hse-ip__button { flex:0 1 auto; min-width:0; white-space:nowrap;
    padding-inline:clamp(9px,1vw,13px); gap:clamp(5px,.8vw,10px); font-size:clamp(10px,1.15vw,11px); }
  .hse-ip__hero-actions .hse-ip__icon { font-size:17px!important; }
  .hse-ip__hero-art { width:100%; height:clamp(430px,58vw,570px); margin-inline:auto; }
  .hse-ip__section-top { align-items:start; flex-direction:column; gap:24px; }
  .hse-ip__section-details { max-width:690px; }
  .hse-ip__benefits { gap:12px; }
  .hse-ip__benefit-surface { padding:25px 20px; }
  .hse-ip__course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hse-ip__course-surface { min-height:470px; }
  .hse-ip__catalogue-head { grid-template-columns:1fr; gap:24px; }
  .hse-ip__catalogue-actions { gap:20px; }
  .hse-ip__filterbar { flex-direction:column; align-items:stretch; }
  .hse-ip__search { flex:0 0 auto; width:min(100%,300px); }
  .hse-ip-team__layout { grid-template-columns:1fr; gap:35px; }
  .hse-ip-team__visual { aspect-ratio:16/10; min-height:0; }
  .hse-ip-after__panel { grid-template-columns:1fr; gap:28px; }
}
@media (max-width:700px) {
  .hse-ip__hero { padding:clamp(172px,22vw,195px) 0 72px; }
  /* Mobile: retain only three shapes (left/top, lower middle, left/bottom). */
  .hse-ip__hero-diamond--3 { display:none; }
  .hse-ip__hero-diamond--4 { display:block; }
  .hse-ip__hero h1 { font-size:clamp(39px,9.1vw,59px); line-height:1.045; }
  .hse-ip__hero h1 br { display:none; }
  .hse-ip__hero-grid { gap:43px; }
  .hse-ip__hero-actions { gap:11px; }
  .hse-ip__hero-micro { border-radius:999px; font-size:clamp(7px,1.15vw,10px); letter-spacing:0; gap:4px; padding:9px 10px; }
  .hse-ip__hero-micro { margin-top:clamp(10px,1.8vw,18px); }
  .hse-ip__hero-micro .hse-ip__icon { width:15px; height:15px; flex-basis:15px; }
  .hse-ip__hero-art { height:clamp(325px,75vw,480px); }
  .hse-ip__photo-glass { top:auto; right:auto; left:0; bottom:0; padding:14px 17px; }
  .hse-ip.has-js .hse-ip__photo-glass:not(.is-ip-tag-visible) { translate:36px 0; }
  .hse-ip__benefits { grid-template-columns:1fr; }
  .hse-ip__benefit { min-height:212px; }
  .hse-ip__benefit-surface { min-height:212px; }
  .hse-ip__benefit h3 { margin-top:48px; }
  .hse-ip__course-grid { grid-template-columns:1fr; }
  .hse-ip__course { min-height:auto; }
  .hse-ip__course-surface { min-height:475px; padding:23px; }
  .hse-ip__course h3 { min-height:0; }
  .hse-ip__course-copy { min-height:0; }
  .hse-ip__filter-pills { flex-wrap:wrap; overflow:visible; width:100%; padding-block:12px; }
  .hse-ip__search { width:min(100%,360px); min-width:0; }
  .hse-ip__result-count { margin:26px 0 35px!important; }
  .hse-ip__price-note { border-radius:18px; }
  .hse-ip__schedule { padding-top:76px; }
  .hse-ip__schedule-brandmark { top:-3px; right:4px; width:clamp(96px,24vw,130px); }
  .hse-ip__schedule-brandmark-spark { border-radius:5px; }
  .hse-ip__calendar-anchor { flex-wrap:wrap; }
  .hse-ip-team__visual { aspect-ratio:4/3; }
  .hse-ip-after__panel { padding:clamp(28px,6vw,42px); }
  .hse-ip-after__photo img { object-position:58% 48%; }
}
@media (max-width:480px) {
  .hse-ip,.hse-ip-team,.hse-ip-after { --ip-gutter:18px; }
  .hse-ip__hero { padding:178px 0 66px; }
  .hse-ip__hero h1 { font-size:clamp(35px,9vw,46px); }
  .hse-ip__hero-actions {
    display:flex;
    flex-wrap:nowrap;
    gap:6px;
  }

  .hse-ip__hero-actions .hse-ip__button {
    flex:0 1 auto;
    min-width:0;
    width:auto;
    padding:11px 8px;
    gap:4px;
    min-height:46px;
    font-size:clamp(8.6px,2.5vw,10.5px);
    letter-spacing:0;
    white-space:nowrap;
  }

  .hse-ip__hero-actions .hse-ip__icon {
    font-size:15px!important;
  }
  .hse-ip__hero-micro { gap:3px; padding:9px 7px; margin:9px 0 0 7px; font-size:7.1px; }
  .hse-ip__hero-micro .hse-ip__icon { width:12px; height:12px; flex-basis:12px; }
  .hse-ip__hero-art { height:330px; }
  .hse-ip__hero-photo { inset:12px 7px; }
  .hse-ip__hero-art::before { inset:-7px 25px 26px -5px; }
  .hse-ip__photo-glass { max-width:90%; right:auto; left:0; }
  .hse-ip__section-top h2,.hse-ip__catalogue-head h2,.hse-ip__schedule h2 { font-size:clamp(35px,9vw,45px); }
  .hse-ip__filter-surface { padding:10px 12px; }
  .hse-ip__course-surface { padding:20px; }
  .hse-ip__course-bottom { align-items:end; }
  .hse-ip__price strong { font-size:29px; }
  .hse-ip__course-cta { font-size:10px; }
  .hse-ip__schedule-steps {
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    gap:5px;
  }

  .hse-ip__schedule-steps > .hse-ip__step {
    flex:0 1 auto;
    min-width:0;
  }

  .hse-ip__schedule-steps .hse-ip__step-surface {
    min-height:39px;
    padding:6px 7px 6px 5px;
    gap:4px;
    font-size:9px;
    letter-spacing:0;
    white-space:nowrap;
  }

  .hse-ip__schedule-steps b {
    width:22px;
    height:22px;
    flex:0 0 22px;
    font-size:9px;
  }
    .hse-ip__calendar-live { margin-left:auto; }
    .hse-ip-after__panel { padding:29px 23px; }
    .hse-ip-team h2 { font-size:clamp(34px,8vw,48px); }
    .hse-ip-after h2 { font-size:clamp(34px,8vw,48px); }
  }
@media (max-width:360px) {
  .hse-ip,.hse-ip-team,.hse-ip-after { --ip-gutter:16px; }
  .hse-ip__hero-micro { font-size:6.2px; gap:2px; padding:9px 5px; }
  .hse-ip__hero-micro .hse-ip__icon { width:11px; height:11px; flex-basis:11px; }
  .hse-ip__hero-actions .hse-ip__button {
    font-size:8.5px;
    padding-inline:6px;
    gap:4px;
    min-height:46px;
  }

  .hse-ip__hero-actions .hse-ip__icon {
    font-size:14px!important;
  }
  .hse-ip__course-bottom {
    flex-wrap:wrap;
    align-items:start;
  }

  .hse-ip__schedule-steps {
    gap:3px;
  }

  .hse-ip__schedule-steps .hse-ip__step-surface {
    min-height:36px;
    padding:5px 5px 5px 4px;
    gap:3px;
    font-size:8px;
  }

  .hse-ip__schedule-steps b {
    width:19px;
    height:19px;
    flex-basis:19px;
    font-size:8px;
  }
}
@media (prefers-reduced-motion:reduce) {
  body:has(#hse-in-person-training) .hse-ip-calendar-register { transition:none; }
  .hse-ip *, .hse-ip *::before, .hse-ip *::after,
  .hse-ip-team *, .hse-ip-team *::before, .hse-ip-team *::after,
  .hse-ip-after *, .hse-ip-after *::before, .hse-ip-after *::after {
    scroll-behavior:auto!important; animation:none!important; transition-duration:.01ms!important;
  }
  .hse-ip.has-js .hse-ip__reveal, .hse-ip.has-js .hse-ip__photo-glass { opacity:1!important; translate:0 0!important; }
  .hse-ip__hero-photo:hover,.hse-ip__benefit:hover .hse-ip__benefit-surface,.hse-ip__course:hover .hse-ip__course-surface,
  .hse-ip-team__visual:hover .hse-ip-team__visual-frame,.hse-ip-after__panel:hover { transform:none!important; }
}