/*!
Theme Name: Ohio-Child
Theme URI: http://ohio.colabr.io/
Author: Colabrio
Author URI: http://colabr.io/
Description: Ohio is a WordPress theme bundled with premium plugins to build a modern and functional website.
Version: 3.2.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: ohio
Text Domain: ohio-child
Tags: ajax, customizer, ecommerce, portfolio, minimal, page builder, responsive, multipurpose, shop, store, woocommerce, wpml

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/
*/

/* ============================================================
   UDUPI GROUP OF INSTITUTIONS – CUSTOM THEME CSS
   Design inspired by amrita.edu | Custom colors for Udupi
   ============================================================ */

/* ─── CSS Variables ─────────────────────────────────────────── */
:root {
  --udupi-primary:      #1B3A5C;
  --udupi-primary-dark: #0D2137;
  --udupi-accent:       #FFD92A;
  --udupi-red:          #D00846;
  --udupi-light-bg:     #F5F5F0;
  --udupi-card-sage:    #E0E7D7;
  --udupi-card-beige:   #EFE1D3;
  --udupi-card-blue:    #AFD8E9;
  --udupi-text:         #262626;
  --udupi-white:        #FFFFFF;
  --udupi-border:       rgba(0, 0, 0, 0.08);
}

/* ─── Base Typography ────────────────────────────────────────── */
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  color: var(--udupi-text);
  font-size: 16px;
  line-height: 1.7;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Anton', sans-serif;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.15;
}

a {
  color: var(--udupi-primary);
  transition: color 0.25s ease;
}
a:hover { color: var(--udupi-red); }

/* ─── Global Buttons ─────────────────────────────────────────── */
.udupi-btn {
  display: inline-block;
  padding: 13px 32px;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  border-radius: 4px;
  transition: all 0.3s ease;
  text-decoration: none;
  cursor: pointer;
}
.udupi-btn-accent {
  background: var(--udupi-accent);
  color: var(--udupi-primary-dark) !important;
}
.udupi-btn-accent:hover {
  background: #f0cc00;
  color: var(--udupi-primary-dark) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(255, 217, 42, 0.4);
}
.udupi-btn-outline {
  border: 2px solid var(--udupi-white);
  color: var(--udupi-white) !important;
  background: transparent;
}
.udupi-btn-outline:hover {
  background: var(--udupi-white);
  color: var(--udupi-primary-dark) !important;
}
.udupi-btn-primary {
  background: var(--udupi-primary);
  color: var(--udupi-white) !important;
}
.udupi-btn-primary:hover {
  background: var(--udupi-primary-dark);
  color: var(--udupi-white) !important;
  transform: translateY(-2px);
}

/* ─── Top Bar ────────────────────────────────────────────────── */
.udupi-top-bar {
  background: var(--udupi-red);
  color: var(--udupi-white);
  font-size: 13px;
  padding: 0px 0;
  position: relative;
  z-index: 9999;
  font-family: 'Inter', sans-serif;
}
/* Align Ohio's page-container inside all custom sections to nav layout (max 1600px) */
.udupi-top-bar .page-container,
.udupi-cta-section .page-container,
.udupi-footer .page-container,
.udupi-footer-copyright .page-container {
  max-width: 1600px !important;
  margin: 0 auto !important;
  padding: 0 40px !important;
}
@media (max-width: 767px) {
  .udupi-top-bar .page-container,
  .udupi-cta-section .page-container,
  .udupi-footer .page-container,
  .udupi-footer-copyright .page-container {
    padding: 0 16px !important;
  }
}

/* ── Inner page content: full-width (override Ohio's 86vw laptop cap) ──────── */
/* Ohio uses .page-container.bottom-offset as the main content wrapper on all
   inner pages; its --clb-container-width-laptop resolves to 86vw ≈ 1100px.
   Override to match our 1600px site-wide layout. */
.page-container.bottom-offset {
  max-width: 1600px !important;
  padding-left: 40px !important;
  padding-right: 40px !important;
}
@media (max-width: 767px) {
  .page-container.bottom-offset {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* ── Inner page content area: left padding so text doesn't flush the edge ──── */
.page-content .entry-content,
.page-content .page-content,
.content-area .entry-content {
  padding-left: 8px;
}
/* Wide content blocks inside entry should still be full width */
.entry-content .vc_row,
.entry-content .wp-block-group,
.entry-content .alignfull,
.entry-content .alignwide {
  margin-left: -8px !important;
  width: calc(100% + 8px) !important;
}
.udupi-top-bar-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.udupi-top-right { display: flex; align-items: center; justify-content: flex-end; gap: 22px; }
/* Contact block — two phone numbers stack vertically (col 1), email + address col 2 */
.udupi-top-contact { display: grid; grid-template-columns: max-content max-content; row-gap: 6px; column-gap: 0; align-items: center; }
/* Social icons (Facebook / Instagram / YouTube) — editable in Customizer → Header Options → Social Links */
.udupi-top-social { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.udupi-top-social-btn { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; color: #fff !important; font-size: 18px; line-height: 1; text-decoration: none !important; box-shadow: 0 0 0 1px rgba(255,255,255,0.20); transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.udupi-top-social-btn i { color: #fff !important; display: inline-block; line-height: 1; }
/* each social icon in its own brand colour */
.udupi-top-social-btn[aria-label="Facebook"]  { background: #1877F2 !important; }
.udupi-top-social-btn[aria-label="Instagram"] { background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285AEB 90%) !important; }
.udupi-top-social-btn[aria-label="YouTube"]   { background: #FF0000 !important; }
.udupi-top-social-btn:hover, .udupi-top-social-btn:focus-visible { transform: translateY(-2px); filter: brightness(1.1); box-shadow: 0 5px 14px rgba(0,0,0,0.32); }
/* Large screens (wider than a 13" laptop): header runs FULL WIDTH (no boxed 1600px margins),
   so the emblem sits further left and the right-hand contact/social fill the gutter.
   The nav menu centres in the freed space → balanced logo-left / menu-centre / CTA-right. */
@media (min-width: 1367px) {
  .udupi-top-bar .page-container,
  .udupi-nav-inner { max-width: none !important; }
  .udupi-nav-inner > ul.udupi-menu-list,
  .udupi-nav-inner > ul { justify-content: center; }
}
.udupi-top-bar .top-item a { color: inherit; text-decoration: none; }
/* No underline on hover here, just bolder text — cancel the parent theme's animated
   background-image underline (`body.links-underline`, applies to every plain <a>) since its
   higher-specificity :not() chain would otherwise win over a plain override. */
.udupi-top-bar .top-item a:hover {
  color: #fff;
  font-weight: 700;
  background-image: none !important;
  animation: none !important;
}
.udupi-top-bar .top-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, 0.85);
  padding: 0 18px 0 0;
  border-right: 1px solid rgba(255, 255, 255, 0.15);
  margin-right: 18px;
  white-space: nowrap;
  /* equal-width digits so the two stacked phone numbers end at the same point */
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}
.udupi-top-contact .top-item:nth-child(even) {
  border-right: none;
  margin-right: 0;
  padding-right: 0;
}
.udupi-top-bar .top-item i {
  color: var(--udupi-accent);
  font-size: 12px;
  width: 14px;
  text-align: center;
  flex-shrink: 0;
}
.udupi-apply-btn {
  background: var(--udupi-red);
  color: var(--udupi-white) !important;
  padding: 5px 18px;
  border-radius: 3px;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.8px;
  text-decoration: none !important;
  transition: background 0.25s ease;
  white-space: nowrap;
}
.udupi-apply-btn:hover {
  background: var(--udupi-accent);
  color: var(--udupi-primary-dark) !important;
}

/* ─── Header ─────────────────────────────────────────────────── */
.header,
.header.header-1 {
  background: var(--udupi-white) !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07) !important;
  border-bottom: 3px solid var(--udupi-accent);
}
.header .branding .logo img,
.header .branding a img {
  max-height: 65px !important;
}

/* ─── Navigation ─────────────────────────────────────────────── */
#site-navigation .menu > li > a,
.header .nav .menu > li > a,
.nav .menu > li > a {
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.6px !important;
  color: var(--udupi-primary-dark) !important;
  padding: 22px 14px !important;
  transition: color 0.2s ease !important;
}
#site-navigation .menu > li > a:hover,
#site-navigation .menu > li.current-menu-item > a,
#site-navigation .menu > li.current-menu-parent > a,
#site-navigation .menu > li:hover > a {
  color: var(--udupi-red) !important;
}

/* Dropdown */
#site-navigation .sub-menu,
.nav .sub-menu {
  background: var(--udupi-white) !important;
  border-top: 3px solid var(--udupi-accent) !important;
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.12) !important;
  border-radius: 0 0 6px 6px !important;
  min-width: 220px !important;
}
#site-navigation .sub-menu li a,
.nav .sub-menu li a {
  font-size: 13px !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  color: var(--udupi-text) !important;
  padding: 10px 20px !important;
  border-bottom: 1px solid var(--udupi-border) !important;
}
#site-navigation .sub-menu li:last-child a {
  border-bottom: none !important;
}
#site-navigation .sub-menu li a:hover,
.nav .sub-menu li a:hover {
  background: var(--udupi-light-bg) !important;
  color: var(--udupi-red) !important;
  padding-left: 26px !important;
}

/* Sticky header */
.header.-sticky-active,
.header.header-sticky-active {
  background: var(--udupi-white) !important;
  box-shadow: 0 3px 20px rgba(0, 0, 0, 0.12) !important;
}

/* ─── Mobile Navigation ──────────────────────────────────────── */
.nav .slide-in-overlay,
.nav .slide-in-overlay .holder {
  background: var(--udupi-primary-dark) !important;
}
.nav .slide-in-overlay .menu li a {
  color: rgba(255, 255, 255, 0.9) !important;
  font-family: 'Inter', sans-serif !important;
  border-bottom-color: rgba(255, 255, 255, 0.1) !important;
}
.nav .slide-in-overlay .menu li a:hover {
  color: var(--udupi-accent) !important;
}
.nav .slide-in-overlay .menu .sub-menu {
  background: rgba(0, 0, 0, 0.2) !important;
  border-top: none !important;
}
.mobile-nav-icon span,
.hamburger-icon span {
  background: var(--udupi-primary-dark) !important;
}

/* ─── Page Headline / Breadcrumb ─────────────────────────────── */
.page-headline,
.page-title-section {
  background: var(--udupi-primary) !important;
  padding: 50px 0 !important;
}
.page-headline .title,
.page-headline h1,
.page-headline h2 {
  color: var(--udupi-white) !important;
  font-family: 'Anton', sans-serif !important;
}
.breadcrumbs,
.breadcrumbs a,
.breadcrumbs span {
  color: rgba(255, 255, 255, 0.75) !important;
}
.breadcrumbs a:hover { color: var(--udupi-accent) !important; }

/* ─── Homepage Content Wrapper ───────────────────────────────── */
.udupi-homepage-content {
  width: 100%;
  overflow-x: hidden;
}
.udupi-homepage-content > .site-main {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}
.udupi-homepage-content .vc_row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ─── Why Choose Us Items ────────────────────────────────────── */
.udupi-why-item {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  margin-bottom: 22px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--udupi-border);
}
.udupi-why-item:last-child { border-bottom: none; margin-bottom: 0; }
.udupi-why-icon {
  font-size: 28px;
  min-width: 42px;
  line-height: 1;
  margin-top: 2px;
}
.udupi-why-item strong {
  display: block;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: var(--udupi-primary-dark);
  margin-bottom: 4px;
}
.udupi-why-item p {
  margin: 0;
  font-size: 14px;
  color: #555;
  line-height: 1.6;
}

/* ─── Accreditation Badges ───────────────────────────────────── */
.udupi-accred-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 20px;
}
.udupi-accred-badge {
  width: 90px;
  height: 90px;
  background: var(--udupi-primary);
  color: var(--udupi-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Anton', sans-serif;
  font-size: 18px;
  letter-spacing: 1px;
  transition: transform 0.3s ease, background 0.3s ease;
}
.udupi-accred-badge:hover,
.udupi-accred-item:hover .udupi-accred-badge {
  background: var(--udupi-accent);
  color: var(--udupi-primary-dark);
  transform: scale(1.08);
}
.udupi-accred-item strong {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--udupi-text);
  text-align: center;
  line-height: 1.4;
}

/* ─── Contact Info ───────────────────────────────────────────── */
.udupi-contact-info { margin-bottom: 25px; }
.udupi-contact-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
  font-size: 14px;
  color: var(--udupi-text);
}
.udupi-contact-row i {
  color: var(--udupi-primary);
  font-size: 15px;
  margin-top: 2px;
  min-width: 16px;
}
.udupi-contact-row a { color: var(--udupi-text); text-decoration: none; }
.udupi-contact-row a:hover { color: var(--udupi-red); }

/* ─── Section Heading Accent Line ────────────────────────────── */
.vc_custom_heading.udupi-section-heading::after,
.udupi-section-title::after {
  content: '';
  display: block;
  width: 55px;
  height: 4px;
  background: var(--udupi-accent);
  margin: 14px auto 0;
  border-radius: 2px;
}

/* Program cards hover effect */
.vc_column_text [class*="udupi-card"] {
  border-radius: 10px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.vc_column_inner:hover .vc_column_text {
  transform: translateY(-4px);
}

/* ─── Pre-footer CTA Section ─────────────────────────────────── */
.udupi-cta-section {
  background: var(--udupi-primary);
  padding: 65px 0;
}
.udupi-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.udupi-cta-section .cta-text h3 {
  font-family: 'Anton', sans-serif;
  color: var(--udupi-white);
  font-size: 30px;
  margin: 0 0 8px;
  text-transform: uppercase;
}
.udupi-cta-section .cta-text p {
  color: rgba(255, 255, 255, 0.8);
  font-size: 15px;
  margin: 0;
}
.udupi-cta-section .cta-buttons {
  display: flex;
  gap: 15px;
  flex-shrink: 0;
}

/* ─── Footer ─────────────────────────────────────────────────── */
.udupi-footer {
  background: var(--udupi-primary-dark) !important;
}
.udupi-footer-main {
  padding: 65px 0 45px;
}
.udupi-footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 40px;
}
/* Quick Links — single horizontal row above the copyright */
/* Quick Links — sits in the addresses (right) column, beside the map, under the addresses */
.udupi-footer-addresses .udupi-footer-quicklinks {
  grid-column: 1 / -1;
  margin-top: 4px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.10);
}
.udupi-fql {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 0;
}
.udupi-fql a {
  color: rgba(255, 255, 255, 0.72);
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  line-height: 1.3;
  padding-right: 14px;
  margin-right: 14px;
  border-right: 1px solid rgba(255, 255, 255, 0.18);
  text-decoration: none;
  transition: color .15s ease;
}
.udupi-fql a:last-child { border-right: none; margin-right: 0; padding-right: 0; }
.udupi-fql a:hover { color: var(--udupi-accent); }
.udupi-footer-title {
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.2px !important;
  color: var(--udupi-accent) !important;
  margin: 0 0 18px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid rgba(255, 217, 42, 0.25) !important;
}
.udupi-footer-about {
  color: rgba(255, 255, 255, 0.65);
  font-size: 13px;
  line-height: 1.8;
  margin-bottom: 20px;
}
.udupi-footer-contact p {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 8px;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-variant-numeric: tabular-nums;   /* equal-width digits so the two phone numbers line up at both ends */
}
.udupi-footer-contact p i {
  color: var(--udupi-accent);
  font-size: 12px;
  margin-top: 3px;
  min-width: 14px;
}
.udupi-footer-contact a {
  color: rgba(255, 255, 255, 0.7) !important;
  text-decoration: none;
}
.udupi-footer-contact a:hover { color: var(--udupi-accent) !important; }

.udupi-footer-links {
  list-style: none;
  margin: 0;
  padding: 0;
}
.udupi-footer-links li {
  padding: 5px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 13px;
  color: rgba(255, 255, 255, 0.65);
}
.udupi-footer-links li:last-child { border-bottom: none; }
.udupi-footer-links a {
  color: rgba(255, 255, 255, 0.65) !important;
  text-decoration: none;
  transition: color 0.2s ease, padding-left 0.2s ease;
  display: block;
}
.udupi-footer-links a:hover {
  color: var(--udupi-accent) !important;
  padding-left: 6px;
}

/* Social buttons */
.udupi-social-links {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.udupi-social-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff !important;
  font-size: 15px;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
.udupi-social-btn i { color: #fff !important; }
/* each social icon in its own brand colour */
.udupi-social-btn[aria-label="Facebook"]  { background: #1877F2 !important; }
.udupi-social-btn[aria-label="Instagram"] { background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285AEB 90%) !important; }
.udupi-social-btn[aria-label="YouTube"]   { background: #FF0000 !important; }
.udupi-social-btn:hover {
  transform: translateY(-3px);
  filter: brightness(1.1);
  box-shadow: 0 5px 14px rgba(0,0,0,0.32);
}
/* "Follow Us" social block in footer column 1 */
.udupi-footer-social-label {
  display: block;
  margin: 20px 0 11px;
  color: rgba(255, 255, 255, 0.55);
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.udupi-footer-social { margin-bottom: 0; }

/* Copyright bar */
.udupi-footer-copyright {
  background: rgba(0, 0, 0, 0.35);
  padding: 16px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.udupi-copyright-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: 6px;
  flex-wrap: wrap;
}
.udupi-footer-copyright span {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
  font-family: 'Inter', sans-serif;
}

/* Always hide Ohio's default footer — we always use our custom footer */
.site-footer:not(.udupi-footer) {
  display: none;
}

/* ─── WPBakery / VC overrides ────────────────────────────────── */
.vc_row.wpb_row {
  margin-bottom: 0 !important;
}
.wpb_wrapper .vc_column_text p:last-child { margin-bottom: 0; }

/* ─── Contact Form 7 styling ─────────────────────────────────── */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid var(--udupi-border);
  border-radius: 5px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: var(--udupi-text);
  background: var(--udupi-white);
  transition: border-color 0.2s ease;
  box-sizing: border-box;
  margin-bottom: 15px;
}
.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
  outline: none;
  border-color: var(--udupi-primary);
}
.wpcf7-form textarea { min-height: 130px; resize: vertical; }
.wpcf7-form input[type="submit"] {
  background: var(--udupi-primary);
  color: var(--udupi-white);
  border: none;
  padding: 13px 36px;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 1px;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.25s ease;
  width: auto;
}
.wpcf7-form input[type="submit"]:hover {
  background: var(--udupi-red);
}

/* ─── General sections ───────────────────────────────────────── */
.vc_row.vc_row-has-fill > .vc_column_inner > .wpb_wrapper {
  padding-top: 0;
  padding-bottom: 0;
}

/* Slider Revolution on homepage */
.rev_slider_wrapper {
  max-height: 680px;
}

/* ─── Responsive ─────────────────────────────────────────────── */
@media (max-width: 1200px) {
  .udupi-footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 35px;
  }
}

@media (max-width: 991px) {
  .udupi-cta-inner {
    flex-direction: column;
    text-align: center;
  }
  .udupi-cta-section .cta-buttons {
    justify-content: center;
  }
  .udupi-top-left .top-item:last-child {
    display: none; /* hide map item on tablet */
  }
}

@media (max-width: 767px) {
  /* top bar is kept on mobile (centered college-name row) — see consolidated header block */

  .udupi-footer-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .udupi-copyright-inner {
    flex-direction: column;
    text-align: center;
  }
  .udupi-cta-section .cta-text h3 { font-size: 24px; }

  /* VC columns stack on mobile */
  .vc_column_inner[class*="width"] {
    width: 100% !important;
    margin-bottom: 20px;
  }
}

@media (max-width: 480px) {
  .udupi-accred-item { padding: 10px; }
  .udupi-accred-badge { width: 70px; height: 70px; font-size: 14px; }
}

/* ════════════════════════════════════════════════════════════════
   HOMEPAGE SECTIONS — BEM component styles
   ════════════════════════════════════════════════════════════════ */

/* ── Hide Ohio demo-specific UI ─────────────────────────────── */
.scheme-switcher,
.oh-scheme-switcher,
[class*="scheme-switch"],
.side-social-links,
.oh-side-social,
[class*="side-social"],
.ohio-color-switcher,
.color-switcher-toggle { display: none !important; }

/* ── Button variants (BEM double-dash) ──────────────────────── */
.udupi-btn--primary {
  background: var(--udupi-accent);
  color: var(--udupi-primary-dark) !important;
}
.udupi-btn--primary:hover {
  background: #f0cc00;
  color: var(--udupi-primary-dark) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(255,217,42,0.35);
}
.udupi-btn--outline {
  border: 2px solid rgba(255,255,255,0.7);
  color: var(--udupi-white) !important;
  background: transparent;
}
.udupi-btn--outline:hover {
  border-color: var(--udupi-white);
  background: var(--udupi-white);
  color: var(--udupi-primary-dark) !important;
}
.udupi-btn--yellow {
  background: var(--udupi-accent);
  color: var(--udupi-primary-dark) !important;
  font-weight: 700;
}
.udupi-btn--yellow:hover {
  background: #f0cc00;
  transform: translateY(-2px);
}
.udupi-btn--outline-white {
  border: 2px solid rgba(255,255,255,0.6);
  color: var(--udupi-white) !important;
  background: transparent;
}
.udupi-btn--outline-white:hover {
  background: rgba(255,255,255,0.12);
  color: var(--udupi-white) !important;
  border-color: var(--udupi-white);
}

/* ── Hero Section ───────────────────────────────────────────── */
.udupi-hero {
  display: flex;
  align-items: center;
  min-height: 88vh;
  background: var(--udupi-primary);
  background-image: linear-gradient(135deg, #1B3A5C 0%, #0D2137 60%, #162d48 100%);
  padding: 80px 60px 60px;
  position: relative;
  overflow: hidden;
  gap: 40px;
}
.udupi-hero::before {
  content: '';
  position: absolute;
  right: -100px; top: -100px;
  width: 600px; height: 600px;
  border-radius: 50%;
  background: rgba(255,217,42,0.04);
  pointer-events: none;
}
.udupi-hero__content {
  flex: 1;
  max-width: 620px;
  color: var(--udupi-white);
  z-index: 1;
}
.udupi-hero__eyebrow {
  font-family: 'Inter', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: var(--udupi-accent) !important;
  margin: 0 0 16px !important;
}
.udupi-hero__title {
  font-family: 'Anton', sans-serif !important;
  font-size: clamp(38px, 5vw, 64px) !important;
  font-weight: 400 !important;
  color: var(--udupi-white) !important;
  line-height: 1.1 !important;
  margin: 0 0 22px !important;
  text-transform: uppercase;
}
.udupi-hero__sub {
  font-family: 'Inter', sans-serif !important;
  font-size: 17px !important;
  color: rgba(255,255,255,0.8) !important;
  line-height: 1.7 !important;
  margin: 0 0 36px !important;
}
.udupi-hero__btns {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.udupi-hero__img {
  flex: 0 0 420px;
  min-height: 480px;
  display: flex;
  align-items: stretch;
}

/* ── Apply / Quick Enquiry Card ──────────────────────────────── */
.udupi-apply-card {
  width: 100%;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 16px;
  backdrop-filter: blur(8px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.udupi-apply-card__head {
  background: var(--udupi-accent, #F5B800);
  padding: 22px 28px 18px;
}
.udupi-apply-card__badge {
  display: inline-block;
  background: rgba(0,0,0,0.18);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 8px;
}
.udupi-apply-card__title {
  margin: 0;
  font-family: 'Inter', sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: #1B3A5C;
  line-height: 1.2;
}
.udupi-apply-card__body {
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  flex: 1;
}
.udupi-apply-card__row {
  display: flex;
  align-items: center;
  gap: 14px;
  color: rgba(255,255,255,0.9);
  font-family: 'Inter', sans-serif;
  font-size: 15px;
}
.udupi-apply-card__row strong {
  color: #F5B800;
  font-size: 17px;
}
.udupi-apply-card__icon {
  width: 38px;
  height: 38px;
  background: rgba(245,184,0,0.15);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #F5B800;
  font-size: 15px;
  flex-shrink: 0;
}
.udupi-apply-card__foot {
  padding: 20px 28px 24px;
  display: flex;
  gap: 12px;
}
.udupi-apply-card__cta {
  flex: 1;
  display: block;
  text-align: center;
  padding: 12px 16px;
  border-radius: 8px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none !important;
  background: #F5B800;
  color: #1B3A5C !important;
  transition: background 0.2s;
}
.udupi-apply-card__cta:hover {
  background: #e0a800;
}
.udupi-apply-card__cta--ghost {
  background: transparent;
  border: 1.5px solid rgba(255,255,255,0.35);
  color: rgba(255,255,255,0.85) !important;
}
.udupi-apply-card__cta--ghost:hover {
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.85) !important;
  border-color: rgba(255,255,255,0.6);
}

/* ── Stats Bar ──────────────────────────────────────────────── */
.udupi-stats-bar {
  display: flex;
  justify-content: space-around;
  align-items: stretch;
  background: var(--udupi-primary-dark);
  padding: 0;
}
.udupi-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 28px 24px;
  flex: 1;
  border-right: 1px solid rgba(255,255,255,0.08);
  text-align: center;
  transition: background 0.25s;
}
.udupi-stat:last-child { border-right: none; }
.udupi-stat:hover { background: rgba(255,255,255,0.04); }
.udupi-stat__num {
  display: block;
  font-family: 'Anton', sans-serif;
  font-size: 36px;
  color: var(--udupi-accent);
  line-height: 1;
  margin-bottom: 6px;
}
.udupi-stat__label {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: rgba(255,255,255,0.65);
}

/* ── Programs Grid ──────────────────────────────────────────── */
.udupi-programs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.udupi-program-card {
  border-radius: 12px;
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.udupi-program-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.12);
}
.udupi-program-card--sage  { background: var(--udupi-card-sage); }
.udupi-program-card--beige { background: var(--udupi-card-beige); }
.udupi-program-card--blue  { background: var(--udupi-card-blue); }

.udupi-program-card__icon {
  font-size: 28px;
  color: var(--udupi-primary);
  line-height: 1;
}
.udupi-program-card h3 {
  font-family: 'Inter', sans-serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  color: var(--udupi-primary-dark) !important;
  margin: 0 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.udupi-program-card p {
  font-size: 14px;
  color: #4a5568;
  line-height: 1.6;
  margin: 0;
  flex: 1;
}
.udupi-program-card__link {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 13px;
  color: var(--udupi-primary) !important;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.udupi-program-card__link:hover { color: var(--udupi-red) !important; }

/* ── Why Choose Us Grid ─────────────────────────────────────── */
.udupi-why-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}
.udupi-why-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 16px;
  padding: 36px 24px;
  border: 1px solid var(--udupi-border);
  border-radius: 12px;
  transition: box-shadow 0.3s, transform 0.3s;
}
.udupi-why-item:hover {
  box-shadow: 0 12px 35px rgba(0,0,0,0.08);
  transform: translateY(-4px);
}
.udupi-why-item__icon {
  width: 64px; height: 64px;
  background: var(--udupi-primary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: var(--udupi-white);
  flex-shrink: 0;
}
.udupi-why-item h3 {
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--udupi-primary-dark) !important;
  margin: 0 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.udupi-why-item p {
  font-size: 14px;
  color: #555;
  line-height: 1.65;
  margin: 0;
}

/* ── Admissions CTA ─────────────────────────────────────────── */
.udupi-admissions-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.udupi-admissions-cta__text h2 {
  font-family: 'Anton', sans-serif !important;
  font-size: 38px !important;
  color: var(--udupi-white) !important;
  margin: 0 0 10px !important;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.udupi-admissions-cta__text p {
  color: rgba(255,255,255,0.8) !important;
  font-size: 16px !important;
  margin: 0 !important;
}
.udupi-admissions-cta__btns {
  display: flex;
  gap: 16px;
  flex-shrink: 0;
}

/* ── News Grid ──────────────────────────────────────────────── */
.udupi-news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.udupi-news-card {
  background: var(--udupi-white);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
  transition: transform 0.3s, box-shadow 0.3s;
  display: block;
  text-decoration: none;
  color: inherit;
}
.udupi-news-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 14px 36px rgba(0,0,0,0.12);
}
.udupi-news-card__img {
  height: 180px;
  background: linear-gradient(135deg, var(--udupi-primary) 0%, #2c5282 100%);
}
.udupi-news-card__body { padding: 24px; }
.udupi-news-card__date {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--udupi-red);
  display: block;
  margin-bottom: 10px;
}
.udupi-news-card h3 {
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--udupi-primary-dark) !important;
  margin: 0 0 10px !important;
  line-height: 1.4 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.udupi-news-card p {
  font-size: 14px;
  color: #555;
  line-height: 1.6;
  margin: 0;
}

/* ── Affiliations ───────────────────────────────────────────── */
.udupi-affiliations {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
}
.udupi-affiliation-badge {
  background: var(--udupi-primary);
  color: var(--udupi-white);
  font-family: 'Anton', sans-serif;
  font-size: 16px;
  letter-spacing: 1px;
  padding: 16px 32px;
  border-radius: 8px;
  transition: background 0.25s, transform 0.25s;
  text-transform: uppercase;
}
.udupi-affiliation-badge:hover {
  background: var(--udupi-accent);
  color: var(--udupi-primary-dark);
  transform: translateY(-3px);
}

/* ── Contact Info (new BEM version) ─────────────────────────── */
.udupi-contact-info {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.udupi-contact-info__item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  font-size: 15px;
  color: var(--udupi-text);
}
.udupi-contact-info__item i {
  font-size: 18px;
  color: var(--udupi-primary);
  margin-top: 3px;
  min-width: 22px;
  text-align: center;
}
.udupi-contact-info__item a {
  color: var(--udupi-primary);
  text-decoration: none;
  font-weight: 500;
}
.udupi-contact-info__item a:hover { color: var(--udupi-red); }

/* ── Map Wrap ───────────────────────────────────────────────── */
.udupi-map-wrap { border-radius: 12px; overflow: hidden; }
.udupi-map-wrap iframe { display: block; }

/* ─── Section max-width wrapper for vc_row content ──────────── */
.udupi-programs-section .wpb_wrapper,
.udupi-why-section .wpb_wrapper,
.udupi-news-section .wpb_wrapper,
.udupi-affiliations-section .wpb_wrapper {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}

/* ─── Hide Ohio demo floating elements ──────────────────────── */
.oh-color-switcher,
.color-switcher,
[data-role="color-switcher"],
.social-floating,
.floating-social { display: none !important; }

/* ─── Additional responsive for new sections ────────────────── */
@media (max-width: 1200px) {
  .udupi-why-grid { grid-template-columns: repeat(2, 1fr); }
  .udupi-hero { padding: 60px 40px; }
  .udupi-hero__img { flex: 0 0 320px; height: 380px; }
}
@media (max-width: 991px) {
  .udupi-programs-grid { grid-template-columns: repeat(2, 1fr); }
  .udupi-news-grid { grid-template-columns: repeat(2, 1fr); }
  .udupi-admissions-cta { flex-direction: column; text-align: center; padding: 0 20px; }
  .udupi-admissions-cta__btns { justify-content: center; }
  .udupi-hero { flex-direction: column; min-height: auto; padding: 60px 30px; }
  .udupi-hero__img { display: none; }
  .udupi-hero__content { max-width: 100%; }
  .udupi-stats-bar { flex-wrap: wrap; }
  .udupi-stat { flex: 0 0 50%; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); }
}
@media (max-width: 767px) {
  .udupi-programs-grid,
  .udupi-news-grid { grid-template-columns: 1fr; }
  .udupi-why-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
  .udupi-stat { flex: 0 0 100%; }
  .udupi-hero { padding: 40px 20px; }
  .udupi-hero__title { font-size: 38px !important; }
  .udupi-hero__btns { flex-direction: column; align-items: flex-start; }
  .udupi-admissions-cta__text h2 { font-size: 28px !important; }
}

/* ════════════════════════════════════════════════════════════════
   CUSTOM SITE HEADER & NAV  (replaces Ohio's .header-1)
   ════════════════════════════════════════════════════════════════ */

/* Hide Ohio's built-in header only when custom layout is active */
.udupi-custom-layout header.header,
.udupi-custom-layout .header.header-1 { display: none !important; }

/* Always hide Ohio's demo/utility elements (not needed in any layout) */
.color-switcher-item,
.scheme-switcher,
.circle-cursor,
.oh-color-switcher,
.elements-bar { display: none !important; }

/* Always hide Ohio's native footer — custom footer is always used */
footer#colophon,
.site-footer.clb__dark_section,
.site-footer.clb__light_section { display: none !important; }

/* Hide floating search icon */
.fixed-search-holder,
.search-holder.vc_hidden-xs,
.icon-button[data-js="search-toggle"] { display: none !important; }

/* WooCommerce store-coming-soon top bar */
.woocommerce-store-notice { display: none !important; }
/* WooCommerce "Store coming soon" admin bar tab */
.wp-admin-bar-woocommerce-store-coming-soon-state { display: none !important; }

/* ── Custom Site Header ─────────────────────────────────────── */
.udupi-site-header {
  position: sticky;
  top: 0;
  z-index: 9990;
  background: #0D2137;
  box-shadow: 0 2px 12px rgba(0,0,0,0.35);
  width: 100%;
}

.udupi-nav-inner {
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 70px;
}

/* ── Logo ─────────────────────────────────────────────────── */
.udupi-nav-logo {
  text-decoration: none !important;
  flex-shrink: 0;
}

.udupi-logo-box {
  background: #D00846;
  padding: 8px 18px;
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}

.udupi-logo-primary {
  color: #fff;
  font-family: 'Anton', sans-serif;
  font-size: 22px;
  letter-spacing: 1px;
  text-transform: uppercase;
  display: block;
}

.udupi-logo-secondary {
  color: rgba(255,255,255,0.75);
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  display: block;
}

/* ── Primary Nav Menu ────────────────────────────────────── */
/* Note: wp_nav_menu may skip the nav container, so we target
   the ul directly inside .udupi-nav-inner */
ul.udupi-menu-list,
.udupi-nav-inner > ul,
.udupi-nav-inner > nav ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  align-items: center !important;
  flex: 1 !important;
}

ul.udupi-menu-list > li,
.udupi-nav-inner > ul > li {
  display: block !important;
  position: relative !important;
  list-style: none !important;
}

ul.udupi-menu-list > li > a,
.udupi-nav-inner > ul > li > a {
  display: block !important;
  color: rgba(255,255,255,0.88) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0.4px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  padding: 8px 10px !important;
  white-space: nowrap !important;
  transition: color 0.2s ease !important;
  line-height: 1.4 !important;
}

ul.udupi-menu-list > li > a:hover,
ul.udupi-menu-list > li.current-menu-item > a,
ul.udupi-menu-list > li.current_page_item > a {
  color: #F5B800 !important;
}

/* Dropdown sub-menus */
ul.udupi-menu-list > li > ul {
  display: none !important;
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  background: #0D2137 !important;
  min-width: 200px !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3) !important;
  z-index: 100 !important;
  list-style: none !important;
  padding: 8px 0 !important;
  margin: 0 !important;
  flex-direction: column !important;
}

ul.udupi-menu-list > li:hover > ul {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

ul.udupi-menu-list > li > ul li a {
  display: block !important;
  color: rgba(255,255,255,0.8) !important;
  font-size: 13px !important;
  padding: 8px 20px !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transition: color 0.2s, background 0.2s !important;
}

ul.udupi-menu-list > li > ul li a:hover {
  color: #F5B800 !important;
  background: rgba(255,255,255,0.05) !important;
}

/* ── Nav Actions (Enquire + Mobile Toggle) ───────────────── */
.udupi-nav-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  margin-left: auto;
}

.udupi-nav-enquire {
  background: #D00846 !important;
  color: #fff !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  padding: 10px 20px !important;
  text-decoration: none !important;
  border-radius: 3px !important;
  white-space: nowrap !important;
  transition: background 0.2s !important;
}

.udupi-nav-enquire:hover {
  background: #a8003a !important;
  color: #fff !important;
}

/* ── Mobile Hamburger Toggle ─────────────────────────────── */
.udupi-mobile-toggle {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 26px;
  height: 18px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
}

.udupi-mobile-toggle span {
  display: block;
  width: 100%;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: all 0.3s ease;
}

.udupi-mobile-toggle.udupi-toggle-active span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}
.udupi-mobile-toggle.udupi-toggle-active span:nth-child(2) {
  opacity: 0;
}
.udupi-mobile-toggle.udupi-toggle-active span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

/* ── Responsive: Mobile Nav — handled at 1100px breakpoint below ─── */

@media (max-width: 767px) {
  .udupi-nav-enquire { display: none !important; }
  .udupi-nav-inner { padding: 0 16px; }
  .udupi-container { padding: 0 16px; }
}

/* ════════════════════════════════════════════════════════════════
   SCROLLING NEWS TICKER
   ════════════════════════════════════════════════════════════════ */
.udupi-ticker-wrap {
  background: #080f1a;
  border-bottom: 2px solid #F5B800;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  height: 38px;
  position: relative;
  z-index: 9980;
}
.udupi-ticker-label {
  flex-shrink: 0;
  background: #F5B800;
  color: #0D2137;
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0 20px;
  display: flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%);
  padding-right: 28px;
}
/* NEWS label blink — flashes to draw attention to the ticker */
@keyframes udupi-news-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }
.udupi-ticker-label { animation: udupi-news-blink 1.1s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .udupi-ticker-label { animation: none !important; } }
.udupi-ticker-outer {
  flex: 1;
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
}
.udupi-ticker-inner {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  animation: udupiTickerScroll 60s linear infinite;
  color: rgba(255,255,255,0.82);
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  line-height: 1;
  gap: 0;
}
.udupi-ticker-inner span { padding: 0; }
.udupi-ticker-wrap:hover .udupi-ticker-inner {
  animation-play-state: paused;
}
@keyframes udupiTickerScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ════════════════════════════════════════════════════════════════
   HERO IMAGE SLIDER  (100vw — rendered in wp_body_open)
   ════════════════════════════════════════════════════════════════ */
body { overflow-x: hidden; }

.udupi-hero-slider {
  position: relative;
  width: 100vw;
  left: 0;
  min-height: 100vh;
  overflow: hidden;
  background: #0D2137;
  display: block;
}
.udupi-slider-track {
  position: relative;
  width: 100%;
  min-height: 100vh;
}
.udupi-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.9s ease;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.udupi-slide--active {
  opacity: 1;
  z-index: 2;
}

/* Image overlay — ensures text is readable over background photos */
.udupi-slide__img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(10,20,40,0.82) 0%, rgba(10,20,40,0.55) 60%, rgba(10,20,40,0.25) 100%);
  z-index: 1;
}

/* Decorative glowing orb */
.udupi-slide::after {
  content: '';
  position: absolute;
  top: -20%;
  right: 5%;
  width: 55%;
  height: 140%;
  background: radial-gradient(ellipse at 60% 40%, rgba(245,184,0,0.07) 0%, rgba(27,58,92,0.2) 40%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

.udupi-slide__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}
.udupi-slide__content {
  flex: 1;
  max-width: 640px;
}
.udupi-slide__tag {
  display: inline-block;
  background: rgba(245,184,0,0.12);
  border: 1px solid rgba(245,184,0,0.45);
  color: #F5B800;
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 20px;
  margin-bottom: 20px;
}
.udupi-slide__title {
  font-family: 'Anton', sans-serif !important;
  font-size: 56px !important;
  line-height: 1.08 !important;
  color: #fff !important;
  text-transform: uppercase !important;
  margin: 0 0 20px !important;
  letter-spacing: 0.02em !important;
}
.udupi-slide__sub {
  font-family: 'Inter', sans-serif;
  font-size: 16px;
  color: rgba(255,255,255,0.72);
  line-height: 1.75;
  margin: 0 0 34px;
  max-width: 520px;
}
.udupi-slide__btns {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

/* Right-side decorative card */
.udupi-slide__deco {
  flex-shrink: 0;
  width: 380px;
  height: 380px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.udupi-slide__deco-ring {
  position: absolute;
  border-radius: 50%;
  border: 1.5px solid rgba(245,184,0,0.18);
}
.udupi-slide__deco-ring--1 {
  width: 340px; height: 340px;
  animation: udupiRingSpin 18s linear infinite;
}
.udupi-slide__deco-ring--2 {
  width: 250px; height: 250px;
  border-color: rgba(255,255,255,0.08);
  animation: udupiRingSpin 12s linear infinite reverse;
}
@keyframes udupiRingSpin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
.udupi-slide__deco-stats {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  z-index: 2;
}
.udupi-deco-stat {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 10px;
  padding: 12px 28px;
  text-align: center;
  backdrop-filter: blur(6px);
  min-width: 130px;
}
.udupi-deco-stat .num {
  display: block;
  font-family: 'Anton', sans-serif;
  font-size: 22px;
  color: #F5B800;
  letter-spacing: 0.04em;
}
.udupi-deco-stat .lbl {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: rgba(255,255,255,0.55);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-top: 3px;
}

/* Prev / Next arrows */
.udupi-slider-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: var(--ud-navy);
  border: 2px solid var(--ud-gold);
  color: var(--ud-gold);
  width: 46px;
  height: 56px;
  border-radius: 6px;
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, color 0.2s, transform 0.2s, box-shadow 0.2s;
  padding: 0;
  box-shadow: 0 4px 16px rgba(0,0,0,.35);
}
.udupi-slider-btn:hover {
  background: var(--ud-gold);
  color: var(--ud-navy);
  transform: translateY(-50%) scale(1.06);
  box-shadow: 0 6px 24px rgba(0,0,0,.45);
}
.udupi-slider-btn--prev { left: 20px; }
.udupi-slider-btn--next { right: 20px; }

/* Dots */
.udupi-slider-dots {
  position: absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  gap: 10px;
  align-items: center;
}
.udupi-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255,255,255,0.35);
  border: none;
  cursor: pointer;
  transition: all 0.3s;
  padding: 0;
}
.udupi-dot--active, .udupi-dot.active {
  background: #F5B800;
  width: 24px;
  border-radius: 4px;
  transform: none;
}

/* Slider responsive */
@media (max-width: 1100px) {
  .udupi-slide__deco { width: 240px; height: 240px; }
  .udupi-slide__deco-ring--1 { width: 210px; height: 210px; }
  .udupi-slide__deco-ring--2 { width: 155px; height: 155px; }
  .udupi-slide__title { font-size: 46px !important; }
}
@media (max-width: 900px) {
  .udupi-hero-slider { height: 480px; min-height: 480px; }
  .udupi-slider-track { min-height: 480px; }
  .udupi-slide__deco { display: none; }
  .udupi-slide__inner { justify-content: flex-start; padding: 0 40px; }
  .udupi-slide__title { font-size: 40px !important; }

  /* With the decorative right column gone, the text block stretches across
     almost the full width — the desktop left-dark/right-light gradient no
     longer has a "light" side to fade into, so the photo reads as uniformly
     shaded. Swap to a flat, lighter scrim and back the text with its own
     shadow so the photo stays visible without losing title legibility. */
  .udupi-slide__img-overlay { background: rgba(10,20,40,0.5); }
  .udupi-slide__title, .udupi-slide__tag, .udupi-slide__sub { text-shadow: 0 2px 10px rgba(0,0,0,0.55); }
}
@media (max-width: 600px) {
  .udupi-hero-slider { height: 420px; }
  .udupi-slide__inner { padding: 0 22px; }
  .udupi-slide__title { font-size: 32px !important; }
  .udupi-slide__sub { font-size: 14px; }
  .udupi-slider-btn { display: none; }
  .udupi-slide__btns { flex-direction: column; align-items: flex-start; }
}

/* ════════════════════════════════════════════════════════════════════════════
   NEW HOME SECTIONS  (v4.0)
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Shared tokens ─────────────────────────────────────────────────────────── */
:root {
  --ud-navy:   #0D2137;
  --ud-blue:   #1B3A5C;
  --ud-gold:   #F5B800;
  --ud-red:    #C0132A;
  --ud-light:  #F4F7FB;
  --ud-white:  #FFFFFF;
  --ud-text:   #1B2D4E;
  --ud-muted:  #5A6A7A;
  --ud-radius: 14px;
  --ud-shadow: 0 4px 24px rgba(13,33,55,.10);
}

/* ── Shared section skeleton ───────────────────────────────────────────────── */
.udupi-sec { padding: 80px 0; }
.udupi-container { width: 100%; max-width: 1600px; margin: 0 auto; padding: 0 40px; }
.udupi-sec-header { text-align: center; margin-bottom: 52px; }
.udupi-sec-header--light { /* inherits */ }
.udupi-eyebrow {
  display: inline-block; background: var(--ud-gold); color: var(--ud-navy);
  font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  padding: 4px 14px; border-radius: 20px; margin-bottom: 14px;
}
.udupi-sec-heading {
  font-family: 'Anton', sans-serif; font-size: 40px; color: var(--ud-navy);
  margin: 0 0 12px; line-height: 1.1;
}
.udupi-sec-sub { color: var(--ud-muted); font-size: 16px; max-width: 620px; margin: 0 auto; line-height: 1.7; }

/* ── Shared buttons ────────────────────────────────────────────────────────── */
.udupi-cta-solid {
  display: inline-block; background: var(--ud-gold); color: var(--ud-navy);
  font-weight: 700; font-size: 14px; padding: 12px 28px; border-radius: 6px;
  text-decoration: none; transition: background .2s, transform .15s;
}
.udupi-cta-solid:hover { background: #e0a700; transform: translateY(-1px); color: var(--ud-navy); }
.udupi-cta-solid-inv {
  display: inline-block; background: var(--ud-white); color: var(--ud-navy);
  font-weight: 700; font-size: 14px; padding: 12px 28px; border-radius: 6px;
  text-decoration: none; transition: background .2s;
}
.udupi-cta-solid-inv:hover { background: var(--ud-gold); color: var(--ud-navy); }
.udupi-cta-ghost {
  display: inline-block; border: 2px solid var(--ud-gold); color: var(--ud-gold);
  font-weight: 700; font-size: 14px; padding: 10px 26px; border-radius: 6px;
  text-decoration: none; transition: background .2s, color .2s;
}
.udupi-cta-ghost:hover { background: var(--ud-gold); color: var(--ud-navy); }
.udupi-cta-ghost-dark {
  display: inline-block; border: 2px solid var(--ud-navy); color: var(--ud-navy);
  font-weight: 700; font-size: 14px; padding: 10px 26px; border-radius: 6px;
  text-decoration: none; transition: background .2s, color .2s;
}
.udupi-cta-ghost-dark:hover { background: var(--ud-navy); color: #fff; }
.udupi-btn-row { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 28px; }
.udupi-prog-footer { text-align: center; margin-top: 44px; }

/* ════════════════════════════════════════════════════════════════════════════
   1. ABOUT / HERO SECTION (white bg — replaces old dark hero)
   ════════════════════════════════════════════════════════════════════════════ */
.udupi-about-sec { background: var(--ud-white); padding: 80px 0; }
.udupi-about-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center;
}
.udupi-about-text .udupi-eyebrow { margin-bottom: 16px; }
.udupi-about-text .udupi-sec-heading { text-align: left; font-size: 48px; margin-bottom: 18px; }
.udupi-about-desc { color: var(--ud-muted); font-size: 16px; line-height: 1.75; margin-bottom: 24px; }
.udupi-about-list { list-style: none; padding: 0; margin: 0 0 28px; }
.udupi-about-list li { display: flex; align-items: center; gap: 10px; font-size: 15px; color: var(--ud-text); padding: 6px 0; border-bottom: 1px solid #eef1f5; }
.udupi-about-list li i { color: var(--ud-gold); font-size: 16px; }
.udupi-about-visual { display: flex; flex-direction: column; gap: 20px; }
.udupi-about-img-wrap { position: relative; border-radius: var(--ud-radius); overflow: hidden; box-shadow: var(--ud-shadow); }
.udupi-about-img-wrap img { width: 100%; height: 280px; object-fit: cover; display: block; }
.udupi-about-badge-tl, .udupi-about-badge-br {
  position: absolute; background: var(--ud-gold); padding: 10px 18px;
  border-radius: 8px; display: flex; flex-direction: column; align-items: center;
}
.udupi-about-badge-tl { top: 16px; left: 16px; }
.udupi-about-badge-br { bottom: 16px; right: 16px; }
.ab-num { font-family: 'Anton', sans-serif; font-size: 26px; color: var(--ud-navy); line-height: 1; }
.ab-txt { font-size: 10px; font-weight: 700; color: var(--ud-navy); text-transform: uppercase; }

/* Enquiry Card */
.udupi-enquiry-card { background: var(--ud-navy); border-radius: var(--ud-radius); overflow: hidden; box-shadow: var(--ud-shadow); }
.udupi-enquiry-head { background: var(--ud-gold); color: var(--ud-navy); font-weight: 700; font-size: 15px; padding: 16px 24px; }
.udupi-enquiry-body { padding: 24px; }
.udupi-enq-item { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.85); font-size: 14px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.udupi-enq-item i { color: var(--ud-gold); font-size: 16px; width: 18px; text-align: center; }
.udupi-enq-btns { display: flex; gap: 12px; margin-top: 20px; flex-wrap: wrap; }
.udupi-enq-btn-primary {
  flex: 1; background: var(--ud-gold); color: var(--ud-navy); font-weight: 700;
  font-size: 13px; padding: 11px 18px; border-radius: 6px; text-align: center;
  text-decoration: none; transition: background .2s;
}
.udupi-enq-btn-primary:hover { background: #e0a700; color: var(--ud-navy); }
.udupi-enq-btn-ghost {
  flex: 1; border: 1px solid rgba(255,255,255,.4); color: #fff; font-weight: 600;
  font-size: 13px; padding: 11px 18px; border-radius: 6px; text-align: center;
  text-decoration: none; transition: border-color .2s, background .2s;
}
.udupi-enq-btn-ghost:hover { border-color: var(--ud-gold); color: var(--ud-gold); }

/* ════════════════════════════════════════════════════════════════════════════
   2. STATS BAR
   ════════════════════════════════════════════════════════════════════════════ */
.udupi-stats-bar {
  background: var(--ud-navy); display: flex; justify-content: space-around;
  flex-wrap: wrap; padding: 28px 24px; gap: 8px;
}
.udupi-stat-item { text-align: center; flex: 1; min-width: 120px; padding: 8px 0; }
.udupi-stat-num {
  display: block; font-family: 'Anton', sans-serif; font-size: 40px;
  color: var(--ud-gold); line-height: 1;
}
.udupi-stat-lbl { display: block; font-size: 12px; color: rgba(255,255,255,.75); margin-top: 4px; text-transform: uppercase; letter-spacing: .08em; }

/* ════════════════════════════════════════════════════════════════════════════
   3. INSTITUTIONS SECTION
   ════════════════════════════════════════════════════════════════════════════ */
.udupi-inst-sec { background: var(--ud-light); }
.udupi-inst-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.udupi-inst-card { background: #fff; border-radius: var(--ud-radius); overflow: hidden; box-shadow: var(--ud-shadow); transition: transform .25s, box-shadow .25s; }
.udupi-inst-card:hover { transform: translateY(-5px); box-shadow: 0 12px 36px rgba(13,33,55,.14); }
.udupi-inst-img { position: relative; height: 200px; overflow: hidden; }
.udupi-inst-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.udupi-inst-card:hover .udupi-inst-img img { transform: scale(1.06); }
.udupi-inst-badge {
  position: absolute; top: 12px; left: 12px; background: var(--ud-gold);
  color: var(--ud-navy); font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 20px;
}
.udupi-inst-body { padding: 20px 22px 24px; }
.udupi-inst-body h3 { font-size: 17px; color: var(--ud-navy); margin: 0 0 10px; font-weight: 700; line-height: 1.3; }
.udupi-inst-affil, .udupi-inst-appr, .udupi-inst-desc { font-size: 13px; color: var(--ud-muted); margin: 0 0 6px; display: flex; align-items: flex-start; gap: 7px; }
.udupi-inst-affil i, .udupi-inst-appr i { color: var(--ud-gold); margin-top: 2px; }
.udupi-inst-btn {
  display: inline-block; margin-top: 14px; background: var(--ud-navy); color: #fff;
  font-size: 13px; font-weight: 600; padding: 9px 18px; border-radius: 6px; text-decoration: none; transition: background .2s;
}
.udupi-inst-btn:hover { background: var(--ud-blue); color: #fff; }

/* ════════════════════════════════════════════════════════════════════════════
   4. PROGRAMS / COURSES SECTION
   ════════════════════════════════════════════════════════════════════════════ */
.udupi-programs-sec { background: var(--ud-white); }
.udupi-prog-tabs {
  display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 40px;
}
.udupi-tab {
  background: transparent; border: 2px solid #dde3ef; color: var(--ud-muted);
  font-size: 13px; font-weight: 600; padding: 8px 20px; border-radius: 30px;
  cursor: pointer; transition: all .2s;
}
.udupi-tab:hover, .udupi-tab.active {
  background: var(--ud-navy); border-color: var(--ud-navy); color: #fff;
}
.udupi-prog-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.udupi-prog-card { background: #fff; border-radius: var(--ud-radius); overflow: hidden; box-shadow: var(--ud-shadow); transition: transform .25s, box-shadow .25s; border: 1px solid #eef1f5; }
.udupi-prog-card:hover { transform: translateY(-4px); box-shadow: 0 10px 30px rgba(13,33,55,.13); }
.udupi-prog-img { position: relative; height: 160px; overflow: hidden; }
.udupi-prog-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.udupi-prog-card:hover .udupi-prog-img img { transform: scale(1.07); }
.udupi-prog-badge {
  position: absolute; top: 10px; right: 10px; background: var(--ud-red); color: #fff;
  font-size: 10px; font-weight: 700; padding: 3px 9px; border-radius: 20px; text-transform: uppercase;
}
.udupi-prog-cat {
  position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(transparent, rgba(13,33,55,.7));
  color: rgba(255,255,255,.9); font-size: 11px; font-weight: 600; padding: 16px 12px 8px;
  text-transform: uppercase; letter-spacing: .06em;
}
.udupi-prog-body { padding: 16px 18px 20px; }
.udupi-prog-body h4 { font-size: 15px; color: var(--ud-navy); margin: 0 0 10px; font-weight: 700; line-height: 1.35; }
.udupi-prog-title-link { color: inherit; text-decoration: none; }
.udupi-prog-title-link:hover { color: inherit; text-decoration: none; }
.udupi-prog-meta { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px; }
.udupi-prog-meta span { font-size: 12px; color: var(--ud-muted); display: flex; align-items: center; gap: 6px; }
.udupi-prog-meta i { color: var(--ud-gold); width: 14px; }
.udupi-prog-btn {
  display: inline-block; background: var(--ud-gold); color: var(--ud-navy);
  font-size: 12px; font-weight: 700; padding: 7px 16px; border-radius: 5px; text-decoration: none; transition: background .2s;
}
.udupi-prog-btn:hover { background: #e0a700; color: var(--ud-navy); }
/* Ohio's ".links-underline a" draws a gradient underline via background-image (not
   text-decoration) — kill it on the "Know More" button so the button reads clean. */
.udupi-prog-btn,
.udupi-prog-btn:hover,
.udupi-prog-btn:focus { background-image: none !important; }

/* Course category "marked tag" on the detail page: a standalone navy/gold pill at
   the top of the content (NOT the grid card's absolute image-overlay caption). */
.udupi-course-page-cat { margin: 0 0 18px; }
.udupi-course-page-cat .udupi-prog-cat {
  position: static; display: inline-block; background: var(--ud-navy); color: var(--ud-gold);
  font-size: 12px; font-weight: 700; padding: 6px 16px; border-radius: 20px;
  letter-spacing: .06em; line-height: 1.4;
}

/* ════════════════════════════════════════════════════════════════════════════
   5. FACILITIES SECTION
   ════════════════════════════════════════════════════════════════════════════ */
.udupi-facilities-sec { display: flex; min-height: 480px; }
.udupi-fac-intro {
  flex: 0 0 280px; background: var(--ud-red); display: flex; align-items: center;
  justify-content: center; padding: 48px 32px;
}
.udupi-fac-intro-inner { color: #fff; text-align: center; }
.udupi-fac-intro-inner h2 { font-family: 'Anton', sans-serif; font-size: 42px; margin: 0 0 16px; letter-spacing: .05em; color: #fff !important; }
.udupi-fac-intro-inner p { font-size: 14px; line-height: 1.7; opacity: .9; margin-bottom: 24px; }
.udupi-fac-grid { flex: 1; display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 160px; overflow: hidden; }
.udupi-fac-tile { position: relative; overflow: hidden; display: block; text-decoration: none; z-index: 1; }
.udupi-fac-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; display: block; }
.udupi-fac-tile:hover img { transform: scale(1.1); }
.udupi-fac-tile::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 35%, rgba(0,0,0,.78) 100%);
  z-index: 1;
}
.udupi-fac-name {
  position: absolute; bottom: 12px; left: 0; right: 0;
  color: #fff; font-size: 13px; font-weight: 700;
  z-index: 2; text-shadow: 0 1px 6px rgba(0,0,0,.9);
  text-align: center; padding: 0 8px;
  letter-spacing: .03em;
}

/* ════════════════════════════════════════════════════════════════════════════
   6. QUICK LINKS
   ════════════════════════════════════════════════════════════════════════════ */
.udupi-ql-sec { background: var(--ud-white); }
.udupi-ql-grid {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 28px;
}
.udupi-ql-item {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  text-decoration: none; width: 110px; transition: transform .2s;
}
.udupi-ql-item:hover { transform: translateY(-4px); }
.udupi-ql-icon {
  width: 80px; height: 80px; background: var(--ud-light); border: 2px solid #dde3ef;
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 26px; color: var(--ud-navy); transition: background .2s, border-color .2s;
}
.udupi-ql-item:hover .udupi-ql-icon { background: var(--ud-gold); border-color: var(--ud-gold); color: var(--ud-navy); }
.udupi-ql-label { font-size: 13px; font-weight: 600; color: var(--ud-text); text-align: center; }

/* ════════════════════════════════════════════════════════════════════════════
   7. WHY CHOOSE US
   ════════════════════════════════════════════════════════════════════════════ */
.udupi-why-sec { background: var(--ud-light); }
.udupi-why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.udupi-why-card {
  background: #fff; padding: 28px 28px 30px; border-radius: var(--ud-radius);
  box-shadow: var(--ud-shadow); border-top: 4px solid transparent;
  transition: border-color .25s, transform .25s;
}
.udupi-why-card:hover { border-top-color: var(--ud-gold); transform: translateY(-3px); }
.udupi-why-icon {
  width: 52px; height: 52px; background: var(--ud-navy); border-radius: 12px;
  display: flex; align-items: center; justify-content: center; margin-bottom: 16px;
  font-size: 22px; color: var(--ud-gold);
}
.udupi-why-card h4 { font-size: 17px; color: var(--ud-navy); margin: 0 0 8px; font-weight: 700; }
.udupi-why-card p { font-size: 14px; color: var(--ud-muted); line-height: 1.65; margin: 0; }

/* ════════════════════════════════════════════════════════════════════════════
   8. ACHIEVEMENTS
   ════════════════════════════════════════════════════════════════════════════ */
.udupi-achieve-sec { background: var(--ud-navy); }
.udupi-achieve-sec .udupi-sec-heading { color: #fff; }
.udupi-achieve-sec .udupi-sec-sub { color: rgba(255,255,255,.7); }
.udupi-achieve-scroll { position: relative; }
.udupi-achieve-track {
  display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory;
  padding: 8px 4px 16px; scrollbar-width: thin; scrollbar-color: var(--ud-gold) rgba(255,255,255,.1);
}
.udupi-achieve-track::-webkit-scrollbar { height: 4px; }
.udupi-achieve-track::-webkit-scrollbar-track { background: rgba(255,255,255,.1); border-radius: 4px; }
.udupi-achieve-track::-webkit-scrollbar-thumb { background: var(--ud-gold); border-radius: 4px; }
.udupi-achieve-card {
  flex: 0 0 280px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--ud-radius); overflow: hidden; scroll-snap-align: start;
  transition: background .2s, transform .2s;
}
.udupi-achieve-card:hover { background: rgba(255,255,255,.12); transform: translateY(-3px); }
.udupi-achieve-img { height: 160px; overflow: hidden; }
.udupi-achieve-img img { width: 100%; height: 100%; object-fit: cover; }
.udupi-achieve-body { padding: 16px 18px 20px; position: relative; }
.udupi-achieve-medal {
  position: absolute; top: -18px; right: 14px;
  width: 36px; height: 36px; background: var(--ud-gold); border-radius: 50%;
  display: flex; align-items: center; justify-content: center; color: var(--ud-navy); font-size: 16px;
}
.udupi-achieve-body h5 { font-size: 14px; color: #fff; margin: 0 0 8px; font-weight: 600; line-height: 1.4; }
.udupi-achieve-body p { font-size: 12px; color: rgba(255,255,255,.6); margin: 0; line-height: 1.5; }
.udupi-ach-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); background: var(--ud-gold);
  border: none; color: var(--ud-navy); font-size: 26px; width: 44px; height: 44px;
  border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 12px rgba(0,0,0,.3); transition: background .2s; z-index: 2;
}
.udupi-ach-arrow:hover { background: #e0a700; }
.udupi-ach-arrow--prev { left: -22px; }
.udupi-ach-arrow--next { right: -22px; }
.udupi-achieve-sec .udupi-cta-solid { color: var(--ud-navy) !important; }

/* ════════════════════════════════════════════════════════════════════════════
   9. ACCREDITATIONS (redesigned)
   ════════════════════════════════════════════════════════════════════════════ */
.udupi-accred-sec { background: var(--ud-white); }
.udupi-accred-grid {
  display: grid; grid-template-columns: repeat(4, minmax(150px, 200px)); justify-content: center; gap: 24px;
}
.udupi-accred-card {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  padding: 28px 16px; border: 1px solid #eef1f5; border-radius: var(--ud-radius);
  text-align: center; transition: box-shadow .25s, transform .25s;
  text-decoration: none; color: inherit;
}
.udupi-accred-card:hover { box-shadow: var(--ud-shadow); transform: translateY(-3px); }
.udupi-accred-logo {
  width: 96px; height: 96px; border-radius: 12px; display: flex; overflow: hidden; flex-shrink: 0;
  align-items: center; justify-content: center; font-family: 'Anton', sans-serif;
  font-size: 18px; color: #fff; letter-spacing: .04em;
}
.udupi-accred-logo.has-img { width: 100%; height: 100px; background: #fff; border: 1px solid #eef1f5; padding: 8px; }
.udupi-accred-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }

/* ── Course detail page hero: image + category tag + duration/affiliation ── */
.udupi-course-detail-hero { margin: 0 0 30px; }
.udupi-course-detail-imgwrap { position: relative; border-radius: 14px; overflow: hidden; box-shadow: var(--ud-shadow); }
.udupi-course-detail-imgwrap img { display: block; width: 100%; height: 300px; object-fit: cover; }
.udupi-course-detail-imgwrap .udupi-prog-cat { font-size: 13px; padding: 10px 16px; }
.udupi-course-detail-meta { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 18px; font-size: 15px; color: var(--ud-muted); }
.udupi-course-detail-meta i { color: var(--ud-gold); margin-right: 6px; }
@media (max-width: 600px) { .udupi-course-detail-imgwrap img { height: 200px; } }
.udupi-accred-name { font-size: 13px; color: var(--ud-text); font-weight: 600; line-height: 1.4; margin: 0; }

/* ════════════════════════════════════════════════════════════════════════════
   10. NEWS & EVENTS
   ════════════════════════════════════════════════════════════════════════════ */
.udupi-news-sec { background: var(--ud-light); }
.udupi-news-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 28px; }
.udupi-news-card { background: #fff; border-radius: var(--ud-radius); overflow: hidden; box-shadow: var(--ud-shadow); transition: transform .25s; }
.udupi-news-card:hover { transform: translateY(-4px); }
.udupi-news-img { position: relative; height: 200px; overflow: hidden; }
.udupi-news-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.udupi-news-card:hover .udupi-news-img img { transform: scale(1.06); }
.udupi-news-cat {
  position: absolute; top: 12px; left: 12px; background: var(--ud-gold);
  color: var(--ud-navy); font-size: 10px; font-weight: 700; padding: 3px 10px;
  border-radius: 20px; text-transform: uppercase;
}
.udupi-news-body { padding: 20px 22px 24px; }
.udupi-news-date { font-size: 12px; color: var(--ud-muted); display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.udupi-news-body h4 { font-size: 17px; margin: 0 0 10px; line-height: 1.35; }
.udupi-news-body h4 a { color: var(--ud-navy); text-decoration: none; }
.udupi-news-body h4 a:hover { color: var(--ud-red); }
.udupi-news-body p { font-size: 14px; color: var(--ud-muted); line-height: 1.65; margin: 0 0 14px; }
.udupi-news-link { font-size: 13px; font-weight: 600; color: var(--ud-red); text-decoration: none; }
.udupi-news-link:hover { color: var(--ud-navy); }

/* ════════════════════════════════════════════════════════════════════════════
   11. ADMISSIONS CTA
   ════════════════════════════════════════════════════════════════════════════ */
.udupi-admissions-cta {
  background: linear-gradient(135deg, var(--ud-navy) 0%, #1e4a7a 60%, #0a2040 100%);
  padding: 80px 0;
}
.udupi-adm-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 40px; flex-wrap: wrap;
}
.udupi-adm-text h2 { font-family: 'Anton', sans-serif; font-size: 42px; color: #fff; margin: 0 0 12px; }
.udupi-adm-text p { color: rgba(255,255,255,.8); font-size: 16px; margin: 0; max-width: 480px; }
.udupi-adm-btns { display: flex; gap: 16px; flex-wrap: wrap; }

/* ════════════════════════════════════════════════════════════════════════════
   12. WHATSAPP FLOATING BUTTON
   ════════════════════════════════════════════════════════════════════════════ */
.udupi-wa-wrap {
  position: fixed; bottom: 90px; right: 28px; z-index: 9999;
}
.udupi-wa-btn {
  position: relative; width: 58px; height: 58px; background: #25D366;
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 28px; color: #fff; text-decoration: none; box-shadow: 0 4px 18px rgba(37,211,102,.45);
  transition: transform .2s, box-shadow .2s;
}
.udupi-wa-btn:hover { transform: scale(1.1); box-shadow: 0 8px 28px rgba(37,211,102,.55); color: #fff; }
.udupi-wa-pulse {
  position: absolute; inset: -6px; border-radius: 50%;
  border: 3px solid #25D366; opacity: 0;
  animation: udupiWaPulse 2.2s ease-out infinite;
}
@keyframes udupiWaPulse {
  0%  { opacity: .7; transform: scale(.9); }
  70% { opacity: 0;  transform: scale(1.4); }
  100%{ opacity: 0;  transform: scale(1.4); }
}
.udupi-wa-tooltip {
  position: absolute; right: 68px; top: 50%; transform: translateY(-50%);
  background: var(--ud-navy); color: #fff; font-size: 12px; font-weight: 600;
  white-space: nowrap; padding: 6px 12px; border-radius: 6px; pointer-events: none;
  opacity: 0; transition: opacity .2s; box-shadow: 0 2px 10px rgba(0,0,0,.25);
}
.udupi-wa-tooltip::after {
  content: ''; position: absolute; right: -6px; top: 50%; transform: translateY(-50%);
  border: 6px solid transparent; border-left-color: var(--ud-navy); border-right: none;
}
.udupi-wa-btn:hover .udupi-wa-tooltip { opacity: 1; }

/* ════════════════════════════════════════════════════════════════════════════
   13. BACK TO TOP / BOTTOM BUTTONS
   ════════════════════════════════════════════════════════════════════════════ */
.udupi-scroll-btns {
  position: fixed; right: 28px; bottom: 60px; z-index: 9998;
  display: flex; flex-direction: column; gap: 6px;
  opacity: 0; transform: translateX(60px); pointer-events: none;
  transition: opacity .3s, transform .3s;
}
.udupi-scroll-btns--show { opacity: 1; transform: translateX(0); pointer-events: all; }
.udupi-scroll-btn {
  width: 42px; height: 42px; background: var(--ud-navy); color: var(--ud-gold);
  border: none; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 16px; cursor: pointer; box-shadow: 0 2px 12px rgba(0,0,0,.25);
  transition: background .2s, transform .15s;
}
.udupi-scroll-btn:hover { background: var(--ud-blue); transform: scale(1.08); }

/* ════════════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .udupi-about-grid { grid-template-columns: 1fr; gap: 40px; }
  .udupi-about-text .udupi-sec-heading { font-size: 40px; }
  .udupi-facilities-sec { flex-direction: column; }
  .udupi-fac-intro { flex: none; width: 100%; padding: 40px 24px; }
  .udupi-fac-grid { grid-template-columns: repeat(3, 1fr); }
  .udupi-adm-inner { flex-direction: column; text-align: center; }
  .udupi-adm-btns { justify-content: center; }
  .udupi-ach-arrow { display: none; }
}
@media (max-width: 768px) {
  .udupi-sec { padding: 56px 0; }
  .udupi-sec-heading { font-size: 32px !important; }
  .udupi-inst-grid { grid-template-columns: 1fr; }
  .udupi-prog-grid { grid-template-columns: repeat(2, 1fr); }
  .udupi-fac-grid { grid-template-columns: repeat(2, 1fr); }
  .udupi-why-grid { grid-template-columns: 1fr; }
  .udupi-news-grid { grid-template-columns: 1fr; }
  .udupi-accred-grid { grid-template-columns: repeat(3, 1fr); }
  .udupi-stats-bar { padding: 20px 16px; }
  .udupi-stat-num { font-size: 32px; }
}
@media (max-width: 480px) {
  .udupi-prog-grid { grid-template-columns: 1fr; }
  .udupi-fac-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 120px; }
  .udupi-accred-grid { grid-template-columns: repeat(2, 1fr); }
  .udupi-adm-text h2 { font-size: 30px; }
  .udupi-wa-wrap { bottom: 80px; right: 18px; }
  .udupi-scroll-btns { right: 18px; bottom: 148px; }
}

/* ═══════════════════════════════════════════════════════════
   INNER PAGE STYLES
   ═══════════════════════════════════════════════════════════ */
.ud-page-hero{background:var(--ud-navy,#0d1b3e);color:#fff;padding:80px 0 60px;text-align:center}
.ud-page-hero h1{font-size:clamp(1.8rem,4vw,2.8rem);margin:0 0 .5rem;color:#fff}
.ud-page-hero p{color:rgba(255,255,255,.8);max-width:640px;margin:0 auto}
.ud-page-wrap{max-width:1160px;margin:0 auto;padding:60px 24px}
.ud-section-title{font-size:1.6rem;color:var(--ud-navy,#0d1b3e);margin:0 0 1rem;border-left:4px solid var(--ud-gold,#f5c518);padding-left:12px}
/* Parent Ohio theme's bare h3/h4 selectors use a larger clamp() than our h2
   (.ud-section-title), so inner-page subheadings rendered bigger than their
   section title. Restore h1 > h2 > h3 > h4 across all .ud-page-wrap pages. */
.ud-page-wrap h3{font-size:1.25rem;line-height:1.4}
.ud-page-wrap h4{font-size:1.05rem;line-height:1.4}
/* Inline content links (e.g. E-Library's external database links) inherited the
   body copy's near-black colour with no underline, so they didn't read as
   clickable the way the old site's links did (old site: #007acc, underlined on
   hover). Restore that contrast for plain inline links; buttons (.ud-btn etc.)
   are excluded so this doesn't touch CTA styling. */
.ud-page-wrap a:not(.ud-btn):not(.ud-btn-primary):not(.ud-btn-outline):not(.udupi-prog-btn):not(.udupi-inst-btn):not(.udupi-prog-title-link):not(.udupi-inst-title-link){color:#007acc;text-decoration:underline}
.ud-page-wrap a:not(.ud-btn):not(.ud-btn-primary):not(.ud-btn-outline):not(.udupi-prog-btn):not(.udupi-inst-btn):not(.udupi-prog-title-link):not(.udupi-inst-title-link):hover,
.ud-page-wrap a:not(.ud-btn):not(.ud-btn-primary):not(.ud-btn-outline):not(.udupi-prog-btn):not(.udupi-inst-btn):not(.udupi-prog-title-link):not(.udupi-inst-title-link):focus{color:#686868}
.ud-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;margin-top:32px}
.ud-card{background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:24px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.ud-card h3{color:var(--ud-navy,#0d1b3e);margin:0 0 .6rem}
.ud-card p{color:#555;font-size:.95rem;line-height:1.6;margin:0}
.ud-info-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:20px;border-radius:var(--ud-radius,14px);overflow:hidden;box-shadow:var(--ud-shadow,0 4px 24px rgba(13,33,55,.10));border:1px solid #e5e9ef}
.ud-info-table th,.ud-info-table td{padding:14px 22px !important;text-align:left;font-size:.95rem;border-bottom:1px solid #eceef2;transition:background .15s ease}
.ud-info-table th{background:linear-gradient(135deg,var(--ud-navy,#0d2137) 0%,var(--ud-blue,#1b3a5c) 100%);color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;border-bottom:none}
.ud-info-table tr:last-child td{border-bottom:none}
.ud-info-table tr:nth-child(even) td{background:var(--ud-light,#f4f7fb)}
.ud-info-table tr:not(:first-child):hover td{background:#eaf0fa}
.ud-info-table td:first-child{font-weight:700;color:var(--ud-navy,#0d2137);width:36%;border-left:3px solid transparent}
.ud-info-table tr:not(:first-child):hover td:first-child{border-left-color:var(--ud-gold,#f5b800)}
@media (max-width:600px){
  .ud-info-table th,.ud-info-table td{padding:10px 14px !important;font-size:.85rem}
  .ud-info-table td:first-child{width:42%}
}
.ud-btn{display:inline-block;padding:12px 28px;border-radius:4px;font-weight:700;text-decoration:none;font-size:.9rem;margin:8px 8px 8px 0}
.ud-btn-primary{background:var(--ud-gold,#f5c518);color:var(--ud-navy,#0d1b3e)}
.ud-btn-outline{border:2px solid var(--ud-navy,#0d1b3e);color:var(--ud-navy,#0d1b3e)}
.ud-two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.ud-highlight-box{background:var(--ud-navy,#0d1b3e);color:#fff;border-radius:8px;padding:32px;position:sticky;top:94px;max-height:calc(100vh - 118px);overflow-y:auto}
.ud-highlight-box h3{color:var(--ud-gold,#f5c518);margin:0 0 1rem}
.ud-highlight-box p{margin:0}
.udupi-course-page-cat--on-dark{position:absolute;top:32px;right:32px;bottom:auto;left:auto;background:rgba(245,184,0,.14);border:1px solid var(--ud-gold,#f5c518);color:var(--ud-gold,#f5c518);font-size:11px;font-weight:700;padding:5px 14px;border-radius:20px;letter-spacing:.06em;white-space:nowrap;width:auto;height:auto}
@media(max-width:768px){.udupi-course-page-cat--on-dark{position:static;display:inline-block;margin-bottom:10px}}
.ud-highlight-box ul{list-style:none;margin:0;padding-left:0}
.ud-highlight-box li{margin:.4rem 0;line-height:1.5}
@media(max-width:768px){.ud-two-col{grid-template-columns:1fr}.ud-card-grid{grid-template-columns:1fr}.ud-highlight-box{position:static;max-height:none;overflow-y:visible}}

/* ════════════════════════════════════════════════════════════════════════════
   DESIGN FIXES v2 — All requested updates
   ════════════════════════════════════════════════════════════════════════════ */

/* ── 1. Google Fonts: Oswald for section headings ── */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@500;600;700&family=Poppins:wght@400;500;600;700&display=swap');

/* ── 2. Heading font: switch Anton → Oswald for section headings ── */
.udupi-sec-heading,
.udupi-adm-cta-v2 h2,
.ud-section-title {
  font-family: 'Oswald', 'Anton', sans-serif !important;
  letter-spacing: .02em;
}
/* keep Anton on slider/hero display text */
.udupi-hero__title,
.udupi-slide__title { font-family: 'Anton', sans-serif !important; }

/* ── 3. WhatsApp: move to LEFT side ── */
.udupi-wa-wrap {
  right: auto !important;
  left: 28px !important;
  bottom: 60px !important;
}
/* tooltip now opens to the RIGHT */
.udupi-wa-tooltip {
  right: auto !important;
  left: 68px !important;
}
.udupi-wa-tooltip::after {
  right: auto !important;
  left: -6px !important;
  border-left-color: transparent !important;
  border-right-color: var(--ud-navy) !important;
  border-right: 6px solid var(--ud-navy) !important;
  border-left: none !important;
}
@media (max-width: 768px) {
  .udupi-wa-wrap { left: 18px !important; right: auto !important; bottom: 50px !important; }
}

/* ── 4. Button hover: fix invisible hover on dark backgrounds ── */
/* Ghost button (gold border) on dark sections → fill white on hover */
.udupi-admissions-cta .udupi-cta-ghost:hover,
.udupi-adm-cta-v2 .udupi-cta-ghost:hover {
  background: #fff !important;
  color: var(--ud-navy) !important;
  border-color: #fff !important;
}
/* ghost-light variant (white border, white text) */
.udupi-cta-ghost-light {
  display: inline-block;
  border: 2px solid rgba(255,255,255,.8);
  color: #fff;
  font-weight: 700; font-size: 14px; padding: 12px 28px; border-radius: 6px;
  text-decoration: none; transition: background .2s, color .2s, border-color .2s;
}
.udupi-cta-ghost-light:hover {
  background: #fff;
  color: var(--ud-navy) !important;
  border-color: #fff;
}
/* Solid button (gold) on ANY dark bg → slightly darker gold, keep navy text readable */
.udupi-adm-cta-v2 .udupi-cta-solid:hover,
.udupi-admissions-cta .udupi-cta-solid:hover { background: #ffd000 !important; color: #000 !important; }

/* ── 5. Achievement cards: fix letter-spacing & strip shortcodes display ── */
.udupi-achieve-card h5 {
  letter-spacing: .01em !important;
  font-size: .9rem;
  line-height: 1.4;
}

/* ── 6. Institutions section: 6th CTA card ── */
.udupi-inst-card--cta {
  background: var(--ud-navy);
  border-radius: var(--ud-radius, 10px);
  display: flex; align-items: center; justify-content: center;
  min-height: 320px;
  text-align: center;
  grid-column: span 2; /* fill the trailing empty cell on desktop */
}
.udupi-inst-cta-content { padding: 32px 24px; }
.udupi-inst-cta-content .udupi-inst-cta-icon {
  font-size: 2.5rem; color: var(--ud-gold); margin-bottom: 16px; display: block;
}
.udupi-inst-cta-content h3 { color: #fff; font-size: 1.3rem; margin: 0 0 10px; }
.udupi-inst-cta-content p { color: rgba(255,255,255,.75); font-size: .9rem; line-height: 1.6; margin: 0 0 20px; }
.udupi-inst-cta-content .udupi-cta-solid { display: block; margin: 0 0 12px; }
.udupi-inst-view-all { color: var(--ud-gold); font-size: .85rem; font-weight: 600; text-decoration: none; }
.udupi-inst-view-all:hover { text-decoration: none; opacity: .8; }

/* ── 7. Admissions CTA v2 — split panel, now CONTAINED in a centered box
   (.page-container wrapper) so it aligns to the same width as the sections below. ── */
.udupi-adm-cta-v2-section { padding: 36px 0; }
/* match the standard content width (same as the sections below: max 1600 / 40px gutters) */
.udupi-adm-cta-v2-section > .page-container { max-width: 1600px; padding: 0 40px; margin: 0 auto; }
@media (max-width: 600px) {
  .udupi-adm-cta-v2-section { padding: 22px 0; }
  .udupi-adm-cta-v2-section > .page-container { padding: 0 16px; }
}
.udupi-adm-cta-v2 {
  display: grid;
  grid-template-columns: minmax(auto, 580px) 1fr;  /* text panel only as wide as it needs; photo fills the rest (covers the old blank gap) */
  min-height: 460px;
  overflow: hidden;
  border-radius: 18px;
}
.udupi-adm-v2-right { min-width: 0; }   /* let the photo cell grow without overflow */
.udupi-adm-v2-left {
  background: var(--ud-navy);
  display: flex; align-items: center;
  padding: 60px 56px;
  position: relative;
}
/* diagonal clip on right edge */
.udupi-adm-v2-left::after {
  content: '';
  position: absolute; right: -30px; top: 0; bottom: 0; width: 60px;
  background: var(--ud-navy);
  clip-path: polygon(0 0, 0 100%, 100% 100%);
  z-index: 2;
}
.udupi-adm-v2-inner { position: relative; z-index: 3; max-width: 460px; }
.udupi-adm-v2-badge {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--ud-gold); color: var(--ud-navy);
  font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  padding: 5px 14px; border-radius: 20px; margin-bottom: 20px;
}
.udupi-adm-v2-title {
  font-family: 'Oswald', 'Anton', sans-serif !important;
  font-size: clamp(2rem, 3.5vw, 3rem);
  color: #fff; margin: 0 0 14px; line-height: 1.1;
  text-transform: uppercase;
}
.udupi-adm-v2-sub { color: rgba(255,255,255,.78); font-size: .97rem; line-height: 1.7; margin: 0 0 24px; }
.udupi-adm-v2-stats {
  display: flex; gap: 32px; margin-bottom: 28px;
}
.udupi-adm-v2-stats > div { text-align: center; }
.udupi-adm-v2-stats strong {
  display: block; font-family: 'Oswald', sans-serif;
  font-size: 2rem; color: var(--ud-gold); line-height: 1;
}
.udupi-adm-v2-stats span { font-size: .75rem; color: rgba(255,255,255,.65); text-transform: uppercase; letter-spacing: .08em; }
.udupi-adm-v2-btns { display: flex; gap: 14px; flex-wrap: wrap; }
.udupi-adm-v2-right {
  position: relative; overflow: hidden;
}
.udupi-adm-v2-right img {
  width: 100%; height: 100%; object-fit: cover;
  display: block; transition: transform .5s;
}
.udupi-adm-v2-right:hover img { transform: scale(1.04); }
.udupi-adm-v2-overlay {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(to top, rgba(13,33,55,.9) 0%, transparent 100%);
  padding: 24px 28px;
  display: flex; gap: 20px; flex-wrap: wrap;
}
.udupi-adm-v2-overlay-item {
  color: #fff; font-size: .88rem; font-weight: 600;
  display: flex; align-items: center; gap: 8px;
}
.udupi-adm-v2-overlay-item i { color: var(--ud-gold); }
@media (max-width: 900px) {
  .udupi-adm-cta-v2 { grid-template-columns: 1fr; }
  .udupi-adm-v2-left::after { display: none; }
  .udupi-adm-v2-right { min-height: 260px; }
  .udupi-adm-v2-left { padding: 40px 28px; }
}
@media (max-width: 600px) {
  .udupi-adm-v2-stats { gap: 16px; }
}

/* ── 8. Navigation dropdown submenus ── */
/* Ensure Ohio theme sub-menus look polished */
.udupi-menu-list > li.menu-item-has-children { position: relative; }
.udupi-menu-list > li.menu-item-has-children > .sub-menu,
.udupi-menu-list > li > .sub-menu {
  position: absolute !important;
  top: 100%; left: 0;
  background: var(--ud-navy) !important;
  min-width: 230px;
  border-top: 3px solid var(--ud-gold);
  border-radius: 0 0 8px 8px;
  box-shadow: 0 8px 32px rgba(0,0,0,.22);
  opacity: 0; visibility: hidden;
  transform: translateY(8px);
  transition: opacity .2s, transform .2s, visibility .2s;
  z-index: 9999;
  padding: 8px 0 !important;
  list-style: none !important;
}
/* Ohio walker uses 'has-submenu' class; WP standard uses 'menu-item-has-children' — match both */
.udupi-menu-list > li.menu-item-has-children:hover > .sub-menu,
.udupi-menu-list > li.has-submenu:hover > .sub-menu,
.udupi-menu-list > li:hover > .sub-menu,
.udupi-menu-list > li:focus-within > .sub-menu {
  opacity: 1 !important; visibility: visible !important; transform: translateY(0) !important;
  display: flex !important;
}
.udupi-menu-list .sub-menu li { border-bottom: 1px solid rgba(255,255,255,.07); }
.udupi-menu-list .sub-menu li:last-child { border-bottom: none; }
.udupi-menu-list .sub-menu li a {
  color: rgba(255,255,255,.88) !important;
  font-size: 13px !important; font-weight: 500 !important;
  padding: 10px 20px !important;
  display: block !important;
  transition: color .15s, background .15s !important;
  white-space: nowrap;
}
.udupi-menu-list .sub-menu li a:hover {
  color: var(--ud-gold) !important;
  background: rgba(255,255,255,.05) !important;
}
/* 3rd-level fly-out: positioning anchor */
.udupi-menu-list .sub-menu li.menu-item-has-children > .sub-menu,
.udupi-menu-list .sub-menu li.has-submenu > .sub-menu {
  top: 0 !important; left: 100% !important; border-top: none;
  border-left: 3px solid var(--ud-gold);
}

/* ── 9. Courses page grid ── */
.ud-page-wrap .ud-card-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important; }
.ud-card h3 { font-family: 'Oswald', sans-serif; font-size: 1rem; }

/* ── 10. Inner page hero redesign ── */
.udupi-inner-hero {
  background-color: var(--ud-navy);
  background-image:
    linear-gradient(135deg, rgba(13,33,55,0.86) 0%, rgba(27,68,120,0.74) 100%),
    url('/Works/ucn-udupi/wp-content/uploads/2026/05/udupi-campus-aerial.jpg');
  background-size: cover;
  background-position: center 75%;
  background-repeat: no-repeat;
  padding: 70px 0 50px;
  position: relative;
  overflow: hidden;
}
.udupi-inner-hero::before {
  content: '';
  position: absolute; right: -80px; top: -80px;
  width: 400px; height: 400px;
  background: rgba(245,184,0,.08);
  border-radius: 50%;
  z-index: 1;
}
.udupi-inner-hero__wrap {
  max-width: 1160px; margin: 0 auto; padding: 0 24px;
  position: relative; z-index: 2;
}
.udupi-inner-hero__breadcrumb {
  font-size: 13px; color: rgba(255,255,255,.6); margin-bottom: 14px;
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.udupi-inner-hero__breadcrumb a { color: var(--ud-gold); text-decoration: none; }
.udupi-inner-hero__breadcrumb a:hover { text-decoration: none; opacity: .75; }
.udupi-inner-hero__breadcrumb span { color: rgba(255,255,255,.4); }
.udupi-inner-hero__title {
  font-family: 'Oswald', 'Anton', sans-serif;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  color: #fff; margin: 0 0 10px; text-transform: uppercase; letter-spacing: .03em;
}
.udupi-inner-hero__sub {
  color: rgba(255,255,255,.75); font-size: 1rem; max-width: 640px; margin: 0; line-height: 1.6;
}
.udupi-inner-hero__accent {
  display: inline-block; width: 48px; height: 4px;
  background: var(--ud-gold); border-radius: 2px; margin-bottom: 16px;
}
/* hide Ohio's native page title/headline banner since we're replacing it */
.page-container .page-headline,
.page-container .page-title-wrap,
.page-container .page-hero,
.page-container > .page-content > .content-area > main > article > .ud-page-hero { display: none !important; }

/* ── 11. Facilities grid: 9-tile perfect 3×3 ── */
.udupi-fac-grid { grid-template-columns: repeat(3, 1fr) !important; grid-auto-rows: 180px !important; }
/* Remove aspect-ratio override — use fixed row height to prevent heading overlap */
.udupi-fac-tile { aspect-ratio: unset !important; }

/* ── 12. Mobile & tablet responsiveness ── */
@media (max-width: 1024px) {
  .udupi-inst-grid { grid-template-columns: repeat(2, 1fr); }
  .udupi-prog-grid { grid-template-columns: repeat(2, 1fr); }
  .udupi-fac-grid { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 768px) {
  .udupi-sec { padding: 44px 0; }
  .udupi-container { padding: 0 16px; }
  .udupi-about-grid { grid-template-columns: 1fr; }
  .udupi-inst-grid { grid-template-columns: 1fr; }
  .udupi-inst-card--cta { grid-column: auto; }
  .udupi-prog-grid { grid-template-columns: 1fr; }
  .udupi-fac-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .udupi-ql-grid { grid-template-columns: repeat(4, 1fr); }
  .udupi-why-grid { grid-template-columns: repeat(2, 1fr); }
  .udupi-accred-grid { grid-template-columns: repeat(3, 1fr); }
  .udupi-news-grid { grid-template-columns: 1fr; }
  .udupi-sec-heading { font-size: 28px !important; }
  .udupi-adm-cta-v2 { grid-template-columns: 1fr; }
  .udupi-adm-v2-left { padding: 36px 20px; }
  .udupi-inner-hero { padding: 48px 0 36px; }
  .udupi-inner-hero__title { font-size: 1.6rem; }
}
@media (max-width: 480px) {
  .udupi-ql-grid { grid-template-columns: repeat(2, 1fr); }
  .udupi-why-grid { grid-template-columns: 1fr; }
  .udupi-accred-grid { grid-template-columns: repeat(2, 1fr); }
  .udupi-adm-v2-stats { gap: 12px; }
  .udupi-adm-v2-stats strong { font-size: 1.5rem; }
  .udupi-fac-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ── 13. Contact Us page specific ── */
.udupi-contact-form-wrap { background: #f5f7fa; border-radius: 10px; padding: 36px; }
.udupi-contact-form-wrap .wpcf7 input[type="text"],
.udupi-contact-form-wrap .wpcf7 input[type="email"],
.udupi-contact-form-wrap .wpcf7 input[type="tel"],
.udupi-contact-form-wrap .wpcf7 textarea,
.udupi-contact-form-wrap .wpcf7 select {
  width: 100%; padding: 12px 16px; border: 1px solid #ddd;
  border-radius: 6px; font-size: 15px; margin-bottom: 14px;
  font-family: inherit; transition: border-color .2s;
}
.udupi-contact-form-wrap .wpcf7 input:focus,
.udupi-contact-form-wrap .wpcf7 textarea:focus { border-color: var(--ud-navy); outline: none; }
.udupi-contact-form-wrap .wpcf7 input[type="submit"] {
  background: var(--ud-gold); color: var(--ud-navy); border: none;
  font-weight: 700; font-size: 15px; padding: 14px 32px;
  border-radius: 6px; cursor: pointer; transition: background .2s;
  width: 100%;
}
.udupi-contact-form-wrap .wpcf7 input[type="submit"]:hover { background: #e0a700; }
.wpcf7-not-valid-tip { color: #e53e3e; font-size: 12px; }
.wpcf7-mail-sent-ok { color: #38a169; background: #f0fff4; border: 1px solid #9ae6b4; padding: 10px 16px; border-radius: 6px; }

/* ── 14. Institutions page: different design from About Us ── */
.udupi-inst-full-card {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  background: #fff; border-radius: 10px; overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,.08); margin-bottom: 32px;
}
.udupi-inst-full-card:nth-child(even) { direction: rtl; }
.udupi-inst-full-card:nth-child(even) > * { direction: ltr; }
.udupi-inst-full-img { position: relative; min-height: 300px; overflow: hidden; }
.udupi-inst-full-img img { width: 100%; height: 100%; object-fit: cover; }
.udupi-inst-full-body { padding: 40px 44px; display: flex; flex-direction: column; justify-content: center; }
.udupi-inst-full-badge {
  display: inline-block; background: var(--ud-gold); color: var(--ud-navy);
  font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  padding: 4px 12px; border-radius: 20px; margin-bottom: 12px;
}
.udupi-inst-full-body h3 { font-family: 'Oswald', sans-serif; font-size: 1.4rem; color: var(--ud-navy); margin: 0 0 8px; }
.udupi-inst-title-link { color: inherit; text-decoration: none; }
.udupi-inst-title-link:hover { color: inherit; text-decoration: none; }
.udupi-inst-full-body p { color: #555; font-size: .9rem; line-height: 1.65; margin: 0 0 16px; }
@media (max-width: 768px) {
  .udupi-inst-full-card { grid-template-columns: 1fr; }
  .udupi-inst-full-card:nth-child(even) { direction: ltr; }
  .udupi-inst-full-img { min-height: 200px; }
  .udupi-inst-full-body { padding: 24px 20px; }
}

/* ════════════════════════════════════════════════════════════════════════════
   HOMEPAGE v3 — Slider, Logo, Scroll buttons, Facilities
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Logo image ── */
.udupi-logo-img {
  height: 54px;
  width: auto;
  display: block;
  object-fit: contain;
}

/* ── Scroll up/down buttons: align with WhatsApp (both bottom: 60px) ── */
/* WhatsApp is on the LEFT at bottom:60px; scroll btns on RIGHT at same height */
.udupi-scroll-btns { bottom: 60px !important; right: 28px !important; }
@media (max-width: 768px) {
  .udupi-scroll-btns { right: 18px !important; bottom: 50px !important; }
  .udupi-slider-btn { display: flex; width: 38px; height: 46px; font-size: 15px; }
  .udupi-slider-btn--prev { left: 10px; }
  .udupi-slider-btn--next { right: 10px; }
}

/* ── Slider button: hide on very small screens ── */
@media (max-width: 480px) {
  .udupi-slider-btn { display: none; }
}

/* ── Facilities: ensure grid-auto-rows applies and no tile overflow ── */
.udupi-fac-grid { grid-auto-rows: 180px !important; }
.udupi-fac-tile { min-height: 0 !important; height: 100% !important; }
@media (max-width: 768px) {
  .udupi-fac-grid { grid-template-columns: repeat(3, 1fr) !important; grid-auto-rows: 140px !important; }
}
@media (max-width: 480px) {
  .udupi-fac-grid { grid-template-columns: repeat(2, 1fr) !important; grid-auto-rows: 120px !important; }
  .udupi-fac-name { font-size: 11px; bottom: 8px; }
}

/* ════════════════════════════════════════════════════════════════════════════
   HOMEPAGE v4 — Nav sub-submenus, Stats, News, Button hover, Footer
   ════════════════════════════════════════════════════════════════════════════ */

/* ── 1. Facilities: 10 tiles → 5-column 2-row grid ── */
.udupi-fac-grid { grid-template-columns: repeat(5, 1fr) !important; grid-auto-rows: 170px !important; }
@media (max-width: 1024px) {
  .udupi-fac-grid { grid-template-columns: repeat(5, 1fr) !important; grid-auto-rows: 130px !important; }
}
@media (max-width: 768px) {
  .udupi-fac-grid { grid-template-columns: repeat(3, 1fr) !important; grid-auto-rows: 130px !important; }
}
@media (max-width: 480px) {
  .udupi-fac-grid { grid-template-columns: repeat(2, 1fr) !important; grid-auto-rows: 110px !important; }
}

/* ── 2. Stats bar: icon + redesign ── */
.udupi-stat-icon {
  display: block; font-size: 22px; color: var(--ud-gold);
  margin-bottom: 6px; opacity: .85;
}
.udupi-stat-num { font-size: 36px; }
.udupi-stat-item { position: relative; }
.udupi-stat-item:not(:last-child)::after {
  content: ''; position: absolute; right: 0; top: 20%; bottom: 20%;
  width: 1px; background: rgba(255,255,255,.15);
}

/* ── 3. Quick Enquiry heading: remove plane icon, dot accent ── */
.udupi-enq-dot {
  display: inline-block; width: 10px; height: 10px;
  background: var(--ud-navy); border-radius: 50%; margin-right: 8px;
  vertical-align: middle;
}
.udupi-enquiry-head {
  background: var(--ud-gold); color: var(--ud-navy);
  font-family: 'Oswald', 'Anton', sans-serif;
  font-size: 16px; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase; padding: 14px 24px;
  display: flex; align-items: center;
}

/* ── 4. News section: header row with button ── */
.udupi-news-head-row {
  display: flex; align-items: flex-end; justify-content: space-between;
  margin-bottom: 36px; flex-wrap: wrap; gap: 16px;
}
.udupi-news-head-text { flex: 1; }
.udupi-news-head-text .udupi-sec-heading { text-align: left !important; margin-bottom: 0; }
.udupi-news-all-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--ud-navy); color: #fff;
  font-weight: 700; font-size: 13px; letter-spacing: .04em;
  padding: 11px 22px; border-radius: 6px; text-decoration: none;
  border: 2px solid var(--ud-navy); white-space: nowrap;
  transition: background .2s, color .2s;
}
.udupi-news-all-btn:hover {
  background: var(--ud-gold) !important;
  color: var(--ud-navy) !important;
  border-color: var(--ud-gold) !important;
}
@media (max-width: 768px) {
  .udupi-news-head-row { flex-direction: column; align-items: flex-start; }
}

/* ── 5. Button hover: universal fixes ── */
/* Solid gold button on any bg → darker gold, navy text */
.udupi-cta-solid:hover { background: #e0a800 !important; color: var(--ud-navy) !important; }
/* Ghost (gold border) → fill gold, navy text */
.udupi-cta-ghost:hover { background: var(--ud-gold) !important; color: var(--ud-navy) !important; border-color: var(--ud-gold) !important; }
/* Ghost-dark (navy border) → fill navy, white text */
.udupi-cta-ghost-dark:hover { background: var(--ud-navy) !important; color: #fff !important; }
/* BEM primary/yellow → ensure visible text */
.udupi-btn--primary:hover,
.udupi-btn--yellow:hover { color: var(--udupi-primary-dark) !important; }
/* Outline-white on dark sections: fill white, dark text */
.udupi-btn--outline-white:hover { background: #fff !important; color: var(--ud-navy) !important; }
/* Slider btn: gold bg, navy icon on hover (already set, reinforce) */
.udupi-slider-btn:hover { background: var(--ud-gold) !important; color: var(--ud-navy) !important; border-color: var(--ud-gold) !important; }

/* ── 6. Nav: 3rd-level sub-sub-menu fly-out RIGHT ── */
/* Make sub-menu items position-relative for 3rd level anchor */
.udupi-menu-list .sub-menu li { position: relative; }
/* 3rd level: fly to the right */
.udupi-menu-list .sub-menu .sub-menu {
  display: none !important;
  position: absolute !important;
  left: 100% !important;
  top: -3px !important;
  min-width: 220px !important;
  background: var(--ud-navy) !important;
  border-top: 3px solid var(--ud-gold) !important;
  border-left: none !important;
  border-radius: 0 0 8px 8px !important;
  box-shadow: 4px 8px 24px rgba(0,0,0,.28) !important;
  padding: 6px 0 !important;
  opacity: 1 !important; visibility: visible !important;
  transform: none !important;
}
.udupi-menu-list .sub-menu li:hover > .sub-menu,
.udupi-menu-list .sub-menu li:focus-within > .sub-menu { display: block !important; }
/* Indicate sub-sub parent items with arrow (Ohio uses has-submenu, WP uses menu-item-has-children) */
.udupi-menu-list .sub-menu li.menu-item-has-children > a::after,
.udupi-menu-list .sub-menu li.has-submenu > a::after {
  content: ' ›'; font-size: 14px; color: var(--ud-gold); float: right;
}

/* ── 7. Footer: space between social icons and Affiliated heading ── */
.udupi-footer-col .udupi-footer-title[style*="margin-top"],
.udupi-footer-col h4.udupi-footer-title + h4.udupi-footer-title { margin-top: 32px !important; }
/* Target the second footer-title in column 4 (Affiliated) */
.udupi-footer-col:last-child .udupi-footer-title:nth-of-type(2) { margin-top: 36px !important; }
/* Also via inline style that was used in functions.php */
.udupi-social-links + h4.udupi-footer-title { margin-top: 36px !important; }

/* ── 8. CSS version bump ── */

/* ════════════════════════════════════════════════════════════════════════════
   v5 — Slider, WhatsApp, Floating, Logo, Titles, Buttons, Submenus
   ════════════════════════════════════════════════════════════════════════════ */

/* ── 1. Slider: move prev/next to bottom-right corner ── */
.udupi-slider-btn {
  top: auto !important;
  transform: none !important;
  bottom: 22px !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  font-size: 15px !important;
}
.udupi-slider-btn:hover { transform: scale(1.1) !important; }
.udupi-slider-btn--prev { left: auto !important; right: 72px !important; }
.udupi-slider-btn--next { left: auto !important; right: 22px !important; }
/* Pagination dots: just to the left of the buttons */
.udupi-slider-dots {
  left: auto !important;
  transform: none !important;
  right: 124px !important;
  bottom: 34px !important;
}
@media (max-width: 768px) {
  .udupi-slider-btn--prev { right: 66px !important; }
  .udupi-slider-btn--next { right: 18px !important; }
  .udupi-slider-dots { right: 116px !important; bottom: 30px !important; }
}

/* ── 2. WhatsApp hover: gold accent ── */
.udupi-wa-btn { transition: background .2s, transform .2s, box-shadow .2s, color .2s !important; }
.udupi-wa-btn:hover {
  background: var(--ud-gold) !important;
  color: var(--ud-navy) !important;
  transform: scale(1.08) !important;
  box-shadow: 0 8px 28px rgba(245,184,0,.5) !important;
}

/* ── 3. Floating buttons: 20px from bottom ── */
.udupi-wa-wrap { bottom: 20px !important; right: 28px !important; left: auto !important; }
.udupi-scroll-btns { bottom: 88px !important; right: 28px !important; }
@media (max-width: 768px) {
  .udupi-wa-wrap { bottom: 20px !important; right: 18px !important; }
  .udupi-scroll-btns { bottom: 88px !important; right: 18px !important; }
}

/* ── 4. Logo height ── */
.udupi-logo-img { height: 70px !important; }

/* ── 4b. Hide Ohio built-in page headline (we have udupi-inner-hero) ── */
.page-headline { display: none !important; }

/* ── 7. Button hover: ensure text always readable ── */
.udupi-btn--outline-white:hover  { background: #fff !important; color: var(--ud-navy) !important; border-color: #fff !important; }
.udupi-btn--outline:hover        { background: #fff !important; color: var(--ud-navy) !important; border-color: #fff !important; }
.udupi-cta-solid:hover           { background: var(--ud-gold) !important; color: var(--ud-navy) !important; }
.udupi-cta-ghost:hover           { background: var(--ud-gold) !important; color: var(--ud-navy) !important; }
.udupi-cta-ghost-dark:hover      { background: var(--ud-navy) !important; color: #fff !important; }
.udupi-cta-solid-inv:hover       { background: var(--ud-gold) !important; color: var(--ud-navy) !important; }
.udupi-enq-btn-primary:hover     { background: #c7940a !important; color: #fff !important; }
.udupi-enq-btn-ghost:hover       { background: transparent !important; color: var(--ud-gold) !important; border-color: var(--ud-gold) !important; }
.udupi-btn--primary:hover        { background: #f0cc00 !important; color: var(--ud-navy) !important; }
.udupi-btn--yellow:hover         { background: #f0cc00 !important; color: var(--ud-navy) !important; }
.udupi-inst-btn:hover            { background: var(--ud-blue) !important; color: #fff !important; }
.ud-btn-primary:hover            { background: var(--ud-gold) !important; color: var(--ud-navy) !important; }
.ud-btn-outline:hover            { background: transparent !important; border-color: var(--ud-navy) !important; color: var(--ud-navy) !important; }
.udupi-nav-enquire:hover         { background: var(--ud-gold) !important; color: var(--ud-navy) !important; }
.udupi-prog-btn:hover            { background: var(--ud-gold) !important; color: var(--ud-navy) !important; }
.udupi-news-all-btn:hover        { background: var(--ud-gold) !important; color: var(--ud-navy) !important; }

/* ── 9. Submenu: Ohio walker outputs 3rd level as .sub-sub-menu ── */
/* Hide 3rd level by default */
.udupi-menu-list .sub-menu .sub-sub-menu,
.udupi-menu-list .sub-menu .sub-menu {
  display: none !important;
  position: absolute !important;
  left: 100% !important;
  top: -6px !important;
  min-width: 220px !important;
  background: var(--ud-navy) !important;
  border-left: 3px solid var(--ud-gold) !important;
  border-radius: 0 0 8px 8px !important;
  box-shadow: 4px 8px 24px rgba(0,0,0,.3) !important;
  padding: 6px 0 !important;
  opacity: 1 !important; visibility: visible !important; transform: none !important;
}
/* Show on hover of parent 2nd-level item */
.udupi-menu-list .sub-menu li:hover > .sub-sub-menu,
.udupi-menu-list .sub-menu li:focus-within > .sub-sub-menu,
.udupi-menu-list .sub-menu li:hover > .sub-menu,
.udupi-menu-list .sub-menu li:focus-within > .sub-menu {
  display: flex !important;
  flex-direction: column !important;
}
/* Arrow for items that have children */
.udupi-menu-list .sub-menu li.has-submenu > a::after {
  content: ' ›' !important; font-size: 14px !important;
  color: var(--ud-gold) !important; float: right !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   CONTACT & APPLY ONLINE PAGE STYLES
   ════════════════════════════════════════════════════════════════════════════ */

/* Hero strip */
.udupi-contact-hero-strip {
  background: linear-gradient(135deg, var(--ud-navy) 0%, #1b4478 100%);
  padding: 40px 0 32px;
  text-align: center;
  margin-bottom: 0;
}
.udupi-contact-hero-strip__inner { max-width: 700px; margin: 0 auto; padding: 0 24px; }
.udupi-contact-hero-strip__title { font-family: 'Oswald','Anton',sans-serif; font-size: 2rem; color: var(--ud-gold); margin: 0 0 10px; text-transform: uppercase; letter-spacing: 1px; }
.udupi-contact-hero-strip__sub { color: rgba(255,255,255,.82); font-size: 15px; margin: 0; }

/* Two-column layout */
.udupi-contact-page { background: #f7f8fa; }
.udupi-contact-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 48px 32px 60px;
}
@media (max-width: 900px) {
  .udupi-contact-wrap { grid-template-columns: 1fr; padding: 32px 20px 48px; }
}

/* Column headings */
.udupi-contact-col-title {
  font-family: 'Oswald','Anton',sans-serif;
  font-size: 1.25rem;
  color: var(--ud-navy);
  text-transform: uppercase;
  letter-spacing: .5px;
  margin: 0 0 8px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.udupi-contact-col-title__accent {
  display: inline-block; width: 6px; height: 22px;
  background: var(--ud-gold); border-radius: 3px; flex-shrink: 0;
}
.udupi-contact-col-desc { color: #666; font-size: 14px; margin: 0 0 24px; }

/* Form column */
.udupi-contact-form-col { background: #fff; border-radius: 10px; padding: 32px; box-shadow: 0 2px 20px rgba(0,0,0,.07); }
.udupi-cf7-wrap .wpcf7-form { display: flex; flex-direction: column; gap: 14px; }
.udupi-cf7-wrap input[type="text"],
.udupi-cf7-wrap input[type="email"],
.udupi-cf7-wrap input[type="tel"],
.udupi-cf7-wrap select,
.udupi-cf7-wrap textarea {
  width: 100% !important;
  padding: 12px 16px !important;
  border: 1.5px solid #dde2ea !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  font-family: 'Poppins','Inter',sans-serif !important;
  color: #333 !important;
  background: #f9fafb !important;
  transition: border-color .2s !important;
  box-sizing: border-box !important;
  outline: none !important;
}
.udupi-cf7-wrap input:focus,
.udupi-cf7-wrap select:focus,
.udupi-cf7-wrap textarea:focus { border-color: var(--ud-navy) !important; background: #fff !important; }
.udupi-cf7-wrap textarea { min-height: 110px !important; resize: vertical !important; }
.udupi-cf7-wrap .wpcf7-submit {
  background: var(--ud-navy) !important;
  color: #fff !important;
  border: none !important;
  padding: 13px 32px !important;
  border-radius: 6px !important;
  font-family: 'Oswald','Anton',sans-serif !important;
  font-size: 15px !important;
  text-transform: uppercase !important;
  letter-spacing: .5px !important;
  cursor: pointer !important;
  transition: background .2s, color .2s !important;
  align-self: flex-start !important;
}
.udupi-cf7-wrap .wpcf7-submit:hover { background: var(--ud-gold) !important; color: var(--ud-navy) !important; }
.udupi-cf7-wrap .wpcf7-not-valid-tip { font-size: 12px !important; color: #d00846 !important; }
.udupi-cf7-wrap .wpcf7-response-output { border-radius: 6px !important; font-size: 13px !important; padding: 10px 16px !important; }

/* Info column */
.udupi-contact-info-col { display: flex; flex-direction: column; gap: 24px; }
.udupi-contact-info-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0; background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 20px rgba(0,0,0,.07); }
.udupi-contact-info-item {
  display: flex; align-items: flex-start; gap: 16px;
  padding: 16px 20px;
  border-bottom: 1px solid #f0f2f5;
  font-size: 14px; color: #444;
}
.udupi-contact-info-item:last-child { border-bottom: none; }
.udupi-contact-info-icon {
  width: 38px; height: 38px; flex-shrink: 0;
  background: var(--ud-navy); color: var(--ud-gold);
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 15px;
}
.udupi-contact-info-item a { color: var(--ud-navy); text-decoration: none; }
.udupi-contact-info-item a:hover { color: var(--ud-gold); }

/* CTA row */
.udupi-contact-cta-row { display: flex; gap: 12px; flex-wrap: wrap; }
.udupi-contact-cta-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 22px; border-radius: 6px;
  font-size: 13px; font-weight: 700; text-decoration: none;
  text-transform: uppercase; letter-spacing: .4px;
  transition: background .2s, color .2s;
}
.udupi-contact-cta-btn--primary { background: var(--ud-navy); color: #fff; }
.udupi-contact-cta-btn--primary:hover { background: var(--ud-gold); color: var(--ud-navy); }
.udupi-contact-cta-btn--wa { background: #25D366; color: #fff; }
.udupi-contact-cta-btn--wa:hover { background: #1daf55; color: #fff; }

/* Map */
.udupi-contact-map-title { font-size: 14px; font-weight: 700; color: var(--ud-navy); margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
.udupi-contact-map-frame { border-radius: 10px; overflow: hidden; box-shadow: 0 2px 16px rgba(0,0,0,.1); }

/* Apply Online: documents box */
.udupi-apply-docs-box {
  background: var(--ud-navy); color: #fff;
  border-radius: 10px; padding: 24px;
  box-shadow: 0 2px 20px rgba(0,0,0,.12);
}
.udupi-apply-docs-title { font-family: 'Oswald','Anton',sans-serif; font-size: 1rem; color: var(--ud-gold); margin: 0 0 14px; display: flex; align-items: center; gap: 8px; text-transform: uppercase; }
.udupi-apply-docs-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.udupi-apply-docs-list li { font-size: 13px; color: rgba(255,255,255,.85); padding-left: 18px; position: relative; }
.udupi-apply-docs-list li::before { content: '✓'; position: absolute; left: 0; color: var(--ud-gold); font-weight: 700; }

/* ════════════════════════════════════════════════════════════════════════════
   v6 — Responsive Nav fix, Placeholder images
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Nav container: take available flex space so actions stay in view ── */
#udupi-primary-nav,
.udupi-nav-menu {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  overflow: visible !important;
}
/* Menu list fills container; items shrink font on small screens */
ul.udupi-menu-list { overflow: visible !important; }

/* Reduce item padding at 1200-1400px so all items fit */
@media (max-width: 1400px) {
  ul.udupi-menu-list > li > a { font-size: 12px !important; padding: 0 8px !important; }
}
@media (max-width: 1280px) {
  ul.udupi-menu-list > li > a { font-size: 11.5px !important; padding: 0 6px !important; }
  .udupi-nav-enquire { font-size: 12px !important; padding: 8px 14px !important; }
}
@media (max-width: 1150px) {
  /* Hide enquire button before hamburger kicks in */
  .udupi-nav-enquire { display: none !important; }
}

/* ── Hamburger at 1100px (was 1024px) so crowded menus go mobile earlier ── */
@media (max-width: 1100px) {
  .udupi-mobile-toggle { display: flex !important; }
  ul.udupi-menu-list,
  .udupi-nav-inner > ul {
    display: none !important;
    flex-direction: column !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    background: #0D2137 !important;
    border-top: 1px solid rgba(255,255,255,0.1) !important;
    z-index: 9980 !important;
    padding: 12px 0 !important;
    align-items: stretch !important;
    flex: none !important;
    width: 100% !important;
  }
  ul.udupi-menu-list.udupi-nav-open,
  .udupi-nav-inner > ul.udupi-nav-open {
    display: flex !important;
    /* The drawer itself never had a bounded height/scroll, so expanding a tall
       submenu (e.g. all 25 Courses) pushed content below the viewport with no
       way to reach it — felt "stuck" and hid every menu item below it. */
    max-height: calc(100vh - 170px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  ul.udupi-menu-list > li > a { font-size: 14px !important; padding: 12px 24px !important; }

  /* Mobile sub-menus: show inline below parent.
     NOTE: the base (non-mobile) rule ".udupi-menu-list > li.menu-item-has-children >
     .sub-menu, .udupi-menu-list > li > .sub-menu { position:absolute !important }"
     (~line 2530) has HIGHER specificity (2 classes) than "ul.udupi-menu-list > li >
     ul" below (1 class) — !important vs !important is decided by specificity, so
     that desktop-dropdown absolute positioning was winning here too, taking the
     submenu out of the drawer's normal flow. It only floated invisibly off past
     the edge of the screen instead of pushing the drawer taller, which is why
     Facilities/Admission/etc. below an open submenu were unreachable and closing
     it appeared to do nothing. The extra ".udupi-nav-open > li > .sub-menu" rule
     matches that specificity so position:static actually applies here. */
  .udupi-menu-list.udupi-nav-open > li > .sub-menu,
  .udupi-menu-list.udupi-nav-open > li.menu-item-has-children > .sub-menu,
  ul.udupi-menu-list > li > ul,
  .udupi-menu-list > li:hover > ul,
  .udupi-menu-list > li:hover > .sub-menu {
    position: static !important;
    display: none !important;
    box-shadow: none !important;
    background: rgba(0,0,0,.2) !important;
    border-top: none !important;
    border-left: 3px solid var(--ud-gold) !important;
    margin-left: 20px !important;
    min-width: unset !important;
    width: calc(100% - 20px) !important;
    padding: 0 !important;
  }
  /* Mobile: show sub-menu when parent has open class (JS needed) or via :hover */
  ul.udupi-menu-list > li.menu-open > ul,
  ul.udupi-menu-list > li.menu-open > .sub-menu { display: flex !important; flex-direction: column !important; }
}

/* ── Mobile sub-menu toggle: add JS class on click ── */
/* Placeholder image: ensure SVG data-uri imgs don't stretch */
.wp-post-image[src^="data:image/svg"] {
  object-fit: cover !important;
  background: #0D2137 !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   v7 — Nav size, WA hover/position, Slider shape, Courses btn, Contact, Logo
   ════════════════════════════════════════════════════════════════════════════ */

/* ── 1. Nav font size: responsive breakpoints ── */
/* Base 14px / 10px horizontal is set in the primary nav-link rule above (~line 1302).
   These breakpoints progressively tighten padding so all items + ENQUIRE NOW fit. */
@media (max-width: 1600px) {
  /* Slight tighten just below max-width cap */
  ul.udupi-menu-list > li > a { padding: 8px 8px !important; }
}
@media (max-width: 1400px) {
  ul.udupi-menu-list > li > a { font-size: 13px !important; padding: 8px 6px !important; }
}
@media (max-width: 1280px) {
  ul.udupi-menu-list > li > a { font-size: 12.5px !important; padding: 8px 5px !important; }
  .udupi-nav-enquire { font-size: 12px !important; padding: 8px 12px !important; }
}
@media (max-width: 1100px) {
  /* Mobile panel — hamburger is active, items go vertical */
  ul.udupi-menu-list > li > a { font-size: 14px !important; padding: 12px 24px !important; }
}

/* ── 2. Plus symbol: left gap before SVG icon ── */
.has-submenu-icon { position: relative !important; right: -5px !important; display: inline-flex !important; align-items: center !important; }

/* ── 3. Logo: increase height ── */
.udupi-logo-img { height: 82px !important; width: auto !important; }

/* ── 4. WhatsApp: fix to LEFT, hover = ring-glow (keep green) ── */
.udupi-wa-wrap {
  left: 28px !important;
  right: auto !important;
  bottom: 20px !important;
}
.udupi-scroll-btns { bottom: 20px !important; right: 28px !important; }
.udupi-wa-btn:hover {
  background: #25D366 !important;
  color: #fff !important;
  transform: scale(1.12) !important;
  box-shadow: 0 0 0 6px rgba(37,211,102,.22), 0 8px 28px rgba(37,211,102,.55) !important;
}
@media (max-width: 768px) {
  .udupi-wa-wrap { left: 16px !important; right: auto !important; bottom: 20px !important; }
  .udupi-scroll-btns { right: 16px !important; bottom: 20px !important; }
}

/* ── 5. Slider buttons: rounded-rect pill style ── */
.udupi-slider-btn {
  border-radius: 6px !important;
  width: 46px !important;
  height: 42px !important;
  background: rgba(255,255,255,.15) !important;
  border: 2px solid rgba(255,255,255,.5) !important;
  color: #fff !important;
  backdrop-filter: blur(4px) !important;
}
.udupi-slider-btn:hover {
  background: var(--ud-gold) !important;
  border-color: var(--ud-gold) !important;
  color: var(--ud-navy) !important;
  transform: scale(1.05) !important;
}

/* ── 6. View All Courses: match news-all-btn style ── */
.udupi-prog-footer { text-align: center; padding-top: 32px; }
.udupi-prog-footer .udupi-cta-solid {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: var(--ud-navy) !important;
  color: #fff !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: .05em !important;
  text-transform: uppercase !important;
  padding: 13px 32px !important;
  border: 2px solid var(--ud-navy) !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transition: background .2s, color .2s, border-color .2s !important;
}
.udupi-prog-footer .udupi-cta-solid:hover {
  background: var(--ud-gold) !important;
  color: var(--ud-navy) !important;
  border-color: var(--ud-gold) !important;
}

/* ── 7. Contact page: flat open layout, no boxes, equal heights ── */
.udupi-contact-page { background: #fff !important; }
.udupi-contact-wrap { align-items: stretch !important; gap: 48px !important; }
.udupi-contact-form-col {
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  border: none !important;
}
.udupi-contact-info-col {
  display: flex !important;
  flex-direction: column !important;
  gap: 24px !important;
}
.udupi-contact-info-list {
  background: transparent !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: none !important;
  flex: 1 !important;
}
.udupi-contact-info-item {
  border-bottom: 1px solid #eaecf0 !important;
  padding: 16px 0 !important;
}
.udupi-contact-map-frame iframe { border-radius: 8px !important; }

/* Full-width map below the contact form/info columns */
.udupi-contact-map-full {
  width: 100%;
  background: #fff;
  padding: 0 0 60px;
}
.udupi-contact-map-full-head {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px 20px;
}
.udupi-contact-map-full-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--ud-navy, #0d2137);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
.udupi-contact-map-full-frame {
  width: 100%;
  line-height: 0;
  box-shadow: 0 -2px 12px rgba(0,0,0,.08);
}
.udupi-contact-map-full-frame iframe {
  width: 100%;
  height: 450px;
  border: 0;
  display: block;
}
@media (max-width: 900px) {
  .udupi-contact-map-full-head { padding: 0 20px 16px; }
  .udupi-contact-map-full-frame iframe { height: 340px; }
}
/* Apply Online page — same flat white treatment, no boxes */
.udupi-apply-page { background: #fff !important; }
.udupi-apply-form-col {
  background: transparent !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: none !important;
}
.udupi-apply-info-card,
.udupi-apply-docs-card,
.udupi-apply-steps-card {
  background: transparent !important;
  border-radius: 0 !important;
  border: none !important;
  border-bottom: 1px solid #eaecf0 !important;
  box-shadow: none !important;
  padding: 20px 0 !important;
}

/* ════ v8 — Apply Online page layout + CF7 form grid ════ */

/* Apply Online page wrapper */
.udupi-apply-page { background: #f4f6f9; padding: 0; }
.udupi-apply-intro { max-width: 640px; margin: 0 0 28px; color: #4a5568; font-size: 15px; line-height: 1.7; }

.udupi-apply-wrap {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 48px;
  align-items: start;
}
@media (max-width: 900px) {
  .udupi-apply-wrap { grid-template-columns: 1fr; }
}

/* Form column */
.udupi-apply-form-col {
  background: #fff;
  border-radius: 8px;
  padding: 36px;
  box-shadow: 0 1px 6px rgba(0,0,0,.06);
  border: 1px solid #eaecf0;
}
.udupi-apply-heading {
  display: flex; align-items: center; gap: 12px;
  font-size: 18px; font-weight: 700; color: var(--ud-navy); margin: 0 0 24px;
}
.udupi-apply-heading__accent {
  display: inline-block; width: 4px; height: 22px;
  background: var(--ud-gold); border-radius: 2px; flex-shrink: 0;
}

/* CF7 grid inside form */
.udupi-cf7-grid { display: flex; flex-direction: column; gap: 18px; }
.udupi-cf7-row { display: flex; flex-direction: column; gap: 6px; }
.udupi-cf7-two { display: grid !important; grid-template-columns: 1fr 1fr; gap: 16px; align-items: stretch; }
@media (max-width: 600px) { .udupi-cf7-two { grid-template-columns: 1fr !important; } }
/* Both fields in a two-column row share one baseline: stretch the two cells to equal
   height and pin each input to the bottom, so a longer/wrapping label on one side can't
   push its input out of line with the other. */
.udupi-cf7-two > .udupi-cf7-label { display: flex !important; flex-direction: column; gap: 6px; }
.udupi-cf7-two > .udupi-cf7-label > .wpcf7-form-control-wrap { margin-top: auto; }

.udupi-cf7-label { font-size: 13px; font-weight: 600; color: #374151; display: block !important; margin-bottom: 0; }
.udupi-cf7-label .req { color: #e53e3e; }
.udupi-cf7-label br { display: block; margin-bottom: 6px; }
.udupi-cf7-label .wpcf7-form-control-wrap { display: block !important; }
.udupi-cf7-label input,
.udupi-cf7-label select,
.udupi-cf7-label textarea {
  display: block !important;
  padding: 10px 14px !important;
  border: 1px solid #d1d5db !important;
  border-radius: 5px !important;
  font-size: 14px !important;
  color: #1a202c !important;
  background: #fafafa !important;
  transition: border-color .15s !important;
  width: 100% !important;
  box-sizing: border-box !important;
  margin-top: 0 !important;
}
.udupi-cf7-label input:focus,
.udupi-cf7-label select:focus,
.udupi-cf7-label textarea:focus { border-color: var(--ud-gold) !important; outline: none !important; background: #fff !important; }

.udupi-cf7-submit { margin-top: 8px; }
.udupi-cf7-wrap .wpcf7-submit {
  background: var(--ud-navy) !important; color: #fff !important;
  border: none !important; border-radius: 4px !important;
  padding: 13px 36px !important; font-size: 14px !important;
  font-weight: 700 !important; letter-spacing: .04em !important;
  text-transform: uppercase !important; cursor: pointer !important;
  transition: background .2s !important;
}
.udupi-cf7-wrap .wpcf7-submit:hover { background: var(--ud-gold) !important; color: var(--ud-navy) !important; }

/* Acceptance/disclaimer */
.wpcf7-acceptance label { font-size: 13px; color: #4a5568; line-height: 1.5; display: flex; gap: 8px; align-items: flex-start; cursor: pointer; }
.wpcf7-acceptance input[type="checkbox"] { margin-top: 2px; flex-shrink: 0; }

/* Info column cards */
.udupi-apply-info-col { display: flex; flex-direction: column; gap: 16px; }
.udupi-apply-info-card,
.udupi-apply-docs-card,
.udupi-apply-steps-card {
  background: #fff; border-radius: 8px; padding: 24px;
  border: 1px solid #eaecf0; box-shadow: 0 1px 6px rgba(0,0,0,.06);
}
.udupi-apply-info-title,
.udupi-apply-docs-title,
.udupi-apply-steps-title {
  font-size: 14px; font-weight: 700; color: var(--ud-navy);
  margin: 0 0 16px; display: flex; align-items: center; gap: 8px;
}
.udupi-apply-info-title i,
.udupi-apply-docs-title i,
.udupi-apply-steps-title i { color: var(--ud-gold); }

.udupi-apply-info-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.udupi-apply-info-list li { display: flex; gap: 12px; align-items: flex-start; font-size: 13px; color: #374151; }
.udupi-apply-info-list li i { color: var(--ud-gold); width: 16px; margin-top: 2px; flex-shrink: 0; }
.udupi-apply-info-list a { color: var(--ud-navy); text-decoration: none; }
.udupi-apply-info-list a:hover { color: var(--ud-gold); }

.udupi-apply-docs-list,
.udupi-apply-steps-list { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: #374151; line-height: 1.5; }
/* Fix: original CSS set li text to white — override for flat white layout */
.udupi-apply-docs-list li,
.udupi-apply-steps-list li { color: #374151 !important; }
.udupi-apply-docs-list li::before { color: var(--ud-gold) !important; }

/* ── Courses section: description left-aligned (not auto-centered) ── */
.udupi-programs-sec .udupi-sec-sub { margin: 0 0 32px !important; }

/* ════ v9 — Logo above topbar ════ */
.udupi-site-header { overflow: visible !important; z-index: 10000 !important; }
.udupi-nav-logo {
  position: relative !important;
  margin-top: -90px !important;   /* pull emblem up so it sits snug to the bar top (no empty band) */
  margin-left: -18px !important;
  z-index: 10001 !important;
  flex-shrink: 0 !important;
}
.udupi-logo-img { height: 150px !important; width: auto !important; }
/* (emblem + nav-logo responsive sizing is consolidated in the ordered block below) */

/* Sticky state — logo fits inside header, no overflow */
.udupi-site-header.-sticky .udupi-nav-logo {
  margin-top: 0 !important;
}
.udupi-site-header.-sticky .udupi-logo-img {
  height: 56px !important;
}
/* ── Top bar logo text image ── */
.udupi-top-left {
  display: flex;
  align-items: center;
}
.udupi-topbar-logotext {
  height: 112px;
  width: auto;
  object-fit: contain;
  display: block;
  margin-left: 150px;   /* clears the 150px emblem (no overlap) */
}
/* Only the bundled dark image / blue Primary logo needs tinting to white on the red bar;
   the Inverse logo is already light, so it renders as-is. */
.udupi-topbar-logotext.udupi-logo-whiten { filter: brightness(0) invert(1); }
/* ── Header logo sizing — ONE authoritative, correctly-ordered block (largest→smallest).
   Rules per step: emblem height, nav-logo pull-up (snug to bar top, no empty band),
   college-name image height, and its margin-left = emblem width so the emblem can NEVER
   overlap the text logo. Tuned so the title + contact stay on one clean row. ── */
@media (max-width: 1600px) {
  .udupi-logo-img { height: 140px !important; }
  .udupi-nav-logo { margin-top: -84px !important; }
  .udupi-topbar-logotext { height: 106px; margin-left: 140px; }
}
@media (max-width: 1500px) {
  .udupi-logo-img { height: 132px !important; }
  .udupi-nav-logo { margin-top: -78px !important; }
  .udupi-topbar-logotext { height: 100px; margin-left: 132px; }
}
@media (max-width: 1440px) {
  .udupi-logo-img { height: 124px !important; }
  .udupi-nav-logo { margin-top: -72px !important; }
  .udupi-topbar-logotext { height: 94px; margin-left: 124px; }
}
@media (max-width: 1366px) {
  .udupi-logo-img { height: 114px !important; }
  .udupi-nav-logo { margin-top: -66px !important; }
  .udupi-topbar-logotext { height: 86px; margin-left: 114px; }
}
@media (max-width: 1280px) {
  .udupi-logo-img { height: 106px !important; }
  .udupi-nav-logo { margin-top: -58px !important; }
  .udupi-topbar-logotext { height: 78px; margin-left: 106px; }
}
@media (max-width: 1199px) {
  .udupi-logo-img { height: 98px !important; }
  .udupi-nav-logo { margin-top: -50px !important; }
  .udupi-topbar-logotext { height: 56px; margin-left: 98px; }
}
@media (max-width: 1100px) {
  /* hamburger: emblem drops into the nav; the bar becomes a centered college-name row
     with the contact line centered beneath it (no emblem overlap, balanced on tablets) */
  .udupi-logo-img { height: 64px !important; }
  .udupi-nav-logo { margin-top: 0 !important; }
  .udupi-top-bar-inner { flex-direction: column; align-items: center; gap: 6px; }
  .udupi-top-left { width: 100%; justify-content: center; margin: 0; }
  .udupi-topbar-logotext { height: 48px; margin: 0 auto; }
  .udupi-top-right { width: 100%; justify-content: center; }
}
@media (max-width: 767px) {
  /* mobile: the college-name image gets its own centered row at the very top; contact hidden */
  .udupi-top-bar { display: block !important; }
  .udupi-top-bar-inner { flex-direction: column !important; align-items: center !important; }
  .udupi-top-left { width: 100% !important; justify-content: center !important; margin: 0 !important; }
  .udupi-topbar-logotext { display: block !important; height: 38px; margin: 0 auto !important; }
  .udupi-top-right { display: none !important; }
}

/* ════ v10 — Contact Us form grid ════ */
/* Remove CF7 default <p> spacing inside contact form */
.udupi-cf7-wrap p { margin: 0 !important; }

/* Grid wrapper */
.udupi-ctf-grid { display: flex; flex-direction: column; gap: 18px; }

/* 2-column row */
.udupi-ctf-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

/* Full-width field */
.udupi-ctf-full { display: flex; flex-direction: column; }

/* Label style */
.udupi-ctf-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--ud-navy);
  margin-bottom: 6px;
}
.udupi-ctf-label span { color: var(--udupi-red); }

/* Inputs / textarea */
.udupi-ctf-grid input[type="text"],
.udupi-ctf-grid input[type="email"],
.udupi-ctf-grid input[type="tel"],
.udupi-ctf-grid textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 14px;
  color: #374151;
  background: #fff;
  transition: border-color .2s;
  box-sizing: border-box;
}
.udupi-ctf-grid input:focus,
.udupi-ctf-grid textarea:focus { border-color: var(--ud-navy); outline: none; }

/* Submit button */
.udupi-ctf-submit { margin-top: 4px; }
.udupi-ctf-submit input[type="submit"] {
  background: var(--ud-navy);
  color: #fff;
  border: none;
  padding: 12px 32px;
  font-size: 14px;
  font-weight: 700;
  border-radius: 6px;
  cursor: pointer;
  letter-spacing: .5px;
  transition: background .2s;
}
.udupi-ctf-submit input[type="submit"]:hover { background: var(--ud-gold); color: var(--ud-navy); }

@media (max-width: 600px) {
  .udupi-ctf-2col { grid-template-columns: 1fr; }
}

/* ════ Facilities Hub Page ════ */
.udupi-fac-hub { padding: 0 0 60px; }

.udupi-facpage-intro {
  max-width: 820px;
  margin: 0 auto 48px;
  text-align: center;
  font-size: 16px;
  line-height: 1.75;
  color: #4b5563;
  background: none !important;
}

/* 3-column responsive grid */
.udupi-facpage-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  grid-auto-rows: auto !important;
  gap: 28px;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 20px;
  overflow: visible !important;
}

/* Card */
.udupi-fac-card {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 4px 20px rgba(0,0,0,.08);
  color: inherit;
  transition: transform .25s, box-shadow .25s;
  border: 1.5px solid #f1f5f9;
  position: relative;
}
.udupi-fac-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 40px rgba(0,0,0,.14);
}
/* Full-card invisible overlay link */
.udupi-fac-card__link {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: block;
}

/* Image */
.udupi-fac-card__img {
  width: 100%;
  height: 200px;
  overflow: hidden;
  background: #e2e8f0;
  position: relative;
}
.udupi-fac-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.udupi-fac-card:hover .udupi-fac-card__img img,
.udupi-fac-card__link:hover ~ .udupi-fac-card__img img {
  transform: scale(1.06);
}

/* Body */
.udupi-fac-card__body {
  padding: 22px 22px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.udupi-fac-card__icon {
  font-size: 28px;
  margin-bottom: 10px;
  line-height: 1;
}

.udupi-fac-card__title {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: var(--ud-navy) !important;
  margin: 0 0 10px !important;
  letter-spacing: .3px;
  text-transform: uppercase;
}

.udupi-fac-card__desc {
  font-size: 13.5px !important;
  line-height: 1.65 !important;
  color: #6b7280 !important;
  margin: 0 0 18px !important;
  flex: 1;
}

.udupi-fac-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: var(--ud-blue, #1a56db) !important;
  letter-spacing: .4px;
  text-transform: uppercase;
  transition: gap .2s, color .2s;
  margin-top: auto;
}
.udupi-fac-card:hover .udupi-fac-card__cta {
  gap: 10px;
  color: var(--ud-gold) !important;
}
.udupi-fac-card__link:focus { outline: 2px solid var(--ud-gold); outline-offset: 2px; }

/* Responsive */
@media (max-width: 960px) {
  .udupi-facpage-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 580px) {
  .udupi-facpage-grid { grid-template-columns: 1fr !important; gap: 20px; }
  .udupi-fac-card__img { height: 180px; }
}

/* ════════════════════════════════════════════════════════════════════════════
   MOBILE & TABLET RESPONSIVENESS — Comprehensive audit fixes
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Tablet (769px – 1024px) ── */
@media (max-width: 1024px) {
  /* Section headings */
  .udupi-sec-heading { font-size: 34px !important; }

  /* Quick links: 4-col → 3-col on tablet */
  .udupi-ql-grid { grid-template-columns: repeat(3, 1fr) !important; }

  /* Slider tag: smaller on tablet */
  .udupi-slide__tag { font-size: 11px; padding: 5px 12px; }
}

/* ── Mobile landscape / small tablet (≤768px) ── */
@media (max-width: 768px) {
  /* Section spacing */
  .udupi-sec { padding: 40px 0; }

  /* About section: hide visual column entirely — text is self-sufficient */
  .udupi-about-visual { display: none !important; }
  .udupi-about-text .udupi-sec-heading { font-size: 30px; }

  /* Button row: stack vertically */
  .udupi-btn-row { flex-direction: column; gap: 10px; align-items: flex-start; }
  .udupi-btn-row a { text-align: center; width: 100%; box-sizing: border-box; }

  /* Stats bar: 2-per-row, remove broken vertical dividers */
  .udupi-stat-item {
    flex: 0 0 50%;
    min-width: 0;
    border-bottom: 1px solid rgba(255,255,255,.08);
    padding: 16px 8px;
  }
  .udupi-stat-item:not(:last-child)::after { display: none !important; }
  .udupi-stat-num { font-size: 30px; }
  .udupi-stat-lbl { font-size: 11px; }
}

/* ── Mobile portrait (≤600px) ── */
@media (max-width: 600px) {
  /* Slider: hide congested elements */
  .udupi-hero-slider { height: 380px; min-height: 380px; }
  .udupi-slider-track { min-height: 380px; }
  .udupi-slide__tag { display: none !important; }
  .udupi-slide__sub { display: none !important; }
  .udupi-slide__title { font-size: 28px !important; margin-bottom: 20px !important; }
  /* Keep only the primary CTA button */
  .udupi-slide__btns a:not(:first-child) { display: none !important; }
  .udupi-slide__btns { margin-top: 0; }

  /* Quick links: 2-col */
  .udupi-ql-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Section headings */
  .udupi-sec-heading { font-size: 26px !important; }
}

/* ── Smallest phones (≤400px) ── */
@media (max-width: 400px) {
  .udupi-hero-slider { height: 340px; min-height: 340px; }
  .udupi-slider-track { min-height: 340px; }
  .udupi-slide__title { font-size: 24px !important; }
  .udupi-slide__inner { padding: 0 16px !important; }
  .udupi-sec { padding: 32px 0; }
}

/* ═══════════════════════════════════════════════════════════════════════════
 * BULLETPROOF BUTTON HOVER CONTRAST — sitewide final cascade
 * Loaded last so it wins specificity battles where button text was disappearing
 * on hover (eg. "Start Your Journey" CTA).
 * ═══════════════════════════════════════════════════════════════════════════ */

/* Yellow/accent fill buttons — always dark text on yellow bg */
.udupi-btn-accent,
.udupi-btn-accent:link,
.udupi-btn-accent:visited,
.udupi-btn--yellow,
.udupi-btn--yellow:link,
.udupi-btn--yellow:visited,
.udupi-cta-solid,
.udupi-cta-solid:link,
.udupi-cta-solid:visited {
  color: #0D2137 !important;
}
.udupi-btn-accent:hover,
.udupi-btn-accent:focus,
.udupi-btn-accent:active,
.udupi-btn--yellow:hover,
.udupi-btn--yellow:focus,
.udupi-btn--yellow:active,
.udupi-cta-solid:hover,
.udupi-cta-solid:focus,
.udupi-cta-solid:active {
  background: #F0CC00 !important;
  color: #0D2137 !important;
  border-color: #F0CC00 !important;
}

/* Outline-white buttons (on dark sections) — white text default, dark text on hover */
.udupi-btn-outline,
.udupi-btn-outline:link,
.udupi-btn-outline:visited,
.udupi-btn--outline,
.udupi-btn--outline-white,
.udupi-cta-ghost,
.udupi-cta-ghost-light {
  color: #FFFFFF !important;
  background: transparent;
  border: 2px solid #FFFFFF;
}
.udupi-btn-outline:hover,
.udupi-btn-outline:focus,
.udupi-btn-outline:active,
.udupi-btn--outline:hover,
.udupi-btn--outline:focus,
.udupi-btn--outline-white:hover,
.udupi-btn--outline-white:focus,
.udupi-cta-ghost:hover,
.udupi-cta-ghost:focus,
.udupi-cta-ghost-light:hover,
.udupi-cta-ghost-light:focus {
  background: #FFFFFF !important;
  color: #0D2137 !important;
  border-color: #FFFFFF !important;
}

/* Outline-dark buttons (on light sections) — dark text default, white text on hover */
.udupi-btn--outline-dark,
.udupi-cta-ghost-dark {
  color: #0D2137 !important;
  background: transparent;
  border: 2px solid #0D2137;
}
.udupi-btn--outline-dark:hover,
.udupi-btn--outline-dark:focus,
.udupi-cta-ghost-dark:hover,
.udupi-cta-ghost-dark:focus {
  background: #0D2137 !important;
  color: #FFFFFF !important;
  border-color: #0D2137 !important;
}

/* Primary navy buttons — always white text */
.udupi-btn-primary,
.udupi-btn-primary:link,
.udupi-btn-primary:visited,
.udupi-btn--primary,
.udupi-enq-btn-primary,
.udupi-prog-btn,
.udupi-inst-btn {
  color: #FFFFFF !important;
}
.udupi-btn-primary:hover,
.udupi-btn-primary:focus,
.udupi-btn--primary:hover,
.udupi-btn--primary:focus,
.udupi-enq-btn-primary:hover,
.udupi-enq-btn-primary:focus,
.udupi-prog-btn:hover,
.udupi-prog-btn:focus,
.udupi-inst-btn:hover,
.udupi-inst-btn:focus {
  background: #0D2137 !important;
  color: #FFFFFF !important;
  border-color: #0D2137 !important;
}

/* "ud-btn" variants used on page templates (Apply / Enquire / Contact pages) */
.ud-btn-primary,
.ud-btn-primary:link,
.ud-btn-primary:visited {
  background: #C0132A;
  color: #FFFFFF !important;
  border: 2px solid #C0132A;
}
.ud-btn-primary:hover,
.ud-btn-primary:focus {
  background: #9a0e21 !important;
  color: #FFFFFF !important;
  border-color: #9a0e21 !important;
}
.ud-btn-outline,
.ud-btn-outline:link,
.ud-btn-outline:visited {
  background: transparent;
  color: #0D2137 !important;
  border: 2px solid #0D2137;
}
.ud-btn-outline:hover,
.ud-btn-outline:focus {
  background: #0D2137 !important;
  color: #FFFFFF !important;
  border-color: #0D2137 !important;
}

/* News + Read-More links — color change on hover, no underline (site-wide preference) */
.udupi-news-link:hover,
.udupi-news-link:focus { color: #0D2137 !important; text-decoration: none; }

/* ═══════════════════════════════════════════════════════════════════════════
 * Photo Gallery — masonry-style 4-column responsive grid + lightbox
 * ═══════════════════════════════════════════════════════════════════════════ */
.udupi-photo-gallery {
  column-count: 4;
  column-gap: 16px;
  margin-top: 28px;
}
.udupi-photo-gallery > a {
  display: block;
  margin: 0 0 16px;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  break-inside: avoid;
  position: relative;
  cursor: zoom-in;
}
.udupi-photo-gallery > a:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
}
.udupi-photo-gallery > a img {
  display: block;
  width: 100%;
  height: auto;
}
/* Subtle zoom-in overlay icon on hover */
.udupi-photo-gallery > a::after {
  content: "\f00e"; /* fa-search-plus */
  font-family: "Font Awesome 5 Free", "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(13,33,55,.4);
  color: #fff;
  font-size: 32px;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}
.udupi-photo-gallery > a:hover::after { opacity: 1; }

@media (max-width: 1100px) { .udupi-photo-gallery { column-count: 3; } }
@media (max-width: 768px)  { .udupi-photo-gallery { column-count: 2; column-gap: 12px; } .udupi-photo-gallery > a { margin-bottom: 12px; } }
@media (max-width: 480px)  { .udupi-photo-gallery { column-count: 1; } }

/* ── Lightbox overlay ──────────────────────────────────────────────────────── */
#udupi-lb {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.92);
  z-index: 999999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 40px;
}
#udupi-lb.is-open { display: flex; }
#udupi-lb .udupi-lb-figure {
  margin: 0;
  max-width: 92vw;
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}
#udupi-lb .udupi-lb-img {
  max-width: 100%;
  max-height: 78vh;
  display: block;
  border-radius: 6px;
  box-shadow: 0 8px 28px rgba(0,0,0,.5);
  object-fit: contain;
}
#udupi-lb .udupi-lb-caption {
  color: #fff;
  font-size: 15px;
  margin-top: 14px;
  text-align: center;
  font-family: 'Inter', sans-serif;
  max-width: 700px;
}
#udupi-lb .udupi-lb-counter {
  position: absolute;
  top: -32px;
  right: 0;
  color: rgba(255,255,255,.7);
  font-size: 13px;
  font-family: 'Inter', sans-serif;
}
#udupi-lb .udupi-lb-close,
#udupi-lb .udupi-lb-prev,
#udupi-lb .udupi-lb-next {
  position: fixed;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, transform 0.2s;
}
#udupi-lb .udupi-lb-close:hover,
#udupi-lb .udupi-lb-prev:hover,
#udupi-lb .udupi-lb-next:hover {
  background: rgba(255,255,255,.2);
  transform: scale(1.05);
}
#udupi-lb .udupi-lb-close { top: 22px; right: 22px; font-size: 28px; line-height: 1; }
#udupi-lb .udupi-lb-prev  { left: 22px; top: 50%; transform: translateY(-50%); }
#udupi-lb .udupi-lb-next  { right: 22px; top: 50%; transform: translateY(-50%); }
#udupi-lb .udupi-lb-prev:hover { transform: translateY(-50%) scale(1.05); }
#udupi-lb .udupi-lb-next:hover { transform: translateY(-50%) scale(1.05); }
@media (max-width: 600px) {
  #udupi-lb { padding: 24px 12px; }
  #udupi-lb .udupi-lb-close { top: 14px; right: 14px; width: 42px; height: 42px; font-size: 22px; }
  #udupi-lb .udupi-lb-prev  { left: 8px; width: 42px; height: 42px; }
  #udupi-lb .udupi-lb-next  { right: 8px; width: 42px; height: 42px; }
  #udupi-lb .udupi-lb-img { max-height: 70vh; }
}

/* ═══════════════════════════════════════════════════════════════════════════
 * Video Gallery — YouTube channel showcase
 * ═══════════════════════════════════════════════════════════════════════════ */
.udupi-vg-hero {
  position: relative;
  background: linear-gradient(135deg, #1B3A5C 0%, #0D2137 100%);
  border-radius: 16px;
  padding: 60px 32px;
  text-align: center;
  color: #fff;
  margin-bottom: 40px;
  overflow: hidden;
  box-shadow: 0 6px 28px rgba(13,33,55,.18);
}
.udupi-vg-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
  opacity: 0.5;
}
.udupi-vg-hero-icon {
  font-size: 72px;
  color: #FF0000;
  filter: drop-shadow(0 4px 12px rgba(255,0,0,.3));
  line-height: 1;
  margin-bottom: 22px;
  position: relative;
}
.udupi-vg-hero h2 {
  color: #fff !important;
  font-family: 'Oswald', sans-serif;
  font-size: 2rem;
  margin: 0 0 14px;
  position: relative;
  letter-spacing: 0.02em;
}
.udupi-vg-hero p {
  color: rgba(255,255,255,.85);
  max-width: 640px;
  margin: 0 auto 28px;
  line-height: 1.75;
  position: relative;
  font-size: 1.05rem;
}
.udupi-vg-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #FF0000;
  color: #fff !important;
  padding: 14px 30px;
  font-size: 1.05rem;
  font-weight: 600;
  border-radius: 6px;
  text-decoration: none;
  position: relative;
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
  box-shadow: 0 4px 16px rgba(255,0,0,.3);
}
.udupi-vg-btn:hover,
.udupi-vg-btn:focus {
  background: #d10000 !important;
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 22px rgba(255,0,0,.4);
}
.udupi-vg-categories {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  margin-bottom: 40px;
}
.udupi-vg-cat {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  padding: 26px 22px;
  text-align: center;
  transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
}
.udupi-vg-cat:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  border-color: #1B3A5C;
}
.udupi-vg-cat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: linear-gradient(135deg, #1B3A5C, #0D2137);
  color: #fff;
  font-size: 22px;
  margin-bottom: 14px;
}
.udupi-vg-cat h4 {
  margin: 0 0 6px;
  font-family: 'Oswald', sans-serif;
  font-size: 1.05rem;
  color: #0D2137;
  letter-spacing: 0.02em;
}
.udupi-vg-cat p {
  color: #666;
  font-size: 0.92rem;
  margin: 0;
  line-height: 1.55;
}
.udupi-vg-embed-wrap {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,.12);
  background: #000;
}
.udupi-vg-embed-wrap iframe {
  width: 100%;
  aspect-ratio: 16/9;
  display: block;
  border: 0;
}
.udupi-vg-section-title {
  font-family: 'Oswald', sans-serif;
  font-size: 1.4rem;
  color: #0D2137;
  margin: 40px 0 18px;
  letter-spacing: 0.02em;
}

/* ═══════════════════════════════════════════════════════════════════════════
 * Facebook follow CTA (used on Photo Gallery + anywhere else)
 * Class-based so WordPress safecss doesn't strip inline display:flex.
 * ═══════════════════════════════════════════════════════════════════════════ */
.udupi-fb-cta {
  background: linear-gradient(135deg, #1877F2 0%, #0866FF 100%);
  border-radius: 14px;
  padding: 40px 32px;
  text-align: center;
  margin-top: 48px;
  color: #fff;
  box-shadow: 0 4px 24px rgba(24,119,242,.20);
}
.udupi-fb-cta-icon {
  font-size: 56px;
  color: #fff;
  line-height: 1;
  margin-bottom: 14px;
}
.udupi-fb-cta h2 {
  color: #fff !important;
  font-family: 'Oswald', sans-serif;
  margin: 0 0 10px;
  font-size: 1.6rem;
  letter-spacing: 0.02em;
}
.udupi-fb-cta p {
  color: rgba(255,255,255,.9);
  max-width: 600px;
  margin: 0 auto 24px;
  line-height: 1.7;
}
.udupi-fb-btn {
  display: inline-flex !important;   /* !important to survive any safecss-stripped variant */
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: #fff !important;
  color: #1877F2 !important;
  padding: 12px 28px;
  font-size: 1rem;
  font-weight: 600;
  border-radius: 6px;
  text-decoration: none !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
  line-height: 1;
}
.udupi-fb-btn:hover,
.udupi-fb-btn:focus {
  background: #1877F2 !important;
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
}
.udupi-fb-btn i { font-size: 1.1em; line-height: 1; }
/* If wpautop wraps the button in a <p>, neutralise the description-paragraph styling on that wrapper */
.udupi-fb-cta p:last-of-type { max-width: none; margin: 0; padding: 0; line-height: 1; }
.udupi-fb-cta p:has(> .udupi-fb-btn) { max-width: none; margin: 0; padding: 0; }
/* Restore description styling for first p only */
.udupi-fb-cta p:first-of-type {
  color: rgba(255,255,255,.9);
  max-width: 600px;
  margin: 0 auto 24px;
  line-height: 1.7;
}

/* ═══════════════════════════════════════════════════════════════════════
   UDUPI UPDATE (2026-06) — Item 1: larger top-bar name logo
                            Item 2: Cooper Black + Capitalize college name
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Item 2: Cooper Black web font (bundled, with locally-installed fallback) ── */
@font-face {
  font-family: "Cooper Black Udupi";
  src: local("Cooper Black"),
       local("CooperBlackStd-Regular"),
       local("Cooper Std Black"),
       url("assets/fonts/coopbl.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Apply Cooper Black + Title Case wherever the college / institution name appears as text.
   .udupi-college-name is added in PHP (hero "About" heading, footer brand, copyright,
   pre-footer CTA). The selectors below also catch the CPT-driven college names. */
.udupi-college-name,
.udupi-inst-card .udupi-inst-body h3,
.udupi-inst-hero-title,
.udupi-inst-single h1 {
  font-family: "Cooper Black Udupi", "Cooper Black", Georgia, "Times New Roman", serif !important;
  text-transform: none !important;   /* keep source case (e.g. lowercase "of") */
  letter-spacing: .2px;
  font-weight: 400 !important;       /* Cooper Black is already heavy; avoid faux-bold */
}

/* Hero slide title that carries the college name: Cooper Black, slightly smaller than
   Anton so the wider serif still fits the hero on one/two lines. */
.udupi-slide__title.udupi-college-name { font-size: 50px !important; }
@media (max-width: 1024px){ .udupi-slide__title.udupi-college-name { font-size: 42px !important; } }
@media (max-width: 600px){  .udupi-slide__title.udupi-college-name { font-size: 30px !important; } }

/* Welcome / hero slide title — user asked for a different, lighter face than the heavy
   Cooper Black. Use clean Poppins SemiBold (keeps lowercase "of" via text-transform:none). */
.udupi-slide__title.udupi-college-name {
  font-family: 'Poppins', 'Inter', sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: normal !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   CAPITALIZE (Title Case) MODEL FOR ALL HEADINGS / TITLES — sitewide
   (overrides the global "h1..h6 { text-transform:uppercase }" and the many
    per-element uppercase rules). Small labels, badges, buttons & the main
    nav are intentionally left UPPERCASE.
   ═══════════════════════════════════════════════════════════════════════ */
h1, h2, h3, h4, h5, h6,
.udupi-sec-heading,
.ud-section-title,
.udupi-slide__title,
.udupi-cta-section .cta-text h3,
.udupi-footer-title,
.udupi-hero__title,
.udupi-admissions-cta__text h2,
.udupi-adm-v2-title,
.udupi-inner-hero__title,
.udupi-contact-hero-strip__title,
.udupi-contact-col-title,
.udupi-apply-docs-title,
.udupi-fac-card__title,
.udupi-prog-card h4,
.udupi-inst-body h3,
.ud-card h3 {
  text-transform: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   TITLE TYPEFACE → POPPINS (user choice). Applies to all headings/titles.
   The college/institution NAME keeps Cooper Black (re-asserted last below).
   ═══════════════════════════════════════════════════════════════════════ */
h1, h2, h3, h4, h5, h6,
.udupi-sec-heading,
.ud-section-title,
.udupi-slide__title,
.udupi-cta-section .cta-text h3,
.udupi-footer-title,
.udupi-hero__title,
.udupi-admissions-cta__text h2,
.udupi-adm-v2-title,
.udupi-inner-hero__title,
.udupi-contact-hero-strip__title,
.udupi-contact-col-title,
.udupi-apply-docs-title,
.udupi-fac-card__title,
.udupi-prog-card h4,
.ud-card h3 {
  font-family: "Poppins", "Inter", sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
}

/* Keep the college / institution NAME in Cooper Black — must come AFTER the
   Poppins rule so it wins for these name elements. */
.udupi-college-name,
.udupi-inst-card .udupi-inst-body h3,
.udupi-inst-body h3,
.udupi-inst-hero-title,
.udupi-inst-single h1 {
  font-family: "Cooper Black Udupi", "Cooper Black", Georgia, "Times New Roman", serif !important;
  font-weight: 400 !important;
}

/* ── Mobile: move WhatsApp button to the RIGHT (was overlapping content on the left),
   and stack the scroll-to-top/bottom arrows ABOVE it so they don't collide. ── */
@media (max-width: 768px) {
  .udupi-wa-wrap   { left: auto !important; right: 16px !important; bottom: 20px !important; }
  .udupi-scroll-btns { left: auto !important; right: 16px !important; bottom: 92px !important; }
  /* tooltip would overflow off the right edge — hide it on mobile */
  .udupi-wa-tooltip { display: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
   College / institution NAME: render the source text as-is so connective
   words like "of" stay lowercase (e.g. "Udupi Group of Institutions",
   "Udupi College of Nursing"). Overrides the Title-Case capitalize rule.
   ═══════════════════════════════════════════════════════════════════════ */
.udupi-college-name,
.udupi-slide__title.udupi-college-name,
.udupi-inst-body h3,
.udupi-inst-card .udupi-inst-body h3 {
  text-transform: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   WhatsApp floating button → TOP-RIGHT (user request). Scroll-to-top/bottom
   arrows stay bottom-right. Overrides all earlier WhatsApp position rules.
   ═══════════════════════════════════════════════════════════════════════ */
.udupi-wa-wrap   { top: 140px !important; right: 20px !important; bottom: auto !important; left: auto !important; }
.udupi-wa-tooltip { display: none !important; }   /* avoid overflow at the right edge */
.udupi-scroll-btns { right: 20px !important; bottom: 28px !important; left: auto !important; }
@media (max-width: 768px) {
  .udupi-wa-wrap   { top: 90px !important; right: 14px !important; bottom: auto !important; left: auto !important; }
  .udupi-scroll-btns { right: 14px !important; bottom: 20px !important; left: auto !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
   HERO DECO — cycling course boxes (replaced the static stat boxes).
   Courses rotate through all 22 programmes via JS in functions.php.
   ═══════════════════════════════════════════════════════════════════════ */
.udupi-deco-course {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 12px;
  padding: 16px 26px;
  width: 100%;                /* fill the (now wider) deco column so every card is the same large size */
  max-width: 360px;
  min-height: 86px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  backdrop-filter: blur(6px);
  color: #F5B800;
  font-family: 'Poppins','Inter',sans-serif;
  font-weight: 600;
  font-size: 19px;            /* bigger, prominent labels; longest support-service still wraps to 2 lines */
  line-height: 1.3;
  transition: opacity .3s ease, background .2s ease;
}
/* badges that link to a real course page get a visible hover state; the 5 non-course
   decorative items (Transport, Scholarship, etc.) get no cursor/onclick in JS, so this
   hover only ever shows on the clickable ones in practice */
.udupi-deco-course[style*="cursor: pointer"]:hover,
.udupi-deco-course[style*="cursor:pointer"]:hover {
  background: rgba(255,255,255,0.15);
}
/* give the card column room to reach the new larger width */
.udupi-deco-courses { width: 360px; max-width: 100%; }
/* tablet (deco square shrinks to 240px between 900-1100px): keep cards inside it */
@media (max-width: 1100px) {
  .udupi-deco-courses { width: 100%; }
  .udupi-deco-course { font-size: 15px; min-height: 58px; padding: 12px 16px; }
}
.udupi-deco-courses.is-changing .udupi-deco-course { opacity: 0; transform: translateY(8px); }

/* ═══════════════════════════════════════════════════════════════════════
   COURSES MEGA-MENU — show all 25 courses in 3 columns so nothing is cut off
   (the dropdown was a single tall column that ran off-screen with no scroll).
   ═══════════════════════════════════════════════════════════════════════ */
.udupi-menu-list > li.udupi-mega > .sub-menu,
.udupi-menu-list > li.udupi-mega.has-submenu:hover > .sub-menu,
.udupi-menu-list > li.udupi-mega.menu-item-has-children:hover > .sub-menu,
.udupi-menu-list > li.udupi-mega:focus-within > .sub-menu {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(200px, 1fr)) !important;
  grid-template-rows: repeat(5, auto) !important;
  grid-auto-flow: column !important;
  width: 670px !important;
  max-width: 92vw !important;
  max-height: calc(100vh - 200px) !important;
  overflow-y: auto !important;
}
/* Guarantee the mega panel actually shows (and stays a grid) on hover/focus */
.udupi-menu-list > li.udupi-mega:hover > .sub-menu,
.udupi-menu-list > li.udupi-mega.has-submenu:hover > .sub-menu,
.udupi-menu-list > li.udupi-mega.menu-item-has-children:hover > .sub-menu,
.udupi-menu-list > li.udupi-mega:focus-within > .sub-menu {
  visibility: visible !important;
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}
.udupi-menu-list > li.udupi-mega > .sub-menu > li { border-bottom: 1px solid rgba(255,255,255,.06) !important; }
.udupi-menu-list > li.udupi-mega > .sub-menu > li a { white-space: normal !important; line-height: 1.2 !important; padding: 7px 16px !important; }
/* Visible gold scrollbar so the courses list is clearly scrollable when it's taller than the screen */
.udupi-menu-list > li.udupi-mega > .sub-menu {
  scrollbar-width: thin !important;
  scrollbar-color: var(--udupi-accent) rgba(255,255,255,0.14) !important;
}
.udupi-menu-list > li.udupi-mega > .sub-menu::-webkit-scrollbar { width: 11px !important; }
.udupi-menu-list > li.udupi-mega > .sub-menu::-webkit-scrollbar-track { background: rgba(255,255,255,0.10) !important; border-radius: 8px !important; }
.udupi-menu-list > li.udupi-mega > .sub-menu::-webkit-scrollbar-thumb { background: var(--udupi-accent) !important; border-radius: 8px !important; border: 2px solid transparent; background-clip: padding-box; }
.udupi-menu-list > li.udupi-mega > .sub-menu::-webkit-scrollbar-thumb:hover { background: #ffe14d !important; }
@media (max-width: 1100px) {
  .udupi-menu-list > li.udupi-mega > .sub-menu {
    grid-template-columns: repeat(2, minmax(180px, 1fr)) !important;
    grid-template-rows: repeat(13, auto) !important;
    width: 460px !important;
    /* On mobile this panel sits inside the hamburger drawer, not floating below
       the nav bar, so it shouldn't have its own capped height + scrollbar (that's
       what made the Courses list feel "stuck" — the drawer around it now scrolls
       instead, see .udupi-menu-list.udupi-nav-open). */
    max-height: none !important;
    overflow-y: visible !important;
  }
  /* Closed state: the base rule makes this display:grid unconditionally (it only
     relies on opacity/visibility for the desktop hover show/hide), which left an
     invisible 800px+ empty gap in the drawer whenever Courses was collapsed. */
  .udupi-menu-list > li.udupi-mega:not(.menu-open) > .sub-menu { display: none !important; }
}

/* ── Header WhatsApp icon (right of the Enquire button) ── */
.udupi-nav-wa {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%;
  background: #25D366 !important; color: #fff !important;
  margin-left: 12px; font-size: 20px; line-height: 1;
  flex-shrink: 0; text-decoration: none !important;
  transition: transform .15s ease, box-shadow .15s ease;
}
.udupi-nav-wa:hover, .udupi-nav-wa:focus {
  background: #1ebe5d !important; color: #fff !important;
  transform: scale(1.08);
  box-shadow: 0 4px 14px rgba(37,211,102,.45);
}
.udupi-nav-wa i, .udupi-nav-wa:hover i, .udupi-nav-wa:focus i { color: #fff !important; }

/* ── Footer locations: map + campus / information-centre addresses ── */
.udupi-footer-locations {
  background: var(--udupi-primary-dark);
  padding: 55px 0 35px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.udupi-footer-loc-grid {
  display: grid;
  grid-template-columns: 1.05fr 1.35fr;
  gap: 36px;
  align-items: stretch;
}
.udupi-footer-map {
  min-height: 300px;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 26px rgba(0,0,0,.32);
}
.udupi-footer-map iframe {
  display: block; width: 100%; height: 100%; min-height: 300px;
  border: 0; filter: grayscale(.12);
}
.udupi-footer-addresses {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px 30px;
  align-content: start;
}
.udupi-footer-addresses .udupi-addr:first-child { grid-column: 1 / -1; }
.udupi-addr-title {
  font-family: 'Inter', sans-serif;
  color: var(--udupi-accent);
  font-size: 14px; font-weight: 700;
  margin: 0 0 8px; display: flex; align-items: flex-start; gap: 8px;
}
.udupi-addr-title i { font-size: 13px; margin-top: 3px; min-width: 14px; }
.udupi-addr p { color: rgba(255,255,255,.72); font-size: 13px; line-height: 1.6; margin: 0 0 6px; }
.udupi-addr .udupi-addr-phone { margin-top: 2px; }
.udupi-addr-phone i { color: var(--udupi-accent); margin-right: 5px; }
.udupi-addr a { color: rgba(255,255,255,.85) !important; text-decoration: none; }
.udupi-addr a:hover { color: var(--udupi-accent) !important; }
@media (max-width: 900px) {
  .udupi-footer-loc-grid { grid-template-columns: 1fr; gap: 26px; }
  .udupi-footer-addresses { grid-template-columns: 1fr; }
  .udupi-footer-addresses .udupi-addr:first-child { grid-column: auto; }
}

/* ═══════════════════════════════════════════════════════════════════════
   ATTENTION BLINK — ENQUIRE NOW button + WhatsApp symbol (header nav).
   Pulsing glow draws the eye; pauses on hover so the hover state shows.
   ═══════════════════════════════════════════════════════════════════════ */
@keyframes udupi-blink-enquire {
  0%, 100% { transform: scale(1);    box-shadow: 0 0 0 0 rgba(208,8,70,0.55); }
  50%      { transform: scale(1.06); box-shadow: 0 0 16px 4px rgba(208,8,70,0.65); }
}
@keyframes udupi-blink-wa {
  0%, 100% { transform: scale(1);    box-shadow: 0 0 0 0 rgba(37,211,102,0.55); }
  50%      { transform: scale(1.09); box-shadow: 0 0 16px 5px rgba(37,211,102,0.7); }
}
.udupi-nav-enquire { animation: udupi-blink-enquire 1.4s ease-in-out infinite; will-change: transform; }
.udupi-nav-wa      { animation: udupi-blink-wa 1.4s ease-in-out infinite; will-change: transform; }
.udupi-nav-enquire:hover, .udupi-nav-wa:hover { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .udupi-nav-enquire, .udupi-nav-wa { animation: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
   WAVE — sonar ripple rings radiate outward from the Enquire button + the
   WhatsApp icon. Two staggered rings make a continuous "wave"; pauses on hover.
   ═══════════════════════════════════════════════════════════════════════ */
.udupi-nav-enquire, .udupi-nav-wa { position: relative; }
.udupi-nav-enquire::before, .udupi-nav-enquire::after,
.udupi-nav-wa::before, .udupi-nav-wa::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  animation: udupi-wave 1.8s ease-out infinite;
}
.udupi-nav-wa::before, .udupi-nav-wa::after           { box-shadow: 0 0 0 2px rgba(37, 211, 102, 0.60); }
.udupi-nav-enquire::before, .udupi-nav-enquire::after { box-shadow: 0 0 0 2px rgba(208, 8, 70, 0.55); }
.udupi-nav-wa::after, .udupi-nav-enquire::after       { animation-delay: 0.9s; }
@keyframes udupi-wave {
  0%   { transform: scale(1);    opacity: 0.70; }
  100% { transform: scale(1.85); opacity: 0; }
}
.udupi-nav-enquire:hover::before, .udupi-nav-enquire:hover::after,
.udupi-nav-wa:hover::before,      .udupi-nav-wa:hover::after { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .udupi-nav-enquire::before, .udupi-nav-enquire::after,
  .udupi-nav-wa::before, .udupi-nav-wa::after { animation: none !important; display: none; }
}

/* ═══════════════════════════════════════════════════════════════════════
   Mega-menu course links — hover affordance WITHOUT underline
   Signals "clickable" via a soft highlight + slight slide, no text-decoration.
   ═══════════════════════════════════════════════════════════════════════ */
.mega-menu-item a.sub-menu-link,
.mega-menu a.sub-menu-link {
    border-radius: 8px;
    transition: color .18s ease, background-color .18s ease, padding-left .18s ease, box-shadow .18s ease;
}
.mega-menu-item a.sub-menu-link:hover,
.mega-menu-item a.sub-menu-link:focus-visible,
.mega-menu a.sub-menu-link:hover,
.mega-menu a.sub-menu-link:focus-visible {
    background-color: rgba(255, 255, 255, .16);
    color: #ffd24d;                 /* brand-gold highlight */
    padding-left: 22px;             /* subtle rightward nudge = affordance */
    text-decoration: none;          /* explicitly no underline */
    box-shadow: inset 3px 0 0 0 #ffb400;  /* gold left accent bar */
}

/* ── Text title in top bar (replaces the "Udupi Group" logotext image) ── */
.udupi-topbar-title-link { text-decoration: none !important; display: inline-flex; align-items: center; }
.udupi-topbar-title.udupi-college-name {
	color: #ffffff !important;
	font-size: 26px !important;
	line-height: 1.12 !important;
	letter-spacing: .3px;
	white-space: nowrap;
	text-transform: none !important;
}
@media (max-width: 1200px){ .udupi-topbar-title.udupi-college-name { font-size: 21px !important; } }
@media (max-width: 782px){  .udupi-topbar-title.udupi-college-name { font-size: 16px !important; white-space: normal; } }

/* ── Static UCPS hero (shown when no slide CPT data exists) ── */
.udupi-hero-static-slide {
	min-height: 520px; display: flex; align-items: center;
	background: linear-gradient(125deg,#0D2137 0%,#1B3A5C 55%,#0a2040 100%);
	padding: 64px 0;
}
.udupi-hero-static .udupi-slide__inner { width:100%; max-width:1200px; margin:0 auto; padding:0 40px; }
.udupi-hero-static .udupi-slide__content { max-width:820px; }
.udupi-hero-static .udupi-slide__tag { display:inline-block; background:#FFD92A; color:#0D2137; font-weight:700; padding:7px 18px; border-radius:30px; font-size:13px; letter-spacing:.6px; text-transform:uppercase; margin-bottom:22px; }
.udupi-hero-static .udupi-slide__title.udupi-college-name { color:#ffffff !important; line-height:1.1 !important; margin:0 0 18px !important; }
.udupi-hero-static .udupi-slide__subtitle { color:rgba(255,255,255,.85); font-size:19px; line-height:1.6; margin:0 0 32px; }
.udupi-hero-static .udupi-slide__ctas { display:flex; gap:16px; flex-wrap:wrap; }
.udupi-hero-static .udupi-slide__cta { display:inline-block; padding:15px 34px; border-radius:8px; font-weight:600; font-size:16px; text-decoration:none; transition:transform .15s ease; }
.udupi-hero-static .udupi-slide__cta--primary { background:#FFD92A; color:#0D2137 !important; }
.udupi-hero-static .udupi-slide__cta--ghost { background:transparent; color:#fff !important; border:2px solid rgba(255,255,255,.6); }
.udupi-hero-static .udupi-slide__cta:hover { transform:translateY(-2px); }
@media (max-width:1024px){ .udupi-hero-static-slide{min-height:420px;} }
@media (max-width:600px){ .udupi-hero-static .udupi-slide__inner{padding:0 20px;} .udupi-hero-static .udupi-slide__subtitle{font-size:16px;} }

/* ── Remove blog/page sidebar site-wide → full-width content ── */
.page-sidebar { display: none !important; }
.page-content.-with-left-sidebar,
.page-content.-with-right-sidebar { display: block !important; grid-template-columns: 1fr !important; }
.page-content.-with-left-sidebar > *,
.page-content.-with-right-sidebar > * { width: 100% !important; max-width: 100% !important; flex: 1 1 100% !important; }
.page-content .content-area { width: 100% !important; max-width: 100% !important; }
/* Front page (static Home): hide the "Home › Home" breadcrumb/header */
body.home .breadcrumb-holder,
body.home .page-header,
body.page-id-228110 .breadcrumb-holder { display: none !important; }

/* ── Header fix: remove the overlapping "Udupi Group" crest emblem ──
   It was pulled up over the top bar and cut off the "Udupi C…" of the
   title. The Cooper-font text title in the top bar is the brand mark now. */
@media (max-width: 782px){
  .udupi-topbar-title.udupi-college-name { text-align: center; }
}

/* ── Header: offset the college-name text title so the crest emblem never overlaps it
   (mirrors the old image title's margin-left = emblem width, per breakpoint). ── */
.udupi-topbar-title-link { margin-left: 150px; }
@media (max-width: 1600px){ .udupi-topbar-title-link { margin-left: 140px; } }
@media (max-width: 1500px){ .udupi-topbar-title-link { margin-left: 132px; } }
@media (max-width: 1440px){ .udupi-topbar-title-link { margin-left: 124px; } }
@media (max-width: 1366px){ .udupi-topbar-title-link { margin-left: 114px; } }
@media (max-width: 1280px){ .udupi-topbar-title-link { margin-left: 106px; } }
@media (max-width: 1199px){ .udupi-topbar-title-link { margin-left: 98px; } }
@media (max-width: 1100px){ .udupi-topbar-title-link { margin-left: 0 !important; } .udupi-topbar-title.udupi-college-name { text-align: center; } }

