.elementor-kit-6{--e-global-color-primary:#BF1D26;--e-global-color-secondary:#2D2D2D;--e-global-color-text:#1a1a1a;--e-global-color-accent:#C9A84C;--e-global-color-c1maroond:#9D181F;--e-global-color-c2maroonl:#CB464D;--e-global-color-c3goldl:#E8D48B;--e-global-color-c4teal:#45B193;--e-global-color-c5tealdk:#2E8B7C;--e-global-color-c6warmgr:#6B6B6B;--e-global-color-c7lightg:#F2ECE2;--e-global-color-c8taupe:#78726F;--e-global-color-c9taupedk:#635E5B;--e-global-color-caterra:#DE7355;--e-global-color-cbcream:#FAF3E3;--e-global-color-ccbg:#FAF7F2;--e-global-color-cdink:#221d22;--e-global-color-cereddeep:#8f151a;--e-global-color-cfgoldtxt:#815b1f;--e-global-typography-primary-font-family:"Fraunces";--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"Josefin Sans";--e-global-typography-secondary-font-weight:700;--e-global-typography-text-font-family:"Geist";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Instrument Sans";--e-global-typography-accent-font-weight:400;--e-global-typography-t1playf-font-family:"Playfair Display";--e-global-typography-t1playf-font-weight:700;--e-global-typography-t2caveat-font-family:"Caveat";--e-global-typography-t2caveat-font-weight:400;--e-global-typography-t3lobster-font-family:"Lobster";--e-global-typography-t3lobster-font-weight:400;background-color:#FAF7F2;color:#1a1a1a;font-family:"Geist", sans-serif;font-size:16px;font-weight:400;line-height:1.5em;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{background-color:#BF1D26;font-family:"Geist", sans-serif;font-size:16px;font-weight:600;line-height:1.5em;color:#ffffff;border-style:none;border-radius:9999px 9999px 9999px 9999px;padding:12px 28px 12px 28px;}.elementor-kit-6 button:hover,.elementor-kit-6 button:focus,.elementor-kit-6 input[type="button"]:hover,.elementor-kit-6 input[type="button"]:focus,.elementor-kit-6 input[type="submit"]:hover,.elementor-kit-6 input[type="submit"]:focus,.elementor-kit-6 .elementor-button:hover,.elementor-kit-6 .elementor-button:focus{background-color:#9D181F;color:#ffffff;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 p{margin-block-end:0px;}.elementor-kit-6 a{color:#1a1a1a;}.elementor-kit-6 a:hover{color:#1a1a1a;}.elementor-kit-6 h1{font-size:1em;font-weight:inherit;line-height:1.5em;}.elementor-kit-6 h2{font-size:1em;font-weight:inherit;line-height:1.5em;}.elementor-kit-6 h3{font-size:1em;font-weight:inherit;line-height:1.5em;}.elementor-kit-6 h4{font-size:1em;font-weight:inherit;line-height:1.5em;}.elementor-kit-6 h5{font-size:1em;font-weight:inherit;line-height:1.5em;}.elementor-kit-6 h6{font-size:1em;font-weight:inherit;line-height:1.5em;}.elementor-kit-6 img{border-style:none;border-radius:0px 0px 0px 0px;opacity:1;}.elementor-kit-6 label{color:#221d22;font-family:"Instrument Sans", sans-serif;font-size:14px;font-weight:600;}.elementor-kit-6 input:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea,.elementor-kit-6 .elementor-field-textual{font-family:"Instrument Sans", sans-serif;font-size:16px;color:#221d22;background-color:rgba(0,0,0,0);border-style:none;border-radius:0px 0px 0px 0px;padding:12px 14px 12px 14px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1279px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;}}@media(max-width:1023px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;}}@media(max-width:639px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;}}
/* Start custom CSS *//* ===== Pixmentor base (Tailwind preflight + globals.css equivalents from the source codebase) ===== */
*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}
html{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}
html,body{max-width:100%;overflow-x:hidden;overflow-x:clip}
body{min-height:100%;margin:0}
/* Tailwind v4 preflight margin/padding resets (the Hello theme reset.css that used to zero p/h margins is switched off) */
h1,h2,h3,h4,h5,h6,p,blockquote,figure,figcaption,dl,dd,pre,hr{margin:0}
ol,ul,menu{list-style:none;margin:0;padding:0}
fieldset{margin:0;padding:0;min-width:0}legend{padding:0}
hr{height:0;color:inherit;border-block-start-width:1px}
/* Elementor strut fixes: the icon widget's inline-block icon sits on a 24px line box (7px gap under every icon) and a heading rendered as <span> is inline (the widget's 24px body line box governs the row instead of the heading's own line-height). The source renders these as blocks / flex items. */
.elementor-widget-icon .elementor-icon-wrapper{line-height:0}
.elementor-widget-heading span.elementor-heading-title{display:block}
p,li,h1,h2,h3,h4,a,dd,dt,td,th{overflow-wrap:anywhere}
a{color:inherit;text-decoration:inherit}
img,video,iframe{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit;margin:0}
/* marker-swipe word (source: MarkerWord.tsx) — pseudo-element, no native Elementor control */
.pm-marker{position:relative;display:inline-block;white-space:nowrap;color:#8f151a}
.pm-marker::before{content:"";position:absolute;inset:.4em -.14em .06em -.14em;border-radius:6px;background-image:linear-gradient(rgba(193,31,37,.16),rgba(193,31,37,.16));transform:rotate(-1.6deg);z-index:0}
.pm-marker>span{position:relative;z-index:1}
/* fixed header offset: the header is position:fixed in the source (88px) and the page starts below it */
:root{--header-h:88px}
/* ===== group-hover utilities (source: Tailwind group-hover / hover classes with no native Elementor control) ===== */
.pm-pill .elementor-heading-title,.pm-pill .elementor-icon{transition:all .3s}
.pm-pill:hover{border-color:#BF1D26}
.pm-pill:hover .elementor-heading-title{color:#fff}
.pm-pill:hover .elementor-icon{color:#fff;transform:translate(2px,-2px)}
.pm-pill:hover .elementor-icon svg{stroke:#fff}
.pm-white-img img{filter:brightness(0) invert(1)}
.pm-vtext .elementor-button-text{writing-mode:vertical-rl;transform:rotate(180deg)}
.pm-bg-fixed{background-attachment:fixed}
@media (hover:none),(max-width:1023px){.pm-bg-fixed{background-attachment:scroll}}
/* ===== hover-reveal media cards (LearningPrograms / OurCommitment / Recognitions: Tailwind group-hover choreography) ===== */
.pm-card{transition:flex-grow .7s cubic-bezier(.25,.8,.25,1),box-shadow .3s}
.pm-card .pm-card-img{transition:transform .7s}
.pm-card .pm-card-strip{transition:opacity .3s;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.pm-card .pm-card-shade{transition:opacity .5s}
.pm-card .pm-card-content{transition:opacity .3s}
.pm-card .pm-card-title{transition:transform .5s,opacity .5s}
.pm-card .pm-card-body{transition:transform .5s .1s,opacity .5s .1s}
.pm-card-hidden .pm-card-shade,.pm-card-hidden .pm-card-content{opacity:0}
.pm-card-hidden .pm-card-title{transform:translateY(-24px);opacity:0}
.pm-card-hidden .pm-card-body{transform:translateY(24px);opacity:0}
.pm-card-hidden:hover .pm-card-img{transform:scale(1.05)}
.pm-card-hidden:hover .pm-card-strip{opacity:0}
.pm-card-hidden:hover .pm-card-shade,.pm-card-hidden:hover .pm-card-content{opacity:1}
.pm-card-hidden:hover .pm-card-title,.pm-card-hidden:hover .pm-card-body{transform:none;opacity:1}
@media (min-width:1024px){.pm-card-hidden-lg .pm-card-shade,.pm-card-hidden-lg .pm-card-content{opacity:0}.pm-card-hidden-lg .pm-card-title{transform:translateY(-24px);opacity:0}.pm-card-hidden-lg .pm-card-body{transform:translateY(24px);opacity:0}.pm-card-hidden-lg:hover .pm-card-img{transform:scale(1.05)}.pm-card-hidden-lg:hover .pm-card-strip{opacity:0}.pm-card-hidden-lg:hover .pm-card-shade,.pm-card-hidden-lg:hover .pm-card-content{opacity:1}.pm-card-hidden-lg:hover .pm-card-title,.pm-card-hidden-lg:hover .pm-card-body{transform:none;opacity:1}}
@media (min-width:1024px){.pm-card:hover{flex-grow:3.2}}
@media (max-width:1023px){.pm-card-43{aspect-ratio:4/3}}
.pm-drop-lg .elementor-heading-title,.pm-drop-lg .elementor-widget-container{filter:drop-shadow(0 10px 8px rgba(0,0,0,.04)) drop-shadow(0 4px 3px rgba(0,0,0,.1))}
.pm-drop .elementor-widget-container{filter:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}
/* video play circle (FamiliesWhoChoseKhaitan): 64px #bf1e24 circle around the play glyph, grows on hover */
.pm-play .elementor-custom-embed-play{width:64px;height:64px;border-radius:9999px;background-image:linear-gradient(#bf1e24,#bf1e24);display:flex;align-items:center;justify-content:center;transition:transform .3s;box-shadow:0 10px 15px -3px rgba(0,0,0,.1)}
.pm-play:hover .elementor-custom-embed-play{transform:translate(-50%,-50%) scale(1.1)}
.pm-play .elementor-custom-embed-play i,.pm-play .elementor-custom-embed-play svg{color:#fcfaf6;fill:#fcfaf6;opacity:1}
/* popup close buttons (source: AdmissionPopup.tsx h-8 w-8 rounded-full text-maroon hover:bg-maroon/10; Navbar search overlay X 24px white/70) — the Pro popup close button has no shape/size/hover-bg controls, and Elementor focuses it on open (focus ring hidden to match the source's focus-visible-only ring) */
#elementor-popup-modal-870 .dialog-close-button{inline-size:32px;block-size:32px;display:grid;place-items:center;border-radius:9999px;outline:none;transition:background-color .15s}
#elementor-popup-modal-870 .dialog-close-button:focus{outline:none}
#elementor-popup-modal-870 .dialog-close-button:focus-visible{outline:2px solid #BF1D26}
/* the source close button is an 18px lucide X (stroke 2.5, round caps); the Pro popup close button has no icon control */
#elementor-popup-modal-870 .dialog-close-button svg{display:none}
#elementor-popup-modal-870 .dialog-close-button::before{content:"";inline-size:18px;block-size:18px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E")}
#elementor-popup-modal-867 .dialog-close-button{outline:none}
#elementor-popup-modal-867 .dialog-close-button:focus-visible{outline:2px solid #fff}
#elementor-popup-modal-867 .dialog-close-button svg{stroke:rgba(255,255,255,.7);stroke-width:2}
/* menu drawer (Navbar.tsx desktop menu): the source toggles the boxed MENU button to CLOSE while the drawer is open (React state) — the replica has two boxed buttons (popup open / popup close actions) and swaps them while the drawer popup #864 is open */
#pm-menu-close-d{display:none}
@media (min-width:1024px){body:has(#elementor-popup-modal-864:not([style*="display: none"])) #pm-menu-btn{display:none}body:has(#elementor-popup-modal-864:not([style*="display: none"])) #pm-menu-close-d{display:flex}}
/* the drawer sits under the fixed header (header z-50 + shadow-md, drawer z-40) and under the side tabs (z-60); Elementor's popup has no z-index control */
#elementor-popup-modal-864{z-index:40}
/* below lg the source drawer is a full-screen overlay (fixed inset-0 z-80, lg:hidden) that covers the header, its own logo + close row on top */
@media (max-width:1023px){#elementor-popup-modal-864{z-index:80}}
/* safety net: the custom-breakpoint build of Elementor's frontend CSS omitted the generic mobile hide rule in one regeneration — same rule Elementor ships for the mobile range */
@media (max-width:639px){.elementor .elementor-hidden-mobile{display:none}}
/* reduced-motion honouring, verbatim from globals.css */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* ==== A.css ==== */
/* agent A — About Us family: Tailwind group-hover / transition choreography that has no native Elementor control */
/* statutory document cards: title turns maroon when the whole card is hovered (group-hover:text-maroon) */
.pm-doc:hover .pm-doc-title .elementor-heading-title{color:#BF1D26}
/* leadership person card: lifts 6px + photo zooms on hover (group-hover:-translate-y-1.5 / group-hover:scale-[1.03]); container transform has no hover control */
.pm-person{transition:transform .3s,box-shadow .3s}
.pm-person:hover{transform:translateY(-6px)}
.pm-person .pm-person-img img{transition:transform .5s}
.pm-person:hover .pm-person-img img{transform:scale(1.03)}
/* text+icon links that turn maroon on hover (statutory doc page "All documents") */
.pm-hov-maroon .elementor-heading-title,.pm-hov-maroon svg{transition:color .15s,stroke .15s}
.pm-hov-maroon:hover .elementor-heading-title{color:#BF1D26}
.pm-hov-maroon:hover svg{stroke:#BF1D26}
/* …at the specificity of Elementor's own per-element rule (.elementor-N .elementor-element.elementor-element-x .elementor-heading-title,
   0-4-0): the two rules above are 0-3-0 and lost, so the link stayed warm-gray on hover (hover audit, doc pages) */
.pm-hov-maroon:hover .elementor-widget-heading .elementor-heading-title{color:#BF1D26}
.pm-hov-maroon:hover .elementor-widget-icon .elementor-icon{color:#BF1D26}
.pm-hov-maroon:hover .elementor-widget-icon .elementor-icon svg{stroke:#BF1D26}
/* hover:underline underline-offset-4 on a text+icon link */
.pm-hov-underline:hover .elementor-heading-title{text-decoration:underline;text-underline-offset:4px}
/* Our Community overview cards: photo zooms (duration-700) and the arrow nudges up-right on card hover */
.pm-community-card .pm-zoom img{transition:transform .7s}
.pm-community-card:hover .pm-zoom img{transform:scale(1.05)}
.pm-community-card .elementor-icon{transition:transform .3s}
.pm-community-card:hover .elementor-icon{transform:translate(2px,-2px)}
/* icon widget strut fix (lib-A iconA / patchShared): Elementor's inline-block .elementor-icon inside a block wrapper inherits the body line box
   (16px/1.5) and adds ~7px of descender space; the source's lucide SVGs are display:block. Flex wrapper → widget height == icon size. */
.pm-ico .elementor-icon-wrapper{display:flex;justify-content:flex-start}
.pm-ico-c .elementor-icon-wrapper{justify-content:center}
.pm-ico-e .elementor-icon-wrapper{justify-content:flex-end}
/* heading widgets with tag <span> are inline → the widget's block line box (body 16px/1.5) sets a 24px strut per line instead of the heading's own
   line-height (source: text nodes inside inline-flex links with leading-snug). Block display → the typography line-height governs. */
.pm-span .elementor-heading-title{display:block}
/* nested accordion with h3 titles (community pages): the kit preflight's `.elementor-kit-6 h3{line-height:1.5em;font-weight:inherit}` (0,1,1) outranks the
   widget's own `:where(…) > .e-n-accordion-item-title-text` title typography (0,1,0), so the native 28px/600 never lands → restored at (0,2,0) */
.pm-acc-serif .e-n-accordion-item-title-text{line-height:28px;font-weight:600}
/* ==== B.css ==== */
/* Tailwind preflight margin reset (source globals: `@import "tailwindcss"` → `*{margin:0}`): since the Hello theme reset.css/theme.css were switched off (core, 2026-10-07) nothing zeroes
   the UA margins on block text any more → every text-editor <p> gained a 1em top margin and quotes/intros drifted. Reported to core for kit.js; kept here so every page renders like the source. */
p,h1,h2,h3,h4,h5,h6,blockquote,figure,hr,pre,dl,dd{margin:0}
/* Explore strip pills (shared.js, source ExploreLinks.tsx `hover:text-white` + icon `group-hover:text-white`): the kit's `.pm-pill:hover …` rules (0,3,0) lose to each widget's
   own colour rule `.elementor-N .elementor-element.elementor-element-X .elementor-heading-title` (0,4,0) / `… .elementor-icon svg` (0,4,1) → label/arrow never turn white. Specificity-boosted copies. */
.elementor .pm-pill:hover .elementor-widget-heading .elementor-heading-title{color:#fff}
.elementor .pm-pill:hover .elementor-widget-icon .elementor-icon{color:#fff}
.elementor .pm-pill:hover .elementor-widget-icon .elementor-icon svg{stroke:#fff}
/* ===== Agent B utilities — hover choreography / pseudo-element effects with no native Elementor control ===== */
/* HoverMediaCard (components/ui/HoverMediaCard.tsx): from lg the description panel slides up over the tile on hover */
.pm-hmc .pm-hmc-panel{transform:translateY(100%);transition:transform .5s ease-out;overflow-y:auto}
.pm-hmc:hover .pm-hmc-panel{transform:translateY(0)}
/* academics wing cards (app/(site)/academics/page.tsx): lg-gated grow + fade/slide reveal (Tailwind group-hover classes) */
.pm-wing{transition:flex-grow .5s ease-out}
.pm-wing-card{transition:box-shadow .3s}
.pm-wing .pm-wing-rest{transition:opacity .3s}
.pm-wing .pm-wing-grad{transition:opacity .5s}
.pm-wing .pm-wing-shade{opacity:0;transition:opacity .5s}
.pm-wing .pm-wing-copy{opacity:0;transition:opacity .3s}
.pm-wing .pm-wing-title{opacity:0;transform:translateY(-24px);transition:transform .5s,opacity .5s}
.pm-wing .pm-wing-desc{opacity:0;transform:translateY(24px);transition:transform .5s .1s,opacity .5s .1s}
@media (min-width:1024px){
.pm-wing:hover{flex-grow:2.5}
.pm-wing:hover .pm-wing-card{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}
.pm-wing:hover .pm-wing-rest,.pm-wing:hover .pm-wing-grad{opacity:0}
.pm-wing:hover .pm-wing-shade,.pm-wing:hover .pm-wing-copy{opacity:1}
.pm-wing:hover .pm-wing-title,.pm-wing:hover .pm-wing-desc{opacity:1;transform:none}
}
/* globals.css .img-hover-pop (academics programme row image) + Tailwind group-hover:scale-105 on the photo */
.pm-pop{transition:transform .4s ease,box-shadow .4s ease;box-shadow:0 6px 20px rgba(0,0,0,.15)}
.pm-pop:hover{transform:scale(1.03) translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.28)}
.pm-pop .pm-pop-img{transition:transform .7s}
.pm-pop:hover .pm-pop-img{transform:scale(1.05)}
/* NewsCorner card: photo zoom + gold→maroon title on hover (group-hover) */
.pm-news .pm-news-img{transition:transform .7s}
.pm-news:hover .pm-news-img{transform:scale(1.05)}
.pm-news .pm-news-title .elementor-heading-title{transition:color .15s}
.pm-news:hover .pm-news-title.elementor-widget-heading .elementor-heading-title{color:#BF1D26}
/* Kautukam club tile: photo zoom + shadow-sm→shadow-xl on hover */
.pm-club{transition:box-shadow .3s}
.pm-club:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1)}
.pm-club .pm-club-img{transition:transform .5s}
.pm-club:hover .pm-club-img{transform:scale(1.05)}
/* ImageSlideshow (components/ui/ImageSlideshow.tsx): translucent blurred arrow discs + the "n / N" counter pill */
.pm-slideshow .elementor-swiper-button{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:background-color .15s}
.pm-slideshow .elementor-swiper-button svg{stroke:#fff}
.pm-slideshow .swiper-pagination-fraction{inline-size:auto;background-image:linear-gradient(rgba(0,0,0,.3),rgba(0,0,0,.3));border-radius:9999px;padding-inline:12px;padding-block:4px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);line-height:16px}
/* Testimonials tab pills (components/sections/Testimonials.tsx): active pill has no border, inactive has a 2px one */
.pm-ttabs .e-n-tab-title{transition:all .3s}
/* ==== C.css ==== */
/* agent C — hover choreography driven by a parent link/card hover (no native "group-hover" control).
   Specificity: Elementor's per-widget rules are `.elementor-<post> .elementor-element.elementor-element-<id> <target>` = (0,3,0)+target and
   the page sheet loads after the kit, so every rule below names the widget wrapper's own classes (.elementor-element.elementor-widget-*)
   to out-rank them; transitions use Tailwind's defaults (transition-colors/-all 150ms, duration-300 where the source says so). */
.pm-link .elementor-heading-title,.pm-link .elementor-icon svg{transition:color .15s,stroke .15s}
.pm-hv-dark:hover .elementor-element.elementor-widget-heading .elementor-heading-title{color:#9D181F}.pm-hv-dark:hover .elementor-element.elementor-widget-icon .elementor-icon svg{stroke:#9D181F}
.pm-hv-maroon:hover .elementor-element.elementor-widget-heading .elementor-heading-title{color:#BF1D26}.pm-hv-maroon:hover .elementor-element.elementor-widget-icon .elementor-icon svg{stroke:#BF1D26}
.pm-hv-white:hover .elementor-element.elementor-widget-heading .elementor-heading-title{color:#fff}.pm-hv-white:hover .elementor-element.elementor-widget-icon .elementor-icon svg{stroke:#fff}
.pm-hv-shift .elementor-widget-icon{transition:transform .3s}.pm-hv-shift:hover .elementor-widget-icon{transform:translateX(4px)}
/* group-hover:gap-3 on a card's trailing-arrow row (lib-C linkRow: the arrow's margin-inline-start is the 8px gap) → 12px on card hover */
.pm-hv-shift-list .elementor-element.elementor-widget-icon-list .elementor-icon-list-icon{transition:margin-inline-start .15s}
.pm-hv-shift-list:hover .elementor-element.elementor-widget-icon-list .elementor-icon-list-icon{margin-inline-start:12px}
/* careers benefit cards (hover:-translate-y-1.5 + bg/border/shadow are native container hover controls; the rest is group-hover):
   top accent strip fades in, icon tile → gradient with transparent border, glyph → white + scale(1.1) rotate(3deg), title → maroon, number → ink/8 */
.pm-benefit .pm-strip{opacity:0}.pm-benefit:hover .pm-strip{opacity:1}
.pm-benefit .pm-tile.elementor-element{transition:background-image .3s,border-color .3s}.pm-benefit:hover .pm-tile.elementor-element{border-color:transparent}
.pm-benefit .pm-tile .elementor-element.elementor-widget-icon .elementor-icon svg{transition:transform .3s,stroke .3s}
.pm-benefit:hover .pm-tile .elementor-element.elementor-widget-icon .elementor-icon svg{stroke:#fff;transform:scale(1.1) rotate(3deg)}
.pm-benefit .pm-btitle.elementor-element .elementor-heading-title{transition:color .15s}.pm-benefit:hover .pm-btitle.elementor-element .elementor-heading-title{color:#BF1D26}
.pm-benefit .pm-bnum.elementor-element .elementor-heading-title{transition:color .15s;user-select:none}.pm-benefit:hover .pm-bnum.elementor-element .elementor-heading-title{color:rgba(34,29,34,.08)}
.pm-benefit-amber .pm-strip{background-image:linear-gradient(to right,#fbbf24,#eab308)}.pm-benefit-amber:hover .pm-tile.elementor-element{background-image:linear-gradient(to bottom right,#f59e0b,#eab308)}
.pm-benefit-sky .pm-strip{background-image:linear-gradient(to right,#38bdf8,#6366f1)}.pm-benefit-sky:hover .pm-tile.elementor-element{background-image:linear-gradient(to bottom right,#0ea5e9,#6366f1)}
.pm-benefit-violet .pm-strip{background-image:linear-gradient(to right,#a78bfa,#d946ef)}.pm-benefit-violet:hover .pm-tile.elementor-element{background-image:linear-gradient(to bottom right,#8b5cf6,#d946ef)}
.pm-benefit-emerald .pm-strip{background-image:linear-gradient(to right,#34d399,#14b8a6)}.pm-benefit-emerald:hover .pm-tile.elementor-element{background-image:linear-gradient(to bottom right,#10b981,#14b8a6)}
/* careers submit: gap-2 hover:gap-3 (transition-all 150ms). `gap` is rejected by the per-element validator and Elementor writes the icon
   spacing as `gap` on the content wrapper, so the extra 4px is an uncontested logical margin on the icon span (same geometry: the centred
   content widens by 4px → text 2px left, arrow 2px right) */
.pm-form-shift .elementor-button .elementor-button-icon{transition:margin-inline-start .15s}.pm-form-shift .elementor-button:hover .elementor-button-icon{margin-inline-start:4px}
/* enquiry form: mid-form section heading placed through the Pro form's HTML field (h3 + gold rule). The Pro form only writes a field's
   css_classes onto input/select elements (never onto an html field group), so the rules key on the markup's own classes. */
.pm-fh-title{margin:0 0 4px;line-height:28px}.pm-fh-rule{width:48px;height:1px;background:#C9A84C}
/* Tailwind v4 preflight rules the base reset lacks: native date inputs carry 1px block padding inside the edit field */
::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-date-and-time-value{min-height:1lh}
/* Pro form submit buttons: the Form widget has no button Box Shadow control and `box-shadow` is a per-element custom-CSS
   property the bridge validator rejects (it must be a native control), so the source's shadow-md / hover:shadow-lg are
   written here verbatim (both Tailwind layers). .pm-fsh = shadow-md at rest (tc, careers, enquiry, open-house);
   .pm-fsh-lg = hover:shadow-lg (enquiry, open-house). The source buttons use `transition-colors`, so the shadow change is
   deliberately not transitioned. */
.elementor-element.pm-fsh .elementor-button{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}
.elementor-element.pm-fsh-lg .elementor-button:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}
/* ==== D.css ==== */
/* ==== D.css — agent D (awards, moments, achievements, campus-tour, newsletters, news, events, search) ==== */
/* .img-hover-pop (globals.css): the tile lifts and deepens its shadow on hover — a transform+shadow hover choreography on a container has no native control */
.pm-pop{transition:transform .4s ease,box-shadow .4s ease}
.pm-pop:hover{transform:scale(1.03) translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.28)}
/* group-hover:scale-105 duration-700 on the photo inside a clipped tile */
.pm-zoom img{transition:transform .7s}
.pm-zoom:hover img,.pm-group:hover .pm-g-zoom img{transform:scale(1.05)}
.pm-g-zoom img{transition:transform .7s}
/* Tailwind `group` hover choreography (PostCard / FeaturedPost / link cards / newsletter covers) */
.pm-group .pm-g-maroon .elementor-heading-title,.pm-group .pm-g-maroon-icon svg,.pm-group .pm-g-slide,.pm-group .pm-g-shade,.pm-group .pm-g-play{transition:all .15s}
.pm-group .pm-g-shade{transition:background-color .3s}
.pm-group .pm-g-play{transition:transform .3s,background-color .3s}
.pm-group:hover .pm-g-maroon .elementor-heading-title{color:#BF1D26}
.pm-group:hover .pm-g-maroon-icon svg{stroke:#BF1D26}
.pm-group:hover .pm-g-slide{transform:translateX(4px)}
.pm-group:hover .pm-g-shade{background-color:rgba(0,0,0,.25)}
.pm-group:hover .pm-g-play{transform:scale(1.1);background-color:#fff}
/* hover:gap-2 / hover:gap-3 on inline-flex "Read more" links (gap has no hover control) */
.pm-gap-8{transition:gap .15s}.pm-gap-8:hover{gap:8px}
.pm-gap-12{transition:gap .15s}.pm-gap-12:hover{gap:12px}
/* line-clamp-2 / line-clamp-3 (PostCard title and excerpt) */
.pm-clamp-2 .elementor-heading-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.pm-clamp-3 .elementor-widget-container{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
/* sr-only (events hero keeps its h1 for assistive tech only) */
.pm-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
/* Pagination.tsx look on the Loop Grid pagination: 44px rounded boxes, bordered, current = maroon, lucide chevrons for prev/next;
   Elementor renders the first/last-page prev/next as an empty <span class="page-numbers prev|next"> → styled as the source's disabled box
   (border gray-100, chevron gray-300, cursor not-allowed) */
.pm-pagi .elementor-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center}
.pm-pagi .elementor-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;border-radius:12px;border:1px solid #e5e7eb;color:#2D2D2D;font:500 14px/20px Geist,sans-serif;transition:background-color .15s}
.pm-pagi .elementor-pagination a.page-numbers:hover{background-color:#F2ECE2}
.pm-pagi .elementor-pagination .page-numbers.current{background-color:#BF1D26;border-color:#BF1D26;color:#fff}
.pm-pagi .elementor-pagination .page-numbers.dots{border-color:transparent;color:#6B6B6B}
.pm-pagi .elementor-pagination .page-numbers.prev,.pm-pagi .elementor-pagination .page-numbers.next{font-size:0;color:transparent;background-repeat:no-repeat;background-position:center;background-size:16px 16px}
.pm-pagi .elementor-pagination a.page-numbers.prev{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232D2D2D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E")}
.pm-pagi .elementor-pagination a.page-numbers.next{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232D2D2D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}
.pm-pagi .elementor-pagination span.page-numbers.prev,.pm-pagi .elementor-pagination span.page-numbers.next{border-color:#f3f4f6;cursor:not-allowed}
.pm-pagi .elementor-pagination span.page-numbers.prev{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d1d5db' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E")}
.pm-pagi .elementor-pagination span.page-numbers.next{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d1d5db' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}
/* category filter pills (CategoryFilter.tsx) hover: border/bg maroon + white label */
.pm-filter-pill .elementor-heading-title{transition:color .15s}
.pm-filter-pill:hover .elementor-heading-title{color:#fff}
/* Tailwind prose-lg on the post body (PostDetail.tsx): paragraph rhythm inside the Post Content widget has no per-paragraph control */
.pm-prose p{margin-block:1.3333333em}
.pm-prose>:first-child,.pm-prose>*>:first-child,.pm-prose .elementor-widget-container>:first-child{margin-block-start:0}
.pm-prose>:last-child,.pm-prose>*>:last-child,.pm-prose .elementor-widget-container>:last-child{margin-block-end:0} /* optimized markup: no inner wrapper, the <p> is a direct child */
.pm-prose a{color:#BF1D26;text-decoration:underline;font-weight:500}
.pm-prose img{border-radius:16px}
.pm-prose h1,.pm-prose h2,.pm-prose h3,.pm-prose h4{font-family:"Playfair Display",Georgia,serif;color:#2D2D2D;font-weight:700}
/* Tailwind preflight margin reset (source globals.css). Hello Elementor's reset.css/theme.css were switched off site-wide on 2026-10-07
   (hello_elementor_settings_hello_style / _hello_theme = true), which had been supplying `p{margin-block-start:0}` and the list/heading
   margin resets; without them every text-editor paragraph gained the UA 16px top margin. The kit paragraph-spacing control only sets margin-block-end. */
blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}
dd,dl,dt,li,ol,ul{margin-block-start:0;margin-block-end:0}
/* PostCard grid rows: the source's `grid md:grid-cols-2 gap-8` keeps auto rows and stretches both cards in a row to the taller one.
   Elementor's Loop Grid stretches only the `.e-loop-item` wrapper, not the card container inside it, and its own "Equal height"
   switch additionally writes `grid-auto-rows:1fr` (every row on the page as tall as the tallest row), which the source does not do. */
.e-loop-item>.e-con.pm-cardfill{height:100%}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Fraunces';
	font-style: normal;
	font-weight: 600;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/fraunces-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Fraunces';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/fraunces-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Fraunces';
	font-style: normal;
	font-weight: 800;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/fraunces-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Fraunces';
	font-style: normal;
	font-weight: 900;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/fraunces-normal-latin.woff2') format('woff2');
}
/* End Custom Fonts CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Josefin Sans';
	font-style: normal;
	font-weight: 300;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/josefin-sans-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Josefin Sans';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/josefin-sans-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Josefin Sans';
	font-style: normal;
	font-weight: 600;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/josefin-sans-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Josefin Sans';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/josefin-sans-normal-latin.woff2') format('woff2');
}
/* End Custom Fonts CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Geist';
	font-style: normal;
	font-weight: 300;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/geist-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Geist';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/geist-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Geist';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/geist-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Geist';
	font-style: normal;
	font-weight: 600;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/geist-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Geist';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/geist-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Geist';
	font-style: normal;
	font-weight: 800;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/geist-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Geist';
	font-style: normal;
	font-weight: 900;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/geist-normal-latin.woff2') format('woff2');
}
/* End Custom Fonts CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Instrument Sans';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/instrument-sans-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Instrument Sans';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/instrument-sans-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Instrument Sans';
	font-style: normal;
	font-weight: 600;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/instrument-sans-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Instrument Sans';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/instrument-sans-normal-latin.woff2') format('woff2');
}
/* End Custom Fonts CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/playfair-display-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/playfair-display-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 600;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/playfair-display-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/playfair-display-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 800;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/playfair-display-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Playfair Display';
	font-style: italic;
	font-weight: 400;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/playfair-display-italic-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Playfair Display';
	font-style: italic;
	font-weight: 500;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/playfair-display-italic-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Playfair Display';
	font-style: italic;
	font-weight: 600;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/playfair-display-italic-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Playfair Display';
	font-style: italic;
	font-weight: 700;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/playfair-display-italic-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Playfair Display';
	font-style: italic;
	font-weight: 800;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/playfair-display-italic-latin.woff2') format('woff2');
}
/* End Custom Fonts CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Caveat';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/caveat-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Caveat';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/caveat-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Caveat';
	font-style: normal;
	font-weight: 600;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/caveat-normal-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Caveat';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/caveat-normal-latin.woff2') format('woff2');
}
/* End Custom Fonts CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Lobster';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://kwsnext.khaitanworld.com/wp-content/uploads/2026/10/lobster-normal-latin.woff2') format('woff2');
}
/* End Custom Fonts CSS */