/* TEFL Wonderland Shop: brand styles for WooCommerce course pages, cart and checkout. */
:root {
	--tw-navy: #1F2A30;
	--tw-dark: #0F1B24;
	--tw-body: #4A5A63;
	--tw-teal: #2E8081;
	--tw-teal-text: #2B7A7B;
	--tw-orange-a: #F49900;
	--tw-orange-b: #F27300;
	--tw-yellow-a: #E8B000;
	--tw-yellow-b: #F7D700;
	--tw-light: #F4F8F9;
	--tw-line: #E3E9EC;
	--tw-field: #C9D3D8;
}

/* ---------- Buttons (orange gradient, navy text, teal hover) ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce-page .wc-block-components-button:not(.is-link),
.wc-block-checkout .wc-block-components-checkout-place-order-button,
.wc-block-cart .wc-block-cart__submit-button,
.woocommerce-page .wp-block-button__link {
	background: linear-gradient(90deg, var(--tw-orange-a), var(--tw-orange-b)) !important;
	color: var(--tw-navy) !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-family: "Inter", sans-serif;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.2;
	padding: 15px 30px;
	min-height: 52px;
	box-shadow: none;
	text-decoration: none;
	transition: background .2s ease, color .2s ease, transform .2s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce-page .wc-block-components-button:not(.is-link):hover,
.wc-block-checkout .wc-block-components-checkout-place-order-button:hover,
.wc-block-cart .wc-block-cart__submit-button:hover,
.woocommerce-page .wp-block-button__link:hover {
	background: var(--tw-teal) !important;
	color: #fff !important;
}
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce-page .wc-block-components-button:focus-visible {
	outline: 3px solid var(--tw-teal);
	outline-offset: 3px;
}
.woocommerce button.button:disabled,
.woocommerce button.button.disabled,
.woocommerce a.button.disabled {
	opacity: .55;
}

/* ---------- Links, notices, breadcrumb ---------- */
.woocommerce-page main a:not(.button):not(.wc-block-components-button),
.woocommerce .woocommerce-breadcrumb a,
.woocommerce .product_meta a {
	color: var(--tw-teal-text);
}
.woocommerce .woocommerce-breadcrumb {
	color: var(--tw-body);
	font-size: 14px;
	margin-bottom: 28px;
}
.woocommerce-message,
.woocommerce-info {
	border-top-color: var(--tw-teal) !important;
	background: var(--tw-light);
	color: var(--tw-navy);
	border-radius: 12px;
}
.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--tw-teal) !important;
}
.woocommerce-message .button,
.woocommerce-info .button {
	min-height: 0;
	padding: 10px 20px;
	font-size: 14px;
}
.woocommerce-message:empty { display: none; }

/* ---------- Single course page ---------- */
.woocommerce div.product {
	margin-top: 8px;
}
.woocommerce div.product .product_title {
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: clamp(30px, 3.4vw, 42px);
	line-height: 1.15;
	color: var(--tw-navy);
	margin: 0 0 14px;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--tw-navy);
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 32px;
	margin: 0 0 14px;
}
.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--tw-body);
	font-size: 17px;
	line-height: 1.6;
	margin-bottom: 22px;
}
.woocommerce div.product form.cart {
	margin: 0 0 22px;
}
.woocommerce div.product form.cart .single_add_to_cart_button {
	width: 100%;
	max-width: 360px;
	font-size: 17px;
}
.woocommerce div.product .product_meta {
	font-size: 14px;
	color: var(--tw-body);
	border-top: 1px solid var(--tw-line);
	padding-top: 16px;
	margin-top: 4px;
}
.woocommerce div.product .product_meta .sku_wrapper { display: none; }

.tw-trust {
	list-style: none;
	margin: 0 0 14px;
	padding: 18px 20px;
	background: var(--tw-light);
	border-radius: 16px;
	display: grid;
	gap: 10px;
}
.tw-trust li {
	position: relative;
	padding-left: 30px;
	color: var(--tw-navy);
	font-size: 15px;
	line-height: 1.45;
	margin: 0;
}
.tw-trust li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--tw-teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px no-repeat;
}
.tw-help {
	font-size: 14px;
	color: var(--tw-body);
	margin: 0 0 18px;
}

/* Branded panel shown until a course image is added */
.woocommerce div.product div.images .tw-course-visual {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: 24px;
	background: var(--tw-dark);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 14px;
	padding: clamp(24px, 4vw, 44px);
	box-sizing: border-box;
}
.tw-course-visual .tw-blob {
	position: absolute;
	border-radius: 50%;
	filter: blur(60px);
	opacity: .55;
	animation: tw-float 14s ease-in-out infinite alternate;
}
.tw-course-visual .tw-blob-a {
	width: 60%; height: 70%; top: -20%; right: -15%;
	background: radial-gradient(circle, var(--tw-teal), transparent 70%);
}
.tw-course-visual .tw-blob-b {
	width: 45%; height: 55%; top: 10%; left: -10%;
	background: radial-gradient(circle, var(--tw-orange-a), transparent 70%);
	opacity: .35;
	animation-duration: 18s;
}
@keyframes tw-float {
	to { transform: translate(-8%, 10%) scale(1.1); }
}
@media (prefers-reduced-motion: reduce) {
	.tw-course-visual .tw-blob { animation: none; }
}
.tw-course-visual__badge,
.tw-course-visual__title,
.tw-course-visual__brand { position: relative; z-index: 1; }
.tw-course-visual__badge {
	align-self: flex-start;
	font-family: "Inter", sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--tw-yellow-b);
	border: 1px solid rgba(247, 215, 0, .55);
	background: rgba(247, 215, 0, .08);
	padding: 7px 16px;
	border-radius: 999px;
}
.tw-course-visual__title {
	font-family: "Gelasio", Georgia, serif;
	font-weight: 700;
	font-size: clamp(26px, 3vw, 40px);
	line-height: 1.15;
	color: #fff;
}
.tw-course-visual__brand {
	font-size: 14px;
	color: #C9D6DB;
}

/* Tabs (only shown when there is a longer description) */
.woocommerce div.product .woocommerce-tabs {
	clear: both;
	padding-top: 32px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	border-radius: 999px 999px 0 0;
	background: var(--tw-light);
	border-color: var(--tw-line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: #fff;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: var(--tw-navy) !important;
	font-weight: 600;
}
.woocommerce div.product .woocommerce-tabs .panel {
	color: var(--tw-body);
	font-size: 16px;
	line-height: 1.65;
}

/* Related courses and course grids */
.woocommerce .related > h2,
.woocommerce .upsells > h2 {
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 28px;
	color: var(--tw-navy);
	margin: 48px 0 20px;
}
.woocommerce ul.products li.product {
	background: #fff;
	border: 1px solid var(--tw-line);
	border-radius: 18px;
	padding: 18px 18px 22px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
}
.woocommerce ul.products li.product a img {
	border-radius: 12px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
	font-size: 17px;
	line-height: 1.35;
	color: var(--tw-navy);
}
.woocommerce ul.products li.product .price {
	color: var(--tw-navy);
	font-weight: 800;
	font-size: 18px;
}
.woocommerce ul.products li.product .button {
	margin-top: auto;
	align-self: flex-start;
	min-height: 0;
	padding: 11px 22px;
	font-size: 14px;
}
.woocommerce span.onsale {
	background: linear-gradient(90deg, var(--tw-yellow-a), var(--tw-yellow-b));
	color: var(--tw-navy);
	font-weight: 700;
}

/* ---------- Checkout and cart ---------- */
.woocommerce-checkout .page-header .entry-title,
.woocommerce-cart .page-header .entry-title {
	font-family: "Gelasio", Georgia, serif;
	font-weight: 700;
	font-size: clamp(34px, 4vw, 48px);
	color: var(--tw-navy);
	text-align: center;
	margin: 12px 0 18px;
}
.tw-checkout-strip {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 28px;
	margin: 0 auto 32px;
	padding: 14px 22px;
	background: var(--tw-light);
	border-radius: 999px;
	font-size: 14px;
	color: var(--tw-navy);
	max-width: 900px;
	box-sizing: border-box;
}
.tw-checkout-strip span { display: inline-flex; align-items: center; gap: 8px; }
.tw-checkout-strip span::before {
	content: "";
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--tw-teal);
}
.tw-checkout-strip .tw-lock { font-weight: 700; }
.tw-checkout-strip .tw-lock::before {
	width: 16px; height: 16px; border-radius: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='3' y='7' width='10' height='7.5' rx='1.5' fill='%232E8081'/%3E%3Cpath d='M5 7V5a3 3 0 0 1 6 0v2' fill='none' stroke='%232E8081' stroke-width='1.6'/%3E%3C/svg%3E") center / 16px no-repeat;
}
@media (max-width: 600px) {
	.tw-checkout-strip { border-radius: 16px; justify-content: flex-start; }
}

/* Headings and text in the checkout */
.wc-block-checkout .wc-block-components-checkout-step__title,
.wc-block-checkout .wc-block-components-title,
.woocommerce-checkout h3,
#order_review_heading {
	font-family: "Montserrat", sans-serif !important;
	font-weight: 700 !important;
	color: var(--tw-navy);
}
.wc-block-checkout .wc-block-components-checkout-step__heading-content,
.wc-block-checkout .wc-block-components-checkout-step__description {
	color: var(--tw-body);
}

/* Fields */
.wc-block-components-text-input input[type],
.wc-block-components-text-input textarea,
.wc-block-components-textarea,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page .select2-container .select2-selection--single {
	border: 1px solid var(--tw-field) !important;
	border-radius: 10px !important;
	background-color: #fff !important;
	color: var(--tw-navy) !important;
	box-shadow: none !important;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select {
	padding: 12px 14px;
}
.wc-block-components-text-input input[type]:focus,
.wc-block-components-textarea:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus {
	border-color: var(--tw-teal) !important;
	box-shadow: 0 0 0 2px rgba(46, 128, 129, .25) !important;
	outline: none !important;
}

/* Checkboxes and radio buttons */
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	background: var(--tw-teal) !important;
	border-color: var(--tw-teal) !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: #fff !important;
}
.wc-block-components-radio-control__input:checked {
	border-color: var(--tw-teal) !important;
}
.wc-block-components-radio-control__input:checked::before {
	background: var(--tw-teal) !important;
}
.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option {
	border-radius: 12px;
}
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
	box-shadow: inset 0 0 0 2px var(--tw-teal) !important;
}
.woocommerce-checkout #payment {
	background: var(--tw-light);
	border-radius: 16px;
}
.woocommerce-checkout #payment div.payment_box {
	background: #fff;
	color: var(--tw-body);
}
.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: #fff;
}

/* Order summary card */
.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block,
.wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__content {
	border-color: var(--tw-line) !important;
}
.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
	border-radius: 18px;
	background: #fff;
}
.wc-block-components-order-summary-item__quantity {
	background: var(--tw-navy) !important;
	color: #fff !important;
	border-color: var(--tw-navy) !important;
}
.wc-block-components-product-name,
.wc-block-components-totals-item__label {
	color: var(--tw-navy);
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-family: "Montserrat", sans-serif;
	font-weight: 800 !important;
	font-size: 20px !important;
	color: var(--tw-navy);
}
.wc-block-components-panel__button,
.wc-block-components-totals-coupon-link {
	color: var(--tw-teal-text) !important;
}

/* Place order button full width and roomy */
.wc-block-checkout .wc-block-components-checkout-place-order-button,
.woocommerce-checkout #place_order {
	min-height: 56px;
	font-size: 17px !important;
	width: 100%;
}
.wc-block-checkout .wc-block-components-checkout-return-to-cart-button { display: none; }

/* Block notices */
.wc-block-components-notice-banner.is-info,
.wc-block-components-notice-banner.is-success {
	border-color: var(--tw-teal) !important;
	background: var(--tw-light) !important;
	border-radius: 12px;
}
.wc-block-components-notice-banner.is-info > svg,
.wc-block-components-notice-banner.is-success > svg {
	background: var(--tw-teal) !important;
}

/* Order received (thank you) page */
.woocommerce-order .woocommerce-thankyou-order-received,
.wc-block-order-confirmation-status h1 {
	font-family: "Gelasio", Georgia, serif;
	font-size: 28px;
	color: var(--tw-navy);
}
.woocommerce ul.order_details {
	background: var(--tw-light);
	border-radius: 16px;
	padding: 20px;
}

/* Course tile in grids, shown until a product image is added */
.tw-course-tile {
	display: flex;
	align-items: flex-end;
	aspect-ratio: 4 / 3;
	margin-bottom: 14px;
	padding: 16px;
	box-sizing: border-box;
	border-radius: 12px;
	background: radial-gradient(circle at 85% 10%, rgba(46, 128, 129, .7), transparent 55%), radial-gradient(circle at 10% 60%, rgba(244, 153, 0, .35), transparent 50%), var(--tw-dark);
}
.tw-course-tile span {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--tw-yellow-b);
	border: 1px solid rgba(247, 215, 0, .55);
	padding: 5px 12px;
	border-radius: 999px;
}

/* No grey placeholder thumbnail in the order summary */
.wc-block-components-order-summary-item__image:has(img[src*="placeholder"]) { display: none; }
.wc-block-components-order-summary-item:has(img[src*="placeholder"]) .wc-block-components-order-summary-item__description { padding-left: 0; }
@media (max-width: 782px) {
	.wc-block-checkout .wc-block-components-checkout-place-order-button { width: 100% !important; }
}

/* Sale prices: regular price crossed out, sale price prominent */
.woocommerce div.product p.price del,
.woocommerce ul.products li.product .price del {
	font-size: .55em;
	font-weight: 600;
	opacity: .6;
	color: var(--tw-body);
	margin-right: 8px;
}
.woocommerce div.product p.price ins,
.woocommerce ul.products li.product .price ins {
	text-decoration: none;
	color: var(--tw-navy);
}
/* Every course is discounted, so the "Sale!" sticker adds nothing */
.woocommerce span.onsale { display: none; }

/* Free bonuses box on course pages */
.tw-bonus{background:#FFF8D6;border:1px solid #E8B000;border-radius:16px;padding:16px 18px;margin:18px 0}
.tw-bonus__title{font:800 16px/1.3 Montserrat,Inter,sans-serif;color:#1F2A30;margin:0 0 8px}
.tw-bonus ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.tw-bonus li{position:relative;padding-left:26px;font-size:15px;line-height:1.5;color:#1F2A30}
.tw-bonus li::before{content:"🎁";position:absolute;left:0;top:0}

/* "Add to your order" at checkout */
.tw-addons{max-width:1100px;margin:0 auto 24px;background:#F4F8F9;border:1px solid #E3E9EC;border-radius:18px;padding:16px 18px}
.tw-addons__title{font:800 17px/1.3 Montserrat,Inter,sans-serif;color:#1F2A30;margin:0 0 10px}
.tw-addons__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tw-addon{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid #E3E9EC;border-radius:14px;padding:12px 14px}
.tw-addon.is-added{border-color:#2E8081;box-shadow:0 0 0 1px #2E8081 inset}
.tw-addon__text{display:grid;gap:2px;min-width:0}
.tw-addon__name{font-weight:700;font-size:15px;color:#1F2A30}
.tw-addon__desc{font-size:13px;color:#4A5A63;line-height:1.4}
.tw-addon__buy{display:grid;justify-items:end;gap:6px;flex:none;text-align:right}
.tw-addon__price{font-size:15px;color:#1F2A30;white-space:nowrap}
.tw-addon__price del{color:#7A8A93;font-size:13px;margin-right:4px}
.tw-addon__add{background:linear-gradient(90deg,#F49900,#F27300);color:#1F2A30!important;border-radius:999px;padding:7px 16px;font-weight:700;font-size:14px;text-decoration:none!important;white-space:nowrap}
.tw-addon__add:hover{background:#2E8081;color:#fff!important}
.tw-addon__added{color:#1F6F70;font-weight:700;font-size:14px}
.tw-addon__remove{font-size:13px;color:#4A5A63!important}
@media (max-width:700px){.tw-addons__list{grid-template-columns:1fr}.tw-addons{margin:0 0 18px}}

/* QES certificate note on course pages */
.tw-qes-note{background:#F4F8F9;border:1px solid #C9D3D8;border-left:4px solid #2E8081;border-radius:12px;padding:12px 14px;margin:14px 0;font-size:14px;line-height:1.55;color:#1F2A30}
.tw-qes-note a{color:#2B7A7B;font-weight:600}

/* =========================================================================
   Shop design (plugin 3.7): Shop catalogue, course cards, course page
   ========================================================================= */
.tw-shop-ui .woocommerce-products-header { margin: 0; padding: 0; }
.tw-shop-ui .woocommerce-breadcrumb { max-width: 1200px; margin: 14px auto 0; padding: 0 20px; box-sizing: border-box; }
.tw-shop-ui #primary, .tw-shop-ui .site-main { max-width: none; }

/* Header band */
.tw-shop-hero {
	margin: 12px 0 0;
	padding: clamp(36px, 6vw, 64px) 20px clamp(32px, 5vw, 52px);
	border-radius: 28px;
	background: radial-gradient(ellipse at 85% 0%, rgba(6,180,186,.35), transparent 55%), radial-gradient(ellipse at 0% 100%, rgba(244,153,0,.18), transparent 50%), linear-gradient(150deg, #16252F, var(--tw-dark));
	color: #fff;
}
.tw-shop-hero__in { max-width: 860px; margin: 0 auto; text-align: center; }
.tw-shop-hero__eb { margin: 0 0 10px; font: 700 13px/1 Inter, sans-serif; letter-spacing: .18em; text-transform: uppercase; color: var(--tw-yellow-b); }
.tw-shop-hero__h { margin: 0; font: 800 clamp(30px, 4.4vw, 48px)/1.12 Montserrat, sans-serif; color: #fff; }
.tw-shop-hero__p { margin: 14px auto 0; max-width: 680px; font-size: 17px; line-height: 1.6; color: #C9D6DA; }
.tw-shop-search { display: flex; gap: 8px; max-width: 560px; margin: 26px auto 0; padding: 6px; background: #fff; border-radius: 999px; box-shadow: 0 14px 30px rgba(0,0,0,.25); }
.tw-shop-search input[type=search] { flex: 1; min-width: 0; border: 0 !important; background: transparent; padding: 10px 16px; font: 400 16px/1.3 Inter, sans-serif; color: var(--tw-navy); outline: none; box-shadow: none !important; }
.tw-shop-search button { flex: none; border: 0; border-radius: 999px; padding: 11px 22px; cursor: pointer; font: 700 15px/1 Inter, sans-serif; background: linear-gradient(90deg, var(--tw-orange-a), var(--tw-orange-b)); color: var(--tw-navy); }
.tw-shop-search button:hover, .tw-shop-search button:focus-visible { background: var(--tw-teal); color: #fff; outline: none; }
.tw-shop-search:focus-within { box-shadow: 0 0 0 3px rgba(6,180,186,.6), 0 14px 30px rgba(0,0,0,.25); }

/* Programme chips */
.tw-shop-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 1200px; margin: 22px auto 8px; padding: 0 4px; }
.tw-shop-chips a { padding: 9px 16px; border-radius: 999px; border: 1.5px solid var(--tw-line); background: #fff; color: var(--tw-navy) !important; font: 600 14px/1 Inter, sans-serif; text-decoration: none !important; white-space: nowrap; transition: border-color .15s, background .15s; }
.tw-shop-chips a:hover, .tw-shop-chips a:focus-visible { border-color: var(--tw-teal); outline: none; }
.tw-shop-chips a[aria-current="page"] { background: var(--tw-navy); border-color: var(--tw-navy); color: #fff !important; }
@media (max-width: 767px) {
	.tw-shop-hero { border-radius: 20px; }
	.tw-shop-chips { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; margin: 18px 0 4px; padding: 2px 0 6px; max-width: 100%; }
	.tw-shop-chips::-webkit-scrollbar { display: none; }
	.tw-shop-search button { padding: 11px 16px; }
}

/* Catalogue sections */
.tw-shop-cat { max-width: 1200px; margin: 0 auto; }
.tw-shop-sec { padding: 34px 0 6px; scroll-margin-top: 120px; }
.tw-shop-sec + .tw-shop-sec { border-top: 1px solid var(--tw-line); }
.tw-shop-sec__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 10px 24px; margin-bottom: 18px; }
.tw-shop-sec__head h2 { margin: 0; font: 800 clamp(24px, 2.6vw, 30px)/1.2 Montserrat, sans-serif; color: var(--tw-navy); }
.tw-shop-sec__head p { margin: 6px 0 0; color: var(--tw-body); font-size: 16px; }
.tw-shop-sec__links { display: flex; gap: 18px; flex-wrap: wrap; }
.tw-shop-sec__links a { font: 700 15px/1.3 Inter, sans-serif; color: var(--tw-teal-text) !important; text-decoration: none !important; }
.tw-shop-sec__links a:hover { text-decoration: underline !important; }

/* Course cards (all grids) */
.woocommerce ul.products.tw-pgrid, .tw-shop-ui.woocommerce ul.products, .tw-shop-ui .woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 20px;
	margin: 0 0 24px !important;
	padding: 0 !important;
	list-style: none;
}
.tw-shop-ui ul.products::before, .tw-shop-ui ul.products::after, ul.products.tw-pgrid::before, ul.products.tw-pgrid::after { display: none !important; }
.woocommerce ul.products li.product.tw-pcard, ul.products.tw-pgrid li.product.tw-pcard {
	width: auto !important; float: none !important; margin: 0 !important; padding: 0 !important;
	display: flex; flex-direction: column; overflow: hidden;
	background: #fff; border: 1px solid var(--tw-line); border-radius: 18px;
	transition: box-shadow .2s, transform .2s, border-color .2s;
}
li.product.tw-pcard:hover { box-shadow: 0 16px 34px rgba(31,42,48,.12); border-color: #D3DEE2; }
.tw-pcard__media { display: block; aspect-ratio: 4 / 3; background: var(--tw-dark); overflow: hidden; }
.tw-pcard__media img.tw-pcard__img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0 !important; margin: 0 !important; transition: transform .35s; }
li.product.tw-pcard:hover .tw-pcard__media img { transform: scale(1.03); }
.tw-pcard__media .tw-course-tile { margin: 0; height: 100%; border-radius: 0; }
.tw-pcard__body { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 16px 18px 18px; }
.tw-pcard__cat { font: 700 12px/1.2 Inter, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--tw-teal-text); }
.tw-pcard__title { margin: 0; font: 700 17px/1.35 Montserrat, sans-serif; }
.tw-pcard__title a { color: var(--tw-navy) !important; text-decoration: none !important; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tw-pcard__title a:hover { color: var(--tw-teal-text) !important; }
.tw-pcard__foot { margin-top: auto; padding-top: 10px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.tw-pcard__price { font: 800 18px/1.2 Montserrat, sans-serif; color: var(--tw-navy); }
.tw-pcard__price del { font-size: 14px; font-weight: 600; opacity: .55; margin-right: 4px; }
.tw-pcard__price ins { text-decoration: none; }
.tw-pcard__btns { display: flex; align-items: center; gap: 12px; }
.tw-pcard__more { font: 700 14px/1 Inter, sans-serif; color: var(--tw-teal-text) !important; text-decoration: none !important; }
.tw-pcard__more:hover { text-decoration: underline !important; }
.tw-pcard__btn { padding: 10px 18px; border-radius: 999px; font: 700 14px/1 Inter, sans-serif; text-decoration: none !important; background: linear-gradient(90deg, var(--tw-orange-a), var(--tw-orange-b)); color: var(--tw-navy) !important; transition: background .2s, color .2s; }
.tw-pcard__btn:hover, .tw-pcard__btn:focus-visible { background: var(--tw-teal); color: #fff !important; outline: none; }
@media (max-width: 600px) {
	.woocommerce ul.products.tw-pgrid, .tw-shop-ui.woocommerce ul.products, .tw-shop-ui .woocommerce ul.products { grid-template-columns: 1fr; gap: 16px; }
}
@media (prefers-reduced-motion: reduce) { li.product.tw-pcard, .tw-pcard__media img { transition: none; } li.product.tw-pcard:hover .tw-pcard__media img { transform: none; } }

/* Sorting and pagination on category pages */
.tw-shop-ui .woocommerce-ordering { margin: 8px 0 18px; }
.tw-shop-ui .woocommerce-ordering select { border: 1.5px solid var(--tw-line); border-radius: 999px; padding: 9px 36px 9px 16px; font: 600 14px/1 Inter, sans-serif; color: var(--tw-navy); background-color: #fff; }
.tw-shop-ui nav.woocommerce-pagination ul { border: 0 !important; display: flex; gap: 6px; justify-content: center; }
.tw-shop-ui nav.woocommerce-pagination ul li { border: 0 !important; }
.tw-shop-ui nav.woocommerce-pagination ul li a, .tw-shop-ui nav.woocommerce-pagination ul li span { border-radius: 999px; min-width: 40px; padding: 10px 12px !important; border: 1.5px solid var(--tw-line); }
.tw-shop-ui nav.woocommerce-pagination ul li span.current { background: var(--tw-navy); color: #fff; border-color: var(--tw-navy); }

/* Course page */
.tw-shop-ui div.product { max-width: 1200px; margin-left: auto; margin-right: auto; }
.tw-shop-ui div.product div.images { border-radius: 22px; overflow: hidden; box-shadow: 0 18px 40px rgba(31,42,48,.14); }
.tw-shop-ui div.product div.images img { border-radius: 0; display: block; width: 100%; height: auto; }
.tw-single-cat { margin: 0 0 10px; font: 700 13px/1.2 Inter, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--tw-teal-text); }
.tw-shop-ui div.product .summary { padding: 4px 0 0; }
.tw-single-more { margin: 4px 0 18px; }
.tw-single-more a { font: 700 15px/1.3 Inter, sans-serif; color: var(--tw-teal-text) !important; text-decoration: none !important; }
.tw-single-more a:hover { text-decoration: underline !important; }
@media (min-width: 1025px) {
	.tw-shop-ui.woocommerce div.product div.images { width: 52%; }
	.tw-shop-ui.woocommerce div.product div.summary { width: 43%; position: sticky; top: 110px; }
}
@media (max-width: 767px) {
	.tw-shop-ui div.product div.images { border-radius: 16px; margin-bottom: 22px; }
}
.tw-shop-ui div.product::after { content: ""; display: table; clear: both; }
@media (max-width: 767px) { .tw-shop-cat .tw-pgrid li.tw-pcard:nth-child(n+5) { display: none !important; } }
