/* Native TELC page blocks and the shared Core-backed calendar. */
.lc-telc-page { color: #333; font-family: Sora, sans-serif; }
.lc-telc-page :where(h1,h2,h3,p,ul,figure) { margin: 0; }
.lc-telc-page .wp-block-group { box-sizing: border-box; }
.lc-telc-hero { min-height: 55vh; display: flex; align-items: center; justify-content: center; padding: 7% 0 12%; background: #f8cb9905 url('../images/telc/hero-bg.svg') center / cover no-repeat; }
.lc-telc-hero--en { padding-top: 2%; }
.lc-telc-hero-inner { width: 95%; display: flex; flex-direction: column; align-items: center; gap: 20px; padding-bottom: 48px; text-align: center; }
.lc-telc-page .lc-telc-eyebrow { font: 500 14px/1 Sora, sans-serif; letter-spacing: 1px; text-transform: uppercase; padding-left: 5px; }
.lc-telc-page .lc-telc-title { font: 300 56px/1.3 Sora, sans-serif; letter-spacing: 0; word-spacing: -1px; color: #282725; }
.lc-telc-title .lc-accent { font-family: 'DM Sans', sans-serif; font-size: 68px; line-height: 1.2; font-weight: 500; font-style: italic; }
.lc-telc-page .lc-telc-lead { width: 40%; margin-bottom: .9rem; color: #706f6e; font: 400 14px/1.5 Sora, sans-serif; }
.lc-telc-locations-native { position: relative; margin-top: -12%; padding: 2% 10px calc(8% + 10px); background: #fff; border-radius: 150px 150px 0 0; }
.lc-telc-location-tabs { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; padding: 10px 0 0; margin-bottom: 40px; }
.lc-telc-location-tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 5px; border: 0; background: #f5f5f5; border-radius: 30px; padding: 15px 35px; font: 500 18px/1.5 Sora, sans-serif; color: #888786; cursor: pointer; }
.lc-telc-location-tabs button svg { width: 18px; height: 18px; color: #55595c; }
.lc-telc-location-tabs button:hover { color: #282725; background: #fbe5cc; }
.lc-telc-location-tabs button[aria-selected="true"] { color: #282725; border: 1px solid #ed7d00; background: #fff; }
.lc-telc-location-tabs button[aria-selected="true"] svg { color: #ed7d00; }
.lc-telc-location-panel[hidden] { display: none; }
.lc-telc-locations-native:not(.lc-telc-locations-native--ready) .lc-telc-partner-panel { display: none; }
.lc-telc-catalogue__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.lc-telc-catalogue__card { display: flex; flex-direction: column; justify-content: center; align-items: stretch; gap: 20px; padding: 20px; border-radius: 20px; box-shadow: 0 0 10px #0000000d; background: #f5f5f500; }
.lc-telc-catalogue__card:hover { background: #fdf2e5; }
.lc-telc-catalogue__format { align-self: flex-start; padding: 5px 10px; border-radius: 20px; color: #ca8500; background: #fff0db; font: 400 14px/1 Sora,sans-serif; }
.lc-telc-catalogue__format--digital { color: #c54939; background: #ffe2de; }
.lc-telc-page .lc-telc-catalogue__title { color: inherit; font: 400 32px/1 Sora,sans-serif; letter-spacing: -1px; }
.lc-telc-page .lc-telc-catalogue__description { color: #4c4b49; font: 400 16px/1 Sora,sans-serif; letter-spacing: -1px; }
.lc-telc-page .lc-telc-catalogue__details { list-style: none; border-top: 1px solid #b7b7b6; padding: 3% 0; display: grid; grid-auto-rows: 1fr; gap: 10px; }
.lc-telc-catalogue__details li { display: flex; align-items: center; gap: 10px; font: 400 16px/1.2 Sora,sans-serif; }
.lc-telc-catalogue__details li > span { margin: 8px 0 5px; }
.lc-telc-catalogue__details img { width: 24px; height: 24px; flex-shrink: 0; object-fit: contain; }
.lc-telc-catalogue__bottom { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.lc-telc-page .lc-telc-catalogue__price { min-width: 0; font: 400 32px/1 Sora,sans-serif; letter-spacing: 0; }
.lc-telc-catalogue__price span { font-size: .6em; vertical-align: middle; }
.lc-telc-catalogue__booking { display: inline-flex; min-width: 0; align-items: center; justify-content: center; gap: 5px; padding: 12px 24px; color: #ed7d00; font: 400 15px/1 Sora,sans-serif; text-align: center; text-decoration: none; }
.lc-telc-catalogue__booking svg { width: 1em; height: 1em; flex-shrink: 0; fill: currentColor; }
.lc-telc-catalogue__booking:hover { color: #ed7d00; }
.lc-telc-catalogue > #lc-telc-exam-calendar { margin-top: calc(4% + 20px); }
.lc-telc-partner-panel { padding: 10px; }
.lc-telc-partner { display: flex; align-items: center; gap: 20px; border: 1px solid #f8f0e8; border-radius: 20px; padding: 1%; background: #fdfbf8; }
.lc-telc-partner-art { width: calc((100% - 20px) * .3); flex: 0 0 calc((100% - 20px) * .3); min-height: 39vh; display: flex; align-items: center; }
.lc-telc-partner-art img { display: block; width: 100%; height: auto; }
.lc-telc-partner-copy { width: calc((100% - 20px) * .7); display: flex; flex-direction: column; gap: 20px; align-items: flex-start; margin: 0; padding: 10px; }
.lc-telc-page .lc-telc-partner-badge { padding: 5px 10px; border-radius: 20px; background: #ffe2de; color: #c54939; font: 500 14px/1 Sora,sans-serif; }
.lc-telc-page .lc-telc-partner-title { color: inherit; font: 500 32px/1 Sora,sans-serif; letter-spacing: 0; }
.lc-telc-page .lc-telc-partner-intro { font: 500 18px/1.2 Sora,sans-serif; letter-spacing: -.4px; }
.lc-telc-partner-intro strong { font-weight: 700; }
.lc-telc-page .lc-telc-partner-description { font: 400 16px/1.4 Sora,sans-serif; }
.lc-telc-partner-button a { display: inline-flex; align-items: center; gap: 10px; padding: 15px 30px; border-radius: 300px; background: #ed7d00; color: #fff; font: 500 18px/1 Sora,sans-serif; text-decoration: none; }
.lc-telc-partner-button svg { width: 1em; height: 1em; }
.lc-telc-page .lc-telc-partner-note { display: flex; align-items: center; gap: 12px; font: 400 16px/1.5 Sora,sans-serif; }
.lc-telc-partner-note img { flex: 0 0 24px; }
.lc-telc-calendar { font: 400 16px/1.5 Sora,sans-serif; color: #282725; scroll-margin-top: 20px; }
.lc-telc-page .lc-telc-calendar { color: inherit; }
.lc-telc-calendar :where(h2,h3,p,ul) { margin: 0; }
.lc-telc-calendar .lc-telc-calendar__step { display: block; color: inherit; font: 500 14px/1.5 Sora,sans-serif; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 8px; }
.lc-telc-calendar > .lc-telc-calendar__step { padding-left: 5px; line-height: 1; margin-bottom: 2%; }
.lc-telc-calendar__tabs { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 18px; margin-bottom: 32px; }
.lc-telc-calendar__tabs button { border: 0; border-radius: 20px; background: #fcf7f2; padding: 8px 80px; color: #282725; font: inherit; cursor: pointer; }
.lc-telc-calendar__tabs button:hover,.lc-telc-calendar__tabs button[aria-selected="true"] { background: #fef6f0; }
.lc-telc-calendar__tabs button[aria-selected="true"] { border: 1px solid #ed7d00; }
.lc-telc-calendar__select { display: none; }
.lc-telc-calendar__panel { display: flex; flex-wrap: wrap; align-items: stretch; gap: 80px; padding-bottom: 8%; }
.lc-telc-calendar__left,.lc-telc-calendar__right { background: #fff; border: 1px solid #ececec; border-radius: 20px; padding: 28px 32px; box-sizing: border-box; }
.lc-telc-calendar__left { flex: 1 1 420px; min-width: 0; }
.lc-telc-calendar__right { display: flex; flex-direction: column; flex: 0 1 400px; max-width: 450px; }
.lc-telc-calendar__header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.lc-telc-calendar .lc-telc-calendar__month { color: inherit; font: 400 24px/1.5 Sora,sans-serif; letter-spacing: -.03em; }
.lc-telc-calendar__arrows { display: flex; gap: 10px; }
.lc-telc-calendar__arrows button { width: 36px; height: 36px; border: none; border-radius: 50%; background: #f5f5f5; color: #444; padding: 0; font: 700 18px/1 Sora,sans-serif; cursor: pointer; }
.lc-telc-calendar__arrows button:hover { background: #ebebeb; }
.lc-telc-calendar__weekdays { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 0 16px; text-align: center; font-size: 13px; color: #777; margin-bottom: 20px; }
.lc-telc-calendar__grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); align-items: start; gap: 12px 10px; }
.lc-telc-calendar__cell { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; min-height: 46px; }
.lc-telc-calendar__day { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; margin: auto; border: 0; border-radius: 50%; font: 500 16px/1 Sora,sans-serif; background: transparent; color: inherit; cursor: pointer; }
.lc-telc-calendar__day:disabled { cursor: default; opacity: 1; }
.lc-telc-calendar__cell--available .lc-telc-calendar__day,.lc-telc-calendar__badge { background: #e5f7ea; color: #249b4a; }
.lc-telc-calendar__cell--fast .lc-telc-calendar__day,.lc-telc-calendar__cell--fast .lc-telc-calendar__badge { background: #fdeedd; color: #db8a2c; }
.lc-telc-calendar__cell--full .lc-telc-calendar__day,.lc-telc-calendar__cell--full .lc-telc-calendar__badge { background: #fce8e8; color: #e15252; }
.lc-telc-calendar__day[aria-pressed="true"] { background: #f58200; color: #fff; }
.lc-telc-calendar__badge { border-radius: 20px; padding: 2px 9px; font: 600 11px/1.5 Sora,sans-serif; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.lc-telc-page .lc-telc-calendar[data-locale="en"] .lc-telc-calendar__cell { gap: 2px; }
.lc-telc-page .lc-telc-calendar[data-locale="en"] .lc-telc-calendar__badge { font-size: 9px; line-height: 1.4; padding: 1px 5px; border-radius: 6px; background: #28a745; color: #fff; }
.lc-telc-page .lc-telc-calendar[data-locale="en"] .lc-telc-calendar__cell--fast .lc-telc-calendar__badge { background: #ffc107; color: #333; }
.lc-telc-page .lc-telc-calendar[data-locale="en"] .lc-telc-calendar__cell--full .lc-telc-calendar__badge { background: #ff4d4d; }
.lc-telc-calendar__right > h3 { font: 500 20px/1.2 Sora,sans-serif; color: #222; margin: 0 0 34px; }
.lc-telc-calendar__legend { display: flex; flex-direction: column; flex: 1; gap: 24px; list-style: none; padding: 0 0 40px; }
.lc-telc-calendar__legend li { display: flex; align-items: flex-start; gap: 16px; }
.lc-telc-calendar__legend strong { display: block; margin-bottom: 5px; font-size: 15px; font-weight: 600; color: #222; }
.lc-telc-calendar__legend p { font: 400 13px/1.5 Sora,sans-serif; color: #888; }
.lc-telc-calendar__dot { width: 12px; height: 12px; flex: 0 0 12px; border-radius: 50%; margin-top: 5px; }
.lc-telc-calendar__dot--available { background: #28a745; }
.lc-telc-calendar__dot--fast { background: #ffc107; }
.lc-telc-calendar__dot--full { background: #ff4d4d; }
.lc-telc-calendar__confirm-wrap { margin-top: 40px; }
.lc-telc-calendar__confirm { display: block; width: 302px; max-width: 100%; border: 0; padding: 22px; text-align: center; box-sizing: border-box; background: #f58200; color: #fff; border-radius: 60px; text-decoration: none; font: 500 18px/1.5 Sora,sans-serif; cursor: pointer; }
.lc-telc-calendar__confirm:hover { color: #fff; background: #f58200; opacity: .9; }
.lc-telc-page .lc-telc-calendar__confirm { position: relative; }
.lc-telc-page .lc-telc-calendar__confirm::before { content: ""; position: absolute; left: 0; right: 0; top: -45px; border-top: 1px solid #eee; }
.lc-telc-calendar__day--past:disabled { opacity: .3; }
.lc-telc-page :where(a,button,select):focus-visible,.lc-telc-calendar :where(a,button,select):focus-visible { outline: 2px solid #a64e00; outline-offset: 3px; }
@media (max-width: 1200px) {
  .lc-telc-hero { padding: 11% 0 0; }
  .lc-telc-locations-native { margin-top: 0; }
  .lc-telc-hero--en + .lc-telc-locations-native { padding-top: 4%; padding-bottom: 10px; }
}
@media (max-width: 1024px) {
  .lc-telc-page .lc-telc-eyebrow { font-size: 12px; }
  .lc-telc-page .lc-telc-partner-intro { font-size: 16px; }
  .lc-telc-calendar > .lc-telc-calendar__step { font-size: 12px; }
}
@media (max-width: 768px) {
  .lc-telc-calendar__panel { gap: 35px; }
  .lc-telc-calendar__left,.lc-telc-calendar__right { padding: 20px; max-width: 100%; }
  .lc-telc-calendar .lc-telc-calendar__month { font-size: 20px; }
  .lc-telc-calendar__weekdays { font-size: 12px; margin-bottom: 15px; }
  .lc-telc-calendar__cell { gap: 3px; min-height: 50px; }
  .lc-telc-calendar__day { width: 36px; height: 36px; font-size: 14px; }
  .lc-telc-calendar__badge { font-size: 9px; padding: 1px 6px; }
  .lc-telc-calendar__right > h3 { font-size: 17px; margin-bottom: 28px; }
  .lc-telc-calendar__legend { gap: 18px; padding-bottom: 25px; }
  .lc-telc-calendar__legend strong { font-size: 14px; }
  .lc-telc-calendar__legend p { font-size: 12px; }
  .lc-telc-calendar__confirm { width: 100%; padding: 18px; border-radius: 50px; font-size: 16px; }
}
@media (max-width: 767px) {
  .lc-telc-hero { padding: 8% 1% 3%; }
  .lc-telc-hero-inner { width: 100%; padding-bottom: 5vw; }
  .lc-telc-page .lc-telc-eyebrow { font-size: 12px; line-height: 1.2; }
  .lc-telc-page .lc-telc-title { font-size: 44px; }
  .lc-telc-title .lc-accent { font-size: 44px; }
  .lc-telc-page .lc-telc-lead { width: 345px; max-width: 100%; font-size: 16px; line-height: 1.625; }
  .lc-telc-locations-native { padding: 3% 10px 10px; border-radius: 0; }
  /* Source section padding is based on the width remaining after its side margins. */
  .lc-telc-hero--en + .lc-telc-locations-native { margin-inline: 1%; padding: calc(8% * .98) 10px calc(3% * .98 + 10px); }
  .lc-telc-location-tabs { margin-bottom: 30px; }
  .lc-telc-location-tabs button { font-size: 14px; line-height: 21px; padding: 8px 25px; }
  .lc-telc-location-tabs button svg { width: 14px; height: 14px; }
  .lc-telc-catalogue__grid { grid-template-columns: minmax(0,1fr); }
  .lc-telc-page .lc-telc-catalogue__title { font-size: 28px; line-height: 42px; }
  .lc-telc-page .lc-telc-catalogue__description { font-size: 14px; line-height: 22.75px; letter-spacing: 0; }
  .lc-telc-catalogue__format { line-height: 18px; }
  .lc-telc-page .lc-telc-catalogue__details { padding: 0; }
  .lc-telc-calendar > .lc-telc-calendar__step { text-align: center; padding: 0; font-size: 14px; line-height: 1.2; }
  .lc-telc-calendar__tabs { display: none; }
  .lc-telc-calendar__select { display: block; width: calc(100% - 20px); margin: 0 10px 48px; appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23e8872a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 14px center; border: 2px solid #e8872a; border-radius: 12px; padding: 12px 44px 12px 18px; font: 600 15px/1.5 Sora,sans-serif; color: #282725; }
  .lc-telc-partner { flex-direction: column; padding: 6% 0 0; gap: 0; }
  .lc-telc-partner-art { width: 100%; min-height: 25vh; height: 25vh; flex-basis: auto; order: 2; }
  .lc-telc-partner-art img { max-height: 25vh; object-fit: contain; }
  .lc-telc-partner-copy { width: 100%; padding: 2% 5%; align-items: center; text-align: center; }
  .lc-telc-page .lc-telc-partner-badge { font-size: 12px; line-height: 18px; }
  .lc-telc-page .lc-telc-partner-intro { font-size: 14px; }
  .lc-telc-page .lc-telc-partner-description,.lc-telc-page .lc-telc-partner-note { font-size: 12px; }
  .lc-telc-partner-button a { font-size: 13px; padding: 15px 10px; }
}

/* Elementor omits this persisted classic-background image from post-13/14.css. */
:is(.elementor-13,.elementor-14) .elementor-element.elementor-element-545446db {
  min-height: 55vh;
  background-image: url('/wp-content/uploads/2026/09/hero-bg.svg');
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
