/* JTJEE site header & footer — [jtjee_header] / [jtjee_footer] */

/* ---------- Full width: remove Elementor/theme gaps around these blocks ---------- */
html, body { overflow-x: hidden; }
.e-con:has(.jtp-site), .elementor-section:has(.jtp-site), .elementor-column:has(.jtp-site) > .elementor-widget-wrap {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px;
  --container-max-width: 100%; --content-width: 100%;
  padding: 0 !important; margin: 0 !important; max-width: 100% !important; width: 100% !important; }
.e-con:has(.jtp-site) > .e-con-inner, .elementor-section:has(.jtp-site) > .elementor-container { max-width: 100% !important; width: 100% !important; padding: 0 !important; gap: 0 !important; }
.elementor-element:has(.jtp-site), .elementor-widget-shortcode:has(.jtp-site) .elementor-widget-container, .elementor-shortcode:has(.jtp-site) { margin: 0 !important; padding: 0 !important; }
html body .jtp-site.jtp-site { position: relative; width: 100vw !important; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; margin-top: 0 !important; margin-bottom: 0 !important; }
/* Shortcodes placed in normal page content get wrapped in paragraphs — keep them tight */
p:has(> .jtp-site) { margin: 0 !important; padding: 0 !important; max-width: none !important; }
/* Hide the theme's own header/title/footer on pages that use these blocks */
body:has(.jtp-site) header.wp-block-template-part, body:has(.jtp-site) footer.wp-block-template-part,
body:has(.jtp-site) .wp-block-post-title, body:has(.jtp-site) .site-header, body:has(.jtp-site) .site-footer,
body:has(.jtp-site) #site-header, body:has(.jtp-site) #site-footer, body:has(.jtp-site) .entry-title,
body:has(.jtp-site) .page-header, body:has(.jtp-site) #header, body:has(.jtp-site) #header + hr, body:has(.jtp-site) #footer { display: none !important; }

body:has(.jtp-site) .wp-site-blocks, body:has(.jtp-site) .wp-site-blocks > *, main:has(.jtp-site), .entry-content:has(.jtp-site), .wp-block-post-content:has(.jtp-site), .has-global-padding:has(.jtp-site), .site-main:has(.jtp-site) {
  margin-top: 0 !important; margin-bottom: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; padding-left: 0 !important; padding-right: 0 !important; max-width: none !important; }

/* Theme page-title / spacer blocks that sit beside the page content */
main:has(.jtp-site) > :not(:has(.jtp-site)) { display: none !important; }

/* ---------- Base ---------- */
.jtp-site { --y: #fbe509; --w: #ffffff; --b: #132c72; --r: #e5150a; --t: #1b1947; --br: #6f3c0b;
  background: var(--w); color: var(--t); font-family: "Noto Sans", sans-serif; font-size: 16px; line-height: 1.5; -webkit-text-size-adjust: 100%; }
.jtp-site *, .jtp-site *::before, .jtp-site *::after { box-sizing: border-box; }
.jtp-site img { max-width: 100%; height: auto; display: block; }
.jtp-site p, .jtp-site ul { margin: 0; padding: 0; }
.jtp-site a { color: inherit; }
.jtp-site button { font: inherit; text-transform: none; letter-spacing: normal; box-shadow: none; }
.jtp-site a:focus-visible, .jtp-site button:focus-visible { outline: 3px solid var(--y); outline-offset: 2px; }
.jtp-site .wrap { max-width: 1240px; margin: 0 auto; }

/* ---------- Header ---------- */
.jtp-site .hdr { background: var(--y); padding: 16px 20px 14px; }
.jtp-site .hdr .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
.jtp-site .logo img { width: 340px; }
.jtp-site .hdr-r { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; flex: 1 1 320px; }
.jtp-site .tagline-en { font-family: "Noto Sans", sans-serif !important; font-weight: 800 !important; }
.jtp-site .tagline { font-family: "Noto Sans Oriya", sans-serif; font-weight: 700; font-size: 30px; line-height: 1.3; text-align: right; color: var(--t); }
.jtp-site .logins { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
.jtp-site .login { display: inline-flex; align-items: center; min-height: 44px; padding: 0 22px; background: var(--w); color: var(--t); border-radius: 12px; font-weight: 700; font-size: 20px; text-decoration: none; }
.jtp-site .login:hover { color: var(--r); }
.jtp-site button.login { border: 0; cursor: pointer; gap: 8px; font-family: inherit; box-shadow: none; outline: none; background: var(--w); color: var(--t); }
.jtp-site button.login:focus-visible { outline: 3px solid var(--b); outline-offset: 2px; }
.jtp-site button.login:hover, .jtp-site .login-dd.open > button.login { color: var(--r); background: var(--w); }
/* Login drop-down */
.jtp-site .login-dd { position: relative; }
.jtp-site .login-dd .sub { left: auto; right: 0; top: 100%; border-radius: 12px; min-width: 200px; }
.jtp-site .login-dd.open > .login svg { transform: rotate(180deg); }
.jtp-site .login-dd .sub a { display: block; padding: 10px 12px; border-radius: 8px; color: var(--t); font-weight: 700; font-size: 15px; text-decoration: none; }
.jtp-site .login-dd .sub a:hover { background: var(--y); }
/* English / Odia switch */
.jtp-site .lang { display: inline-flex; padding: 3px; background: var(--w); border-radius: 999px; gap: 2px; }
.jtp-site .lang a { display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px; border-radius: 999px; font-size: 14px; font-weight: 700; color: var(--t); text-decoration: none; }
.jtp-site .lang a[lang="or"] { font-family: "Noto Sans Oriya", "Noto Sans", sans-serif; }
.jtp-site .lang a.is-on { background: var(--b); color: var(--w); }
.jtp-site .lang a:not(.is-on):hover { color: var(--r); }
.jtp-site .flogo { width: 120px; height: auto; }

/* ---------- Main menu ---------- */
.jtp-site .nav { background: var(--w); padding: 0 20px; position: relative; z-index: 50; }
.jtp-site .nav-toggle { display: none; }
.jtp-site .nav-btn { display: none; }
.jtp-site .menu { list-style: none; display: flex; flex-wrap: wrap; justify-content: space-around; gap: 4px 12px; padding: 6px 16px; max-width: 1240px; margin: 0 auto; }
.jtp-site .menu > li { position: relative; display: flex; align-items: center; }
.jtp-site .menu a, .jtp-site .menu .sub-parent { display: block; padding: 10px 8px; color: var(--t); font-weight: 700; font-size: 14px; text-decoration: none; text-transform: uppercase; background: none; border: 0; cursor: pointer; }
.jtp-site .menu a:hover, .jtp-site .menu .sub-parent:hover, .jtp-site .menu .is-current > a, .jtp-site .menu .is-current > .sub-parent { color: var(--r); }
.jtp-site .caret { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 32px; margin-left: -6px; padding: 0; border: 0; background: none; color: var(--t); cursor: pointer; }
.jtp-site .caret svg { transition: transform .15s; }
.jtp-site .has-sub.open > .caret svg { transform: rotate(180deg); }
/* Dropdown */
.jtp-site .sub { list-style: none; position: absolute; top: 100%; left: 0; min-width: 210px; padding: 8px; margin: 0;
  background: var(--w); border: 1.5px solid rgba(19,44,114,.18); border-top: 4px solid var(--y); border-radius: 0 0 12px 12px;
  box-shadow: 0 12px 28px rgba(19,44,114,.14); display: none; z-index: 60; }
.jtp-site .menu > li:last-child .sub, .jtp-site .menu > li:nth-last-child(2) .sub { left: auto; right: 0; }
.jtp-site .has-sub:hover > .sub, .jtp-site .has-sub.open > .sub { display: block; }
.jtp-site .sub a { padding: 10px 12px; border-radius: 8px; font-size: 14px; text-transform: none; font-weight: 600; }
.jtp-site .sub a:hover, .jtp-site .sub .is-current > a { background: var(--y); color: var(--t); }

/* ---------- Updates bar ---------- */
.jtp-site .upd { background: var(--y); padding: 14px 20px; margin-top: 4px; }
.jtp-site .upd .box { max-width: 1196px; margin: 0 auto; background: var(--w); display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 12px 22px; }
.jtp-site .upd .lbl { color: var(--r); font-weight: 700; font-size: 24px; letter-spacing: .5px; }
.jtp-site .upd .bar { width: 2px; height: 26px; background: var(--t); }
.jtp-site .upd p { flex: 1 1 300px; font-weight: 700; font-size: 16px; color: var(--t); }
.jtp-site .upd a { text-decoration: underline; }
/* Rotating updates: stacked in one grid cell so the strip is as tall as the longest update */
.jtp-site .upd-list { list-style: none; margin: 0; padding: 0; flex: 1 1 300px; display: grid; overflow: hidden; min-width: 0; }
.jtp-site .upd-list li { grid-area: 1 / 1; font-weight: 700; font-size: 16px; color: var(--t); align-self: center;
  transform: translateY(110%); opacity: 0; transition: transform .5s ease, opacity .5s ease; }
.jtp-site .upd-list li.is-active { transform: none; opacity: 1; }
.jtp-site .upd-list li.is-leaving { transform: translateY(-110%); opacity: 0; }
.jtp-site .upd-count { font-size: 12px; font-weight: 700; color: var(--br); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .jtp-site .upd-list li { transition: none; } }

/* ---------- Footer ---------- */
.jtp-site .ftr { background: var(--y); padding: 48px 20px 28px; color: var(--t); }
.jtp-site .ftr-row { display: flex; flex-wrap: wrap; gap: 36px; }
.jtp-site .fcols { flex: 2 1 620px; display: grid; grid-template-columns: 1.2fr 1.3fr 1fr 1fr; gap: 28px; }
.jtp-site .fcol { display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.jtp-site .fcol ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.jtp-site .fcol .h { font-weight: 800; font-size: 15px; margin-bottom: 4px; }
.jtp-site .fcol a { color: var(--t); }
.jtp-site .fcol a:hover { color: var(--r); }
.jtp-site .fcol .tel { font-weight: 700; text-decoration: none; }
.jtp-site .fcol .addr { font-weight: 700; line-height: 1.5; }
.jtp-site .map { flex: 1 1 340px; display: flex; flex-direction: column; min-height: 240px; background: var(--w); border-radius: 20px; overflow: hidden; color: var(--t); text-decoration: none; }
.jtp-site .map-vis { position: relative; flex: 1; min-height: 180px; overflow: hidden; }
.jtp-site .map-vis i { position: absolute; display: block; }
.jtp-site .map-vis img, .jtp-site .map-vis iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; display: block; }
.jtp-site .map-live .map-vis { min-height: 220px; }
.jtp-site a.map-go { text-decoration: none; }
.jtp-site a.map-go:hover { background: var(--r); }
.jtp-site .map-go { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 18px; background: var(--b); color: var(--w); font-weight: 700; font-size: 15px; }
.jtp-site .copy { margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(27,25,71,.3); font-size: 13px; }

/* ---------- Tablet ---------- */
@media (max-width: 1024px) {
  .jtp-site .fcols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  .jtp-site .hdr { padding: 12px 16px; }
  .jtp-site .hdr .wrap { flex-direction: column; align-items: center; gap: 10px; }
  .jtp-site .logo img { width: 260px; }
  .jtp-site .hdr-r { align-items: center; flex: none; gap: 10px; }
  .jtp-site .tagline { font-size: 20px; text-align: center; }
  .jtp-site .logins { justify-content: center; }
  .jtp-site .login { font-size: 16px; padding: 0 18px; }
  .jtp-site .login-dd .sub { position: absolute; width: auto; min-width: 200px; padding: 8px; border: 1.5px solid rgba(19,44,114,.18); border-top: 4px solid var(--y); box-shadow: 0 12px 28px rgba(19,44,114,.14); left: 50%; right: auto; transform: translateX(-50%); }

  .jtp-site .nav { padding: 0; border-bottom: 1px solid rgba(27,25,71,.15); }
  .jtp-site .nav-btn { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 48px; padding: 0 16px; font-weight: 800; font-size: 15px; color: var(--t); cursor: pointer; user-select: none; }
  .jtp-site .nav-btn .bars { width: 24px; height: 2px; background: var(--t); position: relative; }
  .jtp-site .nav-btn .bars::before, .jtp-site .nav-btn .bars::after { content: ""; position: absolute; left: 0; width: 24px; height: 2px; background: var(--t); }
  .jtp-site .nav-btn .bars::before { top: -7px; } .jtp-site .nav-btn .bars::after { top: 7px; }
  .jtp-site .menu { display: none; flex-direction: column; flex-wrap: nowrap; padding: 0 0 8px; gap: 0; }
  .jtp-site .nav-toggle:checked ~ .menu { display: flex; }
  .jtp-site .menu > li { flex-wrap: wrap; border-top: 1px solid rgba(27,25,71,.08); }
  .jtp-site .menu > li > a, .jtp-site .menu > li > .sub-parent { flex: 1; padding: 12px 16px; text-align: left; }
  .jtp-site .caret { width: 48px; height: 44px; margin: 0; }
  /* Sub-menus become an accordion */
  .jtp-site .sub { position: static; width: 100%; min-width: 0; border: 0; border-radius: 0; box-shadow: none; padding: 0 0 8px 16px; background: var(--w); }
  .jtp-site .has-sub:hover > .sub { display: none; }
  .jtp-site .has-sub.open > .sub { display: block; }

  .jtp-site .upd { padding: 10px 12px; }
  .jtp-site .upd .box { padding: 10px 14px; }
  .jtp-site .upd .lbl { font-size: 18px; }
  .jtp-site .upd .bar { height: 20px; }
  .jtp-site .upd p, .jtp-site .upd-list { flex-basis: 100%; }
  .jtp-site .upd-list li { font-size: 14px; }
  .jtp-site .upd-count { display: none; }

  .jtp-site .ftr { padding: 36px 16px 24px; }
  .jtp-site .fcols { flex-basis: 100%; grid-template-columns: 1fr 1fr; gap: 24px; }
  .jtp-site .fcol.brand { grid-column: span 2; }
  .jtp-site .map { flex-basis: 100%; }
}
@media (max-width: 380px) {
  .jtp-site .fcols { grid-template-columns: 1fr; }
  .jtp-site .fcol.brand { grid-column: auto; }
}
