@charset "utf-8";
@import url('../gfonts/fonts.css');
*:focus {
    outline: none;
}
body {max-width: 100%;overflow-x: hidden!important}

body{background:#fff;position:relative;padding:0;margin:0;font-size:17px;line-height: 1.2rem;color: #1f1914;letter-spacing: .45px;-webkit-font-smoothing:antialiased; overflow-x:hidden; font-family:"Noto Sans", sans-serif;font-weight: 400}a,a:active,a:link,a:hover{text-decoration:none!important;-webkit-transition:all .3s ease;transition:all .3s ease;outline:none!important;}h1,h2,h3,h4,h5,h6,.h6{font-family: "Poppins", sans-serif;font-weight: normal; font-optical-sizing: auto;font-style: normal;-webkit-transition: color .5s ease;-moz-transition: color .5s ease;-ms-transition: color .5s ease;-o-transition: color .5s ease;transition: color .5s ease;outline: none;color:inherit} p{font-weight: normal; text-align: inherit; margin-bottom: 20px;margin-top: 0px;line-height: 1.7;text-align: justify} spacer:before{content:"\2044";display:inline;margin:0px 5px}spacer{display:inline;margin:0px 5px} .npm{ padding:0; margin: 0}.white-text{color:#fff!important}.red-text{color: #ad2627!important}.orange-text{color: #f15e2e!important}.p70{padding:70px 0} 
ul {list-style-type: none;padding-left: 0;margin: 0} button{border:0!important; outline: 0!important}.black-text{color:#010101}  .navbar-toggler {color: transparent} .container-fluid1{padding-left:45px; padding-right:45px} .text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.ml-auto, .mx-auto {margin-left: auto!important} .h2,h2{font-size:2.5rem}.f900{font-weight:900;margin-bottom:20px}.f600{font-weight:600;margin-bottom:20px}

.copyright,footer{position:relative}.copyright,.copyright a,footer,footer a{color:#fff}.copyright{display:block;background-color:#ac1f23;padding:10px 0;z-index:1;overflow:hidden;border-top:1px solid #ffffff26;font-size:12px}.copyright:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:url(../images/site-footer-shape.png) center center/cover no-repeat;opacity:.1;z-index:-1}footer{background:url(../images/footer-bird.png) center right/20% no-repeat #ac1f23;font-size:14px;padding:35px 0;border-top: 5px solid #f7a51b}.copyright a:hover,footer a:hover{color:#f7a51b}footer h4{font-size: 1rem}

.foot-icon i,ul.flinks li a:hover{color:#f7a51b}.foot-icon{display:flex;margin-bottom:12px}.foot-icon i{padding:3px 10px 5px 5px;float:left;display:inline-flex}.foot-icon:last-child{margin-bottom:0}ul.flinks li{width:100%;position:relative}ul.flinks li a{display:block;color:#fff;padding:10px 0;line-height:.75rem;position:relative;border-bottom:0 solid #ffffff1f}ul.flinks li a:after{content:"";height:1px;background:#f7a51b;position:absolute;top:100%;left:0;right:0;transform-origin:0 50%;transform:scaleX(0);transition:transform .4s cubic-bezier(.7,0,.3,1);width:15px}ul.flinks li a:hover:after{transform:scaleX(1)}.linef{background:url(../images/line.png) center top repeat-y}.social-links{margin-top:5px}.social-links li{display:inline-block}.social-links a{width:45px;height:45px;border-radius:50%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border:1px solid #fff;color:#fff;margin:0 5px;font-size:15px}.social-links a:hover{background-color:#f7a51b;border-color:#f7a51b;color:#ac1f23} .h4-headding{font-size: 1.5rem;font-family: "Poppins", sans-serif;}

.scroll-top{position:fixed;right:20px;bottom:20px;width:40px;height:40px;background:#f05725;border-radius:50%;text-align:center;line-height:40px;color:#fff!important;font-size:20px;z-index:999;cursor:pointer;display:none}.scroll-top svg{position:absolute;top:0;left:0;transform:rotate(-90deg)}.scroll-top path{stroke:#f98a17;stroke-width:5;stroke-linecap:round;fill:none;stroke-dasharray:307.919;stroke-dashoffset:307.919;transition:stroke-dashoffset .1s linear}

.animated-svg{display:inline-block;width:3vw;max-width:30px;height:auto}.animated-svg svg{width:100%;height:auto;animation:2.5s ease-in-out infinite alternate floatWave}@keyframes floatWave{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5%) scale(1.25)}}

.red-box{background: #ad2627;padding:30px;color:#fff;border-radius:1rem;position:relative}.orange-box{background-color:#f15e2e;padding:30px;color:#fff;border-radius:1rem;position:relative}.orange-box::after{position:absolute;content:"";width:90%;height:6px;top:-3px; left:50%;transform:translateX(-50%);background:#f8a326;border-radius:100px}.icon-c{padding:16px;background:#fff;font-size:28px;width:60px;height:60px;text-align:center;border-radius:50%}.r-border{border-radius: 20px} .academy-box2 {background: #f15e2e;border-radius: 10px;padding: 21px 21px;filter: drop-shadow(0px 4.8px 24.4px rgba(19, 16, 34, 0.1));color: #1f1914}.academy-box3 {background: #fff0e5;border-radius: 10px;padding: 21px 21px} .r-border{border-radius: 20px} .red-bg{background-color: #ad2627; background-image: url(../images/base-image.png);background-repeat:no-repeat; padding: 50px 0;}.admission-box{padding: 50px 40px 40px 40px;background: #fff;box-shadow: 0px 4px 30px 0px rgba(0, 0, 0, 0.1);border-radius: 10px}.admission-form-image img {max-width: 100%; margin-left:50px;margin-top:50px;object-fit: cover;border-radius: 10px}.admission-text {padding:20px 50px}


.video-wrapper { position: relative;width: 100%;padding-bottom: 56.25%;overflow: hidden}.video-wrapper iframe {position: absolute;top: 0;left: 0;width: 100%;height: 100%}


.input100,input,textarea{background:#fff;outline:0;font-size:14px}.input100{display:block;width:100%;margin-bottom:20px;color:#333;line-height:1.2;border:1px solid #ccc;padding:15px}textarea.input100{min-height:162px;padding-top:22px;padding-bottom:15px}input,textarea{font-weight:400;height:auto;line-height:28px;-webkit-box-shadow:none;box-shadow:none;padding:5px 15px;border:1px solid #ddd;width:100%!important;border-radius:5px;margin-bottom:5px}input:focus,textarea:focus{border-color:#ab0101}.form-label {display: inline-block;font-size: 13px;font-weight: bold;margin-bottom: 10px}

.rts-theme-btn{font-weight:500;display:inline-flex;justify-content:center;align-items:center;position:relative;padding:15px 20px;overflow:hidden;transition:.5s;z-index:1;background:#ab0101;color:#fff;border-radius:8px;font-size: 15px}.rts-theme-btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:#f15e2e;z-index:-1;opacity:1;border-radius:inherit;transition:.5s}.rts-theme-btn:hover{color:#fff}.rts-theme-btn:hover::before{left:0}.rts-theme-btn i{transform:rotate(-35deg);margin-left:10px;transition:.5s}.rts-theme-btn:hover i{transform:rotate(0)!important}

.pages-banner-area{position:relative;width:100%;height:280px;overflow:hidden}.pages-banner-area .ban-img{width:100%;height:100%;object-fit:cover}.pages-banner-area::before{content:"";position:absolute;inset:0;z-index:1;background:rgb(0 0 0 / 65%)}.pages-title{position:absolute;bottom:0;left:0;right:0;z-index:2;text-align:center}.pages-title h1{font-size:56px;margin-bottom:10px;color:#fff;font-weight:600}ul.breadcrumb{padding:10px 30px;margin:0 auto;justify-content:center;background:#fff;border-radius:10px 10px 0 0;width:fit-content;display:flex}ul.breadcrumb li{list-style-type:none;text-transform:uppercase;color:#1f1914;font-weight:700;font-size:14px}ul.breadcrumb>li+li:before{padding:0 5px 0 8px;color:#ccc;content:"/\00a0"}ul.breadcrumb a{font-weight:700;color:#ad2627}

.academy-box3,.academy-box4{background:#fff0e5;border-radius:10px;margin-bottom:20px;min-height:200px}.academy-box3{padding:30px}.academy-box4{padding:0;display:flex;gap:20px;align-items:flex-start}.icon{flex:0 0 75px;height:85px;background:#f2622c;display:flex;justify-content:center;align-items:center;transition:.3s}.academy-box4:hover .icon{background:#ab0101;border-radius:0 0 35px}.icon img{width:70px;height:auto}.academy-content{flex:1;padding:30px 25px 30px 0}

ul.square{list-style-type:none;margin-bottom:0;padding-left:0;padding-top: 13px;}ul.square li{position:relative;list-style:none;padding-left:1.5em;margin-bottom:.35em;line-height:normal}ul.square li::before {color: #ac1f23;position: absolute;content: '\25A0';left: 1px;top: 0}

.accordion{margin-top:20px}.accordion .card{border:none;margin-bottom:3px}.accordion .card h6{background:url(../images/arrow56-512.webp) calc(100% - 10px) center no-repeat #fff;background-size:15px;cursor:pointer;font-size:15px;border:1px solid #efefef;padding:10px 30px 10px 15px;color: #ad2627;font-weight: bold}.accordion .card h6.collapsed{background-image:url(../images/expand2-256.webp);background-color:#fff;color: #1f1914}.accordion .card-body{color: #1f1914;padding:20px}

.choose-title {font-size: 50px;font-weight: 300;letter-spacing: -1.2px;line-height: 1.18; margin-bottom: 50px}
.academics, .academics1{position:relative;transition:.5s; margin-bottom: 20px}.academics-content{padding:25px;border-radius:20px;background:#ad2627;color:#fff;font-size:14.5px} .academics::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:20px;transition:transform .3s;z-index:2}.academics:hover::after{border:2px solid #5c0808;transform:rotate(3deg)}
.academics-content1{padding:25px;border-radius:20px;background:#f15e2e;color:#fff;font-size:14.5px} .academics1::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:20px;transition:transform .3s;z-index:2}.academics1:hover::after{border:2px solid #ab340d;transform:rotate(3deg)}

.icon-1,.icon-2{background:#fff;display:block;width:90px;height:90px;padding:10px;border-radius:50%;border:2px solid transparent;margin-bottom:10px}.academics1:hover .icon-1,.academics:hover .icon-1{background:#f15e2e;border:2px solid #fff}.academics1:hover .icon-2,.academics:hover .icon-2{background:#ad2627;border:2px solid #fff}.academics1:hover .icon-1 img,.academics1:hover .icon-2 img,.academics:hover .icon-1 img,.academics:hover .icon-2 img{filter:brightness(9) saturate(0)}

.counter-base {background: url(../images/counter-bg.png) top center no-repeat;background-size: cover;transition:all .3s ease;}.why-box{position:relative;background-color:#fff;padding:10px 20px;margin-bottom:20px;border-radius:1rem;text-align:center;border:1px solid #fff;-webkit-transition:.3s;transition:.3s;font-size:14px}.why-box:focus,.why-box:hover{background-color:#ac1f25;color:#fff}.why-box p{margin-bottom:0; text-align: center}.why-box figure{position:relative;width:100%;-ms-transition:transform .6s;-o-transition:transform .6s;-webkit-transition:transform .6s;transition:transform .6s;transform-style:preserve-3d}.why-box:focus figure img,.why-box:hover figure img{filter:brightness(9) saturate(0)}
.counter_div{background:#fff;border-radius:.8rem;box-shadow:0 0 10px 9px rgb(0 0 0 / 7%);padding:25px;width:100%;transition:.5s;margin-bottom:25px}.counter_div p{margin-bottom:0}.counter_div1{background:#f15e2e;color:#fff}.counter_div1 .feature-text span{color:#fff}.counter_div:hover{box-shadow:0 0 10px 9px rgb(125 125 125 / 30%)}.feature-text span{color:#f15e2e} .counter_div img{width:100px; height:auto; padding: 10px} .counter_div:hover img{animation: rotation 2s linear;}.counter_div2 p{text-align: left!important}

@keyframes rotation {
  50% {
    transform: rotateY(180deg);
  }
  100% {
    transform: rotateY(0deg);
  }
}


.admi-side{position: fixed;right: 0px;top: 55%;z-index: 999}.admi-side .block_text{position: relative;color: #fff;cursor: pointer;text-align: center;background-color: #f15e2e;padding: 8px 10px;text-transform: uppercase;border-radius: 0px;transition: background-color .5s;}.admi-side .block_text a{color:#fff}

.flip-card{perspective:1000px;height:380px;margin-bottom:20px}.flip-card-inner{position:relative;width:100%;height:100%;transition:transform .8s;transform-style:preserve-3d}.flip-card-back,.flip-card:hover .flip-card-inner{transform:rotateY(180deg)}.flip-card-back,.flip-card-front{position:absolute;inset:0;backface-visibility:hidden;border-radius:20px;overflow:hidden}.flip-card-front{background:#fff;z-index:2}.flip-card-front img{position:relative;width:100%;height:100%;object-fit:cover}.flip-card-front img::before{position:absolute;content:"";width:100%;height:100%;left:0;bottom:-30px;background:linear-gradient(to top,#282f3b 6%,rgba(0,0,0,0) 70%);z-index:9;transition:.5s;-moz-transition:.5s;-o-transition:.5s;-ms-transition:.5s}.flip-card-front h3{position:absolute;width:100%;height:auto;padding:10px 25px;bottom:0;left:0;font-weight:700;font-size:18px;z-index:9;color:#fff;background:#ac1f23}.flip-card-back{background:url(../images/footer-bird.png) bottom right/30% no-repeat #eb6339;color:#fff;text-align:center;display:flex;align-items:center;justify-content:center;padding:25px}

.post-thumbnail{position:relative;overflow:hidden;margin-bottom:20px;border-radius:15px}.post-thumbnail .over-layer{position:absolute;top:-10px;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);transform:translateY(-100%);transition:.5s linear}.post-thumbnail:hover .over-layer{height:110%;transform:translateY(0)}.post-thumbnail .over-layer .social-links{padding:0;margin:0;list-style:none;text-align:center;position:relative;top:45%}.post-thumbnail .social-links li{display:inline-block;margin-right:10px}.post-thumbnail .social-links li a{border:1px solid #f49d0d;padding:5px;background:#f49d0d;FONT-WEIGHT:200;font-size:25px;border-radius:50%;color:#000}.post-thumbnail img{display:block;margin:0 auto;-webkit-box-shadow:0 13px 43px rgba(37,46,89,.23);box-shadow:0 13px 43px rgba(37,46,89,.23);width:100%;height:auto}


header{background:#fff;padding:0;width: 100%}.header {
  background: #fff;
  padding: 0;
  width: 100%;
  position: relative;
  transition: all 0.3s ease;
  z-index: 9999;
}

.header.fixed {
  position: fixed;
  top: 0;
  width: 100%;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,0.15);
}

.top-nav {background: #ac1f23;color: #fff;padding: 5px 0;font-size: 13px; border-bottom:2px solid #f7a51b}
.header-top{float:right}.header-top li,.header-top li a,.header-top li a i{display:inline-block}.header-top li a{line-height:15px;padding:0 8px;border-right:1px solid #efefef6b;color:#fff;font-size:12px}.header-top li:last-child a{border-right:0}

.logo {
    padding: 5px;
    top: -36px;
    width: 120px;
    position: absolute;
    background: #fff;
    box-shadow: 0 0 30px rgb(0 0 0 / 20%);
}

.header.fixed .logo {
    padding: 5px;
    top: -6px;
    width: 85px;
    position: absolute;
    background: #fff;
    box-shadow: 0 0 30px rgb(0 0 0 / 20%);
}

.header {
  display: block;
  width: 100%;
  position: relative;
  z-index: 99;
  padding: 3px 10px;
}
.header .item-left {
  flex: 0 0 15%;
}
.header .logo a {
  font-size: 30px;
  color: #000000;
  font-weight: 700;
  text-decoration: none;
}
.header .item-center {
  flex: 0 0 85%; float: right
}
.header .item-right {
  flex: 0 0 15%;
  display: flex;
  justify-content: flex-end;
}
.header .menu-main{float: right}
.header .item-right a {
  text-decoration: none;
  font-size: 16px; line-height: 40px;
  color: #fff; font-weight: bold;
  display: inline-block; background: #050c2a;
  margin-left: 10px; padding: 10px 15px;
  transition: color 0.3s ease;
}
.header .menu > ul > li {
  display: inline-block;
  line-height: 60px;
  margin-left: 15px;
}
.header .menu > ul > li > a {
  font-size: 14px;
  font-weight: bold;
  color: #1f1914;
  position: relative;
  text-transform: uppercase;
  transition: color 0.3s ease;
}
.header .menu > ul > li .sub-menu {
  position: absolute;
  z-index: 500;
  background-color: #ffffff;
  box-shadow: -2px 2px 70px -25px rgba(0, 0, 0, 0.3);
  padding: 20px 30px;
  transition: all 0.5s ease;
  margin-top: 25px;
  opacity: 0;
  visibility: hidden;
}
@media (min-width: 992px) {
  .header .menu > ul > li.menu-item-has-children:hover .sub-menu {
    margin-top: 0;
    visibility: visible;
    opacity: 1;
  }
}
.header .menu > ul > li .sub-menu > ul > li {
  line-height: 1;
}
.header .menu > ul > li .sub-menu > ul > li > a {
  display: inline-block;
  padding: 10px 0;
  font-size: 15px;
  color: #555555; font-weight: bold;
  transition: color 0.3s ease;
  text-decoration: none;
  text-transform: capitalize;
}
.header .menu > ul > li .single-column-menu {
  min-width: 250px;
  max-width: 350px;
}
.header .menu > ul > li .sub-menu.mega-menu > .list-item > ul > li {
  line-height: 1;
  display: block;
}
.header .menu > ul > li .sub-menu.mega-menu > .list-item > ul > li > a {
  padding: 10px 0;
  display: inline-block;
  font-size: 15px; line-height: 20px; font-weight: bold;
  color: #555555;
  transition: color 0.3s ease;
}
.header .menu > ul > li .sub-menu.mega-menu {
  left: 50%;
  transform: translateX(-50%);
}

.header .menu > ul > li .sub-menu.mega-menu-column-4, .header .menu > ul > li .sub-menu.mega-menu-column-3 {
  max-width: 1100px;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  padding: 20px 15px;
}
.header .menu > ul > li .sub-menu.mega-menu-column-4 > .list-item {
  flex: 0 0 25%;
  padding: 0 15px;
}.header .menu > ul > li .sub-menu.mega-menu-column-3 > .list-item {
  flex: 0 0 33%;
  padding: 0 15px;
}
.header .menu > ul > li .sub-menu.mega-menu-column-4 > .list-item .title, .header .menu > ul > li .sub-menu.mega-menu-column-3 > .list-item .title {
  font-size: 16px;
  color: #2bace1;
  font-weight: 500;
  line-height: 1;
  padding: 10px 0;
}
.header
  .menu
  > ul
  > li
  .sub-menu.mega-menu-column-4
  > .list-item.text-center
  .title {
  text-align: center;
}  .sub-menu.mega-menu-column-3
  > .list-item.text-center
  .title {
  text-align: center;
}
.header .menu > ul > li .sub-menu.mega-menu-column-4 > .list-item img {
  max-width: 100%;
  width: 100%;
  vertical-align: middle;
  margin-top: 10px;
  /*height: 300px;*/
  object-fit: cover;
}
.header .menu > ul > li .sub-menu.mega-menu > .list-item > ul > li > a:hover,
.header .menu > ul > li .sub-menu > ul > li > a:hover,
.header .item-right a:hover,
.header .menu > ul > li:hover > a {
  color: #ac1f23;
}
.mobile-menu-head,
.mobile-menu-trigger {
  display: none;
}
/*responsive*/
@media (max-width: 991px) {
	.header .menu-main {
    float: inherit;
}
  .header .item-center {
    order: 3;
    flex: 0 0 100%;
  }
  .header .item-left {
    flex: 0 0 45%;
  }  .header .item-right {
    flex: 0 0 25%;
  }
  .v-center {
    justify-content: space-between;
  }
  .header .mobile-menu-trigger {
    display: flex;
    height: 30px;
    width: 30px;
    margin-left: 15px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
  }
  .header .mobile-menu-trigger span {
    display: block;
    height: 2px;
    background-color: #333333;
    width: 24px;
    position: relative;
  }
  .header .mobile-menu-trigger span:before,
  .header .mobile-menu-trigger span:after {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #333333;
  }
  .header .mobile-menu-trigger span:before {
    top: -6px;
  }
  .header .mobile-menu-trigger span:after {
    top: 6px;
  }
  .header .item-right {
    align-items: center;
  }

  .header .menu {
    position: fixed;
    width: 320px;
    background-color: #ffffff;
    left: 0;
    top: 0;
    height: 100%;
    overflow: hidden;
    transform: translate(-100%);
    transition: all 0.5s ease;
    z-index: 1099;
  }
  .header .menu.active {
    transform: translate(0%);
  }
  .header .menu > ul > li {
    line-height: 1;
    margin: 0;
    display: block;
  }
  .header .menu > ul > li > a {
    line-height: 50px;
    height: 50px;
    padding: 0 50px 0 15px;
    display: block;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }
  .header .menu > ul > li > a i {
    position: absolute;
    height: 50px;
    width: 50px;
    top: 0;
    right: 0;
    text-align: center;
    line-height: 50px;
    transform: rotate(-90deg);
  }
  .header .menu .mobile-menu-head {
    display: flex;
    height: 50px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    justify-content: space-between;
    align-items: center;
    position: relative;
    z-index: 501;
    position: sticky;
    background-color: #ffffff;
    top: 0;
  }
  .header .menu .mobile-menu-head .go-back {
    height: 50px;
    width: 50px;
    border-right: 1px solid rgba(0, 0, 0, 0.1);
    cursor: pointer;
    line-height: 50px;
    text-align: center;
    color: #000000;
    font-size: 16px;
    display: none;
  }
  .header .menu .mobile-menu-head.active .go-back {
    display: block;
  }
  .header .menu .mobile-menu-head .current-menu-title {
    font-size: 15px;
    font-weight: 500;
    color: #000000;
  }
  .header .menu .mobile-menu-head .mobile-menu-close {
    height: 50px;
    width: 50px;
    border-left: 1px solid rgba(0, 0, 0, 0.1);
    cursor: pointer;
    line-height: 50px;
    text-align: center;
    color: #000000;
    font-size: 25px;
  }
  .header .menu .menu-main {
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
  }
  .header .menu > ul > li .sub-menu.mega-menu,
  .header .menu > ul > li .sub-menu {
    visibility: visible;
    opacity: 1;
    position: absolute;
    box-shadow: none;
    margin: 0;
    padding: 15px;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding-top: 65px;
    max-width: none;
    min-width: auto;
    display: none;
    transform: translateX(0%);
    overflow-y: auto;
  }
  .header .menu > ul > li .sub-menu.active {
    display: block;
  }
  @keyframes slideLeft {
    0% {
      opacity: 0;
      transform: translateX(100%);
    }
    100% {
      opacity: 1;
      transform: translateX(0%);
    }
  }
  @keyframes slideRight {
    0% {
      opacity: 1;
      transform: translateX(0%);
    }
    100% {
      opacity: 0;
      transform: translateX(100%);
    }
  }
  .header .menu > ul > li .sub-menu.mega-menu-column-4 > .list-item img {
    margin-top: 0;
  }
  .header
    .menu
    > ul
    > li
    .sub-menu.mega-menu-column-4
    > .list-item.text-center
    .title {
    margin-bottom: 20px;
  }  .header
    .menu
    > ul
    > li
    .sub-menu.mega-menu-column-3
    > .list-item.text-center
    .title {
    margin-bottom: 20px;
  }
  .header
    .menu
    > ul
    > li
    .sub-menu.mega-menu-column-4
    > .list-item.text-center:last-child
    .title {
    margin-bottom: 0px;
  }  .header
    .menu
    > ul
    > li
    .sub-menu.mega-menu-column-3
    > .list-item.text-center:last-child
    .title {
    margin-bottom: 0px;
  }
  .header .menu > ul > li .sub-menu.mega-menu-column-4 > .list-item {
    flex: 0 0 100%;
    padding: 0px;
  }  .header .menu > ul > li .sub-menu.mega-menu-column-3 > .list-item {
    flex: 0 0 100%;
    padding: 0px;
  }
  .header .menu > ul > li .sub-menu > ul > li > a,
  .header .menu > ul > li .sub-menu.mega-menu > .list-item > ul > li > a {
    display: block;
  }
  .header .menu > ul > li .sub-menu.mega-menu > .list-item > ul {
    margin-bottom: 15px;
  }
  .menu-overlay {
    position: fixed;
    background-color: rgba(0, 0, 0, 0.5);
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 1098;
    visibility: hidden;
    opacity: 0;
    transition: all 0.5s ease;
  }
  .menu-overlay.active {
    visibility: visible;
    opacity: 1;
  }
}


.sidepanel{left:0;transition:.5s;height:100%;width:0;position:fixed;z-index:999;top:0;background-color:#2bace1;overflow-x:hidden;padding-top:60px}.sidepanel a{padding:15px 20px;text-decoration:none;font-size:15px;color:#000;display:block;font-weight:700;letter-spacing:1px;transition:.3s}.sidepanel .closebtn{position:absolute;top:0;right:0;font-size:36px;margin-left:50px}.openbtn{font-size:20px;cursor:pointer;padding:18px 15px 10px;border:none}

@media (max-width:767px){.text-justify{text-align:left} .text-right, .copyright{text-align:center!important} spacer:before{display: none}spacer{margin:5px 0; display:block} .p70{padding:50px 0} .container-fluid1 {padding-left: 30px;padding-right: 30px} footer .h6{margin-top:20px}footer .icon {display: inline-block;margin-right: 10px;margin-top: 5px} .h2, h2 {font-size: 2rem} .header-top .text-right{text-align:right!important}.academy-box4 .academy-content{padding: 20px!important}
	
header, .fixed-top{background: #fff; position:relative} .navbar-brand {padding: 0px;width: 100px;position: static;box-shadow:none;}
html body {min-width: 100%;min-height: 100%;-webkit-background-size: auto auto;-moz-background-size: auto auto;-o-background-size: auto auto;background-size: auto auto}
}

@media (max-width: 576px) {
    .academy-box4 {
        flex-direction: column;
        gap: 10px;
    }

    .icon {
        flex: none;
        width: 90px;
        height: 70px;
    }

    .academy-content {
        width: 100%;
    }
}

@media (max-width: @iphone-screen) {background-attachment:inherit;background-size:cover;-webkit-background-size:cover} 

/* === BOMIS change sheet 2026-09 === */
.legacy-strip{background:#fdf6ef}
.stage-grades{font-size:.9rem;letter-spacing:.02em;color:#ac1f23;margin-bottom:10px}
.stage-grades strong{font-weight:600}
.foot-affil{font-size:.85rem;line-height:1.6;color:#ffffffcc;margin:0 0 14px;text-align:left}
.foot-affil strong{color:#fff;font-weight:600}
.values-4c{list-style:none;padding:0;margin:0}
.values-4c li{padding:10px 0;border-bottom:1px solid #00000010}
.values-4c li:last-child{border-bottom:0}
.values-4c li strong{color:#ac1f23}
.stage-detail{margin:8px 0 0;font-size:.95rem}
.stage-detail strong{color:#ac1f23}
.mpd-table{width:100%;border-collapse:collapse;font-size:.95rem}
.mpd-table th,.mpd-table td{border:1px solid #e3e3e3;padding:10px 12px;text-align:left;vertical-align:top}
.mpd-table th{background:#fdf6ef;font-weight:600;width:38%}
.mpd-note{background:#fdf6ef;border-left:4px solid #f7a51b;padding:14px 18px;margin:0 0 24px;font-size:.95rem}
.schoollife-list{list-style:none;padding:0;margin:0}
.schoollife-list li{padding:14px 0;border-bottom:1px solid #00000010}
.schoollife-list li:last-child{border-bottom:0}
.schoollife-list li strong{color:#ac1f23;display:block;margin-bottom:4px}

/* flip-card back: stacked, two paragraphs */
.flip-card-back{flex-direction:column;text-align:center}
.flip-card-back p{margin-bottom:0;font-size:.92rem;line-height:1.5;text-align:center}
.flip-card-back .stage-grades{color:#fff;font-size:.82rem;letter-spacing:.03em;margin:0 0 10px;text-transform:uppercase}
.flip-card-back .stage-grades strong{font-weight:700}

/* === vertical rhythm === */
.p70{padding:38px 0}
@media (max-width:767px){.p70{padding:28px 0}}
section > .container-fluid > .row > [class^="col-"] > p:last-child,
section > .container-fluid > .row > [class^="col-"] > ul:last-child{margin-bottom:0}
/* headings already carry utility margins; stop them stacking on section padding */
section h2.mt-3{margin-top:0}
section .sub-heading{display:inline-block;margin-bottom:2px}
section > .container-fluid > .row > [class^="col-"] > h2:first-child,
section > .container-fluid1 > .row > [class^="col-"] > h2:first-child{margin-top:0}
/* the hr rules between blocks were tuned for 70px padding */
section hr.mt-4{margin-top:1rem!important}
section hr.mb-5{margin-bottom:1.75rem!important}
section hr.mt-3{margin-top:.75rem!important}
/* cards carried their own bottom margin on top of the row gutter */
.counter_div{margin-bottom:18px}
.academy-box3{margin-bottom:0}
/* new sections: don't vertically centre a short text column against a tall one */
section .row.align-items-center.rhythm-top{align-items:flex-start!important}


/* === alignment + spacing audit fixes === */
/* flip-card backs clipped their copy between 768-991px: give them room and a safety scroll */
.flip-card-back{overflow-y:auto;overscroll-behavior:contain}
/* measured: backs need at most 230px when the cards are 2-up, so 430px left ~250px dead */
@media (max-width:1199px){
  .flip-card{height:300px}
  .flip-card-back{padding:20px}
  .flip-card-back p{font-size:.88rem;line-height:1.45}
  .flip-card-back .stage-grades{font-size:.78rem;margin-bottom:8px}
}
@media (max-width:1199px) and (min-width:992px){ .flip-card{height:330px} }

/* long unbreakable strings (email addresses, URLs) must wrap instead of spilling.
   break-word (not anywhere) so min-content sizing — and therefore layout — is unchanged. */
p, li, td, th, dd, h1, h2, h3, h4, h5, h6, .foot-icon, figcaption{overflow-wrap:break-word}

/* numbers must never break mid-digit */
.feature-text, .feature-text big, .feature-text span,
.counter_div .feature-text { white-space:nowrap; overflow-wrap:normal; word-break:keep-all }
/* if the number is still wider than its card, scale the type instead of wrapping */
/* the widest counter is "1,00,000+"; measured 185px at 1.9rem, cards are 160px at 768px.
   fluid size keeps it on one line at every width without inventing more breakpoints. */
.counter_div .feature-text{font-size:clamp(1.5rem, 1.1rem + 1.4vw, 2.5rem)}
@media (min-width:1440px){ .counter_div .feature-text{font-size:2.5rem} }
/* the white bird mark needs a dark ground; on light sections use the full colour logo */
.logo-mark{max-width:220px}

/* === cards fill their column: no ragged rows === */
/* A card that stops short of its neighbour leaves a wedge of section background
   beside it. Make every grid card fill its column, and move the vertical gutter
   off the card's own margin onto the row, so heights stay exact. */
section .row, footer .row { row-gap: 18px }
section .row > [class*="col-"] > .counter_div,
section .row > [class*="col-"] > .academy-box2,
section .row > [class*="col-"] > .academy-box3,
section .row > [class*="col-"] > .why-box,
section .row > [class*="col-"] > .academics,
section .row > [class*="col-"] > .academics1,
section .row > [class*="col-"] > .orange-box,
section .row > [class*="col-"] > .academy-box4 { height: 100%; margin-bottom: 0 }
/* the two motto boxes share one column beside the hero photo — split its height */
.stack-fill { display: flex; flex-direction: column; gap: 14px }
.stack-fill > *{flex:1 1 0;height:auto!important;margin-bottom:0!important;display:flex;flex-direction:column;justify-content:center}

/* === flip cards stretch to match taller neighbours === */
/* A flip card needs a definite height for the 3D flip, so it cannot simply be
   height:100%. Instead the column becomes a flex column and layout hands the
   card a real height. The plain `height` above stays as the fallback for any
   browser without :has(), so the card never collapses. */
section .row > [class*="col-"]:has(> .flip-card) { display: flex; flex-direction: column }
section .row > [class*="col-"]:has(> .flip-card) > .flip-card {
  flex: 1 1 auto; height: auto; min-height: 380px; margin-bottom: 0 }
@media (max-width:1199px){
  section .row > [class*="col-"]:has(> .flip-card) > .flip-card { min-height: 300px }
}

/* === editorial gallery + events === */
/* An asymmetric frame wall: one anchor tile, the rest orbiting it. The spans are
   set per tile so the rhythm is deliberate rather than a uniform grid. */
.frame-wall{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:118px;gap:14px;grid-auto-flow:dense}
.frame{position:relative;overflow:hidden;border-radius:16px;background:#f2e9e2;
  box-shadow:0 10px 30px rgba(31,25,20,.10);display:block;isolation:isolate}
.frame img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .7s cubic-bezier(.2,.7,.2,1);transform-origin:center}
.frame:hover img,.frame:focus-visible img{transform:scale(1.07)}
.frame::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to top,rgba(31,25,20,.92) 0%,rgba(31,25,20,.55) 22%,rgba(31,25,20,.12) 48%,rgba(31,25,20,0) 70%);
  opacity:.9;transition:opacity .45s ease}
.frame:hover::after{opacity:1}
.frame figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:16px 18px;color:#fff}
.frame figcaption .ftitle{display:block;font-family:"Poppins",sans-serif;font-weight:700;
  font-size:1.02rem;line-height:1.25;text-align:left;text-shadow:0 1px 4px rgba(0,0,0,.55)}
.frame figcaption .fmeta{display:block;font-size:.76rem;letter-spacing:.09em;text-transform:uppercase;
  color:#ffc768;margin-bottom:5px;text-align:left;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.frame .fbar{position:absolute;left:18px;bottom:12px;z-index:3;height:3px;width:34px;border-radius:2px;
  background:#f15e2e;transform:scaleX(1);transform-origin:0 50%;transition:transform .5s ease}
.frame:hover .fbar{transform:scaleX(2.6)}
.frame:focus-visible{outline:3px solid #f7a51b;outline-offset:3px}
/* A composition that tiles exactly: three bands, each summing to 12 columns,
   so the wall never ends with a hole.
     band A  hero(6) | tall(3) | wide(3,r2) over unit(3,r1)
     band B  band(4) | slim(4) | duo(4)
     band C  pair(6) | close(6)                                             */
.frame.f-hero {grid-column:span 6;grid-row:span 4}
.frame.f-tall {grid-column:span 3;grid-row:span 4}
.frame.f-wide {grid-column:span 3;grid-row:span 2}
.frame.f-unit {grid-column:span 3;grid-row:span 2}
.frame.f-band {grid-column:span 4;grid-row:span 2}
.frame.f-slim {grid-column:span 4;grid-row:span 2}
.frame.f-duo  {grid-column:span 4;grid-row:span 2}
.frame.f-pair {grid-column:span 6;grid-row:span 2}
.frame.f-close{grid-column:span 6;grid-row:span 2}
@media (max-width:991px){
  .frame-wall{grid-template-columns:repeat(6,1fr);grid-auto-rows:110px;gap:12px;grid-auto-flow:dense}
  .frame.f-hero{grid-column:span 6;grid-row:span 3}
  .frame.f-tall,.frame.f-wide{grid-column:span 3;grid-row:span 2}
  .frame.f-unit,.frame.f-band,.frame.f-slim{grid-column:span 2;grid-row:span 2}
  .frame.f-duo{grid-column:span 2;grid-row:span 2}
  .frame.f-pair,.frame.f-close{grid-column:span 3;grid-row:span 2}
}
@media (max-width:575px){
  .frame-wall{grid-template-columns:repeat(2,1fr);grid-auto-rows:94px;gap:10px;grid-auto-flow:dense}
  .frame.f-hero{grid-column:span 2;grid-row:span 3}
  .frame.f-tall,.frame.f-wide,.frame.f-unit,.frame.f-band,
  .frame.f-slim,.frame.f-duo,.frame.f-pair,.frame.f-close{grid-column:span 1;grid-row:span 2}
  .frame figcaption{padding:12px 13px}
  .frame figcaption .ftitle{font-size:.88rem}
}

/* Rising Stars glimpse — a filmstrip that reads as one continuous reel */
.reel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(210px,1fr);gap:14px;
  overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.reel > *{scroll-snap-align:start}
.reel .frame{aspect-ratio:4/3;border-radius:14px}
@media (max-width:575px){ .reel{grid-auto-columns:minmax(170px,1fr)} }
/* a slot still waiting for its photograph — branded, not broken-looking */
.frame.awaiting{background:
  radial-gradient(120% 120% at 20% 10%, #f7a51b 0%, #f15e2e 45%, #ac1f23 100%)}
.frame.awaiting::after{opacity:.35}
.frame.awaiting .slot-mark{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:8px;color:#fff;text-align:center;padding:14px}
.frame.awaiting .slot-mark i{font-size:1.5rem;opacity:.9}
.frame.awaiting .slot-mark span{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;opacity:.92}

/* events page */
.event-card{background:#fff;border-radius:18px;overflow:hidden;
  box-shadow:0 12px 34px rgba(31,25,20,.10)}
.event-head{padding:26px 28px 6px}
.event-flag{display:inline-block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  padding:5px 11px;border-radius:100px;background:#efe7df;color:#6c625a;margin-bottom:12px}
.event-flag.done{background:#e8f3ec;color:#2f6b45}
.event-flag.next{background:#fde9c9;color:#8a5a00}
.event-meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0 0 14px;padding:0;list-style:none}
.event-meta li{font-size:.9rem;color:#5b534c;display:flex;align-items:center;gap:7px}
.event-meta li i{color:#ac1f23}
.event-body{padding:0 28px 28px}

/* === stage card titles: one line, qualifier never split === */
/* "Foundational (Pre-School)" was breaking at the hyphen into "Pre-" / "School)".
   The qualifier is now one unbreakable unit, so it moves to the next line whole,
   and the type scales down so most titles hold a single line. */
/* The qualifier always takes its own line — predictable at every width, and it
   can never split at the hyphen in "Pre-School". The name stays the loud part. */
.flip-card-front h3 .qual, .academy-box3 h3 .qual {
  display: block; font-size: .8em; font-weight: 500;
  letter-spacing: .01em; opacity: .93; margin-top: 1px;
  /* long qualifiers stay free to wrap at spaces on a narrow card */
  white-space: normal; overflow-wrap: normal; hyphens: none }
/* "(Pre-School)" is short enough to hold one line everywhere, so it is pinned —
   that is what stops it splitting into "Pre-" / "School)". */
.qual.nb { white-space: nowrap }
.flip-card-front h3 {
  font-size: clamp(14px, 0.5vw + 10.8px, 17px);
  line-height: 1.22; padding: 10px 18px; hyphens: none; overflow-wrap: normal;
  /* two lines' worth even when the title is one word, so the red bars line up */
  min-height: calc(2 * 1.22em + 20px); display: flex; flex-direction: column;
  justify-content: center }
/* the detailed stage cards on Academics */
.academy-box3 h3 { font-size: clamp(1.1rem, 0.45vw + 0.92rem, 1.45rem);
  line-height: 1.2; hyphens: none; overflow-wrap: normal; margin-bottom: 2px }
.academy-box3 h3 .qual { color: #ac1f23 }

/* === dropdown must stay inside the viewport === */
/* The Admissions dropdown is absolutely positioned and, though hidden until
   hover, still contributes to the page's scroll width. Adding Events pushed it
   3px past the right edge at ~992px. Anchor it to the right of its parent so it
   can never hang off the page; at wider widths this is visually identical. */
@media (min-width:992px){
  .header .menu > ul > li.menu-item-has-children:nth-last-child(-n+3) > .sub-menu:not(.mega-menu){
    left: auto; right: 0 }
}

/* === enquiry / brochure modal === */
.bf-backdrop{position:fixed;inset:0;z-index:100000;background:rgba(31,25,20,.62);
  backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;
  overflow-y:auto}
.bf-dialog{position:relative;width:100%;max-width:620px;background:#fff;border-radius:20px;
  padding:34px 34px 30px;box-shadow:0 30px 80px rgba(31,25,20,.35);max-height:92vh;overflow-y:auto}
.bf-x{position:absolute;top:14px;right:16px;width:38px;height:38px;border:0;border-radius:50%;
  background:#f4ede7;color:#8a7f76;font-size:1.5rem;line-height:1;cursor:pointer}
.bf-x:hover{background:#ac1f23;color:#fff}
.bf-eyebrow{font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:#ac1f23;
  font-weight:700;margin:0 0 6px}
.bf-title{font-size:1.65rem;line-height:1.2;margin:0 0 8px}
.bf-intro{color:#5b534c;margin:0 0 20px;text-align:left}
.bf-form{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.bf-form[hidden]{display:none}
.bf-field{display:flex;flex-direction:column;gap:5px}
.bf-field.bf-wide{grid-column:1/-1}
.bf-field label{font-size:.82rem;font-weight:600;color:#3d3630}
.bf-field label span{color:#ac1f23}
.bf-field input,.bf-field textarea{border:1.5px solid #e2d8cf;border-radius:10px;padding:11px 13px;
  font-size:.95rem;font-family:inherit;color:#1f1914;background:#fffdfb;width:100%}
.bf-field input:focus,.bf-field textarea:focus{outline:none;border-color:#f15e2e;
  box-shadow:0 0 0 3px rgba(241,94,46,.16)}
.bf-error{grid-column:1/-1;margin:0;color:#ac1f23;font-size:.88rem;font-weight:600}
.bf-actions{grid-column:1/-1;display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:4px}
.bf-submit{border:0;cursor:pointer}
.bf-call{font-size:.9rem;color:#5b534c}
.bf-call:hover{color:#ac1f23}
.bf-done{text-align:center;padding:10px 0 4px}
.bf-tick{width:62px;height:62px;border-radius:50%;background:#e8f3ec;color:#2f6b45;
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;margin:0 auto 16px}
.bf-done h3{margin:0 0 8px;font-size:1.25rem}
.bf-done p{color:#5b534c;text-align:center;margin:0 0 18px}
@media (max-width:575px){
  .bf-dialog{padding:26px 20px 22px;border-radius:16px}
  .bf-form{grid-template-columns:1fr}
  .bf-title{font-size:1.35rem}
}
@media (prefers-reduced-motion:reduce){ .bf-backdrop{backdrop-filter:none} }

/* === admissions landing page === */
/* Same palette and faces as the rest of the site; what changes is the pacing —
   one decision per screen, the form never more than a scroll away. */
.lp{--ink:#1f1914;--red:#ac1f23;--orange:#f15e2e;--amber:#f7a51b;--cream:#fdf6ef;--line:#e7dcd2}
.lp-bar{position:sticky;top:0;z-index:900;background:#fff;border-bottom:1px solid var(--line)}
.lp-bar .in{display:flex;align-items:center;justify-content:space-between;gap:16px;
  max-width:1280px;margin:0 auto;padding:12px 24px}
.lp-bar img{height:52px;width:auto}
.lp-bar .ph{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.lp-bar .ph a{font-weight:600;color:var(--ink);white-space:nowrap}
.lp-bar .ph a:hover{color:var(--red)}

/* hero */
.lp-hero{position:relative;background:#2a1512;overflow:hidden}
.lp-hero::before{content:"";position:absolute;inset:0;background:
  linear-gradient(105deg,rgba(28,14,12,.94) 0%,rgba(28,14,12,.86) 42%,rgba(28,14,12,.42) 72%,rgba(28,14,12,.30) 100%),
  var(--hero) center/cover no-repeat;z-index:0}
.lp-hero .in{position:relative;z-index:1;max-width:1280px;margin:0 auto;padding:58px 24px 64px;
  display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.lp-kicker{display:inline-flex;align-items:center;gap:9px;background:rgba(247,165,27,.16);
  border:1px solid rgba(247,165,27,.5);color:#ffc768;font-size:.76rem;letter-spacing:.12em;
  text-transform:uppercase;font-weight:700;padding:7px 14px;border-radius:100px;margin-bottom:18px}
.lp-hero h1{color:#fff;font-size:clamp(2rem,3.2vw,3.35rem);line-height:1.08;margin:0 0 18px;
  text-wrap:balance}
.lp-hero h1 em{font-style:normal;color:var(--amber)}
.lp-hero .lead{color:#f0e6df;font-size:1.06rem;line-height:1.65;max-width:56ch;margin:0 0 26px;
  text-align:left}
.lp-proof{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}
.lp-proof li{display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.17);border-radius:12px;padding:10px 14px;color:#fff;
  font-size:.9rem;font-weight:500}
.lp-proof li i{color:var(--amber)}

/* the form card, always the brightest thing on the screen */
.lp-card{background:#fff;border-radius:20px;padding:28px 28px 24px;
  box-shadow:0 26px 70px rgba(0,0,0,.38)}
.lp-card h2{font-size:1.4rem;margin:0 0 4px}
.lp-card .sub{color:#6c625a;font-size:.92rem;margin:0 0 18px;text-align:left}
.lp-form{display:grid;gap:12px}
.lp-form label{font-size:.8rem;font-weight:600;color:#3d3630;display:block;margin-bottom:4px}
.lp-form input,.lp-form select{width:100%;border:1.5px solid var(--line);border-radius:10px;
  padding:12px 13px;font-size:.96rem;font-family:inherit;color:var(--ink);background:#fffdfb}
.lp-form input:focus,.lp-form select:focus{outline:none;border-color:var(--orange);
  box-shadow:0 0 0 3px rgba(241,94,46,.16)}
.lp-form .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lp-form button{width:100%;border:0;cursor:pointer;font-size:1rem;padding:14px 18px}
.lp-note{font-size:.78rem;color:#8a7f76;margin:10px 0 0;text-align:center}
.lp-err{color:var(--red);font-size:.86rem;font-weight:600;margin:0;display:none}
.lp-ok{display:none;text-align:center;padding:14px 0 6px}
.lp-ok .tick{width:58px;height:58px;border-radius:50%;background:#e8f3ec;color:#2f6b45;
  display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto 14px}

/* legacy numbers */
.lp-legacy{background:var(--red);color:#fff;padding:52px 0}
.lp-legacy .in{max-width:1280px;margin:0 auto;padding:0 24px}
.lp-nums{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:26px}
.lp-num{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  border-radius:14px;padding:20px 18px}
.lp-num b{display:block;font-family:"Poppins",sans-serif;font-weight:900;
  font-size:clamp(1.5rem,2.4vw,2.3rem);line-height:1;color:var(--amber);white-space:nowrap}
.lp-num span{display:block;margin-top:7px;font-size:.86rem;color:#f4e7dd}

/* reason cards */
.lp-why{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.lp-reason{position:relative;border-radius:18px;overflow:hidden;min-height:290px;display:flex;
  align-items:flex-end;box-shadow:0 12px 34px rgba(31,25,20,.12)}
.lp-reason img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.lp-reason:hover img{transform:scale(1.06)}
.lp-reason::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,
  rgba(31,25,20,.93) 4%,rgba(31,25,20,.55) 40%,rgba(31,25,20,.05) 78%)}
.lp-reason .txt{position:relative;z-index:2;padding:22px;color:#fff}
.lp-reason .txt h3{font-size:1.14rem;margin:0 0 6px;color:#fff}
.lp-reason .txt p{margin:0;font-size:.9rem;color:#eaded5;text-align:left}
.lp-reason .tag{display:inline-block;font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;
  color:#ffc768;font-weight:700;margin-bottom:7px}

/* steps */
.lp-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;counter-reset:s}
.lp-step{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 18px;position:relative}
.lp-step::before{counter-increment:s;content:counter(s);position:absolute;top:-14px;left:18px;
  width:30px;height:30px;border-radius:50%;background:var(--orange);color:#fff;font-weight:700;
  display:flex;align-items:center;justify-content:center;font-size:.9rem}
.lp-step h4{font-size:1rem;margin:8px 0 6px}
.lp-step p{margin:0;font-size:.88rem;color:#5b534c;text-align:left}

/* sticky conversion bar */
.lp-stick{position:fixed;left:0;right:0;bottom:0;z-index:950;background:var(--ink);color:#fff;
  box-shadow:0 -8px 30px rgba(0,0,0,.28)}
.lp-stick .in{max-width:1280px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;
  justify-content:space-between;gap:16px;flex-wrap:wrap}
.lp-stick .msg{font-size:.95rem}
.lp-stick .msg b{color:var(--amber)}
.lp-stick .acts{display:flex;gap:10px;flex-wrap:wrap}
.lp-stick a{white-space:nowrap}
.lbl-xs{display:none}
.lp-stick .ghost{border:1.5px solid rgba(255,255,255,.35);color:#fff;border-radius:8px;
  padding:10px 16px;font-weight:600;font-size:.92rem;display:inline-flex;align-items:center;gap:8px}
.lp-stick .ghost:hover{background:rgba(255,255,255,.12);color:#fff}
body.has-stick{padding-bottom:78px}

@media (max-width:991px){
  .lp-hero .in{grid-template-columns:1fr;gap:30px;padding:40px 20px 48px}
  .lp-nums{grid-template-columns:repeat(3,1fr)}
  .lp-why{grid-template-columns:repeat(2,1fr)}
  .lp-steps{grid-template-columns:repeat(2,1fr);gap:22px 16px}
}
@media (max-width:575px){
  .lp-bar img{height:44px}
  .lp-bar .ph .hide-xs{display:none}
  .lp-nums{grid-template-columns:repeat(2,1fr)}
  .lp-why{grid-template-columns:1fr}
  .lp-steps{grid-template-columns:1fr}
  .lp-form .two{grid-template-columns:1fr}
  .lp-card{padding:22px 18px 18px}
  .lp-stick .in{padding:10px 16px;gap:10px}
  .lp-stick .msg{display:none}
  .lp-stick .acts{width:100%;gap:8px}
  /* the two secondary buttons shrink to their icon; the primary takes the rest */
  .lp-stick .acts .ghost{flex:0 0 auto;padding:10px 14px}
  .lp-stick .acts .rts-theme-btn{flex:1 1 auto;justify-content:center;text-align:center;
    padding-left:12px;padding-right:12px}
  .lbl-full{display:none}
  .lbl-xs{display:inline}
  body.has-stick{padding-bottom:70px}
}

/* === landing: film, care, voice, faq === */
/* The film sits in a dark band so the frame itself is the light in the room.
   Poster first, bytes only on click — a 95MB hero must not tax a phone on 4G. */
.lp-film{background:#170c0a;padding:64px 0;position:relative;overflow:hidden}
.lp-film::before{content:"";position:absolute;width:760px;height:760px;border-radius:50%;
  background:radial-gradient(circle,rgba(241,94,46,.30) 0%,rgba(241,94,46,0) 68%);
  top:-330px;right:-240px;pointer-events:none}
.lp-film .in{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:0 24px}
.lp-film .say{max-width:70ch;margin:0 auto 30px;text-align:center}
.lp-film .say h2{color:#fff;font-size:clamp(1.7rem,2.6vw,2.6rem);line-height:1.15;margin:10px 0 12px}
.lp-film .say h2 em{font-style:normal;color:#f7a51b}
.lp-film .say p{color:#e6d8cf;margin:0;text-align:center}
.lp-frame{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:16/9;background:#000;
  box-shadow:0 34px 90px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08)}
.lp-frame video,.lp-frame img.poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lp-frame .play{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:14px;border:0;background:linear-gradient(to top,rgba(23,12,10,.72),rgba(23,12,10,.25));
  cursor:pointer;color:#fff;font-family:inherit}
.lp-frame .play .disc{width:86px;height:86px;border-radius:50%;background:rgba(255,255,255,.14);
  border:2px solid rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;
  font-size:1.8rem;padding-left:6px;transition:transform .35s ease,background .35s ease}
.lp-frame .play:hover .disc{transform:scale(1.08);background:#f15e2e;border-color:#f15e2e}
.lp-frame .play .cap{font-size:.86rem;letter-spacing:.1em;text-transform:uppercase;opacity:.92}
.lp-film .under{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:22px}
.lp-film .under li{list-style:none;color:#f0e3da;font-size:.9rem;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.14);border-radius:100px;padding:8px 16px}

/* safety cards — the questions a parent of a four-year-old asks first */
.lp-care{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.lp-care .c{background:#fff;border:1px solid var(--line,#e7dcd2);border-radius:16px;padding:22px 20px}
.lp-care .c i{font-size:1.4rem;color:#ac1f23;margin-bottom:10px;display:block}
.lp-care .c h4{font-size:1.02rem;margin:0 0 7px}
.lp-care .c p{margin:0;font-size:.9rem;color:#5b534c;text-align:left}

/* the voice of the school */
.lp-voice{display:grid;grid-template-columns:.9fr 1.6fr;gap:36px;align-items:center}
.lp-voice .pic{border-radius:18px;overflow:hidden;box-shadow:0 18px 44px rgba(31,25,20,.18)}
.lp-voice .pic img{width:100%;height:100%;object-fit:cover;display:block}
.lp-voice blockquote{margin:0;font-size:clamp(1.05rem,1.3vw,1.3rem);line-height:1.6;color:#2b241e}
.lp-voice blockquote::before{content:"\201C";display:block;font-family:"Poppins",serif;font-weight:900;
  font-size:3.4rem;line-height:.6;color:#f7a51b;margin-bottom:10px}
.lp-voice .who{margin-top:18px;font-size:.95rem;color:#5b534c}
.lp-voice .who b{display:block;color:#ac1f23;font-size:1.02rem}

/* stages strip */
.lp-stages{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.lp-stage{background:#fff;border:1px solid var(--line,#e7dcd2);border-left:4px solid #f15e2e;
  border-radius:12px;padding:18px 18px}
.lp-stage b{display:block;font-family:"Poppins",sans-serif;font-size:1.02rem;margin-bottom:3px}
.lp-stage span{display:block;font-size:.82rem;color:#ac1f23;font-weight:600;margin-bottom:8px}
.lp-stage p{margin:0;font-size:.87rem;color:#5b534c;text-align:left}
.lp-stage.soon{border-left-color:#c9bdb2;opacity:.92}

/* faq */
.lp-faq{max-width:900px;margin:0 auto}
.lp-faq details{border-bottom:1px solid var(--line,#e7dcd2);padding:16px 0}
.lp-faq summary{cursor:pointer;font-weight:600;font-size:1.03rem;color:#2b241e;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:16px}
.lp-faq summary::-webkit-details-marker{display:none}
.lp-faq summary::after{content:"+";color:#f15e2e;font-size:1.5rem;line-height:1;flex:0 0 auto}
.lp-faq details[open] summary::after{content:"\2013"}
.lp-faq p{margin:12px 0 0;color:#5b534c;text-align:left}

@media (max-width:991px){
  .lp-care{grid-template-columns:repeat(2,1fr)}
  .lp-stages{grid-template-columns:repeat(2,1fr)}
  .lp-voice{grid-template-columns:1fr;gap:24px}
  .lp-voice .pic{max-width:320px}
}
@media (max-width:575px){
  .lp-care,.lp-stages{grid-template-columns:1fr}
  .lp-film{padding:44px 0}
  .lp-frame .play .disc{width:66px;height:66px;font-size:1.4rem}
}

/* === floating rail: apply tab + whatsapp === */
/* Right edge, stacked below the existing locate-us marker so nothing collides:
   marker at 55%, the Apply tab sits under it; WhatsApp and scroll-to-top share
   the bottom-right corner in one column. */
.apply-tab{position:fixed;right:0;top:55%;transform:translateY(46px);z-index:999;
  writing-mode:vertical-rl;background:#ac1f23;color:#fff!important;font-family:"Poppins",sans-serif;
  font-weight:700;font-size:.82rem;letter-spacing:.09em;text-transform:uppercase;
  padding:18px 11px;border-radius:8px 0 0 8px;display:flex;align-items:center;gap:10px;
  box-shadow:-4px 6px 20px rgba(31,25,20,.28);transition:background .35s ease,padding .35s ease;
  text-decoration:none!important}
.apply-tab:hover,.apply-tab:focus-visible{background:#f15e2e;color:#fff!important;padding-right:15px}
.apply-tab i{transform:rotate(90deg)}
.apply-tab:focus-visible{outline:3px solid #f7a51b;outline-offset:2px}

.wa-float{position:fixed;right:20px;bottom:70px;z-index:999;width:54px;height:54px;border-radius:50%;
  background:#25d366;color:#fff!important;display:flex;align-items:center;justify-content:center;
  font-size:1.65rem;box-shadow:0 8px 24px rgba(37,211,102,.42);transition:transform .3s ease}
.wa-float:hover,.wa-float:focus-visible{transform:scale(1.08);color:#fff!important}
.wa-float:focus-visible{outline:3px solid #0b7a3b;outline-offset:3px}
.wa-float::after{content:"";position:absolute;inset:-6px;border-radius:50%;
  border:2px solid rgba(37,211,102,.45);animation:waPulse 2.4s ease-out infinite}
@keyframes waPulse{0%{transform:scale(.9);opacity:.85}70%{transform:scale(1.25);opacity:0}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){ .wa-float::after{animation:none} }

/* the landing page already carries its own sticky conversion bar */
body.lp .apply-tab{display:none}
body.lp .wa-float{bottom:92px}

@media (max-width:767px){
  .apply-tab{writing-mode:horizontal-tb;top:auto;bottom:16px;right:88px;transform:none;
    border-radius:100px;padding:12px 18px;font-size:.78rem;box-shadow:0 8px 24px rgba(31,25,20,.3)}
  .apply-tab i{transform:none}
  .wa-float{width:50px;height:50px;bottom:16px;right:20px;font-size:1.5rem}
  .scroll-top{bottom:78px!important}
}

/* === landing: offering, school life, place, close === */
/* What the fee actually buys — one grid, scannable, no marketing adjectives. */
.lp-incl{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line,#e7dcd2);
  border-radius:16px;overflow:hidden;background:#fff}
.lp-incl .i{padding:20px 22px;border-right:1px solid var(--line,#e7dcd2);
  border-bottom:1px solid var(--line,#e7dcd2);display:flex;gap:13px;align-items:flex-start}
.lp-incl .i:nth-child(3n){border-right:0}
.lp-incl .i:nth-last-child(-n+3){border-bottom:0}
.lp-incl .i i{color:#2f6b45;font-size:1.05rem;margin-top:3px;flex:0 0 auto}
.lp-incl .i b{display:block;font-family:"Poppins",sans-serif;font-size:.98rem;margin-bottom:3px}
.lp-incl .i span{font-size:.86rem;color:#5b534c;line-height:1.5}

/* school life — five strands, each with its own tile */
.lp-life{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.lp-life .s{background:#fff;border-radius:14px;padding:20px 18px;border-top:4px solid #f15e2e;
  box-shadow:0 10px 26px rgba(31,25,20,.08)}
.lp-life .s:nth-child(2n){border-top-color:#ac1f23}
.lp-life .s b{display:block;font-family:"Poppins",sans-serif;font-size:1rem;margin-bottom:7px}
.lp-life .s p{margin:0;font-size:.86rem;color:#5b534c;text-align:left}

/* place */
.lp-place{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:28px;align-items:stretch}
.lp-place .map{border-radius:18px;overflow:hidden;min-height:340px;min-width:0;
  box-shadow:0 14px 40px rgba(31,25,20,.14)}
.lp-place .map iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
.lp-place .info{display:flex;flex-direction:column;justify-content:center}
.lp-place .row-i{display:flex;gap:13px;align-items:flex-start;padding:14px 0;
  border-bottom:1px solid var(--line,#e7dcd2)}
.lp-place .row-i:last-child{border-bottom:0}
.lp-place .row-i i{color:#ac1f23;font-size:1.1rem;margin-top:3px;flex:0 0 auto;width:20px}
/* a flex item's min-width is auto, so the long email address refused to shrink
   and pushed the page past a 320px phone */
.lp-place .row-i > div{min-width:0;flex:1 1 auto}
.lp-place .row-i a{overflow-wrap:anywhere}
.lp-place .row-i b{display:block;font-size:.95rem;margin-bottom:2px}
.lp-place .row-i span,.lp-place .row-i a{font-size:.92rem;color:#5b534c}
.lp-place .row-i a:hover{color:#ac1f23}

/* the closing ask */
.lp-close{background:linear-gradient(135deg,#ac1f23 0%,#8d1a1e 58%,#6f1417 100%);color:#fff;
  padding:62px 0;position:relative;overflow:hidden}
.lp-close::before{content:"";position:absolute;width:640px;height:640px;border-radius:50%;
  background:radial-gradient(circle,rgba(247,165,27,.22) 0%,rgba(247,165,27,0) 70%);
  bottom:-320px;left:-180px;pointer-events:none}
.lp-close .in{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:44px;align-items:center}
.lp-close h2{color:#fff;font-size:clamp(1.7rem,2.7vw,2.7rem);line-height:1.12;margin:10px 0 14px}
.lp-close h2 em{font-style:normal;color:#f7a51b}
.lp-close p{color:#f3e4da;margin:0 0 20px;text-align:left}
.lp-close .ways{display:flex;flex-wrap:wrap;gap:12px}
.lp-close .ways a{display:inline-flex;align-items:center;gap:9px;border:1.5px solid rgba(255,255,255,.4);
  border-radius:10px;padding:11px 17px;color:#fff!important;font-weight:600;font-size:.94rem}
.lp-close .ways a:hover{background:rgba(255,255,255,.14)}

@media (max-width:991px){
  .lp-incl{grid-template-columns:repeat(2,1fr)}
  .lp-incl .i:nth-child(3n){border-right:1px solid var(--line,#e7dcd2)}
  .lp-incl .i:nth-child(2n){border-right:0}
  .lp-incl .i:nth-last-child(-n+3){border-bottom:1px solid var(--line,#e7dcd2)}
  .lp-incl .i:nth-last-child(-n+2){border-bottom:0}
  .lp-life{grid-template-columns:repeat(2,1fr)}
  .lp-place,.lp-close .in{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:575px){
  .lp-incl{grid-template-columns:1fr}
  .lp-incl .i{border-right:0!important}
  .lp-incl .i:not(:last-child){border-bottom:1px solid var(--line,#e7dcd2)!important}
  .lp-life{grid-template-columns:1fr}
  .lp-close{padding:44px 0}
}

/* === registration page === */
/* A form page, not a sales page: the form is the content, everything else
   exists only to answer "should I fill this in?" */
.reg-hero{background:#2a1512;position:relative;overflow:hidden}
.reg-hero::before{content:"";position:absolute;inset:0;z-index:0;background:
  linear-gradient(112deg,rgba(28,14,12,.95) 0%,rgba(28,14,12,.88) 48%,rgba(28,14,12,.55) 100%),
  var(--hero) center/cover no-repeat}
.reg-hero .in{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:52px 24px 56px}
.reg-hero h1{color:#fff;font-size:clamp(1.9rem,3vw,3rem);line-height:1.1;margin:0 0 14px;max-width:20ch}
.reg-hero h1 em{font-style:normal;color:#f7a51b}
.reg-hero p{color:#efe2d9;max-width:62ch;margin:0;text-align:left}

.reg-wrap{max-width:1180px;margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:34px;align-items:start}
.reg-card{background:#fff;border:1px solid var(--line,#e7dcd2);border-radius:20px;
  padding:30px 30px 26px;box-shadow:0 18px 50px rgba(31,25,20,.10)}
.reg-card > h2{font-size:1.4rem;margin:0 0 4px}
.reg-card > .sub{color:#6c625a;font-size:.93rem;margin:0 0 22px;text-align:left}
.reg-group{border:0;padding:0;margin:0 0 22px}
.reg-group legend{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:#ac1f23;
  font-weight:700;padding:0;margin-bottom:12px;width:100%;border-bottom:1px solid var(--line,#e7dcd2);
  padding-bottom:7px}
.reg-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.reg-f{display:flex;flex-direction:column;gap:5px}
.reg-f.wide{grid-column:1/-1}
.reg-f label{font-size:.82rem;font-weight:600;color:#3d3630}
.reg-f label span{color:#ac1f23}
.reg-f input,.reg-f select,.reg-f textarea{border:1.5px solid var(--line,#e7dcd2);border-radius:10px;
  padding:11px 13px;font-size:.95rem;font-family:inherit;color:#1f1914;background:#fffdfb;width:100%}
.reg-f input:focus,.reg-f select:focus,.reg-f textarea:focus{outline:none;border-color:#f15e2e;
  box-shadow:0 0 0 3px rgba(241,94,46,.16)}
.reg-f .hint{font-size:.76rem;color:#8a7f76}
.reg-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.reg-pick label{position:relative;display:block;cursor:pointer}
.reg-pick input{position:absolute;opacity:0;inset:0;cursor:pointer}
.reg-pick .box{border:1.5px solid var(--line,#e7dcd2);border-radius:12px;padding:15px 16px;
  transition:border-color .2s ease,background .2s ease;height:100%}
.reg-pick input:checked + .box{border-color:#f15e2e;background:#fff4ee}
.reg-pick input:focus-visible + .box{box-shadow:0 0 0 3px rgba(241,94,46,.25)}
.reg-pick .box b{display:block;font-family:"Poppins",sans-serif;font-size:1rem;margin-bottom:3px}
.reg-pick .box span{font-size:.84rem;color:#5b534c}
.reg-err{color:#ac1f23;font-size:.88rem;font-weight:600;margin:0 0 12px;display:none}
.reg-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.reg-actions button{border:0;cursor:pointer;font-size:1rem;padding:14px 22px}
.reg-note{font-size:.79rem;color:#8a7f76;margin:12px 0 0}
.reg-ok{display:none;text-align:center;padding:18px 0 8px}
.reg-ok .tick{width:62px;height:62px;border-radius:50%;background:#e8f3ec;color:#2f6b45;
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;margin:0 auto 16px}

/* the aside: only what a parent needs to decide */
.reg-aside .blk{background:#fff;border:1px solid var(--line,#e7dcd2);border-radius:16px;
  padding:20px 22px;margin-bottom:16px}
.reg-aside .blk h3{font-size:1.02rem;margin:0 0 10px}
.reg-aside .blk p,.reg-aside .blk li{font-size:.9rem;color:#5b534c;text-align:left}
.reg-aside .blk ul{list-style:none;padding:0;margin:0}
.reg-aside .blk li{padding:8px 0;border-bottom:1px solid var(--line,#e7dcd2);display:flex;gap:10px}
.reg-aside .blk li:last-child{border-bottom:0}
.reg-aside .blk li i{color:#ac1f23;margin-top:3px}
/* a detail the school has still to confirm — visible, never invented */
.reg-tbc{display:inline-block;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;
  background:#fdf0d8;color:#8a5a00;border-radius:100px;padding:3px 10px;font-weight:700}

@media (max-width:991px){ .reg-wrap{grid-template-columns:minmax(0,1fr)} }
@media (max-width:575px){
  .reg-grid,.reg-pick{grid-template-columns:1fr}
  .reg-card{padding:22px 18px 18px}
}

/* ── Pages whose content the school has not sent yet ──
   Reads as "being prepared", never as a broken page, and names what is awaited
   so the school can review the structure and see its own to-do list. */
.page-placeholder {
  max-width: 820px; margin: 0 auto; padding: 44px 40px;
  background: #faf7f2; border: 1px solid #e6ddcd;
  border-left: 4px solid #ac1f23; border-radius: 6px;
}
.page-placeholder h2 {
  margin: 0 0 12px; font-size: 26px; line-height: 1.2; color: #1a1a1a;
}
.page-placeholder p { margin: 0 0 14px; color: #5b4738; line-height: 1.7; font-size: 15px; }
.page-placeholder .ph-awaits {
  margin: 20px 0; padding: 14px 18px; background: #fff; border: 1px dashed #d8c6a8;
  border-radius: 4px; font-size: 14px; color: #6b5a49;
}
.page-placeholder .ph-awaits span {
  display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: #ac1f23; font-weight: 700; margin-bottom: 5px;
}
.page-placeholder .ph-links { margin: 22px 0 0; }
.page-placeholder .ph-links a {
  display: inline-block; margin: 0 14px 0 0; padding: 9px 18px;
  background: #ac1f23; color: #fff; border-radius: 4px;
  font-size: 14px; font-weight: 600; text-decoration: none;
}
.page-placeholder .ph-links a + a { background: transparent; color: #ac1f23; border: 1px solid #ac1f23; }
@media (max-width: 600px) {
  .page-placeholder { padding: 30px 22px; }
  .page-placeholder .ph-links a { display: block; margin: 0 0 10px; text-align: center; }
}

/* ══════════════════════════════════════════════════════════════
   Mega menu — brand-correct rebuild
   The theme ships a generic slab: cyan headings that fight the
   maroon, bold 15px links on loose leading, no dividers, and a
   column that keeps the panel's full height even when short.
   Scoped to the desktop breakpoint so the mobile drawer is untouched.
   ══════════════════════════════════════════════════════════════ */
@media (min-width: 992px) {
  .header .menu > ul > li .sub-menu.mega-menu-column-3,
  .header .menu > ul > li .sub-menu.mega-menu-column-4 {
    max-width: 940px;
    padding: 26px 10px 22px;
    border-top: 3px solid #ac1f23;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 26px 50px -26px rgba(70, 25, 12, 0.38),
                0 2px 10px rgba(70, 25, 12, 0.06);
    align-items: flex-start;
  }

  /* Columns: real gutters and a hairline between, not floating blocks */
  .header .menu > ul > li .sub-menu.mega-menu-column-3 > .list-item {
    padding: 0 28px;
    border-left: 1px solid #efe6d8;
  }
  .header .menu > ul > li .sub-menu.mega-menu-column-3 > .list-item:first-child {
    border-left: 0;
  }

  /* Column heading: a small brand-coloured label, not a cyan sub-title */
  .header .menu > ul > li .sub-menu.mega-menu-column-3 > .list-item .title,
  .header .menu > ul > li .sub-menu.mega-menu-column-4 > .list-item .title {
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 700;
    color: #ac1f23;
    line-height: 1.2;
    padding: 0 0 9px;
    margin: 0 0 6px;
    border-bottom: 1px solid #efe6d8;
  }

  /* Links: readable weight, tight rhythm, an accent that arrives on hover */
  .header .menu > ul > li .sub-menu.mega-menu > .list-item > ul > li > a,
  .header .menu > ul > li .sub-menu.single-column-menu > ul > li > a {
    display: block;
    font-size: 14.5px;
    font-weight: 500;
    line-height: 1.35;
    color: #4a3b2f;
    padding: 8px 8px 8px 13px;
    border-radius: 5px;
    position: relative;
    transition: color 0.18s ease, background 0.18s ease;
  }
  .header .menu > ul > li .sub-menu.mega-menu > .list-item > ul > li > a::before,
  .header .menu > ul > li .sub-menu.single-column-menu > ul > li > a::before {
    content: "";
    position: absolute;
    left: 3px; top: 50%;
    width: 3px; height: 0;
    background: #ac1f23;
    border-radius: 2px;
    transform: translateY(-50%);
    transition: height 0.18s ease;
  }
  .header .menu > ul > li .sub-menu.mega-menu > .list-item > ul > li > a:hover,
  .header .menu > ul > li .sub-menu.single-column-menu > ul > li > a:hover {
    color: #ac1f23;
    background: #fdf8f2;
  }
  .header .menu > ul > li .sub-menu.mega-menu > .list-item > ul > li > a:hover::before,
  .header .menu > ul > li .sub-menu.single-column-menu > ul > li > a:hover::before {
    height: 17px;
  }

  /* The short dropdowns get the same treatment so the menu reads as one system */
  .header .menu > ul > li .sub-menu.single-column-menu {
    min-width: 260px;
    padding: 14px 12px;
    border-top: 3px solid #ac1f23;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 26px 50px -26px rgba(70, 25, 12, 0.38),
                0 2px 10px rgba(70, 25, 12, 0.06);
  }
}

/* ── Pages carrying the content the school has already given us ── */
.content-block { max-width: 880px; margin: 0 auto; }
.content-block .lead-copy {
  font-size: 18px; line-height: 1.65; color: #3a2d24; margin: 0 0 26px;
}
.content-block .lead-copy strong { color: #ac1f23; }
.content-block .mpd-table { width: 100%; }
.content-block .src {
  font-size: 12.5px; color: #8a7461; margin: 4px 0 0; font-style: italic;
}
.content-block .ph-awaits.ph-standalone {
  margin: 26px 0 0; padding: 15px 18px;
  background: #faf7f2; border: 1px dashed #d8c6a8; border-radius: 5px;
  font-size: 14px; color: #6b5a49; line-height: 1.6;
}
.content-block .ph-awaits.ph-standalone span {
  display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: #ac1f23; font-weight: 700; margin-bottom: 5px;
}
.content-block .ph-links { margin: 28px 0 0; }
.content-block .ph-links a {
  display: inline-block; margin: 0 14px 0 0; padding: 9px 18px;
  background: #ac1f23; color: #fff; border-radius: 4px;
  font-size: 14px; font-weight: 600; text-decoration: none;
}
.content-block .ph-links a + a { background: transparent; color: #ac1f23; border: 1px solid #ac1f23; }
@media (max-width: 600px) {
  .content-block .lead-copy { font-size: 16px; }
  .content-block .ph-links a { display: block; margin: 0 0 10px; text-align: center; }
}

/* ══ Requirement form: what each page still needs, asked on the page ══ */
.req-section { padding-top: 40px; }
.req-form-block {
  max-width: 880px; margin: 0 auto; padding: 34px 36px;
  background: #fffdfa; border: 1px solid #e6ddcd;
  border-top: 4px solid #ac1f23; border-radius: 8px;
  box-shadow: 0 18px 40px -28px rgba(70,25,12,.3);
}
.req-tag {
  display: inline-block; font-size: 11px; letter-spacing: .16em;
  text-transform: uppercase; font-weight: 700; color: #ac1f23;
  background: #fdeee9; border: 1px solid #f2d3ca;
  padding: 5px 12px; border-radius: 999px;
}
.req-purpose { margin: 14px 0 26px; font-size: 16px; line-height: 1.6; color: #4a3b2f; }
.req-field { margin: 0 0 22px; }
.req-field label { display: block; font-size: 14px; font-weight: 700; color: #2b211a; margin-bottom: 4px; }
.req-star { color: #ac1f23; }
.req-hint { margin: 0 0 8px; font-size: 12.5px; color: #8a7461; line-height: 1.5; }
.req-field input[type=text], .req-field textarea, .req-field select {
  width: 100%; padding: 11px 13px; font-size: 15px; color: #2b211a;
  background: #fff; border: 1px solid #ddd0ba; border-radius: 5px;
  font-family: inherit; line-height: 1.5;
}
.req-field textarea { resize: vertical; min-height: 92px; }
.req-field input[type=text]:focus, .req-field textarea:focus, .req-field select:focus {
  outline: none; border-color: #ac1f23; box-shadow: 0 0 0 3px rgba(172,31,35,.12);
}
.req-field input[type=file] { display: block; width: 100%; font-size: 14px; color: #5b4738; padding: 9px 0; }
.req-field.is-missing input, .req-field.is-missing textarea { border-color: #ac1f23; background: #fff8f6; }
.req-newname { display: none; margin-top: 10px; }

.req-question {
  margin: 28px 0; padding: 18px 20px;
  background: #fdf6ec; border: 1px solid #ecd9b8; border-left: 4px solid #e8821c;
  border-radius: 6px;
}
.req-question span {
  display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  font-weight: 700; color: #b8700f; margin-bottom: 6px;
}
.req-question p { margin: 0 0 12px; font-size: 15px; line-height: 1.6; color: #4a3b2f; }
.req-question textarea {
  width: 100%; padding: 10px 12px; font-size: 15px; border: 1px solid #ddd0ba;
  border-radius: 5px; font-family: inherit; background: #fff; resize: vertical;
}
.req-pageaction { padding-top: 22px; border-top: 1px dashed #e6ddcd; }

.req-foot { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-top: 26px; }
.req-by {
  flex: 1 1 200px; min-width: 0; padding: 12px 14px; font-size: 15px;
  border: 1px solid #ddd0ba; border-radius: 5px; font-family: inherit; background: #fff;
}
.req-send {
  padding: 13px 26px; background: #ac1f23; color: #fff; border: 0; border-radius: 5px;
  font-size: 15px; font-weight: 700; font-family: inherit; cursor: pointer;
  transition: background .18s ease;
}
.req-send:hover { background: #8e2010; }
.req-send:disabled { opacity: .55; cursor: default; }
.req-status { margin: 14px 0 0; font-size: 14px; min-height: 1em; }
.req-status.is-warn { color: #ac1f23; }
.req-status.is-error { color: #ac1f23; }
.req-status.is-busy { color: #8a7461; }
.req-done { padding: 26px 0; text-align: center; }
.req-done strong { display: block; font-size: 19px; color: #2e7d5b; margin-bottom: 8px; }
.req-done p { margin: 0; font-size: 14.5px; color: #5b4738; }
@media (max-width: 600px) {
  .req-form-block { padding: 26px 20px; }
  .req-foot { flex-direction: column; align-items: stretch; }
  .req-send { width: 100%; }
}

/* Landing page: the CI Group line sits under the legacy paragraph. */
.lp-ci {
  margin: 14px 0 0; font-size: 15px; line-height: 1.7; color: var(--ink-soft);
  max-width: 760px;
}
.lp-ci strong { color: var(--primary); font-weight: 700; }

/* ══════════════════════════════════════════════════════════════
   Landing page: light palette  (Action Plan, Workstream B)
   "Replace the heavy dark brown background and dark shades with
    clean white and soft, lighter color tones."
   The hero and the film band were #2a1512 and #170c0a with white
   text on top, so the grounds alone cannot be flipped - the
   overlay, headings, body copy and chips all move with them.
   ══════════════════════════════════════════════════════════════ */

/* ── Hero ── */
.lp-hero { background: #fbf6ee; }
.lp-hero::before {
  /* A light wash instead of the dark one, still heavy enough on the
     left for dark text to sit on the photograph. */
  background:
    linear-gradient(105deg,
      rgba(251, 246, 238, 0.975) 0%,
      rgba(251, 246, 238, 0.94)  42%,
      rgba(251, 246, 238, 0.58)  72%,
      rgba(251, 246, 238, 0.34) 100%),
    var(--hero) center/cover no-repeat;
}
.lp-kicker {
  background: #fdeee9;
  border-color: rgba(172, 31, 35, 0.28);
  color: #8e2010;
}
.lp-hero h1 { color: #1a0f0a; }
.lp-hero h1 em { color: #ac1f23; }
.lp-hero .lead { color: #5b4738; }
.lp-proof li {
  background: #ffffff;
  border: 1px solid #e6ddcd;
  color: #3a2d24;
  box-shadow: 0 1px 2px rgba(60, 30, 10, 0.05);
}
.lp-proof li i { color: #ac1f23; }

/* ── Film band ── */
.lp-film { background: #f5ebda; }
.lp-film::before {
  background: radial-gradient(circle,
    rgba(241, 94, 46, 0.14) 0%, rgba(241, 94, 46, 0) 68%);
}
.lp-film .say h2 { color: #1a0f0a; }
.lp-film .say h2 em { color: #ac1f23; }
.lp-film .say p { color: #5b4738; }
.lp-film .under li {
  color: #4a3b2f;
  background: #ffffff;
  border: 1px solid #e6ddcd;
}
/* The frame still sits on the video itself, so its own shadow softens
   rather than disappears. */
.lp-frame { box-shadow: 0 26px 60px -24px rgba(80, 30, 10, 0.38), 0 0 0 1px #e6ddcd; }

/* ── Landing page: readable note ──
   #8a7f76 on the white card came out at about 3.9:1 at 12.5px — legible
   on a design mock, not on a phone in daylight. */
.lp-note { color: #5b4738; font-size: .82rem; }

/* ── Landing page: the sticky bar is no longer brown ──
   The rest of the page moved to light grounds; a #1f1914 strip pinned to
   the bottom was the last dark surface, and it read as a separate site.
   White ground, hairline edge, and the one red button still carries the
   action. Everything inside it was styled for a dark bar, so the text,
   the highlight and the outline buttons all move with it. */
.lp-stick {
  background: #ffffff;
  color: #3a2d24;
  border-top: 1px solid #e6ddcd;
  box-shadow: 0 -10px 30px -12px rgba(80, 30, 10, 0.22);
}
.lp-stick .msg { color: #3a2d24; }
.lp-stick .msg b { color: #ac1f23; }
.lp-stick .ghost {
  border: 1.5px solid #d8c6a8;
  color: #4a3b2f;
  background: #fff;
}
.lp-stick .ghost:hover {
  background: #fdf8f2;
  color: #ac1f23;
  border-color: #ac1f23;
}

/* ── The white card inside the closing band ──
   .lp-close paints white text for the maroon ground it sits on, and the
   card inside inherited it: its h2 was white on white and the note under
   the button was #f3e4da on white. Scoped back, and at a specificity that
   actually beats `.lp-close p` (0,0,1,1) which was quietly winning over
   the plain `.lp-note` class. */
.lp-close .lp-card h2 { color: #1a0f0a; }
.lp-close .lp-card p,
.lp-close .lp-card .sub { color: #5b4738; }
.lp-close .lp-card .lp-note { color: #5b4738; font-size: .82rem; }

/* ── Mobile hero video ──
   Desktop keeps the still; the phone gets a short silent loop behind the
   copy. The file carries no audio stream at all, so it is silent even if
   a browser ignores `muted`. The wash above it is eased back on mobile so
   the motion reads, and the stacking order is made explicit because a
   child element otherwise paints on top of ::before. */
.lp-hero__video { display: none; }

@media (max-width: 991px) {
  .lp-hero__video {
    display: block;
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
  }
  .lp-hero::before {
    z-index: 1;
    background:
      linear-gradient(180deg,
        rgba(251, 246, 238, 0.78) 0%,
        rgba(251, 246, 238, 0.90) 38%,
        rgba(251, 246, 238, 0.96) 100%);
  }
  .lp-hero .in { z-index: 2; }
}

/* Someone who asked the system for less motion gets the poster instead. */
@media (prefers-reduced-motion: reduce) {
  .lp-hero__video { display: none !important; }
}


/* ── Legacy stat tiles ──
   The grid asked for five columns but the row has four tiles, so the last
   column sat empty on desktop and the odd tile stranded itself on a row of
   its own at two columns. Columns now match the tiles: four tiles, four
   columns, then two, then two. */
.lp-nums { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .lp-nums { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px)  { .lp-nums { grid-template-columns: repeat(2, 1fr); } }

/* ══════════════════════════════════════════════════════════════════
   A two-group mega menu
   The theme ships rules for mega-menu-column-3 and -4 only. The go-live
   build drops the Promoters column, which leaves About Us with two
   groups - and a two-group panel matches none of those selectors, so it
   rendered with no width, no grid and the theme's unstyled headings.
   These give two columns the same treatment as three, sized for two
   rather than stretched across the three-column width.
   ══════════════════════════════════════════════════════════════════ */
.header .menu > ul > li .sub-menu.mega-menu-column-2 {
  max-width: 1100px;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  padding: 20px 15px;
}
.header .menu > ul > li .sub-menu.mega-menu-column-2 > .list-item {
  flex: 0 0 50%;
  padding: 0 15px;
}

@media (min-width: 992px) {
  .header .menu > ul > li .sub-menu.mega-menu-column-2 {
    max-width: 680px;
    padding: 26px 10px 22px;
    border-top: 3px solid #ac1f23;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 26px 50px -26px rgba(70, 25, 12, 0.38),
                0 2px 10px rgba(70, 25, 12, 0.06);
    align-items: flex-start;
  }
  .header .menu > ul > li .sub-menu.mega-menu-column-2 > .list-item {
    padding: 0 28px;
    border-left: 1px solid #efe6d8;
  }
  .header .menu > ul > li .sub-menu.mega-menu-column-2 > .list-item:first-child {
    border-left: 0;
  }
  .header .menu > ul > li .sub-menu.mega-menu-column-2 > .list-item .title {
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 700;
    color: #ac1f23;
    line-height: 1.2;
    padding: 0 0 9px;
    margin: 0 0 6px;
    border-bottom: 1px solid #efe6d8;
  }
}

@media (max-width: 991px) {
  .header .menu > ul > li .sub-menu.mega-menu-column-2 > .list-item {
    flex: 0 0 100%;
    padding: 0;
  }
}

/* ══════════════════════════════════════════════════════════════════
   Subject and outcome lists on the stage pages
   The theme's reset strips bullets and indent from every ul, so a list
   written without its own rules reads as loose lines of text. These
   carry a brand tick instead, which suits a list of subjects better
   than a disc and keeps the pages consistent with each other.
   ══════════════════════════════════════════════════════════════════ */
ul.tick-list {
  list-style: none;
  margin: 0 0 6px;
  padding: 0;
}
ul.tick-list > li {
  position: relative;
  padding: 7px 0 7px 30px;
  line-height: 1.55;
  color: #4a3b2f;
  border-bottom: 1px solid #f2ece2;
}
ul.tick-list > li:last-child {
  border-bottom: 0;
}
ul.tick-list > li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 15px;
  width: 11px;
  height: 6px;
  border-left: 2px solid #ac1f23;
  border-bottom: 2px solid #ac1f23;
  transform: rotate(-45deg);
}

/* ══════════════════════════════════════════════════════════════════
   Event cards on the festivals and assemblies pages
   One card per event: its name, the date read from the photographs'
   own EXIF, and a grid of pictures from that day. Four across on a
   desktop, two on a tablet, one on a phone.
   ══════════════════════════════════════════════════════════════════ */
.ev-list {
  display: grid;
  gap: 34px;
}
.ev-card {
  background: #fff;
  border: 1px solid #f0e7da;
  border-radius: 16px;
  padding: 22px 22px 24px;
  box-shadow: 0 18px 40px -30px rgba(70, 25, 12, 0.35);
}
.ev-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f2ece2;
}
.ev-head h3 {
  margin: 0;
  font-size: 21px;
  line-height: 1.25;
  color: #ac1f23;
}
.ev-date {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #8b7a6b;
  white-space: nowrap;
}
.ev-date--none {
  font-style: italic;
  text-transform: none;
  letter-spacing: 0;
}
.ev-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.ev-tile {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 11px;
  background: #f2e9e2;
  aspect-ratio: 16 / 9;
}
.ev-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease;
}
.ev-tile:hover img,
.ev-tile:focus-visible img {
  transform: scale(1.06);
}
.ev-tile:focus-visible {
  outline: 3px solid #ac1f23;
  outline-offset: 2px;
}

@media (max-width: 991px) {
  .ev-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
  .ev-grid { grid-template-columns: minmax(0, 1fr); }
  .ev-card { padding: 16px 14px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .ev-tile img { transition: none; }
  .ev-tile:hover img { transform: none; }
}

/* ══════════════════════════════════════════════════════════════════
   Gallery: a chip bar that filters to one event, then the sections
   ══════════════════════════════════════════════════════════════════ */
.gal-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 30px;
}
.gal-chip {
  appearance: none;
  border: 1px solid #ecdfd0;
  background: #fff;
  color: #6b5748;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  padding: 10px 15px;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.gal-chip:hover { background: #fdf8f2; color: #ac1f23; }
.gal-chip.is-on { background: #ac1f23; border-color: #ac1f23; color: #fff; }
.gal-chip:focus-visible { outline: 3px solid #ac1f23; outline-offset: 2px; }

.gal-sec { margin-bottom: 42px; }
.gal-sec[hidden] { display: none; }
.gal-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid #f2ece2;
}
.gal-head h3 { margin: 0; font-size: 20px; color: #ac1f23; }
.gal-date {
  font-size: 12px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: #8b7a6b; white-space: nowrap;
}
.gal-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.gal-tile {
  display: block; position: relative; overflow: hidden;
  border-radius: 11px; background: #f2e9e2; aspect-ratio: 16 / 9;
}
.gal-tile img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 0.45s ease;
}
.gal-tile:hover img, .gal-tile:focus-visible img { transform: scale(1.06); }
.gal-tile:focus-visible { outline: 3px solid #ac1f23; outline-offset: 2px; }

.gal-vidgrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.gal-vid { margin: 0; }
.gal-vid video {
  width: 100%; display: block; border-radius: 12px; background: #000;
  aspect-ratio: 16 / 10; object-fit: cover;
}
.gal-vid figcaption {
  margin-top: 8px; font-size: 13px; color: #6b5748;
}

@media (max-width: 991px) {
  .gal-grid, .gal-vidgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
  .gal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .gal-vidgrid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .gal-tile img { transition: none; }
  .gal-tile:hover img { transform: none; }
}

/* Programme fact strip: three short facts under the opening copy */
.pg-facts {
  display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px;
}
.pg-fact {
  flex: 1 1 170px; min-width: 0;
  border: 1px solid #f0e7da; border-radius: 12px;
  padding: 13px 15px; background: #fdfaf6;
}
.pg-fact b {
  display: block; font-size: 15px; color: #ac1f23; line-height: 1.25;
}
.pg-fact span {
  display: block; margin-top: 4px; font-size: 12.5px; color: #7d6d5e; line-height: 1.4;
}

/* Contact: the four details, as cards beside the campus photograph */
.ct-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.ct-card {
  border: 1px solid #f0e7da;
  border-radius: 13px;
  padding: 18px 18px 16px;
  background: #fdfaf6;
}
.ct-card .fa {
  font-size: 17px;
  color: #ac1f23;
  margin-bottom: 9px;
  display: block;
}
.ct-card h3 {
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8b7a6b;
}
.ct-card p {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.55;
  color: #4a3b2f;
  overflow-wrap: anywhere;
}
.ct-card a { color: #ac1f23; }
.ct-card a:hover { text-decoration: underline; }

@media (max-width: 575px) {
  .ct-cards { grid-template-columns: minmax(0, 1fr); }
}
