/* Lao calendar: the interactive page ([mxt_calendar]) and the tear-off card ([mxt_cal_card]). */
.mxt-ci, .mxt-moon { display: inline-block; flex: 0 0 auto; vertical-align: middle; }
.mxt-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #2E5FA8; }
.mxt-dot--public_holiday { background: #D0161F; }
.mxt-dot--festival { background: #E0457B; }
.mxt-dot--bank_holiday { background: #B4530A; }

/* ---------- page ---------- */
.mxt-cal { font-family: Phetsarath, sans-serif; color: #15181C; }
.mxt-cal .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.mxt-cal button { font-family: inherit; }
.mxt-cal__plain { margin: 0; padding-left: 18px; font-size: 15px; line-height: 1.6; }

.mxt-cal__today { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 12px; margin-bottom: 18px; }
.mxt-cal .mxt-cal__tile {
    display: flex; align-items: center; gap: 12px; width: 100%; margin: 0; padding: 14px 16px; text-align: left; white-space: normal;
    color: #15181C; background: #fff; border: 1px solid #E4DCCB; border-radius: 16px; cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.mxt-cal .mxt-cal__tile:hover, .mxt-cal .mxt-cal__tile:focus { color: #15181C; background: #fff; border-color: #D9A21B; transform: translateY(-2px); box-shadow: 0 10px 22px rgba(15, 43, 36, .1); }
.mxt-cal .mxt-cal__tile--today { color: #F5F0E4; background: linear-gradient(135deg, #173F35, #0F2B24); border-color: #173F35; }
.mxt-cal .mxt-cal__tile--today:hover, .mxt-cal .mxt-cal__tile--today:focus { color: #F5F0E4; background: linear-gradient(135deg, #1D4D41, #0F2B24); }
.mxt-cal__tile span { display: block; min-width: 0; }
.mxt-cal__tile small { display: block; font-size: 12px; line-height: 1.35; opacity: .8; }
.mxt-cal__tile b { display: block; font-size: 17px; line-height: 1.35; }
.mxt-cal__tile--today b { font-size: 19px; color: #F3C95B; }

.mxt-cal__main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 330px); gap: 22px; align-items: start; }
.mxt-cal__bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.mxt-cal__title { flex: 1 1 auto; text-align: center; }
.mxt-cal__title b { display: block; font-size: 28px; line-height: 1.25; }
.mxt-cal__title small { display: block; font-size: 13px; color: #5C665F; }
.mxt-cal .mxt-cal__nav {
    width: 46px; height: 46px; margin: 0; padding: 0; font-size: 26px; line-height: 1; color: #173F35;
    background: #fff; border: 1px solid #CFC5AE; border-radius: 50%; cursor: pointer; transition: background-color .15s ease, color .15s ease;
}
.mxt-cal .mxt-cal__nav:hover, .mxt-cal .mxt-cal__nav:focus { color: #F5F0E4; background: #173F35; border-color: #173F35; }
.mxt-cal__tools { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 10px; }
.mxt-cal .mxt-cal__now, .mxt-cal .mxt-cal__year {
    min-height: 38px; margin: 0; padding: 6px 14px; font: 700 13px/1.2 Phetsarath, sans-serif; color: #173F35;
    background: #fff; border: 1px solid #CFC5AE; border-radius: 999px; cursor: pointer;
}
.mxt-cal .mxt-cal__now:hover, .mxt-cal .mxt-cal__now:focus { color: #0F2B24; background: #F3C95B; border-color: #F3C95B; }
.mxt-cal__months { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px; margin-top: 14px; }
.mxt-cal .mxt-cal__months button {
    margin: 0; padding: 7px 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font: 400 12px/1.2 Phetsarath, sans-serif; color: #5C665F; background: transparent; border: 0; border-radius: 8px; cursor: pointer;
}
.mxt-cal .mxt-cal__months button:hover, .mxt-cal .mxt-cal__months button:focus { color: #173F35; background: #F4EEDD; }
.mxt-cal .mxt-cal__months button[aria-selected="true"] { font-weight: 700; color: #F5F0E4; background: #173F35; }

.mxt-cal__head, .mxt-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.mxt-cal__head { margin-top: 14px; text-align: center; }
.mxt-cal__head b { display: block; font-size: 14px; }
.mxt-cal__head small { display: block; font-size: 11px; color: #5C665F; }
.mxt-cal__head .is-sun, .mxt-cal__head .is-sun small { color: #D0161F; }
.mxt-cal__grid { margin-top: 8px; }
.mxt-cal.is-left .mxt-cal__grid { animation: mxt-cal-left .28s ease; }
.mxt-cal.is-right .mxt-cal__grid { animation: mxt-cal-right .28s ease; }
@keyframes mxt-cal-left { from { opacity: 0; transform: translateX(24px); } }
@keyframes mxt-cal-right { from { opacity: 0; transform: translateX(-24px); } }
.mxt-cal__cell { min-height: 92px; }
.mxt-cal .mxt-cal__grid button.mxt-cal__cell {
    position: relative; display: flex; flex-direction: column; align-items: flex-start; width: 100%; margin: 0; padding: 7px 8px;
    text-align: left; white-space: normal; color: #15181C; background: #fff; border: 1px solid #E9E2D2; border-radius: 12px; cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.mxt-cal .mxt-cal__grid button.mxt-cal__cell:hover, .mxt-cal .mxt-cal__grid button.mxt-cal__cell:focus { color: #15181C; background: #fff; border-color: #173F35; transform: translateY(-1px); box-shadow: 0 6px 14px rgba(15, 43, 36, .1); }
.mxt-cal__cell b { font-size: 22px; font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; }
.mxt-cal__cell small { display: flex; align-items: center; gap: 4px; margin-top: 2px; font-size: 11px; line-height: 1.2; color: #7A8279; }
.mxt-cal__cell i { position: absolute; top: 6px; right: 6px; display: flex; gap: 2px; }
.mxt-cal__cell em { display: block; width: 100%; margin-top: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-style: normal; line-height: 1.3; color: #5C665F; }
.mxt-cal__cell.is-sun b, .mxt-cal__cell.is-off b { color: #D0161F; }
.mxt-cal .mxt-cal__grid button.mxt-cal__cell.is-bud { background: #FFF9E8; border-color: #EBD9A4; }
.mxt-cal .mxt-cal__grid button.mxt-cal__cell.is-off { background: #FFF1F0; border-color: #F1C5C2; }
.mxt-cal .mxt-cal__grid button.mxt-cal__cell.is-today { border: 2px solid #173F35; padding: 6px 7px; }
.mxt-cal .mxt-cal__grid button.mxt-cal__cell.is-today::after { content: "ມື້ນີ້"; position: absolute; bottom: -9px; left: 8px; padding: 0 6px; font-size: 10px; font-weight: 700; line-height: 16px; color: #F5F0E4; background: #173F35; border-radius: 8px; }
.mxt-cal .mxt-cal__grid button.mxt-cal__cell.is-selected { color: #F5F0E4; background: #173F35; border-color: #173F35; box-shadow: 0 8px 18px rgba(15, 43, 36, .25); }
.mxt-cal__cell.is-selected b { color: #F3C95B; }
.mxt-cal__cell.is-selected small, .mxt-cal__cell.is-selected em { color: #C9D8D0; }
.mxt-cal__note { margin: 12px 0 0; padding: 10px 12px; font-size: 13px; color: #5C665F; background: #F4EEDD; border-radius: 10px; }
.mxt-cal__legend { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 16px 0 0; padding: 0; font-size: 12px; color: #5C665F; }
.mxt-cal__legend li { display: inline-flex; align-items: center; gap: 6px; }

.mxt-cal__side { display: grid; gap: 16px; position: sticky; top: 16px; }
.mxt-cal__detail { padding: 18px; color: #F5F0E4; background: linear-gradient(160deg, #3A2A12, #173F35 70%); border-radius: 18px; }
.mxt-cal__dhead { display: flex; align-items: center; gap: 12px; }
.mxt-cal__dhead small { display: block; font-size: 12px; line-height: 1.35; color: #C9D8D0; }
.mxt-cal__dhead b { display: block; font-size: 20px; line-height: 1.35; color: #F3C95B; }
.mxt-cal__dlunar { margin: 12px 0 0; padding-top: 12px; font-size: 14px; line-height: 1.5; border-top: 1px solid rgba(255, 255, 255, .16); }
.mxt-cal__dlist { list-style: none; display: grid; gap: 10px; margin: 12px 0 0; padding: 0; }
.mxt-cal__dlist li { display: flex; align-items: flex-start; gap: 10px; padding: 10px; background: rgba(255, 255, 255, .08); border-radius: 12px; }
.mxt-cal__dlist li.is-empty { font-size: 13px; color: #C9D8D0; }
.mxt-cal__dlist b { display: block; font-size: 15px; line-height: 1.35; }
.mxt-cal__dlist small { display: block; font-size: 12px; line-height: 1.35; color: #C9D8D0; }
.mxt-cal__dlist .mxt-cal__tag { margin-top: 3px; font-size: 11px; color: #F3C95B; }
.mxt-cal__agenda { padding: 16px 18px; background: #fff; border: 1px solid #E4DCCB; border-radius: 18px; }
.mxt-cal__agenda h3 { margin: 0 0 8px; font: 700 16px/1.35 Phetsarath, sans-serif; color: #15181C; }
.mxt-cal__agenda ul { list-style: none; margin: 0; padding: 0; max-height: 420px; overflow-y: auto; }
.mxt-cal__agenda li + li { border-top: 1px solid #EFE8D8; }
.mxt-cal .mxt-cal__agenda button { display: flex; align-items: flex-start; gap: 12px; width: 100%; margin: 0; padding: 9px 4px; text-align: left; white-space: normal; color: #15181C; background: transparent; border: 0; border-radius: 8px; cursor: pointer; }
.mxt-cal .mxt-cal__agenda button:hover, .mxt-cal .mxt-cal__agenda button:focus { color: #15181C; background: #FBF6E9; }
.mxt-cal__when { flex: 0 0 44px; text-align: center; }
.mxt-cal__when b { display: block; font-size: 20px; line-height: 1.1; }
.mxt-cal__when small { display: block; font-size: 10px; color: #5C665F; }
.mxt-cal__when.is-off b { color: #D0161F; }
.mxt-cal__what { display: grid; gap: 6px; min-width: 0; }
.mxt-cal__what > span { display: flex; align-items: flex-start; gap: 7px; }
.mxt-cal__what b { display: block; font-size: 14px; line-height: 1.35; }
.mxt-cal__what small { display: block; font-size: 11px; line-height: 1.35; color: #5C665F; }
.mxt-cal button:focus-visible, .mxt-cal select:focus-visible { outline: 3px solid #F3C95B; outline-offset: 2px; box-shadow: 0 0 0 5px #173F35; }

@media (max-width: 1023px) {
    .mxt-cal__main { grid-template-columns: minmax(0, 1fr); }
    .mxt-cal__side { position: static; }
    .mxt-cal__today { grid-template-columns: minmax(0, 1fr); gap: 8px; }
}
@media (max-width: 600px) {
    .mxt-cal__title b { font-size: 22px; }
    .mxt-cal__months { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .mxt-cal__head, .mxt-cal__grid { gap: 3px; }
    .mxt-cal__head b { font-size: 11px; }
    .mxt-cal__head small { font-size: 9px; }
    .mxt-cal__cell { min-height: 62px; }
    .mxt-cal .mxt-cal__grid button.mxt-cal__cell { align-items: center; padding: 5px 2px; border-radius: 9px; text-align: center; }
    .mxt-cal .mxt-cal__grid button.mxt-cal__cell.is-today { padding: 4px 1px; }
    .mxt-cal__cell b { font-size: 17px; }
    .mxt-cal__cell small { justify-content: center; gap: 2px; font-size: 9px; }
    .mxt-cal__cell small .mxt-moon { display: none; }
    .mxt-cal__cell i { position: static; margin-top: 2px; justify-content: center; }
    .mxt-cal__cell i .mxt-ci { width: 13px; height: 13px; }
    .mxt-cal__cell i .mxt-ci + .mxt-ci + .mxt-ci { display: none; }
    .mxt-cal__cell em { display: none; }
    .mxt-cal .mxt-cal__grid button.mxt-cal__cell.is-today::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .mxt-cal.is-left .mxt-cal__grid, .mxt-cal.is-right .mxt-cal__grid { animation: none; }
    .mxt-cal .mxt-cal__tile, .mxt-cal .mxt-cal__grid button.mxt-cal__cell { transition: none; }
}

/* ---------- card ---------- */
.mxt-calcard { display: flex; flex-direction: column; min-height: 600px; font-family: Phetsarath, sans-serif; color: #15181C; }
.mxt-calcard.is-compact { min-height: 0; }
.mxt-calcard__leaf { position: relative; overflow: hidden; background: #fff; border: 1px solid #E4DCCB; border-radius: 16px; box-shadow: 0 10px 22px rgba(15, 43, 36, .08); }
.mxt-calcard__band { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 12px 16px 10px; color: #fff; background: linear-gradient(135deg, #C3161E, #8E0F16); }
.mxt-calcard__band::before, .mxt-calcard__band::after { content: ""; position: absolute; top: 5px; width: 10px; height: 10px; border-radius: 50%; background: #FFFDF8; box-shadow: inset 0 1px 2px rgba(0, 0, 0, .35); }
.mxt-calcard__band::before { left: 22%; }
.mxt-calcard__band::after { right: 22%; }
.mxt-calcard__band span:first-child { font-size: 17px; font-weight: 700; }
.mxt-calcard__band span:last-child { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; opacity: .9; }
.mxt-calcard__day { display: flex; align-items: center; gap: 14px; padding: 10px 16px 4px; }
.mxt-calcard__day > b { font-size: 88px; font-weight: 700; line-height: 1; letter-spacing: -.03em; color: #173F35; font-variant-numeric: tabular-nums; animation: mxt-cal-flip .7s cubic-bezier(.2, .8, .2, 1) both; transform-origin: 50% 0; }
@keyframes mxt-cal-flip { from { opacity: 0; transform: perspective(400px) rotateX(-70deg); } }
.mxt-calcard__day strong { display: block; font-size: 22px; line-height: 1.3; }
.mxt-calcard__day small { display: block; font-size: 12px; line-height: 1.4; color: #5C665F; }
.mxt-calcard__lunar { display: flex; align-items: center; gap: 10px; margin: 6px 16px 14px; padding: 8px 12px; font-size: 15px; font-weight: 700; color: #173F35; background: #FFF9E8; border-radius: 12px; }
.mxt-calcard__now { list-style: none; margin: -4px 16px 14px; padding: 0; display: grid; gap: 6px; }
.mxt-calcard__now li { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; }

.mxt-calcard__week { list-style: none; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; margin: 14px 0 0; padding: 0; }
.mxt-calcard__week li { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 6px 0 4px; border-radius: 10px; background: #F7F2E5; }
.mxt-calcard__week small { font-size: 10px; line-height: 1.2; color: #5C665F; }
.mxt-calcard__week b { font-size: 16px; line-height: 1.2; font-variant-numeric: tabular-nums; }
.mxt-calcard__week i { display: flex; align-items: center; justify-content: center; height: 15px; }
.mxt-calcard__week .is-sun b, .mxt-calcard__week .is-off b { color: #D0161F; }
.mxt-calcard__week .is-today { color: #F5F0E4; background: #173F35; }
.mxt-calcard__week .is-today small { color: #C9D8D0; }
.mxt-calcard__week .is-today b { color: #F3C95B; }

.mxt-calcard__next { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding: 12px 14px; color: #3A2A12; background: linear-gradient(135deg, #FFF3CF, #FBE3A0); border-radius: 14px; }
.mxt-calcard__next small { display: block; font-size: 11px; line-height: 1.4; }
.mxt-calcard__next b { display: block; font-size: 18px; line-height: 1.3; }
.mxt-calcard__coming { list-style: none; margin: 12px 0 0; padding: 0; }
.mxt-calcard__coming li { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; border-top: 1px solid #E4DCCB; }
.mxt-calcard__coming b { display: block; font-size: 14px; line-height: 1.35; }
.mxt-calcard__coming small { display: block; font-size: 12px; line-height: 1.35; color: #5C665F; }
.mxt-calcard .mxt-calcard__cta {
    align-self: flex-start; margin-top: auto; padding: 13px 18px; font: 700 14px/1.2 Phetsarath, sans-serif; text-decoration: none;
    color: #F5F0E4; background: #173F35; border-radius: 999px; transition: transform .18s ease, box-shadow .18s ease;
}
.mxt-calcard__coming + .mxt-calcard__cta, .mxt-calcard__next + .mxt-calcard__cta, .mxt-calcard__week + .mxt-calcard__cta { margin-top: auto; }
.mxt-calcard__coming, .mxt-calcard__next { margin-bottom: 14px; }
.mxt-calcard__next + .mxt-calcard__coming { margin-top: -2px; }
.mxt-calcard .mxt-calcard__cta:hover { color: #F5F0E4; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(15, 43, 36, .28); }
.mxt-calcard a:focus-visible { outline: 3px solid #F3C95B; outline-offset: 2px; }
@media (min-width: 768px) {
    .mxt-calcard.is-compact .mxt-calcard__day > b { font-size: 64px; }
    .mxt-calcard.is-compact .mxt-calcard__day strong { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) { .mxt-calcard__day > b { animation: none; } }

/* the calendar card joins the other Today cards in filling its column or slide */
.elementor-widget-wrap:has(> .elementor-widget-shortcode .mxt-calcard) { align-content: stretch; }
.elementor-widget-shortcode:has(.mxt-calcard), .elementor-widget-shortcode:has(.mxt-calcard) > .elementor-widget-container, .elementor-shortcode:has(> .mxt-calcard) { display: flex; flex-direction: column; flex: 1 1 auto; width: 100%; }
.elementor-shortcode > .mxt-calcard { flex: 1 1 auto; }
.jet-listing-grid__item:has(.mxt-calcard) > .elementor,
.jet-listing-grid__item:has(.mxt-calcard) .elementor-section:has(.mxt-calcard),
.jet-listing-grid__item:has(.mxt-calcard) .elementor-section:has(.mxt-calcard) > .elementor-container,
.jet-listing-grid__item:has(.mxt-calcard) .elementor-column:has(.mxt-calcard) { height: 100%; }
/* week strip: full day names (ອາທິດ, ຈັນ, ອັງຄານ, ພຸດ, ພະຫັດ, ສຸກ, ເສົາ) */
.mxt-calcard__week small { font-size: 10px; white-space: nowrap; letter-spacing: 0; }
@media (max-width: 380px) { .mxt-calcard__week { gap: 2px; } .mxt-calcard__week small { font-size: 9px; } }
