/*
Theme Name: Hello Elementor Child
Template: hello-elementor
Version: 2.3.3
Text Domain: hello-elementor-child
*/

/* =========================================================
   1) BASE / NORMALIZE (lightweight + safe overflow)
   ========================================================= */
html{ -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; }
*,*::before,*::after{ box-sizing:border-box; }
body{ margin:0; min-height:100%; }
img{ max-width:100%; height:auto; display:block; }
svg{ max-width:100%; height:auto; display:block; }

/* Safer overflow handling */
@supports (overflow: clip){
  body{ overflow-x: clip; }
}
@supports not (overflow: clip){
  body{ overflow-x: hidden; }
}

/* =========================================================
   2) DESIGN TOKENS
   ========================================================= */
:root{
  --fluid-side-padding-min: clamp(1rem, 4vw, 1.25rem);

  --section-xxl-padding-min: 8rem;
  --section-xxl-padding-max: 10rem;
  --section-xl-padding-min: 6rem;
  --section-xl-padding-max: 7.5rem;
  --section-l-padding-min: 4rem;
  --section-l-padding-max: 7.5rem;
  --section-m-padding-min: 2.25rem;
  --section-m-padding-max: 4rem;
  --section-s-padding-min: 2rem;
  --section-s-padding-max: 3.75rem;
  --section-xs-padding-min: 1.5rem;
  --section-xs-padding-max: 2.5rem;
  --section-xxs-padding-min: .75rem;
  --section-xxs-padding-max: 1.5rem;

  --section-narrow: 62.5rem;
  --section-narrow-xs: 45rem;
  --section-wide: 1280px;
  --section-fluid-min: 1140px;
  --section-fluid-max: 1440px;
  --section-fluid-xl-min: 1280px;
  --section-fluid-xl-max: 1680px;

  --section-hero-height: 100svh;
  --hero-white-band: clamp(120px, 12vw, 220px);
  --hero-media-shift: clamp(18px, 3vw, 72px);

  --gap-xxs: clamp(.25rem, 1vw, .5rem);
  --gap-xs:  clamp(.5rem, 1.5vw, .75rem);
  --gap-s:   clamp(.75rem, 2vw, 1rem);
  --gap-m:   1.25rem;
  --gap-l:   clamp(1.25rem, 3vw, 2.5rem);
  --gap-xl:  clamp(1.25rem, 5vw, 3.75rem);
  --gap-xxl: clamp(1.25rem, 10vw, 7.5rem);

  --radius-s: 10px;
  --radius-m: clamp(14px, 1.2vw, 18px);
  --radius-l: clamp(18px, 1.8vw, 28px);

  --shadow-s: 0 10px 26px rgba(0,0,0,.10);
  --shadow-m: 0 22px 60px rgba(0,0,0,.14);

  --header-sticky-h: 96px;
  --subnav-h: 58px;
}

/* Tablet */
@media (min-width:768px) and (max-width:1140px){
  :root{
    --fluid-side-padding-min: clamp(2rem, 6vw, 3rem);

    --section-xxl-padding-min: 6.5rem;
    --section-xxl-padding-max: 8rem;
    --section-xl-padding-min: 4.5rem;
    --section-xl-padding-max: 6rem;
    --section-l-padding-min: 3rem;
    --section-l-padding-max: 5rem;
    --section-m-padding-min: 2rem;
    --section-m-padding-max: 3.25rem;
    --section-s-padding-min: 1.5rem;
    --section-s-padding-max: 2.5rem;
    --section-xs-padding-min: 1.25rem;
    --section-xs-padding-max: 2rem;
    --section-xxs-padding-min: .75rem;
    --section-xxs-padding-max: 1.5rem;
  }
}

/* Mobile */
@media (max-width:767.98px){
  :root{
    --fluid-side-padding-min: clamp(1.75rem, 7vw, 2.5rem);

    --section-xxl-padding-min: 3.5rem;
    --section-xxl-padding-max: 4.5rem;
    --section-xl-padding-min: 3rem;
    --section-xl-padding-max: 4rem;
    --section-l-padding-min: 2.5rem;
    --section-l-padding-max: 3.5rem;
    --section-m-padding-min: 1.5rem;
    --section-m-padding-max: 2.25rem;
    --section-s-padding-min: 1.25rem;
    --section-s-padding-max: 2rem;
    --section-xs-padding-min: 1rem;
    --section-xs-padding-max: 1.5rem;
    --section-xxs-padding-min: .75rem;
    --section-xxs-padding-max: 1.25rem;

    --header-sticky-h: 76px;
  }
}

/* =========================================================
   3) SECTION SPACING (vertical only) + inner reset
   ========================================================= */
.section-xxl,
.section-xl,
.section-l,
.section-m,
.section-s,
.section-xs,
.section-xxs,
.section-header{ padding-inline: 0 !important; }

.section-xxl{ padding-block: clamp(var(--section-xxl-padding-min), calc(var(--section-xxl-padding-min) + 3vw), var(--section-xxl-padding-max)) !important; }
.section-xl { padding-block: clamp(var(--section-xl-padding-min),  calc(var(--section-xl-padding-min) + 2.2vw), var(--section-xl-padding-max)) !important; }
.section-l  { padding-block: clamp(var(--section-l-padding-min),   calc(var(--section-l-padding-min) + 1.8vw), var(--section-l-padding-max)) !important; }
.section-m  { padding-block: clamp(var(--section-m-padding-min),   calc(var(--section-m-padding-min) + 1.2vw), var(--section-m-padding-max)) !important; }
.section-s  { padding-block: clamp(var(--section-s-padding-min),   calc(var(--section-s-padding-min) + 1vw), var(--section-s-padding-max)) !important; }
.section-xs { padding-block: clamp(var(--section-xs-padding-min),  calc(var(--section-xs-padding-min) + .8vw), var(--section-xs-padding-max)) !important; }
.section-xxs{ padding-block: clamp(var(--section-xxs-padding-min), calc(var(--section-xxs-padding-min) + .6vw), var(--section-xxs-padding-max)) !important; }
.section-header{ padding-block: clamp(.5rem, .6vw + .25rem, 1rem) !important; }

.section-xxl > .e-con-inner,
.section-xl  > .e-con-inner,
.section-l   > .e-con-inner,
.section-m   > .e-con-inner,
.section-s   > .e-con-inner,
.section-xs  > .e-con-inner,
.section-xxs > .e-con-inner,
.section-header > .e-con-inner,
.section-xxl > .elementor-container,
.section-xl  > .elementor-container,
.section-l   > .elementor-container,
.section-m   > .elementor-container,
.section-s   > .elementor-container,
.section-xs  > .elementor-container,
.section-xxs > .elementor-container,
.section-header > .elementor-container{
  padding-block: 0 !important;
  padding-inline: 0 !important;
}

.section-hero{ min-height: var(--section-hero-height) !important; }

/* =========================================================
   4) WIDTH HELPERS
   ========================================================= */
.section-full,
.section-full.e-con,
.section-full > .e-con-inner,
.section-full > .elementor-container{
  max-width:100% !important;
  width:100%;
  padding-inline:0 !important;
}

.section-narrow.e-con,
.section-narrow > .e-con-inner,
.section-narrow > .elementor-container{
  max-width: var(--section-narrow) !important;
  margin-inline:auto !important;
  padding-inline: var(--fluid-side-padding-min) !important;
  width:100%;
}

.section-narrow-xs.e-con,
.section-narrow-xs > .e-con-inner,
.section-narrow-xs > .elementor-container{
  max-width: var(--section-narrow-xs) !important;
  margin-inline:auto !important;
  padding-inline: var(--fluid-side-padding-min) !important;
  width:100%;
}

.section-wide.e-con,
.section-wide > .e-con-inner,
.section-wide > .elementor-container{
  max-width: var(--section-wide) !important;
  margin-inline:auto !important;
  padding-inline: var(--fluid-side-padding-min) !important;
  width:100%;
}

.section-fluid.e-con,
.section-fluid > .e-con-inner,
.section-fluid > .elementor-container{
  max-width: clamp(var(--section-fluid-min), 86vw, var(--section-fluid-max)) !important;
  margin-inline:auto !important;
  padding-inline: var(--fluid-side-padding-min) !important;
  width:100%;
}

@media (min-width:1440px){
  .section-fluid.e-con,
  .section-fluid > .e-con-inner,
  .section-fluid > .elementor-container{
    max-width: clamp(1200px, 80vw, 1440px) !important;
  }
}

.section-fluid-xl.e-con,
.section-fluid-xl > .e-con-inner,
.section-fluid-xl > .elementor-container{
  max-width: clamp(var(--section-fluid-xl-min), 92vw, var(--section-fluid-xl-max)) !important;
  margin-inline:auto !important;
  padding-inline: var(--fluid-side-padding-min) !important;
  width:100%;
}

@media (min-width:1680px){
  .section-fluid-xl.e-con,
  .section-fluid-xl > .e-con-inner,
  .section-fluid-xl > .elementor-container{
    max-width: clamp(1400px, 88vw, var(--section-fluid-xl-max)) !important;
  }
}

/* =========================================================
   5) GAP + STACK UTILITIES
   ========================================================= */
.gap-xxs{ gap: var(--gap-xxs) !important; }
.gap-xs { gap: var(--gap-xs)  !important; }
.gap-s  { gap: var(--gap-s)   !important; }
.gap-m  { gap: var(--gap-m)   !important; }
.gap-l  { gap: var(--gap-l)   !important; }
.gap-xl { gap: var(--gap-xl)  !important; }
.gap-xxl{ gap: var(--gap-xxl) !important; }

.stack-gap-s  > * + *{ margin-top: 1rem !important; }
.stack-gap-m  > * + *{ margin-top: 1.25rem !important; }
.stack-gap-l  > * + *{ margin-top: 2rem !important; }
.stack-gap-xl > * + *{ margin-top: 3rem !important; }

/* =========================================================
   6) TYPOGRAPHY + LISTS
   ========================================================= */
body p{ margin-bottom: .9em; }
.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol{ margin: 0 0 .9em 1.2em; padding:0; }
.elementor-widget-text-editor li{ margin-bottom:.35em; line-height:1.55; }
body strong, body b{ font-weight:600; }

/* =========================================================
   7) MEDIA FULL-BLEED UTILITIES
   ========================================================= */
.media-bleed{ overflow:hidden; position:relative; }
.media-bleed .elementor-widget-image,
.media-bleed .elementor-widget-container{ width:100%; max-width:none; padding:0; }

.media-bleed img,
.media-bleed picture,
.media-bleed video,
.media-bleed .elementor-image img{
  width:100% !important;
  height: clamp(280px, 52vw, 640px) !important;
  object-fit:cover;
  object-position:center;
  display:block;
}
@media (max-width:767.98px){
  .media-bleed img,
  .media-bleed picture,
  .media-bleed video,
  .media-bleed .elementor-image img{
    height: clamp(340px, 64vw, 560px) !important;
  }
}

.full-bleed{
  width:100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding-inline:0 !important;
}

/* =========================================================
   8) TEXT LIGHT ON MOBILE/TABLET
   ========================================================= */
@media (max-width:1140px){
  .text-light-mobile,
  .text-light-mobile p,
  .text-light-mobile li,
  .text-light-mobile h1,
  .text-light-mobile h2,
  .text-light-mobile h3,
  .text-light-mobile h4,
  .text-light-mobile h5,
  .text-light-mobile h6{ color:#fff !important; }

  .text-light-mobile a{
    color:#fff !important;
    text-decoration-color: rgba(255,255,255,.6);
  }
  .text-light-mobile .elementor-divider-separator{ border-color:#fff !important; }
  .text-light-mobile .elementor-icon,
  .text-light-mobile svg{ color:#fff !important; fill:#fff !important; }
}

/* =========================================================
   9) HEADER (baseline + sticky + logo sizing)
   ========================================================= */
header.elementor-location-header{
  position:relative;
  z-index:999;
  padding-top:0 !important;
  padding-bottom:0 !important;
}
header.elementor-location-header .elementor-sticky--active{ z-index:999 !important; }

header.elementor-location-header a,
header.elementor-location-header a:hover,
header.elementor-location-header a:focus{ text-decoration:none !important; }

.header-logo img,
header.elementor-location-header .elementor-widget-site-logo img{
  max-height: 78px;
  width:auto !important;
  height:auto !important;
  max-width:none !important;
}
@media (max-width:767.98px){
  .header-logo img,
  header.elementor-location-header .elementor-widget-site-logo img{ max-height: 62px; }
}

.ce-header.elementor-sticky--active{ box-shadow: 0 14px 40px rgba(0,0,0,.10); }
html{ scroll-padding-top: calc(var(--header-sticky-h) + var(--subnav-h) + 16px); }

/* =========================================================
   10) SCHOOL SUBNAV (optional)
   ========================================================= */
.cube-school-subnav{
  position:relative;
  z-index:90;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(11,34,57,.12);
}
.cube-school-subnav.is-sticky{
  position:sticky;
  top: var(--header-sticky-h);
}
.cube-school-subnav__inner{
  max-width: clamp(var(--section-fluid-min), 86vw, var(--section-fluid-max));
  margin-inline:auto;
  padding-inline: var(--fluid-side-padding-min);
  min-height: var(--subnav-h);
  display:flex;
  align-items:center;
}
@media (min-width:1440px){
  .cube-school-subnav__inner{ max-width: clamp(1200px, 80vw, 1440px); }
}
.cube-school-subnav__list{
  list-style:none;
  margin:0;
  padding:10px 0;
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  width:100%;
}
.cube-school-subnav__link{
  display:inline-flex;
  align-items:center;
  padding:10px 12px;
  border-radius:999px;
  font-weight:600;
  font-size:14px;
  text-decoration:none;
  transition: background-color .15s ease, transform .15s ease;
}
.cube-school-subnav__link:hover{
  background: rgba(49,204,214,.12);
  transform: translateY(-1px);
}
.cube-school-subnav__link.is-active,
.cube-school-subnav__link[aria-current="page"]{
  background: rgba(11,34,57,.08);
}
@media (max-width:767.98px){
  .cube-school-subnav__list{
    justify-content:flex-start;
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .cube-school-subnav__list::-webkit-scrollbar{ display:none; }
}

/* =========================================================
   11) COL BLEED (left / right)
   ========================================================= */
.e-con.col-bleed-left,
.e-con.col-bleed-right{
  --bleed-basis: 40%;
  position: relative;
  z-index: 2;
  overflow: visible !important;
  min-width: 0;
}

@media (min-width: 768px){
  .e-con.col-bleed-left{
    margin-left: calc(50% - 50vw) !important;
    flex: 0 0 calc(var(--bleed-basis) + (50vw - 50%)) !important;
    max-width: calc(var(--bleed-basis) + (50vw - 50%)) !important;
  }
  .e-con.col-bleed-right{
    margin-right: calc(50% - 50vw) !important;
    flex: 0 0 calc(var(--bleed-basis) + (50vw - 50%)) !important;
    max-width: calc(var(--bleed-basis) + (50vw - 50%)) !important;
  }
  .e-con.col-bleed-left > .e-con-inner,
  .e-con.col-bleed-right > .e-con-inner{
    padding: 0 !important;
    max-width: none !important;
  }
  .e-con.col-bleed-left img,
  .e-con.col-bleed-right img,
  .e-con.col-bleed-left video,
  .e-con.col-bleed-right video{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
  }
}

.bleed-35{ --bleed-basis: 35%; }
.bleed-40{ --bleed-basis: 40%; }
.bleed-45{ --bleed-basis: 45%; }
.bleed-50{ --bleed-basis: 50%; }

.section-full,
.section-wide,
.section-fluid,
.section-fluid-xl,
.section-full > .e-con-inner,
.section-wide > .e-con-inner,
.section-fluid > .e-con-inner,
.section-fluid-xl > .e-con-inner{
  overflow: visible !important;
}

/* =========================================================
   12) LOOP CAROUSEL — prevent shadow clipping
   ========================================================= */
.cube-loop-carousel .swiper,
.cube-loop-carousel .swiper-wrapper,
.cube-loop-carousel .swiper-slide{
  overflow: visible !important;
}
.cube-loop-carousel .swiper{
  padding: 20px 0 40px;
}

.ce-btn .elementor-button,
.ce-btn .elementor-button:hover,
.ce-btn .elementor-button:focus{
  transform: none !important;
  border-radius: 12px !important;
}

/* =========================================================
   13) SHORTCODES + LOOP UI
   ========================================================= */

/* Practical facts list */
.ce-practical-facts{
  font-size: .9rem;
  line-height: 1.45;
  color: #1F2328;
}
.ce-practical-facts .ce-fact-line{
  padding: 12px 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  margin: 0;
}
.ce-practical-facts .ce-fact-line:last-child{ border-bottom: 0; }
.ce-practical-facts .ce-fact-line strong{
  font-weight: 600;
  margin-right: 6px;
  color: #1F2328;
}

/* Team meta (optional) */
.team-meta{ font-size: 0.9rem; line-height: 1.35; color: rgba(11,34,57,0.68); }
.team-classes{ font-size: 0.85rem; color: rgba(11,34,57,0.62); }
.team-langs{ font-size: 0.8rem; font-weight: 600; letter-spacing: 0.04em; color: rgba(11,34,57,0.55); }
.team-role{ font-size: 0.95rem; color: rgba(11,34,57,0.78); }

/* Emoji badges (optional) */
.ce-lang-badges{ display:inline-flex; gap:6px; align-items:center; line-height:1 !important; font-size:0 !important; }
.ce-lang-badges .ce-lang-badge{ display:inline-flex; align-items:center; justify-content:center; font-size:16px !important; line-height:1 !important; }
.ce-lang-badges .ce-lang-badge.ce-lang-lsf{ font-size:12px !important; font-weight:600 !important; padding:4px 8px; border-radius:999px; background: rgba(0,0,0,0.06); }

/* Minimal school contact block */
.ce-contact-mini{
  font-size: 0.85rem;
  line-height: 1.35;
  color: #1F2328;
}
.ce-contact-mini__director{
  margin-bottom: 10px;
  color: #1F2328;
}
.ce-contact-mini__list{ display:grid; gap:8px; }
.ce-contact-mini__link{
  display:inline-flex;
  align-items:flex-start;
  gap:10px;
  text-decoration:none;
  color:#1F2328;
}
.ce-contact-mini__link:hover{ text-decoration: underline; text-decoration-thickness:1px; }
.ce-contact-mini__icon{
  flex:0 0 auto;
  margin-top:2px;
  opacity:.7;
  color:#1F2328;
}
.ce-contact-mini__icon svg{
  width:14px;
  height:14px;
  display:block;
  fill:currentColor;
}
.ce-contact-mini__text{ display:inline-block; }

/* School card meta (2 lines) — [cube_school_card_meta_simple] */
.ce-cardmeta-simple{
  margin-top: 10px;
  text-align: center;
}

.ce-cardmeta-simple__line{
  font-size: 0.88rem;
  line-height: 1.4;
  font-weight: 500;
  color: rgba(31,35,40,0.70);
  display: block;
}

.ce-cardmeta-simple__line + .ce-cardmeta-simple__line{
  margin-top: 10px;
}

.ce-cardmeta-simple .ce-dot{
  display:inline-block;
  margin: 0 10px;
  opacity: .55;
  font-size: 1em;
  transform: translateY(-1px);
}


/* =========================================================
   CE School cards — FINAL (JS click + clean hover reveal)
   Classes used:
   - ce-school-card (outer card container)
   - ce-school-head (title wrapper)
   - ce-school-reveal (description wrapper)
   - ce-school-reveal-inner (inner wrapper)
   - ce-school-card-link (overlay link output by shortcode)
   ========================================================= */

/* Card */
.ce-school-card{
  position: relative;
  overflow: hidden !important;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform .18s ease, box-shadow .18s ease;
}

/* Hover affordance (desktop only) */
@media (min-width:1025px){
  .ce-school-card:hover{
    transform: translateY(-4px);
  }
}

/* Keyboard focus */
.ce-school-card:focus-within{
  outline: 2px solid rgba(229,44,37,.35);
  outline-offset: 4px;
}

/* Overlay link (fallback; JS handles clicks) */
.ce-school-card-link{
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  border-radius: inherit;
}

/* ---------------------------------------------------------
   Image
   --------------------------------------------------------- */
.ce-school-card .elementor-widget-theme-post-featured-image img,
.ce-school-card .elementor-widget-post-featured-image img{
  width: 100% !important;
  height: 250px !important;
  object-fit: cover;
  display: block;
}

/* ---------------------------------------------------------
   Title clamp
   --------------------------------------------------------- */
.ce-school-card .ce-school-head .elementor-heading-title{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.2;
  margin: 0 !important;
}

/* ---------------------------------------------------------
   Description reveal behaviour
   Desktop: hidden, reveal on hover
   Mobile/tablet: always visible
   --------------------------------------------------------- */

/* Desktop default: hide reveal */
@media (min-width:1025px){
  .ce-school-card .ce-school-reveal{
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Show on hover */
  .ce-school-card:hover .ce-school-reveal{
    display: block !important;
  }

  /* Animate inner (optional but nice) */
  .ce-school-card .ce-school-reveal-inner{
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .18s ease, transform .18s ease;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  .ce-school-card:hover .ce-school-reveal-inner{
    opacity: 1;
    transform: translateY(0);
  }
}

/* Mobile/tablet: always visible + no animation */
@media (max-width:1024px){
  .ce-school-card .ce-school-reveal{
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .ce-school-card .ce-school-reveal-inner{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }
}

/* Description clamp + spacing */
.ce-school-card .ce-school-reveal .elementor-widget-text-editor{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 8px 0 0 !important;
}

/* Kill “mystery space” under reveal */
.ce-school-card .ce-school-reveal,
.ce-school-card .ce-school-reveal-inner,
.ce-school-card .ce-school-reveal .elementor-widget-container{
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* ---------------------------------------------------------
   Responsive image height
   --------------------------------------------------------- */
@media (max-width:1024px){
  .ce-school-card .elementor-widget-theme-post-featured-image img,
  .ce-school-card .elementor-widget-post-featured-image img{
    height: 200px !important;
  }
}
/* =========================================================
   DESKTOP ONLY: stop info panel reserving height + make reveal not add space
   ========================================================= */
@media (min-width:1025px){

  /* The container that holds title + reveal: shrink-wrap */
  .ce-school-card .ce-school-head{
    position: relative;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    min-height: 0 !important;
    height: auto !important;
  }

  /* Ensure the reveal does NOT take up space until hover */
  .ce-school-card .ce-school-reveal{
    display: block !important;     /* keep in DOM so we can absolutely position it */
    position: absolute !important;
    left: 0; right: 0;
    top: 100%;                     /* start just below the title area */
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    pointer-events: none;          /* prevent hover flicker */
  }

  /* Only show it on hover */
  .ce-school-card .ce-school-reveal-inner{
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .18s ease, transform .18s ease;
    margin: 0 !important;
    padding: 0 !important;
  }

  .ce-school-card:hover .ce-school-reveal{
    pointer-events: auto;
  }
  .ce-school-card:hover .ce-school-reveal-inner{
    opacity: 1;
    transform: translateY(0);
  }

  /* Tighten spacing inside reveal */
  .ce-school-card .ce-school-reveal .elementor-widget-text-editor{
    margin: 8px 0 0 !important;
  }
}




/* =========================================================
   Gravity Forms – Global styling (Section titles + Buttons)
   Add to child theme style.css
   ========================================================= */

:root{
  /* Button styling */
  --cube-gf-btn-bg: #FF5A3C;
  --cube-gf-btn-text: #fff;
  --cube-gf-btn-radius: var(--radius-m, 14px);
  --cube-gf-btn-padding-y: 0.95em;
  --cube-gf-btn-padding-x: 1.25em;

  /* Section titles */
  --cube-gf-section-size: clamp(1.125rem, 0.95rem + 0.6vw, 1.5rem);
  --cube-gf-section-weight: 700;
  --cube-gf-section-margin-top: 1.75rem;
  --cube-gf-section-margin-bottom: 0.75rem;
}

/* SECTION BREAK TITLES (all Gravity Forms) */
.gform_wrapper .gsection_title{
  font-family: inherit;
  font-size: var(--cube-gf-section-size);
  font-weight: var(--cube-gf-section-weight);
  line-height: 1.2;
  margin: var(--cube-gf-section-margin-top) 0 var(--cube-gf-section-margin-bottom);
}

/* Optional: section description under the title */
.gform_wrapper .gsection_description{
  font-family: inherit;
  margin-top: 0.35rem;
  opacity: 0.85;
}

/* Optional: subtle divider + spacing between sections */
.gform_wrapper .gsection{
  padding-top: 1.25rem;
  margin-top: 1.25rem;
  border-top: 1px solid rgba(0,0,0,0.08);
}

/* BUTTONS (submit / next / previous) */
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_footer input[type="button"],
.gform_wrapper .gform_footer button,
.gform_wrapper .gform_page_footer input[type="submit"],
.gform_wrapper .gform_page_footer input[type="button"],
.gform_wrapper .gform_page_footer button,
.gform_wrapper input.gform_button,
.gform_wrapper button.gform_button{
  font-family: inherit;
  font-weight: 600;
  border-radius: var(--cube-gf-btn-radius);
  padding: var(--cube-gf-btn-padding-y) var(--cube-gf-btn-padding-x);
  border: 0;
  background: var(--cube-gf-btn-bg);
  color: var(--cube-gf-btn-text);
  cursor: pointer;
  transition: transform 0.08s ease, filter 0.15s ease, box-shadow 0.15s ease;
}

/* Hover / focus */
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_footer button:hover,
.gform_wrapper .gform_page_footer input[type="submit"]:hover,
.gform_wrapper .gform_page_footer button:hover,
.gform_wrapper input.gform_button:hover,
.gform_wrapper button.gform_button:hover{
  filter: brightness(0.95);
  transform: translateY(-1px);
}

.gform_wrapper .gform_footer input[type="submit"]:focus-visible,
.gform_wrapper .gform_footer button:focus-visible,
.gform_wrapper .gform_page_footer input[type="submit"]:focus-visible,
.gform_wrapper .gform_page_footer button:focus-visible,
.gform_wrapper input.gform_button:focus-visible,
.gform_wrapper button.gform_button:focus-visible{
  outline: none;
  box-shadow: 0 0 0 3px rgba(255, 90, 60, 0.25);
}

/* OPTIONAL: make "Previous" look secondary (multi-page forms) */
.gform_wrapper .gform_page_footer .gform_previous_button{
  background: transparent;
  color: var(--cube-gf-btn-bg);
  border: 2px solid currentColor;
  filter: none;
  transform: none;
}

