/* Klesskapet – butikken: produktkort, lister, filtre, produktside, kurv, kasse og favoritter. */

/* ---------- Produktkort og rutenett ---------- */
.kk-rutenett, .kk-produkter .wc-block-product-template { list-style: none; margin: 0; padding: 0; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px 18px; }
.kk-rutenett--forside { gap: 20px; }
.kk-produkter .wc-block-product-template > li { width: auto !important; margin: 0 !important; }
.kk-kort { position: relative; font-family: var(--kk-tekst); }
.kk-kort__bilde { position: relative; aspect-ratio: 4 / 5; border-radius: 18px; overflow: hidden; background: var(--kk-sand); }
.kk-rutenett--forside .kk-kort__bilde { border-radius: 22px; }
.kk-kort__bilde > a { display: block; height: 100%; }
.kk-kort__bilde img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s var(--kk-ease); }
.kk-kort:hover .kk-kort__bilde img { transform: scale(1.02); }
.kk-kort__merke { position: absolute; top: 10px; left: 10px; }
.kk-kort__hjerte { position: absolute; top: 10px; right: 10px; }
.kk-kort__brand { margin: 12px 0 2px; font: 700 11px/1.3 var(--kk-tekst); letter-spacing: .08em; text-transform: uppercase; color: var(--kk-dempet); }
.kk-kort__navn { margin: 4px 0 2px; font: 600 14px/1.3 var(--kk-tekst) !important; letter-spacing: 0; }
.kk-kort__brand + .kk-kort__navn { margin-top: 0; }
.kk-kort__navn a { color: var(--kk-mork); text-decoration: none; }
.kk-kort__navn a::after { content: ""; position: absolute; inset: 0 0 auto 0; aspect-ratio: 4 / 5; } /* hele bildet er klikkbart */
.kk-kort__str { margin: 0; font-size: 12.5px; color: var(--kk-dempet); }
.kk-kort__pris { margin: 4px 0 0; font: 700 15px var(--kk-tekst); }
.kk-kort__pris del, .kk-kort__pris ins { text-decoration: none; }
.kk-nypris { color: var(--kk-dempet); font-weight: 400; font-size: .85em; }
.kk-spart { font: 700 12px var(--kk-tekst); color: #2F5A3A; background: var(--kk-lysegronn); padding: 3px 8px; border-radius: 999px; }

/* Hjertet (TI Wishlist) */
.kk-kort__hjerte { z-index: 2; }
.kk-kort__hjerte .tinv-wishlist, .kk-kort__hjerte .tinv-wraper { margin: 0 !important; }
.kk-kort__hjerte .tinvwl_add_to_wishlist_button { display: grid !important; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.85); color: var(--kk-mork) !important; font-size: 0 !important; text-decoration: none; margin: 0 !important; }
.kk-kort__hjerte .tinvwl_add_to_wishlist_button::before { content: "♡" !important; font: 400 17px/1 system-ui, sans-serif !important; margin: 0 !important; }
.kk-kort__hjerte .tinvwl_add_to_wishlist_button.tinvwl-product-in-list::before { content: "♥" !important; color: #C2566A; }
.kk-kort__hjerte .tinvwl_add_to_wishlist-text, .kk-kort__hjerte .tinvwl-tooltip { display: none !important; }

/* ---------- Produktlister ---------- */
.kk-liste { padding-block: 24px 0; }
.kk-smuler, .kk-smuler a { font: 600 13px var(--kk-tekst); color: var(--kk-dempet); }
.kk-liste__topp { margin-block: 10px 26px; }
.kk-liste__tittel { font-size: clamp(2rem, 4.5vw, 2.875rem); margin: 0; }
.kk-arkiv-ingress { margin: 6px 0 0; color: var(--kk-dempet); }
.kk-sortering select { border: 1px solid var(--kk-kant); border-radius: 999px; padding: 8px 14px; font: 700 13px var(--kk-tekst); background: var(--kk-krem); color: var(--kk-mork); }
.kk-liste__kolonner { gap: 36px !important; }
.kk-produkter .wp-block-query-pagination { margin-top: 36px; font: 700 14px var(--kk-tekst); gap: 12px; }
.kk-produkter .wp-block-query-pagination a { color: var(--kk-mork); }
.kk-produkter .wp-block-query-pagination-next { border: 1.5px solid var(--kk-mork); border-radius: 999px; padding: 11px 22px; text-decoration: none; }
.kk-ingen-treff { background: var(--kk-sand); border-radius: 22px; padding: 36px; text-align: center; }
.kk-ingen-treff .wp-block-buttons { justify-content: center; }

/* ---------- Filtre ---------- */
.kk-filtre__apne, .kk-filtre__topp, .kk-filtre__bakgrunn, .kk-filtre__lukk { display: none; }
.kk-filtre__aktive { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 20px; }
.kk-filtre__aktive .kk-chip { text-decoration: none; }
.kk-filtre__nullstill { font: 700 13px var(--kk-tekst); color: var(--kk-brun); }
.kk-filtre__ark { display: grid; gap: 26px; }
.kk-filtre__gruppe { border: 0; margin: 0; padding: 0; display: grid; gap: 8px; }
.kk-filtre__gruppe legend { padding: 0; margin-bottom: 10px; font: 700 11px/1.3 var(--kk-tekst); letter-spacing: .1em; text-transform: uppercase; color: var(--kk-dempet); }
.kk-filtre__str { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.kk-filtre__str label { position: relative; cursor: pointer; }
.kk-filtre__str input { position: absolute; opacity: 0; pointer-events: none; }
.kk-filtre__str span { display: block; text-align: center; padding: 7px 4px; border-radius: 10px; border: 1px solid var(--kk-kant); font: 700 13px var(--kk-tekst); }
.kk-filtre__str input:checked + span { background: var(--kk-mork); border-color: var(--kk-mork); color: var(--kk-krem); }
.kk-filtre__str input:focus-visible + span { outline: 2px solid var(--kk-mork); outline-offset: 2px; }
.kk-filtre__valg { display: flex; align-items: center; gap: 10px; font: 600 14px var(--kk-tekst); cursor: pointer; }
.kk-filtre__valg small, .kk-filtre__lenke small { color: var(--kk-dempet); font-weight: 600; margin-left: auto; }
.kk-filtre__valg input { appearance: none; width: 18px; height: 18px; margin: 0; border: 1.5px solid var(--kk-kant); border-radius: 5px; background: #fff; flex: none; display: grid; place-items: center; }
.kk-filtre__valg input[type="radio"] { border-radius: 50%; }
.kk-filtre__valg input:checked { background: var(--kk-mork); border-color: var(--kk-mork); }
.kk-filtre__valg input:checked::after { content: ""; width: 8px; height: 8px; border-radius: 2px; background: var(--kk-krem); }
.kk-filtre__lenke { display: flex; font: 600 14px var(--kk-tekst); color: var(--kk-mork); text-decoration: none; padding: 2px 0; }
.kk-filtre__vis { justify-self: start; }
html.kk-js .kk-filtre__vis { display: none; }

/* ---------- Produktside ---------- */
.kk-produktside { padding-block: 24px 0; }
.kk-produktside__kolonner { gap: 56px !important; margin-top: 16px; }
.kk-kjop { display: flex; flex-direction: column; gap: 16px; }
.kk-kjop > * { margin: 0 !important; }
.kk-ps-topp { display: flex; align-items: center; gap: 10px; }
.kk-ps-topp__merke { font: 700 12px var(--kk-tekst); letter-spacing: .08em; text-transform: uppercase; color: var(--kk-dempet); }
.kk-kjop__tittel { font-size: clamp(1.9rem, 3.6vw, 2.5rem) !important; }
.kk-ps-pris { margin: 0; font: 700 24px var(--kk-tekst); display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; }
.kk-ps-str { border-top: 1px solid var(--kk-linje); padding-top: 14px; }
.kk-ps-str__rad { display: flex; justify-content: space-between; }
.kk-ps-str__rad a { font: 700 13px var(--kk-tekst); }
.kk-ps-str__verdi { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; margin-top: 8px; }
.kk-ps-str__verdi strong { display: inline-block; padding: 8px 14px; border-radius: 12px; background: var(--kk-mork); color: var(--kk-krem); font: 700 14px var(--kk-tekst); }
.kk-ps-str__verdi span { font-size: 13px; color: var(--kk-dempet); }
.kk-tilstandsboks__topp { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; font-size: 12.5px; color: var(--kk-dempet); }
.kk-tilstandsboks p { margin: 0; font-size: 14px; }
.kk-kjop__skjema form.cart { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.kk-kjop__skjema .single_add_to_cart_button { flex: 1 1 260px; border-radius: 999px !important; padding: 15px 26px !important; background: var(--kk-brun) !important; color: #fff !important; font: 700 15px var(--kk-tekst) !important; }
.kk-kjop__skjema .single_add_to_cart_button:hover { background: var(--kk-brun-mork) !important; }
.kk-kjop__skjema .quantity { display: none; }
.kk-kjop__skjema .tinv-wraper { margin: 0 !important; flex: none; }
.kk-kjop__skjema .tinvwl_add_to_wishlist_button { display: inline-flex !important; align-items: center; gap: 6px; height: 100%; min-height: 50px; border: 1.5px solid var(--kk-mork); border-radius: 999px; padding: 0 22px; color: var(--kk-mork) !important; font: 700 15px var(--kk-tekst) !important; text-decoration: none; margin: 0 !important; }
.kk-kjop__skjema .tinvwl_add_to_wishlist_button::before { content: "♡" !important; font: 400 17px/1 system-ui !important; margin: 0 !important; }
.kk-kjop__skjema .tinvwl_add_to_wishlist_button.tinvwl-product-in-list::before { content: "♥" !important; color: #C2566A; }
.kk-kjop__skjema .vipps-express-checkout, .kk-kjop__skjema .vipps-buy-now-wrapper { flex-basis: 100%; }
.kk-levering { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 14px; }
.kk-levering li { display: flex; gap: 10px; }
.kk-levering li::before { content: "✓"; color: #2F5A3A; font-weight: 700; }
.kk-trekkspill-gruppe { border-top: 1px solid var(--kk-linje); }
.kk-trekkspill { border-bottom: 1px solid var(--kk-linje); }
.kk-trekkspill summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; padding: 14px 0; font: 700 15px var(--kk-tekst); }
.kk-trekkspill summary::-webkit-details-marker { display: none; }
.kk-trekkspill summary::after { content: "+"; font-weight: 400; font-size: 20px; line-height: 1; }
.kk-trekkspill[open] summary::after { content: "–"; }
.kk-trekkspill > div { padding-bottom: 14px; font-size: 14px; color: var(--kk-mork); }
.kk-trekkspill > div p { margin: 0 0 8px; }
.kk-relaterte { margin-top: 64px; }
.kk-relaterte__tittel { margin-bottom: 22px; }

/* Galleri: fire miniatyrer (84 px) til venstre og stort bilde 4:5 */
.kk-produktside .woocommerce-product-gallery { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 14px; margin: 0 !important; width: 100% !important; float: none !important; position: relative; }
.kk-produktside .woocommerce-product-gallery .flex-viewport, .kk-produktside .woocommerce-product-gallery__wrapper { grid-column: 2; grid-row: 1; border-radius: 22px; overflow: hidden; background: var(--kk-sand); }
.kk-produktside .woocommerce-product-gallery:not(:has(.flex-control-thumbs)) { grid-template-columns: minmax(0, 1fr); }
.kk-produktside .woocommerce-product-gallery:not(:has(.flex-control-thumbs)) .woocommerce-product-gallery__wrapper { grid-column: 1; }
.kk-produktside .woocommerce-product-gallery__image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.kk-produktside .flex-control-thumbs { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 10px; margin: 0 !important; padding: 0; list-style: none; }
.kk-produktside .flex-control-thumbs li { width: 84px !important; float: none !important; margin: 0 !important; }
.kk-produktside .flex-control-thumbs img { width: 84px; height: 105px; object-fit: cover; border-radius: 12px; opacity: .6; cursor: pointer; }
.kk-produktside .flex-control-thumbs img.flex-active, .kk-produktside .flex-control-thumbs img:hover { opacity: 1; }
.kk-produktside .woocommerce-product-gallery__trigger { z-index: 3; right: 14px; top: 14px; }

/* ---------- Kurv, kasse, Mini-Cart ---------- */
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { border-radius: 999px !important; font-family: var(--kk-tekst) !important; font-weight: 700 !important; }
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, .wc-block-mini-cart__footer-checkout { background: var(--kk-brun) !important; color: #fff !important; }
.wc-block-mini-cart__footer-cart { border: 1.5px solid var(--kk-mork) !important; color: var(--kk-mork) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-blocks-components-select__select { border-radius: 12px !important; border-color: var(--kk-kant) !important; min-height: 46px; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border: 1px solid var(--kk-kant) !important; border-radius: 14px !important; background: #fff; margin-bottom: 8px !important; box-shadow: none !important; }
.wc-block-components-radio-control__option-checked, .wc-block-components-radio-control-accordion-option--checked-option-highlighted { border: 2px solid var(--kk-mork) !important; }
.wc-block-checkout .wc-block-components-checkout-step { background: var(--kk-krem); border-radius: 20px; padding: 28px !important; margin-bottom: 16px !important; }
.wc-block-checkout .wc-block-components-checkout-step__container::after { display: none; }
.wc-block-checkout .wc-block-components-checkout-step__heading { font-family: var(--kk-overskrift); }
.wc-block-checkout .wc-block-components-sidebar .wc-block-components-order-summary, .wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block { background: var(--kk-krem); border-radius: 20px !important; border: 0 !important; }
body.woocommerce-checkout, body.woocommerce-checkout .kk-header { background: var(--kk-sand); }
body.woocommerce-checkout .wp-site-blocks { background: var(--kk-sand); }
.kk-kasse-info { background: var(--kk-krem); border-radius: 18px; padding: 14px 20px; font-size: 13.5px; }
.kk-kasse-info p { margin: 0; }
.wc-block-components-product-badge, .wc-block-components-sale-badge { display: none !important; }
.wc-block-cart-items__row .wc-block-components-product-metadata { font-size: 12.5px; }
.wc-block-mini-cart__drawer .wc-block-components-drawer__content { background: var(--kk-krem); }
.wc-block-mini-cart__title { font-family: var(--kk-overskrift) !important; }
.wc-block-cart__empty-cart__title { font-family: var(--kk-overskrift); }

/* ---------- Favoritter (TI Wishlist-siden) ---------- */
.tinv-wishlist table { border: 0 !important; }
.tinv-wishlist table th { font: 700 11px var(--kk-tekst); letter-spacing: .1em; text-transform: uppercase; color: var(--kk-dempet); border: 0 !important; }
.tinv-wishlist table td { border: 0 !important; border-bottom: 1px solid var(--kk-linje) !important; }
.tinv-wishlist .product-thumbnail img { border-radius: 14px; width: 84px; aspect-ratio: 4 / 5; object-fit: cover; }
.tinv-wishlist button.button, .tinv-wishlist .button { border-radius: 999px !important; background: var(--kk-brun) !important; color: #fff !important; font: 700 13px var(--kk-tekst) !important; padding: 10px 18px !important; }
.kk-solgt { font-weight: 700; color: #7A4A3A; }
.tinv-wishlist .social-buttons { display: none; }

/* ---------- Varsler ---------- */
.wc-block-components-notice-banner { border-radius: 14px !important; font-family: var(--kk-tekst); }

/* ---------- Skjermstørrelser ---------- */
@media (max-width: 1099px) {
	.kk-rutenett, .kk-produkter .wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.kk-rutenett--forside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 899px) {
	.kk-liste__kolonner { flex-direction: column; gap: 0 !important; }
	.kk-liste__filtre { flex-basis: auto !important; }
	.kk-filtre { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 18px; }
	.kk-filtre__apne { display: inline-flex; background: var(--kk-mork); color: var(--kk-krem); border-color: var(--kk-mork); cursor: pointer; }
	.kk-filtre__aktive { margin: 0; }
	.kk-filtre__ark { position: fixed; left: 0; right: 0; bottom: 0; z-index: 100; max-height: 86vh; overflow-y: auto; background: var(--kk-krem); border-radius: 26px 26px 0 0; padding: 20px 20px 24px; box-shadow: 0 -10px 30px rgba(0,0,0,.12); transform: translateY(105%); transition: transform .3s var(--kk-ease); }
	.kk-filtre.er-apen .kk-filtre__ark { transform: none; }
	.kk-filtre__bakgrunn { display: block; position: fixed; inset: 0; z-index: 99; background: rgba(63,56,53,.35); }
	.kk-filtre__bakgrunn[hidden] { display: none; }
	.kk-filtre__topp { display: flex; align-items: center; gap: 16px; }
	.kk-filtre__topp strong { font: 600 22px var(--kk-overskrift); margin-right: auto; }
	.kk-filtre__topp a { font: 700 13px var(--kk-tekst); }
	.kk-filtre__lukk { display: block; border: 0; background: none; font-size: 28px; line-height: 1; cursor: pointer; color: var(--kk-mork); }
	.kk-filtre__str { grid-template-columns: repeat(6, 1fr); }
	html.kk-js .kk-filtre__vis, .kk-filtre__vis { display: block; width: 100%; position: sticky; bottom: 0; }
	html.kk-last { overflow: hidden; }
	.kk-produktside__kolonner { flex-direction: column; gap: 24px !important; }
	.kk-produktside__bilder { flex-basis: auto !important; }
}
@media (max-width: 699px) {
	.kk-rutenett, .kk-rutenett--forside, .kk-produkter .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
	.kk-produktside .woocommerce-product-gallery { grid-template-columns: minmax(0, 1fr); }
	.kk-produktside .woocommerce-product-gallery .flex-viewport, .kk-produktside .woocommerce-product-gallery__wrapper { grid-column: 1; }
	.kk-produktside .flex-control-thumbs { grid-column: 1; grid-row: 2; flex-direction: row; }
	.kk-produktside .flex-control-thumbs li, .kk-produktside .flex-control-thumbs img { width: 64px !important; height: 80px; }
	/* Fast kjøpslinje nederst */
	.single-product .kk-kjop__skjema form.cart { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); background: var(--kk-krem); box-shadow: 0 -6px 20px rgba(0,0,0,.08); }
	.single-product .kk-kjop__skjema .tinv-wraper { display: none; }
	.single-product .kk-footer { padding-bottom: 120px; }
}

/* ---------- Kurv- og kassesiden (maler page-cart og page-checkout) ---------- */
.kk-kurv-side, .kk-kasse { padding-block: 24px 0; }
.kk-kurv-side .kk-side__tittel { margin-bottom: 18px; }
.kk-kasse .wp-block-woocommerce-checkout { margin-top: 12px; }

/* ---------- Min side: innlogging, registrering og konto ---------- */
.kk-side .woocommerce-form-login, .kk-side .woocommerce-form-register, .kk-side .woocommerce-ResetPassword { background: var(--kk-sand); border-radius: 20px; padding: 28px; }
.kk-side #customer_login h2 { font-size: 24px; margin: 0 0 14px; }
.kk-side .woocommerce-Input, .kk-side .woocommerce-form-row input.input-text { width: 100%; box-sizing: border-box; min-height: 46px; padding: 10px 14px; border: 1px solid var(--kk-kant); border-radius: 12px; background: #fff; font: 600 15px var(--kk-tekst); color: var(--kk-mork); }
.kk-side .woocommerce-form-row label { display: block; margin-bottom: 6px; font: 700 13px var(--kk-tekst); }
.kk-side .woocommerce .button, .kk-side .woocommerce button.button { border-radius: 999px; background: var(--kk-brun); color: #fff; font: 700 15px var(--kk-tekst); padding: 14px 26px; border: 0; cursor: pointer; }
.kk-side .woocommerce .button:hover, .kk-side .woocommerce button.button:hover { background: var(--kk-brun-mork); color: #fff; }
.kk-side .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.kk-side .woocommerce-MyAccount-navigation a { display: block; padding: 9px 14px; border-radius: 12px; color: var(--kk-mork); text-decoration: none; font: 600 14px var(--kk-tekst); }
.kk-side .woocommerce-MyAccount-navigation .is-active a, .kk-side .woocommerce-MyAccount-navigation a:hover { background: var(--kk-sand); }
.kk-side .woocommerce-info, .kk-side .woocommerce-message, .kk-side .woocommerce-error { border-radius: 14px; border-top-color: var(--kk-brun); background: var(--kk-sand); }
.kk-side .tinv-wishlist .cart-empty { background: var(--kk-sand); border-radius: 14px; }
