.creaworld-coupon-system {
margin: 0 auto;
padding: 20px;
}
.creaworld-coupon-system h3 {
font-size: 1.5em;
margin-bottom: 20px;
color: #333;
}
.coupon-list {
display: flex;
flex-wrap: nowrap;
overflow-x: auto;
gap: 15px;
margin-bottom: 30px;
padding: 10px 5px;
scroll-behavior: smooth;
-webkit-overflow-scrolling: touch;
scrollbar-width: thin;
scrollbar-color: #ddd transparent;
align-items: stretch;
}
.coupon-list::-webkit-scrollbar {
height: 6px;
}
.coupon-list::-webkit-scrollbar-track {
background: transparent;
}
.coupon-list::-webkit-scrollbar-thumb {
background-color: #ddd;
border-radius: 3px;
}
.coupon-list::-webkit-scrollbar-thumb:hover {
background-color: #bbb;
} .coupon-list-container {
position: relative;
} .coupon-scroll-btn {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 40px;
height: 40px;
background: #fff;
border: 1px solid #ddd;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
z-index: 10;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
transition: all 0.3s ease;
opacity: 0;
visibility: hidden;
}
.coupon-scroll-btn svg {
width: 28px;
height: 28px;
}
.coupon-list-container:hover .coupon-scroll-btn {
opacity: 1;
visibility: visible;
}
.coupon-scroll-btn:hover {
background: #f5f5f5;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.coupon-scroll-btn:active {
transform: translateY(-50%) scale(0.95);
}
.scroll-left {
left: -20px;
border-radius: 20px !important;
}
.scroll-right {
right: -20px;
border-radius: 20px !important;
}
@media (max-width: 768px) {
.coupon-scroll-btn {
width: 36px;
height: 36px;
}
.scroll-left {
left: -15px;
border-radius: 20px !important;
}
.scroll-right {
right: -15px;
border-radius: 20px !important;
}
}
.coupon-item {
background: #fff;
border: 1px solid #ddd;
border-radius: 8px;
padding: 20px;
transition: all 0.3s ease;
flex: 0 0 calc(50% - 10px);
min-width: 300px;
max-width: 400px;
display: flex;
flex-direction: column;
height: 100%;
}
.coupon-item .coupon-content {
flex: 1;
display: flex;
flex-direction: column;
}
.coupon-item .coupon-details {
flex: 1;
display: flex;
flex-direction: column;
}
.coupon-item .coupon-details > *:last-child {
margin-bottom: 0;
}
.coupon-item .coupon-actions {
margin-top: 0;
}
@media (max-width: 768px) {
.coupon-item {
flex: 0 0 calc(50% - 7.5px);
min-width: 280px;
}
}
@media (max-width: 480px) {
.coupon-item {
flex: 0 0 85%;
min-width: 260px;
}
}
.coupon-item:hover {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
transform: translateY(-2px);
}
.coupon-item.applied {
border-color: #4CAF50;
background-color: #f8fff8;
}
.coupon-item.expired {
opacity: 0.6;
pointer-events: none;
}
.coupon-item.collected {
border-color: #2196F3;
background-color: #f8faff;
}
.coupon-item.recommended {
border-color: #FF9800;
background: linear-gradient(135deg, #fff8e1 0%, #ffe0b2 100%);
box-shadow: 0 4px 12px rgba(255, 152, 0, 0.2);
position: relative;
}
.coupon-item.recommended::before {
content: "★ Recommended";
position: absolute;
top: -12px;
left: 12px;
background: linear-gradient(135deg, #FF9800 0%, #F57C00 100%);
color: white;
padding: 4px 12px;
border-radius: 12px;
font-size: 0.75em;
font-weight: 600;
box-shadow: 0 2px 4px rgba(255, 152, 0, 0.3);
z-index: 1;
}
.coupon-item.invalid {
filter: grayscale(100%);
opacity: 0.7;
pointer-events: none;
}
.coupon-item.invalid .coupon-actions .button {
background-color: var(--e-global-color-b94d223) !important;
color: var(--e-global-color-e1d8a4e) !important;
cursor: not-allowed;
opacity: 0.5 !important;
}
.coupon-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 15px;
}
.coupon-code {
font-size: 1.2em;
font-weight: bold;
color: #333;
margin: 0;
}
.coupon-status {
padding: 4px 12px;
border-radius: 12px;
font-size: 0.85em;
font-weight: 500;
text-transform: uppercase;
}
.coupon-status.applied {
background-color: #4CAF50;
color: white;
}
.coupon-status.expired {
background-color: #f44336;
color: white;
}
.coupon-status.collected {
background-color: #2196F3;
color: white;
}
.coupon-details {
margin-bottom: 15px;
}
.coupon-description {
color: #666;
margin: 0 0 10px 0;
line-height: 1.4;
}
.coupon-amount {
font-size: 1.3em;
font-weight: bold;
color: #E91E63;
margin: 0 0 10px 0;
flex-shrink: 0;
}
.coupon-expiry {
font-size: 0.9em;
color: #999;
margin: 0;
}
.coupon-actions {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.coupon-actions .button {
flex: 1;
min-width: 100px;
background-color: var(--e-global-color-b94d223);
font-family: var(--e-global-typography-5f1037f-font-family), Sans-serif;
font-size: var(--e-global-typography-5f1037f-font-size);
font-weight: var(--e-global-typography-5f1037f-font-weight);
text-transform: var(--e-global-typography-5f1037f-text-transform);
font-style: var(--e-global-typography-5f1037f-font-style);
text-decoration: var(--e-global-typography-5f1037f-text-decoration);
line-height: var(--e-global-typography-5f1037f-line-height);
letter-spacing: var(--e-global-typography-5f1037f-letter-spacing);
color: var(--e-global-color-e1d8a4e);
padding: 10px 25px 12px 25px;
border: none;
border-radius: 4px;
cursor: pointer;
transition: all 0.3s ease;
}
.coupon-actions .button.apply-coupon {
background-color: var(--e-global-color-b94d223);
color: var(--e-global-color-e1d8a4e);
}
.coupon-actions .button.apply-coupon:hover {
background-color: var(--e-global-color-877efc4);
color: var(--e-global-color-e1d8a4e);
opacity: 0.8;
}
.coupon-actions .button.collect-coupon {
background-color: var(--e-global-color-b94d223);
color: var(--e-global-color-e1d8a4e);
}
.coupon-actions .button.collect-coupon:hover {
background-color: var(--e-global-color-877efc4);
color: var(--e-global-color-e1d8a4e);
opacity: 0.8;
}
.coupon-actions .button.remove-coupon {
background-color: var(--e-global-color-b94d223);
color: var(--e-global-color-e1d8a4e);
}
.coupon-actions .button.remove-coupon:hover {
background-color: var(--e-global-color-877efc4);
color: var(--e-global-color-e1d8a4e);
opacity: 0.8;
}
.coupon-actions .button.collected-coupon {
background-color: var(--e-global-color-b94d223);
color: var(--e-global-color-e1d8a4e);
cursor: not-allowed;
opacity: 0.5;
}
.coupon-actions .button.collected-coupon:hover {
background-color: var(--e-global-color-877efc4);
color: var(--e-global-color-e1d8a4e);
cursor: not-allowed;
opacity: 0.5;
}
.coupon-actions .button:disabled {
background-color: var(--e-global-color-b94d223);
color: var(--e-global-color-e1d8a4e);
cursor: not-allowed;
opacity: 0.5;
}
.no-coupons {
text-align: center;
padding: 40px;
color: #999;
font-size: 1.1em;
} .creaworld-collected-coupons-wrapper {
margin: 30px 0;
padding: 20px;
background: #f9f9f9;
border-radius: 8px;
} .creaworld-checkout-coupons .coupon-list {
display: flex;
flex-wrap: nowrap;
overflow-x: auto;
gap: 15px;
margin-bottom: 30px;
padding: 10px 5px;
scroll-behavior: smooth;
-webkit-overflow-scrolling: touch;
scrollbar-width: thin;
scrollbar-color: #ddd transparent;
align-items: stretch;
}
.creaworld-checkout-coupons .coupon-list::-webkit-scrollbar {
height: 6px;
}
.creaworld-checkout-coupons .coupon-list::-webkit-scrollbar-track {
background: transparent;
}
.creaworld-checkout-coupons .coupon-list::-webkit-scrollbar-thumb {
background-color: #ddd;
border-radius: 3px;
}
.creaworld-checkout-coupons .coupon-list::-webkit-scrollbar-thumb:hover {
background-color: #bbb;
}
.creaworld-collected-coupons-wrapper h3 {
font-size: 1.3em;
margin-bottom: 20px;
color: #333;
} @media (max-width: 768px) {
.coupon-list {
grid-template-columns: 1fr;
}
.coupon-actions {
flex-direction: column;
}
.coupon-actions .button {
width: 100%;
}
} .coupon-item.loading {
opacity: 0.6;
pointer-events: none;
}
.coupon-item.loading::after {
content: "";
position: absolute;
top: 50%;
left: 50%;
width: 30px;
height: 30px;
margin: -15px 0 0 -15px;
border: 3px solid #f3f3f3;
border-top: 3px solid #3498db;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
} .creaworld-coupon-message {
padding: 15px;
margin-bottom: 20px;
border-radius: 4px;
display: none;
}
.creaworld-coupon-message.success {
background-color: #d4edda;
color: #155724;
border: 1px solid #c3e6cb;
display: block;
}
.creaworld-coupon-message.error {
background-color: #f8d7da;
color: #721c24;
border: 1px solid #f5c6cb;
display: block;
}
.creaworld-coupon-message.info {
background-color: #d1ecf1;
color: #0c5460;
border: 1px solid #bee5eb;
display: block;
} .coupon-info-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
margin-left: 8px;
cursor: pointer;
color: #666;
transition: color 0.3s ease;
}
.coupon-info-icon:hover {
color: #2196F3;
}
.coupon-info-icon svg {
width: 16px;
height: 16px;
} .coupon-conditions-tooltip {
background: #fff;
border: 1px solid #ddd;
border-radius: 4px;
padding: 12px 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
max-width: 300px;
min-width: 200px;
}
.coupon-conditions-list {
margin: 0;
padding-left: 20px;
list-style-type: disc;
}
.coupon-conditions-list li {
margin-bottom: 6px;
font-size: 14px;
color: #555;
line-height: 1.4;
}
.coupon-conditions-list li:last-child {
margin-bottom: 0;
} .remove-collection-coupon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
padding: 0;
background-color: var(--e-global-color-b94d223);
border: 1px solid var(--e-global-color-b94d223);
border-radius: 4px;
cursor: pointer;
transition: all 0.3s ease;
}
.remove-collection-coupon:hover {
background-color: var(--e-global-color-b94d223);
border-color: var(--e-global-color-b94d223);
color: var(--e-global-color-e1d8a4e);
opacity: 0.8;
}
.remove-collection-coupon svg {
width: 16px;
height: 16px;
} .creaworld-coupons-loading-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(255,255,255,0.85);
z-index: 10;
display: flex;
align-items: center;
justify-content: center;
border-radius: 8px;
}
.creaworld-coupons-spinner {
width: 30px;
height: 30px;
border: 3px solid #f3f3f3;
border-top: 3px solid #FF9800;
border-radius: 50%;
animation: creaworld-spin 1s linear infinite;
}
@keyframes creaworld-spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.creaworld-checkout-coupons.checkout-loading {
position: relative;
pointer-events: none;
opacity: 0.7;
}
.creaworld-checkout-coupons.checkout-loading .coupon-actions .button {
pointer-events: none;
opacity: 0.5;
} .creaworld-coupon-system.coupon-grid-layout {
max-width: 1400px;
}
.creaworld-coupon-system.coupon-grid-layout .coupon-list {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
overflow-x: visible;
padding: 0;
}
.creaworld-coupon-system.coupon-grid-layout .coupon-item {
flex: none;
min-width: auto;
max-width: none;
width: 100%;
display: flex;
flex-direction: column;
height: 100%;
}
.creaworld-coupon-system.coupon-grid-layout .coupon-content {
flex: 1;
display: flex;
flex-direction: column;
}
.creaworld-coupon-system.coupon-grid-layout .coupon-details {
flex: 1;
display: flex;
flex-direction: column;
}
.creaworld-coupon-system.coupon-grid-layout .coupon-actions {
margin-top: 0;
}
.creaworld-coupon-system.coupon-grid-layout .coupon-list-container {
display: block;
}
.creaworld-coupon-system.coupon-grid-layout .coupon-scroll-btn {
display: none;
}
@media (max-width: 1200px) {
.creaworld-coupon-system.coupon-grid-layout .coupon-list {
grid-template-columns: repeat(3, 1fr);
}
}
@media (max-width: 900px) {
.creaworld-coupon-system.coupon-grid-layout .coupon-list {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 600px) {
.creaworld-coupon-system.coupon-grid-layout .coupon-list {
grid-template-columns: 1fr;
}
} .creaworld-coupon-system .load-more-container {
text-align: center;
margin-top: 30px;
}
.creaworld-coupon-system .load-more-btn {
display: inline-block;
background-color: var(--e-global-color-b94d223);
font-family: var(--e-global-typography-5f1037f-font-family), Sans-serif;
font-size: var(--e-global-typography-5f1037f-font-size);
font-weight: var(--e-global-typography-5f1037f-font-weight);
text-transform: var(--e-global-typography-5f1037f-text-transform);
font-style: var(--e-global-typography-5f1037f-font-style);
text-decoration: var(--e-global-typography-5f1037f-text-decoration);
line-height: var(--e-global-typography-5f1037f-line-height);
letter-spacing: var(--e-global-typography-5f1037f-letter-spacing);
color: var(--e-global-color-e1d8a4e);
padding: 10px 25px 12px 25px;
border: none;
border-radius: 4px;
cursor: pointer;
transition: all 0.3s ease;
}
.creaworld-coupon-system .load-more-btn:hover {
background: #0b7dda;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.creaworld-coupon-system .load-more-btn:disabled {
background: #cccccc;
color: #666666;
cursor: not-allowed;
transform: none;
box-shadow: none;
}
.creaworld-coupon-system .load-more-btn.loading {
opacity: 0.7;
pointer-events: none;
}
.creaworld-coupon-system .load-more-btn.loading::after {
content: "";
display: inline-block;
width: 16px;
height: 16px;
margin-left: 10px;
border: 2px solid #ffffff;
border-top: 2px solid transparent;
border-radius: 50%;
animation: spin 0.8s linear infinite;
vertical-align: middle;
} .creaworld-coupon-system .no-more-coupons {
text-align: center;
padding: 20px;
color: #999;
font-size: 0.95em;
margin-top: 20px;
}
.coupon-item.invalid .minimum-amount-message .invalid-reason {
opacity: 1;
color: #e2401c;
font-style: italic;
}