/* Checkout pages (course registration, session booking, shop) – same look as the cart, in the theme colours. */
.iw-co{max-width:1180px;margin:0 auto;padding:28px 16px 60px;font-family:var(--font-body);color:#4b4f58}
.iw-co svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.iw-steps li.is-done{color:var(--secondary)}
.iw-steps li.is-done span{background:var(--soft);border-color:var(--primary);color:var(--primary)}
.iw-steps li.is-done+li::before,.iw-steps li.is-active::before{background:linear-gradient(90deg,var(--primary),var(--secondary))}

.iw-co .checkout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:28px;padding:0;align-items:start}
.iw-co .checkout>.panel{background:#fff;border:1px solid #f0e2ec;border-radius:20px;padding:30px 32px;box-shadow:0 8px 28px rgba(102,47,137,.06)}
.iw-co .panel h2{font-family:var(--font-head)!important;color:var(--secondary)!important;font-size:1.55rem!important;line-height:1.25!important;margin:0 0 6px!important;font-weight:700!important;text-transform:none!important;letter-spacing:0!important}
.iw-co__sub{margin:0 0 18px!important;color:#8a7f92;font-size:.92rem}
.iw-co__sec{display:flex;align-items:center;gap:10px;font-family:var(--font-body)!important;font-size:.8rem!important;font-weight:700!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:var(--primary)!important;margin:26px 0 16px!important;padding:0!important}
.iw-co__sec::after{content:"";flex:1;height:1px;background:#f0e2ec}
.iw-co .notice{display:block;background:var(--soft);border:1px solid #f6d9ea;border-radius:12px;padding:12px 16px;font-size:.88rem;margin:0 0 6px}
.iw-co .notice a{font-weight:700;color:var(--primary)}

/* fields: labels sit on top, inputs line up across the row even when a label wraps */
.iw-co .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;align-items:stretch}
.iw-co .form-grid .full{grid-column:1/-1}
.iw-co .field{display:flex;flex-direction:column;margin:0!important;min-width:0}
.iw-co .field>label:first-child:not(.check){flex:1 0 auto;display:flex;align-items:flex-end;flex-wrap:wrap;column-gap:4px;margin:0 0 8px!important;font-size:.86rem!important;font-weight:600!important;color:#3a3042!important;line-height:1.4!important;text-transform:none!important;letter-spacing:0!important}
.iw-co .field .muted{font-weight:400;color:#a297aa;font-size:.8rem}
.iw-co .req{color:var(--primary);font-weight:700}
.iw-co .field input:not([type=checkbox]):not([type=radio]),.iw-co .field select,.iw-co .field textarea{width:100%!important;height:50px!important;min-height:50px;padding:0 16px!important;border:1.5px solid #e6d4e1!important;border-radius:12px!important;background:#fff!important;color:#2d2236!important;font:inherit!important;font-size:.95rem!important;line-height:1.3!important;box-shadow:none!important;transition:border-color .2s,box-shadow .2s;margin:0!important;box-sizing:border-box}
.iw-co .field textarea{height:auto!important;min-height:110px;padding:13px 16px!important;resize:vertical}
.iw-co .field select{appearance:none;-webkit-appearance:none;padding-right:42px!important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23662F89' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 14px center/18px no-repeat!important;cursor:pointer}
.iw-co .field input[type=date]{padding-right:12px!important}
.iw-co .field input::placeholder,.iw-co .field textarea::placeholder{color:#b5abbc}
.iw-co .field input:focus,.iw-co .field select:focus,.iw-co .field textarea:focus{outline:0!important;border-color:var(--primary)!important;box-shadow:0 0 0 4px rgba(216,29,136,.12)!important}
.iw-co .field.has-error input,.iw-co .field.has-error select,.iw-co .field.has-error textarea{border-color:#d43c3c!important}
.iw-co .field .help{font-size:.78rem;color:#9a8fa3;margin-top:6px}
.iw-co .error-text{color:#c62828;font-size:.8rem;margin-top:6px;font-weight:500}

/* checkboxes (disclaimer, create account, terms) as soft cards */
.iw-co label.check{display:flex!important;gap:12px;align-items:flex-start;background:#fbf7fb;border:1.5px solid #f0e2ec;border-radius:14px;padding:14px 16px!important;margin:0!important;font-size:.86rem!important;font-weight:400!important;line-height:1.6!important;color:#4f4757!important;cursor:pointer;text-transform:none!important;letter-spacing:0!important;transition:border-color .2s,background .2s}
.iw-co label.check:has(input:checked){border-color:var(--primary);background:var(--soft)}
.iw-co label.check input{flex:none;width:20px!important;height:20px!important;margin:2px 0 0!important;accent-color:var(--primary);cursor:pointer}
.iw-co label.check a{color:var(--primary);font-weight:600}
.iw-co #account-password{margin-top:12px!important}
.iw-co .field>.help:last-child{margin-top:8px}

/* payment methods */
.iw-co .pay-methods{display:grid;gap:10px;margin:0 0 16px}
.iw-co .pay-method{display:flex!important;gap:12px;align-items:center;border:1.5px solid #e6d4e1;border-radius:14px;padding:16px 18px!important;margin:0!important;cursor:pointer;font-weight:600!important;color:#2d2236!important;background:#fff;transition:border-color .2s,background .2s;text-transform:none!important}
.iw-co .pay-method:has(input:checked){border-color:var(--primary);background:var(--soft);box-shadow:0 0 0 4px rgba(216,29,136,.08)}
.iw-co .pay-method input{width:20px;height:20px;margin:0!important;accent-color:var(--primary)}
.iw-co .pay-method small{display:block;color:#8a7f92;font-weight:400;font-size:.8rem;margin-top:2px}
.iw-co .pay-note{font-size:.82rem;color:#8a7f92;margin:0 0 14px!important;line-height:1.6}
.iw-co .pay-note a{color:var(--primary);font-weight:600}
.iw-co .iw-cbtn{margin-top:18px;min-height:54px;font-size:.95rem}
.iw-co .iw-cbtn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.iw-co .alert{border-radius:12px}

/* order summary */
.iw-co .summary{position:sticky;top:110px;background:#fff;border:1px solid #f0e2ec;border-radius:20px;padding:26px 24px;box-shadow:0 12px 34px rgba(102,47,137,.1);overflow:hidden}
.iw-co .summary::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,var(--primary),var(--secondary),var(--accent))}
.iw-co .summary h2{font-size:1.35rem!important;margin-bottom:16px!important}
.iw-co .summary table{width:100%;border-collapse:collapse!important;border:0!important;margin:0 0 6px!important;font-size:.92rem}
.iw-co .summary td,.iw-co .summary th{padding:12px 0!important;border:0!important;border-bottom:1px solid #f3e8f0!important;background:none!important;text-align:left;vertical-align:top;color:#2d2236}
.iw-co .summary td:last-child,.iw-co .summary th:last-child{text-align:right;white-space:nowrap;padding-left:12px!important;font-weight:600}
.iw-co .summary td small{display:block;margin-top:4px;color:#8a7f92;font-weight:400;line-height:1.5}
.iw-co .summary .total td{border-bottom:0!important;padding-top:16px!important;font-weight:700;color:var(--secondary)}
.iw-co .summary .total td:last-child{font-family:var(--font-head);font-size:1.6rem}
.iw-co .summary .help{font-size:.82rem;color:#8a7f92;margin:8px 0 0}
.iw-co__perks{list-style:none;margin:16px 0 0!important;padding:16px 0 0!important;border-top:1px dashed #efdfea;display:grid;gap:12px}
.iw-co__perks li{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;line-height:1.5;color:#5d5566;margin:0!important}
.iw-co__perks li svg{color:var(--primary);margin-top:1px}
.iw-co__perks b{display:block;color:#2d2236;font-size:.86rem}
.iw-co .iw-paylogos{margin-top:16px}

@media (max-width:980px){.iw-co .checkout{grid-template-columns:1fr}.iw-co .summary{position:static;order:-1}}
@media (max-width:600px){.iw-co .checkout>.panel{padding:22px 18px}.iw-co .form-grid{grid-template-columns:1fr}.iw-co .field>label:first-child:not(.check){flex:none}}
.iw-co .full>.field{margin-bottom:16px!important}
.iw-co .full>.iw-co__sec:first-child{margin-top:8px!important}
.iw-steps li a{color:inherit!important;text-decoration:none!important}
@media (max-width:980px){.iw-co .summary .iw-co__perks,.iw-co .summary .iw-paylogos{display:none}}
