/* ==========================================================================
   Dreamtails Sarasota — Boutique Cart + Checkout
   ========================================================================== */

:root {
	--dt-teal:        #3D5155;
	--dt-teal-deep:   #2a3a3d;
	--dt-pink:        #d9b2af;
	--dt-pink-soft:   #eabfbd;
	--dt-peach:       #EECCAA;
	--dt-peach-soft:  #f3dcc3;
	--dt-yellow:      #F1E6B2;
	--dt-sage:        #b8c3be;
	--dt-cream:       #fffaf5;
	--dt-cream-soft:  #fef6ed;
	--dt-ink:         #2a3a3d;
	--dt-ink-soft:    #6a7a7e;
	--dt-ink-faint:   #99a3a6;
	--dt-line:        rgba( 61, 81, 85, .12 );
	--dt-line-soft:   rgba( 61, 81, 85, .06 );
	--dt-shadow-sm:   0 2px 10px rgba( 61, 81, 85, .06 );
	--dt-shadow-md:   0 8px 30px -12px rgba( 61, 81, 85, .15 );
	--dt-shadow-lg:   0 24px 60px -20px rgba( 61, 81, 85, .25 );
	--dt-radius-sm:   12px;
	--dt-radius-md:   18px;
	--dt-radius-lg:   24px;
	--dt-transition:  220ms cubic-bezier( .4, 0, .2, 1 );
}

/* Hide WC default messages noise outside our wrapper on cart/checkout */
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper:empty,
.woocommerce-checkout .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }

/* Cart debug panel — kept in PHP for future inspection but never rendered */
.dt-cart-debug { display: none !important; }

/* ==========================================================================
   Cart page wrapper
   ========================================================================== */

.dt-cart {
	padding: 3rem 1.25rem 5rem;
	color: var( --dt-ink );
}

.dt-cart__page-head {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 2.5rem;
}

.dt-cart__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	background: linear-gradient( 135deg, var( --dt-pink-soft ), var( --dt-peach ) );
	color: var( --dt-teal-deep );
	padding: .35rem 1rem;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	margin-bottom: 1rem;
}

.dt-cart__title {
	font-family: 'Mollie Glaston', 'Playfair Display', serif;
	font-size: clamp( 2.4rem, 5vw, 3.6rem );
	font-weight: 400;
	color: var( --dt-teal-deep );
	margin: 0 0 .65rem;
	line-height: 1.05;
}

.dt-cart__lede {
	font-family: 'Lato', sans-serif;
	color: var( --dt-ink-soft );
	font-size: 1.05rem;
	max-width: 56ch;
	margin: 0 auto;
	line-height: 1.55;
}

/* WooCommerce notices — sit between the page header and the cart row, full width */
.dt-cart__notices { margin: 0 0 1.5rem; }
.dt-cart__notices:empty { display: none; }
.dt-cart__notices .woocommerce-message,
.dt-cart__notices .woocommerce-info,
.dt-cart__notices .woocommerce-error { margin: 0; }

/* ==========================================================================
   Addon strip — rendered above cart items
   ========================================================================== */

.dt-cart-addons {
	margin: 0 0 2rem;
	padding: 1.75rem;
	background: linear-gradient( 145deg, var( --dt-cream ) 0%, var( --dt-cream-soft ) 100% );
	border: 1.5px solid var( --dt-line );
	border-radius: var( --dt-radius-md );
	box-shadow: var( --dt-shadow-md );
	position: relative;
	overflow: hidden;
}

.dt-cart-addons::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient( circle at 0% 0%, rgba( 234, 191, 189, .4 ), transparent 40% ),
		radial-gradient( circle at 100% 100%, rgba( 238, 204, 170, .35 ), transparent 40% );
	pointer-events: none;
}

.dt-cart-addons__head {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin: 0 0 1.5rem;
	padding: 0 0 1.25rem;
	border-bottom: 1px dashed var( --dt-line );
	position: relative;
	z-index: 1;
}

.dt-cart-addons__icon {
	width: 56px;
	height: 56px;
	border-radius: 16px;
	background: linear-gradient( 135deg, var( --dt-teal ) 0%, var( --dt-teal-deep ) 100% );
	color: var( --dt-peach );
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	flex-shrink: 0;
	box-shadow: 0 6px 14px -4px rgba( 61, 81, 85, .3 );
}

.dt-cart-addons__heading {
	font-family: 'Mollie Glaston', 'Playfair Display', serif;
	font-size: 1.85rem;
	font-weight: 400;
	color: var( --dt-teal-deep );
	margin: 0 0 .15rem;
	line-height: 1.1;
}

.dt-cart-addons__subheading {
	color: var( --dt-ink-soft );
	margin: 0;
	font-size: .95rem;
	line-height: 1.5;
}

.dt-cart-addons__grid {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 280px, 1fr ) );
	gap: 1rem;
	position: relative;
	z-index: 1;
}

.dt-addon-card {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 1rem;
	padding: 1rem;
	background: #ffffff;
	border: 1.5px solid var( --dt-line );
	border-radius: var( --dt-radius-sm );
	position: relative;
	transition: all var( --dt-transition );
	cursor: pointer;
}

.dt-addon-card:hover {
	border-color: var( --dt-pink );
	transform: translateY( -2px );
	box-shadow: var( --dt-shadow-md );
}

.dt-addon-card.is-in-cart {
	border-color: var( --dt-teal );
	background: linear-gradient( 135deg, #ffffff 0%, var( --dt-cream-soft ) 100% );
	box-shadow: 0 0 0 3px rgba( 61, 81, 85, .08 );
}

.dt-addon-card__media {
	position: relative;
	width: 96px;
	height: 96px;
	border-radius: 12px;
	overflow: hidden;
	background: var( --dt-cream );
	align-self: center;
}

.dt-addon-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.dt-addon-card__free-pill {
	position: absolute;
	top: 6px;
	left: 6px;
	background: var( --dt-teal );
	color: #fff;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: .65rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.dt-addon-card__body {
	min-width: 0;
	padding-right: 80px;
}

.dt-addon-card__title {
	font-family: 'Playfair Display', serif;
	font-size: 1.05rem;
	font-weight: 600;
	color: var( --dt-teal-deep );
	margin: 0 0 .3rem;
	line-height: 1.25;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.dt-addon-card__desc {
	font-size: .8rem;
	color: var( --dt-ink-soft );
	line-height: 1.4;
	margin: 0 0 .5rem;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.dt-addon-card__price {
	font-size: .95rem;
	font-weight: 600;
	color: var( --dt-teal );
	display: flex;
	align-items: center;
	gap: .5rem;
	flex-wrap: wrap;
}

.dt-addon-card__price-strike {
	color: var( --dt-ink-faint );
	text-decoration: line-through;
	font-weight: 500;
}

.dt-addon-card__price-strike .woocommerce-Price-amount,
.dt-addon-card__price-strike bdi { color: inherit; }

.dt-addon-card__price-now,
.dt-addon-card__price-now .woocommerce-Price-amount,
.dt-addon-card__price-now bdi {
	color: var( --dt-teal );
}

.dt-addon-card__toggle {
	position: absolute;
	top: 1rem;
	right: 1rem;
	min-width: 64px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .35rem;
	padding: .5rem .85rem;
	border-radius: 999px;
	border: 1.5px solid var( --dt-teal );
	background: #ffffff;
	color: var( --dt-teal );
	font-size: .82rem;
	font-weight: 600;
	cursor: pointer;
	transition: all var( --dt-transition );
}

.dt-addon-card__toggle:hover:not( .is-busy ) {
	background: var( --dt-teal );
	color: #ffffff;
	transform: scale( 1.04 );
}

.dt-addon-card.is-in-cart .dt-addon-card__toggle {
	background: var( --dt-teal );
	color: #ffffff;
}

.dt-addon-card.is-in-cart .dt-addon-card__toggle:hover {
	background: var( --dt-pink );
	border-color: var( --dt-pink );
}

.dt-addon-card__toggle.is-busy {
	opacity: .6;
	cursor: wait;
}

.dt-addon-card__toggle-add { display: inline-flex; align-items: center; gap: .3rem; }
.dt-addon-card__toggle-added { display: none; align-items: center; gap: .3rem; position: relative; }
.dt-addon-card.is-in-cart .dt-addon-card__toggle-add { display: none; }
.dt-addon-card.is-in-cart .dt-addon-card__toggle-added { display: inline-flex; }

.dt-addon-card__remove,
.dt-addon-card__remove-label { display: none; }

.dt-addon-card.is-in-cart .dt-addon-card__toggle:hover .dt-addon-card__check,
.dt-addon-card.is-in-cart .dt-addon-card__toggle:hover .dt-addon-card__added-label { display: none; }

.dt-addon-card.is-in-cart .dt-addon-card__toggle:hover .dt-addon-card__remove,
.dt-addon-card.is-in-cart .dt-addon-card__toggle:hover .dt-addon-card__remove-label { display: inline-flex; }

.dt-addon-card.is-flash {
	animation: dt-addon-flash .7s ease;
}

@keyframes dt-addon-flash {
	0%   { box-shadow: 0 0 0 0 rgba( 61, 81, 85, .3 ); }
	50%  { box-shadow: 0 0 0 8px rgba( 61, 81, 85, 0 ); }
	100% { box-shadow: 0 0 0 0 transparent; }
}

/* ==========================================================================
   Cart items — pet hero card + addon rows
   ========================================================================== */

.dt-cart__items { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 1.5rem; }

/* --- Pet hero card --- */

.dt-cart-item--pet {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 1.5rem;
	padding: 1.5rem;
	background:
		linear-gradient( 135deg, #ffffff 0%, var( --dt-cream ) 100% );
	border: 2px solid var( --dt-pink-soft );
	border-radius: var( --dt-radius-lg );
	box-shadow: var( --dt-shadow-md );
	position: relative;
	overflow: hidden;
}

.dt-cart-item--pet::before {
	content: '';
	position: absolute;
	top: -50%;
	right: -10%;
	width: 60%;
	height: 200%;
	background: radial-gradient( circle, rgba( 234, 191, 189, .15 ), transparent 70% );
	pointer-events: none;
}

.dt-cart-item__media {
	position: relative;
	border-radius: var( --dt-radius-md );
	overflow: hidden;
	aspect-ratio: 1 / 1;
	background: var( --dt-cream );
	box-shadow: var( --dt-shadow-md );
}

.dt-cart-item__media img,
.dt-cart-item__media a {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dt-cart-item__deposit-pill {
	position: absolute;
	bottom: 12px;
	left: 12px;
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	background: rgba( 255, 255, 255, .94 );
	backdrop-filter: blur( 8px );
	color: var( --dt-teal-deep );
	padding: .4rem .8rem;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 600;
	box-shadow: var( --dt-shadow-sm );
}

.dt-cart-item__deposit-pill i { color: var( --dt-pink ); }

.dt-cart-item__body {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	min-width: 0;
	position: relative;
	z-index: 1;
}

.dt-cart-item__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.dt-cart-item__eyebrow {
	display: block;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var( --dt-pink );
	margin-bottom: .35rem;
}

.dt-cart-item__name {
	font-family: 'Mollie Glaston', 'Playfair Display', serif;
	font-size: clamp( 1.8rem, 3.5vw, 2.5rem );
	font-weight: 400;
	color: var( --dt-teal-deep );
	line-height: 1.05;
	margin: 0 0 .35rem;
	display: block;
	text-decoration: none;
}

a.dt-cart-item__name:hover { color: var( --dt-pink ); }

.dt-cart-item__subhead {
	font-family: 'Playfair Display', serif;
	color: var( --dt-ink-soft );
	margin: 0;
	font-size: 1.05rem;
	font-style: italic;
	display: flex;
	align-items: center;
	gap: .5rem;
	flex-wrap: wrap;
}

.dt-cart-item__sep { color: var( --dt-pink ); font-size: .9rem; }

.dt-cart-item__remove {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	color: var( --dt-ink-faint );
	background: rgba( 255, 255, 255, .8 );
	border: 1px solid var( --dt-line );
	padding: .4rem .8rem;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 500;
	text-decoration: none;
	transition: all var( --dt-transition );
	flex-shrink: 0;
}

.dt-cart-item__remove:hover {
	color: #ffffff;
	background: var( --dt-teal );
	border-color: var( --dt-teal );
}

.dt-cart-item__details {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 140px, 1fr ) );
	gap: .75rem;
	padding: 1rem;
	background: rgba( 255, 255, 255, .6 );
	border-radius: var( --dt-radius-sm );
	border: 1px solid var( --dt-line-soft );
}

.dt-cart-item__detail {
	display: flex;
	gap: .5rem;
	align-items: center;
	min-width: 0;
}

.dt-cart-item__detail-icon {
	width: 32px;
	height: 32px;
	border-radius: 8px;
	background: linear-gradient( 135deg, var( --dt-pink-soft ), var( --dt-peach ) );
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var( --dt-teal-deep );
	font-size: .9rem;
	flex-shrink: 0;
}

.dt-cart-item__detail-label {
	display: block;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var( --dt-ink-faint );
	line-height: 1;
	margin-bottom: 2px;
}

.dt-cart-item__detail-value {
	display: block;
	font-size: .9rem;
	color: var( --dt-teal-deep );
	font-weight: 600;
	line-height: 1.2;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Deposit summary panel — WC Deposits meta + due-today subtotal */
.dt-cart-item__deposit {
	background: linear-gradient( 135deg, var( --dt-cream-soft ) 0%, var( --dt-cream ) 100% );
	border: 1.5px dashed var( --dt-pink-soft );
	border-radius: var( --dt-radius-sm );
	padding: 1rem 1.1rem;
}

.dt-cart-item__deposit-head {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-family: 'Playfair Display', serif;
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var( --dt-teal-deep );
	margin-bottom: .65rem;
	padding-bottom: .55rem;
	border-bottom: 1px dashed var( --dt-line );
}

.dt-cart-item__deposit-head i { color: var( --dt-pink ); font-size: 1rem; }

.dt-cart-item__deposit-meta {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: .35rem;
}

.dt-cart-item__deposit-meta dl,
.dt-cart-item__deposit-meta .wc-item-meta {
	margin: 0 0 .35rem;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: .25rem;
}

.dt-cart-item__deposit-meta dt,
.dt-cart-item__deposit-meta .wc-item-meta-label {
	display: inline-block;
	margin: 0 .25rem 0 0;
	padding: 0;
	font-weight: 600;
	color: var( --dt-ink-soft );
	font-size: .85rem;
}

.dt-cart-item__deposit-meta dd,
.dt-cart-item__deposit-meta .wc-item-meta > p,
.dt-cart-item__deposit-meta .wc-item-meta-value {
	display: inline;
	margin: 0;
	padding: 0;
	color: var( --dt-teal-deep );
	font-weight: 600;
	font-size: .9rem;
}

.dt-cart-item__deposit-meta dl > dt,
.dt-cart-item__deposit-meta dl > dd {
	display: inline;
}

.dt-cart-item__deposit-meta .woocommerce-Price-amount,
.dt-cart-item__deposit-meta bdi {
	color: var( --dt-teal-deep );
	font-weight: 700;
}

.dt-cart-item__deposit-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: .55rem;
	padding-top: .55rem;
	border-top: 1px dashed var( --dt-line );
}

.dt-cart-item__deposit-label {
	font-family: 'Playfair Display', serif;
	font-size: .9rem;
	font-weight: 600;
	color: var( --dt-ink-soft );
	letter-spacing: .04em;
	text-transform: uppercase;
}

.dt-cart-item__deposit-value,
.dt-cart-item__deposit-value bdi,
.dt-cart-item__deposit-value .woocommerce-Price-amount {
	color: var( --dt-teal-deep );
	font-weight: 800;
	font-size: 1.25rem;
	font-family: 'Lato', sans-serif;
}

.dt-cart-item__includes {
	list-style: none;
	margin: 0;
	padding: 1rem 0 0;
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 140px, 1fr ) );
	gap: .5rem .75rem;
	border-top: 1px dashed var( --dt-line );
}

.dt-cart-item__includes li {
	display: flex;
	align-items: center;
	gap: .45rem;
	color: var( --dt-teal-deep );
	font-size: .85rem;
	font-weight: 500;
}

.dt-cart-item__includes i {
	color: var( --dt-pink );
	font-size: .9rem;
}

/* --- Addon rows (purchasable items) --- */

.dt-cart-item--addon {
	display: grid;
	grid-template-columns: 80px 1fr auto;
	gap: 1rem;
	align-items: center;
	padding: 1rem 1.25rem;
	background: #ffffff;
	border: 1px solid var( --dt-line );
	border-radius: var( --dt-radius-sm );
	box-shadow: var( --dt-shadow-sm );
	transition: all var( --dt-transition );
}

.dt-cart-item--addon:hover {
	border-color: var( --dt-pink-soft );
}

.dt-cart-item--locked {
	background: linear-gradient( 135deg, var( --dt-cream-soft ) 0%, #ffffff 100% );
	border-color: var( --dt-peach );
	border-style: dashed;
}

.dt-cart-item__addon-media {
	width: 80px;
	height: 80px;
	border-radius: 10px;
	overflow: hidden;
	background: var( --dt-cream );
}

.dt-cart-item__addon-media img,
.dt-cart-item__addon-media a {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dt-cart-item__addon-name {
	font-family: 'Playfair Display', serif;
	font-size: 1.05rem;
	font-weight: 600;
	color: var( --dt-teal-deep );
	text-decoration: none;
	display: block;
	line-height: 1.3;
	margin-bottom: .25rem;
}

a.dt-cart-item__addon-name:hover { color: var( --dt-pink ); }

.dt-cart-item__included-pill {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	background: var( --dt-peach );
	color: var( --dt-teal-deep );
	padding: .25rem .75rem;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	margin-top: .25rem;
}

.dt-cart-item__addon-side {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-shrink: 0;
}

.dt-cart-item__addon-price,
.dt-cart-item__addon-price .woocommerce-Price-amount,
.dt-cart-item__addon-price bdi {
	font-size: 1rem;
	font-weight: 700;
	color: var( --dt-teal-deep );
}

.dt-cart-item__qty .quantity input.qty {
	width: 60px;
	height: 36px;
	text-align: center;
	border: 1.5px solid var( --dt-line );
	border-radius: 8px;
	background: #ffffff;
	font-weight: 600;
	color: var( --dt-teal-deep );
	font-family: 'Lato', sans-serif;
}

.dt-cart-item__qty .quantity input.qty:focus {
	outline: none;
	border-color: var( --dt-teal );
	box-shadow: 0 0 0 3px rgba( 61, 81, 85, .12 );
}

.dt-cart-item--addon .dt-cart-item__remove {
	background: transparent;
	border: none;
	padding: .35rem;
	color: var( --dt-ink-faint );
}

.dt-cart-item--addon .dt-cart-item__remove span { display: none; }
.dt-cart-item--addon .dt-cart-item__remove i { font-size: 1rem; }

.dt-cart-item--addon .dt-cart-item__remove:hover {
	color: var( --dt-teal );
	background: var( --dt-cream );
	border-color: transparent;
	transform: scale( 1.1 );
}

/* ==========================================================================
   Empty cart state
   ========================================================================== */

.dt-cart__empty {
	text-align: center;
	padding: 4rem 2rem;
	background: linear-gradient( 145deg, var( --dt-cream ) 0%, var( --dt-cream-soft ) 100% );
	border: 2px dashed var( --dt-pink-soft );
	border-radius: var( --dt-radius-lg );
}

.dt-cart__empty-icon {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: linear-gradient( 135deg, var( --dt-pink-soft ), var( --dt-peach ) );
	color: var( --dt-teal-deep );
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 2.5rem;
	margin-bottom: 1.5rem;
	box-shadow: var( --dt-shadow-md );
}

.dt-cart__empty-title {
	font-family: 'Mollie Glaston', 'Playfair Display', serif;
	font-size: 2.2rem;
	font-weight: 400;
	color: var( --dt-teal-deep );
	margin: 0 0 .5rem;
}

.dt-cart__empty-lede {
	color: var( --dt-ink-soft );
	font-size: 1.1rem;
	margin: 0 0 1.5rem;
}

.dt-cart__empty-cta {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .85rem 1.75rem;
	background: var( --dt-teal );
	color: #ffffff;
	border-radius: 999px;
	font-weight: 600;
	font-size: .95rem;
	text-decoration: none;
	transition: all var( --dt-transition );
}

.dt-cart__empty-cta:hover {
	background: var( --dt-teal-deep );
	color: #ffffff;
	transform: translateY( -2px );
	box-shadow: var( --dt-shadow-md );
}

/* ==========================================================================
   Cart actions row (coupon + update)
   ========================================================================== */

.dt-cart__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: center;
	margin: 1rem 0 0;
	padding: 1rem 1.25rem;
	background: #ffffff;
	border: 1px solid var( --dt-line );
	border-radius: var( --dt-radius-sm );
}

.dt-cart__coupon {
	flex: 1 1 280px;
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: 0 .5rem;
	border: 1.5px solid var( --dt-line );
	border-radius: 999px;
	background: var( --dt-cream );
	transition: all var( --dt-transition );
}

.dt-cart__coupon:focus-within {
	border-color: var( --dt-teal );
	background: #ffffff;
	box-shadow: 0 0 0 3px rgba( 61, 81, 85, .08 );
}

.dt-cart__coupon i { color: var( --dt-pink ); padding-left: .5rem; }

.dt-cart__coupon input {
	flex: 1;
	border: none;
	background: transparent;
	padding: .65rem .25rem;
	font-family: 'Lato', sans-serif;
	color: var( --dt-teal-deep );
	font-size: .92rem;
	min-width: 0;
}

.dt-cart__coupon input:focus { outline: none; }

.dt-cart__coupon-apply {
	padding: .5rem 1.1rem;
	border: none;
	border-radius: 999px;
	background: var( --dt-teal );
	color: #ffffff;
	font-weight: 600;
	font-size: .82rem;
	cursor: pointer;
	transition: all var( --dt-transition );
}

.dt-cart__coupon-apply:hover { background: var( --dt-teal-deep ); }

.dt-cart__update {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin-left: auto;
	padding: .65rem 1.1rem;
	background: transparent;
	color: var( --dt-teal );
	border: 1.5px solid var( --dt-teal );
	border-radius: 999px;
	font-weight: 600;
	font-size: .85rem;
	cursor: pointer;
	transition: all var( --dt-transition );
}

.dt-cart__update:hover { background: var( --dt-teal ); color: #ffffff; }

/* ==========================================================================
   Totals card (right column)
   ========================================================================== */

.dt-cart__aside { position: sticky; top: 100px; align-self: flex-start; }

/* Deposit banner above totals card — explains the "you only pay deposit today" model */
.dt-deposit-banner {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 1rem;
	padding: 1.25rem 1.4rem;
	margin-bottom: 1rem;
	background: linear-gradient( 135deg, var( --dt-pink-soft ) 0%, var( --dt-peach ) 100% );
	border-radius: var( --dt-radius-md );
	box-shadow: var( --dt-shadow-md );
	border: 1.5px solid rgba( 255, 255, 255, .55 );
	color: var( --dt-teal-deep );
}

.dt-deposit-banner__icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba( 255, 255, 255, .85 );
	color: var( --dt-teal-deep );
	font-size: 1.5rem;
	box-shadow: 0 6px 14px -6px rgba( 61, 81, 85, .3 );
	flex-shrink: 0;
	align-self: center;
}

.dt-deposit-banner__body { min-width: 0; }

.dt-deposit-banner__title {
	display: block;
	font-family: 'Playfair Display', serif;
	font-size: 1.05rem;
	font-weight: 700;
	color: var( --dt-teal-deep );
	line-height: 1.25;
	margin-bottom: .35rem;
}

.dt-deposit-banner__lede {
	margin: 0;
	font-size: .85rem;
	color: var( --dt-teal-deep );
	line-height: 1.5;
	opacity: .9;
}

/* Deposit summary — today / remaining / total breakdown above totals card */
.dt-deposit-summary {
	background: #ffffff;
	border: 1.5px solid var( --dt-line );
	border-radius: var( --dt-radius-md );
	padding: 0;
	margin-bottom: 1rem;
	box-shadow: var( --dt-shadow-md );
	overflow: hidden;
}

.dt-deposit-summary__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var( --dt-line-soft );
}

.dt-deposit-summary__row:last-child { border-bottom: none; }

.dt-deposit-summary__row--today {
	background: linear-gradient( 135deg, var( --dt-teal ) 0%, var( --dt-teal-deep ) 100% );
	color: #ffffff;
	padding: 1.25rem;
}

.dt-deposit-summary__row--today .dt-deposit-summary__label {
	font-family: 'Playfair Display', serif;
	font-size: 1rem;
	color: #ffffff;
	font-weight: 700;
	letter-spacing: .04em;
	display: block;
}

.dt-deposit-summary__row--today .dt-deposit-summary__sub {
	font-size: .72rem;
	color: rgba( 255, 255, 255, .8 );
	letter-spacing: .14em;
	text-transform: uppercase;
	display: block;
	margin-top: 2px;
}

.dt-deposit-summary__row--today .dt-deposit-summary__amount,
.dt-deposit-summary__row--today .dt-deposit-summary__amount bdi,
.dt-deposit-summary__row--today .dt-deposit-summary__amount .woocommerce-Price-amount {
	color: var( --dt-peach );
	font-size: 1.65rem;
	font-weight: 800;
	font-family: 'Lato', sans-serif;
	letter-spacing: -.01em;
}

.dt-deposit-summary__row--later {
	background: var( --dt-cream );
}

.dt-deposit-summary__row--later .dt-deposit-summary__label {
	display: block;
	font-weight: 700;
	color: var( --dt-teal-deep );
	font-size: .9rem;
}

.dt-deposit-summary__row--later .dt-deposit-summary__sub {
	display: block;
	font-size: .7rem;
	color: var( --dt-ink-soft );
	letter-spacing: .12em;
	text-transform: uppercase;
	margin-top: 2px;
}

.dt-deposit-summary__row--total {
	background: #ffffff;
	font-size: .82rem;
	letter-spacing: .04em;
}

.dt-deposit-summary__row--total .dt-deposit-summary__label {
	color: var( --dt-ink-soft );
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: .72rem;
}

.dt-deposit-summary__amount-soft,
.dt-deposit-summary__amount-soft bdi,
.dt-deposit-summary__amount-soft .woocommerce-Price-amount {
	color: var( --dt-teal-deep );
	font-weight: 700;
	font-size: 1rem;
	font-family: 'Lato', sans-serif;
}

.dt-deposit-summary__row--total .dt-deposit-summary__amount-soft,
.dt-deposit-summary__row--total .dt-deposit-summary__amount-soft bdi,
.dt-deposit-summary__row--total .dt-deposit-summary__amount-soft .woocommerce-Price-amount {
	color: var( --dt-ink-soft );
	font-size: .92rem;
	font-weight: 600;
}

.dt-cart-totals {
	background: #ffffff;
	border: 1.5px solid var( --dt-line );
	border-radius: var( --dt-radius-md );
	padding: 1.75rem;
	box-shadow: var( --dt-shadow-md );
	margin-bottom: 1rem;
}

.dt-cart-totals .cart_totals h2 {
	font-family: 'Mollie Glaston', 'Playfair Display', serif;
	font-size: 1.7rem;
	font-weight: 400;
	color: var( --dt-teal-deep );
	margin: 0 0 1.25rem;
	padding-bottom: 1rem;
	border-bottom: 1px dashed var( --dt-line );
}

.dt-cart-totals .shop_table {
	width: 100%;
	border: none;
	border-collapse: collapse;
}

.dt-cart-totals .shop_table th,
.dt-cart-totals .shop_table td {
	padding: .75rem 0;
	border: none;
	border-bottom: 1px solid var( --dt-line-soft );
	text-align: left;
}

.dt-cart-totals .shop_table th {
	font-weight: 600;
	color: var( --dt-ink-soft );
	font-size: .85rem;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.dt-cart-totals .shop_table td {
	color: var( --dt-teal-deep );
	font-weight: 600;
	text-align: right;
}

.dt-cart-totals .shop_table tr.order-total th,
.dt-cart-totals .shop_table tr.order-total td {
	font-size: 1.1rem;
	color: var( --dt-teal-deep );
	border-bottom: none;
	padding-top: 1.25rem;
	border-top: 2px solid var( --dt-line );
	text-transform: none;
	letter-spacing: 0;
}

.dt-cart-totals .shop_table tr.order-total td bdi,
.dt-cart-totals .shop_table tr.order-total td .woocommerce-Price-amount {
	font-size: 1.4rem;
	font-weight: 700;
}

/* WC Deposits "Future Payment" row — soften it so the "Order Total" (deposit) reads as today's payment */
.dt-cart-totals .shop_table tr.future-payment th,
.dt-cart-totals .shop_table tr.future-payment td,
.dt-cart-totals .shop_table tr.future-payments-amount th,
.dt-cart-totals .shop_table tr.future-payments-amount td,
.dt-cart-totals .shop_table tr[class*="future"] th,
.dt-cart-totals .shop_table tr[class*="future"] td {
	color: var( --dt-ink-soft );
	font-size: .92rem;
	font-style: italic;
}

.dt-cart-totals .shop_table tr[class*="future"] td bdi,
.dt-cart-totals .shop_table tr[class*="future"] td .woocommerce-Price-amount {
	color: var( --dt-ink-soft );
	font-weight: 600;
	font-size: 1rem;
}

/* Relabel the "Total" row visually so customers read it as "Due today" — done
   via a small ::before pseudo when the cart contains a deposit item.
   The body class .dt-cart-has-deposit is added by cart-addons.php. */
body.dt-cart-has-deposit .dt-cart-totals .shop_table tr.order-total th { font-size: 0; }
body.dt-cart-has-deposit .dt-cart-totals .shop_table tr.order-total th::before {
	content: 'Due today';
	font-size: 1.1rem;
	font-weight: 700;
	color: var( --dt-teal-deep );
	letter-spacing: 0;
}

.dt-cart-totals .wc-proceed-to-checkout {
	margin-top: 1.5rem;
	padding: 0;
}

.dt-cart-totals .checkout-button,
.dt-cart-totals .wc-proceed-to-checkout .button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	width: 100%;
	padding: 1.1rem 1.5rem !important;
	background: linear-gradient( 135deg, var( --dt-teal ) 0%, var( --dt-teal-deep ) 100% ) !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: var( --dt-radius-sm ) !important;
	font-family: 'Lato', sans-serif !important;
	font-weight: 700 !important;
	font-size: 1rem !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	cursor: pointer;
	transition: all var( --dt-transition ) !important;
	box-shadow: 0 8px 20px -8px rgba( 61, 81, 85, .5 ) !important;
}

.dt-cart-totals .checkout-button:hover,
.dt-cart-totals .wc-proceed-to-checkout .button:hover {
	transform: translateY( -2px );
	box-shadow: 0 12px 30px -8px rgba( 61, 81, 85, .6 ) !important;
	background: linear-gradient( 135deg, var( --dt-teal-deep ) 0%, #1a2a2d 100% ) !important;
}

.dt-cart-totals .checkout-button::before {
	content: '\F4DC';
	font-family: 'bootstrap-icons';
	font-size: 1.1rem;
}

.dt-cart-totals .shipping-calculator-button {
	color: var( --dt-teal );
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.dt-cart-totals form.woocommerce-shipping-calculator { margin-top: .75rem; }

.dt-cart-totals .shipping-calculator-form input,
.dt-cart-totals .shipping-calculator-form select {
	width: 100%;
	padding: .65rem .85rem;
	border: 1.5px solid var( --dt-line );
	border-radius: 8px;
	background: var( --dt-cream );
	font-family: 'Lato', sans-serif;
	color: var( --dt-teal-deep );
	margin-bottom: .5rem;
}

.dt-cart-totals .shipping-calculator-form button {
	padding: .65rem 1.25rem;
	background: var( --dt-teal );
	color: #fff;
	border: none;
	border-radius: 999px;
	font-weight: 600;
	cursor: pointer;
}

.dt-cart-totals .cross-sells { display: none; }

/* When the cart has a deposit, the boutique Deposit Summary card replaces
   the standard WC cart-totals table — hide WC's heading + table but keep
   the "Proceed to Checkout" button intact. Gated on body.dt-cart-has-deposit
   so a non-deposit cart (if anyone ever lands there) still sees normal totals. */
body.dt-cart-has-deposit .dt-cart-totals .cart_totals > h2,
body.dt-cart-has-deposit .dt-cart-totals .cart_totals > .shop_table,
body.dt-cart-has-deposit .dt-cart-totals .cart_totals > .woocommerce-shipping-calculator { display: none !important; }

/* Slim the totals card down so it's just the button + a soft frame */
body.dt-cart-has-deposit .dt-cart-totals {
	padding: 1rem 1.25rem;
	background: var( --dt-cream );
	border-style: dashed;
}

body.dt-cart-has-deposit .dt-cart-totals .wc-proceed-to-checkout {
	margin: 0;
	padding: 0;
}

/* Trust strip */

.dt-cart__trust {
	background: linear-gradient( 145deg, var( --dt-cream ) 0%, var( --dt-cream-soft ) 100% );
	border: 1.5px dashed var( --dt-line );
	border-radius: var( --dt-radius-md );
	padding: 1.25rem 1.5rem;
}

.dt-cart__trust-row {
	display: flex;
	align-items: center;
	gap: .65rem;
	padding: .5rem 0;
	color: var( --dt-teal-deep );
	font-size: .88rem;
	font-weight: 500;
}

.dt-cart__trust-row + .dt-cart__trust-row {
	border-top: 1px dashed var( --dt-line );
}

.dt-cart__trust-row i {
	color: var( --dt-pink );
	font-size: 1.05rem;
}

/* ==========================================================================
   WooCommerce notices override (boutique)
   ========================================================================== */

.woocommerce-cart .woocommerce-notices-wrapper:not( :empty ),
.woocommerce-checkout .woocommerce-notices-wrapper:not( :empty ) {
	margin-bottom: 1.5rem;
}

.woocommerce-notices-wrapper {
	margin: 1.75rem auto;
	max-width: 1100px;
	padding: 0 1.25rem;
	box-sizing: border-box;
}
.woocommerce-notices-wrapper:empty { display: none; }

/* On cart + checkout pages we already wrap notices in a layout container,
   so don't add the page-level horizontal padding twice. */
.woocommerce-cart .dt-cart .woocommerce-notices-wrapper,
.woocommerce-checkout .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .dt-cart__notices.woocommerce-notices-wrapper {
	max-width: none;
	padding: 0;
	margin: 0 0 1.5rem;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	display: flex !important;
	align-items: center !important;
	flex-wrap: wrap;
	gap: 1rem;
	margin: 0 !important;
	padding: 1.1rem 1.4rem 1.1rem 4.25rem !important;
	position: relative;
	background: linear-gradient( 135deg, #ffffff 0%, var( --dt-cream ) 100% ) !important;
	border: 1.5px solid var( --dt-pink-soft ) !important;
	border-left: none !important;
	border-radius: var( --dt-radius-md ) !important;
	color: var( --dt-teal-deep ) !important;
	font-family: 'Lato', sans-serif !important;
	font-size: .95rem !important;
	line-height: 1.55 !important;
	box-shadow: 0 12px 28px -12px rgba( 61, 81, 85, .15 ) !important;
	list-style: none !important;
}

/* Round badge on the left with a friendly icon */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	font-family: 'bootstrap-icons' !important;
	position: absolute !important;
	left: 1rem !important;
	top: 50% !important;
	transform: translateY( -50% ) !important;
	width: 40px !important;
	height: 40px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 50% !important;
	font-size: 1.1rem !important;
	font-weight: 400 !important;
	background: linear-gradient( 135deg, var( --dt-pink-soft ), var( --dt-peach ) ) !important;
	color: var( --dt-teal-deep ) !important;
	box-shadow: 0 6px 14px -4px rgba( 217, 178, 175, .55 ) !important;
	border: 1.5px solid rgba( 255, 255, 255, .65 ) !important;
	margin: 0 !important;
	text-shadow: none !important;
	content: '\F26B' !important; /* check-circle-fill */
}

.woocommerce-info::before {
	content: '\F431' !important; /* info-circle-fill */
}

.woocommerce-error {
	background: linear-gradient( 135deg, #fff7f7 0%, #fff 100% ) !important;
	border-color: rgba( 196, 90, 90, .35 ) !important;
}

.woocommerce-error::before {
	content: '\F33A' !important; /* exclamation-circle-fill */
	background: linear-gradient( 135deg, #f5b9b9, #c45a5a ) !important;
	color: #ffffff !important;
	box-shadow: 0 6px 14px -4px rgba( 196, 90, 90, .45 ) !important;
}

.woocommerce-message > * + *,
.woocommerce-info > * + *,
.woocommerce-error > * + * {
	margin-left: auto;
}

/* Pull li bullets out of the error/info lists */
.woocommerce-message li,
.woocommerce-info li,
.woocommerce-error li { list-style: none !important; margin: 0 !important; padding: 0 !important; }

/* Inline links inside notice text */
.woocommerce-message a:not( .button ),
.woocommerce-info a:not( .button ),
.woocommerce-error a:not( .button ) {
	color: var( --dt-pink );
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* "Continue shopping" / "View cart" pill button on the right */
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button,
.woocommerce-message a.wc-forward,
.woocommerce-info a.wc-forward,
.woocommerce-error a.wc-forward {
	display: inline-flex !important;
	align-items: center;
	gap: .4rem;
	margin: 0 0 0 auto !important;
	padding: .55rem 1.15rem !important;
	background: linear-gradient( 135deg, var( --dt-teal ) 0%, var( --dt-teal-deep ) 100% ) !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 999px !important;
	font-family: 'Lato', sans-serif !important;
	font-weight: 700 !important;
	font-size: .8rem !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	box-shadow: 0 8px 18px -8px rgba( 61, 81, 85, .45 ) !important;
	transition: all var( --dt-transition ) !important;
	white-space: nowrap;
	flex-shrink: 0;
}

.woocommerce-message .button:hover,
.woocommerce-info .button:hover,
.woocommerce-error .button:hover,
.woocommerce-message a.wc-forward:hover,
.woocommerce-info a.wc-forward:hover,
.woocommerce-error a.wc-forward:hover {
	transform: translateY( -1px );
	box-shadow: 0 12px 24px -10px rgba( 61, 81, 85, .55 ) !important;
	background: linear-gradient( 135deg, var( --dt-teal-deep ) 0%, #1a2a2d 100% ) !important;
	color: #ffffff !important;
}

.woocommerce-message .button::after,
.woocommerce-message a.wc-forward::after {
	content: '\F138'; /* arrow-right */
	font-family: 'bootstrap-icons';
	font-size: .9rem;
}

@media (max-width: 575.98px) {
	.woocommerce-message,
	.woocommerce-info,
	.woocommerce-error {
		padding: 1rem 1.1rem 1rem 3.6rem !important;
		font-size: .88rem !important;
		gap: .65rem;
	}

	.woocommerce-message::before,
	.woocommerce-info::before,
	.woocommerce-error::before {
		left: .65rem !important;
		width: 36px !important;
		height: 36px !important;
		font-size: 1rem !important;
	}

	.woocommerce-message .button,
	.woocommerce-info .button,
	.woocommerce-error .button,
	.woocommerce-message a.wc-forward {
		margin: .35rem 0 0 0 !important;
		width: 100%;
		justify-content: center;
	}
}

/* ==========================================================================
   Responsive — cart
   ========================================================================== */

@media (max-width: 991.98px) {
	.dt-cart__aside { position: static; }

	.dt-cart-item--pet {
		grid-template-columns: 1fr;
		gap: 1rem;
		padding: 1.25rem;
	}

	.dt-cart-item__media { max-width: 100%; }
}

@media (max-width: 575.98px) {
	.dt-cart { padding: 1.5rem .75rem 4rem; }

	.dt-cart__page-head { margin-bottom: 1.5rem; }

	.dt-cart-addons {
		padding: 1.25rem 1rem;
	}

	.dt-cart-addons__head {
		gap: .75rem;
		margin-bottom: 1rem;
		padding-bottom: 1rem;
	}

	.dt-cart-addons__icon {
		width: 44px;
		height: 44px;
		font-size: 1.1rem;
		border-radius: 12px;
	}

	.dt-cart-addons__heading { font-size: 1.4rem; }
	.dt-cart-addons__subheading { font-size: .85rem; }

	.dt-cart-addons__grid {
		grid-template-columns: 1fr;
		gap: .75rem;
	}

	.dt-addon-card {
		grid-template-columns: 76px 1fr;
		padding: .85rem;
		gap: .75rem;
	}

	.dt-addon-card__media { width: 76px; height: 76px; }

	.dt-addon-card__body { padding-right: 0; }

	.dt-addon-card__title {
		font-size: .95rem;
		padding-right: 64px;
	}

	.dt-addon-card__desc { display: none; }

	.dt-addon-card__toggle {
		top: .85rem;
		right: .85rem;
		min-width: 56px;
		padding: .35rem .65rem;
		font-size: .72rem;
	}

	.dt-cart-item--pet { padding: 1rem; }

	.dt-cart-item__head {
		flex-direction: column-reverse;
		align-items: flex-start;
	}

	.dt-cart-item__remove { font-size: .72rem; padding: .3rem .65rem; }

	.dt-cart-item__name { font-size: 1.7rem; }

	.dt-cart-item__details {
		grid-template-columns: 1fr 1fr;
		padding: .75rem;
		gap: .5rem;
	}

	.dt-cart-item__includes {
		grid-template-columns: 1fr 1fr;
	}

	.dt-cart-item--addon {
		grid-template-columns: 64px 1fr;
		grid-template-rows: auto auto;
		padding: .85rem 1rem;
	}

	.dt-cart-item__addon-media {
		width: 64px;
		height: 64px;
	}

	.dt-cart-item__addon-side {
		grid-column: 1 / -1;
		justify-content: space-between;
		padding-top: .5rem;
		border-top: 1px dashed var( --dt-line );
	}
}

/* ==========================================================================
   Checkout boutique reskin
   (uses default WC markup, just restyled)
   ========================================================================== */

.woocommerce-checkout {
	background: var( --dt-cream-soft );
}

.woocommerce-checkout #content,
.woocommerce-checkout main {
	padding: 2.5rem 1rem 5rem;
}

.woocommerce-checkout .woocommerce {
	max-width: 1240px;
	margin: 0 auto;
}

/* Headings */

.woocommerce-checkout h2,
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading {
	font-family: 'Mollie Glaston', 'Playfair Display', serif !important;
	font-weight: 400 !important;
	color: var( --dt-teal-deep ) !important;
	margin: 0 0 1.25rem !important;
	font-size: 1.85rem !important;
}

.woocommerce-checkout #order_review_heading {
	margin-top: 2rem !important;
	padding-bottom: 1rem;
	border-bottom: 1px dashed var( --dt-line );
}

/* Form rows / cards */

.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields {
	background: #ffffff;
	border: 1.5px solid var( --dt-line );
	border-radius: var( --dt-radius-md );
	padding: 1.75rem;
	margin-bottom: 1.5rem;
	box-shadow: var( --dt-shadow-sm );
}

.woocommerce-checkout .form-row label {
	font-weight: 600;
	color: var( --dt-teal-deep );
	font-size: .85rem;
	letter-spacing: .03em;
	margin-bottom: .35rem;
	display: block;
}

.woocommerce-checkout .form-row .required { color: var( --dt-pink ); }

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container .select2-selection--single,
.woocommerce-checkout .select2-container--default .select2-selection--single {
	width: 100% !important;
	min-height: 48px !important;
	padding: .75rem .95rem !important;
	border: 1.5px solid var( --dt-line ) !important;
	border-radius: 10px !important;
	background: var( --dt-cream ) !important;
	font-family: 'Lato', sans-serif !important;
	color: var( --dt-teal-deep ) !important;
	font-size: .95rem !important;
	box-shadow: none !important;
	transition: all var( --dt-transition );
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 46px !important;
	color: var( --dt-teal-deep ) !important;
	padding-left: 0 !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 46px !important;
}

.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus {
	outline: none !important;
	border-color: var( --dt-teal ) !important;
	background: #ffffff !important;
	box-shadow: 0 0 0 3px rgba( 61, 81, 85, .08 ) !important;
}

.woocommerce-checkout .form-row.woocommerce-invalid input.input-text { border-color: #c45a5a !important; }

/* Order review table */

.woocommerce-checkout #order_review {
	background: #ffffff;
	border: 1.5px solid var( --dt-line );
	border-radius: var( --dt-radius-md );
	padding: 1.75rem;
	box-shadow: var( --dt-shadow-md );
}

.woocommerce-checkout #order_review .shop_table {
	width: 100%;
	border: none;
	border-collapse: collapse;
}

.woocommerce-checkout #order_review .shop_table th,
.woocommerce-checkout #order_review .shop_table td {
	padding: .75rem 0;
	border: none;
	border-bottom: 1px solid var( --dt-line-soft );
}

.woocommerce-checkout #order_review .shop_table thead th {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var( --dt-ink-soft );
}

.woocommerce-checkout #order_review .shop_table tfoot th {
	font-weight: 700;
	color: var( --dt-teal-deep );
}

.woocommerce-checkout #order_review .shop_table .order-total th,
.woocommerce-checkout #order_review .shop_table .order-total td {
	font-size: 1.1rem;
	color: var( --dt-teal-deep );
	border-top: 2px solid var( --dt-line );
	padding-top: 1rem;
	border-bottom: none;
}

.woocommerce-checkout #order_review .shop_table .order-total td bdi,
.woocommerce-checkout #order_review .shop_table .order-total td .woocommerce-Price-amount {
	font-size: 1.4rem;
	font-weight: 700;
}

.woocommerce-checkout #order_review .product-name {
	font-family: 'Playfair Display', serif;
	font-weight: 600;
	color: var( --dt-teal-deep );
}

/* Payment box */

.woocommerce-checkout #payment {
	background: var( --dt-cream-soft ) !important;
	border-radius: var( --dt-radius-md ) !important;
	padding: 1.5rem !important;
	margin-top: 1.5rem;
	border: 1.5px dashed var( --dt-line );
}

.woocommerce-checkout #payment ul.payment_methods {
	border-bottom: 1px dashed var( --dt-line ) !important;
	padding-bottom: 1rem !important;
}

.woocommerce-checkout #payment ul.payment_methods li {
	padding: .65rem 0;
}

.woocommerce-checkout #payment ul.payment_methods li label {
	font-weight: 600;
	color: var( --dt-teal-deep );
}

.woocommerce-checkout #payment .payment_box {
	background: #ffffff !important;
	border-radius: 10px !important;
	padding: 1rem !important;
	margin-top: .75rem !important;
	border: 1px solid var( --dt-line );
	color: var( --dt-ink-soft );
}

.woocommerce-checkout #payment .payment_box::before {
	border-bottom-color: #ffffff !important;
}

.woocommerce-checkout #payment #place_order {
	width: 100%;
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: 1.1rem 1.5rem !important;
	margin-top: 1rem !important;
	background: linear-gradient( 135deg, var( --dt-teal ) 0%, var( --dt-teal-deep ) 100% ) !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: var( --dt-radius-sm ) !important;
	font-family: 'Lato', sans-serif !important;
	font-weight: 700 !important;
	font-size: 1rem !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	cursor: pointer;
	transition: all var( --dt-transition ) !important;
	box-shadow: 0 8px 20px -8px rgba( 61, 81, 85, .5 ) !important;
	text-shadow: none !important;
}

.woocommerce-checkout #payment #place_order:hover {
	transform: translateY( -2px );
	box-shadow: 0 12px 30px -8px rgba( 61, 81, 85, .6 ) !important;
	background: linear-gradient( 135deg, var( --dt-teal-deep ) 0%, #1a2a2d 100% ) !important;
}

.woocommerce-checkout #payment .terms {
	font-size: .82rem;
	color: var( --dt-ink-soft );
	margin-top: 1rem;
	line-height: 1.5;
}

/* Coupon notice on checkout */

.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout .woocommerce-form-login-toggle {
	margin-bottom: 1.25rem;
}

.woocommerce-checkout .woocommerce-form-coupon,
.woocommerce-checkout .woocommerce-form-login {
	background: #ffffff;
	border: 1.5px solid var( --dt-line );
	border-radius: var( --dt-radius-md );
	padding: 1.5rem;
	margin-bottom: 1.5rem;
}

/* Ship-to-different toggle row */

.woocommerce-checkout #ship-to-different-address label {
	font-family: 'Playfair Display', serif;
	font-size: 1.15rem;
	font-weight: 600;
	color: var( --dt-teal-deep );
	margin: 0;
}

.woocommerce-checkout #ship-to-different-address {
	margin-top: 1rem;
	padding: 1rem 1.25rem;
	background: var( --dt-cream-soft );
	border-radius: var( --dt-radius-sm );
	border: 1px dashed var( --dt-line );
}

/* Single-column checkout — boutique layout stacks everything top-to-bottom
   so customers move through billing → ship-to → notes → review → pay in
   one continuous flow. Form width matches the cart's main content column so
   the two pages feel visually balanced. */
.woocommerce-checkout form.woocommerce-checkout,
.woocommerce-checkout form.checkout {
	display: block;
	max-width: 960px;
	margin: 0 auto;
}

.woocommerce-checkout .woocommerce { max-width: 1100px; }

.woocommerce-checkout form.woocommerce-checkout > #customer_details,
.woocommerce-checkout form.woocommerce-checkout > #order_review_heading,
.woocommerce-checkout form.woocommerce-checkout > #order_review,
.woocommerce-checkout form.woocommerce-checkout > .col2-set {
	width: 100%;
	float: none;
	margin-left: 0;
	margin-right: 0;
}

.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2,
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
	float: none;
	width: 100%;
	margin-bottom: 1.5rem;
}

.woocommerce-checkout #order_review_heading {
	margin-top: 2rem !important;
	padding-bottom: 1rem;
	border-bottom: 1px dashed var( --dt-line );
}

@media (max-width: 575.98px) {
	.woocommerce-checkout .woocommerce-billing-fields,
	.woocommerce-checkout .woocommerce-shipping-fields,
	.woocommerce-checkout .woocommerce-additional-fields,
	.woocommerce-checkout #order_review,
	.woocommerce-checkout .woocommerce-form-coupon,
	.woocommerce-checkout .woocommerce-form-login {
		padding: 1.25rem;
	}

	.woocommerce-checkout h2,
	.woocommerce-checkout h3,
	.woocommerce-checkout #order_review_heading {
		font-size: 1.5rem !important;
	}
}

/* ==========================================================================
   Boutique Checkout — comprehensive polish
   ========================================================================== */

/* ----- Page hero ----- */
.dt-checkout__page-head {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 2rem;
}

.dt-checkout__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	background: linear-gradient( 135deg, var( --dt-pink-soft ), var( --dt-peach ) );
	color: var( --dt-teal-deep );
	padding: .35rem 1rem;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	margin-bottom: .85rem;
}

.dt-checkout__eyebrow i { color: var( --dt-pink ); }

.dt-checkout__title {
	font-family: 'Mollie Glaston', 'Playfair Display', serif;
	font-size: clamp( 2.1rem, 4.5vw, 3.2rem );
	font-weight: 400;
	color: var( --dt-teal-deep );
	margin: 0 0 .6rem;
	line-height: 1.05;
}

.dt-checkout__lede {
	font-family: 'Lato', sans-serif;
	color: var( --dt-ink-soft );
	font-size: 1rem;
	max-width: 56ch;
	margin: 0 auto;
	line-height: 1.55;
}

/* ----- Hide shipping address + order notes (pickup-only boutique) ----- */
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout #ship-to-different-address,
.woocommerce-checkout .shipping_address,
.woocommerce-checkout .woocommerce-additional-fields { display: none !important; }

/* ----- Express pay (Stripe Payment Request / Google Pay / Apple Pay) ----- */

#wc-stripe-payment-request-wrapper {
	margin: 0 0 1.25rem !important;
	padding: 1.1rem 1.25rem;
	background: #ffffff;
	border: 1.5px solid var( --dt-line );
	border-radius: var( --dt-radius-md );
	box-shadow: var( --dt-shadow-sm );
}

#wc-stripe-payment-request-button {
	max-width: 420px;
	margin: 0 auto;
}

#wc-stripe-payment-request-button-separator {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	margin: 1rem 0 1.5rem !important;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var( --dt-ink-faint );
	text-align: center;
}

#wc-stripe-payment-request-button-separator::before,
#wc-stripe-payment-request-button-separator::after {
	content: '';
	flex: 1;
	max-width: 120px;
	height: 1px;
	background: var( --dt-line );
}

/* ----- Form rows + labels (uniform spacing) ----- */

.woocommerce-checkout .form-row,
.woocommerce-checkout p.form-row {
	margin: 0 0 1rem !important;
	padding: 0 !important;
	display: block !important;
	float: none !important;
	width: 100% !important;
}

.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
	width: calc( 50% - .5rem ) !important;
	display: inline-block !important;
	vertical-align: top;
}

.woocommerce-checkout .form-row-first { margin-right: 1rem !important; }

.woocommerce-checkout .form-row label {
	display: block;
	font-family: 'Lato', sans-serif;
	font-weight: 600;
	color: var( --dt-teal-deep );
	font-size: .85rem;
	letter-spacing: .02em;
	margin: 0 0 .4rem !important;
	line-height: 1.3;
}

.woocommerce-checkout .form-row .required,
.woocommerce-checkout .form-row .optional {
	color: var( --dt-pink );
	border: none;
	text-decoration: none;
	font-weight: 700;
	margin-left: .15rem;
}

.woocommerce-checkout .form-row .optional {
	color: var( --dt-ink-faint );
	font-style: italic;
	font-weight: 400;
}

.woocommerce-checkout .woocommerce-input-wrapper { display: block; width: 100%; }

/* ----- All inputs: uniform 48px height + vertical center ----- */

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row input[type="text"],
.woocommerce-checkout .form-row input[type="email"],
.woocommerce-checkout .form-row input[type="tel"],
.woocommerce-checkout .form-row input[type="url"],
.woocommerce-checkout .form-row input[type="number"],
.woocommerce-checkout .form-row input[type="password"],
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select {
	display: block !important;
	width: 100% !important;
	height: 48px !important;
	min-height: 48px !important;
	padding: 0 .95rem !important;
	margin: 0 !important;
	border: 1.5px solid var( --dt-line ) !important;
	border-radius: 12px !important;
	background: var( --dt-cream ) !important;
	font-family: 'Lato', sans-serif !important;
	color: var( --dt-teal-deep ) !important;
	font-size: .95rem !important;
	line-height: 46px !important;
	box-shadow: none !important;
	transition: all var( --dt-transition );
	box-sizing: border-box !important;
}

.woocommerce-checkout .form-row textarea {
	height: auto !important;
	min-height: 96px !important;
	padding: .75rem .95rem !important;
	line-height: 1.5 !important;
	resize: vertical;
}

.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus {
	outline: none !important;
	border-color: var( --dt-teal ) !important;
	background: #ffffff !important;
	box-shadow: 0 0 0 3px rgba( 61, 81, 85, .08 ) !important;
}

.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout .form-row.woocommerce-invalid select,
.woocommerce-checkout .form-row.woocommerce-invalid textarea {
	border-color: #c45a5a !important;
	background: #fff7f7 !important;
}

.woocommerce-checkout .form-row.woocommerce-validated input.input-text,
.woocommerce-checkout .form-row.woocommerce-validated select,
.woocommerce-checkout .form-row.woocommerce-validated textarea {
	border-color: var( --dt-line ) !important;
}

/* ----- Select2 (Country, State) — match input height exactly ----- */

.woocommerce-checkout .select2-container,
.woocommerce-checkout .select2-container--default {
	width: 100% !important;
	display: block !important;
}

.woocommerce-checkout .select2-container .select2-selection--single,
.woocommerce-checkout .select2-container--default .select2-selection--single {
	height: 48px !important;
	min-height: 48px !important;
	padding: 0 .95rem !important;
	border: 1.5px solid var( --dt-line ) !important;
	border-radius: 12px !important;
	background: var( --dt-cream ) !important;
	font-family: 'Lato', sans-serif !important;
	color: var( --dt-teal-deep ) !important;
	font-size: .95rem !important;
	box-shadow: none !important;
	transition: all var( --dt-transition );
	display: flex !important;
	align-items: center !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 46px !important;
	padding: 0 !important;
	color: var( --dt-teal-deep ) !important;
	font-size: .95rem !important;
	width: 100%;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 46px !important;
	right: .75rem !important;
	top: 50% !important;
	transform: translateY( -50% ) !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow b {
	border-color: var( --dt-teal ) transparent transparent !important;
	border-width: 6px 5px 0 5px !important;
	margin-left: -5px !important;
	margin-top: -2px !important;
}

.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
	border-color: transparent transparent var( --dt-teal ) !important;
	border-width: 0 5px 6px 5px !important;
}

.woocommerce-checkout .select2-container--open .select2-selection--single,
.woocommerce-checkout .select2-container--focus .select2-selection--single {
	border-color: var( --dt-teal ) !important;
	background: #ffffff !important;
	box-shadow: 0 0 0 3px rgba( 61, 81, 85, .08 ) !important;
}

/* Dropdown popover */
.select2-dropdown {
	border: 1.5px solid var( --dt-teal ) !important;
	border-radius: 12px !important;
	box-shadow: 0 12px 28px -8px rgba( 61, 81, 85, .25 ) !important;
	overflow: hidden;
	margin-top: 4px;
}

.select2-search--dropdown { padding: .5rem !important; }

.select2-search--dropdown .select2-search__field {
	height: 38px !important;
	padding: 0 .75rem !important;
	border: 1.5px solid var( --dt-line ) !important;
	border-radius: 8px !important;
	background: var( --dt-cream ) !important;
	font-family: 'Lato', sans-serif !important;
	color: var( --dt-teal-deep ) !important;
	font-size: .9rem !important;
}

.select2-results__option {
	padding: .55rem .9rem !important;
	font-family: 'Lato', sans-serif !important;
	color: var( --dt-teal-deep ) !important;
	font-size: .9rem !important;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
	background: linear-gradient( 135deg, var( --dt-pink-soft ), var( --dt-peach ) ) !important;
	color: var( --dt-teal-deep ) !important;
}

/* ----- Stripe credit card iframe wrapper — styled like an input ----- */

.woocommerce-checkout #wc-stripe-cc-form { margin: 0 !important; padding: 0 !important; border: none !important; }

.woocommerce-checkout #wc-stripe-cc-form label {
	margin-bottom: .4rem !important;
	font-family: 'Lato', sans-serif;
	font-weight: 600;
	font-size: .85rem;
	color: var( --dt-teal-deep );
}

.woocommerce-checkout #stripe-card-element,
.woocommerce-checkout .StripeElement,
.woocommerce-checkout .wc-stripe-elements-field {
	display: flex;
	align-items: center;
	width: 100%;
	height: 48px;
	min-height: 48px;
	padding: 0 .95rem !important;
	border: 1.5px solid var( --dt-line ) !important;
	border-radius: 12px !important;
	background: var( --dt-cream ) !important;
	box-shadow: none !important;
	transition: all var( --dt-transition );
	box-sizing: border-box;
}

.woocommerce-checkout .StripeElement--focus,
.woocommerce-checkout .StripeElement.is-focused {
	border-color: var( --dt-teal ) !important;
	background: #ffffff !important;
	box-shadow: 0 0 0 3px rgba( 61, 81, 85, .08 ) !important;
}

.woocommerce-checkout .StripeElement--invalid {
	border-color: #c45a5a !important;
	background: #fff7f7 !important;
}

.woocommerce-checkout .StripeElement .__PrivateStripeElement,
.woocommerce-checkout .StripeElement iframe {
	width: 100% !important;
}

.woocommerce-checkout #wc-stripe-cc-form .stripe-source-errors {
	margin-top: .35rem;
	color: #c45a5a;
	font-size: .82rem;
	font-weight: 500;
	min-height: 1.2em;
}

/* ----- Validation messages ----- */

.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info {
	margin-bottom: 1.25rem !important;
}

.woocommerce-checkout .form-row .gfield_error_message,
.woocommerce-checkout .form-row .woocommerce-error,
.woocommerce-checkout .form-row em {
	display: block;
	margin-top: .25rem;
	font-size: .8rem;
	color: #c45a5a !important;
	font-style: normal !important;
	font-weight: 500;
}

/* ----- Custom checkboxes (ship-to-different, save payment, terms) ----- */

.woocommerce-checkout .woocommerce-form__label-for-checkbox,
.woocommerce-checkout label.checkbox {
	display: inline-flex !important;
	align-items: center;
	gap: .65rem;
	margin: 0 !important;
	cursor: pointer;
	font-weight: 500;
	color: var( --dt-teal-deep );
	font-size: .92rem;
	line-height: 1.45;
}

.woocommerce-checkout .woocommerce-form__input-checkbox,
.woocommerce-checkout input[type="checkbox"]:not( [name="terms"] ):not( [id="ship-to-different-address-checkbox"] ):not( [id="wc-stripe-new-payment-method"] ),
.woocommerce-checkout #ship-to-different-address-checkbox,
.woocommerce-checkout #wc-stripe-new-payment-method,
.woocommerce-checkout #terms,
.woocommerce-checkout input.input-checkbox {
	appearance: none !important;
	-webkit-appearance: none !important;
	width: 22px !important;
	height: 22px !important;
	min-width: 22px !important;
	min-height: 22px !important;
	margin: 0 !important;
	border: 2px solid var( --dt-line ) !important;
	border-radius: 6px !important;
	background: #ffffff !important;
	cursor: pointer;
	position: relative;
	transition: all var( --dt-transition );
	flex-shrink: 0;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	vertical-align: middle;
}

.woocommerce-checkout .woocommerce-form__input-checkbox:hover,
.woocommerce-checkout #ship-to-different-address-checkbox:hover,
.woocommerce-checkout #wc-stripe-new-payment-method:hover,
.woocommerce-checkout #terms:hover {
	border-color: var( --dt-pink );
}

.woocommerce-checkout .woocommerce-form__input-checkbox:checked,
.woocommerce-checkout #ship-to-different-address-checkbox:checked,
.woocommerce-checkout #wc-stripe-new-payment-method:checked,
.woocommerce-checkout #terms:checked,
.woocommerce-checkout input.input-checkbox:checked {
	background: var( --dt-teal ) !important;
	border-color: var( --dt-teal ) !important;
}

.woocommerce-checkout .woocommerce-form__input-checkbox:checked::after,
.woocommerce-checkout #ship-to-different-address-checkbox:checked::after,
.woocommerce-checkout #wc-stripe-new-payment-method:checked::after,
.woocommerce-checkout #terms:checked::after,
.woocommerce-checkout input.input-checkbox:checked::after {
	content: '';
	width: 6px;
	height: 11px;
	border: solid #ffffff;
	border-width: 0 2.5px 2.5px 0;
	transform: rotate( 45deg ) translateY( -1px );
}

.woocommerce-checkout .woocommerce-form__input-checkbox:focus,
.woocommerce-checkout #ship-to-different-address-checkbox:focus,
.woocommerce-checkout #wc-stripe-new-payment-method:focus,
.woocommerce-checkout #terms:focus {
	outline: none !important;
	box-shadow: 0 0 0 3px rgba( 61, 81, 85, .15 ) !important;
}

/* Ship-to-different heading: just a checkbox row, not a card on its own */

.woocommerce-checkout #ship-to-different-address {
	margin: 1rem 0 0 !important;
	padding: 1rem 1.25rem !important;
	background: var( --dt-cream-soft ) !important;
	border: 1.5px dashed var( --dt-line ) !important;
	border-radius: var( --dt-radius-sm ) !important;
}

.woocommerce-checkout #ship-to-different-address label {
	font-family: 'Lato', sans-serif !important;
	font-size: .95rem !important;
	font-weight: 600 !important;
	color: var( --dt-teal-deep ) !important;
	margin: 0 !important;
	display: inline-flex !important;
	align-items: center;
	gap: .65rem;
}

.woocommerce-checkout #ship-to-different-address span {
	display: inline-block;
	line-height: 1.3;
}

/* Save-payment-info checkbox row (Stripe) */
.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew {
	margin: 1rem 0 0 !important;
	padding: .85rem 1rem !important;
	background: var( --dt-cream-soft );
	border: 1px dashed var( --dt-line );
	border-radius: var( --dt-radius-sm );
	display: flex !important;
	align-items: center;
	gap: .65rem;
}

.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew label {
	margin: 0 !important;
	display: inline !important;
	font-size: .88rem !important;
	font-weight: 500 !important;
	color: var( --dt-teal-deep ) !important;
}

/* ----- Order review table ----- */

.woocommerce-checkout #order_review .shop_table {
	border: none !important;
	border-collapse: collapse !important;
	width: 100%;
}

.woocommerce-checkout #order_review .product-name {
	font-family: 'Playfair Display', serif !important;
	font-weight: 600 !important;
	color: var( --dt-teal-deep ) !important;
}

.woocommerce-checkout #order_review .product-quantity {
	color: var( --dt-pink );
	font-weight: 600;
	margin-left: .25rem;
}

.woocommerce-checkout #order_review tfoot tr.order-paid th,
.woocommerce-checkout #order_review tfoot tr.order-paid td {
	background: linear-gradient( 135deg, var( --dt-pink-soft ), var( --dt-peach ) );
	color: var( --dt-teal-deep ) !important;
	font-size: 1.1rem !important;
	font-weight: 700 !important;
	border-top: 2px solid var( --dt-teal ) !important;
	padding: 1rem 1.25rem !important;
	border-bottom: none !important;
}

.woocommerce-checkout #order_review tfoot tr.order-paid td bdi,
.woocommerce-checkout #order_review tfoot tr.order-paid td .woocommerce-Price-amount {
	font-size: 1.4rem !important;
	color: var( --dt-teal-deep ) !important;
}

.woocommerce-checkout #order_review tfoot tr.order-remaining th,
.woocommerce-checkout #order_review tfoot tr.order-remaining td {
	color: var( --dt-ink-soft ) !important;
	font-style: italic;
	font-size: .92rem !important;
	background: var( --dt-cream-soft );
	padding: .85rem 1.25rem !important;
}

.woocommerce-checkout #deposit-help-tip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: rgba( 61, 81, 85, .15 );
	color: var( --dt-teal-deep );
	font-size: .7rem;
	font-weight: 700;
	margin-left: .35rem;
	cursor: help;
}

/* ----- Deposit / Pay in Full radio toggle (boutique pill group) ----- */

.woocommerce-checkout .basic-switch-woocommerce-deposits {
	display: flex !important;
	align-items: stretch;
	gap: .5rem;
	margin: .85rem 0 .25rem;
	padding: .35rem;
	background: var( --dt-cream );
	border: 1.5px dashed var( --dt-line );
	border-radius: 999px;
}

.woocommerce-checkout .basic-switch-woocommerce-deposits br { display: none; }

.woocommerce-checkout .basic-switch-woocommerce-deposits input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
	pointer-events: none;
}

.woocommerce-checkout .basic-switch-woocommerce-deposits label {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	padding: .65rem 1rem;
	border-radius: 999px;
	font-family: 'Lato', sans-serif;
	font-weight: 600;
	font-size: .88rem;
	letter-spacing: .04em;
	color: var( --dt-ink-soft );
	cursor: pointer;
	transition: all var( --dt-transition );
	margin: 0;
	text-align: center;
	line-height: 1.2;
	position: relative;
}

.woocommerce-checkout .basic-switch-woocommerce-deposits label::before {
	content: '';
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 2px solid var( --dt-line );
	background: #ffffff;
	flex-shrink: 0;
	transition: all var( --dt-transition );
}

.woocommerce-checkout .basic-switch-woocommerce-deposits #pay-deposit:checked + label,
.woocommerce-checkout .basic-switch-woocommerce-deposits #pay-deposit:checked ~ label#pay-deposit-label {
	background: linear-gradient( 135deg, var( --dt-teal ), var( --dt-teal-deep ) );
	color: #ffffff;
	box-shadow: 0 8px 18px -8px rgba( 61, 81, 85, .45 );
}

.woocommerce-checkout .basic-switch-woocommerce-deposits #pay-deposit:checked + label::before {
	background: var( --dt-peach );
	border-color: var( --dt-peach );
	box-shadow: inset 0 0 0 3px var( --dt-teal );
}

/* Disabled "Pay in Full" — clearly muted with strikethrough on its own */
.woocommerce-checkout .basic-switch-woocommerce-deposits input[type="radio"]:disabled + label,
.woocommerce-checkout .basic-switch-woocommerce-deposits #pay-full-amount:disabled ~ label#pay-full-amount-label,
.woocommerce-checkout .basic-switch-woocommerce-deposits #pay-full-amount[disabled] ~ label#pay-full-amount-label {
	opacity: .45;
	cursor: not-allowed;
	background: transparent;
	color: var( --dt-ink-faint );
	text-decoration: line-through;
	text-decoration-color: rgba( 0, 0, 0, .25 );
	text-decoration-thickness: 1px;
}

.woocommerce-checkout .basic-switch-woocommerce-deposits input[type="radio"]:disabled + label::before {
	border-color: var( --dt-line );
	background: var( --dt-line-soft );
}

/* "Pay in Full" disabled — surface the reason with a small "Required" tag */
.woocommerce-checkout .basic-switch-woocommerce-deposits #pay-full-amount-label::after {
	content: attr( data-reason );
}

.woocommerce-checkout .basic-switch-woocommerce-deposits input[type="radio"]:disabled ~ label::after,
.woocommerce-checkout .basic-switch-woocommerce-deposits #pay-full-amount[disabled] ~ label#pay-full-amount-label::after {
	content: '— deposit required';
	display: inline;
	margin-left: .35rem;
	font-size: .72rem;
	font-style: italic;
	font-weight: 500;
	letter-spacing: .03em;
	text-decoration: none !important;
	text-transform: none;
	color: var( --dt-pink );
	opacity: .9;
}

.woocommerce-checkout .wc-deposits-switcher { display: none !important; }

/* Hide the original deposit-buttons table row caption */
.woocommerce-checkout tr.deposit-buttons th,
.woocommerce-checkout tr.deposit-buttons td {
	background: transparent !important;
	border-top: 1px dashed var( --dt-line ) !important;
	padding: 1rem 1.25rem !important;
}

.woocommerce-checkout #wc-deposits-notice {
	display: block;
	margin-top: .65rem;
	font-size: .82rem;
	color: var( --dt-ink-soft );
	font-style: italic;
}

/* ----- Payment box ----- */

.woocommerce-checkout #payment ul.payment_methods {
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
}

.woocommerce-checkout #payment ul.payment_methods li {
	padding: 1rem 1.25rem !important;
	margin: 0 0 .65rem !important;
	background: #ffffff;
	border: 1.5px solid var( --dt-line );
	border-radius: var( --dt-radius-sm );
	transition: all var( --dt-transition );
}

.woocommerce-checkout #payment ul.payment_methods li.is-selected,
.woocommerce-checkout #payment ul.payment_methods li input.input-radio:checked + label {
	border-color: var( --dt-teal );
	background: linear-gradient( 135deg, #ffffff 0%, var( --dt-cream ) 100% );
}

.woocommerce-checkout #payment ul.payment_methods label {
	font-family: 'Playfair Display', serif !important;
	font-size: 1.05rem !important;
	font-weight: 700 !important;
	color: var( --dt-teal-deep ) !important;
	margin: 0 !important;
	cursor: pointer;
}

.woocommerce-checkout #payment ul.payment_methods li img,
.woocommerce-checkout #payment ul.payment_methods li .payment_method_credit_card_icons {
	max-height: 28px;
	margin-left: .75rem;
	vertical-align: middle;
}

.woocommerce-checkout #payment .payment_box {
	background: var( --dt-cream-soft ) !important;
	margin: .85rem 0 0 !important;
	padding: 1.25rem !important;
	border-radius: var( --dt-radius-sm ) !important;
	border: 1px dashed var( --dt-line );
	color: var( --dt-ink-soft );
	box-shadow: none !important;
}

.woocommerce-checkout #payment .payment_box::before {
	display: none !important;
}

.woocommerce-checkout #payment .payment_box p {
	margin: 0 0 .85rem;
	font-size: .9rem;
	line-height: 1.55;
	color: var( --dt-ink-soft );
}

/* ----- Privacy + Terms ----- */

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	margin: 1.25rem 0;
	padding: 1.25rem;
	background: var( --dt-cream-soft );
	border-radius: var( --dt-radius-sm );
	border: 1px dashed var( --dt-line );
}

.woocommerce-checkout .woocommerce-privacy-policy-text {
	font-size: .85rem;
	color: var( --dt-ink-soft );
	line-height: 1.55;
	margin-bottom: .85rem;
}

.woocommerce-checkout .woocommerce-privacy-policy-text p { margin: 0; }

.woocommerce-checkout .woocommerce-privacy-policy-link,
.woocommerce-checkout .woocommerce-terms-and-conditions-link {
	color: var( --dt-teal );
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.woocommerce-checkout .woocommerce-privacy-policy-link:hover,
.woocommerce-checkout .woocommerce-terms-and-conditions-link:hover {
	color: var( --dt-pink );
}

.woocommerce-checkout .form-row.validate-required label.checkbox {
	display: flex !important;
	align-items: flex-start;
	gap: .65rem;
	font-size: .9rem;
	color: var( --dt-teal-deep );
	font-weight: 500;
	line-height: 1.5;
}

.woocommerce-checkout .form-row.validate-required label.checkbox span {
	display: inline-block;
	flex: 1;
}

.woocommerce-checkout .woocommerce-terms-and-conditions {
	margin: 0 0 1rem;
	padding: 1rem;
	border: 1px solid var( --dt-line ) !important;
	border-radius: 10px;
	background: #ffffff;
	color: var( --dt-ink-soft );
	font-size: .82rem !important;
	line-height: 1.55;
}

/* ----- Place Order button (full-width, prominent) ----- */

.woocommerce-checkout #place_order {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: .55rem;
	width: 100% !important;
	padding: 1.15rem 1.5rem !important;
	margin: 1.25rem 0 0 !important;
	background: linear-gradient( 135deg, var( --dt-teal ) 0%, var( --dt-teal-deep ) 100% ) !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: var( --dt-radius-sm ) !important;
	font-family: 'Lato', sans-serif !important;
	font-weight: 700 !important;
	font-size: 1rem !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
	cursor: pointer;
	transition: all var( --dt-transition ) !important;
	box-shadow: 0 12px 28px -12px rgba( 61, 81, 85, .55 ) !important;
	text-shadow: none !important;
	height: auto !important;
	line-height: 1.2 !important;
}

.woocommerce-checkout #place_order::before {
	content: '\F4DC';
	font-family: 'bootstrap-icons';
	font-size: 1.15rem;
	display: inline-flex;
	align-items: center;
}

.woocommerce-checkout #place_order:hover:not( :disabled ) {
	transform: translateY( -2px );
	box-shadow: 0 18px 36px -12px rgba( 61, 81, 85, .65 ) !important;
	background: linear-gradient( 135deg, var( --dt-teal-deep ) 0%, #1a2a2d 100% ) !important;
}

.woocommerce-checkout #place_order:disabled {
	opacity: .55;
	cursor: not-allowed;
	transform: none !important;
}

.woocommerce-checkout .form-row.place-order { margin: 0 !important; }

/* Section card backgrounds — keep prior rules but tighten + ensure the order
   review and payment fieldsets appear inside the same boutique card flow */

.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-checkout #order_review {
	margin-bottom: 1.25rem !important;
}

.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3,
.woocommerce-checkout #order_review_heading {
	display: flex;
	align-items: center;
	gap: .55rem;
	font-family: 'Mollie Glaston', 'Playfair Display', serif !important;
	font-size: 1.65rem !important;
	font-weight: 400 !important;
	color: var( --dt-teal-deep ) !important;
	margin: 0 0 1.25rem !important;
	padding-bottom: .85rem !important;
	border-bottom: 1px dashed var( --dt-line ) !important;
}

/* Mobile tweaks */
@media (max-width: 575.98px) {
	.dt-checkout__page-head { margin-bottom: 1.25rem; }
	.dt-checkout__title { font-size: 1.85rem; }
	.dt-checkout__lede { font-size: .92rem; }

	.woocommerce-checkout .form-row-first,
	.woocommerce-checkout .form-row-last {
		width: 100% !important;
		margin-right: 0 !important;
	}

	.woocommerce-checkout .basic-switch-woocommerce-deposits {
		flex-direction: column;
		border-radius: 18px;
	}

	.woocommerce-checkout .basic-switch-woocommerce-deposits label {
		justify-content: flex-start;
		padding: .85rem 1rem;
	}
}

/* ----- Shipping method row + reassurance note ----- */

.woocommerce-checkout #order_review tr.shipping th,
.woocommerce-checkout #order_review tr.woocommerce-shipping-totals th {
	font-family: 'Playfair Display', serif !important;
	color: var( --dt-teal-deep ) !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-size: .95rem !important;
}

.woocommerce-checkout #order_review tr.shipping td,
.woocommerce-checkout #order_review tr.woocommerce-shipping-totals td {
	padding: .85rem 0 !important;
}

.woocommerce-checkout #shipping_method,
.woocommerce-checkout ul.woocommerce-shipping-methods {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}

.woocommerce-checkout #shipping_method li,
.woocommerce-checkout ul.woocommerce-shipping-methods li {
	margin: 0 !important;
	padding: 0;
	background: transparent;
	border: none;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}

.woocommerce-checkout #shipping_method li label,
.woocommerce-checkout ul.woocommerce-shipping-methods li label {
	display: flex !important;
	align-items: center;
	gap: .65rem;
	margin: 0 !important;
	padding: .75rem 1rem !important;
	background: linear-gradient( 135deg, var( --dt-cream ) 0%, var( --dt-cream-soft ) 100% );
	border: 1.5px solid var( --dt-pink-soft );
	border-radius: var( --dt-radius-sm );
	font-family: 'Playfair Display', serif;
	font-size: 1rem;
	font-weight: 700;
	color: var( --dt-teal-deep );
	cursor: default;
}

.woocommerce-checkout #shipping_method li label::before,
.woocommerce-checkout ul.woocommerce-shipping-methods li label::before {
	content: '\F614';
	font-family: 'bootstrap-icons';
	font-size: 1.15rem;
	color: var( --dt-pink );
}

/* "What happens next" reassurance — between order review and payment block */
.dt-pickup-note {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	padding: 1.1rem 1.25rem;
	margin: 1.25rem 0;
	background: linear-gradient( 135deg, var( --dt-pink-soft ) 0%, var( --dt-peach ) 100% );
	border-radius: var( --dt-radius-md );
	color: var( --dt-teal-deep );
	box-shadow: 0 12px 28px -14px rgba( 217, 178, 175, .55 );
	border: 1px solid rgba( 255, 255, 255, .55 );
}

.dt-pickup-note__icon {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba( 255, 255, 255, .85 );
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var( --dt-teal-deep );
	font-size: 1.15rem;
	flex-shrink: 0;
}

.dt-pickup-note__body { min-width: 0; }

.dt-pickup-note__title {
	display: block;
	font-family: 'Playfair Display', serif;
	font-size: 1rem;
	font-weight: 700;
	color: var( --dt-teal-deep );
	margin-bottom: .25rem;
	line-height: 1.25;
}

.dt-pickup-note__lede {
	margin: 0;
	font-size: .87rem;
	color: var( --dt-teal-deep );
	line-height: 1.55;
	opacity: .95;
}
