.training-calendar-page { overflow:hidden; color:#10213d; background:#f6fbf7; }
.training-calendar-hero { position:relative; overflow:hidden; min-height:clamp(430px,40vw,610px); color:#fff; background:#063c36 url('../assets/backgroundservices.png') center/cover no-repeat; isolation:isolate; }
.training-calendar-hero::before { position:absolute; inset:0; z-index:-1; background:linear-gradient(110deg,rgba(1,47,44,.98),rgba(2,86,61,.88) 53%,rgba(25,150,67,.56)); content:''; }
.training-calendar-hero::after { position:absolute; right:-11%; bottom:-44%; width:68%; height:105%; border:2px solid rgba(155,244,82,.32); border-radius:50%; box-shadow:0 0 0 28px rgba(155,244,82,.08),0 0 0 58px rgba(155,244,82,.05); content:''; transform:rotate(-13deg); }
.training-calendar-hero-glow { position:absolute; top:-35%; right:16%; width:440px; height:440px; border-radius:50%; background:rgba(122,239,87,.2); filter:blur(5px); }
.training-calendar-hero-inner { position:relative; min-height:inherit; padding-top:clamp(78px,8vw,120px); padding-bottom:clamp(70px,8vw,110px); }
.training-calendar-hero .service-detail-back { display:inline-flex; margin-bottom:78px; color:#b4f3bd; }
.training-calendar-hero h1 { max-width:850px; margin:0; color:#fff; font:800 clamp(3rem,6vw,6.6rem)/.98 var(--heading-font); letter-spacing:-.08em; }
.training-calendar-hero h1 em { color:#9ce54b; font-style:normal; }
.training-calendar-hero > .services-page-shell > p:not(.services-page-eyebrow) { max-width:690px; margin:26px 0 0; color:rgba(255,255,255,.84); font-size:clamp(1rem,1.35vw,1.28rem); line-height:1.6; }
.training-calendar-hero-meta { display:flex; flex-wrap:wrap; gap:12px 30px; margin-top:35px; color:#d4f8d6; font-size:.9rem; font-weight:800; }
.training-calendar-hero-meta i { margin-right:8px; color:#9ce54b; }
.training-calendar-content { padding:clamp(76px,8vw,120px) 0 130px; background:#f6fbf7; }
.training-calendar-box { padding:clamp(24px,4vw,52px); border:1px solid #d6e8dc; border-radius:26px; background:#fff; box-shadow:0 20px 46px rgba(19,94,52,.09); }
.training-calendar-heading { display:flex; align-items:end; justify-content:space-between; gap:44px; margin-bottom:34px; }
.training-calendar-heading-side { display:flex; flex-direction:column; align-items:flex-end; gap:18px; }
.training-calendar-heading-side > p { max-width:440px; margin:0; color:#526b79; font-size:1.05rem; line-height:1.65; text-align:justify; }
.training-calendar-register { display:inline-flex; align-items:center; gap:18px; padding:14px 20px; border-radius:10px; background:#087d4b; color:#fff; font-size:.92rem; font-weight:800; text-decoration:none; transition:background .2s ease,transform .2s ease,box-shadow .2s ease; }
.training-calendar-register:hover { background:#05663d; box-shadow:0 10px 20px rgba(8,125,75,.18); transform:translateY(-2px); }
.training-calendar-heading h2 { margin:15px 0 0; color:#10213d; font:800 clamp(2.4rem,4.2vw,4.7rem)/1 var(--heading-font); letter-spacing:-.075em; }
.training-calendar-heading h2 em { color:#168b35; font-style:normal; }
.training-calendar-heading > p { max-width:440px; margin:0; color:#526b79; font-size:1.05rem; line-height:1.65; text-align:justify; }
.training-year-tabs { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px; }
.training-year-tabs a { display:inline-flex; align-items:center; justify-content:center; min-width:84px; padding:12px 18px; border:1px solid #cfe5d4; border-radius:999px; background:#fff; color:#237045; font-size:.9rem; font-weight:800; text-decoration:none; transition:background .2s ease,color .2s ease,transform .2s ease; }
.training-year-tabs a:hover,.training-year-tabs a.active { border-color:#087d4b; background:#087d4b; color:#fff; transform:translateY(-2px); }
.training-calendar-table-wrap { overflow:hidden; border:1px solid #d6e8dc; border-radius:18px; background:#fff; }
.training-calendar-table { width:100%; border-collapse:collapse; }
.training-calendar-table th,.training-calendar-table td { padding:23px 28px; border-bottom:1px solid #e3eee6; text-align:left; vertical-align:middle; }
.training-calendar-table thead th { background:#087d4b; color:#fff; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; }
.training-calendar-table thead th:first-child { width:100px; }.training-calendar-table thead th:nth-child(3) { width:180px; }.training-calendar-table thead th:last-child { width:140px; }
.training-calendar-table tbody tr:last-child th,.training-calendar-table tbody tr:last-child td { border-bottom:0; }
.training-calendar-table tbody tr:hover { background:#f5fbf6; }
.training-calendar-table tbody td:first-child { color:#159447; font-size:.86rem; font-weight:800; }
.training-calendar-table tbody th { color:#143b5c; font-size:1rem; font-weight:800; line-height:1.45; }
.training-calendar-table tbody td { color:#587188; font-size:.95rem; }
.training-runs-badge { display:inline-grid; min-width:34px; height:34px; place-items:center; border-radius:50%; background:#e5f7df; color:#138d42; font-weight:800; }
.training-calendar-empty { display:flex; align-items:center; gap:16px; min-height:180px; padding:30px; color:#587188; }.training-calendar-empty i { color:#159447; font-size:1.8rem; }.training-calendar-empty h3 { margin:0 0 7px; color:#143b5c; font:800 1.25rem var(--heading-font); }.training-calendar-empty p { margin:0; }
.training-calendar-courses-empty { padding:0 0 100px; background:#f6fbf7; }.training-calendar-courses-empty .training-calendar-empty { border:1px solid #d6e8dc; border-radius:22px; background:#fff; }
@media (max-width:900px) { .training-calendar-heading { display:block; }.training-calendar-heading-side { display:block; }.training-calendar-heading-side > p { margin-top:20px; }.training-calendar-register { margin-top:18px; } }
@media (max-width:640px) { .training-calendar-hero { min-height:0; }.training-calendar-hero .service-detail-back { margin-bottom:58px; }.training-calendar-hero h1 { font-size:clamp(2.8rem,13vw,4.4rem); }.training-calendar-content { padding-bottom:80px; }.training-calendar-box { padding:20px 14px; border-radius:18px; }.training-calendar-table-wrap { border-radius:14px; }.training-calendar-table,.training-calendar-table tbody,.training-calendar-table tr,.training-calendar-table td,.training-calendar-table th { display:block; }.training-calendar-table thead { display:none; }.training-calendar-table tbody tr { padding:18px 18px 20px; border-bottom:1px solid #e3eee6; }.training-calendar-table tbody tr:last-child { border-bottom:0; }.training-calendar-table tbody td,.training-calendar-table tbody th { padding:5px 0; border:0; }.training-calendar-table tbody td::before,.training-calendar-table tbody th::before { display:block; margin-bottom:3px; color:#159447; font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; content:attr(data-label); }.training-calendar-table tbody td:first-child { display:none; }.training-calendar-table tbody th { font-size:1rem; }.training-calendar-table tbody td { font-size:.9rem; }.training-calendar-table tbody td:last-child { display:flex; align-items:center; justify-content:space-between; }.training-calendar-table tbody td:last-child::before { margin:0; }.training-calendar-hero-meta { gap:12px 18px; font-size:.82rem; } }
