/* Helper classes used by the Nandi Elementor layouts. Loaded only on pages built with Elementor.
   Colours, fonts, sizes and spacing are set on each widget in Elementor; this file only adds what
   Elementor Free has no control for (column proportions, chips, decorative shapes). */

.nandi-elementor{display:block}
.ni-anchor{scroll-margin-top:100px}
.ni-sec .elementor-widget-text-editor p{margin:0}
.ni-sec .elementor-widget-text-editor p+p{margin-top:16px}
.ni-sec .elementor-heading-title{text-wrap:balance}
.ni-sec .elementor-heading-title a{color:inherit}
.ni-links a:hover{text-decoration:underline}
.ni-links-muted a:hover{color:#9C1C2E}
.ni-full,.ni-full>.elementor-widget-html{width:100%}
.ni-sec .elementor-button{white-space:nowrap}

/* ---------- widths ---------- */
.elementor .elementor-widget.ni-max22{max-width:22ch!important}
.elementor .elementor-widget.ni-max44{max-width:44ch!important}
.elementor .elementor-widget.ni-max450{max-width:450px!important}
.elementor .elementor-widget.ni-max480{max-width:480px!important}
.elementor .elementor-widget.ni-max520{max-width:520px!important}
.elementor .elementor-widget.ni-max650{max-width:650px!important}
.elementor .elementor-widget.ni-max680{max-width:680px!important}
.elementor .elementor-widget.ni-max720{max-width:720px!important}
.elementor .elementor-widget.ni-max760{max-width:760px!important}
.elementor .elementor-widget.ni-max820{max-width:820px!important}
.elementor .elementor-widget.ni-max850{max-width:850px!important}
.elementor .e-con.ni-head{max-width:640px}
.elementor .e-con.ni-max820{max-width:820px}

/* ---------- column proportions ---------- */
.elementor .e-con.ni-g06{flex:.6 1 0;min-width:0}
.elementor .e-con.ni-g075{flex:.75 1 0;min-width:0}
.elementor .e-con.ni-g085{flex:.85 1 0;min-width:0}
.elementor .e-con.ni-g098{flex:.98 1 0;min-width:0}
.elementor .e-con.ni-g1{flex:1 1 0;min-width:0}
.elementor .e-con.ni-g10{flex:1 1 0;min-width:0}
.elementor .e-con.ni-g102{flex:1.02 1 0;min-width:0}
.elementor .e-con.ni-g11{flex:1.1 1 0;min-width:0}
.elementor .e-con.ni-g115{flex:1.15 1 0;min-width:0}
.elementor .e-con.ni-g125{flex:1.25 1 0;min-width:0}
.elementor .e-con.ni-g14{flex:1.4 1 0;min-width:0}
.elementor .e-con.ni-w55{flex:0 0 55px;width:55px}
.elementor .e-con.ni-w70{flex:0 0 70px;width:70px}
.elementor .e-con.ni-w100{flex:0 0 100px;width:100px}
.elementor .e-con.ni-w130{flex:0 0 130px;width:130px}
.elementor .e-con.ni-w150{flex:0 0 150px;width:150px}
.elementor .e-con.ni-w180{flex:0 0 180px;width:180px}
.elementor .e-con.ni-w270{flex:0 0 270px;width:270px}
.elementor .e-con.ni-w320{flex:0 0 320px;width:320px}
.elementor .elementor-widget.ni-w44{flex:0 0 44px;width:44px}
.elementor .e-con.ni-third{flex:1 1 calc(33.333% - 14px);min-width:0;width:auto}
@media(max-width:1024px){
  .elementor .e-con.ni-third.ni-person{flex-basis:calc(50% - 10px);max-width:calc(50% - 10px)}
  .elementor .e-con.ni-intro{flex-wrap:wrap}
  .elementor .e-con.ni-intro>.ni-w100{flex-basis:70px;width:70px}
  .elementor .e-con.ni-intro>.ni-w270{flex:1 1 100%;width:100%;margin-left:115px}
}
@media(max-width:767px){
  .elementor .e-con.ni-stack>.e-con{flex:0 0 auto;width:100%;margin-left:0}
  .elementor .e-con.ni-third,.elementor .e-con.ni-third.ni-person{flex:1 1 100%;max-width:100%}
  .elementor .e-con.ni-w70{flex-basis:45px;width:45px}
}

/* ---------- chips ---------- */
.ni-chip .elementor-heading-title{display:inline-block;padding:3px 10px;border-radius:999px;background:#F6F2FA}
.ni-chip-pg .elementor-heading-title{background:#F7E6E8}
.ni-chip-ah .elementor-heading-title{background:#E3F1EA}
.ni-chip-flag .elementor-heading-title{background:#F0B429;padding:7px 15px}
.ni-chip-sm .elementor-heading-title{padding:4px 10px}
.ni-pills .ni-chip .elementor-heading-title{padding:8px 12px;font-weight:600}
.ni-noicon .elementor-icon-list-icon{display:none!important}
.ni-noicon .elementor-icon-list-items{margin:0!important;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px 24px}
.ni-noicon .elementor-icon-list-item{margin:0!important;padding:0!important}
.ni-noicon .elementor-icon-list-item::after{display:none!important}
.ni-rule .elementor-divider{padding:0!important;line-height:0;font-size:0}
.ni-rule .elementor-divider-separator{margin:0!important;border-radius:5px}

/* ---------- home: programmes table ---------- */
.elementor .e-con.ni-prog-main{flex:1.5 1 0;min-width:0}
.elementor .e-con.ni-prog-ask{flex:0 0 110px;width:110px;align-self:center;align-items:flex-end}
.ni-dt{display:none}
.ni-dd{padding-top:34px}
@media(max-width:1024px){
  .elementor .e-con.ni-prog-row{flex-wrap:wrap}
  .elementor .e-con.ni-prog-row>.ni-prog-main{flex:0 0 100%}
  .elementor .e-con.ni-prog-row>.ni-prog-c{flex:1 1 0}
  .ni-dt{display:block}
  .ni-dd{padding-top:0}
  .elementor .e-con.ni-prog-row>.ni-prog-ask{flex:0 0 100%;width:100%;align-items:flex-start}
}
@media(max-width:560px){.elementor .e-con.ni-prog-row>.ni-prog-c{flex:1 1 40%}}

/* ---------- home: photo slots, people, flyer ---------- */
.elementor .e-con.ni-photos>.ni-photo-big{flex:1.4 1 0;min-width:0}
.elementor .e-con.ni-photos>.ni-photo-grid{flex:2 1 0;min-width:0}
.elementor .e-con.ni-photo-grid>.ni-photo{flex:1 1 calc(50% - 7px);min-width:0;width:auto}
.elementor .e-con.ni-photo{border:2px dashed #CDBFE0;background-color:#fff;text-align:center;background-size:cover;background-position:center}
.elementor .e-con.ni-avatar{flex:0 0 76px;width:76px;height:76px;border-radius:50%;background-color:#F6F2FA;background-size:cover;background-position:center}
.ni-flyer img{border-radius:10px;box-shadow:0 18px 40px rgba(20,4,36,.45);transform:rotate(-2deg);width:100%;height:auto}
@media(max-width:767px){
  .elementor .e-con.ni-photos>.ni-photo-big,.elementor .e-con.ni-photos>.ni-photo-grid{flex:0 0 auto;width:100%}
}

/* ---------- about page ---------- */
.elementor .e-con.ni-inner-hero{position:relative;overflow:hidden}
.elementor .e-con.ni-inner-hero::before{content:"";position:absolute;inset:0;width:auto;height:auto;opacity:.18;z-index:0;
  background:radial-gradient(circle at 78% 35%,#F0B429 0 2px,transparent 3px),radial-gradient(circle at 86% 70%,#fff 0 1px,transparent 2px),linear-gradient(135deg,transparent 0 45%,rgba(255,255,255,.12) 45% 46%,transparent 46% 100%);
  background-size:54px 54px,38px 38px,100% 100%}
.elementor .e-con.ni-inner-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(36,9,63,.96),rgba(58,21,97,.75) 62%,rgba(58,21,97,.25))}
.elementor .e-con.ni-inner-hero>.e-con-inner{position:relative;z-index:2}
.ni-inner-hero em{color:#F0B429;font-style:normal}
.ni-crumb a:hover{color:#F0B429}
.ni-crumb b{color:#fff}
.elementor .e-con.ni-vm{position:relative;overflow:hidden}
.elementor .e-con.ni-vm::after{position:absolute;right:26px;top:18px;font-family:"Bricolage Grotesque","Trebuchet MS",Arial,sans-serif;font-size:82px;line-height:1;color:#fff;opacity:.12}
.elementor .e-con.ni-vm-star::after{content:"✦"}
.elementor .e-con.ni-vm-plus::after{content:"+"}
.elementor a.e-con.ni-programme{color:inherit;text-decoration:none;transition:padding .25s ease,background .25s ease}
.elementor a.e-con.ni-programme:hover{--padding-left:14px;padding-left:14px;background:rgba(255,255,255,.55)}
.elementor .e-con.ni-arrow{flex:0 0 42px;width:42px;height:42px;border:1px solid #E3DCEC;border-radius:50%}
.elementor .e-con.ni-cta-actions{width:auto;flex:0 0 auto}

/* ---------- courses + course pages ---------- */
.elementor .e-con.ni-prog-hero,.elementor .e-con.ni-course-hero,.elementor .e-con.ni-contact-hero{position:relative;overflow:hidden}
.elementor .e-con.ni-prog-hero>.e-con-inner,.elementor .e-con.ni-course-hero>.e-con-inner,.elementor .e-con.ni-contact-hero>.e-con-inner{position:relative;z-index:1}
.elementor .e-con.ni-prog-hero::before{content:"";position:absolute;width:500px;height:500px;border:1px solid rgba(240,180,41,.22);border-radius:50%;right:-210px;top:-240px;left:auto;bottom:auto}
.elementor .e-con.ni-prog-hero::after{content:"";position:absolute;width:220px;height:220px;border:1px solid rgba(255,255,255,.10);border-radius:50%;right:80px;bottom:-150px}
.elementor .e-con.ni-course-hero::before{position:absolute;left:auto;bottom:auto;width:auto;height:auto;right:-25px;top:-55px;font-family:"Bricolage Grotesque","Trebuchet MS",Arial,sans-serif;font-size:240px;font-weight:800;line-height:1;color:rgba(255,255,255,.035);pointer-events:none}
.elementor .e-con.ni-ch-bsc::before{content:"B.Sc"}
.elementor .e-con.ni-ch-gnm::before{content:"GNM";right:-20px;font-size:260px}
.elementor .e-con.ni-ch-msc::before{content:"M.Sc";right:-35px;top:-50px;font-size:235px}
.elementor .e-con.ni-ch-ahs::before{content:"AHS";right:-20px;font-size:250px}
.elementor .e-con.ni-contact-hero::after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(240,180,41,.28);border-radius:50%;right:-150px;top:-190px}
.elementor .e-con.ni-note{border-left:4px solid #F0B429}
.elementor .e-con.ni-hero-admit{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.2)}
.ni-reach .elementor-button{display:block;text-align:left;white-space:normal;overflow-wrap:anywhere}
.ni-reach .elementor-button-content-wrapper{justify-content:flex-start}

/* ---------- contact page ---------- */
.ni-w44 .elementor-icon-wrapper{line-height:0}
.ni-w44 .elementor-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}
.ni-w44 .elementor-icon svg{width:1em;height:1em;fill:currentColor}

/* accent rule (uses the colour, weight and width set on the Divider widget) */
.ni-rule .elementor-divider-separator{display:flex;border-block-start:var(--divider-border-width,5px) var(--divider-border-style,solid) var(--divider-color,#F0B429)}
