/* MYPROT Custom Checkout — v1.3.2 */
:root{
	--myprot-black:#111;
	--myprot-red:#e50909;
	--myprot-bg:#f7f7f7;
	--myprot-border:#e3e3e3;
	--myprot-muted:#777;
}
*{box-sizing:border-box}
body.myprot-custom-checkout-body{
	margin:0!important;
	background:var(--myprot-bg);
	color:#161616;
	font-family:Arial,Helvetica,sans-serif;
}
body.myprot-custom-checkout-body button,
body.myprot-custom-checkout-body input,
body.myprot-custom-checkout-body select,
body.myprot-custom-checkout-body textarea{font:inherit; min-width:0}
.myprot-checkout-app{min-height:100vh}
.myprot-cc-header{
	height:92px;background:#fff;border-bottom:1px solid #eee;
	display:flex;align-items:center;gap:40px;padding:0 34px;
	position:sticky;top:0;z-index:100;
}
.myprot-cc-logo img {
display: block;
    width: 150px;
    height: auto;
    max-width: 100%;
}

.myprot-cc-logo a {
    display: inline-flex;
    align-items: center;
}
.myprot-cc-logo{width:170px}
.myprot-cc-logo a{font-size:31px;font-weight:900;font-style:italic;letter-spacing:-2.5px;text-decoration:none;color:#111}
.myprot-cc-logo span{font-size:9px;margin-left:2px}
.myprot-cc-steps{display: flex; justify-content: flex-start; flex: 1; max-width: 680px; margin: 0 auto}
.myprot-cc-steps i{width:68px;height:1px;background:#d8d8d8;margin:15px 8px 0}
.myprot-step{min-width:75px;text-align:center;color:#aaa;font-size:11px}
.myprot-step b{
	display:flex;width:30px;height:30px;border:1px solid #aaa;border-radius:50%;
	align-items:center;justify-content:center;margin:auto;background:#fff;font-size:12px;
}
.myprot-step span{display:block;margin-top:7px}
.myprot-step.is-active,.myprot-step.is-done{color:#111}
.myprot-step.is-active b,.myprot-step.is-done b{background:#111;color:#fff;border-color:#111}
.myprot-step.is-done b{font-size:0}
.myprot-step.is-done b:after{content:"✓";font-size:13px}
.myprot-help{width:210px;text-align:right;color:#000;font-size:14px;font-weight:600}
.myprot-cc-main{
	max-width:1400px;margin:38px auto;padding:0 20px;
	display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:24px;align-items:start
}
.myprot-cc-left{min-width:0}
.myprot-panel{
	background:#fff;border-radius:18px;padding:28px;
	box-shadow:0 1px 0 rgba(0,0,0,.02)
}
.myprot-step-panel h1{font-size:18px;line-height:1.15;margin:0 0 28px;font-weight:700}
.myprot-step-panel.is-hidden{display:none}
.myprot-cart-item{
	display:grid;grid-template-columns:90px 1fr auto;gap:18px;align-items:center;
	padding:16px 0;border-bottom:1px solid #eee
}
.myprot-cart-image{width:90px;height:90px;display:flex;align-items:center;justify-content:center}
.myprot-cart-image img{max-width:100%;max-height:100%;object-fit:contain}
.myprot-cart-info strong{display:block;font-size:16px;margin-bottom:6px}
.myprot-cart-info>span{display:block;color:#777;font-size:13px;margin-top:10px}
.myprot-variation{font-size:12px;color:#777}
.myprot-cart-price{font-weight:700;white-space:nowrap}
.myprot-step-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:28px}
.myprot-step-actions a,.myprot-back{
	color:#333;text-decoration:none;background:none;border:0;padding:10px 0;cursor:pointer
}

.myprot-back:hover { background: none}
.myprot-primary-btn{
	border:0;background:var(--myprot-red);color:#fff;border-radius:9px;
	padding:15px 26px;font-weight:700;cursor:pointer;min-width:180px;
	transition:.2s ease
}
.myprot-primary-btn:hover{filter:brightness(.94)}
.myprot-primary-btn:disabled{opacity:.55;cursor:not-allowed}
.myprot-primary-btn.loading{position:relative}
.myprot-field{margin-bottom:18px}
.myprot-field label{display:block;font-size:13px;font-weight:600;margin:0 0 7px}
.myprot-field input,.myprot-field select,.myprot-field textarea{
	width:100%;height:50px;border:1px solid #d8d8d8;border-radius:9px;
	padding:0 14px;background:#fff;color:#111;outline:none
}
.myprot-field input:focus,.myprot-field select:focus{border-color:#111;box-shadow:0 0 0 2px rgba(0,0,0,.05)}
.myprot-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.myprot-grid.three{grid-template-columns:1fr 1fr 1fr}
.myprot-methods{display:flex;flex-direction:column;gap:10px}
.myprot-shipping-option,.myprot-payment-option{
	display:block;border:1px solid #ddd;border-radius:13px;background:#fff;overflow:hidden
}
.myprot-shipping-option{
	display:grid;grid-template-columns:22px 1fr auto;gap:12px;align-items:center;padding:18px;cursor:pointer
}
.myprot-shipping-option:has(input:checked),.myprot-payment-option.is-selected{border-color:#111;box-shadow:0 0 0 1px #111}
.myprot-shipping-option input,.myprot-payment-option input{position:absolute;opacity:0;pointer-events:none}
.myprot-radio-dot{
	width:18px;height:18px;border:1px solid #aaa;border-radius:50%;display:inline-block;position:relative
}
.myprot-shipping-option input:checked + .myprot-radio-dot,
.myprot-radio-row input:checked + .myprot-radio-dot{border:5px solid #111}
.myprot-shipping-copy strong{display:block;font-size:15px}
.myprot-shipping-copy small{display:block;color:#777;margin-top:4px}
.myprot-payment-option{padding:0}
.myprot-radio-row{display:flex;align-items:center;gap:12px;padding:18px 0;cursor:pointer}
.myprot-payment-title{font-weight:700; font-size:13px}
.myprot-payment-fields{display:none;padding:0 50px 10px; font-size: 14px}
.myprot-payment-option.is-selected .myprot-payment-fields{display:block}
.myprot-payment-fields p{margin:0 20px}
.myprot-payment-fields label{font-size:13px}
.myprot-payment-fields input,.myprot-payment-fields select{
	width:100%;height:45px;border:1px solid #ddd;border-radius:8px;padding:0 10px
}
.myprot-summary{position:sticky;top:112px}
.myprot-summary h2{font-size:18px;margin:0 0 20px}
.myprot-mini-item{
	display:grid;grid-template-columns:58px 1fr auto;gap:11px;align-items:center;
	padding:10px 0;border-bottom:1px solid #eee
}
.myprot-mini-image{width:58px;height:58px;display:flex;align-items:center;justify-content:center}
.myprot-mini-image img{max-width:100%;max-height:100%;object-fit:contain}
.myprot-mini-info strong{display:block;font-size:13px;line-height:1.25}
.myprot-mini-info span{display:block;color:#777;font-size:12px;margin-top:4px}
.myprot-mini-price{font-size:13px;font-weight:700;white-space:nowrap}

.myprot-coupon{
	margin-top:18px;padding-top:17px;border-top:1px solid #eee
}
.myprot-coupon-toggle{
	display:block;width:100%;padding:0;border:0;background:none;text-align:left;
	font-size:13px;color:#333;cursor:pointer;text-decoration:underline;text-underline-offset:3px
}
.myprot-coupon-toggle span{font-weight:600}
.myprot-coupon-box{padding-top:12px}
.myprot-coupon-form{display:flex;gap:8px}
.myprot-coupon-form input{
	min-width:0;flex:1;height:44px;border:1px solid #d8d8d8;border-radius:8px;
	padding:0 12px;font-size:13px;outline:none
}
.myprot-coupon-form input:focus{border-color:#111;box-shadow:0 0 0 2px rgba(0,0,0,.05)}
.myprot-coupon-form button{
	height:44px;border:0;border-radius:8px;background:#111;color:#fff;padding:0 17px;
	font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap
}
.myprot-coupon-form button:disabled{opacity:.55;cursor:not-allowed}
.myprot-coupon-message{min-height:18px;margin-top:8px;font-size:12px}
.myprot-coupon-message.is-success{color:#188038}
.myprot-coupon-message.is-error{color:#b00020}
.myprot-summary-lines #myprot-coupon-lines{display:block;padding:0}
.myprot-coupon-line{
	display:flex;justify-content:space-between;gap:15px;padding:8px 0;font-size:13px
}
.myprot-coupon-line strong{font-weight:700}

.myprot-summary-lines{margin-top:20px}
.myprot-summary-lines>div{display:flex;justify-content:space-between;gap:20px;padding:8px 0;font-size:14px}
.myprot-summary-lines .myprot-total{border-top:1px solid #ddd;margin-top:10px;padding-top:18px;font-size:18px}
.myprot-notice{
	margin-top:18px;padding:14px 16px;border-radius:10px;background:#fff0f0;color:#a30000;font-size:14px
}
.myprot-notice.success{background:#edfff2;color:#137333}
.myprot-notice.is-hidden{display:none}
.myprot-loader,.myprot-empty{padding:25px;text-align:center;color:#777;background:#fafafa;border-radius:12px}
.myprot-success{max-width:700px;margin:80px auto;padding:55px 30px;background:#fff;border-radius:20px;text-align:center}
.myprot-success-icon{
	width:70px;height:70px;border-radius:50%;background:#111;color:#fff;
	display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:34px
}
.myprot-success h1{font-size:34px;margin:0 0 10px}
.myprot-success p{color:#666}
.myprot-order-number{font-weight:700;color:#111!important}
.myprot-success-box{padding:18px;background:#f7f7f7;border-radius:10px;margin:25px 0}
@media(max-width:900px){
	.myprot-cc-header{height:75px;padding:0 16px}
	.myprot-cc-logo{width:auto}.myprot-cc-logo a{font-size:24px}
	.myprot-help{display:none}
	.myprot-cc-steps{max-width:none}
	.myprot-cc-steps i{width:25px;margin-left:3px;margin-right:3px}
	.myprot-step{min-width:55px;font-size:9px}
	.myprot-step b{width:25px;height:25px;font-size:10px}
	.myprot-step span{margin-top:5px}
	.myprot-cc-main{grid-template-columns:1fr;margin-top:18px;padding:0 12px}
	.myprot-summary{position:static;order:-1}
}
@media(max-width:600px){
	.myprot-panel{padding:20px;border-radius:14px}
	.myprot-step-panel h1{font-size:16px;margin-bottom:22px}
	.myprot-grid,.myprot-grid.three{grid-template-columns:1fr;gap:0}
	.myprot-cart-item{grid-template-columns:70px 1fr;gap:12px}
	.myprot-cart-image{width:70px;height:70px}
	.myprot-cart-price{grid-column:2}
	.myprot-step-actions{flex-direction:column-reverse;align-items:stretch;display:none}
	.myprot-step-actions .myprot-primary-btn{width:100%}
	.myprot-summary{order:-1}
	.myprot-summary h2{font-size:13px}
	.myprot-cc-logo{display:none}
	.myprot-cc-steps{justify-content:center}
	.myprot-shipping-description{width:125%}
	.myprot-shipping-text-primary { font-size: 12px}
	.myprot-payment-fields{font-size: 12px}
	
}

/* =========================================================
   MYPROT CART — PROZIS-STYLE LAYOUT
========================================================= */
.myprot-cart-panel{padding:28px 30px 30px}
.myprot-cart-heading h1{font-size:18px;line-height:1.1;margin:0;font-weight:700;letter-spacing:-.5px}
.myprot-cart-icon{font-size:24px;vertical-align:3px;margin-right:7px}
.myprot-cart-count{font-size:14px;color:#8a8a8a;margin-top:6px}
.myprot-cart-item{
	grid-template-columns:150px minmax(0,1fr) auto;
	gap:24px;
	min-height:165px;
	padding:18px 0;
	border-bottom:1px solid #ededed;
}
.myprot-cart-image{width:150px;height:145px}
.myprot-cart-image img{max-width:100%;max-height:100%;object-fit:contain}
.myprot-cart-info{align-self:center;min-width:0}
.myprot-cart-info strong{font-size:13px;line-height:1.25;margin-bottom:8px;font-weight: normal}
.myprot-variation{font-size:13px;color:#8a8a8a}
.myprot-cart-controls{display:flex;align-items:center;gap:0;margin-top:28px}
.myprot-qty-btn{
	width:25px;height:25px;min-width: 25px;border:0;border-radius:50%;background:#333;color:#fff;
	display:flex;align-items:center;justify-content:center;font-size:19px;line-height:1;
	cursor:pointer;padding:0
}
.myprot-qty-btn:hover{background:#111}
.myprot-qty-value{min-width:38px;text-align:center;font-size:14px;font-weight:600}
.myprot-remove{
	margin-left: 20px;
    min-width: 0 !important;
    border: 0;
    background: none;
    color: #000;
    font-size: 13px !important;
    font-weight: 600;
    cursor: pointer;
    padding: 5px 0;
}
.myprot-remove:hover{text-decoration:underline; background: none !important}
.myprot-remove span{font-size:13px;margin-left:2px}
.myprot-cart-price{align-self:center;font-size:16px;font-weight:700}

.myprot-promo-panel{
	margin-top:28px;padding:24px 18px 20px;background:#fff;border-radius:16px;
	border:1px solid #f0f0f0
}
.myprot-promo-panel h2{margin:0;font-size:18px;line-height:1.2;font-weight:700}
.myprot-promo-panel h2 span{font-size:18px;margin-right:6px}
.myprot-promo-status{margin:7px 0 16px;color:#9a9a9a;font-size:13px}
.myprot-promo-status.is-applied{color:#188038}
.myprot-promo-form{display:flex;gap:14px;max-width:500px}
.myprot-promo-form input{
	flex:1;min-width:0;height:48px;border:1px solid #bbb;border-radius:24px;
	padding:0 16px;font-size:14px;outline:none
}
.myprot-promo-form input:focus{border-color:#111}
.myprot-promo-form button{
	height:44px;padding:0 22px;border:1px solid #000;border-radius:5px;background:#000; color: #fff;
	font-size:13px;font-weight:600;cursor:pointer
}
.myprot-promo-form button:hover{background:#df0101; border: none}

.myprot-cc-right{display:flex;flex-direction:column;gap:18px;position:sticky;top:110px}
.myprot-cc-right .myprot-panel{width:100%}
.myprot-cc-right .myprot-summary{position:static; background: #fff;}
.myprot-points-card{padding:24px 28px}
.myprot-points-title{font-size:18px;font-weight:700;margin-bottom:18px}
.myprot-crown{font-size:20px;margin-right:5px}
.myprot-points-row{
	display:flex;justify-content:space-between;align-items:center;gap:20px;
	padding:14px 0;border-bottom:1px solid #e9e9e9;font-size:14px
}
.myprot-points-row strong{font-size:15px}
.myprot-points-row strong:first-letter{color:#000}
.myprot-points-total{border-bottom:0;padding-bottom:0}
.myprot-points-mark{font-size:14px}
.myprot-summary{padding:24px 28px}
.myprot-summary h2{font-size:18px;margin:0 0 16px}
.myprot-summary #myprot-summary-items{display:none}
.myprot-summary-lines{margin-top:0}
.myprot-summary-lines>div{font-size:14px;padding:9px 0}
.myprot-summary-lines .myprot-total{margin-top:10px;padding-top:18px;font-size:16px}
.myprot-primary-btn{border-radius:24px}

@media(max-width:900px){
	.myprot-cc-right{position:static}
}
@media(max-width:600px){
	.myprot-cart-panel{padding:20px 16px 22px}
	.myprot-cart-heading h1{font-size:18px}
	.myprot-cart-item{grid-template-columns:82px minmax(0,1fr);gap:13px;min-height:0;padding:15px 0}
	.myprot-cart-image{width:82px;height:90px;grid-row:1 / span 2}
	.myprot-cart-info strong{font-size:11px}
	.myprot-cart-price{grid-column:2;align-self:start;font-size:14px;margin-top:-3px}
	.myprot-cart-controls{margin-top:16px}
	.myprot-promo-panel{padding:18px 14px}
	.myprot-promo-panel h2{font-size:13px}
	.myprot-promo-form{gap:8px}
	.myprot-promo-form input{height:44px}
	.myprot-promo-form button{height:44px;padding:0 17px}
	.myprot-points-card,.myprot-summary{padding:20px}
	.myprot-cc-right .myprot-summary {margin-top:0}
	.myprot-cc-right {margin-bottom: 60px}
}


/* v1.3.0 - fixed Morocco phone prefix + saved-address helper */
.myprot-info-note{margin:-8px 0 22px;color:#777;font-size:13px;line-height:1.5}
.myprot-phone-wrap{display:flex;align-items:stretch;width:100%;border:1px solid #d8d8d8;border-radius:10px;overflow:hidden;background:#fff}
.myprot-phone-wrap:focus-within{border-color:#222}
.myprot-phone-prefix{display:flex;align-items:center;padding:0 15px;background:#f7f7f7;border-right:1px solid #ddd;font-weight:700;color:#222;flex:0 0 auto}
.myprot-phone-wrap input{border:0!important;border-radius:0!important;box-shadow:none!important;outline:0!important;flex:1;min-width:0}
.myprot-field small{display:block;margin-top:6px;color:#888;font-size:11px}

/* Shipping amount is hidden until the Livraison step. */
.myprot-shipping-summary-line.is-hidden{display:none !important;}

/* Step 4 payment row in the order summary */
.myprot-payment-summary-line {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
}
.myprot-payment-summary-line.is-hidden { display:none !important; }

.myprot-coupon-line-right{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.myprot-remove-coupon{border:0;background:none;padding:0;margin:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;font-size:12px;opacity:.75}
.myprot-remove-coupon:hover{opacity:1}
.myprot-remove-coupon:disabled{cursor:wait;opacity:.5}
.myprot-remove-coupon.loading{text-decoration:none}

/* COD restriction message — red text, no background */
.myprot-payment-option[data-gateway="cod"] .woocommerce-info,
.myprot-payment-option[data-gateway="cod"] .woocommerce-error,
.myprot-payment-option[data-gateway="cod"] .woocommerce-message,
.myprot-payment-option[data-gateway="cod"] .myprot-cod-message,
.myprot-payment-option[data-gateway="cod"] .myprot-cod-restriction,
.myprot-payment-fields .myprot-cod-message,
.myprot-payment-fields .myprot-cod-restriction,
.myprot-payment-fields .woocommerce-info,
.myprot-payment-fields .woocommerce-error,
.myprot-payment-fields .woocommerce-message {
	background: transparent !important;
	background-color: transparent !important;
	color: #e50909 !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 8px 0 0 !important;
	font-size: 13px !important;
	line-height: 1.5 !important;
}

.myprot-payment-option[data-gateway="cod"] .woocommerce-info::before,
.myprot-payment-option[data-gateway="cod"] .woocommerce-error::before,
.myprot-payment-option[data-gateway="cod"] .woocommerce-message::before,
.myprot-payment-option[data-gateway="cod"] .myprot-cod-message::before,
.myprot-payment-option[data-gateway="cod"] .myprot-cod-restriction::before,
.myprot-payment-fields .myprot-cod-message::before,
.myprot-payment-fields .myprot-cod-restriction::before,
.myprot-payment-fields .woocommerce-info::before,
.myprot-payment-fields .woocommerce-error::before,
.myprot-payment-fields .woocommerce-message::before {
	display: none !important;
	content: none !important;
}

/* MYPROT COD blocked-account message */
.myprot-cod-restriction{
	background: transparent !important;
	color: #e50909 !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 10px 0 0 !important;
	font-size: 13px !important;
	line-height: 1.55 !important;
	font-weight: 500 !important;
}

/* v1.5.0 — Shipping card layout matching the requested reference */
.myprot-shipping-option{
	display:grid !important;
	grid-template-columns:22px minmax(0,1fr) auto !important;
	column-gap:18px !important;
	row-gap:0 !important;
	align-items:start !important;
	padding:24px !important;
	min-height:150px;
}
.myprot-shipping-copy{
	display:block !important;
	min-width:0 !important;
}
.myprot-shipping-copy > strong{
	display:block !important;
	font-size:18px !important;
	line-height:1.2 !important;
	font-weight:700 !important;
	color:#222 !important;
	margin:0 !important;
}
.myprot-shipping-copy > small{
	display:block !important;
	font-size:13px !important;
	line-height:1.35 !important;
	color:#777 !important;
	margin:2px 0 0 !important;
}
.myprot-shipping-description{
	display:flex !important;
	flex-direction:column !important;
	gap:7px !important;
	margin-top:18px !important;
	font-size:15px !important;
	line-height:1.55 !important;
	color:#333 !important;
}
.myprot-shipping-description > strong{
	display:block !important;
	font-size:17px !important;
	line-height:1.2 !important;
	font-weight:700 !important;
	color:#222 !important;
}
.myprot-shipping-description > span{
	display:block !important;
	margin:0 !important;
}
.myprot-shipping-price{
	display:block !important;
	align-self:start !important;
	white-space:nowrap !important;
	font-size:17px !important;
	font-weight:700 !important;
	color:#222 !important;
	margin-left:20px !important;
}
@media (max-width:700px){
	.myprot-shipping-option{
		grid-template-columns:20px minmax(0,1fr) !important;
		padding:18px !important;
	}
	.myprot-shipping-price{
		grid-column:2 !important;
		margin:10px 0 0 !important;
		justify-self:start !important;
	}
	.myprot-shipping-copy > strong{font-size:15px !important;}
	.myprot-shipping-copy > small{font-size:13px !important;}
	.myprot-shipping-description{font-size:13px !important;margin-top:14px !important;}
}

/* v1.5.1 — requested shipping text and price alignment */
.myprot-shipping-option{
	display:grid !important;
	grid-template-columns:22px minmax(0,1fr) auto !important;
	align-items:start !important;
}
.myprot-shipping-copy{
	grid-column:2 !important;
	min-width:0 !important;
}
.myprot-shipping-price{
	grid-column:3 !important;
	grid-row:1 / span 2 !important;
	align-self:start !important;
	justify-self:end !important;
	margin:0 0 0 24px !important;
	white-space:nowrap !important;
}
.myprot-shipping-description{
	display:flex !important;
	flex-direction:column !important;
	gap:6px !important;
	margin-top:18px !important;
}
.myprot-shipping-main{
	display:block !important;
	font-size:15px !important;
	line-height:1.55 !important;
	font-weight:500 !important;
	color:#222 !important;
}
.myprot-shipping-secondary{
	display:block !important;
	font-size:13px !important;
	line-height:1.5 !important;
	font-weight:400 !important;
	color:#666 !important;
}
@media (max-width:700px){
	.myprot-shipping-option{
		grid-template-columns:20px minmax(0,1fr) auto !important;
	}
	.myprot-shipping-price{
		grid-column:3 !important;
		grid-row:1 !important;
		margin-left:10px !important;
	}
	.myprot-shipping-main{font-size:14px !important;}
	.myprot-shipping-secondary{font-size:12px !important;}
}

/* v1.5.2 — shipping radio left + independent text blocks */
.myprot-shipping-option{
	display:grid !important;
	grid-template-columns:22px minmax(0,1fr) auto !important;
	grid-template-areas:"radio content price" !important;
	align-items:start !important;
	column-gap:18px !important;
	row-gap:0 !important;
}
.myprot-shipping-option > input[type="radio"]{
	grid-area:radio !important;
	position:relative !important;
	display:block !important;
	width:18px !important;
	height:18px !important;
	margin:3px 0 0 !important;
	align-self:start !important;
	justify-self:start !important;
}
.myprot-shipping-option > .myprot-radio-dot{
	grid-area:radio !important;
	align-self:start !important;
	justify-self:start !important;
	margin-top:2px !important;
}
.myprot-shipping-copy{
	grid-area:content !important;
	display:block !important;
	min-width:0 !important;
}
.myprot-shipping-price{
	grid-area:price !important;
	align-self:start !important;
	justify-self:end !important;
	margin:0 0 0 24px !important;
	white-space:nowrap !important;
}
.myprot-shipping-description{
	display:block !important;
	margin-top:18px !important;
}
.myprot-shipping-text{
	display:block !important;
	margin:0 !important;
	padding:0 !important;
}
.myprot-shipping-text-primary{
	font-size:14px !important;
	line-height:1.5 !important;
	font-weight:600 !important;
	color:#222 !important;
	margin-bottom:5px !important;
}
.myprot-shipping-text-secondary{
	font-size:13px !important;
	line-height:1.5 !important;
	font-weight:400 !important;
	color:#666 !important;
}
@media (max-width:700px){
	.myprot-shipping-option{
		grid-template-columns:20px minmax(0,1fr) auto !important;
		grid-template-areas:"radio content price" !important;
	}
	.myprot-shipping-option > input[type="radio"],
	.myprot-shipping-option > .myprot-radio-dot{
		grid-area:radio !important;
	}
	.myprot-shipping-copy{
		grid-area:content !important;
	}
	.myprot-shipping-price{
		grid-area:price !important;
		margin-left:10px !important;
	}
	.myprot-shipping-text-primary{
		font-size:13px !important;
	}
	.myprot-shipping-text-secondary{
		font-size:12px !important;
	}
}


/* ================================================================
   MYPROT Terms Modal — added without modifying existing checkout CSS
   ================================================================ */

body.myprot-terms-open{
	overflow:hidden !important;
}

.myprot-terms-modal{
	position:fixed !important;
	inset:0 !important;
	z-index:999999 !important;
	display:flex !important;
	align-items:center !important;
	justify-content:center !important;
	padding:24px !important;
	box-sizing:border-box !important;
}

.myprot-terms-modal.is-hidden{
	display:none !important;
}

.myprot-terms-backdrop{
	position:absolute !important;
	inset:0 !important;
	background:rgba(0,0,0,.62) !important;
	cursor:not-allowed !important;
}

.myprot-terms-dialog{
	position:relative !important;
	z-index:2 !important;
	width:min(680px,100%) !important;
	max-height:calc(100vh - 48px) !important;
	overflow:auto !important;
	background:#fff !important;
	border-radius:18px !important;
	padding:28px !important;
	box-sizing:border-box !important;
	box-shadow:0 24px 70px rgba(0,0,0,.30) !important;
}

.myprot-terms-heading{
	display:flex !important;
	align-items:center !important;
	gap:10px !important;
	margin:0 0 14px !important;
}

.myprot-terms-heading h2{
	margin:0 !important;
	font-size:20px !important;
	line-height:1.25 !important;
	font-weight:700 !important;
	color:#222 !important;
}

.myprot-terms-check{
	width:24px !important;
	height:24px !important;
	flex:0 0 24px !important;
	display:flex !important;
	align-items:center !important;
	justify-content:center !important;
	border:1px solid #999 !important;
	border-radius:2px !important;
	color:#555 !important;
	font-size:16px !important;
	font-weight:700 !important;
	box-sizing:border-box !important;
}

.myprot-terms-content{
	color:#444 !important;
	font-size:14px !important;
	line-height:1.55 !important;
}

.myprot-terms-content p{
	margin:0 0 10px !important;
}

.myprot-terms-content a{
	color:#222 !important;
	font-weight:700 !important;
	text-decoration:underline !important;
}

.myprot-terms-accept{
	width:100% !important;
	min-height:52px !important;
	margin-top:18px !important;
	padding:14px 20px !important;
	border:0 !important;
	border-radius:12px !important;
	background:#333 !important;
	color:#fff !important;
	font-size:15px !important;
	font-weight:700 !important;
	cursor:pointer !important;
	transition:opacity .2s ease,transform .2s ease !important;
}

.myprot-terms-accept:hover{
	opacity:.92 !important;
}

.myprot-terms-accept:disabled{
	opacity:.65 !important;
	cursor:wait !important;
}

@media (max-width:700px){
	.myprot-terms-modal{
		padding:16px !important;
	}

	.myprot-terms-dialog{
		border-radius:15px !important;
		padding:22px 18px !important;
		max-height:calc(100vh - 32px) !important;
	}

	.myprot-terms-heading h2{
		font-size:18px !important;
	}

	.myprot-terms-content{
		font-size:13px !important;
	}

	.myprot-terms-accept{
		font-size:14px !important;
	}
}


/* ================================================================
   MYPROT Gift Quantity Lock
   Gift quantity is fixed to 1. Existing checkout CSS is untouched.
   ================================================================ */

.myprot-cart-item.myprot-gift-item .myprot-gift-qty-lock{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:28px;
	height:30px;
	font-weight:600;
	line-height:1;
}

.myprot-cart-item.myprot-gift-item .myprot-qty-minus{
	cursor:pointer;
}


/* =========================================================
   MYPROT /panier/ — standalone cart page
   Uses the same cart UI as checkout step 1.
========================================================= */
.myprot-cart-empty{
	min-height:150px;
	margin:0 0 18px;
	padding:38px 20px;
	border-radius:14px;
	background:#f1f1f1;
	text-align:center;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
}
.myprot-cart-empty-icon{
	font-size:28px;
	line-height:1;
	margin-bottom:12px;
	filter:grayscale(1);
	opacity:.65;
}
.myprot-cart-empty h2{
	margin:0;
	font-size:20px;
	line-height:1.25;
	font-weight:700;
}
.myprot-cart-empty p{
	margin:6px 0 0;
	color:#999;
	font-size:14px;
}
.myprot-cart-panel .myprot-next:disabled{
	background:#d9d9d9!important;
	color:#999!important;
	cursor:not-allowed;
	filter:none;
}
.myprot-promo-form input:disabled,
.myprot-promo-form button:disabled{
	opacity:.55;
	cursor:not-allowed;
}
@media(max-width:600px){
	.myprot-cart-empty{min-height:135px;padding:28px 14px}
	.myprot-cart-empty h2{font-size:18px}
	.myprot-cart-empty p{font-size:13px}
}


/* Dynamic MYPROT Cart Gifts container */
.myprot-cart-gifts-container{
	width:100%;
	margin:0 0 20px;
}


/* WPLoyalty redemption link — positioned exactly opposite MyprotPoints */
.myprot-points-heading{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	margin-bottom:18px;
}
.myprot-points-heading .myprot-points-title{
	margin-bottom:0;
}
.myprot-redeem-points{
	border:0;
	background:transparent;
	padding:0;
	margin:0;
	color:#000 !important;
	font-size:13px !important;
	line-height:1.2;
	text-decoration:underline;
	cursor:pointer;
	white-space:nowrap;
}
.myprot-redeem-points:hover{
	color:#111;
	background:transparent !important;
}

.myprot-redeem-points:focus{
	color:#111;
	background:transparent !important;
}
@media(max-width:600px){
	.myprot-points-heading{gap:10px}
	.myprot-redeem-points{font-size:11px}
}


/* =========================================================
   MYPROT — MOBILE FIXED RED CONFIRM BUTTON
   ========================================================= */
@media (max-width: 767px){

	#myprot-place-order{
		position:fixed;
		left:12px;
		right:12px;
		bottom:calc(12px + env(safe-area-inset-bottom));
		width:calc(100% - 24px);
		z-index:99990;
		margin:0;
		box-shadow:0 8px 28px rgba(0,0,0,.18);
	}

	/* Keep the bottom of the payment panel clear of the fixed button. */
	.myprot-step-panel[data-panel="4"]{
		padding-bottom:105px;
	}

	/* Keep the terms modal above the fixed action button. */
	.myprot-terms-modal,
	.myprot-modal,
	.myprot-overlay{
		z-index:100000;
	}
}

/* A banned COD option must never occupy layout space. */
.myprot-payment-option.is-cod-blocked{
	display:none !important;
}


/* v1.7.1 — viewport-fixed mobile CTA.
   The JS moves the button directly under <body> to avoid transformed
   checkout/theme ancestors containing the fixed element. */
@media (max-width:767px){
	html body > #myprot-place-order{
		position:fixed !important;
		left:12px !important;
		right:12px !important;
		bottom:calc(12px + env(safe-area-inset-bottom)) !important;
		width:calc(100% - 24px) !important;
		max-width:none !important;
		min-width:0 !important;
		margin:0 !important;
		z-index:2147483000 !important;
		display:block !important;
		transform:none !important;
	}

	html body > #myprot-place-order.myprot-primary-btn{
		padding:15px 20px !important;
	}

	/* The modal must remain above the fixed CTA. */
	html body > .myprot-terms-modal,
	html body > .myprot-modal,
	html body > .myprot-overlay{
		z-index:2147483640 !important;
	}
}

/* =========================================================
   MYPROT v1.7.2 — ALL MOBILE CHECKOUT CTA BUTTONS FIXED
   ========================================================= */
@media (max-width:767px){

	html body > .myprot-mobile-fixed-action{
		position:fixed !important;
		left:12px !important;
		right:12px !important;
		bottom:calc(12px + env(safe-area-inset-bottom)) !important;
		width:calc(100% - 24px) !important;
		max-width:none !important;
		min-width:0 !important;
		margin:0 !important;
		z-index:2147483000 !important;
		display:block !important;
		transform:none !important;
		box-sizing:border-box !important;
		min-height:52px !important;
		padding:15px 20px !important;
	}

	/* Leave room for whichever CTA is fixed at the bottom. */
	.myprot-step-panel{
		padding-bottom:25px !important;
	}

	/* Mobile top-left back button. */
	.myprot-mobile-top-back{
		display:flex !important;
		position:absolute !important;
		left:12px !important;
		top:50% !important;
		transform:translateY(-50%) !important;
		width:38px !important;
		height:38px !important;
		align-items:center !important;
		justify-content:center !important;
		padding:0 !important;
		border:0 !important;
		background:transparent !important;
		color:#111 !important;
		font-size:24px !important;
		line-height:1 !important;
		cursor:pointer !important;
		z-index:20 !important;
	}

	/* Keep modal above fixed buttons. */
	html body > .myprot-terms-modal,
	html body > .myprot-modal,
	html body > .myprot-overlay{
		z-index:2147483640 !important;
	}
}

/* Hidden on desktop. */
.myprot-mobile-top-back{
	display:none;
}


/* v1.7.3: JS controls which fixed CTA belongs to the active step. */
@media (max-width:767px){
	html body > .myprot-mobile-fixed-action[aria-hidden="true"]{
		display:none !important;
	}
	html body > .myprot-mobile-fixed-action[aria-hidden="false"]{
		display:block !important;
	}
}


/* =========================================================
   MYPROT v1.7.5 — Hide Motta Mobile Navigation Bar
   Only on MYPROT custom cart/checkout pages.
   ========================================================= */
@media (max-width:767px){
	body.myprot-checkout-page #motta-mobile-navigation-bar{
		display:none !important;
		visibility:hidden !important;
		pointer-events:none !important;
	}
}


/* v1.7.6 — hard fallback for Motta mobile navigation */
@media (max-width:767px){
	body.myprot-checkout-page #motta-mobile-navigation-bar,
	body.myprot-checkout-page .motta-mobile-navigation-bar{
		display:none !important;
		visibility:hidden !important;
		opacity:0 !important;
		height:0 !important;
		min-height:0 !important;
		pointer-events:none !important;
	}
}


/* =========================================================
   MYPROT v1.7.11 — Account / Register / Guest in Information
   ========================================================= */
.myprot-account-choice{
	margin:0 0 22px;
	padding:16px;
	border:1px solid #e8e8e8;
	border-radius:12px;
	background:#fafafa;
}
.myprot-account-choice-head{
	display:flex;
	flex-direction:column;
	gap:4px;
	margin-bottom:13px;
}
.myprot-account-choice-head strong{
	font-size:15px;
	font-weight:700;
}
.myprot-account-choice-head span{
	font-size:12px;
	color:#777;
}
.myprot-account-choice-actions{
	display:flex;
	flex-wrap:wrap;
	align-items:stretch;
	gap:10px;
}
.myprot-account-choice-btn{
	flex:1 1 180px;
	display:flex;
	flex-direction:column;
	justify-content:center;
	gap:3px;
	padding:11px 13px;
	border:1px solid #ddd;
	border-radius:9px;
	background:#fff;
	color:#111;
	text-decoration:none;
}
.myprot-account-choice-btn:hover{
	border-color:#111;
	color:#111;
}
.myprot-account-choice-btn span{
	font-size:11px;
	color:#777;
}
.myprot-account-choice-btn strong{
	font-size:13px;
}
.myprot-account-guest{
	flex:1 1 100%;
	padding:9px 12px;
	border:0;
	background:transparent;
	color:#000;
	font-size:13px !important;
	text-decoration:underline;
	cursor:pointer;
}

.myprot-account-guest:hover{
	background:transparent !important;
}

.myprot-account-guest:active{
	background:transparent !important;
}

.myprot-account-choice.is-guest-continued{
	background:#fff !important;
	border: none !important;
	box-shadow: 0 1px 0 rgba(0, 0, 0, .02);
}
@media(max-width:767px){
	.myprot-account-choice{
		padding:14px;
		margin-bottom:18px;
	}
	.myprot-account-choice-actions{
		flex-direction:column;
	}
	.myprot-account-choice-btn{
		flex:none;
		width:100%;
		box-sizing:border-box;
	}
}

/* v1.7.12: account choice is guest-only; authenticated users see no account block. */

/* v1.7.21 — Product link + expiry date */
.myprot-cart-product-name a{
	color:inherit;
	text-decoration:none;
}
.myprot-cart-product-name a:hover{
	text-decoration:underline;
}
.myprot-cart-expiry{
	display: flex;
	margin-top:4px;
	font-size:11px;
	line-height:1.35;
	color:#000 !important;

}
.myprot-cart-expiry strong{
	font-weight:600;
	color:#555;
	font-size: 12px;
}
.myprot-mini-info strong a{
	color:inherit;
	text-decoration:none;
}
.myprot-mini-info strong a:hover{
	text-decoration:underline;
}

/* v1.7.22 — Guest WPLoyalty rewards login/register popup */
body.myprot-points-modal-open{overflow:hidden}
.myprot-points-login-modal{
	position:fixed;
	inset:0;
	z-index:999999;
	display:none;
	align-items:center;
	justify-content:center;
	padding:20px;
}
.myprot-points-login-modal.is-open{display:flex}
.myprot-points-login-overlay{
	position:absolute;
	inset:0;
	background:rgba(0,0,0,.58);
	backdrop-filter:blur(2px);
}
.myprot-points-login-dialog{
	position:relative;
	z-index:2;
	width:min(430px,100%);
	background:#fff;
	border-radius:14px;
	padding:30px 24px 24px;
	box-shadow:0 20px 60px rgba(0,0,0,.22);
	text-align:center;
}
.myprot-points-login-close{
	position:absolute;
	top:10px;
	padding: 0;
	right:12px;
	width:32px;
	height:32px;
	border:0;
	background:transparent;
	font-size:40px !important;
	line-height:32px;
	color:#000;
	cursor:pointer;
}

.myprot-points-login-close:hover{
	background:transparent;
}
    
    
.myprot-points-login-icon{
	width:54px;
	height:54px;
	margin:0 auto 14px;
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	background:#f5f5f5;
	font-size:25px;
}
.myprot-points-login-dialog h3{
	margin:0 0 10px;
	font-size:21px;
	line-height:1.3;
}
.myprot-points-login-dialog p{
	margin:0 auto 22px;
	max-width:360px;
	color:#666;
	font-size:14px;
	line-height:1.6;
}
.myprot-points-login-actions{
	display:flex;
	gap:10px;
	flex-direction:column;
}
.myprot-points-login-btn{
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:46px;
	padding:10px 18px;
	border-radius:7px;
	text-decoration:none !important;
	font-weight:600;
	transition:.2s ease;
}
.myprot-points-login-primary{
	background:#e30613;
	color:#fff !important;
}
.myprot-points-login-primary:hover{background:#c9000b;color:#fff !important}
.myprot-points-login-secondary{
	background:#f3f3f3;
	color:#222 !important;
}
.myprot-points-login-secondary:hover{background:#e8e8e8;color:#222 !important}
@media(max-width:480px){
	.myprot-points-login-dialog{padding:28px 18px 20px}
	.myprot-points-login-dialog h3{font-size:19px}
}
