/* Gulvmax handlekurv-sidepanel · Plus Jakarta Sans
   Palett: ink #0F1A26 · oransje #E86A2B · CTA #BF5119 · krem #FAF7F2 */

:root {
	--hswc-o: #e86a2b;
	--hswc-o-cta: #bf5119;
	--hswc-o-cta-hov: #a8460f;
	--hswc-o-soft: #ffe9d8;
	--hswc-o-tint: #fff4ec;
	--hswc-o-text: #a8460f;
	--hswc-ink: #0f1a26;
	--hswc-ink-5: #4b5a6e;
	--hswc-ink-4: #6c7b8e;
	--hswc-ink-3: #94a0b0;
	--hswc-cream: #faf7f2;
	--hswc-bd: #ebe6de;
	--hswc-bd-s: #dcd5c8;
	--hswc-ok: #1b9f60;
	--hswc-ok-soft: #e2f4ea;
	--hswc-ok-text: #137548;
	--hswc-err: #d14444;
	--hswc-err-text: #9c2828;
	--hswc-font: 'Plus Jakarta Sans', -apple-system, system-ui, sans-serif;
}

.hswc-zip,
.hswc-box,
.hswc-step,
.hswc-trust,
.woocommerce-cart .cart_totals {
	font-family: var(--hswc-font);
	color: var(--hswc-ink);
}

.hswc-zip *,
.hswc-box * {
	box-sizing: border-box;
}

/* ---------- Steg-hoder ---------- */

.hswc-step {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 12px;
}

.hswc-step__n {
	flex: none;
	width: 24px;
	height: 24px;
	border-radius: 999px;
	background: var(--hswc-ink);
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.hswc-step__n--done {
	background: var(--hswc-ok);
}

.hswc-step__t {
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--hswc-ink);
}

/* Steg-rader inne i totals-tabellen */
.hswc-step-row td {
	padding: 20px 0 10px !important;
	border: none !important;
	background: none !important;
	text-align: left !important;
}

.hswc-step-row .hswc-step__n {
	margin-right: 10px;
	vertical-align: middle;
}

.hswc-step-row .hswc-step__t {
	vertical-align: middle;
}

/* ---------- Steg 1: postnummer ---------- */

.hswc-zip {
	background: #fff;
	border: 1px solid var(--hswc-bd);
	border-radius: 5px;
	padding: 18px;
	margin: 0 0 20px;
}

.hswc-zip__form {
	display: flex;
	gap: 8px;
	align-items: stretch;
}

.hswc-zip__wrap {
	position: relative;
	flex: none;
	width: 132px;
}

.hswc-zip__wrap input {
	width: 100%;
	height: 50px;
	padding: 0 14px;
	border: 1.5px solid var(--hswc-bd-s);
	border-radius: 5px;
	background: #fff;
	font-family: var(--hswc-font);
	font-size: 20px;
	font-weight: 800;
	letter-spacing: 0.14em;
	color: var(--hswc-ink);
	font-variant-numeric: tabular-nums;
	outline: none;
	box-shadow: none;
	transition: border-color 0.12s, box-shadow 0.12s;
}

.hswc-zip__wrap input::placeholder {
	color: var(--hswc-ink-3);
	font-weight: 700;
}

.hswc-zip__wrap input:hover {
	border-color: var(--hswc-ink-3);
}

.hswc-zip__wrap input:focus {
	border-color: var(--hswc-o);
	box-shadow: 0 0 0 3px var(--hswc-o-soft);
}

.hswc-zip__wrap--ok input {
	border-color: var(--hswc-ok);
	padding-right: 40px;
}

.hswc-zip__wrap--err input {
	border-color: var(--hswc-err);
	padding-right: 40px;
}

.hswc-zip__mark {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	pointer-events: none;
}

.hswc-zip__mark[hidden] {
	display: none;
}

.hswc-zip__msg {
	display: flex;
	gap: 8px;
	margin-top: 10px;
	font-size: 12.5px;
	line-height: 1.45;
	color: var(--hswc-ink-5);
}

.hswc-zip__msg b {
	color: var(--hswc-ink);
	font-weight: 700;
}

.hswc-zip__msg--ok,
.hswc-zip__msg--ok b {
	color: var(--hswc-ok-text);
}

.hswc-zip__msg--err,
.hswc-zip__msg--err b {
	color: var(--hswc-err-text);
}

/* Skjul temaets «Totalt i handlekurven»-rad i totals-tabellen. */
.woocommerce-cart .cart_totals table thead {
	display: none;
}

/* Skjul fraktdelen til postnummeret er tastet. */
.cart_totals.hswc-no-postcode tr.woocommerce-shipping-totals,
.cart_totals.hswc-no-postcode tr.shipping,
.cart_totals.hswc-no-postcode .hswc-step-row--2 {
	display: none;
}

/* ---------- Steg 2: fraktvalg som kort (handlekurven) ---------- */

.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals th,
.woocommerce-cart .cart_totals tr.shipping th {
	display: none;
}

.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td,
.woocommerce-cart .cart_totals tr.shipping td {
	padding: 0 !important;
	border: none !important;
	background: none !important;
}

:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method {
	list-style: none;
	margin: 0;
	padding: 0;
}

:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 0 0 8px;
	padding: 14px;
	border: 1.5px solid var(--hswc-bd-s);
	border-radius: 5px;
	background: #fff;
	cursor: pointer;
	transition: border-color 0.12s, background 0.12s;
}

:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li:hover {
	border-color: var(--hswc-ink-3);
}

:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li:has(input:checked) {
	border-color: var(--hswc-o);
	background: var(--hswc-o-tint);
}

:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li input.shipping_method {
	appearance: none;
	-webkit-appearance: none;
	flex: none;
	width: 20px;
	height: 20px;
	margin: 0;
	border: 2px solid var(--hswc-ink-3);
	border-radius: 999px;
	background: #fff;
	cursor: pointer;
	transition: border 0.12s;
}

:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li input.shipping_method:checked {
	border-color: var(--hswc-o);
	border-width: 6px;
}

:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li > label {
	flex: 1;
	min-width: 0;
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 0;
	font-family: var(--hswc-font);
	font-size: 14.5px;
	font-weight: 700;
	color: var(--hswc-ink);
	cursor: pointer;
}

:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li > label .amount {
	margin-left: auto;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	color: var(--hswc-ink);
}

/* «Gratis»-pill når metoden ikke har pris (f.eks. Hent selv). */
:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li > label:not(:has(.amount))::after {
	content: 'Gratis';
	margin-left: auto;
	background: var(--hswc-ok-soft);
	color: var(--hswc-ok-text);
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* Kassen: «Leveranse»-etiketten i samme stil som stegoverskriftene,
   og rene rader rundt fraktkortene. */
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th {
	font-family: var(--hswc-font);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--hswc-ink-5);
	vertical-align: top;
	padding-top: 20px;
	border: none;
	background: none;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td {
	border: none;
	background: none;
	padding-top: 12px;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .hswc-options td {
	border: none;
	background: none;
	padding: 4px 0 8px;
}

/* ---------- Hentevalg-boksen («Når vil du hente?») ---------- */

.hswc-box {
	background: var(--hswc-cream);
	border: 1px solid var(--hswc-bd);
	border-radius: 5px;
	padding: 14px;
	margin: 4px 0 0;
	text-align: left;
	font-weight: 400;
}

:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li .hswc-box {
	flex-basis: 100%;
	width: calc(100% - 32px);
	margin-left: 32px;
	cursor: default;
}

.hswc-heading {
	margin: 0 0 10px;
}

.hswc-heading strong {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--hswc-ink-5);
}

.hswc-choice {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 7px;
	padding: 11px 12px;
	border: 1.5px solid var(--hswc-bd);
	border-radius: 5px;
	background: #fff;
	font-size: 13.5px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--hswc-ink);
	cursor: pointer;
	transition: border-color 0.12s, background 0.12s;
}

.hswc-choice:hover {
	border-color: var(--hswc-ink-3);
}

.hswc-choice:has(input:checked) {
	border-color: var(--hswc-o);
	background: var(--hswc-o-tint);
	font-weight: 700;
}

.hswc-choice input {
	appearance: none;
	-webkit-appearance: none;
	flex: none;
	width: 18px;
	height: 18px;
	margin: 0;
	border: 2px solid var(--hswc-ink-3);
	border-radius: 999px;
	background: #fff;
	cursor: pointer;
	transition: border 0.12s;
}

.hswc-choice input:checked {
	border-color: var(--hswc-o);
	border-width: 5px;
}

.hswc-date-wrap,
.hswc-location-wrap {
	margin: 10px 0 0;
}

.hswc-date-wrap label,
.hswc-location-wrap label {
	display: block;
	margin-bottom: 5px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--hswc-ink-5);
}

.hswc-date-wrap input.hswc-datepicker-display,
.hswc-location-wrap select {
	width: 100%;
	height: 44px;
	padding: 0 12px;
	border: 1.5px solid var(--hswc-bd-s);
	border-radius: 5px;
	background: #fff;
	font-family: var(--hswc-font);
	font-size: 14.5px;
	font-weight: 700;
	color: var(--hswc-ink);
	outline: none;
	box-shadow: none;
	cursor: pointer;
}

.hswc-date-wrap input.hswc-datepicker-display:focus,
.hswc-location-wrap select:focus {
	border-color: var(--hswc-o);
	box-shadow: 0 0 0 3px var(--hswc-o-soft);
}

.hswc-location-static {
	display: flex;
	gap: 9px;
	margin: 11px 0 0;
	padding-top: 11px;
	border-top: 1px solid var(--hswc-bd);
	font-size: 12.5px;
	line-height: 1.45;
	color: var(--hswc-ink-5);
}

.hswc-location-static::before {
	content: '';
	flex: none;
	width: 16px;
	height: 16px;
	margin-top: 1px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 20 20' fill='none' stroke='%23BF5119' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7l1-3.5h12L17 7M3 7v10h14V7M3 7c0 1.5 1.5 2.5 3 2.5s3-1 3-2.5c0 1.5 1.5 2.5 3 2.5s3-1 3-2.5c0 1.5 1.5 2.5 3 2.5'/%3E%3Cpath d='M8 17v-5h4v5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
}

.hswc-location-static strong {
	color: var(--hswc-ink);
	font-weight: 700;
}

/* ---------- Steg 3: sammendrag, totalt og CTA (handlekurven) ---------- */

.woocommerce-cart .cart_totals tr.cart-subtotal th,
.woocommerce-cart .cart_totals tr.cart-subtotal td {
	padding: 9px 0 !important;
	border: none !important;
	background: none !important;
	font-family: var(--hswc-font);
	font-size: 14px;
}

.woocommerce-cart .cart_totals tr.cart-subtotal th {
	font-weight: 400;
	color: var(--hswc-ink-5);
}

.woocommerce-cart .cart_totals tr.cart-subtotal td {
	text-align: right;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.woocommerce-cart .cart_totals tr.order-total th,
.woocommerce-cart .cart_totals tr.order-total td {
	background: var(--hswc-ink) !important;
	color: #fff !important;
	border: none !important;
	padding: 18px !important;
	font-family: var(--hswc-font);
}

.woocommerce-cart .cart_totals tr.order-total th {
	border-radius: 5px 0 0 5px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.78) !important;
	vertical-align: bottom;
}

.woocommerce-cart .cart_totals tr.order-total td {
	border-radius: 0 5px 5px 0;
	text-align: right;
	font-size: 24px;
	font-weight: 800;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}

.woocommerce-cart .cart_totals tr.order-total td .amount,
.woocommerce-cart .cart_totals tr.order-total td strong {
	color: #fff !important;
}

.woocommerce-cart .cart_totals tr.order-total td small,
.woocommerce-cart .cart_totals tr.order-total td .includes_tax {
	display: block;
	font-size: 11.5px;
	font-weight: 400;
	letter-spacing: 0;
	color: rgba(255, 255, 255, 0.72) !important;
	margin-top: 4px;
}

.woocommerce-cart .cart_totals tr.order-total td small .amount {
	font-size: inherit;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.72) !important;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	display: block;
	width: 100%;
	margin-top: 14px;
	padding: 17px !important;
	border: none;
	border-radius: 5px;
	background-color: var(--hswc-o-cta) !important;
	color: #fff !important;
	font-family: var(--hswc-font);
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	transition: background 0.12s;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
	background-color: var(--hswc-o-cta-hov) !important;
}

.hswc-trust {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	margin-top: 11px;
	font-size: 11.5px;
	color: var(--hswc-ink-5);
}

/* ---------- Datovelger (jQuery UI, Gulvmax-skin) ---------- */

.ui-datepicker {
	display: none;
	width: 300px;
	padding: 14px;
	background: #fff;
	border: 1px solid var(--hswc-bd);
	border-radius: 8px;
	box-shadow: 0 12px 32px rgba(15, 26, 38, 0.18);
	font-family: var(--hswc-font);
	z-index: 10000 !important;
}

.ui-datepicker .ui-datepicker-header {
	position: relative;
	padding: 4px 0 10px;
	background: none;
	border: none;
}

.ui-datepicker .ui-datepicker-title {
	text-align: center;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.85em;
	color: var(--hswc-ink);
	line-height: 28px;
}

.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
	position: absolute;
	top: 0;
	width: 28px;
	height: 28px;
	line-height: 26px;
	text-align: center;
	font-size: 1.3em;
	color: var(--hswc-ink);
	background: var(--hswc-cream);
	border-radius: 50%;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease;
}

.ui-datepicker .ui-datepicker-prev {
	left: 0;
}

.ui-datepicker .ui-datepicker-next {
	right: 0;
}

.ui-datepicker .ui-datepicker-prev:hover,
.ui-datepicker .ui-datepicker-next:hover {
	background: var(--hswc-o);
	color: #fff;
}

.ui-datepicker .ui-datepicker-prev span,
.ui-datepicker .ui-datepicker-next span {
	display: inline;
	color: inherit;
}

.ui-datepicker table.ui-datepicker-calendar {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	border: none;
	background: none;
}

.ui-datepicker th {
	padding: 6px 0;
	font-size: 0.68em;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--hswc-ink-4);
	text-align: center;
	border: none;
	background: none;
}

.ui-datepicker td {
	padding: 2px;
	border: none;
	background: none;
	text-align: center;
}

.ui-datepicker td a,
.ui-datepicker td span {
	display: block;
	width: 34px;
	height: 34px;
	line-height: 34px;
	margin: 0 auto;
	border-radius: 50%;
	text-align: center;
	text-decoration: none;
	font-size: 0.88em;
	color: var(--hswc-ink);
	border: none;
	background: none;
	transition: background 0.12s ease, color 0.12s ease;
}

.ui-datepicker td a:hover {
	background: var(--hswc-o-tint);
	color: var(--hswc-o-cta);
	font-weight: 700;
}

.ui-datepicker td a.ui-state-active {
	background: var(--hswc-o);
	color: #fff;
	font-weight: 700;
}

.ui-datepicker td a.ui-state-highlight {
	box-shadow: inset 0 0 0 1px var(--hswc-o);
}

.ui-datepicker td.ui-datepicker-unselectable span,
.ui-datepicker td.ui-state-disabled span {
	color: #c8ced4;
	cursor: default;
}

.ui-datepicker td.ui-datepicker-other-month a,
.ui-datepicker td.ui-datepicker-other-month span {
	color: #c8ced4;
}

/* ---------- Diverse ---------- */

/* Skjul WooCommerce sin innebygde fraktkalkulator i handlekurven –
   postnummer-widgeten erstatter den. */
.woocommerce-cart .woocommerce-shipping-calculator,
.woocommerce-cart .shipping-calculator-button,
.woocommerce-cart .shipping-calculator-form {
	display: none !important;
}
