/* V1.8: verified original sponsor logos and improved course discovery. */
:root { --cf18-pale:#d8e6f5; --cf18-blue:#165b91; --cf18-ink:#153c5a; --cf18-orange:#f68418; }
.cf18-sponsors{background:var(--cf18-pale); color:var(--cf18-ink); border-top:1px solid #bed7e9; padding:46px 0 50px;}
.cf18-sponsor-inner{display:grid;grid-template-columns:minmax(175px,.64fr) minmax(0,1.7fr);gap:45px;align-items:center;}
.cf18-sponsor-intro>span{font:700 12px/1.5 'Montserrat',Arial,sans-serif;letter-spacing:.055em;color:#245b89;}
.site-footer .cf18-sponsor-intro h2{font:800 clamp(24px,2.5vw,32px)/1.25 'Montserrat',Arial,sans-serif; color:#16578c; margin:7px 0 13px;}
.cf18-sponsor-intro p{font:400 14px/1.7 'Open Sans',Arial,sans-serif;margin:0 0 15px;color:#29475d;}
.site-footer .cf18-sponsor-intro a{font-weight:700;color:#14568e;text-decoration:underline;text-underline-offset:4px;}
.cf18-sponsor-logos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(105px,auto));gap:12px 24px;align-items:center;justify-items:center;}
.cf18-sponsor{display:flex;align-items:center;justify-content:center;width:100%;min-height:100px;padding:5px 9px;transition:transform .22s ease,background-color .22s ease;border-radius:4px;}
.cf18-sponsor:focus-visible{outline:3px solid var(--cf18-orange);outline-offset:4px}
.cf18-sponsor:hover{transform:translateY(-3px);background:#ffffff3b}
.cf18-sponsor img{width:auto;height:auto;max-width:100%;max-height:93px;object-fit:contain;}
.cf18-sponsor:first-child img{max-height:115px}
.cf18-sponsor:last-child img{max-height:115px}
.cf18-sponsor:nth-child(4){grid-column:1 / 2;}
.cf18-sponsor:nth-child(5){grid-column:2 / 4;}
.cf18-course-dates-links{display:flex;gap:12px;margin:17px 0 22px;flex-wrap:wrap;}
.cf18-course-dates-links a{display:inline-flex;align-items:center;min-height:47px;padding:11px 17px;border:1px solid #a4cadd;background:#eaf6fc;text-decoration:none;font-weight:800;font-size:14px;color:#14558a;}
.cf18-course-dates-links a:hover,.cf18-course-dates-links a:focus-visible{background:#175f96;color:white;}
.cf18-important-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 30px;padding:0 0 20px;border-bottom:1px solid #dae9f2;}
.cf18-important-paths a{display:flex;min-height:62px;padding:16px 20px;align-items:center;background:#e8f4fb;border:1px solid #d6e7ef;border-bottom:3px solid #f58216;text-decoration:none;color:#135488;font:700 15px/1.4 'Montserrat',Arial,sans-serif;transition:background-color .2s,transform .2s;}
.cf18-important-paths a[aria-current="page"],.cf18-important-paths a:hover,.cf18-important-paths a:focus-visible{background:#195d91;color:white;transform:translateY(-2px);}
.cf18-dates-intro{position:relative;background:#e7f4fc;padding:45px 0;}
.cf18-dates-intro>.container{position:relative;max-width:1200px;}
.cf18-dates-intro h2{font-size:clamp(26px,3.2vw,42px);margin-bottom:14px;}
.cf18-timetable-layout .cf15-reading{max-width:100%;overflow-wrap:break-word;}
.cf18-timetable-layout .cf15-readable-timetable :is(table,tbody){max-width:100%}
.cf18-timetable-layout .cf15-readable-timetable table{border-collapse:collapse;font-size:14px;margin:22px 0;}
.cf18-timetable-layout .cf15-readable-timetable th{background:#145a8e;color:#fff;padding:12px 14px;border:1px solid #d3e4f0;text-align:left;}
.cf18-timetable-layout .cf15-readable-timetable td{padding:12px 14px;border:1px solid #d3e4f0;}
.cf18-timetable-layout .cf15-readable-timetable tr:nth-child(even) td{background:#f1f8fc}
.cf18-timetable-layout .cf15-reading-grid{gap:34px;}
.cf18-timetable-layout .cf15-reading{min-width:0;}
.cf18-menu-divider{height:1px!important;min-height:0!important;pointer-events:none;background:#c9e0ee;margin:7px 14px!important;}
.cf18-menu-essential>a{font-weight:800!important;color:#15588e!important;}
/* The reference uses controlled fades and smooth hover movement. No blocking page loader. */
@media (prefers-reduced-motion:no-preference){
  .cf18-observe{animation:cf18-in .6s cubic-bezier(.22,.72,.35,1) both;}
  @keyframes cf18-in{from{opacity:.55;transform:translate3d(0,12px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
  .cf15-course-category:hover,.cf15-venue-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #0a3f6114;}
  .cf15-course-category,.cf15-venue-card{transition:transform .25s ease,box-shadow .25s ease;}
  .cf15-hero-image img{animation:cf18-hero 1s ease-out both;}
  @keyframes cf18-hero{from{opacity:.7;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}
}
.cf15-hero-image,.cf16-page-hero-visual{overflow:hidden;}
/* Correct contrast and tap targets for an audience who may have limited digital confidence. */
.cf17-footer-main a:focus-visible,.cf18-sponsor-intro a:focus-visible{outline:3px solid #ff9c30;outline-offset:3px;}
.cf15-course-category:focus-visible,.cf15-photo-card:focus-visible{outline:3px solid #f58216;outline-offset:4px;}
@media (max-width:960px){
  .cf18-sponsor-inner{grid-template-columns:1fr;gap:20px;}
  .cf18-sponsor-intro{text-align:left;}
  .cf18-sponsor-logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;}
}
@media (max-width:650px){
  .cf18-sponsors{padding:32px 0;}
  .cf18-sponsor-logos{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 10px;grid-template-rows:auto;}
  .cf18-sponsor{min-height:86px;padding:8px 2px;}
  .cf18-sponsor img{max-height:76px;}
  .cf18-sponsor:first-child img,.cf18-sponsor:last-child img{max-height:90px;}
  .cf18-sponsor:nth-child(4),.cf18-sponsor:nth-child(5){grid-column:auto;}
  .cf18-sponsor:nth-child(5){grid-column:1 / -1;}
  .cf18-important-paths{grid-template-columns:1fr;gap:9px;}
  .cf18-important-paths a{min-height:52px;padding:12px 15px;}
  .cf18-course-dates-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
  .cf18-course-dates-links a{padding:10px;font-size:13px;}
  .cf18-timetable-layout .cf15-reading-grid{display:block;}
  .cf18-timetable-layout .cf15-reading .cf15-managed-timetable{grid-template-columns:1fr}
  .cf18-timetable-layout .cf15-reading table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
}
@media(max-width:360px){.cf18-sponsor-logos{grid-template-columns:1fr 1fr;}.cf18-course-dates-links{grid-template-columns:1fr;}}
@media(prefers-reduced-motion:reduce){.cf18-observe,.cf18-sponsor,.cf15-course-category,.cf15-venue-card{animation:none!important;transition:none!important;transform:none!important;}}
/* Dedicated TheBuilt-style editorial split for timetable pages, rather than repeating a generic text banner. */
.cf18-dates-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,.8fr);gap:5vw;align-items:center;}
.cf18-dates-photo{margin:0;align-self:stretch;min-height:280px;overflow:hidden;}
.cf18-dates-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.cf18-dates-photo:hover img{transform:scale(1.025);}
.cf18-dates-intro .cf15-kicker{margin:0 0 15px;}
.cf18-dates-intro .button{margin-top:12px;}
@media(max-width:720px){.cf18-dates-grid{grid-template-columns:1fr;gap:24px;}.cf18-dates-photo{min-height:0;aspect-ratio:16/9;}.cf18-dates-intro{padding:28px 0 35px;}}
/* All existing published pages remain findable without adding dozens of links to the main menu. */
.cf18-sitemap{padding:50px 0 75px;background:#fff;}
.cf18-sitemap-intro{max-width:770px;margin-bottom:35px;}
.cf18-sitemap-intro h2{color:#155a8e;font-size:clamp(23px,3vw,35px);}
.cf18-sitemap-intro p{font-size:16px;line-height:1.7;color:#334e63;}
.cf18-sitemap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start;}
.cf18-sitemap-group{border:1px solid #d8e7f0;background:#f4f9fc;padding:25px 28px;break-inside:avoid;}
.cf18-sitemap-group h3{font-size:21px;margin:0 0 13px;}
.cf18-sitemap-group h3 a{color:#135990;text-decoration:none;}
.cf18-sitemap-group ul{margin:0;padding-left:21px;list-style:disc;}
.cf18-sitemap-group ul ul{margin-top:5px;padding-left:21px;}
.cf18-sitemap-group li{padding:4px 0;font-size:14px;line-height:1.5;}
.cf18-sitemap-group li a{color:#164c74;text-decoration:underline;text-underline-offset:3px;}
@media(max-width:700px){.cf18-sitemap{padding:28px 0 50px}.cf18-sitemap-grid{grid-template-columns:1fr}.cf18-sitemap-group{padding:20px}}
