/* XPS Toronto training landing page. Every rule is scoped to #xtp so theme, shop, product,
   cart and checkout styles are untouched; the id also outranks theme/Elementor-kit selectors. */
#xtp{
  --y:#F1CF00; --y2:#D9B900; --ink:#151515; --char:#252525; --paper:#F7F7F4; --white:#fff;
  --muted:#565656; --muted-d:#B9B9B2; --line:#DEDEDA; --line-d:#3A3A3A; --ok:#1E7A3C; --stop:#A32020;
  --rv:#2357D9; --rv-bg:#EAF0FF; --r-ctl:8px; --r-media:16px; --wrapw:1200px; --gut:20px;
  --bar-top:var(--wp-admin--admin-bar--height,0px); --bar-h:0px;
  --display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --body:Manrope,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
  position:relative; background:var(--paper); color:var(--ink); font:400 16px/1.6 var(--body);
  overflow-x:clip; text-align:left; -webkit-font-smoothing:antialiased;
}
@media (min-width:768px){#xtp{--gut:32px}}
@media (min-width:1000px){#xtp{--bar-h:60px}}
@media (min-width:1024px){#xtp{font-size:17px}}
@media (min-width:1100px){#xtp{--gut:48px}}

/* Defensive resets against theme/Elementor-kit element styles */
#xtp *,#xtp *::before,#xtp *::after{box-sizing:border-box}
#xtp :is(h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd,address):not(.xtp-ext *){margin:0;padding:0}
#xtp :is(h1,h2,h3,h4):not(.xtp-ext *){color:inherit;text-transform:none;letter-spacing:normal;font-style:normal}
#xtp :is(ul,ol):not(.xtp-ext *){list-style:none}
#xtp img:not(.xtp-ext *){display:block;max-width:100%;height:auto;border:0;border-radius:0;box-shadow:none}
#xtp a:not(.xtp-ext *){color:inherit;text-decoration:none;box-shadow:none}
#xtp button:not(.xtp-ext *){font:inherit;text-transform:none;letter-spacing:normal;box-shadow:none;margin:0}
#xtp [hidden]{display:none!important}
#xtp .sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#xtp .wrap{max-width:calc(var(--wrapw) + var(--gut)*2);margin:0 auto;padding:0 var(--gut)}
#xtp section{padding:56px 0;scroll-margin-top:calc(var(--bar-top) + var(--bar-h) + 12px)}
@media (min-width:1024px){#xtp section{padding:100px 0}}
#xtp .dark{background:var(--ink);color:#F2F2EE}
#xtp .white{background:var(--white)}
#xtp :focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:4px}
#xtp .dark :focus-visible,#xtp .coursebar :focus-visible,#xtp .next-panel :focus-visible,#xtp .sticky-cta :focus-visible,#xtp .recap :focus-visible{outline-color:var(--y)}
#xtp .skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
#xtp .skip:focus{position:fixed;left:12px;top:calc(var(--bar-top) + 12px);z-index:200;width:auto;height:auto;clip:auto;background:var(--y);color:var(--ink);padding:10px 16px;border-radius:var(--r-ctl);font-weight:700}
/* Windoor adds 100px under its header on every page; on this page the hero should start right below it. */
body:has(#xtp) #header-wrapper{margin-bottom:0}

/* Type */
#xtp :is(h1,h2,h3):not(.xtp-ext *){font-family:var(--display);font-weight:700;text-wrap:balance}
#xtp h1{font-size:clamp(40px,4.2vw,70px);line-height:1.02}
#xtp h2{font-size:clamp(30px,3.7vw,48px);line-height:1.04;max-width:20ch}
#xtp h3:not(.xtp-ext *){font-size:clamp(22px,2vw,27px);line-height:1.12}
#xtp .kicker{display:flex;align-items:center;gap:12px;font:700 13px/1.4 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}
#xtp .kicker::before{content:"";width:28px;height:4px;background:var(--y);flex:none}
#xtp .dark .kicker{color:var(--muted-d)}
#xtp .lede{font-size:clamp(17px,1.35vw,19px);line-height:1.65;color:#333;max-width:58ch}
#xtp .dark .lede{color:#D4D4CE}
#xtp .muted{color:var(--muted)}
#xtp .dark .muted{color:var(--muted-d)}
#xtp .spaced{margin-top:26px}
#xtp .spaced-sm{margin-top:18px}
#xtp .sec-head{display:grid;gap:18px;margin-bottom:40px}
@media (min-width:1024px){#xtp .sec-head.split{grid-template-columns:1fr 1fr;align-items:end;gap:48px;margin-bottom:56px}}
#xtp .i{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Buttons */
#xtp .btn{--bh:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--bh);padding:0 24px;border-radius:var(--r-ctl);font:700 16px/1.1 var(--body);text-decoration:none;border:2px solid transparent;cursor:pointer;transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease),transform .15s var(--ease);white-space:nowrap}
#xtp .btn:active{transform:translateY(1px)}
/* a.btn-primary matches the link reset's weight (#xtp a:not(.xtp-ext *) sets color:inherit) and wins by order,
   so yellow link-buttons keep dark text and icons inside dark sections too, in every link state. */
#xtp .btn-primary,#xtp a.btn-primary{background:var(--y);color:var(--ink)}
#xtp .btn-primary:hover,#xtp a.btn-primary:hover{background:var(--y2);color:var(--ink)}
#xtp .btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
#xtp .btn-ghost:hover{background:var(--ink);color:#fff}
#xtp .dark .btn-ghost{color:#fff;border-color:#6A6A66}
#xtp .dark .btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
#xtp .btn-block{width:100%}
#xtp .btn[disabled]{background:#E4E4DF;color:#5E5E5A;border-color:#E4E4DF;cursor:not-allowed;transform:none}
#xtp .btn-sm{--bh:44px;padding:0 16px;font-size:15px}
#xtp .btn .i{width:18px;height:18px}
#xtp .textlink{font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--y)}
#xtp .textlink:hover{text-decoration-color:currentColor}

/* Review notes (editors only, server-side) */
#xtp .review-bar{background:#0E1A3A;color:#E7ECFF;font-size:14px;line-height:1.4;padding:10px 0}
#xtp .review-bar strong{color:#fff}
#xtp .rv{display:inline-flex;align-items:center;font:700 11px/1.25 var(--body);letter-spacing:.04em;text-transform:uppercase;color:var(--rv);background:var(--rv-bg);border:1px dashed var(--rv);padding:3px 8px;border-radius:999px;vertical-align:middle;white-space:normal;max-width:100%;margin-left:6px}
#xtp .rv-line{margin-top:10px}
#xtp .rv-line .rv{margin-left:0}
#xtp .dark .rv{background:#16244F;color:#AFC3FF;border-color:#6D89E6}

/* Course bar (desktop; the theme header stays above it) */
#xtp .coursebar{display:none}
@media (min-width:1000px){
  #xtp .coursebar{display:block;position:relative;z-index:2;background:var(--char);color:#fff;border-bottom:1px solid #000}
  #xtp .coursebar .wrap{display:flex;align-items:center;gap:20px;height:var(--bar-h)}
  #xtp .cb-name{font:700 13px/1.2 var(--body);letter-spacing:.12em;text-transform:uppercase;color:#CFCFC8;white-space:nowrap}
  #xtp .cb-name b{color:var(--y)}
  #xtp .coursebar ul{display:flex;gap:4px;margin-left:auto}
  #xtp .coursebar ul a{display:block;padding:9px 12px;border-radius:6px;font-weight:600;font-size:15px;color:#E6E6E0}
  #xtp .coursebar ul a:hover{background:#383836;color:#fff}
  #xtp .cb-phone{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:#fff;padding:9px 6px}
  #xtp .cb-phone .i{color:var(--y)}
}
@media (min-width:1000px) and (max-width:1180px){#xtp .cb-phone span{display:none}#xtp .cb-name{display:none}}

/* Hero */
#xtp .hero{padding:16px 0 56px}
@media (max-width:599px){
  #xtp .eyebrow{font-size:12px;letter-spacing:.1em;gap:8px;margin-bottom:14px}
  #xtp .hero .lede{font-size:16px;line-height:1.55;margin-top:12px}
  #xtp .offer-line{font-size:17px;margin-top:16px}
  #xtp .offer-line li{padding:6px 10px 6px 0;margin-right:10px}
  #xtp .offer-line .price{padding:6px 10px}
  #xtp .cta-row{margin-top:18px}
}
#xtp .hero-grid{display:grid;gap:36px}
#xtp .eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font:700 13px/1.4 var(--body);letter-spacing:.14em;text-transform:uppercase;margin:0 0 18px}
#xtp .eyebrow b{background:var(--y);padding:4px 8px;border-radius:4px;letter-spacing:.1em;white-space:nowrap}
#xtp .hero h1{max-width:17ch}
#xtp .hero .lede{margin-top:16px}
#xtp .offer-line{margin:20px 0 0;display:flex;flex-wrap:wrap;font:700 clamp(19px,1.7vw,22px)/1.2 var(--display);letter-spacing:.02em;text-transform:uppercase}
#xtp .offer-line li{display:flex;align-items:center;padding:8px 16px 8px 0;margin-right:16px;border-right:2px solid var(--line)}
#xtp .offer-line li:last-child{border-right:0}
#xtp .offer-line .price{background:var(--ink);color:var(--y);padding:8px 12px;border-radius:6px;border:0;gap:8px}
#xtp .offer-line .price del{color:#B9B9B2;font-size:.8em;text-decoration-thickness:2px}
#xtp .final-facts del{color:var(--muted-d);font-size:.75em;margin-right:4px;text-decoration-thickness:2px}
#xtp .cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
#xtp .reassure{display:flex;align-items:center;gap:8px;margin-top:16px;font-weight:600;font-size:15px}
#xtp .reassure .i{color:var(--ok)}
#xtp .hero-media{position:relative;isolation:isolate;align-self:start}
#xtp .hero-media::before{content:"";position:absolute;z-index:-1;inset:18px -10px -14px 18px;background:var(--y);border-radius:var(--r-media)}
#xtp .hero-media figure{border-radius:var(--r-media);overflow:hidden;background:#ddd;aspect-ratio:4/3.1;position:relative}
#xtp .hero-media figure img{width:100%;height:100%;object-fit:cover}
#xtp .media-tag{position:absolute;top:14px;left:14px;display:inline-flex;align-items:center;gap:6px;background:rgba(21,21,21,.84);color:#fff;font:700 12px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;padding:8px 10px;border-radius:6px}
#xtp .media-tag::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--y)}
#xtp .next-panel{position:relative;margin-top:16px;background:var(--ink);color:#fff;border-radius:12px;padding:20px 22px;display:grid;gap:4px;box-shadow:0 18px 40px -18px rgba(0,0,0,.45);border-top:4px solid var(--y)}
#xtp .np-label{font:700 12px/1.4 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--y)}
#xtp .np-date{font:700 clamp(24px,2.2vw,30px)/1.1 var(--display)}
#xtp .np-meta{color:#CFCFC8;font-size:15px}
#xtp .np-link{margin-top:8px;font-weight:700;font-size:15px;display:inline-flex;align-items:center;gap:6px;color:#fff;justify-self:start}
#xtp .np-link:hover{color:var(--y)}
@media (min-width:980px){
  #xtp .hero{padding:28px 0 104px}
  #xtp .hero-grid{grid-template-columns:48fr 52fr;gap:56px;align-items:center}
  #xtp .next-panel{position:absolute;left:-36px;bottom:-40px;margin:0;min-width:300px;max-width:380px}
}

/* Proof strip */
#xtp .proof{padding:0}
#xtp .proof .wrap{display:grid;grid-template-columns:1fr 1fr}
#xtp .proof-item{display:flex;align-items:center;gap:12px;padding:22px 8px;font-weight:700;font-size:15px;line-height:1.3;border-bottom:1px solid var(--line-d)}
#xtp .proof-item .i{width:26px;height:26px;color:var(--y)}
#xtp .proof-reviews{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:18px 8px 22px;font-size:15px}
#xtp .proof-reviews a{display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:700;text-decoration:underline;text-decoration-color:var(--y);text-underline-offset:4px}
#xtp .proof-reviews .i{width:16px;height:16px}
@media (min-width:1000px){
  #xtp .proof .wrap{grid-template-columns:repeat(4,auto) minmax(230px,1fr)}
  #xtp .proof-item{border-bottom:0;border-right:1px solid var(--line-d);padding:28px 26px}
  #xtp .proof-item:first-child{padding-left:0}
  #xtp .proof-reviews{grid-column:auto;justify-content:flex-end;padding:28px 0 28px 26px}
}

/* Workshop video (vertical reel) */
#xtp .video-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:40px;align-items:center}
@media (min-width:900px){#xtp .video-grid{grid-template-columns:minmax(0,320px) minmax(0,560px);justify-content:center;gap:88px}}
#xtp .reel{position:relative;isolation:isolate;width:100%;max-width:340px;margin:0 auto}
@media (min-width:900px){#xtp .reel{max-width:none}}
#xtp .reel::before{content:"";position:absolute;z-index:-1;inset:22px -14px -16px 22px;background:var(--y);border-radius:22px}
#xtp .reel-frame{position:relative;border-radius:22px;overflow:hidden;background:#000;aspect-ratio:9/16;box-shadow:0 30px 60px -30px rgba(0,0,0,.5)}
#xtp .reel-frame video{display:block;width:100%;height:100%;object-fit:cover;background:#000}
#xtp .video-facade{position:relative;display:block;width:100%;height:100%;border:0;padding:0;background:#000;cursor:pointer;color:#fff;text-align:left}
#xtp .video-facade img{width:100%;height:100%;object-fit:cover;opacity:.94;transition:opacity .2s var(--ease)}
#xtp .video-facade:hover img{opacity:.8}
#xtp .video-facade::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(to top,rgba(0,0,0,.75),rgba(0,0,0,0));pointer-events:none}
#xtp .video-facade .play{position:absolute;z-index:1;left:20px;right:20px;bottom:22px;display:flex;align-items:center;gap:14px;font:700 17px/1.3 var(--body)}
#xtp .video-facade .play-dot{flex:none;width:68px;height:68px;border-radius:50%;background:var(--y);color:var(--ink);display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.35);transition:transform .15s var(--ease)}
#xtp .video-facade:hover .play-dot{transform:scale(1.06)}
#xtp .video-facade .play-dot .i{width:26px;height:26px;fill:currentColor;margin-left:4px}
#xtp .video-facade .play small{display:block;font-weight:600;font-size:13px;color:#ddd}
#xtp .video-note{font-size:15px;margin-top:22px}
#xtp .workshop-copy .lede{margin-top:20px}
#xtp .chapters{margin:28px 0 0;border-top:1px solid var(--line)}
#xtp .chapters li{display:flex;gap:16px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line);font-weight:600}
#xtp .chapters span{font:700 20px/1 var(--display);color:var(--muted);min-width:28px}

/* Who it's for */
#xtp .fit-grid{display:grid;gap:36px}
#xtp .fit-cols{display:grid;gap:28px;margin-top:36px}
#xtp .fit-col{padding-top:20px;border-top:3px solid var(--ink)}
#xtp .fit-col h3{margin-bottom:10px}
#xtp .fit-col p{color:#333}
#xtp .expect{margin-top:32px;display:flex;gap:14px;padding:20px 22px;background:var(--white);border:1px solid var(--line);border-left:4px solid var(--y);border-radius:var(--r-ctl);font-size:15px}
#xtp .expect .i{margin-top:2px}
#xtp .fit-photo{border-radius:var(--r-media);overflow:hidden;aspect-ratio:4/5;background:#ccc}
#xtp .fit-photo img{width:100%;height:100%;object-fit:cover}
#xtp .fit-photo-wrap figcaption{font-size:14px;margin-top:10px}
@media (min-width:1024px){#xtp .fit-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:72px;align-items:center}#xtp .fit-cols{grid-template-columns:1fr 1fr;gap:36px}}

/* Systems */
#xtp .systems-grid{display:grid;gap:18px}
#xtp .sys{display:flex;flex-direction:column;background:var(--char);border-radius:var(--r-media);overflow:hidden;border:1px solid #333}
#xtp .sys figure{position:relative;aspect-ratio:16/10;background:#333;overflow:hidden}
#xtp .sys figure img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
#xtp .sys:hover figure img{transform:scale(1.03)}
#xtp .sys-body{padding:20px 22px 24px}
#xtp .sys h3{color:#fff;margin-bottom:8px}
#xtp .sys p{color:#CFCFC8;font-size:15px;line-height:1.55}
#xtp .sys.text-only{justify-content:center;background:repeating-linear-gradient(135deg,#2a2a2a 0 14px,#262626 14px 28px)}
#xtp .sys.text-only .sys-body{padding:32px 28px}
#xtp .sys-quartz figure{aspect-ratio:1/1;max-height:520px}
#xtp .sys figure.duo{display:grid;grid-template-columns:1fr 1fr;gap:3px;aspect-ratio:4/3}
#xtp .sys figure.duo img{min-width:0;min-height:0}
@media (min-width:860px){
  #xtp .systems-grid{grid-template-columns:repeat(12,1fr)}
  #xtp .sys-metallic{grid-column:1/8;grid-row:1/3}
  #xtp .sys-metallic figure{aspect-ratio:auto;flex:1;min-height:360px}
  #xtp .sys-metallic figure img{position:absolute;inset:0}
  #xtp .sys-flake,#xtp .sys-counter{grid-column:8/13}
  /* Glitter pair takes the wide slot; the square quartz photo fills the narrow one beside it. */
  #xtp .sys-glitter{grid-column:1/8;grid-row:3}
  #xtp .sys-quartz{grid-column:8/13;grid-row:3}
  #xtp .sys-quartz figure{aspect-ratio:auto;flex:1;min-height:300px;max-height:none}
  #xtp .sys-quartz figure img{position:absolute;inset:0}
}
#xtp .systems-foot{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;justify-content:space-between;margin-top:36px;padding-top:28px;border-top:1px solid var(--line-d)}
#xtp .systems-foot p{max-width:62ch}

/* Curriculum */
#xtp .curr-grid{display:grid;gap:36px}
#xtp .curr-visual{display:none}
@media (min-width:1024px){
  #xtp .curr-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:start}
  #xtp .curr-visual{display:block;position:sticky;top:calc(var(--bar-top) + var(--bar-h) + 28px)}
}
#xtp .curr-visual figure{border-radius:var(--r-media);overflow:hidden;aspect-ratio:4/4.4;background:#ddd;position:relative}
#xtp .curr-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .35s var(--ease)}
#xtp .curr-visual img.out{opacity:0}
#xtp .curr-cap{margin-top:12px;font-size:14px;color:var(--muted)}
#xtp .modules{border-top:2px solid var(--ink)}
#xtp .module{border-bottom:1px solid var(--line)}
#xtp .module summary{list-style:none;display:grid;grid-template-columns:56px 1fr 28px;gap:8px 14px;align-items:start;padding:22px 0;cursor:pointer}
#xtp .module summary::-webkit-details-marker{display:none}
#xtp .module .num{font:700 34px/1 var(--display);color:#B4B4AC;transition:color .15s}
#xtp .module[open] .num,#xtp .module summary:hover .num{color:var(--ink)}
#xtp .module .m-title{font:700 clamp(22px,2vw,27px)/1.12 var(--display)}
#xtp .module .m-why{display:block;margin-top:6px;font:500 15px/1.5 var(--body);color:var(--muted)}
#xtp .tog{width:28px;height:28px;border-radius:50%;border:2px solid var(--ink);display:grid;place-items:center;flex:none;transition:transform .2s var(--ease),background-color .15s}
#xtp .tog .i{width:14px;height:14px;stroke-width:3}
#xtp details[open] > summary .tog{transform:rotate(45deg);background:var(--y);border-color:var(--y)}
#xtp .module .m-body{padding:0 0 24px 70px}
#xtp .module ul{display:flex;flex-wrap:wrap;gap:8px}
#xtp .module li{font-size:14px;font-weight:600;background:var(--paper);border:1px solid var(--line);padding:7px 12px;border-radius:999px}
#xtp .m-img{display:block;margin-top:16px;border-radius:12px;overflow:hidden;aspect-ratio:16/9}
#xtp .m-img img{width:100%;height:100%;object-fit:cover}
@media (min-width:1024px){#xtp .m-img{display:none}}
@media (max-width:560px){#xtp .module summary{grid-template-columns:40px 1fr 28px}#xtp .module .num{font-size:26px}#xtp .module .m-body{padding-left:0}}

/* Included + support */
#xtp .inc-grid{display:grid;gap:32px}
@media (min-width:1024px){#xtp .inc-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:start}}
#xtp .inc-list{background:var(--white);border:1px solid var(--line);border-radius:var(--r-media)}
#xtp .inc-list li{display:grid;grid-template-columns:32px 1fr;gap:14px;padding:18px 22px;border-bottom:1px solid var(--line)}
#xtp .inc-list li:last-child{border-bottom:0}
#xtp .tick{width:32px;height:32px;border-radius:50%;background:var(--y);display:grid;place-items:center}
#xtp .tick .i{width:16px;height:16px;stroke-width:3}
#xtp .inc-list strong{display:block;font-size:16.5px}
#xtp .inc-list .d{display:block;font-size:14.5px;color:var(--muted);margin-top:2px}
#xtp .support-card{background:var(--ink);color:#fff;border-radius:var(--r-media);padding:32px 30px;position:relative;overflow:hidden}
#xtp .support-card::after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;border:28px solid var(--y);border-radius:50%}
#xtp .support-card h3{font-size:clamp(26px,2.4vw,32px);max-width:14ch;position:relative;z-index:1}
#xtp .support-card p{color:#D4D4CE;margin-top:14px;position:relative;z-index:1}
#xtp .support-card .btn{margin-top:22px}
#xtp .not-incl{margin-top:18px;font-size:14px}

/* How the class works */
#xtp .inst-grid{display:grid;gap:36px}
@media (min-width:1024px){#xtp .inst-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}}
#xtp .inst-photo{border-radius:var(--r-media);overflow:hidden;aspect-ratio:4/5;background:#ccc;position:relative}
#xtp .inst-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
#xtp .inst-copy .lede{margin-top:18px}
#xtp .inst-points{margin:26px 0 0;display:grid;gap:12px}
#xtp .inst-points li{display:flex;gap:12px;font-weight:600}
#xtp .inst-points .i{color:var(--ink);background:var(--y);border-radius:50%;padding:4px;width:26px;height:26px;stroke-width:3}

/* Student experiences */
#xtp .rev-grid{display:grid;gap:28px}
@media (min-width:1024px){#xtp .rev-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center}}
#xtp .rev-feature{position:relative;padding-top:48px}
#xtp .rev-feature::before{content:"\201C";position:absolute;top:-36px;left:-6px;font:700 160px/1 var(--display);color:var(--y)}
#xtp .rev-feature h2{max-width:16ch}
#xtp .rev-feature .lede{margin-top:18px}
#xtp .stories{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}
#xtp .story{width:min(100%,340px);margin:0}
#xtp .story figcaption{margin-top:12px;color:#CFCFC8;font-size:14px;line-height:1.5}
@media (max-width:639px){
  /* Two videos on a phone: a swipeable row (with a peek of the next card) instead of two full-height stacks. */
  #xtp .rev-grid.has-2 .stories{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -20px;padding:0 20px 6px;scroll-padding:0 20px;scrollbar-width:none}
  #xtp .rev-grid.has-2 .stories::-webkit-scrollbar{display:none}
  #xtp .rev-grid.has-2 .story{flex:0 0 min(78vw,300px);scroll-snap-align:start}
}
@media (min-width:1024px){
  /* With a student video: text and group photo on the left, the vertical video beside them. */
  #xtp .rev-grid.has-stories{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"feature stories" "photo stories";align-items:start;column-gap:64px;row-gap:32px}
  #xtp .rev-grid.has-stories .rev-feature{grid-area:feature}
  #xtp .rev-grid.has-stories .stories{grid-area:stories;align-self:center}
  #xtp .rev-grid.has-stories .rev-photo{grid-area:photo}
  #xtp .story{width:300px}
  #xtp .rev-grid.has-stories.has-2{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
  #xtp .rev-grid.has-2 .stories{flex-wrap:nowrap}
  #xtp .rev-grid.has-2 .story{flex:1 1 0;width:auto;max-width:300px}
}
#xtp .rev-photo{border-radius:var(--r-media);overflow:hidden;aspect-ratio:16/10;position:relative}
#xtp .rev-photo img{width:100%;height:100%;object-fit:cover;object-position:42% 50%}

/* Dates & tuition: the XPS Training Calendar component, restyled through its own scope */
#xtp .register{position:relative;background:var(--paper)}
#xtp .register::before{content:"";position:absolute;left:0;right:0;top:0;height:10px;background:repeating-linear-gradient(135deg,var(--ink) 0 14px,var(--y) 14px 28px)}
#xtp .xps-training-schedule{--xps-tc-accent:var(--y);--xps-tc-ink:var(--ink);--xps-tc-muted:var(--muted);--xps-tc-line:var(--line);--xps-tc-paper:var(--white);max-width:none;padding:0;font-family:var(--body)}
#xtp .xps-training-schedule .xps-tc-heading{max-width:none;margin-bottom:40px;display:grid;gap:14px}
@media (min-width:1024px){#xtp .xps-training-schedule .xps-tc-heading{grid-template-columns:1fr 1fr;align-items:end;column-gap:48px;margin-bottom:48px}#xtp .xps-training-schedule .xps-tc-eyebrow{grid-column:1}#xtp .xps-training-schedule .xps-tc-heading h2{grid-column:1}#xtp .xps-training-schedule .xps-tc-heading>p:last-child{grid-column:2;grid-row:2}}
#xtp .xps-training-schedule .xps-tc-eyebrow{display:flex;align-items:center;gap:12px;margin:0;font:700 13px/1.4 var(--body);letter-spacing:.14em;color:var(--muted)}
#xtp .xps-training-schedule .xps-tc-eyebrow::before{content:"";width:28px;height:4px;background:var(--y);flex:none}
#xtp .xps-training-schedule .xps-tc-heading h2{font:700 clamp(30px,3.7vw,48px)/1.04 var(--display);letter-spacing:normal;margin:0;max-width:20ch;color:var(--ink)}
#xtp .xps-training-schedule .xps-tc-heading>p:last-child{font-size:clamp(17px,1.35vw,19px);line-height:1.65;color:#333;max-width:58ch}
#xtp .xps-training-schedule .xps-tc-grid{gap:18px}
#xtp .xps-training-schedule .xps-tc-card{border:2px solid var(--line);border-radius:12px;padding:24px 24px 22px;box-shadow:none}
#xtp .xps-training-schedule .xps-tc-card[data-state=register]{border-color:var(--ink);border-top:6px solid var(--y);padding-top:20px;box-shadow:0 16px 30px -22px rgba(0,0,0,.4)}
#xtp .xps-training-schedule .xps-tc-month{font:700 12px/1.4 var(--body);letter-spacing:.12em;color:var(--muted);margin-bottom:10px}
#xtp .xps-training-schedule h3{font:700 clamp(24px,2.1vw,30px)/1.1 var(--display);letter-spacing:normal;margin:0 0 8px;color:var(--ink)}
#xtp .xps-training-schedule .xps-tc-location{font-size:14.5px;margin-bottom:16px}
#xtp .xps-training-schedule .xps-tc-price{font:800 18px/1.4 var(--body);margin:auto 0 18px}
#xtp .xps-training-schedule .xps-tc-now:not(:empty)::before{content:var(--xtp-currency)}
#xtp .xps-training-schedule + .xps-training-schedule{margin-top:18px}
#xtp .xps-training-schedule + .xps-training-schedule .xps-tc-heading{display:none}
#xtp .xps-training-schedule .xps-tc-card:not([data-state=register]) :is(h3,.xps-tc-price){color:#6E6E69}
#xtp .xps-training-schedule .xps-tc-button{min-height:52px;border-radius:var(--r-ctl);font:700 16px/1.2 var(--body);padding:14px 18px;border:2px solid transparent}
#xtp .xps-training-schedule a.xps-tc-button:hover{background:var(--y2)}
#xtp .xps-training-schedule .xps-tc-button:disabled{background:#E4E4DF;color:#4F4F4B;border-color:#E4E4DF}
#xtp .xps-training-schedule .xps-tc-button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
#xtp .xps-training-schedule :is(.xps-tc-empty,.xps-tc-refresh){font-size:15px;padding:16px 18px;border-radius:var(--r-ctl);background:var(--white);border:2px dashed #C9C9C2;color:var(--ink)}
#xtp .xps-training-schedule .xps-tc-refresh{border-color:#E2B4B4;background:#FFF8F8}
#xtp .reg-msg{background:var(--white);border:2px solid var(--line);border-radius:12px;padding:26px 24px;display:grid;gap:10px}
#xtp .booking-notes{display:grid;gap:12px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
@media (min-width:900px){#xtp .booking-notes{grid-template-columns:1.3fr 1fr 1fr;gap:24px}}
#xtp .booking-notes li{display:flex;gap:10px;font-size:15px;line-height:1.5;color:#333}
#xtp .booking-notes .i{margin-top:2px;color:var(--ink)}

/* Venue */
#xtp .venue-grid{display:grid;gap:32px}
@media (min-width:1024px){#xtp .venue-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:64px;align-items:center}}
#xtp .address{font-style:normal;margin-top:24px;padding:20px 22px;background:var(--paper);border-radius:12px;display:flex;gap:14px;font-weight:600;line-height:1.5}
#xtp .address .i{width:24px;height:24px;margin-top:2px}
#xtp .venue-facts{margin-top:24px;border-top:1px solid var(--line)}
#xtp .venue-facts li{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line);font-size:15px}
#xtp .venue-facts li span:first-child{color:var(--muted)}
#xtp .venue-facts li span:last-child{font-weight:600;text-align:right}
#xtp .gta{margin-top:16px;font-size:15px}
#xtp .map-box{position:relative;aspect-ratio:4/3;border-radius:var(--r-media);overflow:hidden;background:#1E1E1E;color:#fff}
#xtp .map-box .grid{position:absolute;inset:0;background-image:linear-gradient(#2c2c2c 1px,transparent 1px),linear-gradient(90deg,#2c2c2c 1px,transparent 1px);background-size:44px 44px}
#xtp .map-box .road{position:absolute;background:#3a3a3a}
#xtp .map-box .road-h{left:0;right:0;top:58%;height:14px}
#xtp .map-box .road-v1{top:0;bottom:0;left:30%;width:12px}
#xtp .map-box .road-v2{top:0;bottom:0;left:76%;width:8px}
#xtp .map-box .pin{position:absolute;left:54%;top:44%;transform:translate(-50%,-100%);display:grid;justify-items:center;gap:8px}
#xtp .map-box .dot{width:56px;height:56px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--y);display:grid;place-items:center;box-shadow:0 10px 26px rgba(0,0,0,.5)}
#xtp .map-box .dot span{transform:rotate(45deg);font:700 15px/1 var(--display);color:var(--ink)}
#xtp .map-box .pin-label{background:#fff;color:var(--ink);font-weight:700;font-size:14px;padding:6px 10px;border-radius:6px;white-space:nowrap}
#xtp .map-note{position:absolute;top:14px;right:16px;font-size:12px;color:#9a9a94}
#xtp .map-actions{position:absolute;left:18px;right:18px;bottom:18px;display:flex;flex-wrap:wrap;gap:10px}
#xtp .map-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
#xtp .map-box.photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#xtp .map-box.photo::after{content:"";position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(to top,rgba(0,0,0,.55),rgba(0,0,0,0));pointer-events:none}
#xtp .map-box.photo .map-actions{z-index:1}
#xtp figure.storefront-wide{margin:16px 0 0}
#xtp .storefront-wide img{display:block;width:100%;height:auto;aspect-ratio:1360/580;object-fit:cover;border-radius:var(--r-media)}
#xtp .storefront-wide figcaption{margin-top:10px;font-size:14px;line-height:1.5;color:var(--muted)}

/* FAQ */
#xtp .faq-grid{display:grid;gap:36px}
@media (min-width:1024px){#xtp .faq-grid{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:64px;align-items:start}#xtp .faq-side{position:sticky;top:calc(var(--bar-top) + var(--bar-h) + 28px)}}
#xtp .faq-side .lede{margin-top:18px}
#xtp .faq-side .btn{margin-top:24px}
#xtp .faq-group+.faq-group{margin-top:40px}
#xtp .faq-group h3{font:800 15px/1.4 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-bottom:12px;border-bottom:2px solid var(--ink)}
#xtp .faq{border-bottom:1px solid var(--line)}
#xtp .faq summary{list-style:none;display:flex;justify-content:space-between;gap:18px;align-items:center;padding:20px 0;cursor:pointer;font-weight:700;font-size:17px;line-height:1.4}
#xtp .faq summary::-webkit-details-marker{display:none}
#xtp .faq .a{padding:0 46px 22px 0;color:#333}

/* Final CTA + enquiry */
#xtp .final-grid{display:grid;gap:40px}
@media (min-width:1024px){#xtp .final-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}}
#xtp .final h2{font-size:clamp(40px,5vw,68px);max-width:12ch}
#xtp .final .lede{margin-top:20px}
#xtp .final-facts{margin:28px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-d);border:1px solid var(--line-d);border-radius:12px;overflow:hidden}
#xtp .final-facts li{background:var(--ink);padding:16px 18px}
#xtp .final-facts small{display:block;color:var(--muted-d);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
#xtp .final-facts b{font:700 22px/1.2 var(--display)}
#xtp .final .cta-row{margin-top:28px}
#xtp .enquiry{background:var(--white);color:var(--ink);border-radius:var(--r-media);padding:30px 26px}
#xtp .enquiry h3{font-size:30px}
#xtp .enquiry .intro{margin-top:8px;color:var(--muted);font-size:15px}
#xtp .enquiry form{display:grid;gap:18px;margin-top:22px}
#xtp .field{display:grid;gap:6px}
#xtp .field label{font-weight:700;font-size:15px;color:var(--ink)}
#xtp .field .opt{font-weight:500;color:var(--muted)}
#xtp .field :is(input,textarea){font:500 16px/1.4 var(--body);padding:13px 14px;border:2px solid var(--line);border-radius:var(--r-ctl);background:#fff;color:var(--ink);min-height:52px;width:100%;box-shadow:none;margin:0}
#xtp .field textarea{min-height:120px;resize:vertical}
#xtp .field :is(input,textarea):focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(241,207,0,.6)}
#xtp .field[data-invalid] :is(input,textarea){border-color:var(--stop)}
#xtp .field .err{display:none;color:var(--stop);font-size:14px;font-weight:600}
#xtp .field[data-invalid] .err{display:flex;gap:6px;align-items:center}
#xtp .field .hint{font-size:13px;color:var(--muted)}
#xtp .two{display:grid;gap:18px}
@media (min-width:560px){#xtp .two{grid-template-columns:1fr 1fr}}
#xtp .form-status{border-radius:var(--r-ctl);padding:14px 16px;font-size:15px;font-weight:600;display:none}
#xtp .form-status.show{display:block}
#xtp .form-status.preview{background:var(--rv-bg);color:#1B3A8C;border:1px dashed var(--rv)}
#xtp .form-status.error{background:#FFF1F1;color:var(--stop);border:1px solid #E7B9B9}
#xtp .privacy{font-size:13px;color:var(--muted)}
#xtp .privacy a{text-decoration:underline}

/* Owner list (review build only) */
#xtp .owner{background:#0E1A3A;color:#E7ECFF;padding:56px 0}
#xtp .owner h2{color:#fff;font-size:34px;max-width:none}
#xtp .owner .lede{color:#C9D3F5;margin-top:10px}
#xtp .owner ol{margin-top:26px;display:grid;gap:10px;counter-reset:o}
@media (min-width:900px){#xtp .owner ol{grid-template-columns:1fr 1fr;column-gap:32px}}
#xtp .owner li{counter-increment:o;display:grid;grid-template-columns:34px 1fr;gap:10px;padding:12px 0;border-bottom:1px solid #26366A;font-size:15px}
#xtp .owner li::before{content:counter(o,decimal-leading-zero);font:700 18px/1.3 var(--display);color:#8FA6EE}
#xtp .owner b{color:#fff}

/* Mobile sticky booking bar */
#xtp .sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--ink);color:#fff;border-top:3px solid var(--y);padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:14px;transform:translateY(110%);transition:transform .25s var(--ease);visibility:hidden}
#xtp .sticky-cta.show{transform:none;visibility:visible}
#xtp .sc-info{display:grid;line-height:1.25;min-width:0}
#xtp .sc-info b{font:700 19px/1.2 var(--display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#xtp .sc-info span{font-size:13px;color:#C9C9C2}
#xtp .sticky-cta .btn{--bh:48px;padding:0 18px}
#xtp.has-sticky{padding-bottom:76px}
body:has(#xtp.has-sticky) #back-to-top{bottom:96px!important;transition:bottom .25s}
@media (min-width:1000px){#xtp .sticky-cta{display:none}#xtp.has-sticky{padding-bottom:0}}

/* Supporting-section reveal: only with JS and when motion is allowed */
@media (prefers-reduced-motion:no-preference){
  #xtp.js .reveal{opacity:0;transform:translateY(12px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
  #xtp.js .reveal.in{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){#xtp *,#xtp *::before,#xtp *::after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}

/* Google reviews (Trustindex) and Gravity Forms render their own markup inside .xtp-ext */
#xtp .proof-reviews .g-stars{color:var(--y);font-size:18px;line-height:1}
#xtp .rev-widget{margin-top:40px;background:var(--white);color:var(--ink);border-radius:var(--r-media);padding:24px 16px}
#xtp .xtp-gform{margin-top:18px}
#xtp .xtp-gform .gform_wrapper{margin:0}
#xtp .xtp-gform :is(.gfield_label,legend.gfield_label){font:700 15px/1.4 var(--body);color:var(--ink)}
#xtp .xtp-gform :is(input[type=text],input[type=email],input[type=tel],textarea,select){font:500 16px/1.4 var(--body);padding:12px 14px;border:2px solid var(--line);border-radius:var(--r-ctl);background:#fff;color:var(--ink);min-height:52px;width:100%;box-shadow:none}
#xtp .xtp-gform textarea{min-height:120px}
#xtp .xtp-gform :is(input,textarea,select):focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(241,207,0,.6)}
#xtp .xtp-gform :is(input[type=submit],button[type=submit],.gform_button){width:100%;min-height:52px;padding:0 24px;border:0;border-radius:var(--r-ctl);background:var(--y);color:var(--ink);font:700 16px/1.1 var(--body);cursor:pointer;text-transform:none;letter-spacing:normal}
#xtp .xtp-gform :is(input[type=submit],button[type=submit],.gform_button):hover{background:var(--y2)}
#xtp .xtp-gform .validation_message,#xtp .xtp-gform .gform_validation_errors{font-size:14px}
