/* Lair Keeper: new cart, checkout and thank-you page. Scoped to body.dld-co / .dld-thankyou. */

.dld-co, .dld-thankyou {
	--dld-green: #556b1b;
	--dld-green-soft: #f1f5e3;
	--dld-link: #46601a;
	--dld-line: #e4ddcd;
	--dld-field: #cfc8b8;
	--dld-muted: #5c5048;
	--dld-warm: #fbebd3;
	--dld-warm-text: #5a3200;
	--dld-ink: #2a1e1e;
}

/* ---------- Cards and steps ---------- */

.dld-co .dld-card,
.dld-co #customer_details .col-1,
.dld-co #customer_details .col-2,
.dld-co #order_review,
.dld-thankyou .dld-ty-card {
	background: #fff;
	border: 1px solid var(--dld-line);
	border-radius: 14px;
	padding: 22px;
	box-sizing: border-box;
}
.dld-co .dld-card { margin: 0 0 20px; }
.dld-co .dld-step, .dld-co #customer_details h3, .dld-co #order_review_heading { margin: 0 0 14px; font-size: 1.35em; }
.dld-co .dld-hint, .dld-thankyou .dld-hint { color: var(--dld-muted); font-size: .9em; }

/* Steps on the left; Review and pay on the right from the top (sticky on desktop). */
.dld-co .dld-co-main .dld-method, .dld-co .dld-co-main #customer_details,
.dld-co .dld-co-side #order_review_heading, .dld-co .dld-co-side #order_review { float: none !important; width: 100% !important; margin-right: 0 !important; clear: none !important; }
@media (min-width: 900px) {
	.dld-co form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 420px); column-gap: 28px; align-items: start; }
	.dld-co form.checkout > * { grid-column: 1 / -1; }
	.dld-co form.checkout > .dld-co-main { grid-column: 1; }
	.dld-co form.checkout > .dld-co-side { grid-column: 2; }
}
.dld-co form.checkout::before, .dld-co form.checkout::after { display: none; }
/* The Notes heading already says optional. */
.dld-co .woocommerce-additional-fields .optional { display: none; }
.dld-co #customer_details .col-1,
.dld-co #customer_details .col-2 { float: none; width: 100%; margin: 0 0 20px; }
.dld-co #order_review_heading { padding: 0; }

/* ---------- Postal code ---------- */

.dld-co .dld-postcode-row { margin: 0 0 16px; }
.dld-co .dld-postcode-row label { display: block; font-weight: 600; margin-bottom: 6px; }
.dld-co .dld-postcode-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.dld-co #dld_postcode { max-width: 9em; text-transform: uppercase; }
.dld-co .dld-postcode-mirror { display: none !important; }
.dld-co .dld-empty { padding: 12px 14px; background: var(--dld-warm); color: var(--dld-warm-text); border-radius: 10px; margin: 0; }

/* ---------- Group tiles ---------- */

.dld-co .dld-groups { border: 0; padding: 0; margin: 0 0 16px; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.dld-co .dld-group {
	position: relative; display: flex; flex-direction: column; gap: 2px; padding: 14px 14px 14px 42px;
	border: 1px solid var(--dld-field); border-radius: 12px; cursor: pointer; min-height: 44px; margin: 0;
}
.dld-co .dld-group input { position: absolute; left: 14px; top: 17px; width: 18px; height: 18px; margin: 0; accent-color: var(--dld-green); }
.dld-co .dld-group.is-on { border: 2px solid var(--dld-green); background: var(--dld-green-soft); padding: 13px 13px 13px 41px; }
.dld-co .dld-group-name { font-weight: 700; }
.dld-co .dld-group-sub { font-size: .875em; color: var(--dld-muted); }

/* ---------- Options ---------- */

.dld-co .dld-rates[hidden] { display: none; }
.dld-co .dld-rates-title { font-weight: 700; margin: 0 0 8px; }
.dld-co .dld-rate { border: 1px solid var(--dld-field); border-radius: 12px; margin: 0 0 8px; background: #fff; }
.dld-co .dld-rate.is-on { border: 2px solid var(--dld-green); }
.dld-co .dld-rate > label { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; margin: 0; cursor: pointer; }
.dld-co .dld-rate input.shipping_method { width: 18px; height: 18px; margin: 3px 0 0; flex: none; accent-color: var(--dld-green); }
.dld-co .dld-rate-text { flex: 1; display: flex; flex-direction: column; }
.dld-co .dld-rate-name { font-weight: 700; }
.dld-co .dld-rate-detail { font-size: .9em; color: var(--dld-muted); }
.dld-co .dld-rate-cost { font-weight: 600; white-space: nowrap; }
.dld-co .dld-extra { padding: 0 14px 14px 44px; }
.dld-co .dld-rate-map { margin: -6px 0 0; padding: 0 14px 10px 44px; font-size: .875em; }
.dld-co .dld-rate-map a { color: var(--dld-link); font-weight: 600; }
.dld-co .dld-location-text { margin: 0 0 10px; font-size: .95em; }
.dld-co .dld-addon-choice { margin: 6px 0 10px; }
.dld-co .dld-addon-choice label { display: flex; gap: 10px; align-items: center; cursor: pointer; margin: 0; min-height: 44px; }
.dld-co .dld-addon-choice .dld-link { color: var(--dld-link); text-decoration: underline; font-weight: 600; }
.dld-co .dld-addon-choice .dld-extra { padding-left: 28px; }
.dld-co .dld-addon-choice .description { display: block; font-size: .875em; color: var(--dld-muted); margin-top: 4px; }

/* ---------- Kinburn day and time buttons ---------- */

.dld-co .dld-picker { background: #f6f3ec; border: 1px solid var(--dld-line); border-radius: 12px; padding: 16px; }
.dld-co .dld-picker fieldset { border: 0; padding: 0; margin: 0 0 6px; }
.dld-co .dld-picker legend { font-weight: 700; margin-bottom: 8px; padding: 0; }
.dld-co .dld-days { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; }
.dld-co .dld-days legend, .dld-co .dld-times legend { grid-column: 1 / -1; }
.dld-co .dld-time-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 8px; }
.dld-co .dld-time-grid[hidden], .dld-co .dld-times-empty[hidden] { display: none; }
.dld-co .dld-chip { position: relative; display: block; margin: 0; cursor: pointer; }
.dld-co .dld-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.dld-co .dld-chip > span {
	display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
	min-height: 44px; padding: 6px 8px; border: 1px solid var(--dld-field); border-radius: 9px; background: #fff; line-height: 1.25; font-size: .95em;
}
.dld-co .dld-days .dld-chip > span { min-height: 58px; }
.dld-co .dld-chip input:checked + span { background: var(--dld-green); border-color: var(--dld-green); color: #fff; font-weight: 700; }
.dld-co .dld-chip input:focus-visible + span { outline: 3px solid #0b57d0; outline-offset: 2px; }
.dld-co .dld-chip.is-taken { cursor: not-allowed; }
.dld-co .dld-chip.is-taken > span { background: transparent; border-style: dashed; color: #6e746f; text-decoration: line-through; }

/* ---------- Your details ---------- */

.dld-co form.checkout.dld-is-pickup .dld-addr { display: none !important; }
.dld-co #customer_details .form-row { margin-bottom: 14px; }
.dld-co #customer_details input.input-text,
.dld-co #customer_details textarea,
.dld-co .dld-method input.input-text { border: 1px solid var(--dld-field); border-radius: 9px; padding: .7em .9em; background: #fff; box-shadow: none; }
.dld-co .dld-sms-optin { font-size: .95em; }

/* ---------- Delivery address ---------- */

.dld-co form.checkout:not(.dld-is-apt) .dld-apt { display: none !important; }
.dld-co #dld_building_field .woocommerce-input-wrapper { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.dld-co #dld_building_field input[type=radio] { position: absolute; opacity: 0; width: 1px; height: 1px; }
.dld-co #dld_building_field label.radio { display: flex; align-items: center; justify-content: center; min-height: 48px; margin: 0; padding: 0 12px; border: 1px solid var(--dld-field); border-radius: 10px; background: #fff; font-weight: 600; cursor: pointer; text-align: center; }
.dld-co #dld_building_field input[type=radio]:checked + label.radio { border: 2px solid var(--dld-green); background: var(--dld-green-soft); }
.dld-co #dld_building_field input[type=radio]:focus-visible + label.radio { outline: 3px solid #0b57d0; outline-offset: 2px; }
.dld-co #dld_building_field > label .optional,
.dld-co #billing_address_2_field > label .optional,
.dld-co #dld_buzzer_field > label .optional { display: none; }
.dld-co #dld_building_field > label::after,
.dld-co #billing_address_2_field > label::after,
.dld-co #dld_buzzer_field > label::after { content: " *"; color: #8a2a1b; }
.dld-co #dld_buzzer:disabled { background: #f6f3ec; }
.dld-co #billing_address_1_field .woocommerce-input-wrapper { position: relative; display: block; }
.dld-addr-list { position: absolute; left: 0; right: 0; z-index: 50; list-style: none; margin: 2px 0 0; padding: 4px 0; background: #fff; border: 2px solid var(--dld-green, #556b1b); border-radius: 10px; box-shadow: 0 8px 24px rgba(42,30,30,.12); }
.dld-addr-list li[role=option] { padding: 10px 14px; cursor: pointer; }
.dld-addr-list li[role=option] span { color: var(--dld-muted, #5c5048); }
.dld-addr-list li.is-active, .dld-addr-list li[role=option]:hover { background: var(--dld-green-soft, #f1f5e3); }
.dld-addr-list .dld-addr-manual button { background: none; border: 0; padding: 8px 14px; font: inherit; font-size: .875em; color: var(--dld-link, #46601a); text-decoration: underline; cursor: pointer; }
.dld-co .dld-pc-notice { margin: 0 0 12px; padding: 10px 14px; border-radius: 10px; background: var(--dld-warm); color: var(--dld-warm-text); font-weight: 600; }

/* ---------- Review and pay ---------- */

.dld-co .dld-shipping-summary .dld-summary-detail { display: block; font-weight: 400; font-size: .875em; color: var(--dld-muted); }
.dld-co #payment { background: transparent; border-radius: 0; }
.dld-co #payment ul.payment_methods { padding: 0; border: 0; }
.dld-co #payment ul.payment_methods > li { border: 1px solid var(--dld-field); border-radius: 12px; margin: 0 0 8px; padding: 12px 14px; list-style: none; }
.dld-co #payment ul.payment_methods > li:has(> input:checked) { border: 2px solid var(--dld-green); }
.dld-co #payment .payment_box { background: #fff; padding: 12px 0 0; margin: 0; }
.dld-co #payment .payment_box::before { display: none; }
.dld-co .dld-pay-note { font-size: .9em; color: var(--dld-muted); margin: 0 0 12px; }
.dld-co #place_order { width: 100%; min-height: 54px; border-radius: 12px; background: var(--dld-green); font-size: 1.1em; font-weight: 700; }

/* ---------- e-Transfer instructions ---------- */

.dld-et .dld-et-lead { margin: 0 0 10px; }
.dld-et-list { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 10px 16px; align-items: center; margin: 0 0 12px; }
.dld-et-list dt { color: var(--dld-muted, #4b5650); font-weight: 400; margin: 0; }
.dld-et-list dd { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.dld-et-email { word-break: break-all; }
.dld-et-due { color: #8a4a00; }
.dld-copy {
	display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 12px;
	border: 1px solid var(--dld-field, #cfc8b8); border-radius: 8px; background: #fff; color: var(--dld-ink, #1c2620);
	font: inherit; font-size: .875em; font-weight: 600; cursor: pointer;
}
.dld-copy:hover { background: #f6f3ec; }
.dld-et-question summary { cursor: pointer; font-weight: 600; color: var(--dld-link, #46601a); min-height: 32px; }
.dld-et-card { border: 2px solid #c77a1e; border-radius: 14px; padding: 18px 22px; margin: 0 0 20px; }

/* ---------- Cart ---------- */

.dld-co .dld-cart-checker td { padding-top: 14px; }
.dld-co .dld-cart-checker-title { font-weight: 700; margin: 0 0 6px; }
.dld-co .cart_totals .checkout-button { border-radius: 12px; background: var(--dld-green); min-height: 54px; font-weight: 700; }

/* ---------- Thank-you page ---------- */

.dld-thankyou { color: var(--dld-ink); }
.dld-ty-head { display: flex; gap: 16px; align-items: center; margin: 0 0 24px; }
.dld-ty-check { width: 54px; height: 54px; border-radius: 50%; background: #e6edc9; color: var(--dld-link); display: flex; align-items: center; justify-content: center; flex: none; }
.dld-ty-title { margin: 0; font-size: 1.9em; line-height: 1.2; }
.dld-ty-sub { margin: 4px 0 0; color: var(--dld-muted); }
.dld-ty-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 28px; align-items: start; }
@media (max-width: 900px) { .dld-ty-grid { grid-template-columns: 1fr; } }
.dld-ty-main { display: flex; flex-direction: column; gap: 20px; }
.dld-ty-card h3 { margin: 0 0 14px; font-size: 1.3em; }
.dld-ty-pay { border: 2px solid #c77a1e; padding: 0; overflow: hidden; }
.dld-ty-pay .dld-ty-pay-head { background: var(--dld-warm); color: var(--dld-warm-text); padding: 14px 22px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; align-items: center; }
.dld-ty-pay .dld-ty-pay-head h3 { margin: 0; }
.dld-ty-pay .dld-ty-pay-head span { font-weight: 700; }
.dld-ty-pay .dld-et { padding: 18px 22px 20px; }
.dld-ty-pay .dld-et-list dd strong { font-size: 1.1em; }
.dld-ty-when { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
.dld-ty-cal { width: 80px; border: 1px solid var(--dld-line); border-radius: 12px; overflow: hidden; text-align: center; flex: none; }
.dld-ty-cal span { display: block; background: var(--dld-green); color: #fff; font-size: .8em; font-weight: 700; padding: 3px 0; }
.dld-ty-cal strong { display: block; font-size: 1.9em; line-height: 1.2; padding-top: 4px; }
.dld-ty-cal em { display: block; font-style: normal; font-size: .8em; color: var(--dld-muted); padding-bottom: 6px; }
.dld-ty-when-text { flex: 1; min-width: 220px; }
.dld-ty-when-text p { margin: 0 0 6px; }
.dld-ty-big { font-size: 1.2em; font-weight: 700; }
.dld-ty-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-top: 12px !important; }
.dld-btn-outline { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 16px; border: 1px solid var(--dld-field); border-radius: 10px; text-decoration: none; color: var(--dld-ink); font-weight: 600; }
.dld-ty-note { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--dld-line); font-size: .95em; }
.dld-ty-more { margin: 0; }
.dld-ty-summary h3 { margin-bottom: 2px; }
.dld-ty-items { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.dld-ty-items li { display: flex; justify-content: space-between; gap: 12px; margin: 0; }
.dld-ty-items .dld-hint { display: block; }
.dld-ty-totals, .dld-ty-contact { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--dld-line); }
.dld-ty-totals { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; }
.dld-ty-totals dt { font-weight: 400; margin: 0; }
.dld-ty-totals dd { margin: 0; text-align: right; }
.dld-ty-totals .is-total { font-weight: 700; font-size: 1.1em; padding-top: 6px; border-top: 1px solid var(--dld-line); }
.dld-ty-contact dt { font-weight: 700; margin: 0; }
.dld-ty-contact dd { margin: 0 0 8px; }
