/* Structural CSS shared by all website themes. Colours, type and shapes live in each theme.css */
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}a{color:inherit}
:focus-visible{outline:3px solid var(--focus,#E0A526);outline-offset:2px}
.wrap{width:min(1200px,100% - 40px);margin-inline:auto}.narrow{max-width:760px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:100;background:#fff;padding:8px 12px}
/* header */
.site-header{position:sticky;top:0;z-index:50}
.nav-links{display:flex;gap:4px;list-style:none;margin:0;padding:0;align-items:center}
.nav-links a{text-decoration:none;display:block}
.menu-btn{display:none;background:none;border:0;font-size:28px;cursor:pointer;color:inherit;padding:4px}
.dd{position:relative}.dd-menu{display:none;position:absolute;top:100%;right:0;min-width:210px;padding:8px;z-index:60}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{display:block}
/* hero slider */
.hero{position:relative;overflow:hidden}
.hero.hero-slider{padding:0}
.hero-slider .slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .9s ease;display:flex}
.hero-slider .slide.on{opacity:1;position:relative}
.hero-inner{position:relative;z-index:2}
.dots{position:absolute;z-index:3;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:8px}
.dots button{width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.5);cursor:pointer;padding:0}.dots button.on{background:#fff;width:26px;border-radius:6px}
/* ticker */
.ticker-in{display:flex;align-items:center;gap:16px;overflow:hidden}
.ticker-track{overflow:hidden;flex:1;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.ticker-move{display:flex;gap:48px;white-space:nowrap;width:max-content;animation:tick 40s linear infinite}
.ticker-move a{text-decoration:none}.ticker:hover .ticker-move{animation-play-state:paused}
@keyframes tick{to{transform:translateX(-50%)}}
/* grids */
.about-grid,.principal-grid,.form-grid-2,.board-grid{display:grid;gap:48px;grid-template-columns:1fr 1fr;align-items:start}
.principal-grid{grid-template-columns:320px 1fr;align-items:center}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fac-grid,.news-grid,.testi-grid{display:grid;gap:24px;grid-template-columns:repeat(3,1fr)}
.gal-grid{display:grid;gap:10px;grid-template-columns:repeat(4,1fr)}
.gal{position:relative;display:block;overflow:hidden;aspect-ratio:4/3}.gal img,.gal .ph-img{width:100%;height:100%;object-fit:cover}
.gal span{position:absolute;left:0;right:0;bottom:0;padding:24px 12px 10px;color:#fff;font-size:14px;background:linear-gradient(transparent,rgba(0,0,0,.6));opacity:0;transition:opacity .2s}
.gal:hover span,.gal:focus span{opacity:1}
.news{display:block;text-decoration:none}.news-img{width:100%;aspect-ratio:16/10;object-fit:cover}
.ph-img{display:grid;place-items:center;font-size:30px;background:rgba(127,127,127,.12);color:rgba(127,127,127,.6);aspect-ratio:4/3;width:100%}
.principal-photo img,.principal-photo .ph-img{width:100%;aspect-ratio:4/5;object-fit:cover}
.testi figcaption{display:flex;gap:12px;align-items:center}.testi figcaption img,.testi .ini{width:46px;height:46px;border-radius:50%;object-fit:cover;display:grid;place-items:center;font-weight:700}
.testi figcaption span{display:flex;flex-direction:column}.testi blockquote{margin:0 0 18px}.testi{margin:0}
.board-item.ev{display:flex;gap:14px;align-items:flex-start}.ev-date{flex:none;width:56px;text-align:center;line-height:1.1}.ev-date b{display:block;font-size:1.5rem}
.cta-in{display:flex;gap:30px;align-items:center;justify-content:space-between}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.chips a{text-decoration:none;padding:7px 14px}
.enq{position:relative}.enq-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}.enq-grid .full{grid-column:1/-1}
.enq label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
.enq input,.enq select,.enq textarea{font:inherit;font-weight:400;padding:12px 14px;width:100%}
.ok-note{padding:14px 16px;margin-bottom:16px;font-weight:600}
.contact-info p{display:flex;gap:12px;align-items:flex-start;margin:0 0 14px}.contact-info i{margin-top:3px}
.map{margin-top:18px;aspect-ratio:16/10}.map iframe{width:100%;height:100%;border:0}
.article-img{width:100%;margin:16px 0 24px;aspect-ratio:16/9;object-fit:cover}
.rich img{height:auto}.rich table{border-collapse:collapse;width:100%}.rich td,.rich th{border:1px solid #ddd;padding:8px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px}
.footer-grid ul{list-style:none;padding:0;margin:0}.footer-grid li{margin-bottom:8px}.footer-grid a{text-decoration:none}
.social{display:flex;gap:10px}.social a{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;text-decoration:none}
/* lightbox */
.lb{position:fixed;inset:0;background:rgba(8,12,20,.92);z-index:200;display:none;align-items:center;justify-content:center;flex-direction:column;padding:20px}
.lb.on{display:flex}.lb img{max-height:80vh;max-width:92vw;object-fit:contain}.lb p{color:#ddd;margin:12px 0 0}
.lb button{position:absolute;background:none;border:0;color:#fff;font-size:44px;cursor:pointer;padding:10px}.lb-x{top:10px;right:16px}.lb-p{left:10px;top:50%}.lb-n{right:10px;top:50%}
/* mobile quick bar */
.m-bar{display:none}
@media (max-width:960px){
  .fac-grid,.news-grid,.testi-grid{grid-template-columns:1fr 1fr}.gal-grid{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .menu-btn{display:block}
  .main-nav{position:fixed;inset:0 0 0 auto;width:min(84vw,340px);transform:translateX(100%);transition:transform .25s ease;z-index:80;overflow-y:auto;padding:80px 20px 30px}
  .menu-open .main-nav{transform:none}
  .menu-open::after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:70}
  .nav-links{flex-direction:column;align-items:stretch;gap:2px}
  .dd-menu{display:block;position:static;padding:0 0 0 14px;box-shadow:none!important;background:none!important}
  .menu-btn{position:relative;z-index:90}
  .about-grid,.principal-grid,.form-grid-2,.board-grid,.cta-in{grid-template-columns:1fr;display:grid;gap:28px}
  .fac-grid,.news-grid,.testi-grid{grid-template-columns:1fr}.gal-grid{grid-template-columns:1fr 1fr}
  .enq-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}
  .principal-photo{max-width:260px}
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  .m-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around}
  .m-bar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:600;text-decoration:none}
  .m-bar i{font-size:20px}
}
@media (prefers-reduced-motion:reduce){.ticker-move{animation:none}.hero-slider .slide{transition:none}html{scroll-behavior:auto}}
