/*
Theme Name: Russell House School
Theme URI: https://innermedia.co.uk
Author: InnerMedia
Author URI: https://innermedia.co.uk
Description: Child theme of SCMS Starter for Russell House School.
Version: 2.1.4
Template: scms-starter
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.0
License: Proprietary
Text Domain: russellhouse
*/

/* ============================================================
   Layout framework (token-driven). Colours/fonts/spacing come
   from assets/css/tokens.css — edit that, not the values here.
   This file holds STRUCTURE reused on every build; restyle to
   match the mockup as needed.
   ============================================================ */

*{box-sizing:border-box}
body{margin:0;color:var(--ink);font-family:var(--font-body);line-height:1.55}
img{max-width:100%;height:auto;display:block}
a{color:var(--link)}

/* Container */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(20px,4vw,40px)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.3rem;border-radius:var(--r);
  font-weight:600;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:none}
.btn-primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn-primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}
.btn-on-dark{color:#fff;border-color:rgba(255,255,255,.6)}
.btn-on-dark:hover{background:#fff;color:var(--brand-ink)}

/* Page hero (dark banner used on section landing pages) */
.page-hero{background:var(--hero-bg);color:#fff}
.page-hero .wrap{padding-block:clamp(52px,7vw,96px)}
.page-hero h1{color:#fff;margin:0 0 .4rem;max-width:20ch}
.page-hero .lead{color:var(--sage-soft,rgba(255,255,255,.85));max-width:60ch}
.crumbs{font-size:.8rem;color:rgba(255,255,255,.7);margin-bottom:1rem;letter-spacing:.03em}
.crumbs a{color:rgba(255,255,255,.8)}

/* Generic content section with vertical rhythm */
.dynamicContent{padding:clamp(48px,6vw,90px) 0}

/* Card grid (news, listings) */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  text-decoration:none;color:inherit}
.card .ph-wide{aspect-ratio:16/10;background:var(--line) center/cover no-repeat}
.card-body{padding:1.1rem 1.2rem 1.4rem}
.card-body h3{margin:.3rem 0 .5rem}
.news-date{font-size:.78rem;color:var(--slate,#667)}
.more{color:var(--brand);font-weight:600}
.news-pagination{margin-top:2rem;display:flex;gap:.6rem;flex-wrap:wrap}

/* Breadcrumbs bar (used under image banners / on inner pages) */
.breadcrumbs{background:var(--cream,#f4f1ea);border-bottom:1px solid var(--line);font-size:.84rem}
.breadcrumbs .wrap{padding-block:.85rem}
.breadcrumbs a{color:var(--link);text-decoration:none}
.breadcrumbs .sep{color:var(--slate,#667);margin:0 .3rem}
/* Image-banner pages: gap above breadcrumbs (halved on mobile — see media query) */
.sws-banner-block + .breadcrumbs,.pageBanner + .breadcrumbs{margin-top:50px}

@media(max-width:600px){
  .cards{grid-template-columns:1fr}
  .sws-banner-block + .breadcrumbs,.pageBanner + .breadcrumbs{margin-top:25px}
}

/* ---- Header nav ---- */
.mainHeader-inner{display:flex;align-items:center;gap:1.5rem;padding-block:.8rem}
.site-logo{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:inherit}
.navCol{margin-left:auto;display:flex;align-items:center}
.nav-menu{display:flex;align-items:center;gap:1.3rem;list-style:none;margin:0;padding:0}
.nav-menu li{position:relative}
.nav-menu a{font-weight:500;color:var(--ink);text-decoration:none}
.nav-menu a:hover,.nav-menu .current-menu-item>a{color:var(--brand)}
.nav-menu .sub-menu{position:absolute;top:100%;left:0;min-width:220px;background:#fff;border:1px solid var(--line);
  border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,.12);padding:.4rem 0;list-style:none;z-index:120;
  opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s;pointer-events:none}
.nav-menu li:hover>.sub-menu,.nav-menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0);
  transition:opacity .18s ease,transform .18s ease,visibility 0s;pointer-events:auto}
.nav-menu .sub-menu a{display:block;padding:.5rem 1.1rem;white-space:nowrap}

/* Mobile nav */
.mobileToggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.mobileToggle span{width:26px;height:2px;background:var(--ink);display:block}
.mobileNav{display:none;background:#fff;border-top:1px solid var(--line)}
.mobileNav.is-open{display:block}
.mobile-nav-menu{list-style:none;margin:0;padding:0}
.mobile-nav-menu a{display:block;padding:.7rem 0;text-decoration:none;color:var(--ink)}
@media(max-width:900px){ .navCol{display:none} .mobileToggle{display:flex} }

/* Scroll reveal */
.sws-reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.sws-reveal.is-in{opacity:1;transform:none}

/* ============================================================
   RUSSELL HOUSE — SITE CSS (added on top of the scaffold framework)
   ============================================================ */
h1,h2,h3,h4,.font-display{font-family:var(--font-display);font-weight:400;color:var(--brand);line-height:1.2}
body{font-size:17px}
p{margin:0 0 1.1rem}
.wrap{max-width:var(--maxw)}
.btn{border-radius:var(--r);transition:background .2s ease,color .2s ease,border-color .2s ease}

/* Generic button link used throughout content (matches live .button__link) */
.button__link a,a.btn-rh{display:inline-block;background:var(--brand);color:#fff;text-decoration:none;
  padding:.75rem 1.6rem;border-radius:var(--r);font-weight:700;font-size:.82rem;letter-spacing:.08em;
  text-transform:uppercase;border:2px solid var(--brand);transition:all .2s ease}
.button__link a:hover,a.btn-rh:hover{background:#fff;color:var(--brand)}
/* Alternate button style (uniform page .button--1) */
a.btn-rh--alt,.button--1{background:transparent;color:var(--brand)}
a.btn-rh--alt:hover,.button--1:hover{background:var(--brand);color:#fff}

/* ---------- TOP UTILITY BAR ---------- */
.topBar{background:var(--brand);color:#fff;font-size:.85rem}
.topBar-inner{display:flex;align-items:center;justify-content:flex-end;gap:1.2rem;padding:.5rem 0;min-height:40px}
.topBar a{color:#fff;text-decoration:none}
.topSocial{display:flex;gap:.9rem;align-items:center;list-style:none;margin:0;padding:0}
.topSocial a{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;border:1px solid rgba(255,255,255,.4);font-size:.9rem;transition:all .2s}
.topSocial a:hover{background:#fff;color:var(--brand)}
.topSearch{display:flex;align-items:center;border-bottom:1px solid rgba(255,255,255,.4)}
.topSearch input{background:transparent;border:0;color:#fff;padding:.3rem .4rem;font-family:var(--font-body);outline:none;width:120px}
.topSearch input::placeholder{color:rgba(255,255,255,.7)}
.topSearch button{background:none;border:0;color:#fff;cursor:pointer}

/* ---------- MAIN HEADER + MEGA MENU ---------- */
.site-header{position:relative;z-index:200;background:#fff}
.mainHeader{border-bottom:1px solid var(--line);transition:box-shadow .3s ease}
.mainHeader-inner{position:relative;justify-content:center;gap:2rem;padding-block:1rem;flex-wrap:nowrap}
.site-logo .brand-word{display:none}
.site-logo .custom-logo{height:92px;width:auto;transition:height .35s ease}
picture.custom-logo{display:inline-block;background:none;border-radius:0;padding:0;height:auto}

.navCol{margin:0}
.nav-menu{gap:1.6rem;font-family:var(--font-body);text-transform:uppercase;font-size:.8rem;letter-spacing:.06em;font-weight:700}
.nav-menu>li>a{padding:.4rem 0;color:var(--brand)}
.nav-menu>li>a:hover,.nav-menu>.current-menu-item>a{color:var(--gold)}

/* full-width mega dropdown */
.nav-menu li.menu-item-has-children{position:static}
.nav-menu .sub-menu{left:0;right:0;top:100%;width:100%;min-width:0;display:flex;flex-wrap:wrap;gap:.2rem 2rem;
  padding:2rem clamp(20px,6vw,80px);border:0;border-top:3px solid var(--brand);border-radius:0;
  box-shadow:0 16px 30px rgba(0,0,0,.14);max-width:var(--maxw);margin-inline:auto}
.nav-menu .sub-menu li{width:calc(25% - 2rem);min-width:180px}
.nav-menu .sub-menu a{padding:.55rem 0;border-bottom:1px solid var(--line);text-transform:none;letter-spacing:0;
  font-size:.95rem;font-weight:400;color:var(--ink)}
.nav-menu .sub-menu a:hover{color:var(--brand)}
/* menu image box (added via menu description/last item) */
.nav-menu .menu-image-box{width:26%;margin-left:auto}
.nav-menu .menu-image-box img{border-radius:var(--r)}

/* Sticky header: main bar only, smaller logo */
body.rh-sticky .site-header{position:sticky;top:0}
.mainHeader.is-stuck{position:fixed;top:0;left:0;right:0;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.12);z-index:300}
.mainHeader.is-stuck .site-logo .custom-logo{height:60px}
.rh-stick-spacer{display:none}
.rh-stick-spacer.on{display:block}

/* ---------- HERO (home) ---------- */
.rh-hero{position:relative;min-height:82vh;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#fff;text-align:center}
.hero-slides{position:absolute;inset:0}
.hero-slides>*{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease;background-size:cover;background-position:center}
.hero-slides>.is-active{opacity:1}
.rh-hero:after{content:"";position:absolute;inset:0;background:rgba(0,30,54,.35)}
.rh-hero__center{position:relative;z-index:2;padding:2rem}
.rh-hero__center h1{color:#fff;font-size:clamp(2.2rem,5vw,4rem);margin:0 0 .5rem;text-shadow:0 2px 20px rgba(0,0,0,.3)}
.rh-hero__subtitle{font-size:clamp(1.1rem,2vw,1.5rem);letter-spacing:.05em}
.rh-hero__play{position:relative;z-index:2;margin-top:1.5rem}
.rh-hero__play button{background:rgba(255,255,255,.15);border:2px solid #fff;color:#fff;width:74px;height:74px;
  border-radius:50%;font-size:1.4rem;cursor:pointer;transition:all .25s}
.rh-hero__play button:hover{background:#fff;color:var(--brand)}

/* Video lightbox */
.rh-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);display:none;align-items:center;justify-content:center;z-index:9999}
.rh-lightbox.open{display:flex}
.rh-lightbox__inner{width:min(90vw,960px);aspect-ratio:16/9}
.rh-lightbox iframe{width:100%;height:100%;border:0}
.rh-lightbox__close{position:absolute;top:24px;right:30px;background:none;border:0;color:#fff;font-size:2rem;cursor:pointer}

/* ---------- OPEN MORNING NOTICE / ALERT ---------- */
.rh-notice{position:fixed;right:0;bottom:30px;z-index:400;background:#fff;box-shadow:0 10px 40px rgba(0,0,0,.2);
  display:flex;max-width:440px;border-left:5px solid var(--gold);transform:translateX(105%);transition:transform .6s ease;border-radius:var(--r) 0 0 var(--r)}
.rh-notice.is-in{transform:translateX(0)}
.rh-notice__img{width:120px;background-size:cover;background-position:center;flex:none}
.rh-notice__info{padding:1.1rem 1.3rem}
.rh-notice__info h2{margin:0 0 .3rem;font-size:1.3rem}
.rh-notice__info p{font-size:.9rem;margin:0 0 .5rem}
.rh-notice__info a{color:var(--gold);font-weight:700;text-decoration:none;text-transform:uppercase;font-size:.78rem;letter-spacing:.06em}
.rh-notice__close{position:absolute;top:6px;right:8px;background:none;border:0;font-size:1.1rem;cursor:pointer;color:var(--slate)}

/* ---------- WELCOME ---------- */
.rh-welcome{padding:clamp(50px,7vw,100px) 0;background:var(--cream) url('') center/cover;text-align:center}
.rh-welcome__subtitle{text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-weight:700;font-size:.85rem}
.rh-welcome__title{font-size:clamp(2rem,4vw,3.2rem);margin:.4rem 0 1.4rem}
.rh-welcome__text{max-width:900px;margin:0 auto 1.6rem}

/* ---------- AWARDS STRIP ---------- */
.rh-awards{padding:2.5rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rh-awards ul{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(2rem,5vw,4.5rem);list-style:none;margin:0;padding:0}
.rh-awards img{height:74px;width:auto;filter:grayscale(1);opacity:.75;transition:all .3s}
.rh-awards a:hover img{filter:none;opacity:1}

/* ---------- HOME 3x3 GRID ---------- */
.rh-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.rh-grid__item{position:relative;overflow:hidden;min-height:300px;display:flex;align-items:flex-end}
.rh-grid__item--img{color:#fff}
.rh-grid__item--img .rh-grid__bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s ease}
.rh-grid__item--img:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,30,54,.85),rgba(0,30,54,.05))}
.rh-grid__item--img:hover .rh-grid__bg{transform:scale(1.08)}
.rh-grid__item h3{position:relative;z-index:2;color:#fff;margin:0;padding:1.4rem 1.6rem;font-size:1.5rem;transition:transform .4s ease}
.rh-grid__item--img:hover h3{transform:translateY(-8px)}
.rh-grid__info{position:absolute;inset:0;z-index:3;background:rgba(0,62,106,.94);color:#fff;padding:1.8rem;
  display:flex;flex-direction:column;justify-content:center;opacity:0;transition:opacity .4s ease}
.rh-grid__item--img:hover .rh-grid__info{opacity:1}
.rh-grid__info h3{color:#fff;padding:0 0 .6rem}
.rh-grid__info a{color:#fff;font-weight:700;text-transform:uppercase;font-size:.78rem;letter-spacing:.06em;text-decoration:underline}
.rh-grid__item--text,.rh-grid__item--quote{background:var(--cream);align-items:center;text-align:center;padding:2rem}
.rh-grid__item--quote{background:var(--brand);color:#fff}
.rh-grid__item--quote .rh-grid__quote{font-family:var(--font-display);font-size:1.4rem;color:#fff}
.rh-grid__item--quote .rh-grid__quotee{color:var(--gold);font-size:.85rem;text-transform:uppercase;letter-spacing:.06em}
.rh-grid__subtitle{text-transform:uppercase;letter-spacing:.16em;color:var(--gold);font-weight:700;font-size:.8rem}

/* ---------- NEWS + EVENTS CAROUSELS ---------- */
.rh-carousel{position:relative}
.rh-carousel__track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:1rem;-ms-overflow-style:none;scrollbar-width:none}
.rh-carousel__track::-webkit-scrollbar{display:none}
.rh-section{padding:clamp(50px,6vw,90px) 0}
.rh-section__head{text-align:center;margin-bottom:2.5rem}
.rh-section__subtitle{text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-weight:700;font-size:.85rem}
.rh-section__title{font-size:clamp(2rem,4vw,3rem);margin:.3rem 0}
.rh-news__item{flex:0 0 300px;scroll-snap-align:start;background:#fff;text-decoration:none;color:inherit;box-shadow:0 4px 20px rgba(0,0,0,.06)}
.rh-news__img{aspect-ratio:3/4;background-size:cover;background-position:center;background-color:var(--line)}
.rh-news__body{padding:1.2rem}
.rh-news__date{color:var(--gold);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
.rh-news__body h3{font-size:1.15rem;margin:.4rem 0}
.rh-news__more{color:var(--brand);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
.rh-events__item{flex:0 0 230px;scroll-snap-align:start;background:var(--cream);padding:1.6rem;text-align:center}
.rh-events__date{display:flex;flex-direction:column;color:var(--brand)}
.rh-events__date .d{font-size:2.4rem;font-family:var(--font-display);line-height:1}
.rh-events__date .m{text-transform:uppercase;letter-spacing:.1em;font-size:.8rem}
.rh-events__time{color:var(--gold);font-size:.8rem;display:block;margin:.4rem 0}
.rh-carousel__btn{position:absolute;top:40%;background:var(--brand);color:#fff;border:0;width:44px;height:44px;border-radius:50%;cursor:pointer;z-index:5}
.rh-carousel__btn--prev{left:-10px}.rh-carousel__btn--next{right:-10px}

/* ---------- SCHOOLS 2-UP ---------- */
.rh-schools{display:grid;grid-template-columns:1fr 1fr}
.rh-schools__item{position:relative;min-height:420px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;text-decoration:none;overflow:hidden}
.rh-schools__bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s}
.rh-schools__item:hover .rh-schools__bg{transform:scale(1.06)}
.rh-schools__item:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,30,54,.9),rgba(0,30,54,.1))}
.rh-schools__top,.rh-schools__bot{position:relative;z-index:2;padding:0 2rem}
.rh-schools__top h3{color:#fff;font-size:2rem;margin:0}
.rh-schools__top span{color:var(--gold);text-transform:uppercase;letter-spacing:.1em;font-size:.85rem}
.rh-schools__bot{max-height:0;overflow:hidden;transition:max-height .5s ease;padding-bottom:2rem}
.rh-schools__item:hover .rh-schools__bot{max-height:240px}
.rh-schools__bot span{font-weight:700;text-transform:uppercase;font-size:.78rem;letter-spacing:.06em;text-decoration:underline}

/* ---------- STORY WALL / SOCIAL ---------- */
.rh-social{display:grid;grid-template-columns:repeat(3,1fr)}
.rh-social__box{min-height:500px;padding:2.5rem;color:#fff}
.rh-social__box--story{background:var(--brand);display:flex;flex-direction:column;justify-content:center}
.rh-social__box--story h2{color:#fff;font-size:2rem}
.rh-social__box--insta{background:#000 center/cover}
.rh-social__box--fb{background:#3b5998}
.rh-social__header{display:flex;align-items:center;gap:.5rem;color:#fff;text-decoration:none;font-weight:700;margin-bottom:1rem}

/* ---------- HOME CONTACT MAP + HOW TO GET HERE ---------- */
.rh-contactmap{position:relative;background:var(--cream)}
.rh-contactmap__map{min-height:460px;background-size:cover;background-position:center}
.rh-gethere{position:relative;z-index:3;background:var(--brand) center/cover;color:#fff;max-width:420px;margin:-340px 0 -60px auto;
  padding:2.4rem;border-radius:var(--r);box-shadow:0 16px 40px rgba(0,0,0,.25)}
.rh-gethere:before{content:"";position:absolute;inset:0;background:rgba(0,62,106,.9);border-radius:var(--r);z-index:-1}
.rh-gethere h2{color:#fff}
.rh-gethere__subtitle{color:var(--gold);text-transform:uppercase;letter-spacing:.16em;font-size:.8rem;font-weight:700}
.rh-gethere__entry{display:flex;gap:.6rem;align-items:flex-start;margin-bottom:.8rem;font-size:.95rem}
.rh-gethere__entry i{color:var(--gold);margin-top:.2rem}
.rh-gethere a{color:#fff;text-decoration:none}

/* ---------- FLOATING BOOK A TOUR ---------- */
.rh-booktour{position:fixed;right:0;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:right center;z-index:350}
.rh-booktour a{display:inline-block;background:var(--gold);color:#fff;padding:.7rem 1.4rem;text-decoration:none;
  font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;border-radius:var(--r) var(--r) 0 0}
.rh-booktour a:hover{background:var(--brand)}

/* ---------- FOOTER ---------- */
.site-footer{background:var(--brand);color:rgba(255,255,255,.85);text-align:center;padding:2.5rem 0;font-size:.85rem}
.site-footer a{color:#fff}
.foot-legal ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1rem;padding:0;margin:1rem 0 0}

/* ============================================================
   INNER PAGES
   ============================================================ */
.rh-banner{position:relative;min-height:44vh;display:flex;align-items:center;overflow:hidden;color:#fff}
.rh-banner .hero-slides>*{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease;background-size:cover;background-position:center}
.rh-banner .hero-slides>.is-active{opacity:1}
.rh-banner:after{content:"";position:absolute;inset:0;background:rgba(0,30,54,.4)}
.rh-banner__inner{position:relative;z-index:2}
.rh-banner__inner h1{color:#fff;font-size:clamp(2rem,4vw,3.2rem);margin:0}
.rh-crumbs{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:.6rem 0 0;font-size:.85rem;color:rgba(255,255,255,.85)}
.rh-crumbs a{color:rgba(255,255,255,.85);text-decoration:none}
.rh-crumbs .sep{color:var(--gold)}

.rh-main{display:grid;grid-template-columns:1fr 300px;gap:clamp(30px,5vw,70px);max-width:var(--maxw);margin:0 auto;padding:clamp(40px,5vw,70px) clamp(20px,4vw,40px)}
.rh-content h1.content__title{font-size:clamp(1.9rem,3.5vw,2.8rem);margin:0 0 1.4rem}
.rh-content .intro,.rh-content>h3:first-of-type,.rh-firstpara{font-family:var(--font-display);font-size:1.35rem;color:var(--brand);line-height:1.5}
.rh-content h2{font-size:1.7rem;margin:2rem 0 1rem}
.rh-content blockquote{border-left:4px solid var(--gold);background:var(--cream);margin:2rem 0;padding:1.5rem 2rem;
  font-family:var(--font-display);font-size:1.3rem;color:var(--brand);font-style:italic}
.rh-content blockquote p:last-child{font-size:.9rem;color:var(--slate);font-style:normal;margin:0}
.rh-page-subtitle{text-transform:uppercase;letter-spacing:.16em;color:var(--gold);font-weight:700;font-size:.85rem;margin:0 0 .3rem}

/* side subnav — bg image, overlaps banner */
.rh-subnav{background:var(--brand) center/cover;color:#fff;padding:1.8rem;border-radius:var(--r);margin-top:-90px;position:relative;z-index:5;align-self:start;box-shadow:0 14px 36px rgba(0,0,0,.22)}
.rh-subnav:before{content:"";position:absolute;inset:0;background:rgba(0,62,106,.92);border-radius:var(--r);z-index:-1}
.rh-subnav__title{color:#fff;font-size:1.3rem;margin:0 0 1rem;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:.6rem}
.rh-subnav ul{list-style:none;margin:0;padding:0}
.rh-subnav a{display:block;color:rgba(255,255,255,.9);text-decoration:none;padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:.95rem}
.rh-subnav a:hover,.rh-subnav .current a{color:var(--gold)}

/* content tables (term dates) */
.rh-content table{width:100%;border-collapse:collapse;margin:1rem 0 2rem}
.rh-content th{background:var(--brand);color:#fff;text-align:left;padding:.8rem 1rem;font-family:var(--font-body);font-weight:700;width:35%;border:1px solid var(--brand)}
.rh-content td{padding:.8rem 1rem;border:1px solid var(--line)}
.rh-content tr:nth-child(even) td{background:var(--cream)}

/* PDF download style (documents) */
.rh-docs{list-style:none;margin:1.5rem 0;padding:0}
.rh-docs li{margin:0 0 .6rem}
.rh-docs a{display:flex;align-items:center;justify-content:space-between;background:var(--cream);border:1px solid var(--line);
  padding:1rem 1.3rem;text-decoration:none;color:var(--brand);font-weight:700;transition:all .2s;border-radius:var(--r)}
.rh-docs a:hover{background:var(--brand);color:#fff}
.rh-docs .ext{font-size:.7rem;text-transform:uppercase;background:var(--gold);color:#fff;padding:.1rem .4rem;margin-left:.6rem;border-radius:3px}
.rh-docs .chev{font-size:1.1rem}
/* Policies: plain link list (no pdf buttons) */
.rh-links{list-style:none;margin:1.5rem 0;padding:0}
.rh-links li{border-bottom:1px solid var(--line)}
.rh-links a{display:block;padding:.8rem 0;color:var(--brand);text-decoration:none;font-weight:600}
.rh-links a:hover{color:var(--gold);padding-left:.4rem;transition:padding .2s}

/* curriculum / inner grid (clickthrough tiles) */
.rh-innergrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:2rem}
.rh-innergrid__item{position:relative;overflow:hidden;text-decoration:none;color:#fff;min-height:220px;display:flex;align-items:flex-end}
.rh-innergrid__bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .5s}
.rh-innergrid__item:hover .rh-innergrid__bg{transform:scale(1.08)}
.rh-innergrid__item:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,30,54,.85),rgba(0,30,54,.1))}
.rh-innergrid__item h3{position:relative;z-index:2;color:#fff;margin:0;padding:1.2rem 1.4rem .3rem}
.rh-innergrid__more{position:relative;z-index:2;color:var(--gold);padding:0 1.4rem 1.2rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}

/* staff layout */
.rh-staff{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin:1.5rem 0}
.rh-staff__item{text-align:center}
.rh-staff__img{aspect-ratio:1;background-size:cover;background-position:center;background-color:var(--line);border-radius:50%;margin-bottom:.8rem}
.rh-staff__name{font-weight:700;color:var(--brand)}
.rh-staff__role{color:var(--slate);font-size:.9rem}

/* accordion / FAQ */
.rh-acc{border-top:1px solid var(--line);margin:1.5rem 0}
.rh-acc__item{border-bottom:1px solid var(--line)}
.rh-acc__btn{width:100%;text-align:left;background:none;border:0;padding:1.1rem 0;font-family:var(--font-display);font-size:1.2rem;color:var(--brand);cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.rh-acc__btn:after{content:"+";color:var(--gold);font-size:1.5rem}
.rh-acc__btn[aria-expanded="true"]:after{content:"–"}
.rh-acc__panel{display:none;padding:0 0 1.2rem}
.rh-acc__panel.open{display:block}

/* full-width callout (bg image + text) */
.rh-callout{position:relative;color:#fff;text-align:center;padding:clamp(60px,8vw,120px) 1rem;background:var(--brand) center/cover}
.rh-callout:before{content:"";position:absolute;inset:0;background:rgba(0,62,106,.75)}
.rh-callout__inner{position:relative;z-index:2;max-width:760px;margin:0 auto}
.rh-callout h2{color:#fff;font-size:clamp(1.8rem,4vw,3rem)}
/* large quote */
.rh-bigquote{text-align:center;padding:clamp(50px,7vw,100px) 1rem;background:var(--cream)}
.rh-bigquote blockquote{max-width:860px;margin:0 auto;font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.2rem);color:var(--brand);border:0;font-style:italic}
.rh-bigquote cite{display:block;margin-top:1rem;font-size:1rem;color:var(--gold);font-style:normal;text-transform:uppercase;letter-spacing:.08em}

/* image-text carousel (pre-prep schoolSlider) */
.rh-imgtext{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:0}
.rh-imgtext__img{min-height:420px;background-size:cover;background-position:center}
.rh-imgtext__text{padding:clamp(30px,4vw,60px)}
.rh-imgtext__text .sub{color:var(--gold);text-transform:uppercase;letter-spacing:.16em;font-size:.8rem;font-weight:700}

/* full-width POIs */
.rh-poi{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.rh-poi--flip{direction:rtl}.rh-poi--flip>*{direction:ltr}
.rh-poi__img{min-height:380px;background-size:cover;background-position:center}
.rh-poi__text{padding:clamp(30px,4vw,60px);display:flex;flex-direction:column;justify-content:center;background:var(--cream)}

/* news index + tags + pagination */
.rh-newsindex{display:grid;grid-template-columns:1fr 320px;gap:clamp(30px,4vw,60px);max-width:var(--maxw);margin:0 auto;padding:clamp(40px,5vw,70px) clamp(20px,4vw,40px)}
.rh-newscards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.rh-tags h2{font-size:1.3rem;border-bottom:2px solid var(--gold);padding-bottom:.5rem}
.rh-tags__list{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}
.rh-tags__list li{flex:0 0 calc(50% - 8px)}
.rh-tags__list a{display:block;background:var(--cream);border:1px solid var(--line);padding:.6rem 1rem;text-decoration:none;color:var(--brand);font-weight:600;border-radius:var(--r);text-align:center}
.rh-tags__list a:hover,.rh-tags__list a.is-active{background:var(--brand);color:#fff}
.news-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 .6rem;border:1px solid var(--line);color:var(--brand);text-decoration:none;border-radius:var(--r)}
.news-pagination .page-numbers.current{background:var(--brand);color:#fff}

@media(max-width:900px){
  .rh-grid,.rh-schools,.rh-social,.rh-innergrid,.rh-staff{grid-template-columns:1fr 1fr}
  .rh-main,.rh-newsindex{grid-template-columns:1fr}
  .rh-subnav{margin-top:1.5rem}
  .nav-menu .sub-menu{position:static;flex-direction:column;box-shadow:none}
  .rh-imgtext,.rh-poi{grid-template-columns:1fr}
  .rh-gethere{margin:1.5rem auto;max-width:100%}
}
@media(max-width:600px){
  .rh-grid,.rh-schools,.rh-social,.rh-innergrid,.rh-staff,.rh-newscards{grid-template-columns:1fr}
  .site-logo .custom-logo{height:64px}
}
.rh-hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}

/* Inner layout helpers */
.rh-subnav-col{align-self:start}
.rh-fullpage{max-width:var(--maxw);margin:0 auto;padding:clamp(40px,5vw,70px) clamp(20px,4vw,40px)}
.rh-contactform .wpforms-container{margin-top:1rem}
.rh-contactform input[type=text],.rh-contactform input[type=email],.rh-contactform textarea{width:100%}
/* image-text carousel: show only active slide */
.rh-imgtextcar{position:relative}
.rh-imgtext--slide{display:none}
.rh-imgtext--slide.is-active{display:grid}
.rh-imgtext__nav{position:absolute;bottom:1rem;right:1rem;display:flex;gap:.4rem;z-index:5}
.rh-imgtext__btn{background:var(--brand);color:#fff;border:0;width:40px;height:40px;border-radius:50%;cursor:pointer}
.rh-poi__text .rh-page-subtitle{margin-bottom:.3rem}
.rh-banner__title{font-family:var(--font-display);font-size:clamp(2rem,4vw,3.2rem);color:#fff;line-height:1.15}
.rh-fullpage .content__title,.rh-content .content__title{margin-top:0}

/* ============================================================
    home page refinements (override earlier rules)
   ============================================================ */
:root{--red:#e0301e;}

/* ---- Top bar: white bg, coloured circle icons, collapsible search ---- */
.topBar{background:#fff;color:var(--brand);border-bottom:1px solid var(--line)}
.topBar-inner{gap:.6rem;min-height:44px}
.topSocial a{background:var(--brand);color:#fff;border:0}
.topSocial a:hover{background:var(--red)}
.topSocial li:nth-child(3) a{background:#C13584}   /* instagram */
.topSocial li:nth-child(4) a{background:#3b5998}   /* facebook  */
.topSearch{display:flex;align-items:center;border:0}
.topSearch__toggle{width:30px;height:30px;border-radius:50%;background:var(--brand);color:#fff;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem}
.topSearch__toggle:hover{background:var(--red)}
.topSearch__form{max-width:0;overflow:hidden;transition:max-width .3s ease;margin-left:.4rem}
.topSearch.is-open .topSearch__form{max-width:220px}
.topSearch__form input{background:transparent;border:0;border-bottom:1px solid var(--brand);color:var(--brand);padding:.3rem .2rem;width:200px;outline:none;font-family:var(--font-body)}
.topSearch__form input::placeholder{color:var(--slate)}

/* ---- Logo on blue background ---- */
.mainHeader-inner{justify-content:space-between;gap:1.5rem}
.site-logo{background:var(--brand);padding:.7rem 1.6rem;border-radius:0 0 8px 8px;align-self:flex-start;margin-top:calc(-1rem);display:inline-flex;align-items:center}
.mainHeader{padding-top:0}
.mainHeader-inner{padding-top:0;align-items:stretch}
.site-logo .custom-logo{height:96px;transition:height .35s ease}
.mainHeader.is-stuck .site-logo .custom-logo{height:60px}
picture.custom-logo{background:none}

/* ---- Primary nav: active red + underline, red separators ---- */
.navCol{align-self:center}
.nav-menu{gap:0}
.nav-menu>li{padding:0 1rem;position:relative}
.nav-menu>li+li:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:14px;background:var(--red)}
.nav-menu>li>a{position:relative;padding:.6rem 0;color:var(--brand)}
.nav-menu>li>a:hover{color:var(--red)}
.nav-menu>.current-menu-item>a,.nav-menu>.current-menu-ancestor>a,.nav-menu>.current_page_item>a,.nav-menu>.current_page_ancestor>a{color:var(--red)}
.nav-menu>.current-menu-item>a:after,.nav-menu>.current-menu-ancestor>a:after,.nav-menu>.current_page_item>a:after,.nav-menu>.current_page_ancestor>a:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:3px;background:var(--red)}

/* ---- Mega dropdown: fix positioning + keep open + image box + arrows ---- */
.mainHeader{position:relative}
.nav-menu li.menu-item-has-children{position:static}
.nav-menu .rh-mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:3px solid var(--brand);
  box-shadow:0 16px 30px rgba(0,0,0,.14);opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s;z-index:200;pointer-events:none}
.nav-menu li.menu-item-has-children:hover .rh-mega,.nav-menu li.menu-item-has-children:focus-within .rh-mega,.nav-menu .rh-mega:hover{
  opacity:1;visibility:visible;transform:translateY(0);transition:opacity .18s ease,transform .18s ease,visibility 0s;pointer-events:auto}
.rh-mega__inner{max-width:var(--maxw);margin-inline:auto;display:flex;gap:2.5rem;padding:2rem clamp(20px,4vw,40px)}
.rh-mega .sub-menu{position:static;display:grid;grid-template-columns:repeat(3,1fr);gap:.1rem 2rem;box-shadow:none;border:0;padding:0;opacity:1;visibility:visible;transform:none;flex:1;min-width:0;pointer-events:auto}
.rh-mega .sub-menu li{width:auto}
.rh-mega .sub-menu a{display:flex;align-items:center;gap:.5rem;padding:.55rem 0;border-bottom:1px solid var(--line);text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:400;color:var(--ink);white-space:normal}
.rh-mega .sub-menu a:before{content:"\f105";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--red);font-size:.8rem}
.rh-mega .sub-menu a:hover{color:var(--brand)}
.rh-mega__img{width:280px;flex:none;position:relative;border-radius:6px;overflow:hidden;text-decoration:none;min-height:200px;display:flex;align-items:flex-end}
.rh-mega__img-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .5s}
.rh-mega__img:hover .rh-mega__img-bg{transform:scale(1.06)}
.rh-mega__img:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,30,54,.85),rgba(0,30,54,.05))}
.rh-mega__img-label{position:relative;z-index:2;color:#fff;font-family:var(--font-display);font-size:1.3rem;padding:1.1rem 1.3rem}

/* ---- Floating Book a Tour: red, clear of scrollbar ---- */
.rh-booktour{right:16px;transform-origin:right center}
.rh-booktour a{background:var(--red)}
.rh-booktour a:hover{background:var(--brand)}

/* ---- Hero banner text + PLAY OUR VIDEO button ---- */
.rh-hero__center h1{font-weight:400;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.rh-hero__subtitle{text-transform:uppercase;letter-spacing:.25em;font-size:1rem}
.rh-hero__play{margin-top:1.6rem}
.rh-hero__play button{width:auto;height:auto;border-radius:30px;background:var(--red);border:0;color:#fff;
  padding:.85rem 1.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.82rem;display:inline-flex;align-items:center;gap:.6rem}
.rh-hero__play button:hover{background:#fff;color:var(--red)}

/* ---- Welcome: red subtitle, bg image + overlay, button style ---- */
.rh-welcome{position:relative;background:var(--cream)}
.rh-welcome:before{content:"";position:absolute;inset:0;background:rgba(244,244,240,.9)}
.rh-welcome .wrap{position:relative;z-index:2}
.rh-welcome__subtitle{color:var(--red)}
.rh-welcome__title{color:var(--brand)}
.button__link a,a.btn-rh{border-radius:25px;background:var(--red);border:2px solid var(--red);text-transform:uppercase}
.button__link a:hover,a.btn-rh:hover{background:var(--brand);border-color:var(--brand);color:#fff}

/* ---- Awards: coloured + bigger ---- */
.rh-awards img{filter:none;opacity:1;height:90px}
.rh-awards a:hover img{opacity:.8}

/* ---- Home 3x3 grid: content width, styled text/quote cards, button hover ---- */
.rh-grid{max-width:var(--maxw);margin:0 auto;grid-template-columns:repeat(3,1fr)}
.rh-grid__subtitle{color:var(--red)}
.rh-grid__item--text h3{color:var(--brand);font-size:2rem}
.rh-grid__item--text .button__link a{background:var(--red);border-color:var(--red)}
.rh-grid__item--text .button__link a:hover{background:#fff;color:var(--red);border-color:#fff}
.rh-grid__info a{border:2px solid #fff;border-radius:25px;padding:.55rem 1.3rem;text-decoration:none;display:inline-block;width:auto;align-self:flex-start;transition:all .2s}
.rh-grid__info a:hover{background:#fff;color:var(--brand)}
@media(max-width:900px){ .nav-menu .rh-mega{position:static} .rh-mega__inner{flex-direction:column;gap:1rem} .rh-mega .sub-menu{grid-template-columns:1fr} .rh-mega__img{width:100%} .site-logo{margin-top:0} }

/* Hero YouTube/Vimeo cover background */
.rh-hero__ytbg{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}
.rh-hero__ytbg iframe{position:absolute;top:50%;left:50%;width:100vw;height:56.25vw;min-height:100%;min-width:177.78vh;transform:translate(-50%,-50%)}

/* ============================================================
    match live header/dropdown + section fixes
   ============================================================ */
/* ---- Top utility bar ---- */
.topBar{background:#fff;border-bottom:1px solid var(--line)}
.topBar-inner{display:flex;align-items:center;justify-content:space-between;min-height:46px;gap:1rem}
.topBar__parents{color:var(--slate);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;text-decoration:none;font-weight:700}
.topBar__parents:hover{color:var(--brand)}
.topBar__right{display:flex;align-items:center;gap:.5rem;margin-left:auto}
.topSocial{gap:.4rem}
.topSocial a{width:28px;height:28px;font-size:.8rem}
.topSocial .ts--phone,.topSocial .ts--email{background:var(--brand)}
.topSocial .ts--ig{background:radial-gradient(circle at 30% 110%,#fdf497,#fd5949 45%,#d6249f 60%,#285AEB 90%)}
.topSocial .ts--fb{background:#3b5998}
.topSearch__toggle{background:var(--red);width:28px;height:28px}
.topSearch__toggle:hover{background:var(--brand)}
.topSearch__form input{border-bottom-color:var(--brand)}

/* ---- Main bar: split nav + centred square logo ---- */
.mainHeader{position:relative;padding:0;border-bottom:1px solid var(--line)}
.mainHeader-inner{position:relative;display:flex;align-items:center;justify-content:center;gap:1.5rem;padding-block:0;flex-wrap:nowrap}
.navCol{flex:1 1 0;display:flex;margin:0;align-self:center}
.navCol--left{justify-content:flex-end}
.navCol--right{justify-content:flex-start}
.navCol--left .nav-menu>li:nth-child(n+4){display:none}
.navCol--right .nav-menu>li:nth-child(-n+3){display:none}
.nav-menu{gap:0;align-items:center}
.nav-menu>li{position:relative;padding:0 1.1rem}
.nav-menu>li>a{font-size:.82rem;padding:1.35rem 0}
/* dash separators (horizontal en-dash) */
.nav-menu>li+li::before{content:none}
.navCol--left .nav-menu>li:nth-child(2)::before,
.navCol--left .nav-menu>li:nth-child(3)::before,
.navCol--right .nav-menu>li:nth-child(5)::before,
.navCol--right .nav-menu>li:nth-child(6)::before,
.navCol--right .nav-menu>li:nth-child(7)::before{content:"–";position:absolute;left:-5px;top:50%;transform:translateY(-50%);color:#bbb;font-weight:400}
/* active red + underline */
.nav-menu>.current-menu-item>a:after,.nav-menu>.current-menu-ancestor>a:after,.nav-menu>.current_page_item>a:after,.nav-menu>.current_page_ancestor>a:after{bottom:0}

/* logo square (blue) centred, overhangs down */
.site-logo{background:var(--brand);width:132px;min-width:132px;height:118px;display:flex;align-items:center;justify-content:center;
  padding:.5rem;margin:0 1rem -36px;position:relative;z-index:30;border-radius:0 0 4px 4px}
.site-logo .custom-logo{height:auto;max-height:96px;width:auto}
.site-logo .brand-word{display:none}
.mainHeader.is-stuck{border-bottom:1px solid var(--line)}
.mainHeader.is-stuck .site-logo{height:88px;margin-bottom:-22px}
.mainHeader.is-stuck .site-logo .custom-logo{max-height:70px}

/* ---- Mega dropdown: light-grey, 2 cols, right chevrons, blue image panel ---- */
.nav-menu .rh-mega{background:#f0f0f0;border-top:0;box-shadow:0 18px 30px rgba(0,0,0,.16)}
.rh-mega__inner{padding:0;gap:0;align-items:stretch;max-width:var(--maxw)}
.rh-mega .sub-menu{grid-template-columns:repeat(2,1fr);gap:0 3rem;padding:2rem 2.5rem;flex:1;align-content:start}
.rh-mega .sub-menu a{justify-content:space-between;text-transform:uppercase;font-size:.8rem;letter-spacing:.03em;color:#555;border-bottom:1px solid #dcdcdc;padding:.75rem 0}
.rh-mega .sub-menu a::before{content:none}
.rh-mega .sub-menu a::after{content:"\f105";font-family:"Font Awesome 6 Free";font-weight:900;color:#aaa;font-size:.85rem}
.rh-mega .sub-menu a:hover{color:var(--brand)}
.rh-mega .sub-menu a:hover::after{color:var(--brand)}
.rh-mega__img{width:340px;flex:none;background:var(--brand);padding:1.4rem;position:relative;display:block;min-height:auto;border-radius:0;align-items:stretch}
.rh-mega__img:after{content:none}
.rh-mega__img-bg{position:relative;display:block;height:230px;background-size:cover;background-position:center;border-radius:3px;transition:none}
.rh-mega__img-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.55),transparent 60%);border-radius:3px}
.rh-mega__img:hover .rh-mega__img-bg{transform:none}
.rh-mega__img-label{position:absolute;left:2.2rem;bottom:2.1rem;color:#fff;font-family:var(--font-display);font-size:1.35rem;z-index:2;padding:0;text-shadow:0 1px 6px rgba(0,0,0,.5)}

/* ---- Banner title size ---- */
.rh-hero__center{font-size:1.6rem}
.rh-hero__center h1{font-size:1.875em;font-weight:400;line-height:1.15}
.rh-hero__subtitle{font-size:.95rem}

/* ---- Welcome watermark (single, centred) ---- */
.rh-welcome{background:var(--cream) url('https://russellhouseschoolcouk.kinsta.cloud/wp-content/uploads/2026/07/watermark-scaled.png') center center / 520px auto no-repeat}
.rh-welcome:before{content:none}
.rh-welcome .wrap{position:relative;z-index:2}

/* ---- Schools 2-up: hover overlay like the grid ---- */
.rh-schools__top{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:1.6rem 2rem;transition:opacity .3s}
.rh-schools__item:hover .rh-schools__top{opacity:0}
.rh-schools__bot{position:absolute;inset:0;max-height:none;background:rgba(0,62,106,.94);opacity:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:2rem;transition:opacity .4s;z-index:3}
.rh-schools__item:hover .rh-schools__bot{opacity:1}
.rh-schools__bot h3{color:#fff;font-family:var(--font-display);font-size:1.8rem;margin:0 0 .3rem}
.rh-schools__bot span{border:2px solid #fff;border-radius:25px;padding:.55rem 1.4rem;text-decoration:none;margin-top:1rem;transition:all .2s}
.rh-schools__bot span:hover,.rh-schools__item:hover .rh-schools__bot span{}
.rh-schools__bot span:hover{background:#fff;color:var(--brand)}

/* ---- Events section: bg image, red accents ---- */
.rh-events-sec{position:relative;background:linear-gradient(rgba(0,40,74,.82),rgba(0,40,74,.82)),url('https://russellhouseschoolcouk.kinsta.cloud/wp-content/uploads/2026/07/rh-grid-sports.jpg') center/cover fixed}
.rh-events-sec .rh-section__subtitle{color:var(--red)}
.rh-events-sec .rh-section__title{color:#fff}
.rh-events__item{background:#fff;border-radius:4px}
.rh-events__date{color:var(--red)}
.rh-events__date .d{font-family:var(--font-body);font-weight:900;font-size:2.6rem;color:var(--red)}
.rh-events__date .m{color:var(--brand)}
.rh-events__time{color:var(--red)}
.rh-events__item .rh-events__title{color:var(--brand)}
.rh-events-sec .rh-carousel__btn{background:var(--red)}

/* ---- How to get here: white, grey icons, red button ---- */
.rh-gethere{background:#fff;color:#444;box-shadow:0 16px 40px rgba(0,0,0,.18)}
.rh-gethere:before{content:none}
.rh-gethere h2{color:var(--brand)}
.rh-gethere__subtitle{color:var(--red)}
.rh-gethere__entry{color:#444}
.rh-gethere__entry i{color:#9aa2ab}
.rh-gethere a{color:#444}
.rh-gethere .button__link a{background:var(--red);border-color:var(--red);color:#fff}
.rh-gethere .button__link a:hover{background:var(--brand);border-color:var(--brand)}

/* ---- Footer bg ---- */
.site-footer{background:#222222}

@media(max-width:900px){
  .mainHeader-inner{flex-wrap:wrap;justify-content:center}
  .navCol{display:none}
  .site-logo{margin:0}
  .rh-events-sec{background-attachment:scroll}
}

/*  nav spacing + no wrap */
.nav-menu>li>a{white-space:nowrap}
.nav-menu>li{padding:0 .8rem}
.navCol--left,.navCol--right{min-width:0}
.nav-menu>li::before{background:transparent}

/*  clean the nav separators (kill old red bar, grey dash only) */
.nav-menu>li::before,.nav-menu>li+li::before{background:none !important;width:auto !important;height:auto !important}
.navCol--left .nav-menu>li:nth-child(2)::before,
.navCol--left .nav-menu>li:nth-child(3)::before,
.navCol--right .nav-menu>li:nth-child(5)::before,
.navCol--right .nav-menu>li:nth-child(6)::before,
.navCol--right .nav-menu>li:nth-child(7)::before{content:"–" !important;position:absolute !important;left:-4px;top:50%;transform:translateY(-50%);color:#b3b3b3 !important}

/* ============================================================
   Additional refinements
   ============================================================ */
/* Body copy + headings */
body{font-size:100%;line-height:1.8}
.rh-content p,.rh-content li{line-height:1.8}
.rh-content h2{font-size:1.5em;line-height:1.8}

/* First para on inner pages */
.rh-content .intro,.rh-content>h3:first-of-type,.rh-firstpara{font-size:1.17em;line-height:1.8;color:var(--brand);font-family:var(--font-display);font-weight:400}

/* Quote block (history etc.) — left aligned, red left border, no bg, red cite */
.rh-content blockquote{margin:50px 0;font-style:italic;padding:0 0 0 40px;border-left:4px solid #E71D13;background:none;text-align:left;font-family:var(--font-body);font-size:1.1rem;color:var(--ink)}
.rh-content blockquote p{margin:0 0 .8rem}
.rh-content blockquote p:last-child{color:#E71D13;font-style:normal;font-size:.95rem}

/* Home welcome watermark @ 0.05 opacity */
.rh-welcome{background:var(--cream)}
.rh-welcome:before{content:"";position:absolute;inset:0;background:url('https://russellhouseschoolcouk.kinsta.cloud/wp-content/uploads/2026/07/watermark-scaled.png') center center / 520px auto no-repeat;opacity:.05;z-index:0}

/* Home events — bg image right, blue date circles */
.rh-events-sec{background:#fff url('https://russellhouseschoolcouk.kinsta.cloud/wp-content/uploads/2026/07/eventsbg.jpg') right/auto 100% no-repeat;padding:45px 0}
.rh-events-sec .rh-section__subtitle{color:var(--red)}
.rh-events-sec .rh-section__title{color:var(--brand)}
.rh-events__item{background:transparent;padding:1rem;text-align:center}
.rh-events__date{width:88px;height:88px;border-radius:50%;background:var(--brand);color:#fff;margin:0 auto 1rem;display:flex;flex-direction:column;align-items:center;justify-content:center}
.rh-events__date .d{font-family:var(--font-body);font-weight:900;font-size:1.9rem;color:#fff;line-height:1}
.rh-events__date .m{color:#fff;text-transform:uppercase;font-size:.72rem;letter-spacing:.08em}
.rh-events__time{color:var(--red)}
.rh-events__item .rh-events__title{color:var(--brand);font-size:1rem}
.rh-events-sec .rh-carousel__btn{background:var(--brand)}

/* Schools 2-up — full-height hover overlay, visible text */
.rh-schools__item{height:440px;min-height:440px}
.rh-schools__bg{z-index:0}
.rh-schools__item:after{z-index:1}
.rh-schools__top{z-index:2}
.rh-schools__bot{position:absolute;inset:0;z-index:3;background:rgba(0,62,106,.94);opacity:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;max-height:none;transition:opacity .35s}
.rh-schools__item:hover .rh-schools__bot{opacity:1}
.rh-schools__bot h3{color:#fff;font-family:var(--font-display);font-size:1.9rem;margin:0 0 .3rem}
.rh-schools__bot span.ages{color:var(--gold);text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;display:block;margin-bottom:1rem}
.rh-schools__bot p{color:#fff;max-width:34ch}
.rh-schools__bot .rh-schools__cta{border:2px solid #fff;border-radius:25px;padding:.55rem 1.5rem;color:#fff;text-transform:uppercase;font-size:.78rem;letter-spacing:.06em;margin-top:1rem;display:inline-block}
.rh-schools__item:hover .rh-schools__cta:hover{background:#fff;color:var(--brand)}

/* Inner banner: title toward bottom-left */
.rh-banner{align-items:flex-end}
.rh-banner__inner{padding-bottom:2rem}
.rh-banner__title{font-family:var(--font-display);font-size:clamp(2rem,3.5vw,3rem);color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.35)}
/* Breadcrumbs: uppercase, red arrows */
.rh-crumbs{text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;align-items:center}
.rh-crumbs a{color:#fff}
.rh-crumbs__sep{color:var(--red);margin:0 .55rem;font-size:.7rem}
.rh-crumbs__current{color:rgba(255,255,255,.7)}

/* Side subnav: light-grey panel, navy current bar */
.rh-subnav{background:#ededed;color:#555;padding:2rem 0 1rem;margin-top:-160px;position:relative;z-index:6;box-shadow:0 16px 36px rgba(0,0,0,.16)}
.rh-subnav:before{content:none}
.rh-subnav__title{color:var(--brand);font-family:var(--font-display);font-size:1.5rem;border-bottom:0;padding:0 1.8rem .2rem}
.rh-subnav__title:after{content:"";display:block;width:56px;height:2px;background:var(--gold);margin-top:.9rem}
.rh-subnav ul{margin:1rem 0 0}
.rh-subnav a{display:block;color:#666;text-transform:uppercase;font-size:.78rem;letter-spacing:.03em;padding:.9rem 1.8rem;border-bottom:1px solid #dcdcdc}
.rh-subnav li.current a,.rh-subnav a:hover{background:var(--brand);color:#fff}
@media(max-width:900px){ .rh-subnav{margin-top:1.5rem} .rh-events-sec{background-size:cover} }

/* ============================================================
   Additional refinements
   ============================================================ */
/* Logo box square (no rounded corners) */
.site-logo{border-radius:0}

/* Footer bg image + links layout */
.site-footer{background:#222222 url('https://russellhouseschoolcouk.kinsta.cloud/wp-content/uploads/2026/07/footer-scaled.png') center/cover no-repeat}
.site-footer .wrap{position:relative}
.foot-legal{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.2rem 0;list-style:none;padding:0;margin:1rem 0 0}
.foot-legal li{display:inline-flex;align-items:center}
.foot-legal li:not(:last-child):after{content:"•";margin:0 .8rem;color:var(--gold)}
.foot-legal a{color:#fff;text-decoration:none;font-size:.82rem}
.foot-legal a:hover{color:var(--gold)}

/* Awards: remove top line, shrink last (CEOP) logo */
.rh-awards{border-top:0}
.rh-awards li:last-child img{height:58px}

/* Inner banner: 20% taller */
.rh-banner{min-height:53vh}

/* Prospectus link as blue button */
.rh-content a[href*="request-a-prospectus"],.rh-content a[href*="prospectus"]{display:inline-block;background:var(--brand);color:#fff !important;padding:.7rem 1.6rem;border-radius:25px;font-weight:700;text-transform:uppercase;font-size:.82rem;letter-spacing:.06em;text-decoration:none}
.rh-content a[href*="prospectus"]:hover{background:var(--red);color:#fff !important}

/* ---- Side subnav refinements ---- */
.rh-subnav{border-radius:0;overflow:visible}
.rh-subnav__title:after{background:#c9c9c9;margin-top:1.6rem}
.rh-subnav a{border-bottom:0}
.rh-subnav:after{content:"";position:absolute;right:-40px;bottom:-90px;width:420px;height:520px;background:url('https://russellhouseschoolcouk.kinsta.cloud/wp-content/uploads/2026/07/watermark-scaled.png') center/100% 100% no-repeat;opacity:.05;pointer-events:none;z-index:-1}
.rh-subnav-col{overflow:hidden}

/* ---- Inner-page quote + cite (large Playfair) ---- */
.rh-content blockquote{border-left:4px solid #E71D13;background:none;padding:0 0 0 40px;margin:50px 0;text-align:left}
.rh-content blockquote > *{font-size:1.875em;font-family:var(--font-display);font-style:italic;line-height:1.4;color:var(--brand);margin:0 0 .6rem}
.rh-content blockquote > *:last-child:not(:first-child){font-family:var(--font-body);color:#E71D13;font-size:1em;text-transform:uppercase;letter-spacing:1px;font-style:normal;line-height:1.6}

/* ---- Content links ---- */
.rh-content a{color:#003e6a;font-weight:700;text-decoration:none;transition:color .35s ease}
.rh-content a:hover{color:#E71D13}

/* Head's Welcome image-link boxes: 3 per row */
.rh-content .rh-imagelinks{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:1.5rem 0}
.rh-content .rh-imagelinks a{display:block}
.rh-content .rh-imagelinks img{width:100%;height:auto;display:block}
@media(max-width:600px){ .rh-content .rh-imagelinks{grid-template-columns:1fr} }

/* =========================================================
   Additional refinements
   ========================================================= */
/* remove gold entirely -> use brand red */
:root{--gold:#e0301e !important;}

/* --- sticky header: shrink logo noticeably --- */
.mainHeader.is-stuck{padding:0}
.mainHeader.is-stuck .site-logo{height:60px;width:60px;min-width:60px;margin-bottom:-12px;padding:6px}
.mainHeader.is-stuck .site-logo .custom-logo{max-height:44px !important;height:44px !important}
.mainHeader.is-stuck .mainHeader-inner{min-height:64px}

/* --- footer background image: show whole graphic, smaller --- */
.site-footer{background-size:contain !important;background-position:center bottom !important;}

/* --- side subnav: stop the pulled-up top being clipped --- */
.rh-subnav-col{overflow:visible !important;}
.rh-subnav{overflow:hidden;position:relative;}
.rh-subnav:after{right:-30px !important;bottom:-30px !important;width:250px !important;height:290px !important;}

/* --- MEGA MENU: kill hover-trigger, JS controls .rh-open --- */
.nav-menu li.menu-item-has-children:hover .rh-mega,
.nav-menu li.menu-item-has-children:focus-within .rh-mega,
.nav-menu .rh-mega:hover{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(6px);}
.nav-menu .rh-mega{transition:opacity .18s ease,transform .18s ease;}
.nav-menu .rh-mega.rh-open{opacity:1 !important;visibility:visible !important;pointer-events:auto !important;transform:none !important;z-index:320;}

/* --- POLICIES (id 97): bulleted list, no lines, hover red --- */
.page-id-97 .rh-content .rh-links,
.page-id-97 .rh-content ul{list-style:disc;padding-left:1.35em;margin:1.1rem 0;}
.page-id-97 .rh-content .rh-links li,
.page-id-97 .rh-content ul li{display:list-item;border:0 !important;padding:.28rem 0;background:none;}
.page-id-97 .rh-content .rh-links li:before,
.page-id-97 .rh-content .rh-links a:before,
.page-id-97 .rh-content .rh-links a:after{content:none !important;}
.page-id-97 .rh-content a{color:var(--brand);font-weight:600;text-decoration:none;}
.page-id-97 .rh-content a:hover{color:var(--red);}

/* --- TERM DATES (id 96): table styling --- */
.page-id-96 .rh-content table{border-collapse:collapse;width:100%;margin:1.2rem 0;}
.page-id-96 .rh-content table td,.page-id-96 .rh-content table th{padding:.45rem .9rem;vertical-align:middle;border:0;}
.page-id-96 .rh-content table td:first-child,
.page-id-96 .rh-content table th:first-child{background:var(--brand);color:#fff;font-weight:600;border-bottom:2px solid #fff;}
.page-id-96 .rh-content table tr:nth-child(odd) td:nth-child(2){background:#f7f7f7;}
.page-id-96 .rh-content table tr:nth-child(even) td:nth-child(2){background:#fff;}
.page-id-96 .rh-content h2,
.page-id-96 .rh-content h3{font-size:1.5em !important;line-height:1.3 !important;color:var(--brand);margin:1.6rem 0 .6rem;}

/* --- standard blue button helper (uniform etc.) --- */
.rh-content .wp-block-button__link,.rh-content a.rh-btn{
  background:var(--brand);color:#fff !important;border:0;border-radius:4px;
  padding:.72rem 1.5rem;font-weight:600;text-decoration:none;display:inline-block;}
.rh-content .wp-block-button__link:hover,.rh-content a.rh-btn:hover{background:var(--red);color:#fff !important;}

/* --- news & events landing image grid --- */
.rh-newsgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin:1.5rem 0;list-style:none;padding:0;}
.rh-newsgrid a{position:relative;display:block;height:220px;border-radius:6px;overflow:hidden;text-decoration:none;}
.rh-newsgrid a .bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .5s;}
.rh-newsgrid a:hover .bg{transform:scale(1.07);}
.rh-newsgrid a:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,30,54,.85),rgba(0,30,54,.05));}
.rh-newsgrid a span{position:absolute;left:1.1rem;bottom:1rem;z-index:2;color:#fff;font-family:var(--font-display);font-size:1.3rem;line-height:1.2;}
@media(max-width:800px){.rh-newsgrid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.rh-newsgrid{grid-template-columns:1fr}}

/* --- Contact page: blue form panel (replaces grey subnav) --- */
.rh-contactform{background:var(--brand);color:#fff;border-radius:6px;padding:1.8rem 1.8rem 2rem;margin-top:0;}
.rh-contactform:after{content:none !important;}
.rh-contactform .rh-subnav__title{color:#fff;}
.rh-contactform .rh-subnav__title:after{background:rgba(255,255,255,.45) !important;}
.rh-contactform label,.rh-contactform .wpforms-field-label,.rh-contactform .wpforms-field-description{color:#fff !important;}
.rh-contactform input[type=text],.rh-contactform input[type=email],.rh-contactform input[type=tel],.rh-contactform textarea{
  width:100%;background:#fff;border:1px solid #fff;border-radius:4px;padding:.6rem .7rem;color:#222;}
.rh-contactform .wpforms-field{padding:.2rem 0 !important;margin-bottom:0 !important;}
.rh-contactform .wpforms-field-label{margin-bottom:.15rem !important;}
.rh-contactform .wpforms-submit,.rh-contactform button[type=submit]{
  background:var(--red);color:#fff;border:0;border-radius:4px;padding:.7rem 1.6rem;font-weight:600;cursor:pointer;}
.rh-contactform .wpforms-submit:hover{background:#fff;color:var(--brand);}
.rh-contactform .wpforms-required-label{color:#ffd7d2;}

/* =========================================================
    menu bg, button styles, PDF download bars
   ========================================================= */
/* mega dropdown background */
.nav-menu .rh-mega{background:#e6e6e6 !important;}

/* --- standard buttons: match home (red 25px pill) --- */
.rh-content .wp-block-button__link:not([href$=".pdf"]):not(.rh-pdf),
.rh-content a.rh-btn:not([href$=".pdf"]):not(.rh-pdf){
  background:var(--red);color:#fff !important;border:2px solid var(--red);
  border-radius:25px;padding:12px 26px;font-weight:600;text-decoration:none;
  display:inline-block;line-height:1.2;transition:background .2s,border-color .2s;}
.rh-content .wp-block-button__link:not([href$=".pdf"]):not(.rh-pdf):hover,
.rh-content a.rh-btn:not([href$=".pdf"]):not(.rh-pdf):hover{
  background:var(--brand);border-color:var(--brand);color:#fff !important;}

/* --- PDF download bars (match live component) --- */
.rh-content .wp-block-button:has(a[href$=".pdf"]){flex:1 1 100%;max-width:680px;}
.rh-content a[href$=".pdf"].wp-block-button__link{
  position:relative;display:flex;align-items:center;width:100%;min-height:62px;
  background:#fff;border:1px solid #e4e4e4;border-radius:40px;
  padding:0 92px 0 30px;box-shadow:0 2px 12px rgba(0,0,0,.06);
  color:var(--red) !important;font-weight:700;text-transform:uppercase;
  letter-spacing:.03em;text-decoration:none;line-height:1.25;}
.rh-content a[href$=".pdf"].wp-block-button__link:hover{border-color:#d0d0d0;box-shadow:0 4px 16px rgba(0,0,0,.10);background:#fff;}
.rh-content a[href$=".pdf"].wp-block-button__link::before{
  content:"PDF";position:absolute;right:74px;top:50%;transform:translateY(-50%);
  color:#b7b7b7;font-weight:700;letter-spacing:.06em;font-size:.9rem;}
.rh-content a[href$=".pdf"].wp-block-button__link::after{
  content:"\f078";font-family:"Font Awesome 6 Free";font-weight:900;
  position:absolute;right:7px;top:50%;transform:translateY(-50%);
  width:48px;height:48px;line-height:48px;text-align:center;border-radius:50%;
  background:var(--red);color:#fff;font-size:1rem;}


/* PDF download bar applied by the "PDF download button" format, whatever the link address ends in */
.rh-content .wp-block-button:has(a.rh-pdf){flex:1 1 100%;max-width:680px;}
.rh-content a.rh-pdf.wp-block-button__link{
  position:relative;display:flex;align-items:center;width:100%;min-height:62px;
  background:#fff;border:1px solid #e4e4e4;border-radius:40px;
  padding:0 92px 0 30px;box-shadow:0 2px 12px rgba(0,0,0,.06);
  color:var(--red) !important;font-weight:700;text-transform:uppercase;
  letter-spacing:.03em;text-decoration:none;line-height:1.25;}
.rh-content a.rh-pdf.wp-block-button__link:hover{border-color:#d0d0d0;box-shadow:0 4px 16px rgba(0,0,0,.10);background:#fff;}
.rh-content a.rh-pdf.wp-block-button__link::before{
  content:"PDF";position:absolute;right:74px;top:50%;transform:translateY(-50%);
  color:#b7b7b7;font-weight:700;letter-spacing:.06em;font-size:.9rem;}
.rh-content a.rh-pdf.wp-block-button__link::after{
  content:"\f078";font-family:"Font Awesome 6 Free";font-weight:900;
  position:absolute;right:7px;top:50%;transform:translateY(-50%);
  width:48px;height:48px;line-height:48px;text-align:center;border-radius:50%;
  background:var(--red);color:#fff;font-size:1rem;}

/* =========================================================
   Additional refinements
   ========================================================= */
/* --- standard buttons: BLUE, hover RED (pill already 25px) --- */
.rh-content .wp-block-button__link:not([href$=".pdf"]):not(.rh-pdf),
.rh-content a.rh-btn:not([href$=".pdf"]):not(.rh-pdf){
  background:var(--brand) !important;border-color:var(--brand) !important;color:#fff !important;}
.rh-content .wp-block-button__link:not([href$=".pdf"]):not(.rh-pdf):hover,
.rh-content a.rh-btn:not([href$=".pdf"]):not(.rh-pdf):hover{
  background:var(--red) !important;border-color:var(--red) !important;color:#fff !important;}

/* --- dropdown panel bg #e6e6e6 (kill white sub-menu) --- */
.nav-menu .rh-mega .sub-menu{background:transparent !important;}

/* --- desktop nav/logo/mega --- */
@media(min-width:901px){
  /* shorter menu strip */
  .mainHeader-inner{padding-block:.3rem !important;}
  .navCol--left{padding-right:95px;}
  .navCol--right{padding-left:95px;}
  /* top-level link type */
  .nav-menu>li>a{font-size:.875em !important;font-weight:600 !important;letter-spacing:1px !important;padding:.55rem 0 !important;position:relative;}
  /* logo taken out of flow so it overhangs without inflating the strip */
  .site-logo{position:absolute !important;left:50% !important;top:0 !important;transform:translateX(-50%);
    margin:0 !important;width:150px !important;min-width:150px !important;height:150px !important;z-index:30;padding:.6rem !important;}
  .site-logo .custom-logo{max-height:120px !important;height:auto !important;width:auto !important;}
  .mainHeader.is-stuck .site-logo{width:110px !important;min-width:110px !important;height:110px !important;margin:0 !important;padding:.45rem !important;}
  .mainHeader.is-stuck .site-logo .custom-logo{max-height:84px !important;height:auto !important;}
  /* red vertical separators between items */
  .navCol--left .nav-menu>li:nth-child(2)::before,
  .navCol--left .nav-menu>li:nth-child(3)::before,
  .navCol--right .nav-menu>li:nth-child(5)::before,
  .navCol--right .nav-menu>li:nth-child(6)::before,
  .navCol--right .nav-menu>li:nth-child(7)::before{
    content:"" !important;width:1px;height:13px;background:var(--red) !important;color:transparent !important;
    left:-1px !important;top:50% !important;transform:translateY(-50%);}
  /* active red underline at the very bottom of the header strip */
  .nav-menu>.current-menu-item>a:after,.nav-menu>.current-menu-ancestor>a:after,
  .nav-menu>.current_page_item>a:after,.nav-menu>.current_page_ancestor>a:after{
    content:"" !important;position:absolute;left:0;right:0;height:3px;background:var(--red);
    top:auto;bottom:calc(-.3rem - 1px) !important;}
  /* mega: wider than content but not full width, centred */
  .nav-menu .rh-mega{left:50% !important;right:auto !important;transform:translateX(-50%);
    width:min(1180px,96vw) !important;box-shadow:0 18px 34px rgba(0,0,0,.18);}
  .nav-menu .rh-mega.rh-open{transform:translateX(-50%) !important;}
  .rh-mega__inner{max-width:100% !important;background:#e6e6e6 !important;}
  /* mega image tile: text ON image, dark overlay, grey arrow */
  .rh-mega__img{background:none !important;padding:0 !important;overflow:hidden;}
  .rh-mega__img-bg{position:absolute !important;inset:0 !important;height:auto !important;border-radius:0 !important;}
  .rh-mega__img-bg:after{content:none !important;}
  .rh-mega__img:after{content:"" !important;position:absolute;inset:0;
    background:linear-gradient(to top,rgba(0,0,0,.78) 0%,rgba(0,0,0,.4) 24%,rgba(0,0,0,0) 52%) !important;}
  .rh-mega__img-label{left:1.4rem !important;bottom:1.3rem !important;padding-right:1.8rem;}
  .rh-mega__img-label:after{content:"\f105";font-family:"Font Awesome 6 Free";font-weight:900;color:#cccccc;margin-left:.55rem;font-size:.9em;}
}

/* --- top bar: Parents visible, search icon visible, border not full width --- */
.topBar{border-bottom:0 !important;}
.topBar .topBar-inner{border-bottom:1px solid var(--line);}
.topBar a.topBar__parents{color:var(--slate) !important;}
.topBar a.topBar__parents:hover{color:var(--brand) !important;}
.topSearch button.topSearch__toggle{background:var(--brand) !important;color:#fff !important;border:0 !important;
  width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.topSearch button.topSearch__toggle:hover{background:var(--red) !important;}

/* --- Contact "Get in Touch": overlap banner, square, navy title box, red pill submit --- */
.rh-contactform{border-radius:0 !important;margin-top:-160px !important;background:var(--brand) !important;
  padding:0 0 1.8rem !important;box-shadow:0 16px 36px rgba(0,0,0,.18);}
.rh-contactform .rh-subnav__title{background:#004d84;color:#fff !important;text-align:left !important;margin:0 !important;
  height:90px;display:flex;align-items:flex-end;padding:1.1rem 1.6rem !important;
  font-family:var(--font-display);font-size:1.7rem;border:0 !important;}
.rh-contactform .rh-subnav__title:after{content:none !important;display:none !important;}
.rh-contactform .wpforms-container{padding:0 1.6rem !important;margin-top:1.4rem !important;}
.rh-contactform .wpforms-submit{background:var(--red) !important;border-radius:25px !important;border:0 !important;
  padding:.7rem 1.9rem !important;color:#fff !important;font-weight:600;}
.rh-contactform .wpforms-submit:hover{background:#fff !important;color:var(--brand) !important;}

/* =========================================================
   Additional refinements
   ========================================================= */
/* side-nav links 0.875em */
.rh-subnav a{font-size:.875em !important;}

/* side-nav watermark: bigger + positioned */
.rh-subnav:after{right:-70px !important;bottom:-110px !important;top:auto !important;
  width:470px !important;height:560px !important;opacity:.06 !important;}

/* red vertical separators (beat the old earlier rules width:auto !important) */
@media(min-width:901px){
  .navCol--left .nav-menu>li:nth-child(2)::before,
  .navCol--left .nav-menu>li:nth-child(3)::before,
  .navCol--right .nav-menu>li:nth-child(5)::before,
  .navCol--right .nav-menu>li:nth-child(6)::before,
  .navCol--right .nav-menu>li:nth-child(7)::before{
    content:"" !important;display:block !important;width:1px !important;height:13px !important;
    background:var(--red) !important;color:transparent !important;
    position:absolute !important;left:-1px !important;top:50% !important;transform:translateY(-50%) !important;}
}

/* news & events grid: square corners + live-style hover */
.rh-newsgrid a{border-radius:0 !important;}
.rh-newsgrid a:after{transition:background .3s;}
.rh-newsgrid a:hover:after{background:linear-gradient(to top,rgba(0,30,54,.92),rgba(0,30,54,.25));}
.rh-newsgrid a span:not(.bg){transition:transform .3s;}
.rh-newsgrid a:hover span:not(.bg){transform:translateY(-4px);}

/* curriculum: 4-per-row subject boxes, title on image, "find out more" on hover */
.rh-curric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.5rem 0;list-style:none;padding:0;}
.rh-curric-grid a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  height:210px;overflow:hidden;text-decoration:none;text-align:center;border-radius:0;}
.rh-curric-grid a .bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .5s;}
.rh-curric-grid a:hover .bg{transform:scale(1.08);}
.rh-curric-grid a:before{content:"";position:absolute;inset:0;background:rgba(0,30,54,.55);transition:background .3s;}
.rh-curric-grid a:hover:before{background:rgba(0,30,54,.78);}
.rh-curric-grid a .t{position:relative;z-index:2;color:#fff;font-family:var(--font-display);font-size:1.5em;line-height:1.2;padding:0 .6rem;}
.rh-curric-grid a .more{position:relative;z-index:2;color:#fff;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;
  margin-top:.6rem;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s;}
.rh-curric-grid a:hover .more{opacity:1;transform:none;}
@media(max-width:1000px){.rh-curric-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.rh-curric-grid{grid-template-columns:1fr}}

/* curriculum page banner title 1.5em centred (full-width template) */
.page-id-82 .rh-fullpage .content__title{font-size:clamp(2rem,4vw,2.9rem) !important;text-align:left !important;}

/* =========================================================
    In The News posts feed
   ========================================================= */
.rh-itn__filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.2rem 0 1.5rem;}
.rh-itn__filter{background:#e6e6e6;border:0;color:#333;padding:.5rem 1.15rem;border-radius:25px;cursor:pointer;font-weight:600;font-size:.85rem;transition:background .2s,color .2s;}
.rh-itn__filter.is-active,.rh-itn__filter:hover{background:var(--brand);color:#fff;}
.rh-itn__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin:1.2rem 0;}
.rh-itn__card{display:flex;flex-direction:column;background:#fff;border:1px solid #e6e6e6;text-decoration:none;overflow:hidden;transition:box-shadow .3s,transform .3s;}
.rh-itn__card:hover{box-shadow:0 10px 26px rgba(0,0,0,.12);transform:translateY(-3px);}
.rh-itn__img{display:block;height:180px;background-size:cover;background-position:center;}
.rh-itn__body{padding:1rem 1.1rem 1.2rem;}
.rh-itn__date{display:block;color:var(--red);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem;}
.rh-itn__title{display:block;color:var(--brand);font-family:var(--font-display);font-size:1.15rem;line-height:1.3;}
@media(max-width:800px){.rh-itn__grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.rh-itn__grid{grid-template-columns:1fr}}

/* =========================================================
   Additional refinements
   ========================================================= */
@media(min-width:901px){
  /* main menu bar 75px tall */
  .mainHeader-inner{min-height:75px !important;padding-block:0 !important;}
  /* logo rises to the very top of the page (over the top bar), overhangs down */
  .site-logo{top:-48px !important;z-index:400 !important;}
  .mainHeader.is-stuck .site-logo{top:0 !important;}
  .topBar,.mainHeader{overflow:visible;}
}

/* search: field slides out to the LEFT as an overlay over the other icons */
.topSearch{position:relative;}
.topSearch__form{position:absolute;right:36px;top:50%;transform:translateY(-50%);
  max-width:0;overflow:hidden;transition:max-width .3s ease;background:#fff;
  border-radius:25px;box-shadow:0 2px 10px rgba(0,0,0,.15);z-index:20;margin:0;}
.topSearch.is-open .topSearch__form{max-width:250px;}
.topSearch__form input{width:230px;border:0 !important;border-bottom:0 !important;padding:.5rem .9rem;background:transparent;color:var(--brand);outline:none;}

/* =========================================================
   Additional refinements
   ========================================================= */
/* CRITICAL: closed mega must not intercept clicks over page content */
.nav-menu .rh-mega:not(.rh-open){pointer-events:none !important;}
.nav-menu .rh-mega:not(.rh-open) .sub-menu,
.nav-menu .rh-mega:not(.rh-open) .rh-mega__img,
.nav-menu .rh-mega:not(.rh-open) a{pointer-events:none !important;visibility:hidden !important;}

/* top header 45px */
.topBar .topBar-inner{min-height:45px !important;padding-top:0 !important;padding-bottom:0 !important;}

@media(min-width:901px){
  /* menu items 1em */
  .nav-menu>li>a{font-size:1em !important;}
  /* red separators — anchored to the (positioned) link so they sit in the gap */
  .navCol--left .nav-menu>li:nth-child(2)::before,
  .navCol--left .nav-menu>li:nth-child(3)::before,
  .navCol--right .nav-menu>li:nth-child(5)::before,
  .navCol--right .nav-menu>li:nth-child(6)::before,
  .navCol--right .nav-menu>li:nth-child(7)::before{content:none !important;}
  .navCol--left .nav-menu>li:nth-child(2)>a::before,
  .navCol--left .nav-menu>li:nth-child(3)>a::before,
  .navCol--right .nav-menu>li:nth-child(5)>a::before,
  .navCol--right .nav-menu>li:nth-child(6)>a::before,
  .navCol--right .nav-menu>li:nth-child(7)>a::before{
    content:"";position:absolute;left:-1.1rem;top:50%;transform:translateY(-50%);
    width:1px;height:13px;background:var(--red);}
}

/* breadcrumbs a bit bigger */
.rh-crumbs{font-size:.95rem !important;}
.rh-crumbs__sep{font-size:.8rem !important;}

/* inner banner text aligns with left edge of content (stop flex shrink+centre) */
.rh-banner__inner{width:100% !important;}

/* side-nav watermark: only a section visible (client-specified position) */
.rh-subnav:after{right:-340px !important;bottom:-90px !important;top:auto !important;
  width:560px !important;height:660px !important;background-size:100% 100% !important;
  background-position:center !important;opacity:.05 !important;}

/* =========================================================
   Additional refinements
   ========================================================= */
/* menu separators: HORIZONTAL short red line (not vertical) */
@media(min-width:901px){
  .navCol--left .nav-menu>li:nth-child(2)>a::before,
  .navCol--left .nav-menu>li:nth-child(3)>a::before,
  .navCol--right .nav-menu>li:nth-child(5)>a::before,
  .navCol--right .nav-menu>li:nth-child(6)>a::before,
  .navCol--right .nav-menu>li:nth-child(7)>a::before{
    width:12px !important;height:2px !important;left:-1.35rem !important;top:50% !important;}
}
/* footer separator bullets grey */
.foot-legal li:not(:last-child):after{color:#8a8a8a !important;}
.site-footer li::marker{color:#8a8a8a;}

/* belt-and-braces: closed mega fully removed from hit-testing (side-nav under it stays clickable) */
.nav-menu .rh-mega:not(.rh-open){visibility:hidden !important;}

/* history: 4 images smaller, 2 per row */
.page-id-71 .rh-content .rh-imagelinks{grid-template-columns:1fr 1fr !important;max-width:620px;gap:20px;}

/* story wall cards: 20px gap */
.rh-storywall-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:1.5rem 0;list-style:none;padding:0;}
.rh-storywall-grid>*{margin:0 !important;}
@media(max-width:800px){.rh-storywall-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.rh-storywall-grid{grid-template-columns:1fr}}

/* =========================================================
   Additional refinements
   ========================================================= */
@media(min-width:901px){
  /* more spacing between menu items; links fill bar height so underline hits the bottom */
  .nav-menu>li{padding:0 16px !important;}
  .nav-menu>li>a{height:75px !important;display:flex !important;align-items:center;padding:0 !important;}
  .navCol--left{padding-right:60px !important;}
  .navCol--right{padding-left:60px !important;}
  /* active red underline flush to the bottom of the header (touching banner) */
  .nav-menu>.current-menu-item>a:after,.nav-menu>.current-menu-ancestor>a:after,
  .nav-menu>.current_page_item>a:after,.nav-menu>.current_page_ancestor>a:after{
    bottom:0 !important;height:3px !important;}
  /* separators: short, thin red dash (like live) */
  .navCol--left .nav-menu>li:nth-child(2)>a::before,
  .navCol--left .nav-menu>li:nth-child(3)>a::before,
  .navCol--right .nav-menu>li:nth-child(5)>a::before,
  .navCol--right .nav-menu>li:nth-child(6)>a::before,
  .navCol--right .nav-menu>li:nth-child(7)>a::before{
    width:7px !important;height:1px !important;left:-16px !important;}
}
/* sticky header: remove grey line under the menu */
.mainHeader.is-stuck{border-bottom:0 !important;}
/* footer background 20% smaller */
.site-footer{background-size:80% auto !important;}
/* history images fill the width, 50% each */
.page-id-71 .rh-content .rh-imagelinks{grid-template-columns:1fr 1fr !important;max-width:none !important;}
/* quote: the quote line stays navy even when it's the only paragraph (stop it going red) */
.rh-content blockquote > p:first-child{color:var(--brand) !important;}

/* =========================================================
    page red subtitle / eyebrow
   ========================================================= */
.rh-content .rh-eyebrow,.rh-fullpage .rh-eyebrow{
  color:var(--red);text-transform:uppercase;letter-spacing:.12em;font-weight:700;
  font-size:.8rem;margin:0 0 .45rem;font-family:var(--font-body);}
.rh-content .content__title,.rh-fullpage .content__title{margin-top:0;}

/* =========================================================
    callout red overlay (match live)
   ========================================================= */
.rh-callout:before{background:rgba(224,48,30,.82) !important;}

/* =========================================================
    red button + full-width modules
   ========================================================= */
/* red button variant (must beat the blue .rh-btn rule) */
.rh-content a.rh-btn-red{background:var(--red) !important;border:0 !important;color:#fff !important;
  margin:.4rem 0 2.75rem !important;}
.rh-content a.rh-btn-red:hover{background:var(--brand) !important;color:#fff !important;}

/* full-width design modules break out of the constrained content column */
.rh-content .alignfull{
  position:relative;
  width:100vw !important;max-width:100vw !important;
  margin-left:calc(-1 * (max((100vw - var(--maxw))/2, 0px) + clamp(20px,4vw,40px))) !important;
  margin-right:0 !important;
}
@media(max-width:900px){
  .rh-content .alignfull{margin-left:calc(-1 * clamp(20px,4vw,40px)) !important;}
}

/*  red button beats the blue .rh-btn rule (specificity) */
.rh-content a.rh-btn.rh-btn-red,.rh-content a.rh-btn-red:not([href$=".pdf"]):not(.rh-pdf){
  background:var(--red) !important;border:0 !important;color:#fff !important;}
.rh-content a.rh-btn.rh-btn-red:hover,.rh-content a.rh-btn-red:not([href$=".pdf"]):not(.rh-pdf):hover{
  background:var(--brand) !important;color:#fff !important;}

/* =========================================================
    big quote (centred) + carousel to match live mockup
   ========================================================= */
/* BIG QUOTE — match live .quotes: centred Playfair, red cite, no box/border */
.rh-bigquote{background:none !important;text-align:center !important;padding:90px 5% !important;}
.rh-bigquote blockquote{max-width:910px !important;width:90%;margin:0 auto !important;border:0 !important;padding:0 !important;
  background:none !important;text-align:center !important;font-family:"Playfair Display",serif !important;font-style:italic !important;
  font-size:2.25em !important;line-height:1.4 !important;color:#2b2b2b !important;position:relative;}
.rh-bigquote blockquote > *{font-size:inherit !important;color:inherit !important;font-family:inherit !important;text-transform:none !important;letter-spacing:normal !important;}
.rh-bigquote blockquote:before{content:"\201C";position:absolute;left:-.5em;top:-.35em;font-size:1.7em;line-height:1;color:#d9d9d9;font-family:Georgia,serif;}
.rh-bigquote cite{display:block !important;margin-top:30px !important;color:#E71D13 !important;text-transform:uppercase !important;
  letter-spacing:3px !important;font-style:normal !important;font-size:.42em !important;font-family:var(--font-body) !important;line-height:1.4 !important;}
@media(max-width:700px){.rh-bigquote blockquote{font-size:1.5em !important;}}

/* IMG-TEXT CAROUSEL — match live .schoolSlider */
.rh-imgtextcar{position:relative;padding:90px 5% !important;}
.rh-imgtext--slide.is-active{display:grid;grid-template-columns:55% 45%;align-items:center;gap:0;}
.rh-imgtext__img{min-height:510px !important;height:510px;background-size:cover;background-position:center;}
.rh-imgtext__text{padding:0 60px !important;text-align:left;}
.rh-imgtext__text .sub{color:#E71D13 !important;text-transform:uppercase;letter-spacing:3px;font-size:.85rem;font-weight:600;display:block;}
.rh-imgtext__text h3{font-size:clamp(2rem,3vw,3em) !important;margin:.25em 0 0 !important;color:var(--brand);font-family:var(--font-display);line-height:1.1;}
.rh-imgtext__text p{line-height:1.6 !important;margin:35px 0 !important;color:var(--ink);}
.rh-imgtext__nav{position:absolute !important;right:2%;top:50%;transform:translateY(-50%);bottom:auto !important;left:auto;display:flex;flex-direction:column;gap:10px;}
.rh-imgtext__btn{background:none !important;color:#E71D13 !important;border:1px solid #e6e6e6 !important;width:50px;height:50px;border-radius:50%;cursor:pointer;font-size:1.25em;transition:color .3s;}
.rh-imgtext__btn:hover{color:var(--brand) !important;}
@media(max-width:800px){
  .rh-imgtext--slide.is-active{grid-template-columns:1fr;}
  .rh-imgtext__img{min-height:320px !important;height:320px;}
  .rh-imgtext__text{padding:30px 20px 0 !important;}
  .rh-imgtext__nav{position:static !important;transform:none;flex-direction:row;justify-content:center;margin-top:20px;}
}

/* SECTION SPACING between full-width modules */
.rh-content .rh-grid{margin:0;}
.rh-content .rh-callout{margin:0;}

/* =========================================================
    layout blowout fix, global buttons, boxes, carousel width
   ========================================================= */
/* stop full-bleed modules blowing out the grid (keeps sidebar in place) */
.rh-main{grid-template-columns:minmax(0,1fr) 385px !important;}

/* GLOBAL button style: uppercase, weight 400, letter-spacing 1px */
.rh-content .wp-block-button__link,.rh-content a.rh-btn,.rh-content a.rh-btn-red,
.rh-grid__info a,.rh-grid__item--text .button__link a,.rh-imgtext__text .button__link a,
.rh-callout a,.rh-callout .button__link a{
  text-transform:uppercase !important;font-weight:400 !important;letter-spacing:1px !important;}

/* 3 IMAGE BOXES: gaps, taller, centred title 60px from bottom, white hover button */
.rh-content .rh-grid{gap:20px !important;padding:0 5% !important;max-width:none !important;}
.rh-grid__item{min-height:560px !important;}
.rh-grid__item--img{align-items:flex-end;justify-content:center;text-align:center;}
.rh-grid__item--img > h3{text-align:center;width:100%;padding:0 1.5rem 60px !important;font-size:1.7rem;}
.rh-grid__item--img:hover > h3{transform:none;}
.rh-grid__info{align-items:center !important;justify-content:center !important;text-align:center !important;}
.rh-grid__info h3{text-align:center;}
.rh-grid__info a{background:#fff !important;color:var(--brand) !important;border:0 !important;border-radius:25px;
  padding:.65rem 1.7rem !important;text-decoration:none !important;align-self:center !important;width:auto;}
.rh-grid__info a:hover{background:var(--red) !important;color:#fff !important;}

/* CAROUSEL: not too wide — contain to content width (override full-bleed) */
.rh-content .rh-imgtextcar.alignfull{width:min(1180px,92vw) !important;max-width:1180px !important;margin:40px auto !important;}

/* CALLOUT: bigger title */
.rh-callout h2,.rh-callout .rh-callout__title{font-size:clamp(2.4rem,4vw,3.6rem) !important;}

/* =========================================================
    callout (text-left/image-right, 2 buttons), big-quote marks
   ========================================================= */
/* CALLOUT: red band, text left, image right (smaller), two buttons */
.rh-callout{background:var(--red) !important;padding:0 !important;color:#fff;}
.rh-callout:before{content:none !important;display:none !important;}
.rh-callout__inner{display:flex;align-items:stretch;max-width:100%;margin:0;text-align:left;}
.rh-callout__text{flex:1 1 60%;padding:clamp(40px,5vw,80px);color:#fff;text-align:left;}
.rh-callout__title{color:#fff !important;text-align:left !important;margin:0 0 1rem;}
.rh-callout__text p{color:#fff;max-width:620px;margin:0;}
.rh-callout__btns{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.8rem;}
.rh-callout__btn{background:#fff !important;color:var(--red) !important;border:2px solid #fff !important;border-radius:25px;padding:.7rem 1.7rem !important;text-decoration:none !important;display:inline-block;}
.rh-callout__btn--outline{background:transparent !important;color:#fff !important;}
.rh-callout__btn:hover{background:var(--brand) !important;border-color:var(--brand) !important;color:#fff !important;}
.rh-callout__img{flex:0 0 40%;min-height:360px;background-size:cover;background-position:center;}
@media(max-width:800px){.rh-callout__inner{flex-direction:column;} .rh-callout__img{flex-basis:auto;min-height:220px;}}

/* BIG QUOTE: closing quote mark after (as well as before) */
.rh-bigquote blockquote:after{content:"\201D";position:absolute;right:-.5em;bottom:-.55em;font-size:1.7em;line-height:1;color:#d9d9d9;font-family:Georgia,serif;}

/* =========================================================
    callout white buttons + red quote cite
   ========================================================= */
.rh-content .rh-callout a.rh-callout__btn{background:#fff !important;color:var(--red) !important;border:2px solid #fff !important;}
.rh-content .rh-callout a.rh-callout__btn--outline{background:transparent !important;color:#fff !important;}
.rh-content .rh-callout a.rh-callout__btn:hover{background:var(--brand) !important;border-color:var(--brand) !important;color:#fff !important;}
.rh-bigquote blockquote cite{color:#E71D13 !important;font-size:.42em !important;}

/* =========================================================
    brand red #E71D13, quote marks, callout, carousel overlap
   ========================================================= */
:root{--red:#E71D13 !important;--gold:#E71D13 !important;}

/* BIG QUOTE: much larger quote marks + red cite */
.rh-bigquote blockquote:before{content:"\201C";left:-.35em;top:-.15em;font-size:4.5em;line-height:1;color:#e2e2e2;}
.rh-bigquote blockquote:after{content:"\201D";right:-.35em;bottom:-.5em;font-size:4.5em;line-height:1;color:#e2e2e2;}
.rh-bigquote blockquote cite{color:#E71D13 !important;}

/* CALLOUT: brand red, text pushed toward middle, both buttons outline/centred */
.rh-callout__text{padding-left:clamp(60px,14vw,240px) !important;}
.rh-callout__btns{align-items:center;}
.rh-content .rh-callout a.rh-callout__btn,
.rh-content .rh-callout a.rh-callout__btn--outline{
  background:transparent !important;color:#fff !important;border:1px solid #fff !important;
  display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1;
  padding:.9rem 1.7rem !important;}
.rh-content .rh-callout a.rh-callout__btn:hover,
.rh-content .rh-callout a.rh-callout__btn--outline:hover{background:#fff !important;color:var(--red) !important;border-color:#fff !important;}

/* IMAGE-TEXT CAROUSEL — overlapping schoolSlider effect */
.rh-content .rh-slider.alignfull{width:min(1180px,92vw) !important;max-width:1180px !important;margin:40px auto !important;}
.rh-slider__inner{position:relative;padding:60px 0;}
.rh-slider__inner:after{content:"";display:table;clear:both;}
.rh-slider__imgs{position:relative;list-style:none;margin:0;padding:0;height:510px;width:55%;float:left;}
.rh-slider__img{position:absolute;width:420px;height:510px;left:0;right:0;margin:auto;transform:scale(.8);opacity:.5;
  transition:all 1s ease;background-size:cover;background-position:center;z-index:0;}
.rh-slider__img.prev{left:0;right:calc(100% - 420px);z-index:1;opacity:.6;}
.rh-slider__img.next{left:calc(100% - 420px);right:0;z-index:1;opacity:.6;}
.rh-slider__img.active{transform:scale(1);opacity:1;z-index:3;}
.rh-slider__texts{width:45%;float:right;position:relative;min-height:510px;}
.rh-slider__text{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .5s;padding:55px 40px 0 50px;}
.rh-slider__text.active{opacity:1;visibility:visible;}
.rh-slider__text span{color:var(--red);text-transform:uppercase;letter-spacing:3px;display:block;font-size:.9rem;}
.rh-slider__text h3{font-size:clamp(2rem,3vw,3em);margin:.2em 0;color:var(--brand);font-family:var(--font-display);line-height:1.1;}
.rh-slider__text p{line-height:1.6;margin:30px 0;color:var(--ink);}
.rh-slider__text .button__link a{background:var(--red);color:#fff !important;border-radius:25px;padding:.7rem 1.6rem;text-decoration:none;display:inline-block;text-transform:uppercase;letter-spacing:1px;font-weight:400;}
.rh-slider__text .button__link a:hover{background:var(--brand);color:#fff !important;}
.rh-slider__btns{position:absolute;right:0;bottom:0;display:flex;gap:10px;z-index:10;}
.rh-slider__btn{width:50px;height:50px;border-radius:50%;border:1px solid #e6e6e6;background:none;color:var(--red);font-size:1.5em;line-height:1;cursor:pointer;transition:color .3s;}
.rh-slider__btn:hover{color:var(--brand);}
@media(max-width:800px){
  .rh-slider__imgs,.rh-slider__texts{width:100%;float:none;}
  .rh-slider__imgs{height:300px;} .rh-slider__img{width:240px;height:300px;}
  .rh-slider__img.prev{right:calc(100% - 240px);} .rh-slider__img.next{left:calc(100% - 240px);}
  .rh-slider__text{position:relative;padding:20px 0;min-height:0;}
  .rh-slider__btns{position:static;justify-content:center;margin-top:20px;}
}

/* ============================================================
    header width, search circle, menu underline +
   separator, global subtitles, home intro/logos, what's-special grid
   ============================================================ */

/* 1 — Header container wider: 5% side padding, remove 1280 cap */
.topBar .wrap.topBar-inner,
.mainHeader .wrap.mainHeader-inner{max-width:none !important;padding-left:5% !important;padding-right:5% !important;}

/* 2 — Search toggle sits in a RED circle (was blue) */
.topSearch button.topSearch__toggle{background:var(--red) !important;color:#fff !important;border:0 !important;}
.topSearch button.topSearch__toggle:hover{background:var(--brand) !important;}

/* 3 + 4 — Active AND hover red underline, flush to the banner edge, animated */
.nav-menu>li>a{position:relative;}
.nav-menu>li>a:after{content:"";position:absolute;left:0;right:0;bottom:-4px !important;height:3px;
  background:var(--red);transform:scaleX(0);transform-origin:left center;
  transition:transform .3s ease;}
.nav-menu>li>a:hover:after,
.nav-menu>.current-menu-item>a:after,
.nav-menu>.current-menu-ancestor>a:after,
.nav-menu>.current_page_item>a:after,
.nav-menu>.current_page_ancestor>a:after{transform:scaleX(1);bottom:-4px !important;}

/* 5 — Separators: kill every legacy variant, then one clean 6x1px red dash
   centred in the gap on the correct items only (not the first of each column) */
.nav-menu>li::before,.nav-menu>li+li::before,
.navCol--left .nav-menu>li:nth-child(2)::before,
.navCol--left .nav-menu>li:nth-child(3)::before,
.navCol--right .nav-menu>li:nth-child(4)::before,
.navCol--right .nav-menu>li:nth-child(5)::before,
.navCol--right .nav-menu>li:nth-child(6)::before,
.navCol--right .nav-menu>li:nth-child(7)::before{content:none !important;}
@media(min-width:901px){
  .navCol--left .nav-menu>li:nth-child(2)>a::before,
  .navCol--left .nav-menu>li:nth-child(3)>a::before,
  .navCol--right .nav-menu>li:nth-child(5)>a::before,
  .navCol--right .nav-menu>li:nth-child(6)>a::before,
  .navCol--right .nav-menu>li:nth-child(7)>a::before{
    content:"" !important;position:absolute !important;width:6px !important;height:1px !important;
    background:var(--red) !important;left:-16px !important;top:50% !important;
    transform:translateY(-50%) !important;color:transparent !important;display:block !important;}
}

/* 7 — Global red subtitle / eyebrow style (matches live #content__subtitle) */
.rh-eyebrow,.rh-welcome__subtitle,.rh-grid__subtitle,.rh-section__subtitle,
.rh-slider__text span,.rh-gethere__subtitle{
  color:#E71D13 !important;text-transform:uppercase !important;letter-spacing:3px !important;
  margin:0 !important;font-family:'Lato',sans-serif !important;font-size:1em !important;font-weight:700;}

/* 8 — Home intro watermark 20% smaller (520 -> 416) so there's space around it */
.rh-home .rh-welcome:before,.rh-welcome:before{background-size:416px auto !important;}

/* 9 — Home logos row: more breathing room, no bottom border */
.rh-home .rh-awards{padding-top:5rem !important;padding-bottom:5rem !important;
  border-top:0 !important;border-bottom:0 !important;}

/* 10 — Home "What's Special" grid: contained + SQUARE tiles (inner pages stay tall) */
.rh-home .rh-grid{gap:0 !important;padding:0 !important;max-width:var(--maxw) !important;margin:0 auto !important;}
.rh-home .rh-grid__item{min-height:0 !important;aspect-ratio:1 / 1 !important;}
.rh-home .rh-grid__item--img>h3{padding:0 1.4rem 1.4rem !important;font-size:1.5rem;}
/* text tile (top-right): left-aligned, larger title, BLUE button */
.rh-home .rh-grid__item--text{text-align:left !important;align-items:flex-start !important;padding:2.4rem !important;}
.rh-home .rh-grid__item--text h3{color:var(--brand) !important;text-align:left !important;
  font-size:clamp(2.2rem,3vw,2.8rem) !important;line-height:1.1;}
.rh-home .rh-grid__item--text p{text-align:left !important;}
.rh-home .rh-grid__item--text .button__link a{background:var(--brand) !important;
  border-color:var(--brand) !important;color:#fff !important;}
.rh-home .rh-grid__item--text .button__link a:hover{background:var(--brand-hover) !important;
  border-color:var(--brand-hover) !important;color:#fff !important;}

/* ============================================================
    Page Banner block (SchoolCMS-style:
   tall image + overlaid headline + breadcrumb)
   ============================================================ */
.rh-pagebanner{position:relative;min-height:clamp(420px,50vw,600px);background-size:cover;
  background-position:center;display:flex;align-items:flex-end;margin:0;}
.rh-pagebanner__overlay{position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(0,0,0,.55),rgba(0,0,0,.08) 55%,rgba(0,0,0,.18));}
.rh-pagebanner__inner{position:relative;z-index:2;width:100%;padding-top:40px;padding-bottom:clamp(34px,5vw,72px);text-align:left;}
.rh-pagebanner__inner .rh-pagebanner__headline{text-align:left;}
.rh-pagebanner__headline{color:#fff;font-family:var(--font-display);font-weight:500;
  font-size:clamp(2.4rem,6vw,5rem);line-height:1.03;margin:0;text-shadow:0 2px 20px rgba(0,0,0,.45);}
.rh-pagebanner .rh-crumbs{margin-top:1rem;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;
  list-style:none;padding:0;}
.rh-pagebanner .rh-crumbs,.rh-pagebanner .rh-crumbs a,
.rh-pagebanner .rh-crumbs .rh-crumbs__current{color:#fff !important;text-decoration:none;font-size:.95rem;letter-spacing:.02em;}
.rh-pagebanner .rh-crumbs__sep{margin:0 .35rem;opacity:.8;}

/* ============================================================
    Text block (matches sws-text)
   ============================================================ */
.rh-text{margin:0 0 1.6rem;}
.rh-text__title{color:var(--brand);font-family:var(--font-display);margin:.2em 0 .6em;}
.rh-text__body>*:first-child{margin-top:0;}
.rh-text__body>*:last-child{margin-bottom:0;}

/* ============================================================
    Video + Gallery blocks
   ============================================================ */
.rh-video{margin:2rem 0;}
.rh-video__title{color:var(--brand);font-family:var(--font-display);margin:0 0 1rem;}
.rh-video__frame{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:var(--r);}
.rh-video__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.rh-gallery{display:grid;grid-template-columns:repeat(var(--rh-gallery-cols,2),1fr);gap:16px;margin:2rem 0;}
.rh-gallery__item{display:block;overflow:hidden;border-radius:var(--r);}
.rh-gallery__item img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block;transition:transform .5s ease;}
.rh-gallery__item:hover img{transform:scale(1.05);}
@media(max-width:600px){.rh-gallery{grid-template-columns:1fr 1fr;gap:10px;}}
.rh-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.88);display:none;align-items:center;justify-content:center;z-index:99999;}
.rh-lightbox.is-open{display:flex;}
.rh-lightbox img{max-width:90vw;max-height:90vh;border-radius:4px;box-shadow:0 10px 40px rgba(0,0,0,.5);}
.rh-lightbox__close{position:absolute;top:18px;right:28px;background:none;border:0;color:#fff;font-size:2.6rem;line-height:1;cursor:pointer;}

/* ============================================================
    Pre-prep content pages: lead paragraph +
   floated inline images (match live e4education layout)
   ============================================================ */
.rh-text__body .rh-lead,.rh-text__body .is-style-rh-lead{font-size:1.17em;line-height:1.8;color:var(--brand);
  font-family:var(--font-display);font-weight:500;margin:0 0 1.3rem;}
.rh-text__body img{height:auto;border-radius:var(--r);}
.rh-text__body img.alignleft{float:left;margin:.3rem 1.8rem 1.1rem 0;width:44%;max-width:430px;}
.rh-text__body img.alignright{float:right;margin:.3rem 0 1.1rem 1.8rem;width:44%;max-width:430px;}
.rh-text__body img.aligncenter{display:block;margin:1.2rem auto;max-width:100%;}
.rh-text__body img.alignnone{display:block;margin:0 0 1.3rem;max-width:100%;}
.rh-text__body::after{content:"";display:table;clear:both;}
@media(max-width:700px){
  .rh-text__body img.alignleft,.rh-text__body img.alignright{float:none;width:100%;max-width:100%;margin:1rem 0;}
}

/* ============================================================
    floated core images for content pages
   ============================================================ */
.rh-content .rh-lead,.rh-content .is-style-rh-lead{font-size:1.17em;line-height:1.8;color:var(--brand);
  font-family:var(--font-display);font-weight:500;margin:0 0 1.3rem;}
.rh-content .wp-block-image{margin:0 0 1.2rem;}
.rh-content .wp-block-image img{border-radius:var(--r);height:auto;max-width:100%;}
.rh-content .wp-block-image.alignleft{float:left;margin:.3rem 1.9rem 1.1rem 0;width:44%;max-width:430px;}
.rh-content .wp-block-image.alignright{float:right;margin:.3rem 0 1.1rem 1.9rem;width:44%;max-width:430px;}
.rh-content .rh-content__flow::after,.rh-content>.wp-block-image:last-child{clear:both;}
@media(max-width:700px){
  .rh-content .wp-block-image.alignleft,.rh-content .wp-block-image.alignright{float:none;width:100%;max-width:100%;margin:1rem 0;}
}

/* ============================================================
    sidenav padding + watermark, menu line inset,
   menu gap + centred separators, sticky spacer, content title
   ============================================================ */
/* 1 — sidenav title padding (live spec) */
.rh-subnav__title{padding:40px 55px 20px !important;}
/* (margin-left removed per an earlier fix: underline aligns to title padding) */
.rh-contactform .rh-subnav__title{padding:1.1rem 1.6rem !important;}
.rh-contactform .rh-subnav__title:after{margin-left:0;}

/* 2 — sidenav watermark position */
.rh-subnav:after{right:-340px !important;bottom:-200px !important;}

/* 3 — main-menu underline inset 5% (not full width) */
.mainHeader{border-bottom:0 !important;position:relative;}
.mainHeader:after{content:"";position:absolute;left:5%;right:5%;bottom:0;height:1px;background:var(--line);z-index:1;}
.mainHeader.is-stuck:after{display:none;}

/* 4 — larger gap between menu items; separator centred in the gap */
@media(min-width:901px){
  .nav-menu>li{padding:0 26px !important;}
  .navCol--left .nav-menu>li:nth-child(2)>a::before,
  .navCol--left .nav-menu>li:nth-child(3)>a::before,
  .navCol--right .nav-menu>li:nth-child(5)>a::before,
  .navCol--right .nav-menu>li:nth-child(6)>a::before,
  .navCol--right .nav-menu>li:nth-child(7)>a::before{left:-26px !important;}
}

/* 5 — sticky spacer transparent */
.rh-stick-spacer{background:transparent !important;}

/* 6 — page's own title at the top of the main content */
.rh-content .content__title,.rh-fullpage .content__title{font-family:var(--font-display);color:var(--brand);
  font-size:clamp(2rem,4vw,2.9rem);line-height:1.1;margin:0 0 1.3rem;}

/* ============================================================
    banner headline size, topBar strip border
   inset, sticky box-shadow removed, sidenav link padding
   ============================================================ */
.rh-pagebanner__headline{font-size:3em !important;}
.topBar .topBar-inner{border-bottom:0 !important;position:relative;}
.topBar .topBar-inner:after{content:"";position:absolute;left:5%;right:5%;bottom:0;height:1px;background:var(--line);}
.mainHeader.is-stuck{box-shadow:none !important;}
.rh-subnav a{padding:18px 55px !important;}

/* ============================================================
    sticky header clean line (no bar),
   active menu underline made visible, sidenav width 385px
   ============================================================ */
/* Sticky header: no box-shadow bar, no white gap — just a clean
   1px inset line at the very bottom, matching the top strip. */
.mainHeader.is-stuck{box-shadow:none !important;border-bottom:0 !important;}
.mainHeader.is-stuck:after{content:"" !important;display:block !important;position:absolute;
  left:5%;right:5%;bottom:0;height:1px;background:var(--line);}
.rh-stick-spacer{background:transparent !important;box-shadow:none !important;border:0 !important;}

/* Active menu underline: lift 3px up so it sits inside the header
   edge and reads as a clear red bar in both static + sticky states. */
.nav-menu>.current-menu-item>a:after,.nav-menu>.current-menu-ancestor>a:after,
.nav-menu>.current_page_item>a:after,.nav-menu>.current_page_ancestor>a:after{
  bottom:-1px !important;height:3px !important;z-index:6 !important;}

/* Sidenav column width to match live (385px). */
.rh-main{grid-template-columns:minmax(0,1fr) 385px !important;}

/* ============================================================
    dropdown width = top-strip border width,
   dropdown image blue panel #003e6a 40px, active underline
   touches banner + dropdown nudged 1px, sticky white-bar fix
   (admin-bar offset) + thin rule removed
   ============================================================ */
/* Mega dropdown panel = same 5%–95% span as the top-strip border.
   The theme's % centring resolved against the wrong box; anchor to the
   viewport instead (50vw centre, 90vw wide = 5vw..95vw). Desktop only. */
@media(min-width:901px){
  .nav-menu .rh-mega{left:50vw !important;right:auto !important;
    max-width:90vw !important;width:90vw !important;
    transform:translateX(-50%) !important;top:calc(100% + 1px) !important;}
  .nav-menu .rh-mega.rh-open{transform:translateX(-50%) !important;}
  .rh-mega__inner{max-width:none !important;width:100% !important;}
  /* Image panel: blue background + 40px padding */
  .rh-mega__img{background:#003e6a !important;padding:40px !important;}
}

/* Active menu underline touches the banner (remove the 1px gap) */
.nav-menu>.current-menu-item>a:after,.nav-menu>.current-menu-ancestor>a:after,
.nav-menu>.current_page_item>a:after,.nav-menu>.current_page_ancestor>a:after{bottom:-4px !important;}

/* Sticky header: drop the thin rule entirely */
.mainHeader.is-stuck:after{display:none !important;}
/* White bar was the transparent spacer showing through because the fixed
   header sat behind the WP admin bar. Offset the sticky header by the
   admin-bar height so it covers the spacer (logged-in view only). */
.admin-bar .mainHeader.is-stuck{top:32px !important;}
@media screen and (max-width:782px){.admin-bar .mainHeader.is-stuck{top:46px !important;}}

/* ============================================================
    sidenav ("In This Section") matched to the
   live site: flat light-grey panel, navy 32px title (no gold
   underline), plain uppercase #333 links, no watermark graphic,
   no dividers. Scoped to exclude the contact-page form box.
   ============================================================ */
.rh-subnav:not(.rh-contactform){background:#e6e6e6 !important;background-image:none !important;
  border-radius:0 !important;box-shadow:none !important;padding:0 0 20px !important;overflow:visible !important;}
.rh-subnav:not(.rh-contactform):after{display:none !important;content:none !important;}
.rh-subnav:not(.rh-contactform) .rh-subnav__title{color:#003e6a !important;font-family:var(--font-display) !important;
  font-size:2rem !important;font-weight:400 !important;text-transform:none !important;
  border-bottom:0 !important;padding:40px 55px 20px !important;margin:0 !important;}
.rh-subnav:not(.rh-contactform) .rh-subnav__title:after{display:none !important;content:none !important;}
.rh-subnav:not(.rh-contactform) ul{margin:0 !important;}
.rh-subnav:not(.rh-contactform) a{display:block !important;color:#333 !important;background:transparent !important;
  font-size:.875em !important;font-weight:400 !important;text-transform:uppercase !important;letter-spacing:normal !important;
  padding:18px 55px !important;border-bottom:0 !important;text-decoration:none !important;}
.rh-subnav:not(.rh-contactform) a:hover,
.rh-subnav:not(.rh-contactform) li.current a,
.rh-subnav:not(.rh-contactform) .current a{color:#003e6a !important;background:transparent !important;}

/* ============================================================
    sticky header 66px, inner banner 480px,
   subnav padding/title/underline, dropdown image 1/3 width,
   uniform + parents button spacing
   ============================================================ */
/* Sticky header height 66px (was ~78) */
.mainHeader.is-stuck{height:66px !important;min-height:66px !important;}
.mainHeader.is-stuck .mainHeader-inner{min-height:66px !important;padding-top:0 !important;padding-bottom:0 !important;}
.mainHeader.is-stuck .nav-menu>li>a{height:66px !important;}

/* Inner-page banner height 480px */
.rh-pagebanner{min-height:480px !important;}

/* Sidenav: padding, title size, gold underline (re-enabled at 80px, no left margin) */
.rh-subnav:not(.rh-contactform){padding:0.5rem 0 1rem !important;}
.rh-subnav:not(.rh-contactform) .rh-subnav__title{font-size:2em !important;}
.rh-subnav:not(.rh-contactform) .rh-subnav__title:after{display:block !important;content:"" !important;
  width:80px !important;height:2px !important;background:var(--gold) !important;margin:.9rem 0 0 0 !important;}

/* Mega dropdown image = one third of the dropdown width */
@media(min-width:901px){
  .rh-mega__img{flex:0 0 33.3333% !important;width:33.3333% !important;max-width:33.3333% !important;}
}

/* Uniform + Parents: space between stacked buttons / PDF links */
.rh-content .wp-block-button{margin-bottom:12px !important;}
.rh-content .wp-block-buttons{gap:12px 16px !important;}

/* ============================================================
    single-paragraph quotes render large
   (a one-<p> quote was being caught by the "last-child =
   small attribution" rule; make an only-child quote match
   the large first-line style, e.g. Useful Info like History)
   ============================================================ */
.rh-content blockquote > p:only-child{font-size:1.875em !important;color:var(--brand) !important;
  font-family:var(--font-display) !important;font-style:italic !important;line-height:1.4 !important;
  text-transform:none !important;letter-spacing:normal !important;margin:0 0 .6rem !important;}

/* ============================================================
    sidenav underline back to gold + blue-bg
   hover; dropdown blue image frame + equal height; full mobile
   layout (header burger/logo/search, banner, single-column)
   ============================================================ */
/* Sidenav: gold underline (var(--gold) is red on this build) + blue-bg hover */
.rh-subnav:not(.rh-contactform) .rh-subnav__title:after{background:#C9A227 !important;}
.rh-subnav:not(.rh-contactform) a:hover,
.rh-subnav:not(.rh-contactform) li.current a,
.rh-subnav:not(.rh-contactform) .current a{background:#003e6a !important;color:#fff !important;}

/* Mega dropdown: image on blue #003e6a with a 40px frame + equal height */
@media(min-width:901px){
  .rh-mega__img{background:#003e6a !important;padding:40px !important;position:relative !important;}
  .rh-mega__img-bg{position:absolute !important;inset:40px !important;}
  .rh-mega__inner{min-height:340px !important;align-items:stretch !important;}
}

/* Mobile action buttons (burger + search) as circles like the live site */
.mobileSearch{display:none;background:#fff;border:1px solid var(--line);border-radius:50%;
  width:46px;height:46px;align-items:center;justify-content:center;cursor:pointer;color:var(--brand);font-size:1.05rem;}
.mobileToggle{border-radius:50%;width:46px;height:46px;align-items:center;justify-content:center;border:1px solid var(--line);}
.mobileNav__search{display:flex;gap:.5rem;padding:1rem 0 .5rem;}
.mobileNav__search input{flex:1;padding:.65rem .85rem;border:1px solid var(--line);font-size:1rem;}
.mobileNav__search button{background:var(--brand);color:#fff;border:0;padding:0 1.1rem;cursor:pointer;border-radius:2px;}

/* ---- MOBILE (<=900px) ---- */
@media(max-width:900px){
  .topBar{display:none !important;}
  .mainHeader-inner{display:flex !important;align-items:center;justify-content:space-between !important;
    gap:.5rem;padding:.55rem 5% !important;}
  .mobileToggle{order:1;display:flex !important;}
  .site-logo{order:2;position:static !important;left:auto !important;top:auto !important;transform:none !important;
    margin:0 auto !important;width:auto !important;min-width:0 !important;height:auto !important;padding:0 !important;}
  .site-logo .custom-logo{max-height:58px !important;height:auto !important;width:auto !important;}
  .mobileSearch{order:3;display:flex !important;}
  .navCol{display:none !important;}
  /* content full width, sidenav stacks under content (override the !important 2-col rules) */
  .rh-main{grid-template-columns:1fr !important;}
  .rh-subnav-col{order:2;}
  .rh-subnav{margin-top:2rem !important;}
  /* banner smaller on mobile */
  .rh-pagebanner{min-height:300px !important;}
  .rh-pagebanner__headline{font-size:2em !important;}
  /* sticky header keeps the same compact row on mobile */
  .mainHeader.is-stuck .mainHeader-inner{padding-top:.4rem !important;padding-bottom:.4rem !important;}
}

/* ============================================================
    sidenav underline #cfcfcf + bigger gap,
   dropdown label on the image (not the blue frame),
   mobile logo on a blue box overlapping the header
   ============================================================ */
/* Sidenav title underline: light grey, double the gap to the title */
.rh-subnav:not(.rh-contactform) .rh-subnav__title:after{background:#cfcfcf !important;margin-top:1.8rem !important;}

/* Mega dropdown: label sits over the image, clear of the 40px blue frame */
@media(min-width:901px){
  .rh-mega__img-label{bottom:58px !important;left:58px !important;}
}

/* Mobile: logo on a blue box that overlaps down into the header/banner */
@media(max-width:900px){
  .site-logo{background:#003e6a !important;padding:9px !important;border-radius:4px !important;
    position:relative !important;z-index:60 !important;width:auto !important;min-width:0 !important;height:auto !important;
    margin:0 auto -22px !important;box-shadow:0 8px 18px rgba(0,0,0,.22) !important;}
  .site-logo .custom-logo{max-height:66px !important;height:auto !important;width:auto !important;display:block !important;}
}

/* ============================================================
    restore sidenav watermark graphic (removed
   in round 37) to match the live site (.subnav::after watermark
   filling the box at 5% opacity); footer graphic back to whole/
   small (was blown up to 80% width)
   ============================================================ */
/* Sidenav watermark: full-box graphic at 5% opacity, like the live site */
.rh-subnav:not(.rh-contactform){position:relative !important;overflow:hidden !important;}
.rh-subnav:not(.rh-contactform):after{
  display:block !important;content:"" !important;
  position:absolute !important;inset:0 !important;
  right:auto !important;bottom:auto !important;width:auto !important;height:auto !important;
  background:url('https://russellhouseschoolcouk.kinsta.cloud/wp-content/uploads/2026/07/watermark-scaled.png') center/100% 100% no-repeat !important;
  opacity:.05 !important;pointer-events:none !important;z-index:0 !important;}
/* keep the title + links above the watermark */
.rh-subnav:not(.rh-contactform) .rh-subnav__title,
.rh-subnav:not(.rh-contactform) ul{position:relative !important;z-index:1 !important;}

/* Footer graphic: show the whole thing, small (contain), not blown up */
.site-footer{background-size:contain !important;background-position:center bottom !important;background-repeat:no-repeat !important;}

/* ============================================================
    SchoolCMS dynamic-* blocks styled in RH
   branding (built on the /sampler page; selectors are reusable
   wherever the blocks appear). Also forces JS-reveal content
   (AOS / jQuery-cycle) visible so nothing hides under Kinsta's
   "Delay JavaScript Execution".
   ============================================================ */
/* Sampler page (full-width via page.php $is_full): subtle block labels */
.page-id-771 .rh-fullpage > .wp-block-heading{max-width:1160px;margin:2.6rem auto .2rem;padding:0 5%;
  color:#9a9a9a;font-family:var(--font-body,sans-serif) !important;font-size:.72rem !important;font-weight:700 !important;
  text-transform:uppercase !important;letter-spacing:.14em !important;text-align:left !important;}
.page-id-771 .rh-fullpage > h1.wp-block-heading{color:#003e6a !important;font-family:var(--font-display) !important;
  font-size:clamp(1.8rem,3vw,2.4rem) !important;letter-spacing:normal !important;text-transform:none !important;
  text-align:center !important;margin:1.2rem auto .4rem !important;}

/* Section spacing + width containment */
.homeDynamic{padding:44px 0 !important;color:#4a4a4a;}
.homeDynamic .container{max-width:1160px !important;margin:0 auto !important;padding:0 5% !important;box-sizing:border-box !important;}
.homeDynamic a{color:#003e6a;}

/* Always-visible: neutralise JS reveal/hide states */
.homeDynamic .aos-init,.homeDynamic [data-aos]{opacity:1 !important;transform:none !important;}
.homeDynamic .hiddenNow{opacity:1 !important;}

/* Section titles: navy Playfair + red accent underline */
.homeDynamic .section_title h2{font-family:var(--font-display,'Playfair Display',serif) !important;color:#003e6a !important;
  font-size:clamp(1.6rem,2.6vw,2.1rem) !important;font-weight:500 !important;text-align:center !important;
  margin:0 0 1.4rem !important;padding-bottom:.7rem !important;}
.homeDynamic .section_title h2:after{content:"";display:block;width:64px;height:3px;background:#e0301e;margin:.8rem auto 0;}

/* Images */
.dynamic-text-image img,.dynamic-image img,.dynamic-gallery img{border-radius:8px !important;}
.dynamic-image .container{text-align:center;}

/* Gallery grid */
.dynamic-gallery .gallery{display:grid !important;gap:14px !important;}
.dynamic-gallery .gallery-columns-2{grid-template-columns:repeat(2,1fr) !important;}
.dynamic-gallery .gallery-columns-3{grid-template-columns:repeat(3,1fr) !important;}
.dynamic-gallery .gallery-columns-4{grid-template-columns:repeat(4,1fr) !important;}
.dynamic-gallery .gallery figure{margin:0 !important;width:auto !important;}
.dynamic-gallery .gallery img{width:100% !important;height:220px !important;object-fit:cover !important;}
.dynamic-gallery br{display:none !important;}

/* FAQ accordion */
.dynamic-faq .accordionItem{border:1px solid #e6e6e6 !important;border-radius:6px !important;margin-bottom:10px !important;background:#fff !important;overflow:hidden;}
.dynamic-faq .accordionTitle,.dynamic-faq .accordionItem > a{background:#f4f6f8 !important;color:#003e6a !important;font-weight:600 !important;padding:14px 18px !important;display:block;}

/* Quote: light branded panel (navy text is the theme default → always legible) */
.dynamic-quote{background:#f5f7f9 !important;}
.dynamic-quote .quotesTitle{color:#003e6a !important;text-align:center;font-family:var(--font-display) !important;font-weight:500;padding-bottom:.7rem;position:relative;}
.dynamic-quote .quotesTitle:after{content:"";display:block;width:64px;height:3px;background:#e0301e;margin:.8rem auto 0;}
.dynamic-quote .cycle-slideshow{height:auto !important;}
.dynamic-quote .quote-text{max-width:820px;margin:0 auto !important;font-family:var(--font-display) !important;font-style:italic;text-align:center;}
.dynamic-quote .quote-text,.dynamic-quote .quote-text p{color:#003e6a !important;font-size:1.35rem !important;}
.dynamic-quote .quote-cite,.dynamic-quote cite{color:#e0301e !important;font-style:normal;font-weight:600;}

/* Staff card */
.dynamic-staff .staffMember{background:#fff !important;border:1px solid #eee !important;border-radius:10px !important;padding:20px !important;box-shadow:0 10px 26px rgba(0,0,0,.07) !important;max-width:640px;margin:0 auto;}
.dynamic-staff .standard-staff-image img{border-radius:8px !important;}
.dynamic-staff .standard-staff-text h2,.dynamic-staff .standard-staff-text h3{color:#003e6a !important;margin-top:0;}

/* Documents */
.dynamic-documents .document{margin-bottom:12px !important;}
.dynamic-documents a.document-link{display:inline-flex;align-items:center;gap:.5rem;background:#003e6a !important;color:#fff !important;border-radius:4px !important;padding:12px 18px !important;font-weight:600;}
.dynamic-documents a.document-link:hover{background:#e0301e !important;}

/* Callout + POI banners */
.dynamic-callout .callout{overflow:hidden !important;position:relative;}
.dynamic-callout .calloutContent,.dynamic-callout .calloutContent h2,.dynamic-callout .calloutContent h3,.dynamic-callout .calloutContent p{color:#fff !important;}
.dynamic-poi .poi{overflow:hidden !important;}

/* Owl carousels branded */
.homeDynamic .owl-nav button,.homeDynamic .owl-nav button:hover{background:#003e6a !important;color:#fff !important;border-radius:50% !important;width:40px;height:40px;}
.homeDynamic .owl-dots .owl-dot.active span{background:#003e6a !important;}

/* Divider */
.dynamic-divider hr,.dynamic-divider .divider-line{border:0;border-top:2px solid #e6e6e6 !important;max-width:1160px;margin:0 auto !important;}

/* ============================================================
    align dynamic blocks with existing RH
   components: square images; carousel buttons = .rh-imgtext__btn;
   FAQ = Who's Who .rh-acc; quote = pre-prep .rh-bigquote on white;
   document link = RH PDF pill; curriculum = 3 tiles per row.
   ============================================================ */
/* Images: no rounded corners anywhere in these blocks */
.homeDynamic img{border-radius:0 !important;}

/* Carousel nav buttons: match .rh-imgtext__btn (outline circle, red icon, navy hover) */
.homeDynamic .owl-nav button,
.homeDynamic .owl-nav button.owl-prev,
.homeDynamic .owl-nav button.owl-next{background:none !important;color:#E71D13 !important;
  border:1px solid #e6e6e6 !important;width:50px !important;height:50px !important;border-radius:50% !important;
  font-size:1.25em !important;transition:color .3s !important;box-shadow:none !important;}
.homeDynamic .owl-nav button:hover{color:#003e6a !important;background:none !important;}
.homeDynamic .owl-nav button span{color:inherit !important;background:none !important;}

/* FAQ: match Who's Who .rh-acc (line separators, no cards, gold + / – marker) */
.dynamic-faq .faqs{border-top:1px solid var(--line,#e0e0e0) !important;max-width:900px;margin:1.5rem auto 0 !important;}
.dynamic-faq .faq.accordionItem{border:0 !important;border-bottom:1px solid var(--line,#e0e0e0) !important;
  border-radius:0 !important;background:none !important;margin:0 !important;overflow:visible !important;}
.dynamic-faq .faq-question.accordionTab{background:none !important;color:#003e6a !important;
  font-family:var(--font-display) !important;font-size:1.2rem !important;font-weight:400 !important;
  padding:1.1rem 0 !important;margin:0 !important;cursor:pointer;display:flex !important;
  justify-content:space-between;align-items:center;}
.dynamic-faq .faq-question.accordionTab:after{content:"+";color:var(--gold) !important;font-size:1.5rem;margin-left:1rem;line-height:1;}
.dynamic-faq .faq.accordionItem.active .faq-question.accordionTab:after,
.dynamic-faq .faq-question.accordionTab.active:after,
.dynamic-faq .faq-question.accordionTab[aria-expanded="true"]:after{content:"\2013";}
.dynamic-faq .faq-answer.accordionContent{padding:0 0 1.2rem !important;}

/* Quote: match pre-prep .rh-bigquote, on a white background */
.dynamic-quote{background:#fff !important;}
.dynamic-quote .cycle-slideshow{height:auto !important;}
.dynamic-quote .quote-text{position:relative;max-width:910px;width:90%;margin:0 auto !important;
  font-family:var(--font-display) !important;font-style:italic !important;color:#003e6a !important;
  font-size:clamp(1.5rem,3vw,2.2rem) !important;line-height:1.4 !important;text-align:center;}
.dynamic-quote .quote-text p{color:#003e6a !important;font-size:inherit !important;font-family:inherit !important;font-style:inherit !important;margin:0 0 .6rem !important;}
.dynamic-quote .quote-text:before{content:"\201C";position:absolute;left:-.35em;top:-.35em;font-size:1.7em;line-height:1;color:#d9d9d9;font-family:Georgia,serif;}
.dynamic-quote .quote-text:after{content:"\201D";position:absolute;right:-.35em;bottom:-.55em;font-size:1.7em;line-height:1;color:#d9d9d9;font-family:Georgia,serif;}
.dynamic-quote .quote-cite,.dynamic-quote cite{display:block;margin-top:1rem;color:#E71D13 !important;
  font-family:var(--font-body) !important;font-size:.42em !important;font-style:normal !important;
  font-weight:600;text-transform:uppercase;letter-spacing:1px;}

/* Document link: match RH PDF pill bar */
.dynamic-documents a.document-link{position:relative;display:flex !important;align-items:center;
  width:100%;max-width:680px;min-height:62px;margin:0 auto !important;
  background:#fff !important;border:1px solid #e4e4e4 !important;border-radius:40px !important;
  padding:0 92px 0 30px !important;box-shadow:0 2px 12px rgba(0,0,0,.06) !important;
  color:var(--red,#E71D13) !important;font-weight:700 !important;text-transform:uppercase !important;
  letter-spacing:.03em;text-decoration:none !important;line-height:1.25;gap:0 !important;}
.dynamic-documents a.document-link:hover{border-color:#d0d0d0 !important;box-shadow:0 4px 16px rgba(0,0,0,.10) !important;background:#fff !important;color:var(--red,#E71D13) !important;}
.dynamic-documents a.document-link:after{content:"\f019";font-family:"Font Awesome 6 Free";font-weight:900;
  position:absolute;right:7px;top:50%;transform:translateY(-50%);width:48px;height:48px;line-height:48px;
  text-align:center;border-radius:50%;background:var(--red,#E71D13);color:#fff;font-size:1rem;}

/* Curriculum: 3 subject tiles per row */
.dynamic-curriculum .subject-tiles .row{display:flex !important;flex-wrap:wrap !important;margin:0 -8px !important;}
.dynamic-curriculum .subject-tiles .col-lg-4{flex:0 0 33.3333% !important;max-width:33.3333% !important;padding:8px !important;box-sizing:border-box !important;order:0 !important;}
.dynamic-curriculum .subject-tiles .col-12{flex:0 0 100% !important;max-width:100% !important;padding:8px !important;box-sizing:border-box !important;}
.dynamic-curriculum .subject-tiles .order-lg-4{order:4 !important;}
@media(max-width:700px){.dynamic-curriculum .subject-tiles .col-lg-4{flex:0 0 100% !important;max-width:100% !important;}}

/* ============================================================
    sampler refinements
   ============================================================ */
/* (1) Block labels: bigger, navy, uppercase, left-aligned in the content column.
   Scoped to the page (not .rh-fullpage) because some blocks' HTML makes later
   headings escape the wrapper into .site-content — this catches both. */
.page-id-771 .rh-fullpage .wp-block-heading,
.page-id-771 .site-content > .wp-block-heading{max-width:1160px;margin:2.6rem auto .4rem !important;padding:0 5%;
  color:#003e6a !important;font-family:var(--font-body,sans-serif) !important;font-size:1rem !important;
  font-weight:700 !important;text-transform:uppercase !important;letter-spacing:.12em !important;text-align:left !important;
  box-sizing:border-box;display:block;}
.page-id-771 h1.wp-block-heading{font-family:var(--font-display) !important;font-size:clamp(1.8rem,3vw,2.4rem) !important;
  letter-spacing:normal !important;text-transform:none !important;text-align:center !important;margin:1.2rem auto .4rem !important;}

/* (2/5/8/12) Left-align section titles + underline (every block except the quote) */
.homeDynamic:not(.dynamic-quote) .section_title h2{text-align:left !important;}
.homeDynamic:not(.dynamic-quote) .section_title h2:after{margin:.8rem 0 0 0 !important;}

/* (3) Carousel + link-carousel arrows & pager — SchoolCMS style */
.homeDynamic .owl-carousel{position:relative;}
.homeDynamic .owl-nav{position:static !important;margin:0 !important;}
.homeDynamic .owl-nav button,
.homeDynamic .owl-nav button.owl-prev,
.homeDynamic .owl-nav button.owl-next{position:absolute !important;top:50% !important;transform:translateY(-50%) !important;
  background:none !important;border:0 !important;width:auto !important;height:auto !important;border-radius:0 !important;
  box-shadow:none !important;padding:0 !important;margin:0 !important;color:#003e6a !important;z-index:6;}
.homeDynamic .owl-nav button.owl-prev{left:6px !important;right:auto !important;}
.homeDynamic .owl-nav button.owl-next{right:6px !important;left:auto !important;}
.homeDynamic .owl-nav button span{font-size:46px !important;line-height:1 !important;color:#003e6a !important;background:none !important;
  text-shadow:0 0 10px rgba(255,255,255,.9);}
.homeDynamic .owl-nav button:hover span{color:#E71D13 !important;}
.homeDynamic .owl-dots{text-align:center !important;margin-top:18px !important;position:static !important;}
.homeDynamic .owl-dots .owl-dot span{display:inline-block !important;width:10px !important;height:10px !important;border-radius:50% !important;
  background:#003e6a !important;opacity:.35;margin:0 5px !important;border:0 !important;transition:opacity .2s;}
.homeDynamic .owl-dots .owl-dot.active span,.homeDynamic .owl-dots .owl-dot:hover span{opacity:1 !important;}

/* (5) FAQ: full width, left-aligned, self-managed accordion (no flicker) */
.dynamic-faq .faqs{max-width:none !important;margin:1.5rem 0 0 !important;}
.dynamic-faq .faq-question.accordionTab{text-align:left !important;}
.dynamic-faq .faq-answer{display:none !important;}
.dynamic-faq .faq.rh-open .faq-answer{display:block !important;}
.dynamic-faq .faq.rh-open .faq-question.accordionTab:after{content:"\2013" !important;}

/* (6) Quote marks 3x larger */
.dynamic-quote .quote-text:before,.dynamic-quote .quote-text:after{font-size:5em !important;}
.dynamic-quote .quote-text:before{top:-.15em !important;left:-.4em !important;}
.dynamic-quote .quote-text:after{bottom:-.45em !important;right:-.4em !important;}

/* (7) Staff — Who's Who style, left-aligned card */
.dynamic-staff .staff{max-width:none !important;}
.dynamic-staff .staffMember{background:none !important;border:0 !important;box-shadow:none !important;padding:0 !important;max-width:560px;margin:0 !important;}
.dynamic-staff .staffMember .row{display:flex !important;align-items:center;gap:26px;margin:0 !important;}
.dynamic-staff .standard-staff-image{flex:0 0 150px !important;max-width:150px !important;padding:0 !important;}
.dynamic-staff .standard-staff-image img{width:150px !important;height:150px !important;border-radius:50% !important;object-fit:cover !important;}
.dynamic-staff .standard-staff-text{text-align:left !important;padding:0 !important;}
.dynamic-staff .staff-name{color:#003e6a !important;font-family:var(--font-display) !important;margin:0 0 .2rem !important;}
.dynamic-staff .staff-position{color:var(--slate,#5a5a5a) !important;font-weight:600;margin:0 0 .4rem;}

/* (8) Documents — left aligned */
.dynamic-documents .documents,.dynamic-documents .documents .row{justify-content:flex-start !important;margin:0 !important;}
.dynamic-documents a.document-link{margin:0 0 12px 0 !important;}

/* (9) POI — 3 per row grid, home-grid hover, 20px gap */
.dynamic-poi .pois{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:20px !important;
  max-width:1160px !important;margin:0 auto !important;padding:0 5% !important;box-sizing:border-box !important;}
.dynamic-poi .pois > .col{flex:none !important;max-width:none !important;width:auto !important;padding:0 !important;margin:0 !important;}
.dynamic-poi .poi{position:relative;display:block;overflow:hidden;height:340px;}
.dynamic-poi .poiImage{position:absolute;inset:0;}
.dynamic-poi .poiImageBG{position:absolute;inset:0;overflow:hidden;}
.dynamic-poi .poiImageBG img{width:100% !important;height:100% !important;object-fit:cover !important;transition:transform .6s ease;}
.dynamic-poi .poi:hover .poiImageBG img{transform:scale(1.08);}
.dynamic-poi .poiImage:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(0,30,54,.85),rgba(0,30,54,.05));}
.dynamic-poi .poiText{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.4rem 1.6rem;}
.dynamic-poi .poiTitle{color:#fff !important;font-size:1.5rem;font-family:var(--font-display);margin:0;transition:transform .4s ease;}
.dynamic-poi .poi:hover .poiTitle{transform:translateY(-6px);}

/* (10) Callout — taller + pre-prep white-outline button */
.dynamic-callout .callout{min-height:440px !important;}
.dynamic-callout .callout .calloutContent{display:flex;flex-direction:column;justify-content:center;}
.dynamic-callout .calloutContent a,.dynamic-callout .calloutContent a.button{background:none !important;border:1px solid #fff !important;
  border-radius:25px !important;color:#fff !important;text-transform:uppercase !important;padding:14px 28px !important;font-weight:400 !important;
  display:inline-block;text-decoration:none;transition:all .2s;}
.dynamic-callout .calloutContent a:hover{background:#fff !important;color:#003e6a !important;}

/* (11) Divider — red keys emblem centred on a line */
.dynamic-divider .divider-line{display:flex !important;align-items:center;justify-content:center;position:relative;
  max-width:1160px;margin:6px auto !important;height:84px;border:0 !important;background:none !important;}
.dynamic-divider .divider-line:before{content:"";position:absolute;top:50%;left:5%;right:5%;border-top:1px solid #e0e0e0;z-index:0;}
.dynamic-divider .divider-line:after{content:"";position:relative;z-index:1;width:140px;height:72px;
  background:#fff url('https://russellhouseschoolcouk.kinsta.cloud/wp-content/uploads/2026/07/rh-keys.png') center/auto 64px no-repeat;}

/* (12) Curriculum — hover zoom on the subject tiles */
.dynamic-curriculum .subject-tile{overflow:hidden;}
.dynamic-curriculum .subject-tile .tile-bg{transition:transform .6s ease;}
.dynamic-curriculum .subject-tile:hover .tile-bg{transform:scale(1.08);}

/* ============================================================
    sampler follow-ups
   ============================================================ */
/* Align dynamic-block content with the page-banner text. The .rh-fullpage
   wrapper already provides the 1280/40px gutter (content box = 1200 wide,
   left-edge 353), so the inner content just needs to be a 1200 box centred —
   which also re-aligns blocks that escape into full-width .site-content. */
.homeDynamic .container{max-width:1200px !important;margin:0 auto !important;padding:0 !important;}
.page-id-771 .rh-fullpage .wp-block-heading,
.page-id-771 .site-content > .wp-block-heading{max-width:1200px !important;margin:2.6rem auto .4rem !important;padding:0 !important;}
.dynamic-poi .pois{max-width:1200px !important;margin:0 auto !important;padding:0 !important;}
.dynamic-divider .divider-line{max-width:1200px !important;}
.dynamic-divider .divider-line:before{left:0 !important;right:0 !important;}

/* Image-Text block: 2-column image + text (like pre-prep), not stacked */
.dynamic-text-image .row{display:flex !important;flex-wrap:wrap !important;align-items:center !important;margin:0 !important;}
.dynamic-text-image .col-lg-6{flex:0 0 50% !important;max-width:50% !important;padding:0 !important;}
.dynamic-text-image .col-lg-6 img{width:100% !important;height:auto;display:block;}
.dynamic-text-image .col-lg-6.body-text{padding:clamp(24px,3vw,52px) !important;}
.dynamic-text-image .body-text h2,.dynamic-text-image .body-text h3{color:#003e6a !important;font-family:var(--font-display) !important;margin-top:0;}
.dynamic-text-image .body-text .sub,.dynamic-text-image .body-text em:first-child{color:var(--gold) !important;text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;font-weight:700;font-style:normal;display:block;margin-bottom:.4rem;}
@media(max-width:800px){.dynamic-text-image .col-lg-6{flex:0 0 100% !important;max-width:100% !important;}}

/* Link carousel: logos capped at 80px tall; show + style nav/pager like carousel */
.dynamic-link-carousel .owl-carousel img{max-height:80px !important;width:auto !important;height:auto !important;object-fit:contain !important;margin:0 auto;}
.dynamic-link-carousel .owl-item{display:flex;align-items:center;justify-content:center;}
.dynamic-link-carousel .owl-nav.disabled{display:block !important;}
.dynamic-link-carousel .owl-dots.disabled{display:block !important;}

/* POI: square corners + What's-Special hover (blue overlay, white title + button) */
.dynamic-poi .poi{border-radius:0 !important;}
.dynamic-poi .poiImageBG img{border-radius:0 !important;}
.dynamic-poi .poiImage:after{content:"";position:absolute;inset:0;z-index:2;background:rgba(0,62,106,.94);opacity:0;transition:opacity .3s ease;}
.dynamic-poi .poi:hover .poiImage:after{opacity:1;}
.dynamic-poi .poiText{transition:all .3s ease;}
.dynamic-poi .poi:hover .poiText{top:50% !important;bottom:auto !important;transform:translateY(-50%);text-align:center;}
.dynamic-poi .poiText:after{content:"Find out more";display:inline-block;margin-top:1.1rem;border:2px solid #fff;border-radius:25px;
  padding:.55rem 1.4rem;color:#fff;text-transform:uppercase;font-size:.74rem;letter-spacing:.06em;font-weight:700;
  font-family:var(--font-body);opacity:0;transition:opacity .3s ease;}
.dynamic-poi .poi:hover .poiText:after{opacity:1;}

/* Callout: space the button from the text; red bg for the no-image callout */
.dynamic-callout .calloutTitle{margin-bottom:1.4rem !important;}
.dynamic-callout .calloutContent a,.dynamic-callout .calloutContent a.button{margin-top:.6rem !important;}
.dynamic-callout .callout:not(.hasbg){background:var(--red,#E71D13) !important;min-height:0 !important;padding:clamp(48px,6vw,80px) 0 !important;}
.dynamic-callout .callout:not(.hasbg) .calloutTitle,
.dynamic-callout .callout:not(.hasbg) .calloutContent,
.dynamic-callout .callout:not(.hasbg) .calloutContent *{color:#fff !important;}

/* ============================================================
    image-text heading, carousel arrows,
   POI hover fix, red-callout button, + full mobile overhaul
   ============================================================ */
/* Image-Text: eyebrow + title (injected by render_block) */
.dynamic-text-image .rh-ti-eyebrow{display:block;color:var(--gold);text-transform:uppercase;letter-spacing:.14em;
  font-size:.8rem;font-weight:700;margin-bottom:.5rem;}
.dynamic-text-image .rh-ti-title{color:#003e6a;font-family:var(--font-display);font-size:clamp(1.5rem,2.5vw,2rem);margin:0 0 1rem;}

/* Carousel + link-carousel arrows: sit OUTSIDE the photos (in the gutter) */
.homeDynamic .owl-carousel{overflow:visible !important;}
.homeDynamic .owl-nav button.owl-prev{left:-46px !important;}
.homeDynamic .owl-nav button.owl-next{right:-46px !important;}
.homeDynamic .owl-nav button span{text-shadow:none !important;}

/* POI: keep the title low; make sure text/overlay stack correctly on hover */
.dynamic-poi .poiText{bottom:0 !important;top:auto !important;z-index:3 !important;}
.dynamic-poi .poiImage:after{z-index:2 !important;}
.dynamic-poi .poiTitle,.dynamic-poi .poiText:after{position:relative;z-index:3;}

/* Red (no-image) callout: button hover text should be navy, not white */
.dynamic-callout .callout:not(.hasbg) a:hover{color:#003e6a !important;}

/* =====================  MOBILE  (<=900px)  ===================== */
@media(max-width:900px){
  /* No sticky header at all */
  .mainHeader.is-stuck{position:static !important;box-shadow:none !important;top:auto !important;}
  .rh-stick-spacer{display:none !important;height:0 !important;}

  /* Logo: square corners, no gap above */
  .site-logo{border-radius:0 !important;margin:0 auto !important;}

  /* Search icon = navy circle (matches header icons) */
  .mobileSearch{background:var(--brand) !important;color:#fff !important;border:0 !important;border-radius:50% !important;
    width:44px;height:44px;box-shadow:none !important;}

  /* (drawer positioning consolidated into earlier rules block below) */
  .mobileNav .wrap{padding:1.2rem 1.2rem 2rem;}
  body.nav-open{overflow:hidden;}

  /* Search field: 1px grey border, no gold outline */
  .mobileNav__search input{border:1px solid #ccc !important;outline:none !important;box-shadow:none !important;}
  .mobileNav__search input:focus{outline:none !important;border-color:#bbb !important;box-shadow:none !important;}
  .mobileNav__search button{background:var(--brand);color:#fff;border:0;}

  /* Menu: top-level items + down-arrow toggle; sub-items accordion */
  .mobile-nav-menu{list-style:none;margin:1.2rem 0 0;padding:0;}
  .mobile-nav-menu li{position:relative;list-style:none;border-bottom:1px solid #eee;margin:0;}
  .mobile-nav-menu a{display:block;padding:14px 50px 14px 2px;color:#003e6a;text-decoration:none;font-weight:600;}
  .mobile-nav-menu .current-menu-item>a,
  .mobile-nav-menu .current-menu-ancestor>a,
  .mobile-nav-menu .current_page_item>a,
  .mobile-nav-menu .current_page_ancestor>a{color:var(--red) !important;}
  .rh-msub{position:absolute;top:0;right:0;width:50px;height:50px;background:none;border:0;color:#003e6a;
    font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
  .rh-msub i{transition:transform .25s ease;}
  .rh-msub.is-open i{transform:rotate(180deg);}
  .mobile-nav-menu .sub-menu{display:none;list-style:none;margin:0;padding:0 0 .4rem .9rem;}
  .mobile-nav-menu li.rh-open>.sub-menu{display:block;}
  .mobile-nav-menu .sub-menu a{font-weight:400;padding:11px 2px;}
  .mobile-nav-menu .sub-menu li{border-bottom:1px solid #f2f2f2;}

  /* Burger -> cross when open */
  .mobileToggle span{transition:transform .3s ease,opacity .2s ease;}
  .mobileToggle.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .mobileToggle.is-active span:nth-child(2){opacity:0;}
  .mobileToggle.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  /* Gallery + POIs: one per line (POIs also switch to a swipe carousel) */
  .dynamic-gallery .gallery{grid-template-columns:1fr !important;}
  .dynamic-poi .pois{display:block !important;}
  .dynamic-poi .pois > .col{width:100% !important;max-width:100% !important;margin:0 0 20px !important;}
}

/* POI grid only applies on desktop (so the mobile carousel-switch can work) */
@media(min-width:901px){
  .dynamic-poi .pois{display:grid !important;grid-template-columns:repeat(3,1fr) !important;}
}

/* ============================================================
    link-carousel arrow size, featured staff
   (matches standard + red Read more accordion), POI hover fix
   ============================================================ */
/* Link-carousel arrows the same size as the carousel block arrows */
.homeDynamic .owl-nav button,.homeDynamic .owl-nav button.owl-prev,.homeDynamic .owl-nav button.owl-next{
  font-size:46px !important;line-height:1 !important;}

/* POI hover: hide the base gradient so the blue overlay is uniform (no bands) */
.dynamic-poi .poiImage:before{transition:opacity .3s ease;}
.dynamic-poi .poi:hover .poiImage:before{opacity:0 !important;}

/* Featured staff: same card look as standard, left-aligned */
.dynamic-staff .featured-staff{background:none !important;border:0 !important;box-shadow:none !important;
  padding:0 !important;max-width:560px;margin:0 0 30px !important;}
.dynamic-staff .featured-staff .row{display:flex !important;align-items:flex-start;gap:26px;margin:0 !important;}
.dynamic-staff .featured-staff .staff-photo{flex:0 0 150px !important;max-width:150px !important;padding:0 !important;}
.dynamic-staff .featured-staff .staff-photo img,
.dynamic-staff .featured-staff .postThumb img{width:150px !important;height:150px !important;border-radius:50% !important;object-fit:cover !important;}
.dynamic-staff .featured-staff .staff-info{text-align:left !important;padding:0 !important;}
.dynamic-staff .featured-staff .staff-name{color:#003e6a !important;font-family:var(--font-display) !important;margin:0 0 .2rem !important;}
.dynamic-staff .featured-staff .staff-position{color:var(--slate,#5a5a5a) !important;font-weight:600;margin:0 0 .4rem;}

/* Read more accordion (red button, bio hidden until opened) */
.dynamic-staff .featured-staff .body-text{display:none !important;margin-top:12px;}
.dynamic-staff .featured-staff .body-text.is-open{display:block !important;}
.dynamic-staff .rh-bio-toggle{display:inline-block;margin-top:14px;background:var(--red,#E71D13);color:#fff;border:0;
  border-radius:25px;padding:9px 22px;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  cursor:pointer;transition:background .2s;}
.dynamic-staff .rh-bio-toggle:hover{background:#003e6a;}

/* ============================================================
    staff standard tidy, POI hover strip,
   mobile menu/search rework, mobile gaps, curriculum, grid
   ============================================================ */
/* Standard staff: never show a bio or Read more button */
.dynamic-staff .standard-staff-member .body-text,
.dynamic-staff .standard-staff-member .rh-bio-toggle{display:none !important;}

/* POI hover: kill the parent theme's dark gradient on the text on hover */
.dynamic-poi .poiText{transition:background .3s ease;}
.dynamic-poi .poi:hover .poiText{background:none !important;}

/* =====================  MOBILE (<=900px)  ===================== */
@media(max-width:900px){
  /* Consistent 20px side gap on every block (incl. escaped blocks) */
  .rh-fullpage{padding-left:0 !important;padding-right:0 !important;}
  .homeDynamic .container{padding:0 20px !important;}
  .dynamic-poi .pois{padding:0 20px !important;}
  .page-id-771 .rh-fullpage .wp-block-heading,
  .page-id-771 .site-content > .wp-block-heading{padding:0 20px !important;}

  /* Search icon = navy circle (both idle + active) */
  .mobileSearch,.mobileSearch.is-active{background:var(--brand) !important;color:#fff !important;border:0 !important;
    border-radius:50% !important;width:44px;height:44px;box-shadow:none !important;}

  /* Mobile search bar: slides down over the header (separate from the menu) */
  .mainHeader{position:relative;}
  .mobileSearchBar{position:absolute;left:0;right:0;top:0;bottom:0;z-index:70;background:#fff;display:flex;align-items:center;
    padding:0 5%;transform:translateX(100%);transition:transform .3s ease;box-shadow:0 6px 16px rgba(0,0,0,.12);}
  .mobileSearchBar.is-open{transform:translateX(0);}
  .mobileSearchBar form{display:flex;width:100%;gap:.5rem;margin:0;}
  .mobileSearchBar input{flex:1;border:1px solid #ccc;padding:.6rem .85rem;font-size:1rem;outline:none;box-shadow:none;}
  .mobileSearchBar input:focus{outline:none;border-color:#bbb;box-shadow:none;}
  .mobileSearchBar button{background:var(--brand);color:#fff;border:0;padding:0 1.1rem;cursor:pointer;border-radius:2px;}

  /* (drawer positioning consolidated into earlier rules block below) */
  .mobileNav .wrap{padding:1rem 1.1rem 2rem;}

  /* No sticky header on mobile */
  .mainHeader,.mainHeader.is-stuck{position:static !important;box-shadow:none !important;}
  .rh-stick-spacer{display:none !important;height:0 !important;}

  /* Curriculum: expand panel appears directly under its tile (not at the end) */
  .dynamic-curriculum .subject-tiles .order-lg-4{order:0 !important;}
  .dynamic-curriculum .subject-tiles .col-lg-4{flex:0 0 100% !important;max-width:100% !important;}

  /* Home "What's Special" grid -> one-at-a-time swipe carousel, text box first */
  .rh-grid{display:flex !important;grid-template-columns:none !important;overflow-x:auto;scroll-snap-type:x mandatory;
    gap:0 !important;-webkit-overflow-scrolling:touch;}
  .rh-grid > .rh-grid__item{flex:0 0 100% !important;min-width:100% !important;scroll-snap-align:start;}
  .rh-grid .rh-grid__item--text{order:-1 !important;}
}

/* earlier rules — mobile search bar must be hidden on desktop */
.mobileSearchBar{display:none;}
@media(max-width:900px){.mobileSearchBar{display:flex;}}

/* ============================================================
    staff button (featured only) + mobile
   header/menu/search fixes
   ============================================================ */
/* Only FEATURED staff ever show a bio / Read more button */
.dynamic-staff .rh-bio-toggle{display:none !important;}
.dynamic-staff .featured-staff .rh-bio-toggle{display:inline-block !important;}
.dynamic-staff .staffMember .body-text{display:none !important;}

@media(max-width:900px){
  /* Header must stay RELATIVE (needed for the search bar) and never sticky */
  .mainHeader{position:relative !important;}
  .mainHeader.is-stuck{position:relative !important;top:auto !important;box-shadow:none !important;}
  .rh-stick-spacer{display:none !important;height:0 !important;}

  /* Header: no top padding (logo touches the top), shorter, logo overlaps bottom */
  .mainHeader-inner{padding-top:0 !important;padding-bottom:0 !important;min-height:60px !important;align-items:flex-start !important;}
  .mobileToggle,.mobileSearch{align-self:center !important;}
  .site-logo{margin-top:0 !important;margin-bottom:-22px !important;border-radius:0 !important;align-self:flex-start !important;}

  /* (drawer + search positioning consolidated into earlier rules block below) */
}

/* ============================================================
    CLEAN REBUILD of the mobile nav + search +
   hero video. This is now the SINGLE source of truth; all the
   earlier competing .mobileNav / .mobileSearchBar / video rules
   above have been removed.
   ============================================================ */
@media(max-width:900px){
  html,body{overflow-x:hidden !important;}

  /* ---- Slide-out menu drawer (from the left, under the header) ---- */
  .mobileNav{
    position:fixed !important;
    top:110px;                       /* fallback; the burger JS sets exact header bottom */
    left:0 !important; right:auto !important; bottom:0 !important;
    width:84% !important; max-width:330px !important; height:auto !important;
    background:#fff !important; margin:0 !important; border-top:0 !important;
    z-index:99999 !important; display:block !important;
    overflow-y:auto !important; -webkit-overflow-scrolling:touch;
    box-shadow:2px 0 22px rgba(0,0,0,.22) !important;
    transform:translateX(-100%) !important;
    transition:transform .3s ease !important;
  }
  .mobileNav.is-open{ transform:translateX(0) !important; }
  body.nav-open:before{ display:none !important; }   /* never any blocking overlay */

  /* Burger morphs into a cross when open */
  .mobileToggle span{transition:transform .3s ease,opacity .2s ease;}
  .mobileToggle.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg) !important;}
  .mobileToggle.is-active span:nth-child(2){opacity:0 !important;}
  .mobileToggle.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg) !important;}

  /* ---- Search bar: slides down over the header (separate from menu) ---- */
  .mobileSearchBar{ transform:translateY(-130%) !important; transition:transform .3s ease !important; }
  .mobileSearchBar.is-open{ transform:translateY(0) !important; }
}

/* ---- Hero video: pure-CSS 16:9 cover, sized so it always fills the
   hero box up to full viewport height (no JS, immune to Kinsta JS delay) ---- */
.rh-hero__ytbg{overflow:hidden;}
.rh-hero__ytbg iframe{
  --rh-h: max(100vh, calc(100vw * 9 / 16));   /* tall enough to cover any hero up to 100vh */
  position:absolute !important; top:50% !important; left:50% !important;
  transform:translate(-50%,-50%) !important;
  height: var(--rh-h) !important;
  width: calc(var(--rh-h) * 16 / 9) !important;
  min-width:0 !important; min-height:0 !important; max-width:none !important; border:0 !important;
}

/* Mobile: phone browsers block YouTube background autoplay, so the video shows
   as a black letterboxed frame. The live site shows images on mobile instead —
   so hide the video here. (Interim solid brand background — the YouTube poster
   itself is letterboxed, so we use a clean colour until the rotating image hero
   is built.) No black bars. */
@media(max-width:900px){
  .rh-hero__ytbg iframe{display:none !important;}
  .rh-hero__ytbg{
    background-color:#0a2b4a !important;
    background-image:url('https://russellhouseschoolcouk.kinsta.cloud/wp-content/uploads/2026/07/2DE2DB1F0A3610FAB849892843136748.jpeg') !important;
    background-position:center !important; background-size:cover !important; background-repeat:no-repeat !important;
  }
}

/* ============================================================
    mobile drawer 108px, hero text 1.875em
   ============================================================ */
@media(max-width:900px){
  .mobileNav{ top:62px !important; }
  body.admin-bar .mobileNav{ top:94px !important; }
  .rh-hero__center h1{ font-size:1.275em !important; }
  /* Push the hero text + video button towards the bottom of the banner */
  .rh-hero{ align-items:flex-end !important; }
  .rh-hero__center{ padding-bottom:2.2rem !important; }
}
@media screen and (max-width:782px){
  body.admin-bar .mobileNav{ top:108px !important; }
}

/* ============================================================
    Open Mornings (right image + CTA button)
   and Russell Wrens (quotes) content styling
   ============================================================ */
.rh-om-img{float:right;max-width:44%;margin:.2rem 0 1.2rem 1.8rem;border-radius:6px;}
.rh-om-cta{margin:1.4rem 0 0;}
.rh-om-cta a{display:inline-block;background:var(--red,#E71D13);color:#fff !important;text-decoration:none;
  padding:.75rem 1.7rem;border-radius:26px;font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;transition:background .2s;}
.rh-om-cta a:hover{background:#003e6a;}
.rh-quote{border-left:4px solid var(--red,#E71D13);margin:1.7rem 0;padding:.3rem 0 .3rem 1.4rem;color:#003e6a;font-size:1.05rem;}
.rh-quote p{margin:0;}
.rh-quote cite{display:block;margin-top:.5rem;font-style:normal;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:#666;}
@media(max-width:700px){.rh-om-img{float:none;max-width:100%;margin:1rem 0;display:block;}}

/* Photo Galleries page — 3 gallery sections with lightbox thumbs */
.rh-gallery-title{color:#003e6a;font-family:var(--font-display);font-size:1.6rem;margin:2.4rem 0 1rem;}
.rh-gallery-title:first-of-type{margin-top:.5rem;}
.rh-photo-gallery{--rh-gallery-cols:4;gap:12px;margin:0 0 1rem;}
.rh-photo-gallery a{display:block;overflow:hidden;border-radius:4px;}
.rh-photo-gallery img{width:100%;height:160px;object-fit:cover;display:block;transition:transform .4s ease;cursor:pointer;}
.rh-photo-gallery a:hover img{transform:scale(1.06);}
@media(max-width:900px){.rh-photo-gallery{--rh-gallery-cols:3;}}
@media(max-width:600px){.rh-photo-gallery{--rh-gallery-cols:2;} .rh-photo-gallery img{height:120px;}}

/* ============================================================
    link-boxes block (4/row default),
   square gallery corners, equal-size Russell Wrens photos
   ============================================================ */
.rh-newsgrid--2{grid-template-columns:repeat(2,1fr) !important;}
.rh-newsgrid--3{grid-template-columns:repeat(3,1fr) !important;}
.rh-newsgrid--4{grid-template-columns:repeat(4,1fr) !important;}
@media(max-width:1100px){.rh-newsgrid,.rh-newsgrid--4,.rh-newsgrid--3{grid-template-columns:repeat(3,1fr) !important;}}
@media(max-width:800px){.rh-newsgrid,.rh-newsgrid--4,.rh-newsgrid--3,.rh-newsgrid--2{grid-template-columns:repeat(2,1fr) !important;}}
@media(max-width:520px){.rh-newsgrid,.rh-newsgrid--4,.rh-newsgrid--3,.rh-newsgrid--2{grid-template-columns:1fr !important;}}

/* Photo gallery thumbs: square corners (no rounding) */
.rh-photo-gallery a,.rh-photo-gallery img{border-radius:0 !important;}

/* Russell Wrens photos — all equal size (uniform grid) */
.rh-gallery img{width:100%;height:220px;object-fit:cover;display:block;}
@media(max-width:600px){.rh-gallery img{height:170px;}}

/* ============================================================
   Open Mornings enquiry form (WPForms) — blue panel, white
   text, red submit button (matches the live site)
   ============================================================ */
.wpforms-container,
.wpforms-container-full{background:#003e6a !important;color:#fff;padding:2rem 2rem 2.4rem !important;border-radius:6px;margin-top:1.5rem;}
.wpforms-container,
.wpforms-field-label,
.wpforms-field-label-inline,
.wpforms-form label,
.wpforms-form legend,
.wpforms-field-description,
.wpforms-form .wpforms-field-sublabel,
.wpforms-form p{color:#fff !important;}
.wpforms-required-label{color:#ffd7d5 !important;}
.wpforms-field input.wpforms-field-medium,
.wpforms-field input[type=text],
.wpforms-field input[type=email],
.wpforms-field input[type=tel],
.wpforms-field input[type=number],
.wpforms-field input[type=date],
.wpforms-field textarea,
.wpforms-field select{background:#fff !important;color:#003e6a !important;border:1px solid #fff !important;border-radius:3px !important;}
.wpforms-field input::placeholder,
.wpforms-field textarea::placeholder{color:#7590a6 !important;}
.wpforms-field-radio input,
.wpforms-field-checkbox input{accent-color:#E71D13;}
.wpforms-container .wpforms-submit{background:var(--red,#E71D13) !important;color:#fff !important;border:0 !important;
  border-radius:26px !important;padding:.8rem 2.2rem !important;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:background .2s;}
.wpforms-container .wpforms-submit:hover{background:#fff !important;color:var(--red,#E71D13) !important;}
.wpforms-container-full .wpforms-form .wpforms-field-divider h3{color:#fff !important;}
.wpforms-container-full .wpforms-form .wpforms-field-divider{border-top-color:#fff !important;}
.wpforms-container-full .wpforms-form .wpforms-field-content a{color:#fff !important;}
.wpforms-container-full .wpforms-form .wpforms-field-content a:hover{color:var(--red,#E71D13) !important;text-decoration:underline !important;}

/* Side-nav: hover/active backgrounds sit flush (no gap between items) */
.rh-subnav:not(.rh-contactform) li{margin:0 !important;}
.rh-subnav:not(.rh-contactform) a{border-bottom:0 !important;}

/* ============================================================
   Story Wall — grid of news-post cards (image + vertical date
   + title over a bottom gradient), matching the live site
   ============================================================ */
.rh-sw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:1.5rem 0;}
.rh-sw-card{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;text-decoration:none;background:#003e6a;}
.rh-sw-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .5s ease;}
.rh-sw-card:hover .rh-sw-bg{transform:scale(1.06);}
.rh-sw-card:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,20,40,.9) 0%,rgba(0,20,40,.25) 42%,rgba(0,20,40,0) 68%);}
.rh-sw-date{position:absolute;top:14px;left:12px;z-index:2;writing-mode:vertical-rl;transform:rotate(180deg);
  color:#fff;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.5);}
.rh-sw-title{position:absolute;left:18px;right:14px;bottom:16px;z-index:2;color:#fff;font-family:var(--font-display);
  font-size:1.25rem;line-height:1.2;text-shadow:0 1px 6px rgba(0,0,0,.45);}
@media(max-width:800px){.rh-sw-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.rh-sw-grid{grid-template-columns:1fr;}}

/* Mega dropdown: keep the blue framed tile, but put the dark gradient ONLY on
   the image itself (not on the surrounding blue background) */
@media(min-width:901px){
  .rh-mega__img:after{content:none !important;background:none !important;}
  .rh-mega__img .rh-mega__img-bg{position:absolute !important;}
  .rh-mega__img .rh-mega__img-bg:after{content:"" !important;position:absolute !important;inset:0 !important;
    background:linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.35) 24%,rgba(0,0,0,0) 55%) !important;}
}

/* ============================================================
   HOMEPAGE POLISH BATCH
   ============================================================ */

/* Header: centre the phone/email/social glyphs inside their circles.
   The circle (<a>) already flex-centres; keep the icon its natural size so the
   glyph sits dead-centre (stretching the <i> to 100% pushed the glyph high). */
.topSocial a{display:grid !important;place-items:center !important;line-height:1 !important;}
.topSocial a i{width:auto !important;height:auto !important;line-height:1 !important;display:inline-flex !important;
  align-items:center !important;justify-content:center !important;vertical-align:middle !important;}
.topSocial a i::before{display:block;line-height:2;}

/* Home hero: content towards the bottom + red vertical line overlapping the
   banner's bottom edge (stays put whether the title is 1 or 2 lines) */
.rh-hero{align-items:flex-end !important;}
.rh-hero__center{padding-bottom:5.5vh;}
.rh-hero:before{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:2px;height:72px;background:var(--red);z-index:4;}
.rh-hero__center h1{white-space:normal;line-height:1.15;}
.rh-hero__center h1 br{line-height:1.15;}

/* Home welcome text: 1st para 1.125em, both paras line-height 1.6 (this block only) */
.rh-welcome__text p{line-height:1.6;}
.rh-welcome__text p:first-child{font-size:1.125em;}

/* What's-special grid: image titles 2.25em, centred vertically + horizontally */
.rh-grid__item--img > h3{position:absolute !important;inset:0 !important;margin:0 !important;display:flex;
  align-items:center;justify-content:center;text-align:center;padding:1rem;font-size:2.25em !important;z-index:2;line-height:1.15;}
.rh-grid__item--img:hover > h3{transform:none !important;}
/* text square: everything left aligned incl. the 'Russell House' title */
.rh-home .rh-grid__item--text,
.rh-home .rh-grid__item--text > div,
.rh-home .rh-grid__item--text h3,
.rh-home .rh-grid__item--text p,
.rh-home .rh-grid__item--text .rh-grid__subtitle{text-align:left !important;align-items:flex-start !important;}
.rh-home .rh-grid__item--text > div{width:100%;}
/* the title had left/right padding that indented it out of line with the rest */
.rh-home .rh-grid__item--text h3{padding:0 !important;margin:0 0 .8rem !important;}
/* quote box: red (not blue), larger italic quote, white cite */
.rh-grid__item--quote{background:var(--red) !important;}
.rh-grid__item--quote .rh-grid__quote{font-size:1.7rem !important;font-style:italic !important;color:#fff !important;}
.rh-grid__item--quote .rh-grid__quotee{color:#fff !important;}

/* Home POI (schools) boxes: single centred content block; title + ages always
   show, hover fills the whole tile blue and reveals the text + button below. */
.rh-schools__item{display:flex !important;flex-direction:column;align-items:center !important;justify-content:center !important;
  text-align:center;position:relative;min-height:420px;overflow:hidden;color:#fff;text-decoration:none;}
.rh-schools__content{position:relative;z-index:2;padding:0 2rem;width:100%;}
.rh-schools__content h3{color:#fff;font-size:2.25em;margin:0 0 .4rem;line-height:1.1;}
.rh-schools__content .ages{color:#fff;text-transform:uppercase;letter-spacing:.1em;font-size:.9rem;font-weight:600;}
.rh-schools__reveal{max-height:0;overflow:hidden;opacity:0;
  transition:max-height .45s ease,opacity .4s ease,margin-top .45s ease;}
.rh-schools__item:hover .rh-schools__reveal{max-height:260px;opacity:1;margin-top:1.1rem;}
.rh-schools__reveal p{margin:0 0 1.1rem;font-size:.95rem;color:#fff !important;}
.rh-schools__content,.rh-schools__content *{color:#fff !important;}
.rh-schools__cta{display:inline-block;border:2px solid #fff;border-radius:30px;padding:.55rem 1.7rem;
  font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#fff;}
/* hover: full blue overlay covers the whole tile */
.rh-schools__item:after{transition:background .35s ease;}
.rh-schools__item:hover:after{background:rgba(0,62,106,.92) !important;}

/* Upcoming events: bordered date circles (live spec) */
.rh-events__date{width:160px !important;height:160px !important;margin:0 auto 25px !important;
  border:rgba(0,62,106,.2) 10px solid !important;background-color:#003e6a !important;background-clip:padding-box !important;
  border-radius:50% !important;align-items:center !important;justify-content:center !important;}
.rh-events__date .d,.rh-events__date .m{color:#fff !important;}
.rh-events__date .d{font-family:var(--font-display) !important;font-size:4em !important;font-weight:500 !important;line-height:1 !important;}
.rh-events__date .m{font-size:1.875em !important;line-height:1 !important;}

/* Home story wall / social: white button, spacing, text-box background image */
.rh-social{gap:20px;}
.rh-social__box--story{background:#003e6a url('https://russellhouseschoolcouk.kinsta.cloud/wp-content/uploads/2026/07/story-bg.jpg') center/cover no-repeat !important;position:relative;}
.rh-social__box--story > *{position:relative;z-index:2;}
.rh-social__box--story .button__link a{background:#fff !important;color:var(--brand) !important;border-color:#fff !important;}
.rh-social__box--story .button__link a:hover{background:var(--brand) !important;color:#fff !important;border-color:#fff !important;}

/* How to get here: entry links blue, hover red */
.rh-gethere__entry a{color:#003e6a !important;}
.rh-gethere__entry a:hover{color:var(--red) !important;}

/* Footer: proprietor line + compact height + box overlaps footer ~120px, nudged right */
.site-footer__prop{margin:0 0 .3rem;font-weight:600;}
/* keep the footer's dark background + padding, and make sure it renders ABOVE
   the map where the get-here box overlaps it */
.site-footer{background:#000 !important;padding:2.2rem 0 1.9rem !important;position:relative;z-index:2;}
.rh-gethere{margin:-340px -30px -120px auto !important;}
@media(max-width:900px){
  .rh-gethere{margin:1.5rem auto !important;max-width:100% !important;}
}
/* Home only: left-align the footer text + push it left so the get-here box
   (which overlaps on the right) doesn't sit on top of it */
body.home .site-footer{text-align:left !important;}
body.home .site-footer .wrap{padding-right:430px;}
body.home .site-footer .foot-legal{justify-content:flex-start !important;}
@media(max-width:900px){body.home .site-footer{text-align:center !important;}body.home .site-footer .wrap{padding-right:0;}body.home .site-footer .foot-legal{justify-content:center !important;}}

/* Sticky header: end just below the active menu's red underline.
   Nav sits inside the white; +a few px so the red line tucks in. */
/* Hard-clamp the sticky header to 74px so no rule/display-scale can inflate it,
   which would push white below the red underline. */
.mainHeader.is-stuck{height:74px !important;min-height:74px !important;max-height:74px !important;overflow:visible !important;}
.mainHeader.is-stuck .mainHeader-inner{min-height:0 !important;max-height:74px !important;padding-top:.25rem !important;padding-bottom:0 !important;}
.mainHeader.is-stuck .nav-menu>li>a{height:66px !important;}
.mainHeader.is-stuck .site-logo{margin-bottom:-40px !important;}
/* The sticky spacer was reserving the header's height and showing as a blank
   white strip below the header — this layout doesn't need it, so keep it at 0. */
.rh-stick-spacer{height:0 !important;min-height:0 !important;}

/* Upcoming events: nudge the date up so it's vertically centred; bring the
   circles closer together and move the next arrow clear of the last circle */
.rh-events__date .d,.rh-events__date .m{transform:translateY(-5px);}
.rh-events-sec .rh-carousel__track{gap:14px !important;}
/* Whole circles only — items are a fraction of the track so an exact number
   fills the view (5 wide / 4 medium / 3 small); scroll-snap keeps them whole,
   so the last circle is never cut in half. */
@media(min-width:1200px){.rh-events-sec .rh-events__item{flex:0 0 calc((100% - 56px)/5) !important;}}
@media(min-width:1025px) and (max-width:1199px){.rh-events-sec .rh-events__item{flex:0 0 calc((100% - 42px)/4) !important;}}
@media(min-width:901px) and (max-width:1024px){.rh-events-sec .rh-events__item{flex:0 0 calc((100% - 28px)/3) !important;}}
.rh-events-sec .rh-carousel__track{scroll-snap-type:x mandatory !important;}
.rh-events-sec .rh-events__item{scroll-snap-align:start !important;}
/* arrows sit in the side gutters, clear of the circles */
.rh-events-sec .rh-carousel__btn--next{right:-72px !important;}
.rh-events-sec .rh-carousel__btn--prev{left:-44px !important;}
@media(max-width:900px){
  .rh-events-sec .rh-events__item{flex:0 0 100% !important;}
  .rh-events-sec .rh-carousel__track{gap:0 !important;}
  .rh-events-sec .rh-carousel__btn--prev{left:6px !important;}
  .rh-events-sec .rh-carousel__btn--next{right:6px !important;}
}

/* ===== Batch: top-bar hovers off, hero line overlap, alert card, POI hover, single sidebar ===== */

/* 1) Top-bar icons: no hover change (each keeps its own colour) */
.topSocial a:hover{background:var(--brand) !important;color:#fff !important;}
.topSocial li:nth-child(3) a:hover{background:#C13584 !important;}
.topSocial li:nth-child(4) a:hover{background:#3b5998 !important;}
.topSearch button.topSearch__toggle:hover,.topSearch__toggle:hover{background:var(--red) !important;color:#fff !important;}

/* 3) Home hero: red line overlaps banner+intro equally; content nudged up ~20px */
.rh-hero{overflow:visible !important;}
.rh-hero:before{bottom:-36px !important;z-index:6 !important;}
.rh-hero__center{padding-bottom:calc(5.5vh + 20px) !important;}

/* 7) POI (Pre-Prep / Main School) outline buttons: keep text readable on hover */
.rh-schools__cta:hover,
.rh-schools__item:hover .rh-schools__cta:hover{background:#fff !important;color:var(--brand) !important;}

/* 2) Home alert inline in the hero, straddling the banner bottom (half over the
   intro). The intro gets 75px extra top padding to make room. */
.rh-hero-alert{position:absolute;right:0;bottom:-85px;z-index:7;display:flex;max-width:520px;min-height:180px;
  background:#fff;box-shadow:0 12px 40px rgba(0,0,0,.18);text-align:left;}
.rh-hero-alert__img{width:170px;flex:none;background-size:cover;background-position:center;}
.rh-hero-alert__body{padding:1.6rem 1.8rem;text-align:left;display:flex;flex-direction:column;justify-content:center;}
.rh-hero-alert__body h2{margin:0 0 .5rem;color:var(--brand);font-family:var(--font-display);font-size:1.6rem;line-height:1.1;}
.rh-hero-alert__body p{margin:0 0 .5rem;color:#333;font-size:.95rem;line-height:1.4;}
.rh-hero-alert__cta{color:var(--red);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;text-decoration:none;}
.rh-hero-alert__cta:hover{color:var(--brand);}
body.home .rh-welcome{padding-top:calc(clamp(50px,7vw,100px) + 95px) !important;}
@media(max-width:900px){
  .rh-hero-alert{position:static;max-width:100%;width:100%;box-shadow:none;}
  body.home .rh-welcome{padding-top:clamp(50px,7vw,100px) !important;}
}

/* 6) Single news post: two-column layout with a Latest News sidebar */
.rh-single__wrap{display:flex;gap:44px;align-items:flex-start;max-width:1120px;margin:0 auto;}
.rh-single__main{flex:1 1 auto;min-width:0;max-width:760px;}
.rh-single__side{flex:0 0 300px;}
.rh-single__side-title{font-family:var(--font-display);color:var(--brand);font-size:1.4rem;margin:0 0 1.1rem;
  border-bottom:2px solid var(--red);padding-bottom:.5rem;}
/* Sidebar cards: full-width image with vertical date + white title overlaid */
.rh-side-post{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:4px;
  margin-bottom:1.2rem;text-decoration:none;background:#003e6a;}
.rh-side-post__img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .5s;}
.rh-side-post:hover .rh-side-post__img{transform:scale(1.06);}
.rh-side-post:after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(0,20,40,.9) 0%,rgba(0,20,40,.25) 45%,rgba(0,20,40,0) 72%);}
.rh-side-post__date{position:absolute;top:14px;left:12px;z-index:2;writing-mode:vertical-rl;transform:rotate(180deg);
  color:#fff;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;}
.rh-side-post__title{position:absolute;left:16px;right:14px;bottom:14px;z-index:2;color:#fff;
  font-family:var(--font-display);font-size:1.15rem;line-height:1.2;}
@media(max-width:820px){
  .rh-single__wrap{flex-direction:column;}
  .rh-single__main,.rh-single__side{flex-basis:auto;width:100%;max-width:100%;}
}

/* Who's Who: headmaster (image+text) then staff grids + governors */
.rh-whoswho__lead{display:flex;gap:32px;align-items:flex-start;margin:0 0 2.5rem;}
.rh-whoswho__lead img{width:230px;flex:none;height:auto;}
.rh-whoswho__lead .rh-ww-bio{flex:1 1 auto;}
.rh-ww-group{margin:2.2rem 0;}
.rh-ww-group > h2,.rh-whoswho h2.rh-ww-heading{font-family:var(--font-display);color:var(--brand);font-size:1.6rem;margin:0 0 1.2rem;}
.rh-staffgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px 24px;}
.rh-staffcard__img{width:100%;aspect-ratio:1/1;background-size:cover;background-position:center top;background-color:var(--line);margin-bottom:.6rem;}
.rh-staffcard__role{font-weight:700;color:var(--brand);font-size:.95rem;}
.rh-staffcard__name{color:var(--slate);font-size:.95rem;}
.rh-ww-governors p{margin:0 0 1rem;}
.rh-ww-governors .rh-gov{font-weight:600;color:var(--brand);}
@media(max-width:900px){.rh-staffgrid{grid-template-columns:repeat(3,1fr);} .rh-whoswho__lead{flex-direction:column;} .rh-whoswho__lead img{width:200px;}}
@media(max-width:560px){.rh-staffgrid{grid-template-columns:repeat(2,1fr);}}

/* ===== Batch: subnav spacing, alert popup off, curriculum tiles, sidebar watermark ===== */

/* Sub-nav link letter-spacing */
.rh-subnav:not(.rh-contactform) a{letter-spacing:1px !important;}

/* Remove the SchoolCMS alert popup entirely (we render it inline in the hero) */
.fancybox__container:has(#scms-alert-popup){display:none !important;}

/* Curriculum tiles: title to the bottom, dark overlay, white "find out more" button -> red on hover */
.rh-curric-grid a{justify-content:flex-end !important;padding-bottom:1.3rem;}
.rh-curric-grid a:before{background:linear-gradient(to top,rgba(0,30,54,.85),rgba(0,30,54,.15)) !important;}
.rh-curric-grid a:hover:before{background:linear-gradient(to top,rgba(0,30,54,.92),rgba(0,30,54,.35)) !important;}
.rh-curric-grid a .t{margin-top:auto;}
/* Button only appears on hover; white -> red */
.rh-curric-grid a .more{opacity:0;transform:translateY(6px);margin-top:.9rem;background:#fff;color:var(--brand);
  border-radius:25px;padding:.5rem 1.3rem;font-weight:700;transition:opacity .3s,transform .3s,background .25s,color .25s;}
.rh-curric-grid a:hover .more{opacity:1;transform:none;}
.rh-curric-grid a .more:hover{background:var(--red) !important;color:#fff !important;}

/* Inner-page sidebar: restore the crest watermark (kept inside the box) */
.rh-subnav{overflow:hidden;}
.rh-subnav:after{content:"" !important;position:absolute !important;right:-30px !important;bottom:-30px !important;top:auto !important;left:auto !important;
  width:230px !important;height:270px !important;
  background:url('https://russellhouseschoolcouk.kinsta.cloud/wp-content/uploads/2026/07/watermark-scaled.png') center/contain no-repeat !important;
  opacity:.08 !important;pointer-events:none;z-index:0;}
.rh-subnav__title,.rh-subnav ul{position:relative;z-index:1;}

/* Callout image: desaturated to match the live site's black & white treatment */
.rh-callout__img{filter:grayscale(1) brightness(.95) !important;}

/* All form submit buttons in capitals */
.wpforms-submit,button.wpforms-submit,.rh-contactform .wpforms-submit,
.wpforms-container button[type=submit],form input[type=submit]{text-transform:uppercase !important;letter-spacing:.04em !important;}

/* Alert popup: never lock page scroll (we render it inline instead) */
html.with-fancybox,body.with-fancybox{overflow:auto !important;}

/* rh-text block heading: proper section-title size (was inheriting ~24px) */
.rh-text__title{font-size:clamp(1.8rem,3.2vw,2.4rem);line-height:1.15;}

/* Callout: full-width B&W image with a red gradient over the text side (like live) */
.rh-callout__inner{position:relative !important;display:block !important;min-height:440px;}
.rh-callout__img{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;
  flex:none !important;filter:grayscale(1) brightness(.95) !important;z-index:0;}
.rh-callout__inner:before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,var(--red) 0%,rgba(224,48,30,.94) 32%,rgba(224,48,30,.45) 62%,rgba(224,48,30,0) 100%);}
.rh-callout__text{position:relative !important;z-index:2 !important;max-width:640px;}
@media(max-width:800px){
  .rh-callout__inner{min-height:0;}
  .rh-callout__img{position:relative !important;height:220px !important;filter:grayscale(1) brightness(.95) !important;}
  .rh-callout__inner:before{background:var(--red);}
}

/* Blog placeholder */
.rh-blog-empty{padding:2.5rem 1.5rem;text-align:center;background:var(--cream);border-radius:6px;margin:1.5rem 0;}
.rh-blog-empty p{margin:0;color:var(--brand);font-family:var(--font-display);font-size:1.3rem;}

/* Data tables (privacy/cookies etc.) */
.rh-content .rh-datatable{width:100%;border-collapse:collapse;margin:1.2rem 0;font-size:.95rem;}
.rh-content .rh-datatable th{background:var(--brand);color:#fff;text-align:left;padding:.7rem 1rem;}
.rh-content .rh-datatable td{padding:.65rem 1rem;border-bottom:1px solid #e3e3e3;vertical-align:top;}
.rh-content .rh-datatable tbody tr:nth-child(even){background:#f6f6f4;}

/* =========================================================================
   BATCH v2.1.2 — pre-prep title, sidenav watermark swap, callout, mobile
   These rules are LAST so they win over the earlier conflicting versions.
   ========================================================================= */

/* --- Pre-prep (and any rh-text) title: match main-school .content__title
   (44.8px) and sit the eyebrow/subtitle close above it --- */
.rh-text .rh-text__title,
.rh-fullpage .rh-text__title,
.rh-content .rh-text__title{
  font-size:2.8rem !important;line-height:1.1 !important;margin:.1em 0 .4em !important;}

/* --- Mobile: shrink the rh-text title so it doesn't dwarf the page H1 (2em) --- */
@media(max-width:900px){
  .rh-text .rh-text__title,
  .rh-fullpage .rh-text__title,
  .rh-content .rh-text__title{font-size:1.8rem !important}
}
.rh-text .rh-eyebrow,.rh-fullpage .rh-eyebrow{margin:0 0 .15rem !important;display:block;}
.rh-text .rh-text__subtitle{margin:0 0 .2rem !important;}

/* --- Sidenav crest watermark: OFF on the contact sidebar, ON (visible) on all
   other inner-page sidebars. Higher specificity than every earlier .rh-subnav:after
   so it settles the cascade for good. --- */
.rh-subnav.rh-contactform:after,
.rh-contactform:after{content:none !important;background:none !important;}
.rh-subnav:not(.rh-contactform):after{
  content:"" !important;position:absolute !important;
  left:auto !important;top:auto !important;right:-24px !important;bottom:-24px !important;
  width:220px !important;height:260px !important;
  background:url('https://russellhouseschoolcouk.kinsta.cloud/wp-content/uploads/2026/07/watermark-scaled.png') right bottom/contain no-repeat !important;
  opacity:.12 !important;pointer-events:none;z-index:0;}
.rh-subnav:not(.rh-contactform) .rh-subnav__title,
.rh-subnav:not(.rh-contactform) ul{position:relative;z-index:1;}

/* --- Callout: tighter title, wider text column, shorter overall, and the two
   buttons the same height/size --- */
.rh-callout__inner{min-height:360px !important;}
.rh-callout__title{line-height:1.05 !important;margin-bottom:.5rem !important;}
.rh-callout__text{max-width:760px !important;}
.rh-callout__text p{margin-bottom:1.1rem !important;}
.rh-callout__btns{align-items:stretch !important;}
.rh-callout__btn,
.rh-callout .rh-btn{
  display:inline-flex !important;align-items:center !important;justify-content:center !important;
  box-sizing:border-box !important;min-height:50px !important;
  padding:0 1.7rem !important;font-size:1rem !important;line-height:1.1 !important;
  border:2px solid transparent !important;}
.rh-callout__btn--outline{border:2px solid #fff !important;}

/* =========================== MOBILE ONLY (<=900px) ======================== */
@media(max-width:900px){
  /* quotes a touch smaller */
  .rh-content blockquote > *{font-size:1.275em !important;}

  /* full-width pages (our story / curriculum etc.) had no side padding like the
     sidebar pages — add it, and let genuine full-bleed blocks still break out */
  .rh-fullpage{padding-left:20px !important;padding-right:20px !important;}
  .rh-fullpage > .alignfull,
  .rh-fullpage .rh-text > .alignfull{margin-left:-20px !important;margin-right:-20px !important;width:calc(100% + 40px) !important;}

  /* breadcrumbs smaller + tighter */
  .rh-crumbs{font-size:.68rem !important;line-height:1.2 !important;}
  .rh-crumbs__sep{font-size:.6rem !important;margin:0 .35rem !important;}

  /* PDF download links: smaller text + breathing room inside the button */
  .rh-content a[href$=".pdf"].wp-block-button__link{
    font-size:.82rem !important;padding-top:.85rem !important;padding-bottom:.85rem !important;line-height:1.3 !important;}

  /* text/image carousel was broken: the texts column kept its 510px min-height
     and hidden slides reserved space (visibility:hidden). Collapse both and
     show only the active slide so the nav buttons sit under the content. */
  .rh-slider__texts{min-height:0 !important;}
  .rh-slider__text{position:relative !important;display:none !important;visibility:visible !important;opacity:1 !important;padding:18px 0 0 !important;min-height:0 !important;}
  .rh-slider__text.active{display:block !important;}
  .rh-slider__btns{position:static !important;justify-content:center !important;margin-top:14px !important;}

  /* red callout on mobile: stack a solid-red text block on top of the real
     photo. The full-inner red :before was covering the image (you saw red where
     the picture should be) — drop it and let the photo show below the text. */
  .rh-callout__inner{min-height:0 !important;padding-bottom:0 !important;display:block !important;}
  .rh-callout__inner:before{display:none !important;}
  .rh-callout__text{position:relative !important;z-index:1 !important;background:var(--red) !important;padding:1.8rem 1.4rem !important;max-width:none !important;}
  .rh-callout__btns{margin-bottom:0 !important;}
  /* hide the image entirely on mobile — just the red text block shows */
  .rh-callout__img{display:none !important;}

  /* forms: less side padding so fields have more room */
  .wpforms-container,
  .rh-contactform .wpforms-container,
  .rh-contactform .rh-subnav__form,
  .wpforms-container .wpforms-form{padding-left:6px !important;padding-right:6px !important;}
}


/* ---------- News filter (tag) sidebar - "Filter News" pills, matches live site ---------- */
.rh-tags h2{font-family:var(--font-display);font-weight:400;font-size:1.7rem;color:var(--slate);margin:0 0 1.1rem;border-bottom:0;padding-bottom:0}
.rh-tags__list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.6rem}
.rh-tags__list li{margin:0}
.rh-tags__list a{display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1.5px solid var(--line);padding:.6rem 1.4rem;border-radius:999px;text-decoration:none;color:var(--brand);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;transition:background .2s ease,color .2s ease,border-color .2s ease}
.rh-tags__list a:hover,.rh-tags__list a.is-active{background:var(--brand);color:#fff;border-color:var(--brand)}

/* Interactive map page (page-id-70): full-width, edge-to-edge, no sidebar, no banner, no margin/padding */
.page-id-70 .rh-fullpage{max-width:none !important;margin:0 !important;padding:0 !important;}
.page-id-70 .map-body{margin-bottom:0 !important;}
.page-id-70 .map-body .row{margin-left:0 !important;margin-right:0 !important;}
.page-id-70 .map-body .col-sm-12{padding-left:0 !important;padding-right:0 !important;}
.page-id-70 .map-body h2{display:none !important;}
.page-id-70 .mapIntro{display:none !important;}

/* Interactive Map popup styling to match the live site (2026-08-14, refined 2026-08-15): square corners, red circle close button (50% bigger than default, cross unchanged) overlapping the top-right corner, title near the top of the box in a smaller size, left image widened by dropping its outer-left margin to match the outer-right (0), no scrollbar on the right-hand image.
   Note: the plugin's own CSS takes .featImg out of normal flow with position:absolute (top:0;bottom:0;left:0;right:50%) relative to .itemBdy, so it fills the left half of the row edge-to-edge regardless of what else is in .featimgWrap - that's why the title has to explicitly cancel that back to position:relative below, otherwise the escaped image just paints over the title. */
.page-id-70 .fancybox-content.mapItem{border-radius:0 !important;}
.page-id-70 .fancybox-content.mapItem .fancybox-close-small{top:-27px;right:-27px;width:54px;height:54px;border-radius:50%;background:var(--red,#E71D13);color:#fff;opacity:1;}
.page-id-70 .fancybox-content.mapItem .fancybox-close-small:before{font-size:22px;line-height:54px;}
.page-id-70 .itemType_default .featimgWrap{position:static;display:flex;flex-direction:column;padding:16px 30px 30px 0;box-sizing:border-box;}
.page-id-70 .itemType_default .featimgWrap > h2{order:1;flex:0 0 auto;margin:0 0 8px 0;font-size:24px;line-height:1.2;}
.page-id-70 .itemType_default .featImg{position:relative !important;top:auto !important;bottom:auto !important;left:auto !important;right:auto !important;width:100% !important;order:2;flex:1 1 auto;min-height:260px;border-radius:0;}
.page-id-70 .itemType_default .mapBodyContent{max-height:none;overflow:hidden;padding:0;margin:0;height:100%;}
.page-id-70 .itemType_default .mapBodyContent img{display:block;width:100%;height:100%;object-fit:cover;}


/* Interactive Map hotspot pin styling to match the live site (2026-08-15): white circle with red border and a navy "+" icon in the idle state; icon morphs into a navy "x" on hover (achieved by rotating the "+" glyph 45deg, same visual trick the live site's SVG uses) while a white pill label with uppercase navy text slides out - reusing the plugin's existing .iconLabel show/hide (jQuery mouseenter/mouseleave already toggles display:block, this CSS only reskins colours/shape).
   Reference (live site, fetched from https://www.russellhouseschool.co.uk/_site/css/main.css): .siteplan__point{width:50px;height:50px;border:5px #E71D13 solid;border-radius:50%;} .siteplan__point__icon{background:#fff;} icon svg cross stroke:#003E6A. .siteplan__point__text{background:#fff;color:#003e6a;text-transform:uppercase;letter-spacing:1px;font-weight:600;} */
.page-id-70 .mapIcon .iconButton{font-size:24px;} /* doubles the pin: iconMarker/iconLabel sizing below is all em-based relative to this, so this single change scales the whole pin+label proportionally */
.page-id-70 .iconMarker{background:#fff !important;border:4px solid var(--red,#E71D13);box-sizing:border-box;color:transparent;position:relative;}
.page-id-70 .iconMarker:before{content:"+";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(0deg);color:#003e6a;font-size:1.3em;font-weight:400;line-height:1;transition:transform 300ms ease;}
.page-id-70 .mapIcon:hover .iconMarker:before{transform:translate(-50%,-50%) rotate(45deg);}
.page-id-70 a:hover .iconMarker{background:#fff !important;}
.page-id-70 .iconLabel{background:#fff !important;color:#003e6a !important;text-transform:uppercase;font-weight:400;letter-spacing:0.5px;box-shadow:0 2px 6px rgba(0,0,0,0.15);line-height:1.5em;}
.page-id-70 .iconLabel[style*="display: block"]{display:flex !important;align-items:center;}
.page-id-70 .iconLabel span{font-size:0.5em;}
.page-id-70 a:hover .iconButton .iconLabel{background:#fff !important;color:#003e6a !important;}


/* Interactive Map mobile behaviour to match the live site (2026-08-15): below 1024px (the live site's own breakpoint - it hides its ".siteplan__overlay" hotspot layer and shows its ".siteplan__mobile" location list below max-width:1024.98px / min-width:1025px), just show the plain map image with no hotspot pins and no accordion list underneath. The plugin's own CSS only auto-hides the accordion (.mapItemWRap/.mapMobToggle) at >=992px and never hides the numbered/restyled pins (.mapIcon) at any width, so both need an explicit override here. No sidebar is added on this page (confirmed with Esme this page has never had one and shouldn't gain one). */
@media screen and (max-width: 1024px) {
	.page-id-70 .mapIcon { display: none !important; }
	.page-id-70 .mapItemWRap { display: none !important; }
}


/* ---------- Transitions to match the live site (2026-08-14) ---------- */
/* Dropdown mega-menu image: zoom in slightly on hover, matching the live site's .menu__item__sub__block__link:hover img{transform:scale(1.05)} */
.rh-mega__img{overflow:hidden}
.rh-mega__img-bg{transition:background-size .4s ease}
.rh-mega__img:hover .rh-mega__img-bg{background-size:115%}

/* Floating "Book a Tour" tab: slides out slightly on hover, matching the live site's .book__tour__link a hover (translateX(5px) -> translateX(0), transition ease .4s) */
.rh-booktour{transition:right .35s ease}
.rh-booktour a{transition:background-color .3s ease}
.rh-booktour:hover{right:22px}


/* iPhone landscape: the mobile 'What's Special' swipe-carousel forces each
   tile into a 1:1 square at full viewport WIDTH, which on a wide-short
   landscape phone makes every tile 2x+ taller than the screen -- the text
   tile's own content only fills the top of that square, so the rest reads
   as a big empty gap before the next section. Decouple tile height from
   width on landscape phones so it tracks viewport HEIGHT instead. */
@media(max-width:900px) and (orientation:landscape){
  .rh-home .rh-grid__item{aspect-ratio:auto !important;height:80vh !important;}
}

/* tribe events */
button.tribe-common-c-btn {
    background-color: #003e6a!important;
    border-radius: 0!important;
}

.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:hover {
	background-color: #ffffff!important;
}

.tribe-events-cal-links .tribe-events-gcal, .tribe-events-cal-links .tribe-events-ical, .tribe-events-event-meta a, .tribe-events-event-meta a:visited, .tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date, .tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link {
    color: #003e6a!important;
    font-weight: 700;
}

.tribe-common .tribe-common-c-svgicon, .tribe-events-back a, .tribe-events-back a:visited, .tribe-events-single-event-title, .tribe-common a, .tribe-common a:active, .tribe-common a:focus, .tribe-common a:hover, .tribe-common a:visited, .tribe-common .tribe-common-h5, .tribe-common .tribe-common-h6 {
    color: #003e6a!important;
}

.tribe-events .tribe-events-c-ical__link, .tribe-common .tribe-common-c-btn-border {
    color: #003e6a!important;
    border-color: #003e6a!important;
}

.tribe-events .tribe-events-calendar-month__day-cell--selected, .tribe-events .tribe-events-calendar-month__day-cell--selected:focus, .tribe-events .tribe-events-calendar-month__day-cell--selected:hover, .tribe-events .tribe-events-calendar-month__mobile-events-icon--event {
    background-color: #e0301e!important;
}

.tribe-common .tribe-common-anchor-thin-alt {
    border-bottom: none!important;
}

.tribe-common--breakpoint-medium.tribe-events .tribe-events-1-container, .tribe-events .tribe-events-1-container {
    padding-top: 0px!important;
}

.tribe-common--breakpoint-medium.tribe-common .tribe-common-l-container {
    padding-top: 20px;
    padding-left: 0px;
    padding-right: 0px;
}

.tribe-events ul li:before, .tribe-events-pg-template ul li:before {
    content: none;
}

.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-breadcrumbs__list {
    font-size: 25px!important;
}

.tribe-events .tribe-events-c-breadcrumbs__list-item-link {
    font-size: 25px!important;
    text-transform: uppercase!important;
}

.bodyContent .tribe-events ul li:before {
    content: none!important;
}
.tribe-common--breakpoint-medium.tribe-events .tribe-common-c-btn.tribe-events-c-search__button {
    border-radius: 25px!important;
}

/* Button link (editor dropdown): links given the rh-btn class inside a Text block,
   without the wp-block-buttons wrapper, still space out neatly. Existing wrapped buttons are unaffected. */
.rh-text__body a.rh-btn{margin:0 .75rem .75rem 0;vertical-align:middle;}
.rh-text__body a.rh-btn[href$=".pdf"]{display:flex;max-width:680px;margin:0 0 .75rem;}
.rh-text__body a.rh-pdf{display:flex;max-width:680px;margin:0 0 .75rem;}

/* Staff blocks: one button style. The standard staff "Read More" link now matches the
   featured staff "Read more" toggle (red pill, white text, navy on hover). */
.dynamic-staff .staff-biog a.button,
.dynamic-staff .staff-biog a.button:visited{display:inline-block;margin-top:14px;background:var(--red,#E71D13);color:#fff;border:0;
  border-radius:25px;padding:9px 22px;font-size:.74rem;font-weight:700;line-height:1.8;text-transform:uppercase;letter-spacing:.04em;
  font-family:Lato,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  text-decoration:none;cursor:pointer;transition:background .2s;}
.dynamic-staff .staff-biog a.button:hover,
.dynamic-staff .staff-biog a.button:focus{background:#003e6a;color:#fff;text-decoration:none;}

/* ============================================================
   TYPOGRAPHY PARITY WITH LIVE SITE (russellhouseschool.co.uk)
   Values measured from the live site's computed styles @1440px.
   Lato is self-hosted Lato 2.0 (assets/css/fonts.css) so 500/600
   render true; Playfair Display is 400 only, as on live.
   Weights/families apply at all widths; sizes + line-heights are
   desktop-only (>=901px) so existing mobile rules still apply.
   ============================================================ */

/* ---- Weights + families (all widths) ---- */
.rh-pagebanner__headline,
.rh-events__date .d{font-weight:400 !important}
.rh-text__body .rh-lead,.rh-content .rh-lead,.rh-content .is-style-rh-lead,
.rh-welcome__subtitle,.rh-grid__subtitle,.rh-section__subtitle,.rh-gethere__subtitle,.rh-eyebrow,
.rh-schools__content .ages,
.rh-social__header,
.site-footer p,.site-footer__prop{font-weight:400 !important}
.button__link a,.rh-hero__play button,
.rh-content a.rh-btn,.rh-callout__btn,.rh-booktour a,
.rh-news__more{font-weight:400 !important}
.rh-news__date{font-weight:600 !important}
.rh-events__title{font-family:var(--font-body) !important}
.page-id-97 .rh-content a{font-weight:700}
.wp-block-quote cite,.rh-text__body blockquote cite{font-style:normal !important}

@media(min-width:901px){
  /* Header (live: 14px at >=1301px, 10px below) */
  .nav-menu>li>a{font-size:10px !important}
  .topBar__parents{font-weight:500;letter-spacing:1px}
  .rh-booktour a{font-size:16px !important;letter-spacing:normal !important;line-height:normal !important}

  /* Buttons (live .button__link a: 14px / 400 / 1px tracking) */
  .button__link a,.rh-hero__play button,
  .rh-content a.rh-btn,.rh-callout__btn{font-size:14px !important;letter-spacing:1px !important}

  /* Home hero */
  .rh-hero__center h1{font-size:48px !important;line-height:normal !important}
  .rh-hero__subtitle{font-size:18px !important;letter-spacing:4px !important;line-height:normal}

  /* Section headings */
  .rh-welcome__subtitle,.rh-grid__subtitle,.rh-section__subtitle,.rh-gethere__subtitle{line-height:normal}
  .rh-welcome__title{font-size:48px !important;line-height:normal !important}
  .rh-section__title{font-size:60px !important;line-height:normal !important}

  /* Home 3x3 grid */
  .rh-grid__item h3{line-height:40px !important}
  body:not(.home) .rh-grid__item--img>h3{font-size:38px !important;letter-spacing:2px}
  .rh-grid__info p{font-size:14px !important;line-height:1.5 !important}
  .rh-grid__info a{font-size:13px !important}
  .rh-grid__item--text p{line-height:1.6 !important}
  .rh-grid__item--quote .rh-grid__quote{font-size:34px !important;line-height:normal !important}
  .rh-grid__item--quote .rh-grid__quotee{font-size:16px !important;letter-spacing:3px !important;line-height:normal}

  /* News carousel */
  .rh-news__body h3{font-size:30px !important;line-height:normal !important}
  .rh-news__date{font-size:14px !important;letter-spacing:2px !important;line-height:20px}
  .rh-news__more{font-size:13px !important;letter-spacing:1px !important}

  /* Events */
  .rh-events__date .d{font-size:72px !important}
  .rh-events__date .m{letter-spacing:5px !important}
  .rh-events__item .rh-events__title{font-size:24px !important;line-height:normal !important}
  .rh-events__time{font-size:16px !important;letter-spacing:2px !important;text-transform:uppercase;line-height:normal}

  /* Schools 2-up */
  .rh-schools__content h3{font-size:48px !important;line-height:normal !important}
  .rh-schools__content .ages{font-size:16px !important;letter-spacing:2px !important;line-height:normal}

  /* Story wall + social */
  .rh-social__box--story h2{font-size:60px !important;letter-spacing:.6px;line-height:normal !important}
  .rh-social__box--story p{font-size:18px !important;line-height:normal}
  .rh-social__header{font-size:24px !important;line-height:30px !important}

  /* How to get here */
  .rh-gethere h2{font-size:48px !important;line-height:normal !important}
  .rh-gethere__entry{font-size:16px !important;line-height:25px}

  /* Footer */
  .site-footer p,.site-footer__prop,.foot-legal a{font-size:14px !important;line-height:20px !important}

  /* Inner pages */
  .rh-pagebanner__headline{line-height:normal !important}
  .rh-pagebanner .rh-crumbs a,.rh-pagebanner .rh-crumbs .rh-crumbs__current{font-size:16px !important;letter-spacing:1px !important;line-height:20px}
  .rh-content h1.content__title,.rh-content .content__title,.rh-content .rh-text__title{font-size:48px !important;line-height:normal !important}
  .rh-eyebrow{line-height:normal}
  .rh-text__body blockquote.wp-block-quote p{font-size:30px !important;line-height:1.4 !important}
  .rh-text__body blockquote.wp-block-quote cite,
  .rh-text__body blockquote.wp-block-quote p:last-child:not(:first-child){font-size:16px !important;line-height:1.4 !important}
  .rh-subnav:not(.rh-contactform) .rh-subnav__title{line-height:40px !important}
  .rh-subnav:not(.rh-contactform) a{line-height:20px !important;padding:22.5px 55px !important}
  .rh-slider__text h3{font-size:48px !important;line-height:normal !important}
  .rh-callout .rh-callout__title,.rh-callout h2{font-size:48px !important;letter-spacing:2px;line-height:normal !important}
  .rh-callout__text p{line-height:1.6}
  .rh-bigquote blockquote{line-height:normal !important}
  .rh-bigquote blockquote cite{font-size:16px !important;letter-spacing:3px !important}
}
@media(min-width:1301px){
  .nav-menu>li>a{font-size:14px !important}
}

/* ============================================================
   COLOUR PARITY WITH LIVE SITE (russellhouseschool.co.uk)
   Values taken from the live site's computed styles / CSS.
   ============================================================ */
.topBar a.topBar__parents{color:#949494 !important}
.topBar a.topBar__parents:hover{color:var(--brand) !important}
.rh-booktour a{background:#ee3829}
.rh-welcome{background-color:#ececec}
.rh-welcome .rh-welcome__subtitle{color:#d01a11 !important}
.rh-grid__item--text{background:#fff}
.rh-news__date{color:var(--brand)}
.rh-events__item .rh-events__title{color:var(--ink)}
.rh-content blockquote > p:first-child,.rh-content blockquote > *:not(:last-child){color:var(--ink) !important}
.rh-bigquote blockquote{color:var(--ink) !important}
.site-footer{background-color:#222 !important}
.site-footer p,.site-footer__prop{color:#fff}

/* News: grey band behind the lower part of the carousel (live .news:before) */
.rh-section:has(.rh-news__item){position:relative;isolation:isolate}
.rh-section:has(.rh-news__item)::before{content:"";position:absolute;left:0;right:0;bottom:0;height:125px;background:#e6e6e6;z-index:-1}
@media(min-width:901px){.rh-section:has(.rh-news__item)::before{height:200px}}

/* ============================================================
   SOCIAL ICON PARITY WITH LIVE SITE (.menu__social__item / .social__header)
   30px circles, 5px apart, 16px glyphs (envelope 12px), Instagram
   gradient, no colour change on hover.
   ============================================================ */
.topSocial{gap:5px !important}
.topSocial a,.topSearch button.topSearch__toggle{width:30px !important;height:30px !important;font-size:16px !important}
.topSocial a i,.topSearch__toggle i{font-size:16px !important}
.topSocial a.ts--email i{font-size:12px !important}
.topSocial li a.ts--phone,.topSocial li a.ts--email,
.topSocial li a.ts--phone:hover,.topSocial li a.ts--email:hover{background:var(--brand) !important}
.topSocial li a.ts--ig,.topSocial li a.ts--ig:hover{background:linear-gradient(45deg,#feda75 0%,#fa7e1e 25%,#d62976 50%,#962fbf 75%,#4f5bd5 100%) !important}
.topSocial li a.ts--fb,.topSocial li a.ts--fb:hover{background:#3b5998 !important}
.topSearch button.topSearch__toggle,.topSearch button.topSearch__toggle:hover{background:var(--red) !important}
.topSocial a:hover,.topSearch button.topSearch__toggle:hover{color:#fff !important}

/* Instagram / Facebook feed header icon size + gap: set in blocks/social/render.php */
/* search circle sits 5px from Facebook, as on live */
.topBar__right{gap:5px !important}

/* ============================================================
   SPACING PARITY WITH LIVE SITE — header + central logo (>=901px)
   Live: 46px top bar, 74px nav band (header 120px), nav items
   12px padding (24px apart), nearest items 12px from the 150px
   logo box, which sits flush at the top with the crest inset
   25px top / 14px sides.
   ============================================================ */
@media(min-width:901px){
  .topBar .topBar-inner{min-height:46px !important}
  .mainHeader .mainHeader-inner{min-height:74px !important;gap:0 !important}
  .navCol--left{padding-right:75px !important}
  .navCol--right{padding-left:75px !important}
  .nav-menu>li{padding:0 10px !important;margin:0 !important}
  .mainHeader:not(.is-stuck) .nav-menu>li>a{height:74px !important}
  .mainHeader:not(.is-stuck) .nav-menu>li>a:after{bottom:0 !important;height:3px !important}
  .mainHeader:not(.is-stuck) .site-logo{top:-46px !important;width:150px !important;min-width:150px !important;height:150px !important;
    padding:25px 14px 15px !important;box-sizing:border-box !important;align-items:flex-start !important}
  .mainHeader:not(.is-stuck) .site-logo .custom-logo{width:122px !important;height:110px !important;max-height:none !important;object-fit:contain}
}
@media(min-width:1301px){ .nav-menu>li{padding:0 12px !important} .mainHeader:not(.is-stuck) .nav-menu>li>a{padding-top:2px !important} }
@media(min-width:1600px){
  .nav-menu>li{padding:0 25px !important}
  .navCol--left{padding-right:110px !important}
  .navCol--right{padding-left:110px !important}
}

/* ============================================================
   SPACING PARITY WITH LIVE SITE — page sections (>=901px)
   Measured from live @1440px. Live content container = 1170px.
   ============================================================ */
@media(min-width:901px){
  /* ---- Home hero: fills the viewport under the 120px header ---- */
  body.home .rh-hero{min-height:calc(100vh - 120px) !important}
  /* Hero alert (live .notice): 500px card overlapping the hero bottom by 35px */
  .rh-hero-alert{bottom:-35px !important;width:500px;max-width:500px !important;min-height:201px !important}
  .rh-hero-alert__img{width:165px !important}
  .rh-hero-alert__body{padding:30px !important}

  /* ---- Welcome ---- */
  body.home .rh-welcome{padding:90px 0 !important}
  .rh-welcome .wrap{max-width:1170px !important;width:90% !important;padding:0 !important;margin:0 auto !important}
  .rh-welcome__subtitle{display:block;margin:40px 0 0 !important}
  .rh-welcome__title{margin:0 0 20px !important}
  .rh-welcome__text{max-width:none !important;margin:0 !important}
  .rh-welcome__text p{margin:0 0 18px !important}
  .rh-welcome__text p:last-child{margin-bottom:0 !important}
  .rh-welcome .button__link{margin-top:36px !important}

  /* ---- Awards: 110px logos, 32px apart, overlapping the grid's top padding ---- */
  body.home .rh-awards{padding:110px 0 0 !important}
  body:not(.home) .rh-awards{padding:48px 0 !important}
  .rh-awards ul{gap:0 !important;max-width:1270px;margin:0 auto !important}
  .rh-awards li{margin:16px 32px !important}
  .rh-awards img{height:110px !important}
  .rh-awards li:last-child img{height:75px !important}

  /* ---- Home 3x3 grid: 1170px wide, 390px tiles ---- */
  .rh-home .rh-grid,body.home .rh-grid{max-width:1170px !important;width:90% !important;margin:45px auto 90px !important}

  /* ---- Buttons (live .button__link a: 48px line + 2px top pad, no border) ---- */
  .button__link a{padding:2px 30px 0 !important;line-height:48px !important;border:0 !important}

  /* ---- Home section containers ---- */
  body.home .rh-section>.wrap{max-width:1170px !important;width:90% !important;padding:0 !important;margin:0 auto !important}

  /* ---- News ---- */
  body.home .rh-section:has(.rh-news__item){padding:0 0 90px !important}
  .rh-section:has(.rh-news__item) .rh-section__head{padding-bottom:10px;margin-bottom:50px !important}
  .rh-section:has(.rh-news__item) .rh-section__title{line-height:100px !important;margin:0 !important}
  .rh-section:has(.rh-news__item) .rh-carousel__track{gap:40px !important}
  .rh-news__item{flex:0 0 calc((100% - 80px)/3) !important}
  .rh-section:has(.rh-news__item) .button__link{margin-top:63px !important}

  /* ---- Carousel arrows: 50px, 92px outside the content edge ---- */
  body.home .rh-carousel__btn{width:50px !important;height:50px !important}
  /* arrows centred in the side gutter: -(gutter + 50px)/2 */
  body.home .rh-carousel__btn--prev{left:calc((100vw - min(1170px, 90vw) + 100px) / -4) !important}
  body.home .rh-carousel__btn--next{right:calc((100vw - min(1170px, 90vw) + 100px) / -4) !important}
  .rh-section:has(.rh-news__item) .rh-carousel__btn{top:225px !important}
  .rh-events-sec .rh-carousel__btn{top:55px !important}

  /* ---- Schools: 320px tiles with 20px gutters ---- */
  .rh-schools{padding:0 20px;gap:20px}
  .rh-schools__item{height:320px !important;min-height:320px !important}

  /* ---- Events ---- */
  .rh-events-sec{padding:90px 0 !important}
  .rh-events-sec .rh-section__subtitle{display:block}
  .rh-events-sec .rh-section__title{margin:0 !important}
  .rh-events-sec .rh-section__head{margin-bottom:40px !important}
  .rh-events-sec .rh-carousel__track{gap:39.33px !important}
  .rh-events-sec .rh-events__item{flex:0 0 calc((100% - 118px)/4) !important;padding:0 !important}
  .rh-events__date{margin:0 auto 25px !important}
  .rh-events__time{margin:0 !important}
  .rh-events__item .rh-events__title{margin:24px 0 !important}
  .rh-events-sec .button__link{margin-top:62px !important}

  /* ---- Social: three 453px boxes, 20px gutters ---- */
  .rh-social{padding:0 20px}
  .rh-social .rh-social__box--story{justify-content:flex-start !important;padding:40px 60px !important}
  .rh-social__box--story h2{margin:0 !important}
  .rh-social__box--story p{margin:20px 0 30px !important}
  .rh-social .rh-social__header{left:45px !important;right:45px !important}

  /* ---- How to get here: 450px box, 313px down the 625px map, 150px into the footer ---- */
  .rh-social{position:relative;z-index:3}
  .rh-contactmap{margin-top:-185px;height:625px}
  .rh-contactmap__map{min-height:625px !important}
  .rh-contactmap .wrap{max-width:1170px !important;width:90% !important;padding:0 !important;margin:0 auto !important}
  .rh-gethere{max-width:450px !important;width:450px;padding:45px 50px !important;margin:-312px 0 -150px auto !important}
  .rh-gethere__subtitle{display:block}
  .rh-gethere h2{margin:0 !important}
  .rh-gethere__entry{margin:16px 0 0 !important}
  .rh-gethere .button__link{margin-top:16px !important}

  /* ---- Footer: 55px padding, 1170px container, text block 585px wide ---- */
  .site-footer{padding:55px 0 !important}
  .site-footer .wrap{max-width:1170px !important;width:90% !important;padding:0 !important;margin:0 auto !important}
  body.home .site-footer .wrap>*{max-width:585px}
  .site-footer p,.site-footer__prop{margin:0 0 10px !important}
  .site-footer .foot-legal{margin:0 !important}
  .site-footer .foot-legal li{margin:0 !important;line-height:20px !important}
  .site-footer .foot-legal a{line-height:20px !important}

  /* ---- Inner pages ---- */
  .rh-pagebanner{min-height:432px !important}
  .rh-pagebanner__inner{padding-bottom:80px !important}
  .rh-pagebanner .rh-crumbs{margin-top:25px !important}
  .rh-main{max-width:1170px !important;width:90% !important;padding:0 !important;column-gap:65px !important;margin:0 auto !important}
  .rh-content{padding:90px 0 !important}
  .rh-content h1.content__title,.rh-content .content__title{margin:0 !important}
  .rh-text__body p{margin:16px 0 !important}
  .rh-text__body .rh-lead,.rh-content .rh-lead{margin:19px 0 !important}
  .rh-text__body h2{margin:20px 0 !important}
  .rh-subnav{margin-top:-80px !important;padding:0 !important}
  .rh-subnav:not(.rh-contactform) .rh-subnav__title{padding:40px 55px !important}
  .rh-subnav ul{margin:35px 0 !important}
}
@media(min-width:901px){
  /* Sticky header (live: 74px band, 110px logo box, crest 84x75 inset 20px top / 13px sides) */
  .mainHeader.is-stuck .mainHeader-inner{min-height:74px !important;max-height:none !important;padding:0 !important}
  .mainHeader.is-stuck .nav-menu>li>a{height:74px !important}
  .mainHeader.is-stuck .site-logo{padding:20px 13px 15px !important;box-sizing:border-box !important;align-items:flex-start !important}
  .mainHeader.is-stuck .site-logo .custom-logo{width:84px !important;height:75px !important;max-height:none !important;object-fit:contain}
  /* Feed boxes: solid backing so the map (now behind the section, as on live) doesn't show through */
  .rh-social .rh-social__box--insta,.rh-social .rh-social__box--fb{background-color:#fff}
  /* Get-here entries: text starts 35px in from the icon column (live .contact__entry padding-left) */
  .rh-gethere__entry{gap:0 !important}
  .rh-gethere__entry>i{width:35px;flex:none}
}
@media(min-width:901px){
  /* Inner page banner: 1170px container, 20px breadcrumb row (live .hero__path) */
  .rh-pagebanner__inner{max-width:1170px !important;width:90% !important;padding-left:0 !important;padding-right:0 !important;margin:0 auto !important}
  .rh-pagebanner .rh-crumbs{line-height:20px !important}
  .rh-pagebanner .rh-crumbs li{margin:0 !important}
  /* "In This Section": no box padding; divider sits 2px below the title (live .subnav__title:after) */
  .rh-subnav:not(.rh-contactform){padding:0 !important}
  .rh-subnav:not(.rh-contactform) ul{margin:35px 0 !important}
  .rh-subnav:not(.rh-contactform) .rh-subnav__title{position:relative !important}
  .rh-subnav:not(.rh-contactform) .rh-subnav__title:after{position:absolute !important;left:55px !important;bottom:-2px !important;width:80px !important;height:2px !important;margin:0 !important}
}
@media(min-width:901px){
  /* Full-width modules inside inner pages: break out of the 1170px content container */
  .rh-content .alignfull{margin-left:calc((min(1170px, 90vw) - 100vw) / 2) !important}

  /* Inline quote: 30px under the quote, cite line 16px */
  .rh-content blockquote.wp-block-quote>p{margin:0 0 30px !important}
  .rh-content blockquote.wp-block-quote>p:last-child:not(:first-child){margin:0 !important}

  /* Gap from content to the first full-width module = live 20px region margin + 90px padding */
  .rh-content .rh-text:has(+ .alignfull){margin-bottom:94px !important}

  /* Image grid (live .schoolGrid): 20px gutters, 500px tiles */
  .rh-content .rh-grid.alignfull{padding:0 20px !important;gap:20px !important}
  .rh-content .rh-grid.alignfull .rh-grid__item{height:500px !important;min-height:500px !important;aspect-ratio:auto !important}

  /* Image/text slider (live .schoolSlider): full width, 90px/72px padding, 55/45 split */
  .rh-content .rh-slider.alignfull{width:100vw !important;max-width:100vw !important;margin:0 0 0 calc((min(1170px, 90vw) - 100vw) / 2) !important}
  .rh-content .rh-slider__inner{padding:90px 72px !important}
  .rh-content .rh-slider__inner::after{content:"";display:block;clear:both}
  .rh-slider__text{padding:75px 115px 0 60px !important}
  .rh-slider__text>span{line-height:normal !important}
  .rh-slider__text h3{margin:0 !important}
  .rh-slider__text p{margin:35px 0 !important}
  .rh-slider__btns{flex-direction:column;gap:10px !important;top:200px;bottom:auto !important;right:0}

  /* Callout (live section.visit): inset 20px each side, 90px/115px padding, 655px text */
  .rh-content .rh-callout.alignfull{width:calc(100vw - 40px) !important;max-width:none !important;margin-left:calc((min(1170px, 90vw) - 100vw) / 2 + 20px) !important}
  .rh-callout__text{padding:90px 0 90px 115px !important;max-width:770px !important;box-sizing:border-box}
  .rh-callout .rh-callout__title,.rh-callout h2{margin:0 !important}
  .rh-callout__text p{margin:35px 0 !important}
  .rh-callout__btns{margin:0 0 20px !important;gap:20px !important}
  .rh-callout__text p{max-width:none !important}

  /* Content ending in a full-width module runs straight into the next section (no 90px gap) */
  .rh-content:has(> .alignfull:last-child){padding-bottom:0 !important}

  /* Footer on inner pages: 65px padding */
  body:not(.home) .site-footer{padding:65px 0 !important}
}
@media(min-width:901px){
  /* Inner-page image grid: title sits 75px above the tile bottom (live .schoolGrid__item__title) */
  .rh-content .rh-grid.alignfull .rh-grid__item--img>h3{align-items:flex-end !important;padding:0 45px 75px !important}
}

/* ---- Hero video: the YouTube footage has letterbox bars baked in (picture is
   544 of 720 rows = 2.35:1), so size the 16:9 iframe from the hero box itself so
   the picture area — not the bars — covers it. Container units track the hero. ---- */
.rh-hero__ytbg{container-type:size}
@supports (width:1cqw){
  .rh-hero__ytbg iframe{
    width:max(100cqw, 100cqh * 2.36) !important;
    height:calc(max(100cqw, 100cqh * 2.36) * 9 / 16) !important;
  }
}

/* ============================================================
   IMAGE GRID HOVER — matches live (.homeGrid / .schoolGrid)
   Photo sits on navy with a dark bottom gradient; on hover the
   photo fades to 15%. 350ms throughout.
   ============================================================ */
@media(min-width:901px){
  .rh-grid__item--img{background:#003e6a}
  .rh-grid__item--img .rh-grid__bg{transform:none !important;transition:opacity .35s ease !important}
  .rh-grid__item--img:after{background:linear-gradient(to bottom,rgba(0,0,0,0) 0%,rgba(0,0,0,.8) 100%) !important;z-index:1;pointer-events:none;transition:opacity .35s ease}
  .rh-grid__item--img:hover .rh-grid__bg,.rh-grid__item--img:hover:after{opacity:.15}
  .rh-grid__item--img>h3{transition:transform .35s ease !important}
  .rh-grid__info{background:none !important;padding:0 !important;opacity:0;visibility:hidden;
    transition:transform .35s ease,opacity .35s ease,visibility 0s linear .35s !important}
  .rh-grid__info h3{display:none !important}
  .rh-grid__info a{color:var(--brand) !important;background:#fff !important;border:0 !important;text-decoration:none !important;text-transform:uppercase;font-weight:400 !important;transition:background-color .35s ease,color .35s ease}
  .rh-grid__info a:hover{background:var(--red) !important;color:#fff !important}

  /* Home: tile grows to 110% over its neighbours; title rises 45px; text + small pill fade in below it */
  body.home .rh-grid__item--img{z-index:0;transition:transform .35s ease,z-index 0s linear .35s}
  body.home .rh-grid__item--img:hover{transform:scale(1.1);z-index:5;transition:transform .35s ease,z-index 0s linear}
  body.home .rh-grid__item--img>h3{padding:0 10% !important}
  body.home .rh-grid__item--img:hover>h3{transform:translateY(-45px) !important}
  body.home .rh-grid__info{inset:auto !important;top:50% !important;left:10% !important;right:10% !important;display:block !important;text-align:center !important;transform:translateY(-65px)}
  body.home .rh-grid__item--img:hover .rh-grid__info{opacity:1;visibility:visible;transform:translateY(-15px);transition:transform .35s ease,opacity .35s ease,visibility 0s linear !important}
  body.home .rh-grid__info p{margin:0 !important;color:#fff;font-size:14px !important;line-height:1.5 !important}
  body.home .rh-grid__info a{display:inline-block !important;margin-top:15px;line-height:38px !important;border-radius:20px !important;padding:2px 20px 0 !important;font-size:13px !important;letter-spacing:1px !important}

  /* Inner pages: no scaling; title rises 75px and a "Find Out More" pill fades into its place (150ms delay) */
  .rh-content .rh-grid__item--img:hover>h3{transform:translateY(-75px) !important}
  .rh-content .rh-grid__info{opacity:1;visibility:visible;inset:0 !important;display:block !important}
  .rh-content .rh-grid__info p{display:none !important}
  .rh-content .rh-grid__info a{position:absolute;bottom:75px;left:50%;transform:translateX(-50%);white-space:nowrap;
    opacity:0;visibility:hidden;line-height:48px !important;padding:2px 30px 0 !important;border-radius:25px !important;font-size:14px !important;letter-spacing:2px !important;
    transition:opacity .35s ease,visibility 0s linear .35s,background-color .35s ease,color .35s ease}
  .rh-content .rh-grid__item--img:hover .rh-grid__info a{opacity:1;visibility:visible;transition:opacity .35s ease .15s,visibility 0s linear .15s,background-color .35s ease,color .35s ease}
}

/* ============================================================
   NEWS CAROUSEL CARDS — matches live (.news__item)
   News: 480px photo tile on navy, white rotated date tab, title over
   the image; hover fades/greys the photo and slides the info panel up
   to reveal the intro + pill button. Blog: red card, RSS circle.
   ============================================================ */
.rh-news__item{position:relative;display:block;height:480px;overflow:hidden;background:#003e6a !important;box-shadow:none !important;text-align:left;text-decoration:none !important}
.rh-news__item--blog{background:#e71d13 !important}
.rh-news__img{position:absolute !important;inset:0;height:100%;aspect-ratio:auto !important;background-color:transparent !important;transition:opacity .35s ease,filter .35s ease}
.rh-news__img:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0) 0%,rgba(0,0,0,.8) 100%)}
.rh-news__item:not(.rh-news__item--blog):hover .rh-news__img{opacity:.15;filter:saturate(0%)}

.rh-news__item .rh-news__date{position:absolute;top:0;left:0;z-index:1;background:#fff;color:var(--brand) !important;
  transform:rotate(90deg) translateY(-25px);transform-origin:top left;width:110px;padding-top:5px;
  line-height:20px !important;font-size:14px !important;font-weight:600 !important;letter-spacing:2px !important;text-transform:uppercase}

.rh-news__info{position:absolute;z-index:1;left:0;right:0;top:445px;padding:25px 45px 45px;transition:transform .35s ease}
.rh-news__item:not(.rh-news__item--blog):hover .rh-news__info{transform:translateY(-100%)}
.rh-news__item .rh-news__title{position:absolute;bottom:100%;left:45px;right:45px;margin:0 !important;color:#fff !important;
  font-size:30px !important;line-height:normal !important}
.rh-news__intro{margin:0 !important;color:#fff;line-height:1.5;opacity:0;transition:opacity .35s ease,visibility 0s linear .35s}
.rh-news__item:hover .rh-news__intro{opacity:1;transition:opacity .35s ease,visibility 0s linear}
.rh-news__item .rh-news__more{display:inline-block;margin-top:25px;opacity:0;padding:2px 20px 0;background:#fff;color:var(--brand) !important;
  line-height:38px;border-radius:20px;letter-spacing:1px !important;text-transform:uppercase;font-weight:400 !important;font-size:13px !important;
  transition:opacity .35s ease,background-color .35s ease,color .35s ease}
.rh-news__item:hover .rh-news__more{opacity:1}
.rh-news__item:not(.rh-news__item--blog) .rh-news__more:hover{background:#e71d13;color:#fff !important}

/* Blog card */
.rh-news__header{display:flex;align-items:center;padding:45px 25px 25px}
.rh-news__feed{width:70px;height:70px;border-radius:50%;background:#fff;color:#e71d13;text-align:center;line-height:70px;font-size:24px;flex:none}
.rh-news__item--blog .rh-news__date{position:static;transform:none;background:none;width:auto;padding:0 0 0 25px;color:#fff !important;display:block}
.rh-news__item--blog .rh-news__info{position:static;transform:none !important}
.rh-news__type{display:block;color:#fff;text-transform:uppercase;letter-spacing:2px;font-size:14px}
.rh-news__item--blog .rh-news__title{position:static;margin:5px 0 25px !important}
.rh-news__item--blog .rh-news__intro,.rh-news__item--blog .rh-news__more{opacity:1}
.rh-news__item--blog .rh-news__more{color:#e71d13 !important}
.rh-news__item--blog .rh-news__more:hover{color:var(--brand) !important}
@media(min-width:901px){
  /* News heading: thin rule either side of the title (live .news__heading:before) */
  .rh-section:has(.rh-news__item) .rh-section__head{position:relative;text-align:center}
  .rh-section:has(.rh-news__item) .rh-section__head:before{content:"";position:absolute;left:0;right:0;top:0;bottom:10px;margin:auto;height:1px;background:#e6e6e6}
  .rh-section:has(.rh-news__item) .rh-section__title{display:inline-block !important;padding:0 25px !important;background:#fff;position:relative}
  /* Grey band behind the lower half of the cards, running into the section's bottom band */
  .rh-section:has(.rh-news__item) .rh-carousel:before{content:"";position:absolute;top:50%;bottom:-10px;left:calc(50% - 50vw);right:calc(50% - 50vw);background:#e6e6e6;z-index:-1}
  /* Schools: grey behind the top half (live .schools:before) */
  .rh-schools{position:relative;isolation:isolate}
  .rh-schools:before{content:"";position:absolute;left:0;right:0;top:0;height:50%;background:#e6e6e6;z-index:-1}
}
/* Carousel arrows (news + events): white circle, red chevron, soft shadow (live .news__btn) */
body.home .rh-carousel__btn,body.home .rh-events-sec .rh-carousel__btn{background:#fff !important;color:#e71d13 !important;border:0 !important;border-radius:50% !important;box-shadow:0 10px 20px 0 rgba(0,0,0,.1) !important;font-size:20px !important}
body.home .rh-carousel__btn i{color:#e71d13 !important}

/* ============================================================
   LINK TILES (Parents portal, News & Events) — matches live .innerGrid
   250px navy tiles, dark bottom gradient, centred Playfair title 25px
   from the bottom; hover fades the photo, lifts the title 60px and
   fades in a "Find Out More" pill. 4 / 3 / 2 / 1 per row like live.
   ============================================================ */
.rh-newsgrid--links{gap:20px !important;margin:20px 0 0 !important}
.rh-newsgrid--links a{height:250px !important;background:#003e6a;border-radius:0 !important}
.rh-newsgrid--links a:after{content:none !important}
.rh-newsgrid--links a .bg{z-index:0 !important;transform:none !important;transition:opacity .35s ease !important}
.rh-newsgrid--links a .bg:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0) 0%,rgba(0,0,0,.8) 100%)}
.rh-newsgrid--links a:hover .bg{opacity:.15}
.rh-newsgrid--links .rh-newsgrid__title{position:absolute;left:10% !important;right:10%;bottom:25px !important;z-index:1;margin:0;text-align:center;color:#fff;
  font-family:var(--font-display);font-size:24px !important;line-height:40px !important;letter-spacing:2px;transform:none;transition:transform .35s ease !important}
.rh-newsgrid--links a:hover .rh-newsgrid__title{transform:translateY(-60px) !important}
.rh-newsgrid--links .rh-newsgrid__more{position:absolute;bottom:25px !important;left:50% !important;transform:translateX(-50%) !important;z-index:1;white-space:nowrap;
  opacity:0;visibility:hidden;line-height:48px;padding:2px 30px 0;border-radius:25px;background:#fff;color:#003e6a;
  font-family:var(--font-body);font-size:14px;letter-spacing:2px;text-transform:uppercase;
  transition:opacity .35s ease,visibility 0s linear .35s,background-color .35s ease,color .35s ease}
.rh-newsgrid--links a:hover .rh-newsgrid__more{opacity:1;visibility:visible;transition:opacity .35s ease .15s,visibility 0s linear .15s,background-color .35s ease,color .35s ease}
.rh-newsgrid--links .rh-newsgrid__more:hover{background:#e71d13;color:#fff}
@media(min-width:1301px){.rh-newsgrid--links{grid-template-columns:repeat(4,1fr) !important}}
@media(min-width:1025px) and (max-width:1300px){.rh-newsgrid--links{grid-template-columns:repeat(3,1fr) !important}}
@media(min-width:769px) and (max-width:1024px){.rh-newsgrid--links{grid-template-columns:repeat(2,1fr) !important}}
@media(max-width:768px){.rh-newsgrid--links{grid-template-columns:1fr !important}}

/* Full-width pages built around link tiles: live 1170px column, 90px top padding, 20px under the grid */
@media(min-width:901px){
  .rh-fullpage:has(.rh-newsgrid--links){max-width:1170px !important;width:90% !important;padding:90px 0 20px !important;margin:0 auto !important}
  .rh-fullpage:has(.rh-newsgrid--links)>h1,.rh-fullpage:has(.rh-newsgrid--links) .content__title{margin:0 !important;line-height:normal !important;font-size:48px !important}
  .rh-fullpage:has(.rh-newsgrid--links) .rh-text{margin:0 !important}
  .rh-fullpage:has(.rh-newsgrid--links) .rh-text__body p{margin:16px 0 !important}
}

/* Key watermark behind full-width link-tile pages (Parents, News & Events) —
   live .main:after: 755x890 watermark.svg, 220px past the right edge, 45px up
   from the bottom of the content, 5% opacity, >=1025px. Drawn as a background on
   a full-bleed layer so it's clipped by the window (no sideways scroll). */
@media(min-width:1025px){
  .rh-fullpage:has(.rh-newsgrid--links){position:relative;isolation:isolate}
  .rh-fullpage:has(.rh-newsgrid--links)::after{content:"";position:absolute;z-index:-1;pointer-events:none;
    top:-200px;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw + 20px);
    background:url('assets/img/watermark.svg') no-repeat right -240px bottom 45px / 755px 890px;opacity:.05}
}

/* Big quote marks — live .quotes__item p:before/:after: quote.svg (75x61, 10% navy),
   opening mark 75px left of / 30px above the quote, closing mark mirrored
   75px right of / 30px below the quote text (above the cite line). */
.rh-bigquote blockquote:before,.rh-bigquote blockquote:after{content:"" !important;position:absolute !important;width:75px !important;height:61px !important;
  font-size:0 !important;line-height:0 !important;color:transparent !important;background:url('assets/img/quote.svg') no-repeat center / 75px 61px !important}
.rh-bigquote blockquote:before{left:-75px !important;top:-30px !important;right:auto !important;bottom:auto !important;transform:none !important}
.rh-bigquote blockquote:after{right:-75px !important;bottom:22px !important;left:auto !important;top:auto !important;transform:scale(-1) !important}

/* ============================================================
   QUOTES IN GEORGIA ITALIC (client request). Quote text only —
   attribution / cite lines stay Lato uppercase.
   ============================================================ */
.rh-grid__item--quote .rh-grid__quote,
.rh-bigquote blockquote,
.rh-content blockquote>p:first-child,.rh-content blockquote>*:not(:last-child),
.rh-single__main blockquote>p:first-child,.rh-single__main blockquote>*:not(:last-child),
.dynamic-quote .quote-text{font-family:Georgia,'Times New Roman',Times,serif !important;font-style:italic !important;font-weight:400 !important}
.rh-content blockquote>p:first-child em,.rh-single__main blockquote>p:first-child em{font-family:inherit !important}
.rh-content blockquote>p:first-child em,.rh-single__main blockquote>p:first-child em,.dynamic-quote .quote-text p{font-weight:inherit !important}
/* Quote attributions: plain Lato 16px at every width (as live) — not bold */
.rh-bigquote blockquote cite,.rh-bigquote cite,
.rh-content blockquote>*:last-child:not(:first-child),.rh-content blockquote cite,
.rh-single__main blockquote>*:last-child:not(:first-child),.rh-single__main blockquote cite{font-weight:400 !important;font-size:16px !important;font-family:var(--font-body) !important}
/* Quote sizes below desktop, as live: in-page quote stays 30px; big quote 22px under 1025px */
@media(max-width:900px){
  .rh-content blockquote>p:first-child:not(:last-child),.rh-content blockquote>*:not(:last-child){font-size:30px !important;line-height:42px !important}
}
@media(max-width:1024px){ .rh-bigquote blockquote{font-size:22px !important} }

/* Article title + date (single posts) – matches live content__title / content__date */
.rh-single__header{margin:0 0 30px}
.rh-single__title{margin:0}
.rh-single__date{margin:15px 0 0;font-family:Lato,sans-serif;font-weight:400;font-size:14px;letter-spacing:2px;text-transform:uppercase;color:#E71D13}
.rh-single__date i{margin-right:4px}

/* ============================================================
   NEWS LIST + TAG PAGES – matched to live (/latest-news)
   2-col photo tiles, title over image, vertical date strip,
   hover: image fades to navy + "Continue Reading" slides up.
   ============================================================ */
@media (min-width:1025px){
  .rh-newsindex{grid-template-columns:minmax(0,785px) 320px !important;gap:65px !important;max-width:1250px !important;margin-left:auto !important;margin-right:auto !important}
}
.rh-newsindex .rh-newsindex__title{font-family:"Playfair Display",Georgia,serif !important;font-weight:400 !important;font-size:48px !important;line-height:1.333 !important;color:#003e6a !important;margin:0 0 70px !important;text-transform:none !important;letter-spacing:normal !important}

.rh-newsindex .rh-newscards{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:30px !important;margin:0 !important}
@media (max-width:768px){ .rh-newsindex .rh-newscards{grid-template-columns:1fr !important} }

.rh-newscards .card{position:relative !important;display:block !important;height:360px !important;overflow:hidden !important;background:#003e6a !important;border:0 !important;border-radius:0 !important;box-shadow:none !important;padding:0 !important;margin:0 !important;text-decoration:none !important;transform:none !important}
.rh-newscards .card .ph{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;aspect-ratio:auto !important;margin:0 !important;border-radius:0 !important;background-size:cover !important;background-position:center !important;transition:opacity .35s,filter .35s !important;transform:none !important}
.rh-newscards .card .ph::after{content:"" !important;position:absolute !important;inset:0 !important;background:linear-gradient(rgba(0,0,0,0) 0%,rgba(0,0,0,.8) 100%) !important}
.rh-newscards .card:hover .ph,.rh-newscards .card:focus .ph{opacity:.15 !important;filter:saturate(0%) !important}

.rh-newscards .card .news-date{position:absolute !important;top:0 !important;left:0 !important;z-index:2 !important;display:block !important;width:110px !important;margin:0 !important;padding:5px 0 0 !important;background:#fff !important;color:#003e6a !important;transform:rotate(90deg) translateY(-25px) !important;transform-origin:left top !important;font-family:Lato,sans-serif !important;font-size:14px !important;font-weight:600 !important;line-height:20px !important;letter-spacing:2px !important;text-transform:uppercase !important;text-align:center !important;white-space:nowrap !important}

.rh-newscards .card .card-body{position:absolute !important;z-index:1 !important;left:0 !important;right:0 !important;top:340px !important;bottom:auto !important;padding:25px 45px 45px !important;background:none !important;transition:transform .35s !important}
.rh-newscards .card:hover .card-body,.rh-newscards .card:focus .card-body{transform:translateY(-100%) !important}
.rh-newscards .card h3{position:absolute !important;bottom:100% !important;left:45px !important;right:45px !important;margin:0 !important;padding:0 !important;color:#fff !important;font-family:"Playfair Display",Georgia,serif !important;font-weight:400 !important;font-size:30px !important;line-height:1.333 !important}
.rh-newscards .card p{display:none !important}
.rh-newscards .card .more{display:inline-block !important;opacity:0 !important;margin:0 !important;padding:2px 20px 0 !important;background:#fff !important;color:#003e6a !important;line-height:38px !important;border-radius:20px !important;font-family:Lato,sans-serif !important;font-size:13px !important;font-weight:400 !important;letter-spacing:1px !important;text-transform:uppercase !important;text-decoration:none !important;transition:opacity .35s,background-color .35s,color .35s !important}
.rh-newscards .card:hover .more,.rh-newscards .card:focus .more{opacity:1 !important}
.rh-newscards .card .more:hover{background:#e71d13 !important;color:#fff !important}

/* Pagination – round numbers, current page red */
.rh-newsindex .news-pagination{margin-top:25px !important;text-align:center !important}
.rh-newsindex .news-pagination .nav-links{display:flex !important;justify-content:center !important;align-items:center !important;gap:5px !important;flex-wrap:wrap !important}
.rh-newsindex .news-pagination .page-numbers{display:inline-block !important;box-sizing:border-box !important;width:35px !important;height:35px !important;line-height:31px !important;padding:0 !important;margin:0 !important;border:2px solid #e6e6e6 !important;border-radius:50% !important;background:transparent !important;color:#4a4a4a !important;font-family:Lato,sans-serif !important;font-size:16px !important;font-weight:400 !important;text-align:center !important;text-decoration:none !important;transition:background-color .35s !important}
.rh-newsindex .news-pagination a.page-numbers:hover{background:#e6e6e6 !important}
.rh-newsindex .news-pagination .page-numbers.current{background:#e71d13 !important;border-color:#e71d13 !important;color:#fff !important}
.rh-newsindex .news-pagination .page-numbers.dots{border:0 !important;width:auto !important}

/* Filter News sidebar */
.rh-newsindex .rh-tags h2{font-family:"Playfair Display",Georgia,serif !important;font-weight:400 !important;font-size:30px !important;line-height:1.333 !important;color:#aaa !important;margin:0 0 20px !important;text-transform:none !important;letter-spacing:normal !important}
.rh-newsindex .rh-tags__list{display:block !important;list-style:none !important;margin:0 !important;padding:0 !important}
.rh-newsindex .rh-tags__list li{display:inline-block !important;vertical-align:top !important;margin:0 5px 5px 0 !important;padding:0 !important;width:auto !important}
.rh-newsindex .rh-tags__list li::before{content:none !important}
.rh-newsindex .rh-tags__list a{display:block !important;box-sizing:border-box !important;height:50px !important;line-height:44px !important;padding:2px 18px 0 20px !important;border:2px solid #e6e6e6 !important;border-radius:25px !important;background:#fff !important;color:#4a4a4a !important;font-family:Lato,sans-serif !important;font-size:14px !important;font-weight:400 !important;letter-spacing:2px !important;text-transform:uppercase !important;text-align:center !important;text-decoration:none !important;transition:background-color .35s !important}
.rh-newsindex .rh-tags__list a:hover{background:#e6e6e6 !important}
.rh-newsindex .rh-tags__list a.is-active{background:#e71d13 !important;border-color:#e71d13 !important;color:#fff !important}

/* ============================================================
   SINGLE NEWS ARTICLE – matched to live (/latest-news/...)
   785px article + 320px tiles, Share/Tags footer
   ============================================================ */
@media (min-width:1025px){
  .rh-single__wrap{max-width:1250px !important;gap:65px !important;justify-content:center !important}
  .rh-single__main{flex:0 0 785px !important;width:785px !important;max-width:785px !important}
  .rh-single__side{flex:0 0 320px !important;width:320px !important;max-width:320px !important}
}
.rh-single__side-title{display:none !important}
.rh-side-post{position:relative !important;display:block !important;height:400px !important;width:100% !important;max-width:100% !important;aspect-ratio:auto !important;margin:0 0 40px !important;padding:0 !important;overflow:hidden !important;background:#003e6a !important;border:0 !important;border-radius:0 !important;box-shadow:none !important;text-decoration:none !important}
.rh-side-post__img{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;background-size:cover !important;background-position:center !important;border-radius:0 !important;transition:opacity .35s,filter .35s !important}
.rh-side-post__img::after{content:"" !important;position:absolute !important;inset:0 !important;background:linear-gradient(rgba(0,0,0,0) 0%,rgba(0,0,0,.8) 100%) !important}
.rh-side-post:hover .rh-side-post__img{opacity:.15 !important;filter:saturate(0%) !important}
.rh-side-post__date{position:absolute !important;top:0 !important;left:0 !important;z-index:2 !important;display:block !important;width:110px !important;margin:0 !important;padding:5px 0 0 !important;background:#fff !important;color:#003e6a !important;transform:rotate(90deg) translateY(-25px) !important;transform-origin:left top !important;font-family:Lato,sans-serif !important;font-size:14px !important;font-weight:600 !important;line-height:20px !important;letter-spacing:2px !important;text-transform:uppercase !important;text-align:center !important;white-space:nowrap !important;writing-mode:horizontal-tb !important}
.rh-side-post__title{position:absolute !important;z-index:1 !important;left:45px !important;right:45px !important;bottom:35px !important;top:auto !important;margin:0 !important;padding:0 !important;background:none !important;color:#fff !important;font-family:"Playfair Display",Georgia,serif !important;font-weight:400 !important;font-size:24px !important;line-height:1.333 !important;text-transform:none !important;letter-spacing:normal !important}

.rh-single__tagsinline{margin-top:30px;font-family:Lato,sans-serif;font-size:12.8px;color:#4a4a4a}
.rh-single__tagsinline a{color:#4a4a4a;text-decoration:none}
.rh-single__tagsinline a:hover{text-decoration:underline}
.rh-single__footer{display:flex;margin-top:25px;padding-top:25px;border-top:1px solid #e6e6e6}
.rh-single__share,.rh-single__footer .rh-single__tags{flex:0 0 50%;margin:0 !important;padding:0 !important;border:0 !important}
.rh-single__footer h3{font-family:"Playfair Display",Georgia,serif !important;font-weight:400 !important;font-size:30px !important;line-height:1.333 !important;color:#003e6a !important;margin:0 0 10px !important;text-transform:none !important;letter-spacing:normal !important}
.rh-single__share ul{list-style:none;margin:0;padding:0;display:flex;gap:5px}
.rh-single__share li,.rh-single__footer .rh-single__tags li{margin:0;padding:0}
.rh-single__share li::before,.rh-single__footer .rh-single__tags li::before{content:none !important}
.rh-single__share a{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:50px;height:50px;border:2px solid #e6e6e6;border-radius:50%;color:#ee352a;font-size:14px;text-decoration:none;transition:background-color .35s}
.rh-single__share a:hover{background:#e6e6e6}
.rh-single__footer .rh-single__tags ul{list-style:none !important;margin:0 !important;padding:0 !important;display:block !important}
.rh-single__footer .rh-single__tags li{display:inline-block !important;vertical-align:top;margin:0 5px 5px 0 !important}
.rh-single__footer .rh-single__tags a{display:block !important;box-sizing:border-box;height:50px;line-height:44px;padding:2px 18px 0 20px !important;border:2px solid #e6e6e6 !important;border-radius:25px !important;background:#fff !important;color:#4a4a4a !important;font-family:Lato,sans-serif;font-size:14px !important;font-weight:400;letter-spacing:2px !important;text-transform:uppercase !important;text-decoration:none !important;transition:background-color .35s}
.rh-single__footer .rh-single__tags a:hover{background:#e6e6e6 !important}
@media (max-width:768px){ .rh-single__footer{flex-direction:column;gap:25px} }


/* ============================================================
   VACANCIES – matched to live (/vacancies)
   Grey job card + "View Job" pill; job detail shown via :target
   ============================================================ */
.rh-content ul.rh-vacancies{list-style:none !important;margin:30px 0 0 !important;padding:0 !important;display:flex;flex-wrap:wrap;gap:30px}
.rh-content ul.rh-vacancies>li.rh-vacancy{position:relative !important;box-sizing:border-box !important;flex:0 0 100%;max-width:100%;height:400px !important;margin:0 !important;padding:35px !important;background:#e6e6e6 !important;list-style:none !important}
.rh-content ul.rh-vacancies>li.rh-vacancy::before{content:none !important;display:none !important}
@media (min-width:769px){ .rh-content ul.rh-vacancies>li.rh-vacancy{flex-basis:calc(50% - 15px);max-width:calc(50% - 15px)} }
.rh-vacancy h3{font-family:"Playfair Display",Georgia,serif !important;font-weight:400 !important;font-size:30px !important;line-height:1 !important;color:#e71d13 !important;margin:0 0 15px !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;text-transform:none !important;letter-spacing:normal !important}
.rh-vacancy span,.rh-vacancy-detail__meta{display:block !important;font-family:Lato,sans-serif !important;font-size:14px !important;font-weight:400 !important;line-height:15px !important;color:#a5a5a5 !important;text-transform:uppercase !important;letter-spacing:2px !important}
.rh-vacancy span:first-of-type{margin-bottom:5px !important}
.rh-vacancy p:has(>span),.rh-vacancy-detail p:has(>.rh-vacancy-detail__meta){margin:0 !important;height:auto !important;line-height:15px !important}
.rh-vacancy p:has(>span)::after{content:none !important}
.rh-vacancy p:has(>span) br,.rh-vacancy-detail p:has(>.rh-vacancy-detail__meta) br{display:none !important}
.rh-vacancy>p:not(:has(>span)){position:relative !important;margin:15px 0 0 !important;height:175px !important;overflow:hidden !important;font-size:14px !important;line-height:1.6 !important;color:#4a4a4a !important}
.rh-vacancy>p:not(:has(>span))::after{content:"" !important;position:absolute !important;right:0 !important;bottom:0 !important;width:22px !important;height:1.6em !important;background:linear-gradient(to right,rgba(230,230,230,0),#e6e6e6) !important}
.rh-vacancy__footer{position:absolute !important;left:35px !important;right:35px !important;bottom:35px !important}
.rh-vacancy__btn,.rh-vacancy-detail__back a{display:inline-block !important;box-sizing:border-box !important;height:50px !important;line-height:48px !important;padding:2px 30px 0 !important;border-radius:25px !important;background:#e71d13 !important;color:#fff !important;font-family:Lato,sans-serif !important;font-size:14px !important;font-weight:400 !important;letter-spacing:1px !important;text-transform:uppercase !important;text-decoration:none !important;border:0 !important;transition:background-color .35s !important}
.rh-vacancy__btn:hover,.rh-vacancy__btn:focus{background:#003e6a !important;color:#fff !important}

/* Job detail – hidden until "View Job" is clicked */
.rh-vacancy-detail{display:none}
.rh-vacancy-detail:target{display:block;scroll-margin-top:160px}
.rh-content:has(.rh-vacancy-detail:target)>.content__title,
.rh-content:has(.rh-vacancy-detail:target)>.rh-text:not(:has(.rh-vacancy-detail)),
.rh-content:has(.rh-vacancy-detail:target) .rh-vacancies{display:none !important}
.rh-vacancy-detail__title{font-family:"Playfair Display",Georgia,serif !important;font-weight:400 !important;font-size:48px !important;line-height:1.333 !important;color:#003e6a !important;margin:0 !important;text-transform:none !important;letter-spacing:normal !important}
.rh-vacancy-detail__meta{margin:15px 0 5px !important}
.rh-vacancy-detail__meta~.rh-vacancy-detail__meta{margin-top:0 !important;margin-bottom:25px !important}
.rh-vacancy-detail p{font-family:Lato,sans-serif !important;font-size:16px !important;line-height:1.8 !important;color:#4a4a4a !important}
.rh-vacancy-detail__doc{margin:0 0 10px !important}
.rh-vacancy-detail__doc a,.rh-vacancy-detail__doc a strong{font-weight:700 !important;color:#003e6a !important;text-decoration:none !important}
.rh-vacancy-detail__doc a:hover{color:#e71d13 !important}
.rh-vacancy-detail__back{margin-top:30px !important}
.rh-vacancy-detail__back a{background:#003e6a !important}
.rh-vacancy-detail__back a:hover{background:#e71d13 !important}
/* end vacancies */

/* Sidebar – current page's own sub-pages (e.g. Music > Music Teachers) */
.rh-subnav ul.rh-subnav__children{list-style:none !important;margin:0 !important;padding:0 !important;background:#e6e6e6 !important}
.rh-subnav ul.rh-subnav__children li{margin:0 !important;padding:0 !important}
.rh-subnav ul.rh-subnav__children li::before{content:none !important}
.rh-subnav:not(.rh-contactform) li.current ul.rh-subnav__children li a{padding-left:75px !important;background:transparent !important;color:#4a4a4a !important}
.rh-subnav:not(.rh-contactform) li.current ul.rh-subnav__children li a:hover{background:#003e6a !important;color:#fff !important}

/* Classic [gallery] in news articles – thumbnail grid like live */
.gallery{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:10px !important;margin:30px 0 !important;clear:both}
.gallery br{display:none !important}
.gallery .gallery-item{width:auto !important;margin:0 !important;padding:0 !important;float:none !important}
.gallery .gallery-icon,.gallery .gallery-icon a{display:block !important;margin:0 !important}
.gallery img{display:block !important;width:100% !important;height:auto !important;aspect-ratio:1/1;object-fit:cover;border:0 !important;margin:0 !important;float:none !important}
@media (max-width:600px){ .gallery{grid-template-columns:repeat(2,minmax(0,1fr)) !important} }

/* Interactive map popups – headings in the darker brand blue */
.mapItem h2.entry-title,.mapItem .entry-title{color:#003e6a !important}

/* rh-bleed-fix: the full-width grey band behind the news carousel uses 100vw, which includes the scrollbar and caused a small horizontal scroll bar. Clip it at the section edge. */
.rh-section:has(.rh-carousel){overflow-x:clip}

/* rh-video-lightbox-size: home hero video lightbox - large, 16:9, centred, frame fills the box */
#rhLightbox .rh-lightbox__inner{width:min(92vw,calc(86vh * 16 / 9),1500px);}
#rhLightbox #rhLightboxFrame{width:100%;height:100%;}
#rhLightbox #rhLightboxFrame iframe{display:block;width:100%;height:100%;border:0;}

/* rh-gallery-lightbox-nav: prev/next arrows + counter for the image lightbox */
.rh-lightbox .rh-lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:52px;height:52px;border:0;border-radius:50%;background:rgba(255,255,255,.15);color:#fff;font-size:1.4rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;}
.rh-lightbox .rh-lightbox__nav:hover,.rh-lightbox .rh-lightbox__nav:focus-visible{background:rgba(255,255,255,.35);}
.rh-lightbox .rh-lightbox__prev{left:24px;}
.rh-lightbox .rh-lightbox__next{right:24px;}
.rh-lightbox .rh-lightbox__count{position:absolute;bottom:20px;left:0;right:0;text-align:center;color:#fff;font-size:.9rem;letter-spacing:.05em;}
.rh-lightbox.rh-lightbox--single .rh-lightbox__nav,.rh-lightbox.rh-lightbox--single .rh-lightbox__count{display:none;}
@media (max-width:700px){.rh-lightbox .rh-lightbox__nav{width:42px;height:42px;}.rh-lightbox .rh-lightbox__prev{left:8px;}.rh-lightbox .rh-lightbox__next{right:8px;}}

/* rh-quote-mobile: smaller quote text on phones */
@media (max-width:600px){
.rh-grid__item--quote .rh-grid__quote{font-size:1.15rem !important;line-height:1.4}
.rh-bigquote blockquote{font-size:1.2rem !important;line-height:1.4}
.rh-content blockquote>p:first-child,.rh-content blockquote>*:not(:last-child),.rh-single__main blockquote>p:first-child,.rh-single__main blockquote>*:not(:last-child){font-size:1.05rem !important;line-height:1.45}
.dynamic-quote .quote-text,.dynamic-quote .quote-text p{font-size:1.1rem !important;line-height:1.45}
}

/* rh-sep-centre: keep the red menu separators centred in the gap at every width.
   Gap = 2 x the li side padding (10px / 12px / 25px by breakpoint); dash is 6px wide. */
@media(min-width:901px){ .navCol--left .nav-menu>li:nth-child(2)>a::before,.navCol--left .nav-menu>li:nth-child(3)>a::before,.navCol--right .nav-menu>li:nth-child(5)>a::before,.navCol--right .nav-menu>li:nth-child(6)>a::before,.navCol--right .nav-menu>li:nth-child(7)>a::before{left:-13px !important} }
@media(min-width:1301px){ .navCol--left .nav-menu>li:nth-child(2)>a::before,.navCol--left .nav-menu>li:nth-child(3)>a::before,.navCol--right .nav-menu>li:nth-child(5)>a::before,.navCol--right .nav-menu>li:nth-child(6)>a::before,.navCol--right .nav-menu>li:nth-child(7)>a::before{left:-15px !important} }
@media(min-width:1600px){ .navCol--left .nav-menu>li:nth-child(2)>a::before,.navCol--left .nav-menu>li:nth-child(3)>a::before,.navCol--right .nav-menu>li:nth-child(5)>a::before,.navCol--right .nav-menu>li:nth-child(6)>a::before,.navCol--right .nav-menu>li:nth-child(7)>a::before{left:-28px !important} }
