/* One-page checkout (Figma purchase-flow components, one class per purchase). */
.cando-cart-page{background:var(--cando-background-surface)}
.cart-shell{max-width:1209px;padding:var(--cando-space-6) var(--cando-space-4) var(--cando-space-16);margin-inline:auto;min-height:534px}
.cart-shell h1,.cart-shell h2,.cart-shell h3,.cart-shell p{margin:0}
.cart-layout{display:grid;gap:var(--cando-space-6)}
.cart-content{min-width:0}
.cart-sections{display:grid;gap:var(--cando-space-8)}
.cart-section{display:grid;gap:var(--cando-space-4);min-width:0}
.cart-section__title{font-size:var(--cando-body-xl-size);line-height:var(--cando-body-xl-lh);font-weight:var(--cando-font-weight-bold)}
.cart-notice:has(p:empty):has(.cart-undo[hidden]){display:none}
.cart-login{display:grid;gap:var(--cando-space-4);justify-items:start;padding:var(--cando-space-6) var(--cando-space-4);border:1px solid var(--cando-border-subtle);border-radius:12px;font-size:var(--cando-body-m-size);line-height:var(--cando-body-m-lh);color:var(--cando-text-tertiary)}
.cart-login .button{min-height:44px}
.cart-content>h1{font-size:var(--cando-heading-xs-size);line-height:var(--cando-heading-xs-lh);font-weight:var(--cando-font-weight-bold);padding:var(--cando-space-4);margin-block-end:var(--cando-space-2)}
.cart-item{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'path path' 'title title' 'details price';gap:var(--cando-space-2);border:1px solid var(--cando-border-subtle);border-block-start:14px solid var(--cando-text-primary);border-radius:12px;padding:var(--cando-space-6) var(--cando-space-4) var(--cando-space-4)}
.cart-item__path{grid-area:path;justify-self:start;max-width:calc(100% - 36px);background:var(--cando-success-50);color:var(--cando-success-500);padding:var(--cando-space-1) var(--cando-space-3);border-radius:4px;font-size:var(--cando-caption-s-size);line-height:var(--cando-caption-s-lh);overflow-wrap:anywhere}
.cart-item__mode{grid-area:title;background:var(--cando-neutral-0);padding:var(--cando-space-1) var(--cando-space-3);border-radius:4px;justify-self:end;align-self:start;font-size:var(--cando-caption-s-size);line-height:var(--cando-caption-s-lh)}
.cart-item__title{grid-area:title;min-width:0;padding-inline-end:60px;font-size:var(--cando-body-xl-size);line-height:var(--cando-body-xl-lh);font-weight:var(--cando-font-weight-bold);overflow-wrap:anywhere}
.cart-item__title,.cart-item__mode{margin-block-start:var(--cando-space-4)!important}
.cart-item__details{grid-area:details;min-width:0;font-size:var(--cando-body-m-size);line-height:var(--cando-body-m-lh)}
.cart-item__schedule{list-style:none;padding:0;margin:var(--cando-space-1) 0 0;display:flex;flex-direction:column;gap:var(--cando-space-1);color:var(--cando-text-tertiary);font-size:var(--cando-body-s-size);line-height:var(--cando-body-s-lh)}
.cart-item__price{grid-area:price;align-self:end;text-align:left;display:flex;flex-direction:column;gap:var(--cando-space-1)}
.cart-money{display:inline-flex;align-items:baseline;gap:var(--cando-space-1);white-space:nowrap}
.cart-money small{font-size:var(--cando-body-s-size);line-height:var(--cando-body-s-lh);font-weight:var(--cando-font-weight-regular);color:var(--cando-text-tertiary)}
.cart-item__price del{font-size:var(--cando-body-s-size);color:var(--cando-text-tertiary)}
.cart-item__price strong{font-size:var(--cando-heading-s-size);line-height:var(--cando-heading-s-lh);font-weight:var(--cando-font-weight-bold)}
.cart-item__remove{grid-area:path;display:grid;place-items:center;justify-self:end;align-self:start;border:0;background:transparent;min-width:44px;min-height:44px;padding:var(--cando-space-2);margin:-9px -9px 0;border-radius:6px;transition:background-color var(--cando-motion-hover-duration) var(--cando-motion-hover-easing)}
.cart-item__remove img{display:block}
.cart-item__remove:hover{background:var(--cando-error-50)}
.cart-summary{display:flex;flex-direction:column;gap:var(--cando-space-6);background:var(--cando-background-surface);padding:var(--cando-space-6) var(--cando-space-4);border:1px solid var(--cando-border-subtle);border-radius:4px}
.cart-summary h2{font-size:var(--cando-font-size-m);line-height:var(--cando-line-height-m);font-weight:var(--cando-font-weight-bold)}
.cart-summary__row{display:flex;justify-content:space-between;align-items:center;gap:var(--cando-space-2);color:var(--cando-text-tertiary);font-size:var(--cando-body-lg-size);line-height:var(--cando-body-lg-lh)}
.cart-summary__subtotal{margin-block-start:var(--cando-space-2)}
.cart-coupons{list-style:none;margin:0;padding:0;display:grid;gap:var(--cando-space-2)}
.cart-coupons:empty{display:none}
.cart-coupons__item{display:flex;align-items:center;flex-wrap:wrap;gap:var(--cando-space-1);color:var(--cando-text-tertiary);font-size:var(--cando-body-m-size);line-height:var(--cando-body-m-lh)}
.cart-coupons__item bdi{color:var(--cando-text-primary);font-weight:var(--cando-font-weight-bold)}
.cart-text-button{min-height:32px;padding:0 var(--cando-space-1);border:0;background:transparent;color:var(--cando-brand-800);font:inherit;font-weight:var(--cando-font-weight-bold);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.cart-text-button:hover{color:var(--cando-error-600)}
.cart-summary__subtotal strong{font-size:var(--cando-body-xl-size)}
.cart-summary__payable strong{font-size:var(--cando-heading-xs-size);color:var(--cando-text-secondary)}
.cart-coupon{border-block:1px solid var(--cando-neutral-50);padding-block:var(--cando-space-3)}
.cart-coupon summary{display:flex;align-items:center;justify-content:space-between;gap:var(--cando-space-2);min-height:32px;cursor:pointer;color:var(--cando-text-tertiary);font-size:var(--cando-body-lg-size);list-style:none}
.cart-coupon summary::-webkit-details-marker{display:none}
.cart-coupon summary img{transition:transform var(--cando-motion-hover-duration) var(--cando-motion-hover-easing)}
.cart-coupon[open] summary img{transform:rotate(180deg)}
.cart-coupon__fields{display:flex;gap:var(--cando-space-2);margin-block-start:var(--cando-space-3)}
.cart-coupon input{width:100%;min-width:0;border:1px solid var(--cando-border-subtle);border-radius:6px;padding:var(--cando-space-2) var(--cando-space-3);background:var(--cando-background-surface);min-height:44px}
.cart-coupon input:focus{outline:none;border-color:var(--cando-primary-500);box-shadow:inset 0 0 0 1px var(--cando-primary-500)}
.cart-coupon .button{min-height:44px;font-size:var(--cando-body-s-size)}
.cart-summary__continue{width:100%;min-height:44px;margin-block-start:auto;border-radius:4px;font-size:var(--cando-caption-s-size);font-weight:var(--cando-font-weight-bold)}
.cart-summary button:disabled{opacity:.5}
.cart-summary__message:empty,#cart-coupon-message:empty{display:none}
.cart-summary__message,#cart-coupon-message{font-size:var(--cando-body-s-size);line-height:var(--cando-body-s-lh);color:var(--cando-text-tertiary)}
#cart-coupon-message:not(:empty){margin-block-start:var(--cando-space-2)}
.cart-empty{padding:var(--cando-space-8);border:1px solid var(--cando-border-subtle);border-radius:12px;text-align:center}
.cart-empty h3{font-size:var(--cando-heading-s-size);line-height:var(--cando-heading-s-lh)}
.cart-empty p{color:var(--cando-text-tertiary);margin-block:var(--cando-space-4)}
.cart-notice{display:flex;gap:var(--cando-space-2);flex-wrap:wrap;align-items:center;margin-block-start:var(--cando-space-4);font-size:var(--cando-body-m-size)}
.cart-undo{background:transparent;border:0;color:var(--cando-primary-500);font-weight:var(--cando-font-weight-bold);padding:var(--cando-space-2);min-height:44px}
@media(min-width:1024px){
 .cart-shell{padding:var(--cando-space-16) var(--cando-space-6) 107px;min-height:654px}
      .cart-layout{grid-template-columns:minmax(0,1fr) 342px;gap:42px}
 .cart-content>h1{min-height:80px;display:flex;align-items:center;padding:var(--cando-space-6) 0;margin:0;font-size:var(--cando-heading-xs-size);line-height:var(--cando-heading-xs-lh)}
 .cart-item{grid-template-columns:auto minmax(0,1fr) 160px;grid-template-areas:'mode path remove' 'title title price' 'details details price';gap:var(--cando-space-1) var(--cando-space-2);border-block-start-width:4px;padding:var(--cando-space-5);min-height:161px}
 .cart-item__path{justify-self:start;max-width:100%}
 .cart-item__mode{grid-area:mode;justify-self:start}
 .cart-item__title,.cart-item__mode{margin-block-start:0!important}
 .cart-item__remove{grid-area:remove;min-height:32px;margin:-6px 0}
 .cart-item__price{align-self:center}
 .cart-item__title{padding-inline-end:0}
 .cart-item__schedule{flex-direction:row;flex-wrap:wrap;gap:var(--cando-space-2);font-size:var(--cando-body-m-size);line-height:var(--cando-body-m-lh)}
 .cart-item__schedule li+li::before{content:'|';margin-inline-end:var(--cando-space-2);color:var(--cando-border-subtle)}
 .cart-summary{min-height:384px;align-self:start;padding:var(--cando-space-6)}
}
@media(prefers-reduced-motion:reduce){.cart-coupon summary img{transition:none}}

.cart-shell [hidden]{display:none!important}
.cart-student,.cart-payment{display:grid;gap:var(--cando-space-6)}
.cart-student__fields{display:grid;gap:var(--cando-space-4)}
.cart-field{display:grid;gap:var(--cando-space-1);min-width:0}
.cart-field label{font-size:var(--cando-body-lg-size);font-weight:var(--cando-font-weight-medium)}
.cart-field input{width:100%;min-width:0;min-height:50px;padding:var(--cando-space-3) var(--cando-space-4);border:1px solid var(--cando-border-subtle);border-radius:8px;background:var(--cando-background-surface);color:var(--cando-text-primary);font:inherit}
.cart-field input:focus-visible{outline:none;border-color:var(--cando-primary-500);box-shadow:inset 0 0 0 1px var(--cando-primary-500)}
.cart-field input[aria-invalid=true]{border-color:var(--cando-error-600)}
.cart-field__error{font-size:var(--cando-body-s-size);color:var(--cando-error-600)}
.cart-field__error:empty{display:none}
.cart-student__hint{padding:var(--cando-space-4);background:var(--cando-info-50);border-inline-start:3px solid var(--cando-info-600);border-radius:2px;color:var(--cando-info-600);font-size:var(--cando-body-m-size);line-height:var(--cando-body-m-lh)}
.cart-payment fieldset{min-width:0;margin:0;padding:0;border:0;display:grid;gap:var(--cando-space-4)}
.cart-payment__option{display:flex;gap:var(--cando-space-4);align-items:center;min-height:90px;padding:var(--cando-space-4);border:1px solid var(--cando-border-disabled);border-radius:4px;cursor:pointer}
.cart-payment__option:has(input:checked){border-color:var(--cando-brand-600)}
.cart-payment__option input{width:20px;height:20px;flex-shrink:0;accent-color:var(--cando-brand-500);margin:0}
.cart-payment__option>span{display:grid;gap:var(--cando-space-2);min-width:0}
.cart-payment__option strong{font-size:var(--cando-body-lg-size);font-weight:var(--cando-font-weight-bold)}
.cart-payment__option small,.cart-payment__hint{font-size:var(--cando-body-m-size);line-height:var(--cando-body-m-lh);color:var(--cando-text-tertiary)}
.cart-payment__plans .cart-payment__hint{grid-column:1/-1}
.cart-payment__option:has(input:disabled){cursor:not-allowed;color:var(--cando-text-tertiary)}
.cart-item__down-payment{font-size:var(--cando-body-s-size);line-height:var(--cando-body-s-lh);color:var(--cando-text-tertiary)}
.cart-item__down-payment .cart-money{display:inline-flex;gap:var(--cando-space-1)}
.cart-installments{display:grid;gap:var(--cando-space-4);padding:var(--cando-space-4);border:1px solid var(--cando-border-disabled);border-radius:4px;font-size:var(--cando-body-m-size);line-height:var(--cando-body-m-lh);color:var(--cando-text-tertiary)}
.cart-installments__notes{margin:0;padding-inline-start:var(--cando-space-6);display:grid;gap:var(--cando-space-1)}
.cart-installments__schedule summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--cando-brand-800);font-weight:var(--cando-font-weight-bold);text-decoration:underline;text-underline-offset:4px}
.cart-installments__course{display:grid;gap:var(--cando-space-2);margin-block-start:var(--cando-space-1)}
.cart-installments__course h3{font-size:var(--cando-body-lg-size);color:var(--cando-text-secondary);overflow-wrap:anywhere}
.cart-installments__course table{width:100%;border-collapse:collapse}
.cart-installments__course th,.cart-installments__course td{padding:var(--cando-space-2);border-block-end:1px solid var(--cando-neutral-50);text-align:start}
.cart-installments__course td:last-child,.cart-installments__course th:last-child{text-align:end}
@media(min-width:768px){.cart-student__fields,.cart-payment .cart-payment__plans{grid-template-columns:repeat(2,minmax(0,1fr))}}
