/* Additions to the Mamanino design for things the static template did not have (live data states, store names). */
.mmn-theme .mmn-brand { font-weight: 800; font-size: 1.25rem; color: inherit; }
.mmn-theme .mmn-hl { color: var(--sf-secondary, #fc315a); }
.mmn-theme .mmn-empty { padding: 1rem; color: #8b8ba3; text-align: center; }
.mmn-theme .mmn-unrated .mmn-unrated-tx { font-size: .75rem; color: #8b8ba3; white-space: nowrap; }
.mmn-theme .mmn-cart-actions { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .75rem 1rem; border-top: 1px solid rgb(0 0 0 / .06); }
.mmn-theme .mmn-cart-total b { font-weight: 800; }
.mmn-theme .mmn-notice { padding: 1.5rem; border-radius: 1rem; background: rgb(0 0 0 / .03); color: #6b6b80; text-align: center; }
/* The sliders scroll natively (no Swiper script). */
.mmn-theme .mmn-slider-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; transform: none !important; }
.mmn-theme .mmn-slider-track::-webkit-scrollbar { display: none; }
.mmn-theme .mmn-slider-track > .swiper-slide { flex-shrink: 0; scroll-snap-align: start; }
.mmn-theme .swiper-buttons-m7 button { border: 0; background: none; padding: 0; }
.mmn-theme .mmn-sec { margin-block: 2.5rem; }
.mmn-theme .mmn-heading { margin-top: 2.5rem; }
.mmn-theme .mmn-noimg { display: block; width: 100%; aspect-ratio: 1; border-radius: 1rem; background: linear-gradient(135deg, #fde7ee, #e9e5ff); }
.mmn-theme .mmn-tile-img, .mmn-theme .mmn-social-img { width: 1.5rem; height: 1.5rem; object-fit: contain; }
/* Product cards (home.php sliders): the template's sample cover is a 134x218 portrait, which sets every card's height
   and so where the cart button overlaps the card's bottom edge. Store covers of any shape are cropped to that frame,
   so all cards in a row are equally tall and their cart buttons line up. */
.mmn-theme .pbcbx-m7 .pbcrctn-m7 .imgctn-t { aspect-ratio: 134 / 218; }
.mmn-theme .pbcbx-m7 .pbcrctn-m7 .imgctn-t img, .mmn-theme .pbcbx-m7 .pbcrctn-m7 .imgctn-t .mmn-noimg { display: block; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
/* Notifications: the design's message box (alerts.php, alrtmesg-tpl-m7) inside the shared toaster. The toaster stacks
   and animates the boxes, so they keep its positioning instead of the template's page flow. The template's animated
   icon pictures (images/animations, images/messages) are not in the UI repository, so the icon font draws the mark. */
.mmn-theme .mmn-toaster [data-sonner-toast].amctn-m7.fwid-m7 { position: absolute; margin: 0; width: var(--width); max-width: calc(100vw - 32px); min-height: 64px; padding: 14px 70px 14px 46px; flex-direction: row; align-items: center; justify-content: flex-start; }
.mmn-theme .mmn-toaster .amctn-m7.fwid-m7 .amicn-m7 { top: 50%; right: 14px; bottom: auto; width: 42px; height: 42px; margin-top: -21px; padding: 0; display: grid; place-items: center; transform: none; animation: none; background-image: none; background-color: rgb(255 255 255 / .22); border: 2px solid #fff; }
.mmn-theme .mmn-toaster .amctn-m7.fwid-m7 .amicn-m7 .nf { font-size: 17px; color: #fff; }
.mmn-theme .mmn-toaster .amctn-m7.fwid-m7 .amtx-m7 { margin: 0; }
.mmn-theme .mmn-toaster .amctn-m7.fwid-m7 .amtx-m7 .ttl-s1 { display: block; color: #fff; line-height: 26px; }
.mmn-theme .mmn-toaster .amctn-m7.wrng-m7 { box-shadow: 0 10px 25px rgb(255 188 31 / .6); }
.mmn-theme .mmn-toaster .amctn-m7.mmn-info { background-color: #414161; box-shadow: 0 10px 25px rgb(65 65 97 / .45); }
.mmn-theme .mmn-toaster .btncls-m7 { top: 50%; left: 6px; margin-top: -20px; display: grid; place-items: center; border: 0; background: none; color: #fff; transform: none; }
.mmn-theme .alrtbx-tpl-m7 .abtop-s1 .abbimg-s1:before { background-image: none; }
/* Payment result: the purchased products (each opening where the customer uses it) replace the template's invoice button. */
.mmn-theme .mmn-bought { display: flex; flex-direction: column; gap: .5rem; width: 100%; margin: 0 0 .5rem; padding: 0; list-style: none; }
/* CTA banners: the approved template (uiMaster's files/build) dropped the 153px text width the older build (files/_deploy,
   which this stylesheet came from) still has, so heading and text use the banner's width beside the illustrations. */
.mmn-theme .cltactsec-tpl-s1 .ctactn-s1 .txtsctn-s1 { max-width: none; }
/* Festival (home.php, section-3): the play-button cover keeps the template's portrait frame for any cover shape. */
.mmn-theme .pbccamp-m7 .pvlnk-m7 { display: block; width: 100%; border: 0; padding: 0; background: none; }
.mmn-theme .pbccamp-m7 .pvlnk-m7 img, .mmn-theme .pbccamp-m7 .pvlnk-m7 .mmn-noimg { display: block; width: 100%; aspect-ratio: 134 / 218; object-fit: cover; }
.mmn-theme .mmn-faq-q { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 1rem; border: 0; background: none; padding: 0; text-align: start; color: inherit; }
.mmn-theme .mmn-date { display: block; font-size: .75rem; color: #8b8ba3; margin-top: .25rem; }
.mmn-theme .ctbgctem4-m7[style] .ctacontt-s1, .mmn-theme .ctbgctem3-m7[style] .ctacontt-s1 { background-color: var(--mmn-cta-bg); }
.mmn-theme div.hdes-t > p { margin: 0 0 .35em; }
/* Tailwind also has a "collapse" utility (visibility: collapse); the design's Bootstrap collapses only use display. */
.mmn-theme .collapse { visibility: visible; }
.mmn-theme .mmn-features-band { background: #414161; border-radius: 32px; padding: 1.5rem; }
.mmn-theme .mmn-owned { padding: .75rem 1rem; border-radius: 1rem; background: #4141610d; font-size: .875rem; }
.mmn-theme .mmn-methods { display: flex; flex-direction: column; gap: .35rem; margin-bottom: .75rem; font-size: .875rem; }
.mmn-theme .mmn-method { display: flex; align-items: center; gap: .5rem; cursor: pointer; }
.mmn-theme .mmn-discount { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem; }
.mmn-theme .mmn-discount .inputs-t { flex: 1; min-width: 8rem; }
.mmn-theme .mmn-ok { color: #059669; font-size: .8rem; width: 100%; }
.mmn-theme .mmn-error { color: #dc2626; font-size: .8rem; width: 100%; }
.mmn-theme .mmn-full { opacity: .5; cursor: not-allowed; }
.mmn-theme .mmn-rating-link { display: inline-flex; align-items: center; gap: .35rem; color: inherit; }
.mmn-theme .mmn-support-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem; margin-bottom: 1rem; }
.mmn-theme .mmn-review-form { display: flex; flex-direction: column; align-items: center; gap: .75rem; margin-top: 1.5rem; }
.mmn-theme .mmn-review-form textarea { width: 100%; min-height: 7rem; }
.mmn-theme .mmn-stars { display: flex; gap: .25rem; }
.mmn-theme .mmn-stars button { border: 0; background: none; font-size: 1.4rem; color: #d1d5db; padding: 0; }
.mmn-theme .mmn-stars .st-m7 { color: #fbbf24; }
.mmn-theme .mmn-avg { display: flex; align-items: center; gap: .5rem; }
.mmn-theme .mmn-more:not(.show) { display: block !important; max-height: 7.5rem; overflow: hidden; -webkit-mask-image: linear-gradient(#000 60%, transparent); mask-image: linear-gradient(#000 60%, transparent); }
.mmn-theme .mmn-booking { background: #fff; border-radius: 24px; padding: 1.25rem; max-height: 85svh; overflow-y: auto; }
.mmn-theme .mmn-consult-title { display: block; font-weight: 700; margin-bottom: .35rem; color: inherit; }
.mmn-theme .mmn-kinds { margin-top: 1.25rem; }
.mmn-theme .mmn-kinds .btns-prdct-m7 { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; }
.mmn-theme .mmn-kinds .btn-t { background: #fff; color: #414161; border: 1px solid #4141611f; }
.mmn-theme .mmn-kinds .mmn-kind-on { background: #414161; color: #fff; }
.mmn-theme .mmn-login-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; margin-top: .75rem; font-size: .85rem; }
.mmn-theme .mmn-login-links button, .mmn-theme .chngnum-m7 button { border: 0; background: none; padding: 0; color: #fc315a; }
.mmn-theme .mmn-login-note { font-size: .85rem; color: #6b6b80; margin-bottom: .75rem; }
.mmn-theme .mmn-empty-cart { display: flex; flex-direction: column; align-items: center; gap: 1rem; padding: 3rem 1rem; text-align: center; }
.mmn-theme .mmn-empty-cart img { max-width: 14rem; }
.mmn-theme .mmn-applied { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .5rem .75rem; border-radius: 1rem; background: #4141610d; }
.mmn-theme .mmn-price-tag { margin-inline-start: auto; font-weight: 700; }
.mmn-theme .mmn-slots { display: flex; flex-direction: column; gap: .5rem; margin-top: 1rem; }
.mmn-theme .mmn-slot-day { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.mmn-theme .mmn-wallet, .mmn-theme .mmn-order-note { display: flex; flex-direction: column; gap: .35rem; margin-top: 1rem; }
.mmn-theme .mmn-wallet { flex-direction: row; align-items: center; }
.mmn-theme .mmn-address-form { margin-top: 1rem; }
.mmn-theme .stepsbar-tpl-s1 button { border: 0; background: none; padding: 0; }
.mmn-theme .mmn-avatar { display: grid; place-items: center; width: 100%; height: 100%; margin: 0; font-size: 2rem; font-weight: 800; color: #414161; background: #ffe5ec; }
.mmn-theme .mmn-status { display: inline-block; padding: .15rem .6rem; border-radius: 999px; background: #4141610d; font-size: .75rem; }
.mmn-theme .mmn-pick { display: flex; flex-direction: column; gap: .5rem; margin: .5rem 0; }
.mmn-theme .mmn-note { margin-top: .75rem; font-size: .85rem; }
.mmn-theme .mmn-note summary { cursor: pointer; font-weight: 700; }
.mmn-theme .mmn-note form { display: flex; flex-direction: column; gap: .5rem; margin-top: .5rem; }
.mmn-theme .mmn-shared-section { padding: 1rem 0; }
.mmn-theme .uticn-m7 { border: 0; background: none; }

/* Video gallery (gallery-page): filters in one row, tags as pills, square covers with a centred play mark. */
.mmn-theme .mmn-gallery-filters { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-block: 1rem; }
.mmn-theme .mmn-gallery-filters .srchctn-m7 { flex: 1 1 16rem; }
.mmn-theme .mmn-gallery-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; }
.mmn-theme .mmn-gallery-grid { row-gap: 1.5rem; }
.mmn-theme .mmn-gallery-item { position: relative; display: block; width: 100%; border: 0; padding: 0; background: none; text-align: start; cursor: pointer; }
.mmn-theme .mmn-gallery-item .psimg-s1, .mmn-theme .mmn-gallery-item .mmn-noimg { width: 100%; aspect-ratio: 9 / 12; object-fit: cover; border-radius: 1rem; }
.mmn-theme .mmn-gallery-play { position: absolute; inset-inline: 0; top: 0; aspect-ratio: 9 / 12; display: grid; place-items: center; color: #fff; font-size: 2rem; text-shadow: 0 2px 8px rgb(0 0 0 / .4); pointer-events: none; }
.mmn-theme .mmn-gallery-title { display: block; margin-top: .5rem; font-weight: 600; font-size: .95rem; }
.mmn-theme .mmn-photos { row-gap: 1rem; margin-block: 1.5rem; }
.mmn-theme .mmn-photos img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 1rem; }
.mmn-theme .mmn-gallery-filters .mmn-gallery-sort { flex: 0 0 12rem; }
.mmn-theme .mmn-gallery-list { padding-bottom: 3rem; }

/* Shared builder blocks line up with the design's container (Bootstrap widths). */
.mmn-theme .arna-builder-page > .max-w-6xl { max-width: 1140px; padding-inline: 15px; }
@media (max-width: 1199.98px) { .mmn-theme .arna-builder-page > .max-w-6xl { max-width: 960px; } }
@media (max-width: 991.98px) { .mmn-theme .arna-builder-page > .max-w-6xl { max-width: 720px; } }
@media (max-width: 767.98px) { .mmn-theme .arna-builder-page > .max-w-6xl { max-width: 540px; } }
@media (max-width: 575.98px) { .mmn-theme .arna-builder-page > .max-w-6xl { max-width: 100%; } }

/* Phones: the design pulls the purchase panel 270px up over the course cover, so the cover must be taller than that
   (the template's sample image was); covers of any shape are cropped to fill it. */
@media (max-width: 767.98px) {
  .mmn-theme .prctmsec-tpl-m7 .prdctvideo-tpl-m7 img, .mmn-theme .prctmsec-tpl-m7 .prdctvideo-tpl-m7 .mmn-noimg { width: 100%; min-height: 300px; object-fit: cover; }
}
.mmn-theme .mmn-gallery-tags .btn-t { width: auto; display: inline-flex; }

/* Cart lines (cart-new-page): the picked class run or appointment as a wrapping row of "label: value" pairs. */
.mmn-theme .mmn-line-details { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.mmn-theme .mmn-line-details b { font-weight: 700; }
/* The design's dialogs (modal-login.php) drawn without Bootstrap's modal script. */
.mmn-theme .mmn-dialog { position: relative; width: 100%; max-width: 32rem; max-height: calc(100svh - 1.5rem); overflow-y: auto; overscroll-behavior: contain; border-radius: 40px; }
.mmn-theme .mmn-dialog .modal-dialog { width: 100%; margin: 0; padding: 0; max-width: none; transform: none; }
.mmn-theme .mmn-dialog .mdlcont-m7 { max-width: none; }
.mmn-theme .mmn-dialog.md-m7 { max-width: 650px; }
.mmn-theme .mmn-dialog.lg-m7 { max-width: 60rem; }
/* Consultation booking (cnsltfrm-tpl-s1): appointments below the customer fields, the price above the buttons. */
.mmn-theme .mmn-booking .mmn-booking-slots { margin-bottom: 1rem; min-width: 0; }
.mmn-theme .mmn-booking .mmn-booking-slots > .lbl-n5 { display: block; margin-bottom: .5rem; }
.mmn-theme .mmn-booking .mmn-booking-price { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.mmn-theme .mmn-booking-buttons .sbctn-m7 { display: flex; gap: .5rem; }
.mmn-theme .mmn-booking-buttons .btnctn-m7 { flex: 1 1 0; }
/* Checkout (payment-bank, payment-confirm): the discount code sits under the amounts; Apply is grey until a code is
   typed, then red; an applied code shows with a red Remove. A method without a picture gets a wallet icon. */
.mmn-theme .mmn-coupon { margin-top: 1.25rem; }
.mmn-theme .mmn-coupon .mmn-apply-ready { background: var(--sf-secondary, #fc315a); color: #fff; }
.mmn-theme .mmn-coupon .btn-t:disabled { background: #e6e6ec; color: #8b8ba3; cursor: not-allowed; }
.mmn-theme .mmn-coupon .mmn-applied .bg-remove { background: #fc315a1a; color: #fc315a; }
.mmn-theme .mmn-coupon .mmn-applied-code { display: inline-flex; align-items: center; gap: .35rem; font-weight: 700; color: #1a9e5c; }
.mmn-theme .mmn-coupon .mmn-error { margin-top: .5rem; }
.mmn-theme .mmn-method-icon { font-size: 2rem; color: var(--sf-primary, #414161); }
.mmn-theme .mmn-booking .cfrms-s1 .inputctn-t > label { display: block; width: 100%; }
.mmn-theme .mmn-booking .cfrms-s1 .inputctn-t .lbl-n5 { display: block; margin-bottom: .4rem; }
.mmn-theme .mmn-booking .cfrms-s1 .form-group { display: block; width: 100%; }
.mmn-theme .mmn-booking .cfrms-s1 .inputs-t { width: 100%; }
.mmn-theme .mmn-booking .cfrms-s1 .row > [class*=col-] { margin-bottom: .75rem; }
/* Class runs / appointments (product-class-page's date boxes): a horizontal row of equal, readable cards (the design's
   slidesPerView "auto" with 216px minimum), the selected one kept through cart and checkout. */
.mmn-theme .mmn-cohorts .mmn-cohort-slider .rbitm-m7 { width: 250px; min-width: 216px; padding: 0; }
.mmn-theme .mmn-cohorts .mmn-cohort-slider .rbbx-m7, .mmn-theme .mmn-cohorts .mmn-cohort-slider .inputctn-t { height: 100%; width: 100%; }
.mmn-theme .mmn-cohorts .rbbtm-m7 .tdctn-m7 { display: flex; justify-content: space-between; gap: .5rem; }
.mmn-theme .mmn-cohorts .rbbtm-m7 .tdtext-m7 { white-space: nowrap; }
.mmn-theme .mmn-cohorts .rbbtm-m7 .tddate-m7 { text-align: left; }
.mmn-theme .mmn-cohorts .mmn-full { opacity: .55; }
@media (max-width: 575.98px) { .mmn-theme .mmn-cohorts .mmn-cohort-slider .rbitm-m7 { width: 230px; } }
/* Descriptions that fit (moretx hidebtn-m7) are shown whole: no fold, fade or button space. */
.mmn-theme .hidebtn-m7 .mmn-more:not(.show) { max-height: none; overflow: visible; -webkit-mask-image: none; mask-image: none; }
/* Course cards: the cart circle is a span (the whole card is the link), laid out like the template's button so its
   icons sit centred in the circle on every card. */
.mmn-theme .pbbtn-m7 span.btn-t.bcrt-t { display: flex; align-items: center; justify-content: center; }
/* The strip above the header (campyalda-tpl-m7) as text: the store's colours, the promotion code in a white pill. */
.mmn-theme .mmn-announce .cylnk-m7 { color: inherit; text-decoration: none; background: inherit; }
.mmn-theme .mmn-announce .cyttlicn-m7 { padding: 0 16px; overflow: hidden; }
.mmn-theme .mmn-announce-text { font-size: 1rem; font-weight: 700; line-height: 1.4; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mmn-theme .mmn-announce-code { display: inline-block; margin-inline-start: .5rem; padding: 0 .75rem; border-radius: 8px; background: #fff; color: #e2631b; font-weight: 800; }
@media (max-width: 767.98px) { .mmn-theme .campyalda-tpl-m7 .mmn-desk-only { display: none; } .mmn-theme .mmn-announce-text { font-size: .85rem; } }
@media (min-width: 768px) { .mmn-theme .campyalda-tpl-m7 .mobci-s1 { display: none; } }
/* The template's strip above the header (campyalda-tpl-m7, from its newer build; the theme's main stylesheet lacks it):
   a fixed bar 39px high on phones and 60px from 992px, the header below it (bdyhdrcamp-m7 makes room on the page). */
.mmn-theme .campyalda-tpl-m7 .cyctn-m7 { height: 39px; display: inline-flex; width: 100%; overflow: hidden; }
.mmn-theme .campyalda-tpl-m7 .cylnk-m7 { display: flex; width: 100%; z-index: 50; position: fixed; top: 0; left: 0; right: 0; bottom: auto; }
.mmn-theme .campyalda-tpl-m7 .cyttlicn-m7 { display: flex; justify-content: center; width: 100%; height: 100%; align-items: center; }
.mmn-theme .campyalda-tpl-m7 .cyimg-s1 { width: 100%; height: 100%; }
.mmn-theme .campyalda-tpl-m7 .cyimg-s1 img { object-fit: cover; width: 100%; height: 100%; }
.mmn-theme .header-tpl-m7 .campyalda-tpl-m7 + .mhdrctn-n5 { padding-top: 39px; }
@media (min-width: 992px) {
  .mmn-theme .campyalda-tpl-m7 .cyctn-m7 { height: 60px; }
  .mmn-theme .header-tpl-m7 .campyalda-tpl-m7 + .mhdrctn-n5 { padding-top: 60px; }
}
.mmn-theme .header-tpl-m7 .campyalda-tpl-m7 + .mhdrctn-n5 .srchmenuclps-tpl-m7 .smctn-m7 { top: 39px; }
.mmn-theme .campyalda-tpl-m7.top-m7 .cyctn-m7 { padding-top: 0; }
/* Profile: the tabs wrap onto a second row when the store offers more sections than the design's seven. */
.mmn-theme .profile-p-m7 .navtabs-m7 { flex-wrap: wrap; row-gap: .5rem; }
.mmn-theme .mmn-details-actions { display: flex; gap: .75rem; flex-wrap: wrap; }
.mmn-theme .mmn-consult-actions { display: flex; flex-direction: column; gap: .5rem; }
.mmn-theme .mmn-consult-meta .tdctn-m7 { display: flex; flex-wrap: wrap; gap: .35rem; }
.mmn-theme .mmn-stars { display: flex; justify-content: center; gap: .35rem; direction: ltr; margin: 1rem 0; }
.mmn-theme .mmn-star { font-size: 2rem; line-height: 1; color: #d9d9e3; background: none; border: 0; cursor: pointer; }
.mmn-theme .mmn-star.on { color: #ffb400; }
.mmn-theme .mmn-pager { display: flex; justify-content: center; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.mmn-theme .mmn-hint { font-size: .8rem; color: #8b8ba3; margin-top: .25rem; }
/* Consultation page (consultation-page.php): filters in the side column; on phones they fold behind a button. The
   urgent-booking banner may carry the store's own title and button over its picture. */
.mmn-theme .mmn-consultants .mmn-filter-toggle { display: none; }
.mmn-theme .mmn-consultants .mmn-busy { opacity: .6; transition: opacity .2s; }
.mmn-theme .mmn-consultants .mmn-more-list, .mmn-theme .mmn-consultants .mmn-filter-clear { display: flex; justify-content: center; margin: 1rem 0; }
.mmn-theme .mmn-consultants-title { text-align: center; margin-bottom: 1.5rem; }
.mmn-theme .mmn-urgent .cbinimg-s1 { position: relative; display: block; }
.mmn-theme .mmn-urgent-text { position: absolute; inset: auto 1.25rem 1.25rem 1.25rem; display: flex; flex-direction: column; gap: .5rem; color: #fff; font-size: 1.25rem; }
.mmn-theme .mmn-consultants .mmn-unrated-tx { font-size: .75rem; color: #8b8ba3; }
@media (max-width: 991.98px) {
  .mmn-theme .mmn-consultants .mmn-filter-toggle { display: inline-flex; align-items: center; gap: .4rem; width: auto; margin-bottom: 1rem; }
}
/* Phones: the consultation filters in a dialog (the template's filter popup). */
.mmn-theme .mmn-filter-dialog .fitms-m7 ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1rem; }
.mmn-theme .mmn-filter-dialog .twobtn-tpl-m7 { margin-top: 1rem; }
/* The urgent-booking banner: the template shows it only beside the filters on wide screens, so phones get a copy above the list. */
.mmn-theme .fltr-tpl-m7 .cnsltbnr-s1.mmn-urgent-phone { display: block; margin-bottom: 20px; }
.mmn-theme .fltr-tpl-m7 .cnsltbnr-s1.mmn-urgent-phone .cbinimg-s1 { display: block; border-radius: 24px; overflow: hidden; }
.mmn-theme .fltr-tpl-m7 .cnsltbnr-s1.mmn-urgent-phone .cbimg-s1 { width: 100%; max-height: 220px; object-fit: cover; object-position: center bottom; }
@media only screen and (min-width: 992px) { .mmn-theme .fltr-tpl-m7 .cnsltbnr-s1.mmn-urgent-phone { display: none; } }
/* Reviews (product-course-new-comment-page.php): the answer blocks from the template's product-page sheet, which the course page does not load. */
.qustansw-tpl-m7 .qain-m7 .qaadmin-m7{background-color:rgba(65,65,97,.05);border-radius:20px;padding:25px 30px;margin-top:30px}
.qustansw-tpl-m7 .qaicntx-m7{margin-bottom:10px}
.qustansw-tpl-m7 .qaicntx-m7 .qaitin-m7{display:inline-block;vertical-align:middle;background-color:rgba(65,65,97,.1);border-radius:100px;padding:2px 10px}
.qustansw-tpl-m7 .qaicntx-m7 .nf{font-size:13px;color:#414161}
.qustansw-tpl-m7 .qaicntx-m7 .qaitx-m7{font-size:14px;font-weight:500;color:#414161}
@media only screen and (min-width:992px){.qustansw-tpl-m7 .qain-m7 .qaadmin-m7{margin-top:40px}
}
.mmn-theme .qustansw-tpl-m7 .mmn-initial { display: flex; align-items: center; justify-content: center; font-weight: 700; color: #fff; white-space: nowrap; }
.mmn-theme .qustansw-tpl-m7 .mmn-verified { display: inline-flex; align-items: center; gap: 4px; margin-inline-start: 8px; padding: 1px 8px; border-radius: 100px; font-size: 12px; color: #18a058; background: rgba(24, 160, 88, .1); }
.mmn-theme .qustansw-tpl-m7 .mmn-customer-answer { background-color: rgba(65, 65, 97, .025); }
.mmn-theme .qustansw-tpl-m7 .cabody-m7 { margin-top: 12px; }
.mmn-theme .qustansw-tpl-m7 .cabody-m7 textarea { width: 100%; min-height: 90px; }
.mmn-theme .qustansw-tpl-m7 .cabbtns-m7 { display: flex; gap: 10px; align-items: center; margin-top: 10px; }
.mmn-theme .cmntabnv-tpl-m7 .mmn-more { text-align: center; margin-top: 20px; }
.mmn-theme .cmntrcdrd-tpl-m7 .crin-m7 .inputctn-t textarea { width: 100%; min-height: 120px; }
/* Footer (_footer.php): the template's current footer rules, the same in every page sheet of the reference build, so pages
   without a page sheet match too; the older base sheet drew the shapes with pictures. */
@media only screen and (max-width:991px){body.hmfbody-s1.mfix-tpl-m7 .mfooter-tpl-m7 .mfctn-m7 .mfbtm-s1{padding:11px 0 35px}
}
.mfooter-tpl-m7.mffix-m7 .mfctn-m7{position:fixed;top:auto;left:0;right:0;bottom:0;z-index:999;padding-top:0}
.mfooter-tpl-m7 .mfshps-m7{height:0}
.mfooter-tpl-m7 .mfshps-m7 .shp-m7{position:absolute;left:auto;right:auto;top:auto;bottom:auto;z-index:-1;pointer-events:none;border-radius:50px;background-color:rgba(0,0,0,.07)}
.mfooter-tpl-m7 .mfshps-m7 .shp-m7.shp1-m7{width:280px;height:338px;top:-22px;left:-105px}
.mfooter-tpl-m7 .mfshps-m7 .shp-m7.shp2-m7{width:362px;height:114px;top:480px;right:-51px}
.mfooter-tpl-m7 .mfshps-m7 .shp-m7.shp3-m7{width:280px;height:338px;bottom:-146px;left:-146px}
.mfooter-tpl-m7 .mfshps-m7 .shp-m7.shp4-m7{display:none}
.mfooter-tpl-m7 .mfshps-m7 .shp-m7.shp5-m7,.mfooter-tpl-m7 .mfshps-m7 .shp-m7.shp6-m7{display:none}
.mfooter-tpl-m7 .btntop-tpl-m7{position:absolute;left:0;right:0;top:-22px;z-index:20}
.mfooter-tpl-m7 .ttlitms-tpl-s1 .tictn-s1 .tlitms-s1{display:flex}
.mfooter-tpl-m7 .btninpt-tpl-n5 .bictn-n5 .inputs-t{background-color:rgba(255,255,255,.05);color:#fff;font-size:15px;font-weight:400;border:unset;height:60px}
.mfooter-tpl-m7 .btninpt-tpl-n5 .bictn-n5 .inputs-t::-moz-placeholder{color:rgba(255,255,255,.7);font-size:13px;font-weight:400}
.mfooter-tpl-m7 .btninpt-tpl-n5 .bictn-n5 .inputs-t::placeholder{color:rgba(255,255,255,.7);font-size:13px;font-weight:400}
.mfooter-tpl-m7 .btninpt-tpl-n5 .bictn-n5 .inputs-t:focus{border:2px solid #fff;padding:19px 18px;padding-left:69px}
.mfooter-tpl-m7 .btninpt-tpl-n5 .bictn-n5 .btn-t{height:50px;padding:11px 11px;min-width:50px;left:5px;top:5px}
.mfooter-tpl-m7 .mfinfo-m7 .mfitm-m7{border-bottom:unset;padding-bottom:0}
.mfooter-tpl-m7 .mfctn-m7{background-color:#414161;padding-top:52px;position:relative;z-index:1;overflow:hidden;max-width:100%}
.mfooter-tpl-m7 .mfctn-m7 .mfttl-m7{width:100%;text-align:right;font-size:15px;font-weight:500;color:#fff;margin-bottom:13px}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7{border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:25px;padding-bottom:30px}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7.mfrbtmctn-m7{padding-bottom:10px}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7.mfltopctn-m7{margin-bottom:2px}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7.soctxt-tpl-s1{padding-bottom:12px;margin-bottom:0}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7.soctxt-tpl-s1 .insoctxt-s1{margin-bottom:19px}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7.soctxt-tpl-s1 .insoctxt-s1:last-child{margin-bottom:0}
.mfooter-tpl-m7 .mfctn-m7 .mflogo-m7{margin-bottom:11px}
.mfooter-tpl-m7 .mfctn-m7 .ftrmenu-tpl-m7{margin-bottom:27px}
.mfooter-tpl-m7 .mfctn-m7 .mflgodes-m7{text-align:right;margin-bottom:20px}
.mfooter-tpl-m7 .mfctn-m7 .mflgodes-m7 .flgolnk-m7{display:inline-block;width:100%;position:relative}
.mfooter-tpl-m7 .mfctn-m7 .mflgodes-m7 .flgolnk-m7 img{max-width:68px}
.mfooter-tpl-m7 .mfctn-m7 .mflgodes-m7 .flgolnk-m7 .mgltx-m7{display:none}
.mfooter-tpl-m7 .mfctn-m7 .mftopsec-m7{margin-bottom:35px}
.mfooter-tpl-m7 .mfctn-m7 .mfbtm-s1{padding:11px 0}
.mfooter-tpl-m7 .mfctn-m7 .mfbtm-s1 .cpyrgt-s1{display:flex;justify-content:space-between;align-items:center}
.mfooter-tpl-m7 .mfctn-m7 .mfbtm-s1 .cpyrgt-s1 .txt-s1{font-weight:400;font-size:13px}
.mfooter-tpl-m7 .mfctn-m7 .mfbtm-s1 .cpyrgt-s1 .crtxt-s1{font-size:12px;color:#fff;font-weight:300;margin-left:3px}
.mfooter-tpl-m7 .mfctn-m7 .mfbtm-s1 .cpyrgt-s1 .crlft-s1 .arnalink-s1{padding:12px 0 8px}
.mfooter-tpl-m7 .mfctn-m7 .mfbtm-s1 .cpyrgt-s1 .crlft-s1 .crimg-s1{max-width:43px}
.mfooter-tpl-m7 .mfctn-m7 .trustnmail-s1>.row>[class^=col-]:last-child .mfitm-m7:last-child{margin-bottom:0}
.mfooter-tpl-m7 .mfinfo-m7 .ictictn-s1 .icitems-s1>li{margin-bottom:21px}
.mfooter-tpl-m7 .mfinfo-m7 .ictictn-s1 .icitems-s1>li:last-child{margin-bottom:0}
.mfooter-tpl-m7 .mfdes-m7 .fdxt-m7{font-weight:300;font-size:14px;line-height:30px;color:rgba(255,255,255,.8)}
@media only screen and (max-width:767px){.mfooter-tpl-m7 .mfinfo-m7{border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:25px;padding-bottom:30px}
.mfooter-tpl-m7 .mfctn-m7 .mfbtm-s1 .cpyrgt-s1 .crlft-s1 .crtxt-s1{display:none}
}
@media only screen and (min-width:768px){.mfooter-tpl-m7 .mfctn-m7{padding-top:67px}
.mfooter-tpl-m7 .mfctn-m7 .ftrmenu-tpl-m7{margin-bottom:35px}
.mfooter-tpl-m7 .mfctn-m7 .mfbtm-s1{border-top:1px solid rgba(255,255,255,.1);padding:17px 0}
.mfooter-tpl-m7 .mfctn-m7 .mfbtm-s1 .cpyrgt-s1 .crtxt-s1{white-space:nowrap;font-size:13px}
.mfooter-tpl-m7 .mfctn-m7 .mfbtm-s1 .cpyrgt-s1 .crlft-s1 .arnalink-s1{display:flex;align-items:center;justify-content:center}
.mfooter-tpl-m7 .mfctn-m7 .cntctus-tpl-m7{margin-bottom:35px}
.mfooter-tpl-m7 .mfctn-m7 .mftopsec-m7{margin-bottom:50px}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7{border-bottom:none;padding-bottom:0;margin-bottom:35px}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7.soctxt-tpl-s1{padding-bottom:22px}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7.soctxt-tpl-s1 .stctn-s1{display:flex}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7.soctxt-tpl-s1 .insoctxt-s1{margin-bottom:0;flex:0 0 50%;max-width:50%}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7.mfltopctn-m7{margin-bottom:40px}
.mfooter-tpl-m7 .mfctn-m7 .mflogo-m7{margin-bottom:7px}
.mfooter-tpl-m7 .mfctn-m7 .mflgodes-m7 .flgolnk-m7 img{max-width:70px}
.mfooter-tpl-m7 .mfctn-m7 .mflgodes-m7 .flgolnk-m7 .mgltx-m7{display:inline-block;vertical-align:middle;color:#fff;font-size:18px;font-weight:500;margin-right:9px}
.mfooter-tpl-m7 .mfctn-m7 .mftop-s1 .scol-s1{margin-top:8px}
.mfooter-tpl-m7 .mfctn-m7 .trustnmail-s1{display:flex}
.mfooter-tpl-m7 .mfinfo-m7{text-align:right}
.mfooter-tpl-m7 .mfdes-m7 .fdxt-m7{font-size:16px;line-height:32px}
}
@media only screen and (min-width:768px) and (max-width:1199px){.mfooter-tpl-m7 .mfctn-m7 .mflbtm-m7{display:flex;align-items:flex-start;margin:0 -15px}
.mfooter-tpl-m7 .mfctn-m7 .mflbtm-m7 .mfitm-m7{flex:0 0 50%;max-width:50%;padding:0 15px}
}
@media only screen and (max-width:991px){body.mfix-m7 .mfooter-tpl-m7 .mfctn-m7 .mfin-m7{padding-bottom:81px}
}
@media only screen and (min-width:992px){.mfooter-tpl-m7.mffix-m7 .mfctn-m7{padding-right:270px}
.mfooter-tpl-m7.mffix-m7 .mfctn-m7 [class^=col-]{padding:0 30px}
.mfooter-tpl-m7 .mfctn-m7 .mfttl-m7{font-size:18px;font-weight:400;margin-bottom:15px}
.mfooter-tpl-m7 .mfctn-m7 .mflgodes-m7{margin-bottom:33px}
.mfooter-tpl-m7 .mfctn-m7 .mfbtm-s1{padding:9px 0 10px}
.mfooter-tpl-m7 .mfctn-m7 .mfinfo-m7{display:flex;flex-direction:column;margin-bottom:0}
.mfooter-tpl-m7 .mfctn-m7 .mfinfo-m7 .ictictn-s1 .icitems-s1>li{margin-bottom:12px}
.mfooter-tpl-m7 .mfctn-m7 .mftopsec-m7{margin-bottom:35px}
.mfooter-tpl-m7 .mfctn-m7 .ttlitms-tpl-s1{margin-top:70px}
.mfooter-tpl-m7 .mfctn-m7 .trustnmail-s1 .items-s1{justify-content:right}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7{margin:0;padding:0}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7.mfltopctn-m7{margin-bottom:0}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7.soctxt-tpl-s1 .mfttl-m7{margin-bottom:0}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7.soctxt-tpl-s1 .itemsctn-s1{display:flex;align-items:center}
.mfooter-tpl-m7 .mfctn-m7 .mfitm-m7.soctxt-tpl-s1 .stctn-s1 .insoctxt-s1 .items-s1>li{margin-bottom:0}
.mfooter-tpl-m7 .mfctn-m7 .trustsymbls-tpl-m7{margin-bottom:45px}
.mfooter-tpl-m7 .mfctn-m7 .mftop-s1{text-align:right;padding-bottom:8px}
.mfooter-tpl-m7 .mfctn-m7 .mfltopctn-m7{margin-top:49px;margin-bottom:35px}
.mfooter-tpl-m7 .mfdes-m7 .fdxt-m7{font-size:18px;line-height:35px}
}
@media only screen and (max-width:1199px){.mfooter-tpl-m7 .col-ctn1-m7{order:1}
.mfooter-tpl-m7 .col-ctn2-m7{order:3}
.mfooter-tpl-m7 .col-ctn3-m7{order:2}
.mfooter-tpl-m7 .col-ctn4-m7{order:4}
}
@media only screen and (min-width:1200px){.mfooter-tpl-m7.mffix-m7 .mfctn-m7{padding-right:315px}
.mfooter-tpl-m7 .mfshps-m7 .shp-m7.shp1-m7{width:372px;height:315px;left:-450px;top:32px}
.mfooter-tpl-m7 .mfshps-m7 .shp-m7.shp2-m7{width:464px;height:561px;top:30px;right:-530px}
.mfooter-tpl-m7 .mfshps-m7 .shp-m7.shp3-m7{width:464px;height:227px;right:200px;bottom:240px}
.mfooter-tpl-m7 .mfshps-m7 .shp-m7.shp4-m7{display:block;width:437px;height:383px;left:-300px;bottom:-101px}
.mfooter-tpl-m7 .mfctn-m7 .mflbtm-m7 .mfitm-m7{margin-bottom:43px}
.mfooter-tpl-m7 .mfctn-m7 .mflbtm-m7 .mfitm-m7:last-child{margin-bottom:0}
.mfooter-tpl-m7 .mfctn-m7 .trustsymbls-tpl-m7{margin-bottom:55px}
.mfooter-tpl-m7 .mfctn-m7 .mfltopctn-m7{margin-top:40px}
.mfooter-tpl-m7 .mfctn-m7 .mflctn-m7 .trustnmail-s1{height:100%}
.mfooter-tpl-m7 .mfinfo-m7 .txt-s1{font-size:16px}
}
@media only screen and (min-width:1700px){.mfooter-tpl-m7 .mfctn-m7 .mfcntinp-m7{margin-bottom:25px}
}
.mfooter-tpl-m7 .mfshps-m7 .shp-m7 { background-image: none !important; }
.mmn-theme .mfooter-tpl-m7 .mflogo-m7 .flgolnk-m7 { display: inline-flex; align-items: center; gap: 10px; }
.mmn-theme .mfooter-tpl-m7 .mflogo-m7 .flgolnk-m7 img { height: 48px; width: auto; }
.mmn-theme .mfooter-tpl-m7 .mflogo-m7 .mgltx-m7 { white-space: nowrap; }
/* Support toggle tooltip (product-webinar-page.php): the reference sheet's purchase-row and info-tip rules. */
@media only screen and (min-width:768px) and (max-width:991px){.pttlrat-tpl-m7 .prtop-m7 .icntx-tpl-m7.copytx-tpl-m7 .ctinpbtn-m7{flex-direction:column}
}
.prdctinfo-tpl-m7.piv2-m7 .cartprc-m7 .cptin-m7 .cptitm-m7{flex-direction:column;align-items:flex-start}
.prdctinfo-tpl-m7.copytx-tpl-m7.ctonlyicon-m7 .ctinpbtn-m7.active .ctbtn-m7{background-color:transparent}
.prdctinfo-tpl-m7.copytx-tpl-m7.ctonlyicon-m7 .ctinpbtn-m7.active .ctbtn-m7:before{min-width:301px;right:-193px;left:unset}
.prdctinfo-tpl-m7.copytx-tpl-m7.ctonlyicon-m7 .ctinpbtn-m7.active .ctbtn-m7:after{display:none}
.prdctinfo-tpl-m7.copytx-tpl-m7.ctonlyicon-m7 .ctinpbtn-m7.active .ctbtn-m7 .nf{color:#414161}
.prdctinfo-tpl-m7.copytx-tpl-m7.ctonlyicon-m7 .ctinpbtn-m7 .ctbtn-m7 .nf{padding:0;font-size:20px}
.prdctinfo-tpl-m7.copytx-tpl-m7.ctonlyicon-m7 .ctctn-m7{margin-inline:0 10px}
.prdctinfo-tpl-m7 .cartprc-m7 .cptin-m7 .cptitm-m7{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.prdctinfo-tpl-m7 .cartprc-m7 .cptin-m7 .cptitm-m7:last-child{margin-bottom:0}
@media only screen and (min-width:1400px){.prdctinfo-tpl-m7.copytx-tpl-m7.ctonlyicon-m7 .ctinpbtn-m7.active .ctbtn-m7:before{right:50%;transform:translateX(50%)}
}
.copytx-tpl-m7.ctonlyicon-m7 .ctinpbtn-m7{background-color:transparent;padding:0;flex-direction:column}
.copytx-tpl-m7.ctonlyicon-m7 .ctinpbtn-m7 .ctbtn-m7{background-color:transparent;padding:0;margin:0}
.copytx-tpl-m7.ctonlyicon-m7 .ctinpbtn-m7 .ctbtn-m7 .nf{font-size:15px;padding:6px 10px;border-radius:50px;margin-left:0}
.copytx-tpl-m7.ctonlyicon-m7 .ctinpbtn-m7 .ctinp-m7{width:1px;padding:0;height:1px;opacity:0}
.copytx-tpl-m7 .ctctn-m7{display:flex;align-items:center;justify-content:center;flex-direction:column}
.copytx-tpl-m7 .ctinpbtn-m7{position:relative;padding:5px 15px 4px 5px;background-color:rgba(65,65,97,.05);border-radius:100px;display:inline-block;display:flex;align-items:center;justify-content:space-between;width:100%}
.copytx-tpl-m7 .ctinpbtn-m7.active .ctbtn-m7{background-color:#414161}
.copytx-tpl-m7 .ctinpbtn-m7.active .ctbtn-m7 .nf{color:#fff}
.copytx-tpl-m7 .ctinpbtn-m7.active .ctbtn-m7::after,.copytx-tpl-m7 .ctinpbtn-m7.active .ctbtn-m7::before{display:block}
.copytx-tpl-m7 .ctinpbtn-m7 .ctbtn-m7{background-color:rgba(65,65,97,.1);padding:7px 12px;border-radius:50px}
.copytx-tpl-m7 .ctinpbtn-m7 .ctbtn-m7[data-title]:before{content:attr(data-title)}
.copytx-tpl-m7 .ctinpbtn-m7 .ctbtn-m7::before{content:'کپی شد!';position:absolute;right:auto;left:0;background-color:#414161;color:#fff;padding:8px 10px;border-radius:20px;font-size:15px;display:none;min-width:80px;top:unset;bottom:45px;z-index:99}
.copytx-tpl-m7 .ctinpbtn-m7 .ctbtn-m7::after{content:"";position:absolute;top:-20px;right:auto;left:25px;width:10px;height:10px;background-color:#414161;transform:rotate(45deg);display:none}
.copytx-tpl-m7 .ctinpbtn-m7 .ctbtn-m7 .nf{font-size:21px;color:#414161}
.copytx-tpl-m7 .ctinpbtn-m7 .ctinp-m7{background-color:transparent;padding:0;font-size:13px;font-weight:400;color:rgba(0,0,0,.8);margin-left:15px;max-width:100%;width:100%;border:none;outline:0}
@media only screen and (min-width:768px){.copytx-tpl-m7.ctonlyicon-m7 .ctinpbtn-m7 .ctbtn-m7 .nf{font-size:16px;padding:10px 14px}
.copytx-tpl-m7 .ctinpbtn-m7 .ctinp-m7{font-size:14px}
}
/* Purchase box while its state loads: placeholders instead of a button that might not apply. */
.mmn-theme .mmn-skeleton-box { display: flex; flex-direction: column; gap: 12px; padding: 4px 0; }
.mmn-theme .mmn-sk { display: block; border-radius: 12px; background: linear-gradient(90deg, rgba(65,65,97,.06) 25%, rgba(65,65,97,.12) 37%, rgba(65,65,97,.06) 63%); background-size: 400% 100%; animation: mmn-shimmer 1.4s ease infinite; }
.mmn-theme .mmn-sk-line { height: 14px; width: 55%; }
.mmn-theme .mmn-sk-price { height: 28px; width: 70%; }
.mmn-theme .mmn-sk-button { height: 52px; width: 100%; border-radius: 100px; }
@keyframes mmn-shimmer { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
@media (prefers-reduced-motion: reduce) { .mmn-theme .mmn-sk { animation: none; } }
.mmn-theme .mmn-state-error { text-align: center; display: flex; flex-direction: column; gap: 10px; align-items: center; }
/* Lessons: the in-row player with its speed buttons, the PDF button, and the brief mark "continue learning" leaves. */
.mmn-theme .mmn-player { display: flex; flex-direction: column; gap: 10px; width: 100%; }
.mmn-theme .mmn-player-audio .mmn-audio-bar { background: rgba(65,65,97,.06); border-radius: 100px; padding: 6px 10px; }
.mmn-theme .mmn-player-audio audio { width: 100%; height: 40px; display: block; }
.mmn-theme .mmn-player video { width: 100%; border-radius: 16px; background: #000; display: block; }
.mmn-theme .mmn-speed { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.mmn-theme .mmn-speed-label { font-size: 13px; color: #414161; margin-inline-end: 4px; }
.mmn-theme .mmn-speed-btn { min-width: 44px; height: 32px; padding: 0 10px; border-radius: 100px; border: 1px solid rgba(65,65,97,.2); background: #fff; color: #414161; font-size: 13px; font-weight: 600; cursor: pointer; direction: ltr; }
.mmn-theme .mmn-speed-btn.active { background: #414161; color: #fff; border-color: #414161; }
.mmn-theme .mmn-speed-btn:focus-visible { outline: 2px solid #f57c00; outline-offset: 2px; }
.mmn-theme .mmn-speed-hint { margin: 0; font-size: 12px; color: #b26a00; }
.mmn-theme .mmn-pdf .btn-t { display: inline-flex; gap: 6px; align-items: center; }
.mmn-theme .mmn-embed iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 16px; }
.mmn-theme .dcitm-s1.mmn-lesson-focus { box-shadow: 0 0 0 3px rgba(245,124,0,.45); border-radius: 20px; transition: box-shadow .3s ease; }
.mmn-theme .mmn-has-note { position: relative; }
.mmn-theme .mmn-has-note::after { content: ""; position: absolute; top: 4px; inset-inline-end: 4px; width: 7px; height: 7px; border-radius: 50%; background: #f57c00; }
.mmn-theme .mmn-note-lesson { font-weight: 600; margin: 0 0 12px; }
.mmn-theme .mmn-note-dialog textarea { width: 100%; min-height: 140px; }
.mmn-theme .cartprc-m7 .cptitm-m7.mmn-support-pick { flex-direction: row; justify-content: space-between; align-items: center; gap: 8px; }
.mmn-theme .cartprc-m7 .cptitm-m7.mmn-support-pick .piittl-m7 { flex: 1; }
.mmn-theme .cartprc-m7 .cptitm-m7.mmn-support-pick .ctctn-m7 { flex: 0 0 auto; }
/* Announcement strip with a picture: the picture runs edge to edge (correction 34); text strips keep a centred inner box. */
.mmn-theme .campyalda-tpl-m7:not(.mmn-announce) .cylnk-m7, .mmn-theme .campyalda-tpl-m7:not(.mmn-announce) .cyctn-m7, .mmn-theme .campyalda-tpl-m7:not(.mmn-announce) .cyttlicn-m7 { display: block; width: 100%; max-width: none; margin: 0; padding: 0; }
.mmn-theme .campyalda-tpl-m7:not(.mmn-announce) .cyimg-s1 { display: block; width: 100%; margin: 0; padding: 0; }
.mmn-theme .campyalda-tpl-m7:not(.mmn-announce) .cyimg-s1 img { width: 100%; max-width: none; }
/* Shipping address for a course package (no UI-kit design): Mamanino dialog, two columns on wide screens, one on phones. */
.mmn-theme .mmn-ship-dialog .mdldlog-m7 { max-width: 720px; width: calc(100% - 32px); }
.mmn-theme .mmn-ship-dialog .mdlbody-m7 { max-height: calc(100svh - 80px); overflow-y: auto; }
.mmn-theme .mmn-ship-intro { color: #6b6b85; font-size: 14px; line-height: 1.9; margin: 0 0 16px; }
.mmn-theme .mmn-ship-saved { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; }
.mmn-theme .mmn-ship-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 768px) { .mmn-theme .mmn-ship-grid { grid-template-columns: 1fr 1fr; } .mmn-theme .mmn-ship-grid .mmn-ship-wide { grid-column: 1 / -1; } }
.mmn-theme .mmn-ship-grid .inputctn-t label { display: flex; flex-direction: column; gap: 6px; }
.mmn-theme .mmn-ship-grid .inputs-t { width: 100%; border-radius: 100px; }
.mmn-theme .mmn-ship-grid textarea.inputs-t { border-radius: 20px; min-height: 96px; }
.mmn-theme .mmn-field-error { color: #fc315a; font-size: 12px; }
.mmn-theme .mmn-invalid .inputs-t { border-color: #fc315a; }
.mmn-theme .mmn-ship-dialog .sbsbtns-tpl-m7 { margin-top: 20px; }
.mmn-theme .mmn-ship-note { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
/* Every Mamanino dialog scrolls inside itself, which clipped the round close button the template sets half outside the
   card (owner corrections 43, 51, 52, 68): it now sits inside the top corner and stays there while the dialog scrolls. */
.mmn-theme .mmn-dialog .mdlheader-m7 { position: sticky; top: 0; height: 0; z-index: 5; padding: 0; margin: 0; border: 0; }
.mmn-theme .mmn-dialog .mdlheader-m7 .close-m7 { position: absolute; top: 14px; inset-inline-end: 14px; inset-inline-start: auto; margin: 0; transform: none; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background-color: #fc315a; opacity: 1; box-shadow: 0 4px 10px rgba(252,49,90,.25); }
.mmn-theme .mmn-dialog .mdlheader-m7 .close-m7 .nf { color: #fff; font-size: 13px; }
.mmn-theme .mmn-dialog .mdlbody-m7 { padding-top: 28px; }
.mmn-theme .mmn-mini-academy .mmn-mini-meta { display: block; font-size: 12px; color: #6b6b85; margin-top: 4px; line-height: 1.6; }
.mmn-theme .mmn-cart-actions { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; }
/* Checkout steps bar (payment-bank.php): space between each step's icon and label, on one baseline. */
.mmn-theme .stepsbar-tpl-s1 .sbin-s1 { display: inline-flex; align-items: center; gap: 6px; }
.mmn-theme .cpexp-m7 p.mmn-line-details, .mmn-theme p.mmn-line-details { display: flex !important; flex-wrap: wrap; gap: 4px 18px; }
.mmn-theme .mmn-line-details > span { white-space: nowrap; }
/* Reviews (correction 43): RTL text, the rating block's range bar, optional email and CAPTCHA rows. */
.mmn-theme .qustansw-tpl-m7 .qacontt-m7, .mmn-theme .qustansw-tpl-m7 .qaqtx-m7, .mmn-theme .qustansw-tpl-m7 .qtx-m7 { text-align: right; }
.mmn-theme .qustansw-tpl-m7 .qacqust-m7 { display: block; }
.mmn-theme .cmntrcdrd-tpl-m7 .spttl-m7 { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mmn-theme .cmntrcdrd-tpl-m7 .spnumber-m7 { font-size: 28px; font-weight: 800; color: #ffbc1f; min-width: 40px; text-align: center; }
.mmn-theme .mmn-stars-lg button { font-size: 28px; padding: 0 3px; background: none; border: 0; cursor: pointer; }
.mmn-theme .mmn-stars-lg .icon-star { color: #e0e0e8; }
.mmn-theme .mmn-stars-lg .icon-star.st-m7 { color: #ffbc1f; }
.mmn-theme .mmn-rating-range { -webkit-appearance: none; appearance: none; width: 100%; height: 10px; border-radius: 100px; background: linear-gradient(to left, #ffbc1f var(--mmn-fill), rgba(65,65,97,.1) var(--mmn-fill)); direction: rtl; cursor: pointer; }
.mmn-theme .mmn-rating-range::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 4px solid #ffbc1f; box-shadow: 0 2px 6px rgba(0,0,0,.15); }
.mmn-theme .mmn-rating-range::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 4px solid #ffbc1f; }
.mmn-theme .cmntrcdrd-tpl-m7 .spprgrs-m7 { display: flex; flex-direction: column; gap: 12px; margin: 10px 0 18px; }
.mmn-theme .mmn-email-field input { width: 100%; margin-bottom: 8px; }
.mmn-theme .mmn-captcha-row { margin: 8px 0; }
.mmn-theme .mmn-purchase-dialog .pbltop-m7 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mmn-theme .mrate-tpl-m7.mmn-unrated .rnum-m7 { font-size: 12px; font-weight: 500; color: #6b6b85; }
/* Profile edit dialog (correction 51): wider, avatar fully inside with its actions, sectioned two-column form. */
.mmn-theme .mmn-profile-dialog.md-m7 { max-width: 760px; }
.mmn-theme .mmn-profile-dialog .mdlin-m7 { padding: 4px 8px 8px; }
.mmn-theme .mmn-profile-dialog .mmn-profile-avatar { position: static; margin: 4px 0 18px; transform: none; }
.mmn-theme .mmn-profile-dialog .mmn-profile-avatar .abctn-m7 { display: flex; align-items: center; gap: 16px; position: static; margin: 0; flex-wrap: wrap; justify-content: flex-start; }
.mmn-theme .mmn-profile-dialog .mmn-profile-avatar .abimg-m7 { position: static; margin: 0; width: 96px; height: 96px; flex: 0 0 96px; }
.mmn-theme .mmn-profile-dialog .mmn-profile-avatar .avt-m7, .mmn-theme .mmn-profile-dialog .mmn-profile-avatar .avt-m7 img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; }
.mmn-theme .mmn-profile-dialog .mmn-profile-avatar .abbtns-m7 { display: flex; gap: 10px; position: static; margin: 0; flex-wrap: wrap; }
.mmn-theme .mmn-profile-dialog .mmn-profile-avatar .abbtn-m7 .btn-t { width: auto; padding: 10px 18px; }
.mmn-theme .mmn-form-section { font-size: 15px; font-weight: 700; color: #414161; margin: 6px 0 12px; padding-bottom: 8px; border-bottom: 1px solid rgba(65,65,97,.1); }
.mmn-theme .mmn-profile-dialog .sbsbtns-tpl-m7 { position: sticky; bottom: -8px; background: #fff; padding-top: 12px; z-index: 2; }
.mmn-theme .mmn-profile-dialog .sbsbtns-tpl-m7 .sbctn-m7 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.mmn-theme .mmn-profile-dialog .sbsbtns-tpl-m7 .btnctn-m7 { width: auto; max-width: none; flex: none; }
.mmn-theme .mmn-profile-dialog .sbsbtns-tpl-m7 .btn-t { width: 100%; }
/* Waiting states (correction 50): row/card placeholders and a brand-coloured loader; still for reduced motion. */
.mmn-theme .mmn-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.mmn-theme .mmn-skeleton { display: flex; flex-direction: column; gap: 14px; padding: 6px 0; }
.mmn-theme .mmn-skeleton-card { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.mmn-theme .mmn-sk-item { display: flex; align-items: center; gap: 14px; padding: 14px; border-radius: 22px; background: #fff; box-shadow: 0 6px 16px rgba(0,0,0,.04); }
.mmn-theme .mmn-skeleton-line .mmn-sk-item { padding: 6px 0; box-shadow: none; background: transparent; }
.mmn-theme .mmn-sk-thumb { width: 72px; height: 72px; border-radius: 18px; flex: 0 0 72px; }
.mmn-theme .mmn-sk-lines { display: flex; flex-direction: column; gap: 10px; flex: 1; }
.mmn-theme .mmn-sk-lines .mmn-sk-line { height: 12px; width: 80%; }
.mmn-theme .mmn-sk-lines .mmn-sk-line.short { width: 55%; }
.mmn-theme .mmn-sk-lines .mmn-sk-line.shorter { width: 35%; }
.mmn-theme .mmn-page-loader { min-height: 40vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; }
.mmn-theme .mmn-page-loader-text { color: #6b6b85; font-size: 14px; }
.mmn-theme .mmn-dots { display: inline-flex; gap: 8px; }
.mmn-theme .mmn-dots span { width: 12px; height: 12px; border-radius: 50%; background: #f57c00; animation: mmn-bounce 1s ease-in-out infinite; }
.mmn-theme .mmn-dots span:nth-child(2) { background: #fc315a; animation-delay: .15s; }
.mmn-theme .mmn-dots span:nth-child(3) { background: #414161; animation-delay: .3s; }
@keyframes mmn-bounce { 0%, 80%, 100% { transform: translateY(0); opacity: .6; } 40% { transform: translateY(-8px); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .mmn-theme .mmn-dots span { animation: none; opacity: .8; } }
.mmn-theme .mmn-load-failed { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 24px 0; }

/* Newsletter dialog (correction 40): address, consent, CAPTCHA, then the confirmation code. */
.mmn-theme .mmn-newsletter-dialog .inputctn-t { margin-top: .75rem; }
.mmn-theme .mmn-consent { display: flex; align-items: flex-start; gap: .5rem; margin: .9rem 0 .25rem; font-size: .85rem; line-height: 1.7; cursor: pointer; }
.mmn-theme .mmn-consent input { margin-top: .3rem; width: 1rem; height: 1rem; accent-color: var(--mmn-primary, #ff5c7c); flex: none; }
.mmn-theme .mmn-form-error { margin-top: .6rem; color: #d33a4f; font-size: .85rem; font-weight: 600; }
.mmn-theme .mmn-newsletter-code { display: flex; flex-direction: column; gap: .6rem; }
.mmn-theme .mmn-newsletter-code label { display: flex; flex-direction: column; gap: .35rem; }
.mmn-theme .mmn-newsletter-code input { text-align: center; letter-spacing: .4em; font-size: 1.15rem; }
.mmn-theme .mmn-newsletter-done { display: flex; align-items: center; gap: .5rem; margin: 1rem 0; font-weight: 700; color: #1f9d6a; }
.mmn-theme .mmn-newsletter-step .btnctn-t { margin-top: .5rem; }
.mmn-theme .mmn-newsletter-dialog .sbsbtns-tpl-m7 { margin-top: 1rem; }


/* The reviews tab pill from the reference product page (its stylesheet is not in the theme bundle) — correction 42. */
.mmn-theme #mmn-reviews .tabs-tpl-m7 .navtabs-m7 { border-bottom: unset; display: inline-flex; flex-wrap: nowrap; max-width: 100%; overflow: unset; justify-content: flex-start; padding-bottom: 0; }
.mmn-theme #mmn-reviews .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7 { display: inline-flex; align-items: center; text-align: right; padding: 6px 8px; color: #414161; background-color: rgba(65,65,97,.15); position: relative; z-index: 1; border-radius: 50px; transition: all .3s ease 0s; }
.mmn-theme #mmn-reviews .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7.active { color: #fff; background-color: #414161; }
.mmn-theme #mmn-reviews .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7 .tbtx-m7 { font-size: 15px; font-weight: 500; line-height: 23px; white-space: nowrap; color: inherit; }
.mmn-theme #mmn-reviews .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7 .tbtx-m7 .tbtnum-m7 { font-size: 12px; }
.mmn-theme #mmn-reviews .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7 .nf { font-size: 18px; margin-left: 5px; }
@media only screen and (max-width: 575px) { .mmn-theme #mmn-reviews .tabs-tpl-m7 .navtabs-m7 { padding: 0 15px 15px; } }
@media only screen and (min-width: 992px) {
  .mmn-theme #mmn-reviews .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7 { padding: 8px 12px 8px 15px; }
  .mmn-theme #mmn-reviews .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7 .tbtx-m7 { font-size: 18px; line-height: 26px; }
  .mmn-theme #mmn-reviews .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7 .nf { font-size: 19px; }
}

/* The template asks for bgimgs/circle6.svg, which the official UI never shipped: no request for a missing decoration. */
.mmn-theme .mainsec-tpl-m7 .msctn-m7:after { background-image: none; }

/* ===== Round 3 (QA #8/#38) — footer: logo, contact panel, social and newsletter alignment ===== */
/* The footer logo keeps its own proportions (it was squeezed to 70x48 by a fixed height plus a max width). */
.mmn-theme .mfooter-tpl-m7 .mfctn-m7 .mflgodes-m7 .flgolnk-m7 { max-width: none; width: auto; }
.mmn-theme .mfooter-tpl-m7 .mflogo-m7 .flgolnk-m7 img { width: auto; height: auto; max-width: 140px; max-height: 48px; object-fit: contain; flex: none; }
/* Contact panel (QA round 4, #8/#38) with the reference's box, icons and type sizes (_cntctus-tpl-m7.scss: label 15px,
   value 14px, phone 16px bold; 20px, 16px and 21px from 992px). Each label and its value sit together on the right and
   read as one RTL line ("آدرس: تهران، …") that wraps under itself; phone and email keep their LTR order. */
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 { position: relative; z-index: 1; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuctn-m7 { padding: 20px; border-radius: 32px; background-color: rgba(255,255,255,.05); }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 { margin: 0; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 + .cuitm-m7 { margin-top: 10px; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .rctn-m7 { display: flex; justify-content: flex-start; align-items: baseline; gap: 8px; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .rctn-m7 .cittl-m7 { flex: none; align-items: center; margin: 0; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .rctn-m7 .cittl-m7 .cttl-m7 { font-size: 15px; font-weight: 400; line-height: 24px; color: #fff; white-space: nowrap; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .ciicn-m7 { display: inline-flex; justify-content: center; align-self: center; width: 22px; margin: 0 0 0 9px; padding: 0; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .ciicn-m7 .nf { font-size: 16px; color: #fff; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .critms-m7 { flex: 0 1 auto; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .critms-m7 .critm-m7 { padding: 0; margin: 0; min-width: 0; max-width: 100%; text-align: right; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .critms-m7 .critm-m7:before { display: none; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .ciexp-m7 { display: block; padding: 0; text-align: right; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .ciexp-m7 .etx-m7 { display: inline; font-size: 14px; font-weight: 500; line-height: 24px; color: rgba(255,255,255,.8); text-align: right; overflow-wrap: anywhere; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .ciexp-m7 .etx-m7.num-m7 { font-size: 16px; font-weight: 700; line-height: 26px; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .ciexp-m7 .etx-m7.ltr-m7 { direction: ltr; unicode-bidi: isolate; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .ciexp-m7 .etx-m7:not(.ltr-m7) { direction: rtl; }
/* Phone and email rows: the value sits on the left, across from its label. The address row keeps its value next to
   "آدرس:" on the right (the rules above). */
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7:has(.icon-phone) .critms-m7,
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7:has(.icon-message) .critms-m7 { flex: 1 1 auto; align-items: flex-end; }
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7:has(.icon-phone) .ciexp-m7,
.mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7:has(.icon-message) .ciexp-m7 { text-align: left; }
@media only screen and (min-width: 768px) {
  .mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuctn-m7 { padding: 26px 25px; }
}
@media only screen and (min-width: 992px) {
  .mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .rctn-m7 .cittl-m7 .cttl-m7 { font-size: 20px; }
  .mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .ciicn-m7 .nf { font-size: 20px; }
  .mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .ciexp-m7 .etx-m7 { font-size: 16px; line-height: 26px; }
  .mmn-theme .mfooter-tpl-m7 .cntctus-tpl-m7 .cuitms-m7 .cuitm-m7 .ciexp-m7 .etx-m7.num-m7 { font-size: 21px; }
}
/* The decoration that sat under the translucent contact box showed through it as a second, darker box: not drawn on wide screens (the side shapes remain). */
@media only screen and (min-width: 1200px) {
  .mmn-theme .mfooter-tpl-m7 .mfshps-m7 .shp-m7.shp3-m7 { display: none; }
}
/* Social groups: a clear gap between each heading and its icons, and between the icons. */
.mmn-theme .mfooter-tpl-m7 .soctxt-tpl-s1 .itemsctn-s1 { gap: 16px; }
.mmn-theme .mfooter-tpl-m7 .soctxt-tpl-s1 .itemsctn-s1 .txtctn-s1 { margin-left: 0; }
.mmn-theme .mfooter-tpl-m7 .soctxt-tpl-s1 .items-s1 { gap: 10px; }
.mmn-theme .mfooter-tpl-m7 .soctxt-tpl-s1 .items-s1 > li { margin: 0; }
/* Newsletter field: placeholder and typing start at the right (an email or a number typed in it still reads left to right). */
.mmn-theme .mfooter-tpl-m7 .mmn-newsletter .inputs-t { text-align: right; padding-right: 22px; }
.mmn-theme .mfooter-tpl-m7 .mmn-newsletter .inputs-t:placeholder-shown { direction: rtl; }
.mmn-theme .mfooter-tpl-m7 .mmn-newsletter .inputs-t::placeholder { text-align: right; }
.mmn-theme .mmn-newsletter-dialog .btn-t:disabled { opacity: .55; cursor: not-allowed; }

/* ===== Round 3 (QA #9/#43, #25/#51, #52) — every design dialog: the round red close button at the card's top-left
   corner, half outside the card as in the reference; the card scrolls inside so nothing is clipped. ===== */
.mmn-theme .mmn-dialog { overflow: visible; max-height: none; border-radius: 40px; }
.mmn-theme .mmn-dialog .modal-dialog { position: relative; }
.mmn-theme .mmn-dialog .mdlcont-m7 { max-height: calc(100svh - 3.5rem); overflow-y: auto; overscroll-behavior: contain; border-radius: 40px; scrollbar-width: thin; }
.mmn-theme .mmn-dialog .mdlheader-m7 { position: absolute; top: 0; left: 0; right: 0; height: 0; z-index: 6; padding: 0; margin: 0; border: 0; }
.mmn-theme .mmn-dialog .mdlheader-m7 .close-m7 { pointer-events: auto; top: -14px; right: auto; left: 32px; width: 40px; height: 40px; box-shadow: 0 6px 14px rgba(252,49,90,.3); }
.mmn-theme .mmn-dialog .mdlheader-m7 .close-m7 .nf { background: none; padding: 0; font-size: 14px; }
.mmn-theme .mmn-dialog .mdlheader-m7 .close-m7:focus-visible { outline: 3px solid rgba(65,65,97,.45); outline-offset: 2px; }
.mmn-theme .mmn-dialog .mdlbody-m7 { padding-top: 12px; }
@media (max-width: 575.98px) {
  .mmn-theme .mmn-dialog .mdlheader-m7 .close-m7 { top: -12px; left: 22px; width: 36px; height: 36px; }
}

/* ===== Round 3 (QA #9/#43, #33/#55) — the reference's five-face rating scale (strprgrs-tpl-m7), shared by product and
   consultant reviews: faces over coloured ticks, a teal rail filled from the right to a white round thumb. ===== */
.mmn-theme .mmn-face-rating { margin-bottom: 18px; }
.mmn-theme .mmn-face-rating .spttl-m7 { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.mmn-theme .mmn-face-rating .spttl-m7 .sttx-m7 { font-size: 15px; font-weight: 700; color: #333; margin-top: 7px; }
.mmn-theme .mmn-face-rating .spnumber-m7 { font-size: 20px; font-weight: 800; border-radius: 12px; color: #000; background-color: rgba(0,0,0,.1); padding: 6px 11px 1px; line-height: 26px; min-width: 50px; text-align: center; }
.mmn-theme .mmn-face-rating .mmn-faces { position: relative; display: flex; align-items: center; justify-content: space-between; height: 25px; margin: 0 -1px 24px; }
.mmn-theme .mmn-face-rating .mmn-face { width: 25px; height: 25px; padding: 0; border: 0; border-radius: 50%; background: center / cover no-repeat; cursor: pointer; transition: transform .15s ease; }
.mmn-theme .mmn-face-rating .mmn-face:hover, .mmn-theme .mmn-face-rating .mmn-face.on { transform: scale(1.18); }
.mmn-theme .mmn-face-rating .mmn-face-1 { background-image: url(../images/icons/status1.svg); }
.mmn-theme .mmn-face-rating .mmn-face-2 { background-image: url(../images/icons/status2.svg); }
.mmn-theme .mmn-face-rating .mmn-face-3 { background-image: url(../images/icons/status3.svg); }
.mmn-theme .mmn-face-rating .mmn-face-4 { background-image: url(../images/icons/status4.svg); }
.mmn-theme .mmn-face-rating .mmn-face-5 { background-image: url(../images/icons/status5.svg); }
.mmn-theme .mmn-face-rating .mmn-ticks { position: absolute; left: 0; right: 0; bottom: -18px; height: 11px; pointer-events: none; }
.mmn-theme .mmn-face-rating .mmn-tick { position: absolute; bottom: 0; width: 3px; height: 7px; margin-right: -1.5px; border-radius: 5px; }
.mmn-theme .mmn-face-rating .mmn-tick.major { height: 11px; }
.mmn-theme .mmn-face-rating .mmn-face-rail { padding: 0; }
.mmn-theme .mmn-face-rating .mmn-face-rail input[type=range] { -webkit-appearance: none; appearance: none; display: block; width: 100%; height: 11px; margin: 0; border-radius: 15px; cursor: pointer; background: linear-gradient(to left, #3fb8af var(--mmn-fill, 100%), rgba(65,65,97,.08) var(--mmn-fill, 100%)); }
.mmn-theme .mmn-face-rating .mmn-face-rail input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 23px; height: 23px; border-radius: 50%; background: #fff; border: 1px solid #d9d9d9; box-shadow: inset 0 0 1px #fff, inset 0 1px 7px #ebebeb, 0 3px 6px -3px #bbb; transition: transform .15s ease; }
.mmn-theme .mmn-face-rating .mmn-face-rail input[type=range]::-moz-range-thumb { width: 23px; height: 23px; border-radius: 50%; background: #fff; border: 1px solid #d9d9d9; box-shadow: inset 0 1px 7px #ebebeb, 0 3px 6px -3px #bbb; }
.mmn-theme .mmn-face-rating .mmn-face-rail input[type=range]:focus-visible { outline: none; }
.mmn-theme .mmn-face-rating .mmn-face-rail input[type=range]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 4px rgba(63,184,175,.35); }
@media (min-width: 768px) { .mmn-theme .mmn-face-rating .spttl-m7 { margin-bottom: 27px; } .mmn-theme .mmn-face-rating .spttl-m7 .sttx-m7 { font-size: 18px; font-weight: 500; margin-top: 4px; } }
@media (prefers-reduced-motion: reduce) { .mmn-theme .mmn-face-rating .mmn-face { transition: none; } }

/* Round 3 (QA #33/#55): the consultation card's actions in one row, "review" next to "note"; the review state line. */
.mmn-theme .mmn-consult-card .mmn-consult-actions { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; }
.mmn-theme .mmn-consult-card .mmn-consult-actions .btnctn-t { margin: 0; width: auto; }
.mmn-theme .mmn-consult-card .mmn-consult-actions .btn-t { white-space: nowrap; gap: 6px; }
.mmn-theme .mmn-consult-card .mmn-review-state { margin-top: 8px; font-size: 13px; font-weight: 600; color: #5b5b77; }
.mmn-theme .mmn-consult-card .mmn-review-state.approved { color: #1f9d6a; }
@media (max-width: 575.98px) { .mmn-theme .mmn-consult-card .mmn-consult-actions { justify-content: flex-start; } }

/* Round 3 (QA #22): breathing room between the final confirmation's amount to pay and its two buttons. */
.mmn-theme .payconfirm-p-s1 .cfbox-a7 .cfbtns-s1 { margin-top: 22px; }

/* Round 3 (QA #69): every notification (sonner portal) in the Academy's Persian font, like the rest of the site; the
   icon font of the status icon is kept. Line breaks wrap inside the box. */
.mmn-theme [data-sonner-toaster], .mmn-theme [data-sonner-toaster] *:not(.nf) { font-family: Shabnam, Tahoma, sans-serif !important; }
.mmn-theme .mmn-toaster .amctn-m7.fwid-m7 .amtx-m7 { min-width: 0; overflow-wrap: anywhere; }
.mmn-theme .mmn-toaster .amctn-m7.fwid-m7 .amtx-m7 .ttl-s1 { font-size: 14px; font-weight: 500; }
.mmn-theme .mmn-toaster .amctn-m7.fwid-m7 .amtx-m7 .tx-m7 { font-size: 13px; line-height: 22px; color: #fff; }

/* Round 3 (QA #58): the support option on ONE row as in product-webinar-page.php — label (wraps inside its own
   column if needed), the info icon, then the switch — also inside the piv2 box variant that stacks items. */
.mmn-theme .prdctinfo-tpl-m7 .cartprc-m7 .cptin-m7 .cptitm-m7.mmn-support-pick { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 10px; }
.mmn-theme .prdctinfo-tpl-m7 .cartprc-m7 .cptin-m7 .cptitm-m7.mmn-support-pick .piittl-m7 { flex: 1 1 auto; min-width: 0; margin: 0; }
.mmn-theme .prdctinfo-tpl-m7 .cartprc-m7 .cptin-m7 .cptitm-m7.mmn-support-pick .pttx-m7 { display: block; font-size: 14px; font-weight: 700; line-height: 22px; }
.mmn-theme .prdctinfo-tpl-m7 .cartprc-m7 .cptin-m7 .cptitm-m7.mmn-support-pick .ctctn-m7 { flex: none; margin: 0; }
.mmn-theme .prdctinfo-tpl-m7 .cartprc-m7 .cptin-m7 .cptitm-m7.mmn-support-pick .inputctn-t { flex: none; width: auto; margin: 0; }

/* Round 3 (QA #70): the signed-in customer's menu under their name in the header, in the theme's palette. */
.mmn-theme .mmn-account { position: relative; display: inline-block; }
.mmn-theme .mmn-account .mmn-account-caret { font-size: 10px; margin-inline-start: 8px; transform: rotate(180deg); transition: transform .2s ease; }
.mmn-theme .mmn-account.open .mmn-account-caret { transform: rotate(0deg); }
.mmn-theme .mmn-account-menu { position: absolute; top: calc(100% + 10px); left: 0; z-index: 60; min-width: 210px; padding: 10px; display: flex; flex-direction: column; gap: 4px; background: #fff; border-radius: 20px; box-shadow: 0 12px 30px rgba(65,65,97,.18); text-align: right; animation: mmn-account-in .15s ease-out; }
.mmn-theme .mmn-account-item { display: flex; align-items: center; gap: 12px; width: 100%; padding: 11px 14px; border: 0; border-radius: 14px; background: none; color: #414161; font-size: 14px; font-weight: 500; line-height: 22px; text-decoration: none; cursor: pointer; transition: background-color .15s ease; }
.mmn-theme .mmn-account-item .nf { font-size: 17px; width: 20px; text-align: center; color: #414161; }
.mmn-theme .mmn-account-item:hover, .mmn-theme .mmn-account-item:focus-visible { background-color: rgba(65,65,97,.08); outline: none; }
.mmn-theme .mmn-account-item.danger, .mmn-theme .mmn-account-item.danger .nf { color: #f22e52; }
.mmn-theme .mmn-account-item.danger:hover, .mmn-theme .mmn-account-item.danger:focus-visible { background-color: rgba(242,46,82,.08); }
@keyframes mmn-account-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .mmn-theme .mmn-account-menu { animation: none; } }
/* Phones: the name sits in the fixed bottom bar, so the menu opens upwards from it. */
@media (max-width: 991.98px) { .mmn-theme .mmn-account-menu { top: auto; bottom: calc(100% + 12px); left: 0; min-width: 190px; max-width: calc(100vw - 30px); } .mmn-theme .mmn-account .mmn-account-caret { display: none; } }

/* Round 3 (QA #50): the approved three-dot loader also inside a page part or dialog; fades in after a moment (no flash). */
.mmn-theme .mmn-page-loader { animation: mmn-loader-in .2s ease-out .15s both; }
.mmn-theme .mmn-inline-loader { min-height: 120px; padding: 24px 0; width: 100%; }
@keyframes mmn-loader-in { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .mmn-theme .mmn-page-loader { animation: none; } }
.mmn-theme .mmn-dots.mmn-dots-sm { gap: 5px; vertical-align: middle; }
.mmn-theme .mmn-dots.mmn-dots-sm span { width: 7px; height: 7px; }

/* ===== Round 3 (QA #25/#51): the profile edit dialog as the reference — the big round picture centred over the card's
   top edge on a pill with "change" (right) and "remove" (left); the fields scroll inside, the buttons stay. ===== */
.mmn-theme .mmn-profile-dialog { margin-top: 96px; }
.mmn-theme .mmn-profile-dialog .mdlcont-m7 { overflow: visible; max-height: none; padding-top: 96px; }
.mmn-theme .mmn-profile-dialog .mdlinpts-m7 { max-height: calc(100svh - 400px); min-height: 140px; overflow-y: auto; overscroll-behavior: contain; padding: 4px 6px 0; margin: 0 -6px; scrollbar-width: thin; }
.mmn-theme .mmn-profile-dialog .sbsbtns-tpl-m7 { position: static; }
.mmn-theme .mmn-profile-top { position: absolute; top: -96px; left: 0; right: 0; z-index: 5; display: flex; justify-content: center; pointer-events: none; }
.mmn-theme .mmn-profile-top .mmn-pt-avatar { position: relative; z-index: 2; width: 200px; height: 200px; margin: 0; border-radius: 50%; border: 8px solid #fff; background: #fff; box-shadow: 0 6px 18px rgba(65,65,97,.12); overflow: hidden; }
.mmn-theme .mmn-profile-top .mmn-pt-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.mmn-theme .mmn-profile-top .mmn-pt-bar { position: absolute; top: 140px; left: 50%; transform: translateX(-50%); z-index: 1; display: flex; width: 372px; max-width: calc(100% - 24px); height: 60px; border-radius: 40px; overflow: hidden; pointer-events: auto; }
.mmn-theme .mmn-profile-top .mmn-pt-bar button { flex: 1 1 50%; display: flex; align-items: center; gap: 10px; border: 0; padding: 0 10px; font-size: 15px; font-weight: 500; cursor: pointer; transition: filter .15s ease; }
.mmn-theme .mmn-profile-top .mmn-pt-change { justify-content: flex-start; background: #dcdce4; color: #414161; }
.mmn-theme .mmn-profile-top .mmn-pt-remove { justify-content: flex-end; background: #fff1f4; color: #fc315a; }
.mmn-theme .mmn-profile-top .mmn-pt-bar button:hover:not(:disabled), .mmn-theme .mmn-profile-top .mmn-pt-bar button:focus-visible { filter: brightness(.96); outline: none; }
.mmn-theme .mmn-profile-top .mmn-pt-bar button:focus-visible .mmn-pt-icn { box-shadow: 0 0 0 3px rgba(65,65,97,.35); }
.mmn-theme .mmn-profile-top .mmn-pt-remove:disabled { opacity: .45; cursor: not-allowed; }
.mmn-theme .mmn-profile-top .mmn-pt-icn { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: #fff; }
.mmn-theme .mmn-profile-top .mmn-pt-change .mmn-pt-icn { background: #414161; }
.mmn-theme .mmn-profile-top .mmn-pt-remove .mmn-pt-icn { background: #fc315a; }
.mmn-theme .mmn-profile-top .mmn-pt-icn .nf { font-size: 17px; color: #fff; }
.mmn-theme .mmn-profile-top .mmn-pt-tx { white-space: nowrap; }
/* The tab/backdrop height leaves room above the card for the picture. */
@media (max-width: 575.98px) {
  .mmn-theme .mmn-profile-dialog { margin-top: 70px; }
  .mmn-theme .mmn-profile-dialog .mdlcont-m7 { padding-top: 78px; }
  .mmn-theme .mmn-profile-dialog .mdlinpts-m7 { max-height: calc(100svh - 330px); }
  .mmn-theme .mmn-profile-top { top: -70px; }
  .mmn-theme .mmn-profile-top .mmn-pt-avatar { width: 140px; height: 140px; border-width: 6px; }
  .mmn-theme .mmn-profile-top .mmn-pt-bar { top: 100px; width: 330px; height: 50px; }
  .mmn-theme .mmn-profile-top .mmn-pt-icn { width: 34px; height: 34px; }
  .mmn-theme .mmn-profile-top .mmn-pt-bar button { font-size: 14px; padding: 0 8px; }
}
/* The change-picture dialog: the circle to pick a new picture (right), the exchange arrows, the current picture (left). */
.mmn-theme .mmn-avatar-dialog .mmn-avatar-swap { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 6px 4px 10px; }
.mmn-theme .mmn-avatar-swap .mmn-as-pick { position: relative; width: 166px; height: 166px; flex: none; margin: 0; border-radius: 50%; display: grid; place-items: center; cursor: pointer; background: #414161; box-shadow: 0 0 0 7px #fff, 0 0 0 8px transparent; outline: 1px dashed #f57c00; outline-offset: 7px; overflow: visible; }
.mmn-theme .mmn-avatar-swap .mmn-as-pick img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.mmn-theme .mmn-avatar-swap .mmn-as-pick-tx { color: #fff; font-size: 15px; font-weight: 700; line-height: 26px; text-align: center; padding: 0 30px; }
.mmn-theme .mmn-avatar-swap .mmn-as-pick:focus-within { outline-style: solid; outline-width: 2px; }
.mmn-theme .mmn-avatar-swap .mmn-as-arrows { font-size: 40px; color: #f57c00; }
.mmn-theme .mmn-avatar-swap .mmn-as-current { width: 196px; height: 196px; flex: none; margin: 0; border-radius: 50%; border: 2px solid #f57c00; padding: 4px; }
.mmn-theme .mmn-avatar-swap .mmn-as-current img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.mmn-theme .mmn-avatar-swap .mmn-as-hint { flex: 0 0 100%; text-align: center; margin: 8px 0 0; }
.mmn-theme .mmn-avatar-dialog .mdlbody-m7 { padding-top: 22px; }
@media (max-width: 575.98px) {
  .mmn-theme .mmn-avatar-dialog .mmn-avatar-swap { justify-content: center; }
  .mmn-theme .mmn-avatar-swap .mmn-as-pick { width: 116px; height: 116px; }
  .mmn-theme .mmn-avatar-swap .mmn-as-pick-tx { font-size: 13px; line-height: 22px; padding: 0 16px; }
  .mmn-theme .mmn-avatar-swap .mmn-as-current { width: 128px; height: 128px; }
  .mmn-theme .mmn-avatar-swap .mmn-as-arrows { font-size: 28px; }
}

/* ===== Round 3 (QA #52): purchase details — the rating badge above the title; printing prints only the details sheet. */
.mmn-theme .mmn-purchase-dialog .pbltop-m7 { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.mmn-theme .mmn-purchase-dialog .pbltop-m7 .mrate-tpl-m7 { margin: 0; align-self: flex-start; }
.mmn-print-sheet { display: none; }
@media print {
  @page { size: A4; margin: 16mm 14mm; }
  body.mmn-printing-purchase > *:not(#mmn-print-sheet) { display: none !important; }
  body.mmn-printing-purchase { background: #fff !important; overflow: visible !important; }
  body.mmn-printing-purchase #mmn-print-sheet { display: block !important; color: #222; font-family: Shabnam, Tahoma, sans-serif; font-size: 12pt; line-height: 1.7; text-align: right; direction: rtl; }
  #mmn-print-sheet .mmn-ps-head { display: block; border-bottom: 2px solid #414161; padding-bottom: 6pt; margin-bottom: 12pt; }
  #mmn-print-sheet .mmn-ps-head strong { display: block; font-size: 15pt; color: #414161; }
  #mmn-print-sheet .mmn-ps-head span { display: block; font-size: 11pt; color: #555; }
  #mmn-print-sheet .mmn-ps-product { display: flex; gap: 12pt; align-items: center; margin-bottom: 12pt; break-inside: avoid; }
  #mmn-print-sheet .mmn-ps-product img { width: 90pt; height: 90pt; object-fit: cover; border-radius: 10pt; }
  #mmn-print-sheet h1 { font-size: 15pt; margin: 0; }
  #mmn-print-sheet .mmn-ps-rating { margin: 0 0 2pt; color: #b7791f; font-weight: 700; }
  #mmn-print-sheet p { margin: 0; }
  #mmn-print-sheet table { width: 100%; border-collapse: collapse; }
  #mmn-print-sheet th, #mmn-print-sheet td { padding: 6pt 4pt; border-bottom: 1px solid #ddd; text-align: right; vertical-align: top; }
  #mmn-print-sheet th { width: 38%; color: #555; font-weight: 500; }
  #mmn-print-sheet tr { break-inside: avoid; }
  #mmn-print-sheet .mmn-ps-foot { margin-top: 14pt; color: #777; font-size: 9pt; }
}

/* ===== QA #57 (round 4): the open PDF / audio lesson as product-course-new-comment-page.php lays it out — "I studied
   this" on the right and the PDF pages (the design's artwork, 78×99, no names) or the audio player on the left, in one
   row from 768px (stacked on phones, as in the design). ===== */
.mmn-theme .dnlcrs-tpl-s1 .dcctn-s1 .dcitms-s1 > li .dccntt-s1 .mmn-pdf-gallery { margin-inline-start: auto; max-width: 100%; }
.mmn-theme .dnlcrs-tpl-s1 .dcctn-s1 .dcitms-s1 > li .dccntt-s1 .mmn-pdf-gallery .dcbfitms-s1 { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 15px; width: auto; }
.mmn-theme .dnlcrs-tpl-s1 .dcctn-s1 .dcitms-s1 > li .dccntt-s1 .mmn-pdf-gallery .dcbfitem-s1 { margin: 0; display: flex; }
.mmn-theme .dnlcrs-tpl-s1 .dcctn-s1 .dcitms-s1 > li .dccntt-s1 .mmn-pdf-gallery .dcbfilnk-s1 { display: block; width: 78px; height: 99px; padding: 0; background: #fff; border: 1px solid rgba(65,65,97,.3); border-radius: 10px; overflow: hidden; transition: transform .15s ease, box-shadow .15s ease; }
.mmn-theme .mmn-pdf-gallery .dcbfilnk-s1 img { display: block; width: 100%; height: 100%; object-fit: cover; }
.mmn-theme .mmn-pdf-gallery .dcbfilnk-s1:hover, .mmn-theme .mmn-pdf-gallery .dcbfilnk-s1:focus-visible { transform: translateY(-2px); box-shadow: 0 6px 14px rgba(65,65,97,.18); }
.mmn-theme .mmn-pdf-gallery .dcbfilnk-s1:focus-visible { outline: 2px solid #f57c00; outline-offset: 2px; }
.mmn-theme .dnlcrs-tpl-s1 .dcctn-s1 .dcitms-s1 > li .dccntt-s1 .mmn-check-row > .mmn-player-audio { flex: 1 1 auto; min-width: 0; }
.mmn-theme .dnlcrs-tpl-s1 .dcctn-s1 .dcitms-s1 > li .dccntt-s1 .mmn-check-row > .dcbchck-s1 { flex: none; }
/* The pill reads "مطالعه کردم" on one line on every lesson type (beside a narrow column it wrapped). */
.mmn-theme .dnlcrs-tpl-s1 .dcctn-s1 .dcitms-s1 > li .dccntt-s1 .dcbchck-s1 .lbl-n5 { white-space: nowrap; }
@media only screen and (max-width: 767px) {
  .mmn-theme .dnlcrs-tpl-s1 .dcctn-s1 .dcitms-s1 > li .dccntt-s1 .mmn-check-row > .mmn-player-audio { margin-top: 20px; }
  .mmn-theme .dnlcrs-tpl-s1 .dcctn-s1 .dcitms-s1 > li .dccntt-s1 .mmn-pdf-gallery .dcbfilnk-s1 { width: 64px; height: 81px; }
}
@media only screen and (min-width: 768px) {
  /* The pill faces the audio bar itself (the speed buttons sit under the bar). */
  .mmn-theme .dnlcrs-tpl-s1 .dcctn-s1 .dcitms-s1 > li .dccntt-s1 .mmn-check-row { align-items: flex-start; }
  .mmn-theme .dnlcrs-tpl-s1 .dcctn-s1 .dcitms-s1 > li .dccntt-s1 .mmn-check-row > .dcbchck-s1 { margin-top: 5px; }
  .mmn-theme .dnlcrs-tpl-s1 .dcctn-s1 .dcitms-s1 > li .dccntt-s1 .mmn-check-row:not(:has(.mmn-player-audio)) { align-items: center; }
  .mmn-theme .dnlcrs-tpl-s1 .dcctn-s1 .dcitms-s1 > li .dccntt-s1 .mmn-check-row:not(:has(.mmn-player-audio)) > .dcbchck-s1 { margin-top: 0; }
}
/* …and on phones, between the final payment button and the amount to pay under it. */
.mmn-theme .payconfirm-p-s1 .btmitm-s1.mfixctn-m7 .pspnxt-s1 .pspcontt-s1 { margin-top: 16px; }

/* ---- QA round 5 ---------------------------------------------------------------------------------------------- */
/* QA-071: while the visitor is not known yet, the account button keeps its size and shows the dots, never "sign in";
   the cart badge keeps its place without a number. */
.mmn-theme .mmn-session-pending { pointer-events: none; cursor: default; }
.mmn-theme .mmn-session-pending .txsbtn-t { display: inline-flex; align-items: center; justify-content: center; min-width: 6.5rem; }
.mmn-theme .mmn-session-pending .mmn-dots span:nth-child(3) { background: #fff; }
.mmn-theme .bhcrt-t .ntf-m7.mmn-count-pending { opacity: 0; }
/* QA-072: the mini cart's loading dots in the middle of its panel. */
.mmn-theme .clin-m7.mmn-mini-loading { display: flex; align-items: center; justify-content: center; min-height: 140px; }
/* QA-073: the mini cart's footer: the total on the right ("جمع کل:" above, the amount large below it) and the cart
   button on the left, side by side at every width (the button never drops under the amount). */
.mmn-theme .mmn-cart-actions { flex-wrap: nowrap; justify-content: space-between; align-items: center; }
.mmn-theme .mmn-cart-actions .mmn-cart-totals { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.mmn-theme .mmn-cart-actions .mmn-cart-total { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; color: #000; white-space: nowrap; }
.mmn-theme .mmn-cart-actions .mmn-cart-total-label { font-size: 14px; font-weight: 600; color: #555; line-height: 1.4; }
.mmn-theme .mmn-cart-actions .mmn-cart-total b { font-size: 20px; font-weight: 800; line-height: 1.3; }
.mmn-theme .mmn-cart-actions .btn-t { flex-shrink: 0; margin-inline-start: auto; }
/* QA-074: the applied discount code and its green check, as the owner's approved size. */
.mmn-theme .mmn-coupon .mmn-applied-code { gap: .5rem; font-size: 26px; font-weight: 800; line-height: 1.2; }
.mmn-theme .mmn-coupon .mmn-applied-code .nf { font-size: 30px; line-height: 1; }
@media (max-width: 575.98px) {
  .mmn-theme .mmn-coupon .mmn-applied-code { font-size: 22px; }
  .mmn-theme .mmn-coupon .mmn-applied-code .nf { font-size: 26px; }
}
/* QA-087: the profile tabs sit right at the width where one more pixel wraps a tab to a second row, so any size
   change under the cursor (the template animates "all" properties, toggles borders on hover and lets the row scroll)
   made the row jump and the hover flicker on and off. The row now never scrolls, keeps fixed gaps, and a tab looks
   different on hover or focus only by its colours: its box never changes. */
.mmn-theme .profile-p-m7 .tabs-tpl-m7 .navtabs-m7 { overflow: visible; gap: 10px; }
.mmn-theme .profile-p-m7 .tabs-tpl-m7 .navtabs-m7 > li { margin: 0; }
.mmn-theme .profile-p-m7 .tabs-tpl-m7 .navtabs-m7 > li::before,
.mmn-theme .profile-p-m7 .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7::before,
.mmn-theme .profile-p-m7 .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7::after { pointer-events: none; }
.mmn-theme .profile-p-m7 .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7,
.mmn-theme .profile-p-m7 .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7:hover,
.mmn-theme .profile-p-m7 .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7.active { border: 0; transform: none; transition: background-color .2s ease, color .2s ease; text-decoration: none; }
.mmn-theme .profile-p-m7 .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7:not(.active):hover { background-color: rgba(65, 65, 97, .26); color: #414161; }
.mmn-theme .profile-p-m7 .tabs-tpl-m7 .navtabs-m7 .tabbtn-m7:focus-visible { outline: 2px solid #414161; outline-offset: 2px; }
/* QA-079: placeholders that keep the lessons and support sections at their size while a signed-in visitor's
   purchases load. */
.mmn-theme .dnlcrs-tpl-s1 .dcitms-s1 > li.mmn-lesson-skeleton { display: flex; align-items: center; min-height: 72px; padding: 0 24px; border-radius: 40px; background: rgba(65,65,97,.05); margin-bottom: 30px; }
.mmn-theme .mmn-lesson-skeleton .mmn-sk-line { width: 40%; height: 16px; }
.mmn-theme .mmn-support-skeleton { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 40px 0; }
.mmn-theme .mmn-support-skeleton .mmn-sk-heading { width: 140px; height: 30px; }
.mmn-theme .mmn-support-skeleton .mmn-sk-card { width: min(100%, 730px); height: 78px; border-radius: 30px; }
.mmn-theme .mmn-support-skeleton .mmn-sk-button { width: 200px; height: 58px; }
.mmn-theme .mmn-sk-class { height: 128px; border-radius: 30px; }
/* QA-077/080/084/085: a support group block - recordings beside the class box, one block per bought group. */
.mmn-theme .mmn-support-earlier { margin-top: 40px; padding-top: 32px; border-top: 1px dashed rgba(65,65,97,.18); }
.mmn-theme .mmn-group-row { row-gap: 8px; }
.mmn-theme .mmn-group-row .coursinfobx-tpl-m7, .mmn-theme .mmn-group-row .mmn-class-note { margin-top: 20px; }
.mmn-theme .mmn-class-note .mmn-owned { text-align: center; margin: 0; }
.mmn-theme .mmn-class-live .tstx-m7 { font-weight: 700; color: #1a9e5c; line-height: 1.9; }
.mmn-theme .mmn-session-audio .vcwbars-s1 { position: relative; overflow: hidden; border-radius: 6px; }
.mmn-theme .mmn-session-audio .mmn-wave-progress { position: absolute; inset: 0 auto 0 0; background: rgba(255, 123, 7, .22); pointer-events: none; transition: width .2s linear; }
.mmn-theme .mmn-session-audio .vcwbars-s1:focus-visible { outline: 2px solid #414161; outline-offset: 2px; }
.mmn-theme .mmn-session-audio audio { display: none; }
.mmn-theme .mmn-support-again { margin-top: 32px; display: flex; flex-direction: column; align-items: center; }
.mmn-theme .socialbx-tpl-m7 .items-s1 .mmn-social-other .sictn-s1 { background-color: #414161; color: #fff; }
/* QA-091: a webinar schedule in its price box before buying. */
.mmn-theme .mmn-webinar-countdown { margin-bottom: 16px; }
.mmn-theme .mmn-webinar-schedule { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.mmn-theme .mmn-webinar-schedule .mmn-owned { margin: 0; }
.mmn-theme .mmn-session-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.mmn-theme .mmn-session-list li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 14px; border-radius: 14px; background: rgba(65,65,97,.05); font-size: 14px; }
.mmn-theme .mmn-session-list li span:first-child { font-weight: 700; }
/* QA-089: the main address form in the profile, across the whole content width: name | mobile, province | city, the
   full address, then postal code | plaque + unit; one column on phones. Errors sit right under their field. */
.mmn-theme .mmn-address-form { width: 100%; }
.mmn-theme .mmn-address-form .mmn-address-card { width: 100%; padding: 28px 32px; border-radius: 30px; background: #fff; border: 1px solid rgba(65,65,97,.1); box-shadow: 0 10px 26px rgba(65,65,97,.06); }
.mmn-theme .mmn-address-form .mmn-form-section { font-size: 18px; font-weight: 800; margin: 0 0 20px; }
.mmn-theme .mmn-address-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; }
.mmn-theme .mmn-address-grid .mmn-address-wide { grid-column: 1 / -1; }
.mmn-theme .mmn-address-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.mmn-theme .mmn-address-field { display: flex; flex-direction: column; min-width: 0; }
.mmn-theme .mmn-address-field .lbl-n5 { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 600; color: #414161; }
.mmn-theme .mmn-address-field .mmn-required { color: #e5484d; }
.mmn-theme .mmn-address-field .inputs-t { width: 100%; height: 52px; padding: 0 16px; border-radius: 16px; border: 1px solid rgba(65,65,97,.18); background: rgba(65,65,97,.03); font-size: 15px; transition: border-color .15s, box-shadow .15s; }
.mmn-theme .mmn-address-field .inputs-t:focus { outline: none; border-color: #414161; box-shadow: 0 0 0 3px rgba(65,65,97,.12); background: #fff; }
.mmn-theme .mmn-address-field .inputs-t[aria-invalid="true"] { border-color: #e5484d; background: rgba(229,72,77,.04); }
.mmn-theme .mmn-address-field .inputs-t:disabled { opacity: .6; cursor: not-allowed; }
.mmn-theme .mmn-address-field .mmn-field-error { margin-top: 6px; font-size: 13px; line-height: 1.6; color: #e5484d; }
.mmn-theme .mmn-address-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.mmn-theme .mmn-address-actions .btn-t { min-width: 160px; justify-content: center; }
@media (max-width: 767.98px) {
  .mmn-theme .mmn-address-form .mmn-address-card { padding: 20px 16px; border-radius: 22px; }
  .mmn-theme .mmn-address-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .mmn-theme .mmn-address-actions .btn-t { flex: 1 1 0; min-width: 0; }
}
.mmn-theme .mmn-address-empty { display: flex; flex-direction: column; align-items: center; gap: 16px; }
/* QA-090: the wallet and points in the Mamanino style. */
.mmn-theme .mmn-wallet { display: flex; flex-direction: column; gap: 32px; }
.mmn-theme .mmn-wallet-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.mmn-theme .mmn-wallet-balance, .mmn-theme .mmn-wallet-points { display: flex; flex-direction: column; gap: 10px; padding: 26px 28px; border-radius: 30px; }
.mmn-theme .mmn-wallet-balance { background: linear-gradient(135deg, #414161 0%, #5a5a85 100%); color: #fff; box-shadow: 0 14px 30px rgba(65,65,97,.25); }
.mmn-theme .mmn-wallet-points { background: #fff; border: 1px solid rgba(65,65,97,.1); box-shadow: 0 10px 26px rgba(65,65,97,.06); }
.mmn-theme .mmn-wallet-head { display: flex; align-items: center; gap: 12px; }
.mmn-theme .mmn-wallet-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; font-size: 20px; }
.mmn-theme .mmn-wallet-balance .mmn-wallet-icon { background: rgba(255,255,255,.15); color: #fff; }
.mmn-theme .mmn-wallet-points .mmn-wallet-icon { background: rgba(255,123,7,.12); color: #ff7b07; }
.mmn-theme .mmn-wallet-label { margin: 0; font-size: 16px; font-weight: 500; }
.mmn-theme .mmn-wallet-amount { margin: 4px 0 0; line-height: 1.2; }
.mmn-theme .mmn-wallet-amount span { font-size: 34px; font-weight: 800; }
.mmn-theme .mmn-wallet-amount small { font-size: 16px; font-weight: 500; opacity: .85; }
.mmn-theme .mmn-wallet-note { margin: 0; font-size: 13px; line-height: 1.9; color: #6b6b80; }
.mmn-theme .mmn-wallet-balance .mmn-wallet-note { color: rgba(255,255,255,.8); }
.mmn-theme .mmn-wallet-topup { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; }
.mmn-theme .mmn-wallet-topup-label { font-size: 14px; font-weight: 700; color: #fff; }
.mmn-theme .mmn-wallet-topup-row { display: flex; gap: 8px; padding: 6px; border-radius: 100px; background: #fff; }
.mmn-theme .mmn-wallet-topup-row input { flex: 1; min-width: 0; border: 0; outline: 0; padding: 0 16px; font-size: 15px; background: transparent; color: #000; }
.mmn-theme .mmn-wallet-topup-btn { flex: 0 0 auto; border: 0; border-radius: 100px; padding: 10px 22px; font-weight: 700; color: #fff; background: #ff7b07; transition: background-color .2s ease, opacity .2s ease; }
.mmn-theme .mmn-wallet-topup-btn:hover:not(:disabled) { background: #e96c00; }
.mmn-theme .mmn-wallet-topup-btn:disabled { opacity: .55; cursor: not-allowed; }
.mmn-theme .mmn-wallet-quick { display: flex; flex-wrap: wrap; gap: 8px; }
.mmn-theme .mmn-wallet-quick button { border: 1px solid rgba(255,255,255,.35); background: transparent; color: #fff; border-radius: 100px; padding: 4px 14px; font-size: 13px; transition: background-color .2s ease; }
.mmn-theme .mmn-wallet-quick button:hover, .mmn-theme .mmn-wallet-quick button.active { background: rgba(255,255,255,.18); }
.mmn-theme .mmn-wallet-convert { align-self: flex-start; margin-top: 6px; }
.mmn-theme .mmn-wallet-progress { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.mmn-theme .mmn-wallet-bar { height: 8px; border-radius: 8px; background: rgba(65,65,97,.08); overflow: hidden; }
.mmn-theme .mmn-wallet-bar span { display: block; height: 100%; border-radius: 8px; background: linear-gradient(90deg, #ff7b07, #fc315a); }
.mmn-theme .mmn-wallet-history-head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.mmn-theme .mmn-wallet-history-head h2 { margin: 0; font-size: 20px; font-weight: 800; }
.mmn-theme .mmn-wallet-count { padding: 2px 10px; border-radius: 100px; background: rgba(65,65,97,.08); font-size: 13px; }
.mmn-theme .mmn-wallet-empty { padding: 24px; border-radius: 24px; background: rgba(65,65,97,.04); text-align: center; color: #6b6b80; margin: 0; }
.mmn-theme .mmn-wallet-list { list-style: none; margin: 0; padding: 6px 0; border-radius: 24px; background: #fff; border: 1px solid rgba(65,65,97,.1); }
.mmn-theme .mmn-wallet-list li { display: flex; align-items: center; gap: 14px; padding: 12px 20px; }
.mmn-theme .mmn-wallet-list li + li { border-top: 1px solid rgba(65,65,97,.07); }
.mmn-theme .mmn-tx-icon { flex: 0 0 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; }
.mmn-theme .mmn-wallet-list li.in .mmn-tx-icon { background: rgba(26,158,92,.12); color: #1a9e5c; }
.mmn-theme .mmn-wallet-list li.out .mmn-tx-icon { background: rgba(252,49,90,.12); color: #fc315a; }
.mmn-theme .mmn-tx-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.mmn-theme .mmn-tx-title { font-size: 14px; font-weight: 500; color: #000; overflow-wrap: anywhere; }
.mmn-theme .mmn-tx-date { font-size: 12px; color: #8b8ba3; }
.mmn-theme .mmn-tx-amount { flex: 0 0 auto; white-space: nowrap; font-size: 15px; }
.mmn-theme .mmn-wallet-list li.in .mmn-tx-amount b { color: #1a9e5c; }
.mmn-theme .mmn-wallet-list li.out .mmn-tx-amount b { color: #fc315a; }
.mmn-theme .mmn-tx-amount small { color: #8b8ba3; font-size: 12px; }
@media (max-width: 767.98px) {
  .mmn-theme .mmn-wallet-cards { grid-template-columns: 1fr; }
  .mmn-theme .mmn-wallet-balance, .mmn-theme .mmn-wallet-points { padding: 22px 20px; }
  .mmn-theme .mmn-wallet-amount span { font-size: 28px; }
  .mmn-theme .mmn-wallet-list li { padding: 12px 14px; gap: 10px; }
}
/* QA-078: Instagram as a solid round icon like Telegram and WhatsApp (the template draws it with an image sprite we do not use). */
.mmn-theme .soctxt-tpl-s1.sclr-m7 .stctn-s1 .insoctxt-s1 .items-s1 > li.insta-m7 .sictn-s1 { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285aeb 90%); color: #fff; }
.mmn-theme .soctxt-tpl-s1.sclr-m7 .stctn-s1 .insoctxt-s1 .items-s1 > li.insta-m7 .sictn-s1 .nf { color: #fff; }
.mmn-theme .mmn-session-list li { flex-direction: column; gap: 2px; }
.mmn-theme .mmn-session-list li span:last-child { font-size: 13px; color: #414161; }
/* QA-091: a webinar's real schedule (first/last class, weekdays, hours), «هنوز کلاسی تشکیل نشده است» without a
   countdown, and every class of the buyer's group with its status. */
.mmn-theme .mmn-webinar-empty { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 16px; background: rgba(65,65,97,.05); }
.mmn-theme .mmn-webinar-empty p { margin: 0; }
.mmn-theme .mmn-webinar-empty-title { font-size: 15px; font-weight: 800; color: #414161; }
.mmn-theme .mmn-webinar-empty-text { font-size: 13px; color: #6b6b85; }
.mmn-theme .mmn-webinar-summary li span:first-child { font-weight: 700; }
.mmn-theme .mmn-webinar-next { margin-bottom: 8px; }
.mmn-theme .suprtprdctsec-tpl-m7 .mmn-webinar-sessions { margin-top: 20px; }
.mmn-theme .mmn-webinar-sessions li { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 12px; }
.mmn-theme .mmn-webinar-sessions li .mmn-session-when { grid-column: 1; }
.mmn-theme .mmn-webinar-sessions li .mmn-session-status { grid-column: 2; grid-row: 1 / span 2; padding: 4px 12px; border-radius: 999px; font-size: 12px !important; font-weight: 700; background: rgba(65,65,97,.08); color: #414161 !important; white-space: nowrap; }
.mmn-theme .mmn-session-status-live { background: #e8f8ee !important; color: #13854a !important; }
.mmn-theme .mmn-session-status-held { background: rgba(65,65,97,.06) !important; color: #6b6b85 !important; }
.mmn-theme .mmn-session-status-cancelled { background: #fdecec !important; color: #c0392b !important; }
.mmn-theme .mmn-webinar-sessions li.mmn-session-cancelled .mmn-session-when { text-decoration: line-through; }
/* The support purchase under the course's support status, on the course page. */
.mmn-theme .mmn-support-again-box { margin-top: 10px; }
/* The cart page's loader holds the screen until the cart (and its stylesheet) is ready: nothing below it shows early and jumps. */
.mmn-theme .mmn-cart-loading { min-height: calc(100vh - 96px); }
/* The cart rows' pictures keep the design's portrait frame before they load, so a row never grows when its picture arrives. */
.mmn-theme .cart-p-m7 .cpimg-m7 .imgctn-m7 { width: 100%; }
.mmn-theme .cart-p-m7 .cpimg-m7 .imgctn-m7 > img { width: 100%; aspect-ratio: 134 / 218; height: auto; object-fit: cover; }
