/* Keep the Elementor-authored homepage pricing CTA centred in the live view. */
body.home .ekit-btn-wraper:has(>.ekit_creative_button[href*="/pricing-plan/"]){text-align:center!important}
/* Public Elementor footer only: independent of portal-only site-design CSS. */
body .elementor-412 .ekit_social_media > li > a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  line-height: 1 !important;
}
body .elementor-412 .ekit_social_media > li > a > i {
  display: block !important;
  margin: 0 !important;
  line-height: 1 !important;
}

/* The original newsletter design has one underline on each input,
   not a detached border beneath the whole widget. */
body .elementor-412 .footer-form {
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Keep the two fields and native submit in one left-aligned row. */
body .elementor-412 .footer-form .wpcf7-form .form-group {
  position: relative;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) 34px !important;
  align-items: start !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  overflow: visible !important;
}
body .elementor-412 .footer-form .form-group > .text-field {
  grid-column: 1;
  grid-row: 1;
}
body .elementor-412 .footer-form .form-group > .email-field {
  grid-column: 2;
  grid-row: 1;
}
body .elementor-412 .footer-form .form-group > :is(.text-field, .email-field),
body .elementor-412 .footer-form .form-group > :is(.text-field, .email-field) p,
body .elementor-412 .footer-form .form-group > :is(.text-field, .email-field) .wpcf7-form-control-wrap {
  display: block;
  box-sizing: border-box;
  min-width: 0 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
body .elementor-412 .footer-form .form-group > :is(.text-field, .email-field) input {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 34px !important;
  margin: 0 !important;
  padding: 4px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}
/* A highlighted underline replaces the rectangular focus box. */
body .elementor-412 .footer-form .form-group > :is(.text-field, .email-field) input:focus {
  border-bottom-color: #32cd32 !important;
  box-shadow: 0 1px 0 #32cd32 !important;
}
/* CF7 inserts protection markup inside this wrapper. Flatten the layout,
   not the controls: any visible challenge keeps its own full-width row. */
body .elementor-412 .footer-form .form-group > .newsletter-btn {
  display: contents !important;
}
body .elementor-412 .footer-form .newsletter-btn::before,
body .elementor-412 .footer-form .newsletter-btn::after {
  content: none !important;
}
body .elementor-412 .footer-form .newsletter-btn > p {
  position: absolute;
  margin: 0 !important;
}
body .elementor-412 .footer-form .newsletter-btn > br {
  display: none;
}
body .elementor-412 .footer-form .newsletter-btn > .wpcf7-submit {
  grid-column: 3;
  grid-row: 1;
  position: relative !important;
  justify-self: end;
  inset: auto !important;
  box-sizing: border-box !important;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 1 !important;
}
body .elementor-412 .footer-form .newsletter-btn > .cf7-cf-turnstile {
  grid-column: 1 / -1;
  grid-row: 2;
  width: 100%;
  margin: 0 !important;
}
body .elementor-412 .footer-form .newsletter-btn > .wpcf7-spinner {
  grid-column: 3;
  grid-row: 1;
  place-self: center;
  margin: 0;
  pointer-events: none;
}
body .elementor-412 .footer-form .wpcf7-submit:focus-visible {
  outline: 2px solid #32cd32;
  outline-offset: 3px;
}
@media (max-width: 600px) {
  body .elementor-412 .footer-form .wpcf7-form .form-group {
    gap: 8px !important;
  }
  body .elementor-412 .footer-form .form-group > :is(.text-field, .email-field) input {
    font-size: 14px !important;
  }
}

/* Keep the administrator-only SEO launcher clear of the cookie control.
   Do not override an administrator's explicitly dragged inline position. */
body.logged-in:has(.cookieadmin_re_consent) #siteseo-universal-metabox-icon:not([style*="left"]) {
  left: 80px;
}

/* One text family for every role's portal, including connected forms and the
   native calendar document. Preserve font sizes, weights, spacing and icons. */
body:is(.ogvs-clean-portal-shell, .ogvs-design-preview, .odg-native-calendar),
body:is(.ogvs-clean-portal-shell, .ogvs-design-preview, .odg-native-calendar) :is(.ogvs-page-frame, .ogvs-page, .ogvs-page-sidebar, .ogvs-compact-footer) {
  --ogvs-body-font: "Inter Tight", Arial, sans-serif !important;
  --ogvs-heading-font: "Inter Tight", Arial, sans-serif !important;
  --ogvs-button-font: "Inter Tight", Arial, sans-serif !important;
  font-family: "Inter Tight", Arial, sans-serif !important;
}
body:is(.ogvs-clean-portal-shell, .ogvs-design-preview, .odg-native-calendar) :is(div, section, article, aside, nav, header, footer, form, fieldset, h1, h2, h3, h4, h5, h6, p, a, button, input, select, option, optgroup, textarea, label, legend, summary, li, dt, dd, th, td, caption, strong, b, em, small, blockquote, output, span):not(:where(.dashicons, .fa, .fas, .far, .fab, .fal, .fad, .material-icons, .material-symbols-outlined, [class^="am-icon-"], [class*=" am-icon-"], [class^="el-icon"], [class*=" el-icon"], [class^="eicon-"], [class*=" eicon-"], [class^="icon-"], [class*=" icon-"], [data-icon], [aria-hidden="true"])) {
  font-family: "Inter Tight", Arial, sans-serif !important;
}
/* Native scheduling has its own font variable on nested components and
   teleported dropdowns. Set that text token, not its separate icon font. */
body .amelia-v2-booking,
body .amelia-v2-booking *,
body .amelia-v2-booking + .el-popper,
body.odg-native-calendar .el-popper {
  --am-font-family: "Inter Tight", Arial, sans-serif !important;
}

/* Portal scheduling cabinets: retain native employee/customer controls without
   a second tall portal shell. Booking calendars and authentication are unchanged. */
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container.am-cap__wrapper {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: none;
  height: auto;
  min-height: 0;
  margin: 24px 0;
  border: 1px solid #dce3e5;
  border-radius: 12px;
  box-shadow: none;
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container.am-cap__wrapper.am-auth {
  border: 0;
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs-sb {
  --am-c-sb-text: #222;
  --am-c-sb-bgr: #fff;
  position: static;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  width: 100% !important;
  max-width: none;
  min-height: 0;
  padding: 16px !important;
  background: #fff;
  color: #222;
  border-radius: 12px 12px 0 0;
  border-bottom: 1px solid #dce3e5;
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs-sb__page-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  overflow: visible;
  padding: 0;
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs-sb__footer {
  position: static;
  display: flex;
  align-items: center;
  width: auto;
  margin-left: auto;
}
/* The portal account menu owns sign-out. Hide only the duplicate cabinet control;
   do not change native authentication or sign-out outside these portal pages. */
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs-sb__footer .am-fs-sb__page[aria-label="Log out"] {
  display: none !important;
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs-sb__page-divider,
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs-sb__footer .am-fs-sb__page:has(.am-icon-dashboard) {
  display: none;
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs-sb__page {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  min-height: 42px;
  max-height: none;
  width: auto;
  padding: 10px 14px;
  margin: 0;
  border: 1px solid #cad6cf;
  border-radius: 24px;
  background: #fff;
  color: #222;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs-sb__page.selected {
  background: #e8f7e8;
  border-color: #32cd32;
  color: #176227;
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs-sb__page:not(.is-disabled):is(:hover, :focus-visible) {
  background: #ddf2df;
  border-color: #176227;
  box-shadow: 0 0 0 2px rgba(23,98,39,.13);
  color: #145523;
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs-sb__page-inner {
  width: auto;
  height: auto;
  gap: 8px;
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs-sb__page-heading {
  font-weight: 600;
  color: inherit;
}
/* Native collapsed mode omits headings. Reuse its accessible label so those
   controls remain readable without changing component state or event handlers. */
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs-sb__page[aria-label]:not(:has(.am-fs-sb__page-heading))::after {
  content: attr(aria-label);
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs__main {
  width: 100%;
  max-width: none;
  border-radius: 0 0 12px 12px;
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs__main-inner,
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs__main-content.am-cap,
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs__main-content.am-capi,
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-fs__main-content.am-caep {
  height: auto;
  min-height: 0;
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-cappf,
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-caepf {
  position: static;
  background: #fff;
}
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-capai__footer,
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-capei__footer,
body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container .am-capei-atti__footer {
  position: static;
  width: 100%;
  margin-top: 20px;
  text-align: right;
}
@media (max-width: 600px) {
  body:is(.ogvs-instructor-schedule, .ogvs-student-schedule) .amelia-v2-booking #amelia-container.am-cap__wrapper {
    margin: 16px 0;
  }
}

/* Package action: separate booking progress from the native clickable control. */
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container .am-sc__top[data-ogvs-package-card] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px 24px;
}
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container [data-ogvs-package-card] > .am-sc__top-menu {
  grid-column: 1;
  grid-row: 1;
  width: auto;
  min-width: 0;
}
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container .ogvs-package-booked-count {
  grid-column: 1;
  grid-row: 2;
  color: #52616b;
  font: inherit;
  font-size: 14px;
  line-height: 1.5;
}
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action] {
  /* Match the approved scheduling-flow primary/secondary button standard. */
  --odg-fill: #32cd32;
  --odg-sweep: #fff;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  box-sizing: border-box;
  grid-column: 2;
  grid-row: 1 / span 2;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 160px;
  min-height: 46px;
  max-width: 100%;
  height: auto;
  margin: 0;
  padding: 10px 22px !important;
  border: 1px solid #32cd32 !important;
  border-radius: 999px !important;
  background: var(--odg-fill) !important;
  color: #202427 !important;
  font: inherit;
  font-size: 15px !important;
  font-weight: 650 !important;
  line-height: 1.4 !important;
  cursor: pointer;
  transform: none !important;
  box-shadow: none !important;
  transition: border-color 220ms ease;
}
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action] .am-button__inner {
  display: flex;
  gap: 10px;
  color: inherit !important;
}
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action] .am-button__inner * {
  color: inherit !important;
}
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action] .ogvs-package-action-label { order: -1; }
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action] .am-sc__capacity {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action="view"] {
  --odg-fill: #fff;
  --odg-sweep: #e8f7e8;
  border-color: #c7d1ca !important;
}
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action]::before {
  content: "";
  position: absolute;
  z-index: -1;
  right: 5px;
  top: 5px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--odg-sweep);
  transform: scale(0);
  transition: transform 400ms ease-in;
  pointer-events: none;
}
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action]:focus-visible {
  outline: 3px solid #218522;
  outline-offset: 3px;
}
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action]:enabled:not([aria-disabled="true"]):focus-visible::before {
  transform: scale(24);
}
@media (hover: hover) and (pointer: fine) {
  body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action]:enabled:not([aria-disabled="true"]):hover::before {
    transform: scale(24);
  }
  body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action]:enabled:not([aria-disabled="true"]):hover {
    border-color: #32cd32 !important;
  }
}
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action]:disabled,
body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action][aria-disabled="true"] {
  opacity: .55;
  cursor: not-allowed;
}
@media (max-width: 600px) {
  body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container .am-sc__top[data-ogvs-package-card] {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }
  body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action] {
    grid-column: 1;
    grid-row: 3;
    justify-self: start;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action],
  body.ogvs-student-schedule [data-ogvs-package-actions] #amelia-container button[data-ogvs-package-action]::before { transition: none; }
}

/* OdiGreen portal focus treatment (all owned portals and selection-only frames).
 * Pointer clicks keep the approved selected/hover state; keyboard navigation
 * keeps a contrasting brand ring. No native availability or actions change.
 */
body:is(.ogvs-clean-portal-shell, .ogvs-design-preview, .odg-native-calendar) {
  --odg-control-focus: #218522;
}
html[data-theme="dark"] body.odg-native-calendar,
body.ogvs-clean-portal-shell[data-ogvs-resolved-theme="dark"],
.ogvs-clean-portal-shell [data-ogvs-theme="dark"],
.ogvs-design-preview [data-ogvs-theme="dark"] {
  --odg-control-focus: #8fe18f;
}
body:is(.ogvs-clean-portal-shell, .ogvs-design-preview, .odg-native-calendar)
:is(a[href], button, input[type="button"], input[type="submit"], input[type="reset"], summary, [role="button"], [role="tab"], [role="link"], [tabindex]):focus {
  outline: 3px solid var(--odg-control-focus, #218522) !important;
  outline-offset: 3px !important;
}
@supports selector(:focus-visible) {
  body:is(.ogvs-clean-portal-shell, .ogvs-design-preview, .odg-native-calendar)
  :is(a[href], button, input[type="button"], input[type="submit"], input[type="reset"], summary, [role="button"], [role="tab"], [role="link"], [tabindex]):focus:not(:focus-visible) {
    outline: none !important;
  }
}
/* Amelia/Element Plus also draw their own focus shadows/borders. Keep the
 * correction in our shared stylesheet, never in the third-party plugin. */
body:is(.ogvs-clean-portal-shell, .ogvs-design-preview, .odg-native-calendar)
:is(.am-button, .el-button):focus {
  box-shadow: none !important;
}
body:is(.ogvs-clean-portal-shell, .ogvs-design-preview, .odg-native-calendar)
.am-advsc__slots-item:focus .am-advsc__slots-item__inner {
  --am-c-advsc-slot-border: #32cd32 !important;
  border-color: #32cd32 !important;
}
@media (forced-colors: active) {
  body:is(.ogvs-clean-portal-shell, .ogvs-design-preview, .odg-native-calendar) {
    --odg-control-focus: Highlight;
  }
}

/* Lesson review: left-column facts are titles; right-column values stay unchanged. */
.odg-private-owned .odg-pb-review-facts .odg-pb-facts dt {
  font-weight: 700;
  color: var(--odg-text, #202427);
}

/* Keep appointment facts together instead of spanning the full portal card. */
body.ogvs-student-schedule .odg-private-appointment .odg-pa-facts {
  width: 100%;
  max-width: 40rem;
}
body.ogvs-student-schedule .odg-private-appointment .odg-pa-facts dd {
  text-align: left;
}
