.elementor-kit-6{--e-global-color-gold:#B8973A;--e-global-color-gold_light:#D4AC52;--e-global-color-ink:#0D0C0A;--e-global-color-stone:#6B6558;--e-global-color-fog:#F4F2EE;--e-global-color-white:#F8F6F1;--e-global-typography-primary-font-family:"Cormorant Garamond";--e-global-typography-primary-font-weight:300;--e-global-typography-secondary-font-family:"DM Sans";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"DM Sans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Cormorant Garamond";--e-global-typography-accent-font-weight:600;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ================================================================
   ONE STEP INTERNATIONAL ACADEMY — Global Design System CSS
   Version 2.0 | Covers all 7 QA Issues
   ================================================================ */

/* ── Design Tokens ── */
:root {
  --osa-gold: #B8973A;
  --osa-gold-light: #D4AC52;
  --osa-gold-pale: #F2ECD8;
  --osa-ink: #0D0C0A;
  --osa-ink-soft: #1A1815;
  --osa-stone: #6B6558;
  --osa-fog: #F4F2EE;
  --osa-white: #F8F6F1;
  --osa-border: #E0DDD6;
  --osa-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --osa-sans: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --osa-radius: 4px;
}

/* ── ISSUE 6: Typography — Body & Global ── */
body,
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor p {
  font-family: var(--osa-sans) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ── ISSUE 6: Headings — Cormorant Garamond ── */
.elementor-widget-heading .elementor-heading-title,
.elementor h1,
.elementor h2,
.elementor h3 {
  font-family: var(--osa-serif) !important;
  line-height: 1.15;
}

/* ── ISSUE 2: YouTube Hero Video Section ── */
#osa-hero,
.elementor-element-h-hero {
  min-height: 100svh !important;
  min-height: calc(100vh - 72px) !important;
  position: relative;
  overflow: hidden;
}

/* Elementor video bg: ensure it covers like object-fit:cover */
.elementor-element-h-hero > .elementor-background-video-container {
  position: absolute !important;
  top: 0; left: 0; width: 100%; height: 100%;
  overflow: hidden;
  z-index: 0;
}
.elementor-element-h-hero > .elementor-background-video-container iframe,
.elementor-element-h-hero > .elementor-background-video-container video {
  position: absolute !important;
  top: 50% !important; left: 50% !important;
  width: 100vw !important;
  min-height: 56.25vw !important; /* 16:9 */
  min-width: 177.78vh !important;
  transform: translate(-50%, -50%) !important;
  -webkit-transform: translate(-50%, -50%) !important;
  pointer-events: none !important;
}

/* Dark overlay on video hero */
.elementor-element-h-hero > .elementor-background-overlay {
  background: linear-gradient(105deg, rgba(13,12,10,0.90) 0%, rgba(13,12,10,0.68) 50%, rgba(13,12,10,0.48) 100%) !important;
  z-index: 1;
}

/* Hero content above overlay */
.elementor-element-h-hero > .elementor-container,
.elementor-element-h-hero > .e-con-inner {
  position: relative;
  z-index: 5 !important;
  -webkit-transform: translate3d(0,0,0);
  transform: translate3d(0,0,0);
}

/* Mobile: video fallback — show bg image instead */
@media (max-width: 767px) {
  .elementor-element-h-hero > .elementor-background-video-container {
    display: none !important;
  }
  .elementor-element-h-hero {
    background-image: url('https://images.unsplash.com/photo-1531206715517-5c0ba140b2b7?w=1280&q=80') !important;
    background-size: cover !important;
    background-position: center center !important;
  }
  .elementor-element-h-hero > .elementor-background-overlay {
    background: rgba(13,12,10,0.78) !important;
  }
}

/* ── ISSUE 3 & 6: White/Light Background — Contrast Fixes ── */

/* Why section (h-why) — light bg, improve card readability */
.elementor-element-h-why {
  background: var(--osa-white) !important;
  padding: 5rem 0 !important;
}
.elementor-element-wc1p .elementor-text-editor,
.elementor-element-wc2p .elementor-text-editor,
.elementor-element-wc3p .elementor-text-editor,
.elementor-element-wc1p p,
.elementor-element-wc2p p,
.elementor-element-wc3p p {
  color: #3A3530 !important; /* Darker stone — WCAG AA */
  font-size: 0.925rem !important;
  line-height: 1.8 !important;
  font-weight: 300 !important;
}

/* Why cards: hover gold border animation */
.elementor-element-wc1,
.elementor-element-wc2,
.elementor-element-wc3 {
  border-left: 3px solid transparent !important;
  transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
}
.elementor-element-wc1:hover,
.elementor-element-wc2:hover,
.elementor-element-wc3:hover {
  border-left-color: var(--osa-gold) !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.07) !important;
}

/* Why number treatment */
.elementor-element-wc1n .elementor-heading-title,
.elementor-element-wc2n .elementor-heading-title,
.elementor-element-wc3n .elementor-heading-title {
  font-family: var(--osa-serif) !important;
  font-size: 3.5rem !important;
  font-weight: 300 !important;
  color: var(--osa-gold) !important;
  line-height: 1 !important;
  margin-bottom: 0.5rem !important;
  opacity: 0.5;
}

/* Why heading treatment */
.elementor-element-wc1h .elementor-heading-title,
.elementor-element-wc2h .elementor-heading-title,
.elementor-element-wc3h .elementor-heading-title {
  font-family: var(--osa-serif) !important;
  font-size: 1.35rem !important;
  font-weight: 600 !important;
  color: var(--osa-ink) !important;
  letter-spacing: 0.01em;
}

/* Section overlines — consistent */
.elementor-element-why-ol .elementor-heading-title,
.elementor-element-t-ol .elementor-heading-title,
.elementor-element-svc-ol .elementor-heading-title,
.elementor-element-h-ol .elementor-heading-title,
.elementor-element-cta-ol .elementor-heading-title {
  font-family: var(--osa-sans) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
}

/* Section h2 headings */
.elementor-element-why-h2 .elementor-heading-title,
.elementor-element-t-h2 .elementor-heading-title {
  font-family: var(--osa-serif) !important;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  font-weight: 300 !important;
  color: var(--osa-ink) !important;
  line-height: 1.2 !important;
}

/* ── Testimonials section (h-testi) — fog background ── */
.elementor-element-h-testi {
  background: var(--osa-fog) !important;
  padding: 5rem 0 !important;
}

/* Testimonial quote text — strong contrast on white card */
.elementor-element-tm1q .elementor-text-editor,
.elementor-element-tm2q .elementor-text-editor,
.elementor-element-tm3q .elementor-text-editor,
.elementor-element-tm1q p,
.elementor-element-tm2q p,
.elementor-element-tm3q p {
  font-family: var(--osa-serif) !important;
  font-size: 1.05rem !important;
  font-style: italic !important;
  color: var(--osa-ink-soft) !important; /* #1A1815 on white = WCAG AAA */
  line-height: 1.75 !important;
  font-weight: 400 !important;
}

/* Testimonial stars */
.elementor-element-tm1s .elementor-text-editor,
.elementor-element-tm2s .elementor-text-editor,
.elementor-element-tm3s .elementor-text-editor,
.elementor-element-tm1s p,
.elementor-element-tm2s p,
.elementor-element-tm3s p {
  color: var(--osa-gold) !important;
  font-size: 1.1rem !important;
}

/* Testimonial names */
.elementor-element-tm1n .elementor-heading-title,
.elementor-element-tm2n .elementor-heading-title,
.elementor-element-tm3n .elementor-heading-title {
  font-family: var(--osa-serif) !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  color: var(--osa-ink) !important;
  margin-top: 1rem !important;
}

/* Testimonial roles */
.elementor-element-tm1r .elementor-heading-title,
.elementor-element-tm2r .elementor-heading-title,
.elementor-element-tm3r .elementor-heading-title {
  font-family: var(--osa-sans) !important;
  font-size: 0.78rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--osa-stone) !important;
}

/* ── BUTTONS: higher contrast + hover states ── */
.elementor-widget-button .elementor-button {
  font-family: var(--osa-sans) !important;
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  min-height: 44px !important;
  border-radius: var(--osa-radius) !important;
  transition: all 0.25s ease !important;
}

/* Primary gold button */
.elementor-element-h-b1 .elementor-button,
.elementor-element-svc-cta-b .elementor-button,
.elementor-element-cta-b1 .elementor-button {
  background: var(--osa-gold) !important;
  color: var(--osa-ink) !important;
  border: none !important;
}
.elementor-element-h-b1 .elementor-button:hover,
.elementor-element-svc-cta-b .elementor-button:hover,
.elementor-element-cta-b1 .elementor-button:hover {
  background: var(--osa-ink) !important;
  color: var(--osa-white) !important;
}

/* Outline button */
.elementor-element-h-b2 .elementor-button,
.elementor-element-cta-b2 .elementor-button {
  background: transparent !important;
  color: rgba(255,255,255,0.85) !important;
  border: 1px solid rgba(255,255,255,0.45) !important;
}
.elementor-element-h-b2 .elementor-button:hover,
.elementor-element-cta-b2 .elementor-button:hover {
  background: rgba(255,255,255,0.1) !important;
  border-color: rgba(255,255,255,0.7) !important;
}

/* Service card "Learn More" buttons */
.elementor-element-sp1b .elementor-button,
.elementor-element-sp2b .elementor-button,
.elementor-element-sp3b .elementor-button,
.elementor-element-sp4b .elementor-button {
  background: transparent !important;
  color: var(--osa-gold-light) !important;
  border: 1px solid rgba(184,151,58,0.45) !important;
  font-size: 0.75rem !important;
  padding: 0.5rem 1.25rem !important;
}
.elementor-element-sp1b .elementor-button:hover,
.elementor-element-sp2b .elementor-button:hover,
.elementor-element-sp3b .elementor-button:hover,
.elementor-element-sp4b .elementor-button:hover {
  background: var(--osa-gold) !important;
  color: var(--osa-ink) !important;
  border-color: var(--osa-gold) !important;
}

/* ── Trust strip items (h-trust) ── */
.elementor-element-h-trust {
  border-top: 1px solid rgba(184,151,58,0.2);
  border-bottom: 1px solid rgba(184,151,58,0.2);
  padding: 2rem 0 !important;
}
.elementor-element-tr1 .elementor-text-editor,
.elementor-element-tr2 .elementor-text-editor,
.elementor-element-tr3 .elementor-text-editor,
.elementor-element-tr4 .elementor-text-editor,
.elementor-element-tr1 p,
.elementor-element-tr2 p,
.elementor-element-tr3 p,
.elementor-element-tr4 p {
  font-family: var(--osa-sans) !important;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  color: rgba(255,255,255,0.75) !important;
  letter-spacing: 0.04em !important;
  line-height: 1.4 !important;
}

/* ── Hero stats ── */
.elementor-element-hs1v .elementor-heading-title,
.elementor-element-hs2v .elementor-heading-title,
.elementor-element-hs3v .elementor-heading-title,
.elementor-element-hs4v .elementor-heading-title {
  font-family: var(--osa-serif) !important;
  font-size: 2rem !important;
  font-weight: 300 !important;
  color: var(--osa-gold-light) !important;
  line-height: 1 !important;
}
.elementor-element-hs1l .elementor-heading-title,
.elementor-element-hs2l .elementor-heading-title,
.elementor-element-hs3l .elementor-heading-title,
.elementor-element-hs4l .elementor-heading-title {
  font-family: var(--osa-sans) !important;
  font-size: 0.7rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,0.55) !important;
  margin-top: 0.3rem !important;
}

/* ── Hero headings ── */
.elementor-element-h-h1 .elementor-heading-title {
  font-family: var(--osa-serif) !important;
  font-size: clamp(3rem, 6vw, 5.5rem) !important;
  font-weight: 300 !important;
  color: #F8F6F1 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.01em !important;
}
.elementor-element-7a8c29c .elementor-heading-title {
  font-family: var(--osa-serif) !important;
  font-size: clamp(3rem, 6vw, 5.5rem) !important;
  font-weight: 300 !important;
  color: var(--osa-gold-light) !important;
  font-style: italic !important;
  line-height: 1.1 !important;
}
.elementor-element-h-sub .elementor-text-editor,
.elementor-element-h-sub p {
  color: rgba(255,255,255,0.80) !important;
  font-size: 1.05rem !important;
  max-width: 520px !important;
  line-height: 1.8 !important;
  font-weight: 300 !important;
}

/* ── ISSUE 4: Responsive Design ── */

/* Prevent horizontal overflow globally */
body, html {
  overflow-x: hidden !important;
  max-width: 100vw !important;
}
.elementor-section,
.e-con,
.elementor {
  max-width: 100% !important;
}

/* Container max-width for readability */
.elementor-element-h-why .e-con-inner,
.elementor-element-h-testi .e-con-inner,
.elementor-element-h-svc .e-con-inner,
.elementor-element-h-cta .e-con-inner {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}

/* ── Tablet (max 1024px) ── */
@media (max-width: 1024px) {
  .elementor-element-h-hero {
    min-height: 85vh !important;
    padding: 4rem 2rem 3rem !important;
  }
  .elementor-element-why-cols {
    flex-direction: column !important;
  }
  .elementor-element-t-grid {
    flex-wrap: wrap !important;
  }
  .elementor-element-svc-grid {
    flex-wrap: wrap !important;
  }
  .elementor-element-h-stats {
    flex-wrap: wrap !important;
    gap: 1.5rem !important;
  }
}

/* ── Mobile (max 768px) ── */
@media (max-width: 768px) {
  .elementor-element-h-hero {
    min-height: 100svh !important;
    padding: 3rem 1.25rem 2.5rem !important;
  }
  .elementor-element-h-h1 .elementor-heading-title,
  .elementor-element-7a8c29c .elementor-heading-title {
    font-size: clamp(2.5rem, 8vw, 3.5rem) !important;
  }
  .elementor-element-h-sub .elementor-text-editor,
  .elementor-element-h-sub p {
    font-size: 0.95rem !important;
  }
  .elementor-element-h-btns {
    flex-direction: column !important;
    gap: 0.75rem !important;
  }
  .elementor-element-h-btns .elementor-widget-button {
    width: 100% !important;
  }
  .elementor-element-h-btns .elementor-button {
    width: 100% !important;
    justify-content: center !important;
  }
  .elementor-element-h-trust {
    padding: 1.75rem 1.25rem !important;
  }
  .elementor-element-h-trust > .e-con-inner {
    flex-direction: column !important;
    gap: 0.75rem !important;
    align-items: flex-start !important;
  }
  .elementor-element-why-cols > .e-con-inner {
    flex-direction: column !important;
  }
  .elementor-element-t-grid > .e-con-inner {
    flex-direction: column !important;
  }
  .elementor-element-svc-grid > .e-con-inner {
    flex-direction: column !important;
  }
  .elementor-element-cta-btns > .e-con-inner {
    flex-direction: column !important;
    align-items: center !important;
  }
  .osa-partners-section { padding: 3rem 0 !important; }
}

/* ── Small mobile (max 480px) ── */
@media (max-width: 480px) {
  .elementor-element-h-stats > .e-con-inner {
    flex-direction: column !important;
    gap: 1rem !important;
  }
}

/* ── ISSUE 5: Performance / CLS prevention ── */

/* Reserve space for hero to prevent CLS */
.elementor-element-h-hero {
  contain: layout style !important;
}

/* Lazy image loading hint */
.elementor-image img:not([loading]) {
  loading: lazy !important;
}

/* GPU composite hint for marquee */
.osa-marquee-row {
  will-change: transform !important;
  contain: layout !important;
}

/* Prevent layout shift from font load */
@font-face {
  font-family: 'Cormorant Garamond';
  font-display: swap;
}
@font-face {
  font-family: 'DM Sans';
  font-display: swap;
}

/* ── iOS / Safari cross-browser fixes ── */
* { -webkit-tap-highlight-color: transparent; }
input, textarea, select { font-size: max(16px, 1em) !important; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.elementor-element-h-hero {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

/* ── Divider gold color ── */
.elementor-element-why-div .elementor-divider-separator,
.elementor-element-t-div .elementor-divider-separator,
.elementor-element-svc-div .elementor-divider-separator {
  border-color: var(--osa-gold) !important;
}

/* ── Service section cards (dark bg) ── */
.elementor-element-sp1h .elementor-heading-title,
.elementor-element-sp2h .elementor-heading-title,
.elementor-element-sp3h .elementor-heading-title,
.elementor-element-sp4h .elementor-heading-title {
  font-family: var(--osa-serif) !important;
  font-size: 1.35rem !important;
  font-weight: 400 !important;
  color: #F8F6F1 !important;
  margin-bottom: 0.75rem !important;
}
.elementor-element-sp1 .elementor-text-editor p,
.elementor-element-sp2 .elementor-text-editor p,
.elementor-element-sp3 .elementor-text-editor p,
.elementor-element-sp4 .elementor-text-editor p {
  color: rgba(255,255,255,0.62) !important;
  font-size: 0.875rem !important;
  line-height: 1.7 !important;
}
.elementor-element-svc-p .elementor-text-editor p {
  color: rgba(255,255,255,0.65) !important;
  font-size: 0.95rem !important;
}

/* Service cards — subtle border/hover */
.elementor-element-sp1,
.elementor-element-sp2,
.elementor-element-sp3,
.elementor-element-sp4 {
  border: 1px solid rgba(184,151,58,0.18) !important;
  transition: border-color 0.3s, background 0.3s !important;
}
.elementor-element-sp1:hover,
.elementor-element-sp2:hover,
.elementor-element-sp3:hover,
.elementor-element-sp4:hover {
  border-color: rgba(184,151,58,0.5) !important;
  background: rgba(255,255,255,0.06) !important;
}

/* ── CTA section ── */
.elementor-element-cta-h2 .elementor-heading-title {
  font-family: var(--osa-serif) !important;
  font-size: clamp(2.2rem, 4.5vw, 3.5rem) !important;
  font-weight: 300 !important;
  color: #F8F6F1 !important;
  line-height: 1.2 !important;
}

/* ── Remove Astra default header since nav is custom ── */
#masthead { display: none !important; }
.ast-header-break-point .main-header-bar { display: none !important; }/* End custom CSS */