/* plastlageret.dk — temaets design. Storefronts egen CSS er slået fra i functions.php, så dette er al CSS.
   Selektorerne er Storefronts og WooCommerces egne.
   Klasser med pl- er de få tilføjelser, temaet selv udskriver.
   Farverne kommer fra materialet og logoet: sort PE-plade, natur-plast og logoets to grønne.
   Den lyse grønne bruges kun til køb. */
:root {
  --pl-ground: #ffffff;
  --pl-natur: #f2f4f1;
  --pl-natur-deep: #e7ebe6;
  --pl-line: #dfe3df;
  --pl-field: #848e8c;
  --pl-ink: #1f2624;
  --pl-ink-soft: #535b5b;
  --pl-link: #5e7c09;
  --pl-leaf: #739b3b;
  --pl-green: #93b43c;
  --pl-green-hover: #a3c350;
  --pl-deep: #222826;
  --pl-deep-line: #3a423f;
  --pl-deep-soft: #b4bdb9;
  --pl-error: #b42318;
  --pl-error-tint: #fbf1f0;

  --pl-wrap: 80rem;
  --pl-gutter: clamp(1.25rem, 4vw, 3.5rem);
  --pl-measure: 38rem;
  --pl-radius: 6px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--pl-ground);
  color: var(--pl-ink);
  font-family: "Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.0625rem;
  line-height: 1.6;
}
.site { overflow-x: clip; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--pl-link); text-underline-offset: .2em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--pl-link); outline-offset: 3px; border-radius: 2px; }
[hidden] { display: none !important; }

h1, h2, h3 { margin: 0; font-weight: 500; letter-spacing: -.025em; text-wrap: balance; }
h1 { font-size: clamp(2.2rem, 4.6vw, 3.6rem); line-height: 1.04; letter-spacing: -.04em; }
h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.12; }
h3 { font-size: 1.2rem; line-height: 1.25; letter-spacing: -.015em; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus {
  clip: auto; width: auto; height: auto; left: 1rem; top: 1rem; z-index: 50;
  background: var(--pl-ground); padding: .5rem 1rem;
}
.col-full { max-width: var(--pl-wrap); margin: 0 auto; padding-inline: var(--pl-gutter); }

/* ---------- Knapper og felter ---------- */
.button, .wpforms-submit {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 3rem; padding: .6rem 1.25rem;
  border: 1px solid var(--pl-field); border-radius: var(--pl-radius);
  background: var(--pl-ground); color: var(--pl-ink);
  font: inherit; font-weight: 600; font-size: .98rem; line-height: 1.2;
  text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease;
}
.button:hover { border-color: var(--pl-ink); }
.button.ajax_add_to_cart, .button.alt, .wpforms-submit {
  background: var(--pl-green); border-color: var(--pl-green); color: var(--pl-ink);
}
.button.ajax_add_to_cart:hover, .button.alt:hover, .wpforms-submit:hover {
  background: var(--pl-green-hover); border-color: var(--pl-green-hover);
}
.button.disabled { opacity: .55; cursor: not-allowed; }
.added_to_cart { font-size: .92rem; white-space: nowrap; }

input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="search"], select, textarea {
  min-height: 3rem; padding: .55rem .85rem;
  border: 1px solid var(--pl-field); border-radius: var(--pl-radius);
  background: var(--pl-ground); color: var(--pl-ink); font: inherit;
}
textarea { min-height: 7rem; resize: vertical; }
/* Dropdowns får samme pil overalt, med luft til kanten. Browserens egen pil sidder helt ude i hjørnet. */
select {
  -webkit-appearance: none; appearance: none; padding-right: 2.75rem; cursor: pointer;
  background: var(--pl-ground) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23535b5b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right .9rem center / 1rem;
}
input[type="checkbox"], input[type="radio"] { width: 1.1rem; height: 1.1rem; margin: 0; accent-color: var(--pl-link); }
.quantity .qty { width: 5rem; text-align: center; }

/* ---------- Top ---------- */
.pl-topbar { background: var(--pl-deep); color: var(--pl-deep-soft); font-size: .92rem; }
.pl-topbar .col-full { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .1rem 2rem; padding-block: .55rem; }
.pl-topbar-contact { display: flex; gap: 1.75rem; }
.pl-topbar a { color: #fff; text-decoration: none; font-weight: 500; white-space: nowrap; }
.pl-topbar a:hover { text-decoration: underline; text-decoration-color: var(--pl-green); text-decoration-thickness: 2px; text-underline-offset: .3em; }
.site-header > .col-full {
  display: grid; grid-template-columns: auto minmax(10rem, 1fr) auto;
  align-items: center; gap: 1rem clamp(1.5rem, 4vw, 4rem); padding-block: 1.5rem 1.1rem;
}
.site-branding img { width: 220px; }
.woocommerce-product-search { display: flex; max-width: 40rem; }
.woocommerce-product-search .search-field {
  flex: 1; min-width: 0; border-right: 0; border-radius: var(--pl-radius) 0 0 var(--pl-radius);
  background: var(--pl-natur);
}
.woocommerce-product-search button {
  border: 1px solid var(--pl-field); border-left: 0; border-radius: 0 var(--pl-radius) var(--pl-radius) 0;
  background: var(--pl-natur); color: var(--pl-ink);
  padding: 0 1.1rem; font: inherit; font-weight: 600; cursor: pointer;
}
.woocommerce-product-search button:hover { background: var(--pl-natur-deep); }
/* Feltet og knappen er én ting, så fokusrammen går rundt om dem begge. */
.woocommerce-product-search :focus-visible { outline: none; }
.woocommerce-product-search:focus-within { outline: 2px solid var(--pl-link); outline-offset: 2px; border-radius: var(--pl-radius); }
/* Browserens eget ryd-kryds i søgefeltet får tekstfarven i stedet for systemets blå. */
.woocommerce-product-search .search-field::-webkit-search-cancel-button {
  -webkit-appearance: none; appearance: none; width: .85rem; height: .85rem; margin-left: .5rem; cursor: pointer;
  background: var(--pl-ink-soft);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 3l10 10M13 3 3 13' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 3l10 10M13 3 3 13' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce-product-search .search-field::-webkit-search-cancel-button:hover { background: var(--pl-ink); }
.site-header-cart { list-style: none; margin: 0; padding: 0; }
.cart-contents {
  display: flex; align-items: baseline; gap: .6rem; min-height: 3rem; padding: .7rem 1.1rem;
  border-radius: var(--pl-radius); background: var(--pl-deep); color: #fff;
  text-decoration: none; white-space: nowrap;
}
.cart-contents:hover { background: #000; }
.cart-contents .amount { font-weight: 600; }
.cart-contents .count { color: var(--pl-deep-soft); font-size: .9rem; }

/* ---------- Menu ---------- */
.storefront-primary-navigation { border-bottom: 1px solid var(--pl-line); }
.main-navigation ul { list-style: none; margin: 0; padding: 0; }
.menu-toggle, .pl-menu-toggle { display: none; }
.primary-navigation > ul { display: flex; flex-wrap: wrap; gap: 0 2.1rem; }
.primary-navigation > ul > li { position: relative; }
.primary-navigation a {
  display: block; padding: .7rem 0 1rem; color: var(--pl-ink);
  text-decoration: none; font-weight: 500;
}
.primary-navigation a:hover {
  text-decoration: underline; text-decoration-color: var(--pl-green);
  text-decoration-thickness: 2px; text-underline-offset: .45em;
}
.primary-navigation .sub-menu {
  display: none; position: absolute; z-index: 20; top: 100%; left: -1.25rem; min-width: 18rem;
  background: var(--pl-ground); border: 1px solid var(--pl-line); border-radius: var(--pl-radius); padding: .6rem 0;
}
.primary-navigation li:hover > .sub-menu, .primary-navigation li:focus-within > .sub-menu { display: block; }
.primary-navigation .sub-menu a { padding: .45rem 1.25rem; font-weight: 400; }

/* ---------- Brødkrumme og indhold ---------- */
.storefront-breadcrumb { padding-top: 1.5rem; font-size: .92rem; color: var(--pl-ink-soft); }
.woocommerce-breadcrumb a { color: inherit; }
.site-content { padding-block: clamp(1.75rem, 3.5vw, 3rem) clamp(4rem, 9vw, 8rem); }
.page-description, .term-description { max-width: var(--pl-measure); }
.woocommerce-products-header .page-description,
.woocommerce-products-header .term-description {
  margin-top: 1.5rem; font-size: clamp(1.1rem, 1.5vw, 1.25rem); line-height: 1.5; color: var(--pl-ink-soft);
}
.entry-header { margin-bottom: 2.5rem; }

/* Kategorisidens top: en naturflade i fuld bredde bag brødkrumme, titel og indledning. Søgeresultater har samme top. */
:is(.tax-product_cat, .search) .storefront-breadcrumb { background: var(--pl-natur); }
:is(.tax-product_cat, .search) .site-content { padding-top: 0; }
.pl-search-count { margin: .75rem 0 0; font-size: clamp(1.1rem, 1.5vw, 1.25rem); color: var(--pl-ink-soft); }
:is(.tax-product_cat, .search) .woocommerce-products-header {
  padding-block: clamp(1.75rem, 4vw, 3rem) clamp(2.5rem, 5vw, 4rem);
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
  background: var(--pl-natur);
  box-shadow: 0 0 0 100vmax var(--pl-natur);
  clip-path: inset(0 -100vmax);
}
.pl-after-loop { margin-top: clamp(3rem, 7vw, 6rem); }
.pl-after-loop.term-description { padding-top: 2rem; border-top: 1px solid var(--pl-line); }

/* Almindelige sider (Om os, Betingelser): samme lyse top som kategorierne. */
/* Kurv, kasse og Min konto har Storefronts sidetop. Den får den samme lyse flade. */
:is(.pl-page, .woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .storefront-breadcrumb { background: var(--pl-natur); }
:is(.pl-page, .woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-content { padding-top: 0; }
.pl-page-header, :is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-header {
  padding-block: clamp(1.75rem, 4vw, 3rem) clamp(2.5rem, 5vw, 4rem);
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
  background: var(--pl-natur);
  box-shadow: 0 0 0 100vmax var(--pl-natur);
  clip-path: inset(0 -100vmax);
}
.error404 .pl-page-header .widget_product_search { max-width: 34rem; margin-top: 1.75rem; }
.pl-page-lead { max-width: var(--pl-measure); margin-top: 1.5rem; font-size: clamp(1.1rem, 1.5vw, 1.25rem); line-height: 1.5; color: var(--pl-ink-soft); }
/* Teksten står i en læsevenlig kolonne. Gammel formatering fra editoren (centrering, indrykning) ignoreres. */
.pl-page .entry-content { display: grid; align-items: start; }
.pl-page .entry-content > * { max-width: var(--pl-measure); }
.pl-page .entry-content [style] { padding-left: 0 !important; text-align: inherit !important; }
.pl-page .entry-content > h2, .pl-page .entry-content > h3 { margin: 2.25rem 0 .75rem; }
.pl-page .entry-content > :first-child { margin-top: 0; }
.pl-page .entry-content hr { width: 100%; border: 0; border-top: 1px solid var(--pl-line); margin: 2rem 0; }
/* Boksen med firmaoplysninger: en gruppe-blok med CSS-klassen pl-facts. */
.pl-facts {
  margin-top: 2.5rem; padding: clamp(1.25rem, 3vw, 1.75rem);
  border-radius: var(--pl-radius); background: var(--pl-natur); font-size: .98rem;
}
.pl-facts h2 { margin: 0 0 1rem; font-size: 1.1rem; font-weight: 600; letter-spacing: -.01em; }
.pl-facts p { margin: 0; }
.pl-facts p + p { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--pl-line); }

/* ---------- Forsidens top: en naturflade i fuld bredde med overskrift og en stak plader ---------- */
.home .site-content { padding-top: 0; }
.home .woocommerce-products-header {
  display: grid; align-items: center; gap: 2.5rem;
  padding-block: clamp(3rem, 7vw, 6.5rem);
  margin-bottom: clamp(3rem, 6vw, 5.5rem);
  background: var(--pl-natur);
  box-shadow: 0 0 0 100vmax var(--pl-natur);
  clip-path: inset(0 -100vmax);
}
.home .woocommerce-products-header h1 {
  font-size: clamp(2.7rem, 6.2vw, 5.2rem); line-height: .98; letter-spacing: -.05em;
}
.home .woocommerce-products-header .page-description { max-width: 33rem; margin-top: 1.75rem; }
.pl-hero-actions { margin-top: 2.25rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; }
.pl-hero-actions .button { min-height: 3.5rem; padding-inline: 1.75rem; font-size: 1.05rem; }
.pl-hero-phone {
  color: var(--pl-ink); font-weight: 600; font-size: 1.1rem; white-space: nowrap;
  text-decoration-color: var(--pl-green); text-decoration-thickness: 2px; text-underline-offset: .3em;
}
/* Billedet i hero'en. Fotoets hvide baggrund blandes væk i den lyse flade, som på produktkortene. */
.pl-hero-media { margin: 0; justify-self: center; width: min(100%, 22rem); }
.pl-hero-media :is(img, svg) { display: block; width: 100%; height: auto; overflow: visible; }
.pl-hero-media img { mix-blend-mode: multiply; }
.pl-plate { animation: pl-stack .7s cubic-bezier(.2, .7, .2, 1) both; }
.pl-plate-2 { animation-delay: .12s; }
.pl-plate-3 { animation-delay: .24s; }
.pl-plate-shadow { animation: pl-shadow .7s ease both; }
@keyframes pl-stack { from { transform: translateY(-70px); opacity: 0; } }
@keyframes pl-shadow { from { opacity: 0; } }

/* ---------- Gitter: hver vare ligger på en naturflade, og fotoet blandes ind i den ---------- */
.pl-section-title { margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
ul.products {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem;
}
ul.products li.product {
  display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; min-width: 0;
  padding: .75rem .75rem 1rem; border-radius: var(--pl-radius);
  background: var(--pl-natur); isolation: isolate;
  transition: background-color .15s ease;
}
ul.products li.product:hover { background: var(--pl-natur-deep); }
ul.products li.product > a:first-child {
  display: flex; flex-direction: column; gap: .35rem; width: 100%; flex: 1;
  position: relative; color: var(--pl-ink); text-decoration: none;
}
ul.products li.product img {
  width: 100%; aspect-ratio: 1; object-fit: contain; margin-bottom: .65rem;
  border-radius: 3px; mix-blend-mode: multiply;
}
.woocommerce-loop-product__title, .woocommerce-loop-category__title {
  font-size: 1.06rem; font-weight: 600; line-height: 1.3; letter-spacing: -.01em; text-wrap: pretty;
}
.pl-cat-thumb { display: block; }
.pl-cat-count { color: var(--pl-ink-soft); font-size: .92rem; white-space: nowrap; }
ul.products li.product .button { background-color: var(--pl-ground); }
ul.products li.product .button.ajax_add_to_cart { background-color: var(--pl-green); }
ul.products li.product .button.ajax_add_to_cart:hover { background-color: var(--pl-green-hover); }

/* Forsidens sortiment er et indeks: stort navn, antal varer og et lille foto.
   Hvert foto ligger på samme lyse felt, så fritlagte billeder og fotos med baggrund står ens. */
:is(.home, .pl-range) ul.products { display: block; border-top: 2px solid var(--pl-ink); }
:is(.home, .pl-range) ul.products li.product-category {
  display: block; padding: 0; border-radius: 0; background: none;
  border-bottom: 1px solid var(--pl-line); break-inside: avoid;
  transition: background-color .15s ease;
}
:is(.home, .pl-range) ul.products li.product-category:hover { background: var(--pl-natur); }
:is(.home, .pl-range) ul.products li.product-category > a:first-child {
  flex-direction: row; align-items: center; gap: 1.1rem; padding: .65rem 1rem .65rem .75rem;
}
:is(.home, .pl-range) .pl-cat-thumb {
  flex: none; width: 4.25rem; aspect-ratio: 1; padding: .3rem;
  border-radius: var(--pl-radius); background: var(--pl-natur); isolation: isolate;
  transition: background-color .15s ease;
}
:is(.home, .pl-range) ul.products li.product-category .pl-cat-thumb img {
  width: 100%; height: 100%; margin: 0; object-fit: contain; border-radius: 3px; mix-blend-mode: multiply;
}
:is(.home, .pl-range) ul.products li.product-category:hover .pl-cat-thumb { background: var(--pl-natur-deep); }
:is(.home, .pl-range) .woocommerce-loop-category__title {
  flex: 1; font-size: clamp(1.2rem, 1.9vw, 1.55rem); font-weight: 500; letter-spacing: -.025em;
}
:is(.home, .pl-range) ul.products li.product-category:hover .woocommerce-loop-category__title {
  text-decoration: underline; text-decoration-color: var(--pl-green); text-decoration-thickness: 2px; text-underline-offset: .3em;
}

.price { font-weight: 600; color: var(--pl-ink); }
.price del { color: var(--pl-ink-soft); font-weight: 400; margin-right: .4em; }
.price ins { text-decoration: none; }
.woocommerce-price-suffix { color: var(--pl-ink-soft); font-weight: 400; font-size: .85em; white-space: nowrap; }
.pl-on-request { color: var(--pl-ink-soft); font-weight: 400; }
.onsale {
  position: absolute; top: 0; left: 0; z-index: 1;
  background: var(--pl-deep); color: #fff; font-size: .8rem; font-weight: 600;
  padding: .2rem .55rem; border-radius: 3px;
}

/* ---------- Liste (kategorier hvor man vælger et mål) ---------- */
.pl-list-head { display: none; }
ul.products.pl-list-rows { display: block; border-top: 2px solid var(--pl-ink); }
ul.products.pl-list-rows > li.product {
  display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .4rem 1rem;
  padding: 1.1rem 0; border-radius: 0; background: none; border-bottom: 1px solid var(--pl-line);
}
ul.products.pl-list-rows > li.product:hover { background: none; }
ul.products.pl-list-rows > li.product > a:first-child { grid-column: 1 / -1; }
ul.products.pl-list-rows .woocommerce-loop-product__title { font-size: 1.1rem; }
ul.products.pl-list-rows a:hover .woocommerce-loop-product__title {
  text-decoration: underline; text-decoration-color: var(--pl-green);
  text-decoration-thickness: 2px; text-underline-offset: .25em;
}
.pl-specs {
  grid-column: 1 / -1; margin: 0; display: flex; flex-wrap: wrap; gap: .1rem 1.25rem;
  font-size: .95rem; color: var(--pl-ink-soft);
}
.pl-spec { display: flex; gap: .35rem; }
.pl-spec dt::after { content: ":"; }
.pl-spec dd { margin: 0; }
.pl-list .price { font-size: 1.1rem; }
.pl-row-action { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .5rem; }
ul.products.pl-list-rows .quantity .qty { width: 4.5rem; }

/* ---------- Produktside ---------- */
.single-product div.product { position: relative; display: grid; gap: 2.5rem; }
.woocommerce-product-gallery {
  padding: clamp(1rem, 3vw, 2.5rem); border-radius: var(--pl-radius);
  background: var(--pl-natur); isolation: isolate;
}
.woocommerce-product-gallery img { width: 100%; border-radius: 3px; }
/* Fotoets hvide baggrund blandes væk i den lyse flade. Det sker på billedets ramme, ikke på selve billedet:
   zoomen lægger et forstørret billede oven på originalen, og med multiply på hvert billede så man dem begge. */
.woocommerce-product-gallery__image, .flex-control-thumbs img { mix-blend-mode: multiply; }
/* WooCommerces galleri: skyder, miniaturer, zoom og fuld skærm. Kun udseendet ændres. */
.woocommerce-product-gallery { position: relative; }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__trigger {
  position: absolute; top: 1rem; right: 1rem; z-index: 5;
  display: grid; place-items: center; width: 2.75rem; height: 2.75rem;
  border: 1px solid var(--pl-line); border-radius: 50%; background: var(--pl-ground);
  transition: border-color .15s ease;
}
.woocommerce-product-gallery__trigger:hover { border-color: var(--pl-ink); }
.woocommerce-product-gallery__trigger > span { display: none; } /* WooCommerces 🔍-emoji */
.woocommerce-product-gallery__trigger::before {
  content: ""; width: 1.1rem; height: 1.1rem; background: var(--pl-ink);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='8.5' cy='8.5' r='6' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='m13 13 5 5' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='8.5' cy='8.5' r='6' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='m13 13 5 5' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
ol.flex-control-thumbs {
  list-style: none; margin: 1rem 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem;
}
.flex-control-thumbs li { min-width: 0; }
.flex-control-thumbs img {
  aspect-ratio: 1; object-fit: cover; cursor: pointer; opacity: .55; transition: opacity .15s ease;
}
.flex-control-thumbs img:hover { opacity: 1; }
.flex-control-thumbs img.flex-active { opacity: 1; outline: 2px solid var(--pl-ink); outline-offset: 2px; }
.single-product div.product > .onsale { top: 1rem; left: 1rem; }
.summary p.price { font-size: clamp(1.6rem, 2.4vw, 2rem); letter-spacing: -.02em; margin: 1.1rem 0 1.5rem; }
.woocommerce-product-details__short-description { max-width: var(--pl-measure); margin-bottom: 2rem; color: var(--pl-ink-soft); }
form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-bottom: 2rem; }
form.cart .quantity .qty, form.cart .single_add_to_cart_button { min-height: 3.5rem; }
form.cart .quantity .qty { width: 5.5rem; font-size: 1.1rem; }
form.cart .single_add_to_cart_button { flex: 1; max-width: 20rem; font-size: 1.05rem; }
table.variations { flex-basis: 100%; border-collapse: collapse; }
table.variations th { text-align: left; font-weight: 600; padding: 0 1rem .75rem 0; }
table.variations td { padding: 0 0 .75rem; }
table.variations select { min-width: 12rem; vertical-align: middle; }
/* "Ryd" vises, når en størrelse er valgt. Den står som et lille link med luft til feltet. */
table.variations .reset_variations { margin-left: 1rem; font-size: .92rem; color: var(--pl-ink-soft); vertical-align: middle; }
/* Variantens pris og lager står over antal og knap, ikke foran dem på samme linje. */
.single_variation_wrap { display: flex; flex: 1 1 100%; flex-direction: column; gap: .75rem; }
.woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.product_meta {
  display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; padding-top: 1.25rem;
  border-top: 1px solid var(--pl-line); font-size: .92rem; color: var(--pl-ink-soft);
}
.product_meta a { color: inherit; }
.pl-product-details { display: grid; gap: 2.5rem; padding-top: clamp(1rem, 3vw, 2.5rem); }
.pl-product-details h2 { margin-bottom: 1.1rem; }
.pl-product-details h3 { margin: 1.75rem 0 .5rem; }
.pl-product-details ul { margin: 0 0 1em; padding-left: 1.2rem; }
.pl-description { max-width: var(--pl-measure); }
.shop_attributes { width: 100%; border-collapse: collapse; border-top: 2px solid var(--pl-ink); }
.shop_attributes th, .shop_attributes td { padding: .7rem 0; border-bottom: 1px solid var(--pl-line); text-align: left; }
.shop_attributes th { width: 42%; padding-right: 1.5rem; font-weight: 400; color: var(--pl-ink-soft); }
.shop_attributes td { font-weight: 500; }
.related { padding-top: clamp(1.5rem, 4vw, 3rem); }
.related > h2 { margin-bottom: 1.5rem; }

/* ---------- Forespørgsel (WPForms) ---------- */
.wpforms-container { margin-top: 1.75rem; padding: clamp(1.25rem, 3vw, 2rem); background: var(--pl-natur); border-radius: var(--pl-radius); color: var(--pl-ink); }
.wpforms-field-container { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1.1rem 1rem; }
.wpforms-field { grid-column: 1 / -1; display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.wpforms-field.wpforms-one-third { grid-column: span 2; }
.wpforms-field.wpforms-one-half { grid-column: span 3; }
.wpforms-field-label { font-weight: 600; font-size: .95rem; }
.wpforms-required-label { color: var(--pl-ink-soft); font-weight: 400; }
.wpforms-field input, .wpforms-field select, .wpforms-field textarea { width: 100%; }
.wpforms-submit-container { margin-top: 1.5rem; }
.wpforms-submit { min-height: 3.5rem; padding-inline: 1.75rem; font-size: 1.05rem; }
.pl-form-note { margin: 1rem 0 0; padding: .8rem 1rem; background: var(--pl-ground); border-radius: var(--pl-radius); }
.pl-or-call { margin: 1.5rem 0 0; font-size: .98rem; color: var(--pl-ink-soft); }
.pl-or-call a { color: var(--pl-ink); font-weight: 600; }

/* ---------- Beskeder ---------- */
.woocommerce-message, .woocommerce-info {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem;
  padding: 1rem 1.25rem; margin-block: 1.5rem; background: var(--pl-natur); border-radius: var(--pl-radius);
}

/* ---------- Kurv ---------- */
/* Varerne er en liste, ikke et regneark: billede, navn med stykpris, antal, linjepris og et kryds.
   Tabellens overskrifter skjules, og hver række er et gitter. */
table.shop_table { width: 100%; border-collapse: collapse; }
table.cart, table.cart tbody { display: block; }
table.cart thead { display: none; }
table.cart tbody { border-top: 2px solid var(--pl-ink); }
table.cart tr.cart_item {
  display: grid; align-items: center; gap: .2rem 1rem;
  grid-template-columns: 4.5rem minmax(0, 1fr) auto;
  grid-template-areas: "thumb name remove" "thumb price price" "thumb qty total";
  padding: 1.25rem 0; border-bottom: 1px solid var(--pl-line);
}
table.cart td { display: block; padding: 0; }
table.cart td.product-thumbnail { grid-area: thumb; align-self: start; }
table.cart .product-thumbnail a { display: block; background: var(--pl-natur); border-radius: var(--pl-radius); isolation: isolate; }
table.cart .product-thumbnail img { width: 100%; aspect-ratio: 1; object-fit: contain; mix-blend-mode: multiply; border-radius: var(--pl-radius); }
table.cart td.product-name { grid-area: name; align-self: end; font-weight: 600; font-size: 1.05rem; line-height: 1.3; }
table.cart .product-name a { color: var(--pl-ink); text-decoration: none; }
table.cart .product-name a:hover { text-decoration: underline; }
table.cart .product-name .variation { margin: .2rem 0 0; font-weight: 400; font-size: .92rem; color: var(--pl-ink-soft); }
table.cart .product-name .variation dt, table.cart .product-name .variation dd { display: inline; margin: 0; }
table.cart td.product-price { grid-area: price; align-self: start; font-size: .92rem; color: var(--pl-ink-soft); }
table.cart td.product-price::after { content: " pr. stk."; }
table.cart td.product-quantity { grid-area: qty; margin-top: .6rem; }
table.cart td.product-subtotal { grid-area: total; margin-top: .6rem; text-align: right; font-weight: 600; white-space: nowrap; }
table.cart td.product-remove { grid-area: remove; justify-self: end; align-self: start; }
/* "Opdatér kurv" er unødvendig: kurven opdaterer sig selv (theme.js). Rækken skjules, når der ikke er et rabatkodefelt. */
table.cart tr:has(> td.actions):not(:has(.coupon)) { display: none; }
table.cart td.actions [name="update_cart"] { display: none; }
.product-remove a {
  display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem;
  color: var(--pl-ink-soft); text-decoration: none; font-size: 1.5rem; line-height: 1; border-radius: 50%;
}
.product-remove a:hover { background: var(--pl-natur); color: var(--pl-ink); }
/* Antal med − og +: ét felt, hvor knapperne sidder inden for kanten. */
.woocommerce-cart-form .quantity {
  display: inline-flex; align-items: stretch; height: 2.75rem; overflow: hidden;
  border: 1px solid var(--pl-field); border-radius: var(--pl-radius); background: var(--pl-ground);
}
.woocommerce-cart-form .quantity:has(:focus-visible) { outline: 2px solid var(--pl-link); outline-offset: 2px; }
.woocommerce-cart-form .quantity .qty {
  width: 2.75rem; min-height: 0; padding: 0; border: 0; border-radius: 0;
  text-align: center; font-weight: 600; -moz-appearance: textfield; appearance: textfield;
}
.woocommerce-cart-form .quantity .qty::-webkit-inner-spin-button,
.woocommerce-cart-form .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce-cart-form .quantity :focus-visible { outline: none; }
.pl-qty-step {
  width: 2.25rem; padding: 0; border: 0; background: none; cursor: pointer;
  color: var(--pl-ink); font: inherit; font-size: 1.25rem; line-height: 1;
}
.pl-qty-step:hover, .pl-qty-step:focus-visible { background: var(--pl-natur); }
.cart-collaterals { display: flex; justify-content: flex-end; margin-top: 3rem; }
.cart_totals { width: min(100%, 26rem); padding: clamp(1.25rem, 3vw, 2rem); background: var(--pl-natur); border-radius: var(--pl-radius); }
.cart_totals h2 { margin-bottom: 1rem; font-size: clamp(1.35rem, 2vw, 1.6rem); }
.cart_totals table, .cart_totals tbody { display: block; }
.cart_totals tr { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; border-bottom: 1px solid var(--pl-line); }
.cart_totals tr.order-total { border-bottom: 0; }
.cart_totals th, .cart_totals td { padding: .65rem 0; border-bottom: 0; }
.cart_totals .woocommerce-shipping-destination { margin: .2rem 0 0; font-size: .85rem; line-height: 1.4; color: var(--pl-ink-soft); }
.cart_totals th { text-align: left; font-weight: 400; color: var(--pl-ink-soft); }
.cart_totals td { text-align: right; }
.cart_totals .order-total th, .cart_totals .order-total td { border-bottom: 0; color: var(--pl-ink); font-weight: 600; font-size: 1.25rem; }
.wc-proceed-to-checkout { margin-top: 1.25rem; }
.checkout-button { width: 100%; min-height: 3.5rem; font-size: 1.05rem; }
/* Tom kurv: en rolig linje og sortimentet under, ikke endnu en lys boks.
   Fjerner man den sidste vare uden at genindlæse, flytter WooCommerce linjen op til beskederne, så reglen gælder begge steder. */
/* Hierarki: "Kurv" er titlen, "Din kurv er tom." er overskriften, og indekset har kun en kort linje over sig. */
.cart-empty.woocommerce-info {
  display: block; padding: 0; margin: 0; background: none; color: var(--pl-ink);
  font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 500; line-height: 1.12; letter-spacing: -.025em;
}
.woocommerce-cart .pl-range { margin-top: .75rem; }
.pl-range-intro { margin: 0 0 clamp(1.75rem, 3vw, 2.5rem); font-size: clamp(1.1rem, 1.5vw, 1.25rem); color: var(--pl-ink-soft); }
.return-to-shop { margin-top: 1.5rem; }
.pl-range ~ .return-to-shop { display: none; }
/* Redigér-linket under siden ses kun af administratorer. */
.edit-link { display: block; margin-top: 3rem; font-size: .85rem; }
.pl-continue { margin: 1.25rem 0 0; font-size: .98rem; }
/* Efter et køb har beskeden "lagt i kurven" sin egen knap tilbage. Så er linket under varerne overflødigt. */
.woocommerce:has(.woocommerce-message .wc-forward) .pl-continue { display: none; }

/* ---------- Felter i WooCommerces formularer (kasse, Min konto) ---------- */
.woocommerce form .form-row { margin: 0 0 1rem; }
.woocommerce form .form-row label { display: block; margin-bottom: .3rem; font-size: .95rem; font-weight: 500; }
.woocommerce form .form-row .input-text, .woocommerce form .form-row select { width: 100%; }
.woocommerce .required { color: var(--pl-ink-soft); text-decoration: none; border: 0; }
.woocommerce .optional { color: var(--pl-ink-soft); font-weight: 400; }
/* Afkrydsningsfelter: feltet står ud for første linje, og teksten (med en eventuel stjerne) flyder ved siden af. */
.woocommerce form .form-row label.checkbox,
.woocommerce form label.woocommerce-form__label-for-checkbox {
  position: relative; display: block; margin: 0; padding-left: 1.75rem; font-size: 1rem; font-weight: 400; cursor: pointer;
}
.woocommerce :is(label.checkbox, .woocommerce-form__label-for-checkbox) input { position: absolute; left: 0; top: .3rem; }
.woocommerce-invalid :is(.input-text, select, .select2-selection) { border-color: var(--pl-error) !important; }
.checkout-inline-error-message { margin: .3rem 0 0; font-size: .88rem; color: var(--pl-error); }
.woocommerce-error {
  list-style: none; margin: 1.5rem 0; padding: 1rem 1.25rem;
  border-left: 3px solid var(--pl-error); border-radius: var(--pl-radius); background: var(--pl-error-tint);
}
.woocommerce-error li + li { margin-top: .35rem; }
.woocommerce-error a { color: var(--pl-ink); }
/* WooCommerce flytter fokus til beskeden, så skærmlæsere læser den op. Den skal ikke have en fokusramme. */
[tabindex="-1"]:focus { outline: none; }

/* Landevælgeren er WooCommerces select2. Den får samme højde og kant som de andre felter. */
.select2-container--default .select2-selection--single {
  height: 3rem; border: 1px solid var(--pl-field); border-radius: var(--pl-radius); background: var(--pl-ground);
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0 2.5rem 0 .85rem; line-height: calc(3rem - 2px); color: var(--pl-ink);
}
.select2-container--default .select2-selection--single .select2-selection__arrow { height: calc(3rem - 2px); right: .5rem; }
.select2-container--default.select2-container--open .select2-selection--single { border-color: var(--pl-ink); }
.select2-dropdown { border-color: var(--pl-field); border-radius: var(--pl-radius); font-size: 1rem; }
.select2-search--dropdown .select2-search__field { min-height: 2.5rem; padding: .35rem .6rem; border-radius: 4px; }
.select2-container--default .select2-results__option--highlighted:is([aria-selected], [data-selected]) {
  background: var(--pl-natur-deep); color: var(--pl-ink);
}

/* ---------- Kasse ---------- */
/* Felterne står i et gitter med seks kolonner: fornavn og efternavn deler en række, postnummer og by ligeså. */
.woocommerce-billing-fields > h3, #order_review_heading, .woocommerce-additional-fields > h3 {
  margin-bottom: 1.25rem; font-size: clamp(1.35rem, 2vw, 1.6rem);
}
:is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) {
  display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem .9rem;
}
.woocommerce form :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) > .form-row { grid-column: 1 / -1; margin: 0; }
.woocommerce form :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) > :is(.form-row-first, .form-row-last) { grid-column: span 3; }
.woocommerce form :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) > [id$="_postcode_field"] { grid-column: span 2; }
.woocommerce form :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) > [id$="_city_field"] { grid-column: span 4; }
/* Adresselinje 2 har ingen synlig label, så den rykker op under adresselinje 1. */
[id$="_address_2_field"] { margin-top: -.5rem !important; }
#ship-to-different-address { margin: 2rem 0 1.25rem; font-size: 1.05rem; font-weight: 500; letter-spacing: 0; }
.woocommerce-additional-fields { margin-top: 2rem; }

/* Kassen, når kurven har en fejl (fx under minimumsbeløbet): årsagen først, så forklaringen og en tydelig knap tilbage. */
.woocommerce-checkout .woocommerce:has(> p > .wc-backward) { display: flex; flex-direction: column; align-items: flex-start; max-width: var(--pl-measure); }
.woocommerce-checkout .woocommerce:has(> p > .wc-backward) > .woocommerce-notices-wrapper:not(:empty) { order: -1; align-self: stretch; }
.woocommerce-checkout .woocommerce:has(> p > .wc-backward) .woocommerce-error { margin-top: 0; }
.woocommerce-checkout .woocommerce:has(> p > .wc-backward) > p:first-of-type { color: var(--pl-ink-soft); }
.woocommerce-checkout .woocommerce:has(> p > .wc-backward) .wc-backward { background: var(--pl-deep); border-color: var(--pl-deep); color: #fff; }
.woocommerce-checkout .woocommerce:has(> p > .wc-backward) .wc-backward:hover { background: var(--pl-deep-line); border-color: var(--pl-deep-line); }

/* Ordreoversigten: varer, fragt, moms, betaling og knappen i én lys boks. */
.pl-order-summary { margin-top: 3rem; padding: clamp(1.25rem, 3vw, 2rem); background: var(--pl-natur); border-radius: var(--pl-radius); }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td {
  padding: .65rem 0; border-bottom: 1px solid var(--pl-line); text-align: left; vertical-align: top;
}
.woocommerce-checkout-review-order-table thead th { padding-top: 0; font-size: .92rem; font-weight: 400; color: var(--pl-ink-soft); }
.woocommerce-checkout-review-order-table .product-name { padding-right: 1rem; }
.woocommerce-checkout-review-order-table .product-quantity { font-weight: 400; color: var(--pl-ink-soft); white-space: nowrap; }
.woocommerce-checkout-review-order-table :is(.product-total, tfoot td) { text-align: right; white-space: nowrap; }
.woocommerce-checkout-review-order-table tfoot th { font-weight: 400; color: var(--pl-ink-soft); }
.woocommerce-checkout-review-order-table .order-total :is(th, td) { border-bottom: 0; padding-top: .9rem; color: var(--pl-ink); font-weight: 600; font-size: 1.25rem; }
/* Hver række har sine egne bredder. Som tabel delte rækkerne kolonner, så et langt varenavn fik fragtlinjen til at bryde. */
.woocommerce-checkout-review-order-table :is(thead, tbody, tfoot) { display: block; }
.woocommerce-checkout-review-order-table tr { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; border-bottom: 1px solid var(--pl-line); }
.woocommerce-checkout-review-order-table :is(th, td) { border-bottom: 0; }
.woocommerce-checkout-review-order-table tr.order-total { border-bottom: 0; }
.woocommerce-checkout-review-order-table .product-name { padding-right: 0; }
/* Fragt i kurv og kasse. Én metode står som en linje: "Fragtmand  395,00 kr.".
   Flere metoder (fx GLS fra Shipmondo) står som valgkort under overskriften, med navn til venstre og pris til højre. */
:is(.cart_totals, .woocommerce-checkout-review-order-table) tr.woocommerce-shipping-totals:has(input[type="radio"]) { flex-wrap: wrap; row-gap: 0; }
:is(.cart_totals, .woocommerce-checkout-review-order-table) tr.woocommerce-shipping-totals:has(input[type="radio"]) > :is(th, td) { flex-basis: 100%; text-align: left; }
:is(.cart_totals, .woocommerce-checkout-review-order-table) tr.woocommerce-shipping-totals:has(input[type="radio"]) > th { padding-bottom: .25rem; }
.woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; white-space: normal; }
.woocommerce-shipping-methods li { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: .6rem; align-items: baseline; }
.woocommerce-shipping-methods li > :not(input) { grid-column: 2; }
.woocommerce-shipping-methods li > br { display: none; }
.woocommerce-shipping-methods li:not(:has(> input[type="radio"])) { grid-template-columns: minmax(0, 1fr); }
.woocommerce-shipping-methods li:not(:has(> input[type="radio"])) > * { grid-column: 1; }
.woocommerce-shipping-methods li:has(> input[type="radio"]) {
  padding: .65rem .8rem; background: var(--pl-ground); border: 1px solid var(--pl-line); border-radius: var(--pl-radius);
}
.woocommerce-shipping-methods li:has(> input:checked) { border-color: var(--pl-ink); }
.woocommerce-shipping-methods li + li { margin-top: .45rem; }
.woocommerce-shipping-methods input[type="radio"] { position: relative; top: .15em; }
.woocommerce-shipping-methods label { display: flex; justify-content: space-between; gap: .25rem 1rem; cursor: pointer; }
.pl-ship-price { white-space: nowrap; }
/* Shipmondos note i kurven og boksen med udleveringssted i kassen. */
.shipping_pickup_cart, .service-point-selector-error { margin-top: .15rem; font-size: .85rem; line-height: 1.4; color: var(--pl-ink-soft); }
.woocommerce-shipping-methods .shipmondo-original { margin-top: .6rem; }
/* Stripe: Apple Pay, Google Pay og Link er Stripes egne knapper i en iframe. Temaet styrer kun afstanden og "— ELLER —". */
.wc-proceed-to-checkout #wc-stripe-express-checkout-element { margin-top: .75rem !important; }
#wc-stripe-express-checkout-button-separator { margin: 1.25rem 0 2rem !important; font-size: .9rem; color: var(--pl-ink-soft); }

#payment { margin-top: 1.75rem; }
.wc_payment_methods { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; gap: .5rem; }
.wc_payment_method { padding: .9rem 1rem; background: var(--pl-ground); border: 1px solid var(--pl-line); border-radius: var(--pl-radius); }
.wc_payment_method > input { margin-right: .5rem; vertical-align: -.15em; }
.wc_payment_method > label { font-weight: 600; cursor: pointer; }
.payment_box { margin-top: .4rem; font-size: .92rem; line-height: 1.5; color: var(--pl-ink-soft); }
.payment_box p { margin: 0; }
.woocommerce-terms-and-conditions-wrapper { font-size: .92rem; line-height: 1.5; color: var(--pl-ink-soft); }
.woocommerce-privacy-policy-text p { margin: 0 0 1rem; }
/* Betingelserne kan foldes ud i kassen. De står i en hvid boks med små overskrifter. */
.woocommerce-terms-and-conditions { margin-bottom: 1rem; padding: 1rem 1.1rem; background: var(--pl-ground); border-radius: var(--pl-radius); }
.woocommerce-terms-and-conditions h2 { margin: 1rem 0 .25rem; font-size: 1rem; font-weight: 600; letter-spacing: 0; }
.woocommerce-terms-and-conditions h2:first-child { margin-top: 0; }
.woocommerce-terms-and-conditions .pl-facts { margin-top: 1rem; padding: 0; background: none; }
.place-order .form-row { margin: 0; color: var(--pl-ink); }
#place_order { width: 100%; min-height: 3.5rem; margin-top: 1.25rem; font-size: 1.05rem; }

/* ---------- Min konto ---------- */
/* Log ind og glemt adgangskode: formularen i en hvid boks med en tynd kant.
   Ved siden af loginboksen står en kort tekst til dem uden konto (inc/account.php). */
.woocommerce-account:not(.logged-in) .entry-content > .woocommerce { display: grid; gap: 2.5rem; align-items: start; }
.woocommerce-account:not(.logged-in) .entry-content > .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.pl-login-card, .woocommerce-ResetPassword {
  width: 100%; max-width: 28rem; padding: clamp(1.5rem, 3vw, 2.25rem);
  background: var(--pl-ground); border: 1px solid var(--pl-line); border-radius: var(--pl-radius);
  box-shadow: 0 1px 2px rgba(31, 38, 36, .04), 0 8px 24px rgba(31, 38, 36, .06);
}
.pl-login-card > h2 { margin-bottom: 1.5rem; font-size: clamp(1.35rem, 2vw, 1.6rem); }
.pl-login-card > .woocommerce-notices-wrapper > :first-child { margin-top: 0; }
.pl-login-aside { max-width: 22rem; padding-top: .35rem; color: var(--pl-ink-soft); }
.pl-login-aside h2 { margin-bottom: .75rem; font-size: 1.1rem; font-weight: 600; letter-spacing: -.01em; color: var(--pl-ink); }
.pl-login-aside a { color: var(--pl-ink); font-weight: 600; }
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-account .entry-content > .woocommerce > .woocommerce-notices-wrapper > :first-child { margin-top: 0; }
.woocommerce-form-login .form-row:has(> .woocommerce-form-login__submit) { display: grid; gap: 1.25rem; margin: 1.25rem 0 0; }
/* Log ind er ikke et køb, så knappen er mørk som kurven i toppen, ikke grøn. */
.woocommerce-form-login__submit, .woocommerce-ResetPassword .button {
  width: 100%; background: var(--pl-deep); border-color: var(--pl-deep); color: #fff;
}
.woocommerce-form-login__submit:hover, .woocommerce-ResetPassword .button:hover { background: var(--pl-deep-line); border-color: var(--pl-deep-line); }
.woocommerce-LostPassword { margin: 1rem 0 0; font-size: .95rem; }
.woocommerce-ResetPassword > p:first-of-type { margin-bottom: 1.25rem; color: var(--pl-ink-soft); }
/* Logget ind: menuen og indholdet. På mobil er menuen knapper over indholdet, på bred skærm en liste til venstre. */
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 2rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.woocommerce-MyAccount-navigation a {
  display: block; padding: .5rem .9rem; border: 1px solid var(--pl-line); border-radius: var(--pl-radius);
  color: var(--pl-ink); text-decoration: none; font-weight: 500;
}
.woocommerce-MyAccount-navigation a:hover { background: var(--pl-natur); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--pl-natur); border-color: var(--pl-ink); font-weight: 600; }
.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--pl-ink-soft); font-weight: 400; }
.woocommerce-MyAccount-content { max-width: 46rem; }
.woocommerce-MyAccount-content > .woocommerce-notices-wrapper > :first-child { margin-top: 0; }
.woocommerce-MyAccount-content > p { color: var(--pl-ink-soft); }
.woocommerce-MyAccount-content > p strong { color: var(--pl-ink); }
.woocommerce-MyAccount-content h2 { margin-bottom: 1.25rem; font-size: clamp(1.35rem, 2vw, 1.6rem); }
.woocommerce-MyAccount-content .button[type="submit"] { background: var(--pl-deep); border-color: var(--pl-deep); color: #fff; }
.woocommerce-address-fields > p:last-child, .woocommerce-EditAccountForm > p:last-of-type { margin-top: 1rem; }
.woocommerce-MyAccount-content .button[type="submit"]:hover { background: var(--pl-deep-line); border-color: var(--pl-deep-line); }

/* Kontrolpanelet: genveje i lyse felter. Afsnittet med de samme links i løbende tekst er overflødigt ved siden af. */
.woocommerce-MyAccount-content:has(.pl-account-shortcuts) > p:nth-of-type(2) { display: none; }
.pl-account-shortcuts { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; gap: .75rem; }
.pl-account-shortcuts a {
  display: block; height: 100%; padding: 1.1rem 1.25rem; border-radius: var(--pl-radius);
  background: var(--pl-natur); color: var(--pl-ink); text-decoration: none; transition: background-color .15s ease;
}
.pl-account-shortcuts a:hover { background: var(--pl-natur-deep); }
.pl-account-shortcut-title { display: block; font-weight: 600; font-size: 1.1rem; }
.pl-account-shortcut-text { display: block; margin-top: .25rem; font-size: .92rem; line-height: 1.45; color: var(--pl-ink-soft); }

/* Adresser: faktura og levering som to lyse kort. */
.woocommerce-Addresses { display: grid; gap: 1rem; margin-top: 1.5rem; }
.woocommerce-Address { padding: clamp(1.25rem, 3vw, 1.75rem); background: var(--pl-natur); border-radius: var(--pl-radius); }
.woocommerce-Address-title { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .25rem 1rem; margin-bottom: .75rem; }
.woocommerce-MyAccount-content .woocommerce-Address-title h2 { margin: 0; font-size: 1.1rem; font-weight: 600; letter-spacing: -.01em; }
.woocommerce-Address-title .edit { font-size: .92rem; }
.woocommerce-Address address { font-style: normal; line-height: 1.6; color: var(--pl-ink-soft); }

/* Kontoinformationer: fornavn og efternavn side om side, adgangskoden i sin egen gruppe. */
.woocommerce-EditAccountForm { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem .9rem; }
.woocommerce form.woocommerce-EditAccountForm > .form-row { grid-column: 1 / -1; margin: 0; }
.woocommerce form.woocommerce-EditAccountForm > :is(.form-row-first, .form-row-last) { grid-column: span 1; }
.woocommerce-EditAccountForm > .clear { display: none; }
.woocommerce-EditAccountForm > :is(fieldset, p:last-of-type) { grid-column: 1 / -1; }
.woocommerce-EditAccountForm fieldset { margin: 1.25rem 0 0; padding: 0; border: 0; }
.woocommerce-EditAccountForm legend { margin-bottom: 1rem; padding: 0; font-size: 1.1rem; font-weight: 600; }
.woocommerce-EditAccountForm #account_display_name_description { display: block; margin-top: .35rem; font-size: .85rem; line-height: 1.45; color: var(--pl-ink-soft); }
.woocommerce-EditAccountForm #account_display_name_description em { font-style: normal; }

/* Ordrer: en liste som kurven. På mobil står hver ordre som en blok med feltnavne foran. */
.woocommerce-orders-table { width: 100%; border-collapse: collapse; }
.woocommerce-orders-table th { padding: .7rem .75rem .7rem 0; border-bottom: 2px solid var(--pl-ink); text-align: left; font-size: .92rem; font-weight: 400; color: var(--pl-ink-soft); }
.woocommerce-orders-table td { padding: .9rem .75rem .9rem 0; border-bottom: 1px solid var(--pl-line); vertical-align: middle; }
.woocommerce-orders-table .button { min-height: 2.5rem; padding: .35rem .9rem; font-size: .92rem; }
.woocommerce-orders-table .woocommerce-orders-table__cell-order-number a { font-weight: 600; color: var(--pl-ink); }

/* Vis adgangskode: WooCommerces knap får et øje inde i feltet. */
.password-input { position: relative; display: block; }
.password-input .input-text { padding-right: 3rem; }
.show-password-input {
  position: absolute; top: 0; right: 0; width: 3rem; height: 3rem; padding: 0;
  border: 0; background: none; cursor: pointer;
}
.show-password-input::after {
  content: ""; position: absolute; inset: 0; margin: auto; width: 1.25rem; height: 1.25rem;
  background: var(--pl-ink-soft);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.show-password-input:hover::after { background: var(--pl-ink); }
.show-password-input.display-password::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M3 3l18 18'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M3 3l18 18'/%3E%3C/svg%3E"); }

/* ---------- Ordre: "Tak for din ordre" og en enkelt ordre under Min konto ---------- */
.woocommerce-order { max-width: 48rem; }
.woocommerce-order > p { color: var(--pl-ink-soft); }
/* Kvitteringen er sidens overskrift, i samme størrelse som "Din kurv er tom.". */
.woocommerce-order > .woocommerce-thankyou-order-received {
  margin: 0 0 1.5rem; color: var(--pl-ink);
  font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 500; line-height: 1.12; letter-spacing: -.025em;
}
/* Ordrenummer, dato, e-mail, total og betaling som rækker i en lys boks: betegnelsen til venstre, værdien til højre.
   Bankoplysningerne står på samme måde, så lange værdier (e-mail, IBAN) ikke knækker midt i. */
ul.woocommerce-order-overview, ul.bacs_details { list-style: none; margin: 0; padding: 0; font-size: .95rem; color: var(--pl-ink-soft); }
:is(ul.woocommerce-order-overview, ul.bacs_details) li {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .1rem 1.5rem;
  padding: .6rem 0; border-bottom: 1px solid var(--pl-line);
}
:is(ul.woocommerce-order-overview, ul.bacs_details) li:last-child { border-bottom: 0; }
:is(ul.woocommerce-order-overview, ul.bacs_details) strong { font-size: 1rem; font-weight: 600; color: var(--pl-ink); text-align: right; overflow-wrap: anywhere; }
ul.woocommerce-order-overview { margin-bottom: 2rem; padding: .4rem clamp(1.25rem, 3vw, 1.75rem); background: var(--pl-natur); border-radius: var(--pl-radius); }
.woocommerce-bacs-bank-details { margin: 1.5rem 0 2.5rem; padding: clamp(1.25rem, 3vw, 1.75rem); border: 1px solid var(--pl-line); border-radius: var(--pl-radius); }
.woocommerce-bacs-bank-details .wc-bacs-bank-details-heading { margin-bottom: .35rem; font-size: 1.1rem; font-weight: 600; letter-spacing: -.01em; }
.wc-bacs-bank-details-account-name { margin: 0 0 1rem; font-size: .95rem; font-weight: 400; color: var(--pl-ink-soft); }
/* Ordredetaljer: samme rækker som ordreboksen i kassen. */
.woocommerce-order-details { margin-bottom: 2.5rem; }
:is(.woocommerce-order-details__title, .woocommerce-customer-details > h2) { margin-bottom: 1rem; font-size: clamp(1.25rem, 2vw, 1.5rem); }
.woocommerce-table--order-details { width: 100%; }
.woocommerce-table--order-details :is(thead, tbody, tfoot) { display: block; }
.woocommerce-table--order-details tr { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; border-bottom: 1px solid var(--pl-line); }
.woocommerce-table--order-details thead tr { border-bottom: 2px solid var(--pl-ink); }
.woocommerce-table--order-details :is(th, td) { padding: .65rem 0; text-align: left; }
.woocommerce-table--order-details thead th { padding-top: 0; font-size: .92rem; font-weight: 400; color: var(--pl-ink-soft); }
.woocommerce-table--order-details .product-name a { color: var(--pl-ink); text-decoration: none; }
.woocommerce-table--order-details .product-name a:hover { text-decoration: underline; }
.woocommerce-table--order-details .product-quantity { font-weight: 400; color: var(--pl-ink-soft); white-space: nowrap; }
.woocommerce-table--order-details .wc-item-meta { list-style: none; margin: .2rem 0 0; padding: 0; font-size: .92rem; color: var(--pl-ink-soft); }
.woocommerce-table--order-details .wc-item-meta :is(strong, p) { display: inline; margin: 0; font-weight: 400; }
.woocommerce-table--order-details td.product-total { text-align: right; white-space: nowrap; }
.woocommerce-table--order-details tfoot th { flex: none; font-weight: 400; color: var(--pl-ink-soft); }
.woocommerce-table--order-details tfoot td { text-align: right; }
.woocommerce-table--order-details tfoot tr:last-child { border-bottom: 0; }
.woocommerce-table--order-details tfoot tr:last-child :is(th, td) { padding-top: .9rem; color: var(--pl-ink); font-weight: 600; font-size: 1.25rem; }
/* Adresserne som lyse kort, som under Min konto. */
.woocommerce-customer-details .woocommerce-columns--addresses { display: grid; gap: 1rem; }
.woocommerce-customer-details .woocommerce-column, .woocommerce-customer-details > address { padding: clamp(1.25rem, 3vw, 1.75rem); background: var(--pl-natur); border-radius: var(--pl-radius); }
.woocommerce-customer-details .woocommerce-column__title { margin-bottom: .75rem; font-size: 1.1rem; font-weight: 600; letter-spacing: -.01em; }
.woocommerce-customer-details address { font-style: normal; line-height: 1.6; color: var(--pl-ink-soft); }
.woocommerce-customer-details address p { margin: .5rem 0 0; }
/* En enkelt ordre under Min konto: "Ordre #… blev afgivet … og er …". WooCommerce bruger <mark>, som ellers er gul. */
.woocommerce-MyAccount-content mark { background: none; color: var(--pl-ink); font-weight: 600; }
.woocommerce-MyAccount-content mark.order-status { padding: .1rem .55rem; border-radius: 999px; background: var(--pl-natur-deep); white-space: nowrap; }
.woocommerce-OrderUpdates { list-style: none; margin: 0 0 2rem; padding: 0; }
.woocommerce-OrderUpdates li { padding: .75rem 0; border-bottom: 1px solid var(--pl-line); }
.woocommerce-OrderUpdate-meta { margin: 0; font-size: .85rem; color: var(--pl-ink-soft); }

/* ---------- Forsiden under sortimentet: plastværket ---------- */
/* Plastværket og materialerne står på hero'ens lyse flade i fuld bredde og går lige over i den mørke bund. */
.pl-plant {
  margin-top: clamp(4.5rem, 9vw, 8rem); padding-block: clamp(4rem, 8vw, 7rem);
  background: var(--pl-natur);
  box-shadow: 0 0 0 100vmax var(--pl-natur);
  clip-path: inset(0 -100vmax);
}
.site-content:has(.pl-plant) { padding-bottom: 0; }
/* Butikssidens tekst: overskriften til venstre, afsnittene til højre. Overskriften har samme størrelse som den mørke sektions. */
.pl-works { display: grid; gap: 1.25rem; }
.pl-works > h2 { max-width: 14em; font-size: clamp(1.7rem, 3.4vw, 2.9rem); line-height: 1.08; letter-spacing: -.035em; }
.pl-works > p { max-width: var(--pl-measure); margin: 0; color: var(--pl-ink-soft); font-size: clamp(1.05rem, 1.4vw, 1.2rem); }

/* ---------- Forsiden under sortimentet: materialerne ---------- */
/* Én række pr. materialegruppe. Hver forkortelse er en knap til varen, hvid på den lyse flade som en lille plastprøve. */
.pl-materials { margin-top: clamp(3.5rem, 7vw, 5.5rem); }
.pl-materials-head {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 2rem;
  margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}
.pl-materials-head a { color: var(--pl-ink); font-weight: 500; text-decoration-color: var(--pl-green); text-decoration-thickness: 2px; text-underline-offset: .3em; }
.pl-material-rows { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--pl-ink); }
.pl-material {
  display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .8rem 1.5rem;
  padding: 1.15rem 0; border-bottom: 1px solid var(--pl-line);
}
.pl-material-name { color: var(--pl-ink); font-size: clamp(1.15rem, 1.6vw, 1.35rem); font-weight: 500; letter-spacing: -.02em; text-decoration: none; }
.pl-material-name:hover { text-decoration: underline; text-decoration-color: var(--pl-green); text-decoration-thickness: 2px; text-underline-offset: .3em; }
.pl-material-count { grid-column: 2; grid-row: 1; justify-self: end; color: var(--pl-ink-soft); font-size: .92rem; white-space: nowrap; }
.pl-material-codes { grid-column: 1 / -1; list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.pl-material-codes a {
  display: inline-block; padding: .35rem .7rem; border-radius: var(--pl-radius);
  background: var(--pl-ground); color: var(--pl-ink); font-weight: 500; font-size: .95rem; line-height: 1.3; text-decoration: none;
  transition: background-color .15s ease;
}
.pl-material-codes a:hover { background: var(--pl-natur-deep); }

/* ---------- Bund: den ene mørke sektion, i pladens sorte ---------- */
.site-footer { background: var(--pl-deep); color: #fff; padding-block: clamp(3.5rem, 8vw, 7rem) 2rem; }
.site-footer a { color: #fff; }
.footer-widgets.row-1 { display: grid; gap: 2rem; padding-bottom: clamp(3rem, 6vw, 5rem); }
.footer-widgets.row-1 h2 { max-width: 16em; font-size: clamp(1.7rem, 3.4vw, 2.9rem); line-height: 1.08; letter-spacing: -.035em; }
.footer-widgets.row-1 p { color: var(--pl-deep-soft); max-width: 30rem; margin-top: 1.25rem; font-size: 1.1rem; }
.pl-band-contact { display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; }
.pl-band-contact a { text-decoration-color: var(--pl-green); text-decoration-thickness: 2px; text-underline-offset: .3em; font-weight: 500; }
.pl-band-contact a:first-child { font-size: clamp(1.9rem, 3.4vw, 2.9rem); letter-spacing: -.035em; line-height: 1.1; text-decoration: none; }
.pl-band-contact a:first-child:hover { text-decoration: underline; text-decoration-color: var(--pl-green); text-decoration-thickness: 3px; }
.footer-widgets.row-2 {
  display: grid; gap: 2rem; padding-top: 2.5rem; border-top: 1px solid var(--pl-deep-line);
  font-size: .98rem; color: var(--pl-deep-soft);
}
.widget-title { display: block; font-weight: 600; color: #fff; margin-bottom: .6rem; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin-bottom: .35rem; }
/* Trustpilots stjerner over linket til anmeldelserne. */
.pl-trustpilot { display: inline-flex; flex-direction: column; align-items: flex-start; gap: .5rem; margin-bottom: .5rem; }
.pl-trustpilot img { width: 7.5rem; }
.site-info { margin-top: 3rem; color: var(--pl-deep-soft); font-size: .9rem; }

/* ---------- Kun i WordPress: Storefront-dele, som designet ikke bruger ---------- */
/* Storefront skriver menuen en ekstra gang til mobil og har en kurv, der folder ud fra toppen.
   Designet bruger den almindelige menu på alle skærme og linker direkte til kurven. */
.handheld-navigation, .site-header-cart .widget_shopping_cart { display: none; }
/* Min./maks.-pluginet giver antalsfeltet i varelister 15px margen over og under. */
ul.products .quantity { margin: 0; }

/* ---------- Smal skærm ---------- */
@media (max-width: 47.99rem) {
  .site-header > .col-full { gap: .85rem .5rem; padding-block: 1rem .75rem; }
  .site-search { grid-column: 1 / -1; order: 3; }
  .woocommerce-product-search { max-width: none; }
  .pl-topbar-contact a:first-child { display: none; }
  .cart-contents .count { display: none; }
  /* To kort pr. række: knappen fylder kortets bredde og må bryde linjen, så "Vælg muligheder" ikke stikker ud.
     Listevisningen er undtaget, dér står knappen ved siden af antallet. */
  ul.products:not(.pl-list-rows) li.product .button { width: 100%; white-space: normal; padding-inline: .5rem; font-size: .88rem; text-align: center; }
  /* Et stort beløb (fx 123.456,00 kr.) må ikke skubbe toppen ud. Knappen er stram, og logoet giver sig. */
  .cart-contents { padding-inline: .8rem; }

  /* Række 1: logo, kurv og menuknap. Række 2: søgefeltet. Menuen folder ud under søgefeltet. */
  .site-header > .col-full { grid-template-columns: minmax(0, 1fr) auto auto; }
  .site-branding img { width: min(165px, 42vw); }
  .pl-menu-toggle {
    display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; padding: 0;
    border: 1px solid var(--pl-field); border-radius: var(--pl-radius); background: var(--pl-ground); color: var(--pl-ink); cursor: pointer;
  }
  .pl-menu-toggle[aria-expanded="true"] { background: var(--pl-natur); border-color: var(--pl-ink); }
  .pl-menu-toggle[aria-expanded="true"] .pl-menu-open, .pl-menu-toggle[aria-expanded="false"] .pl-menu-close { display: none; }
  .storefront-primary-navigation .col-full { padding-block: 0; }
  .main-navigation.toggled { padding-block: .25rem 1rem; }
  /* Mobilmenuen er Storefronts håndholdte menu: hovedpunkterne som en liste, og undermenuerne
     foldes ud med Storefronts egne knapper (klassen toggled-on). Desktopmenuen bruges ikke her. */
  .primary-navigation { display: none; }
  .main-navigation.toggled .handheld-navigation { display: block; }
  .handheld-navigation ul { list-style: none; margin: 0; padding: 0; }
  .handheld-navigation > ul { border-top: 2px solid var(--pl-ink); }
  .handheld-navigation > ul > li { border-bottom: 1px solid var(--pl-line); }
  .handheld-navigation li { position: relative; }
  .handheld-navigation a {
    display: block; padding: .8rem 3rem .8rem 0; color: var(--pl-ink);
    text-decoration: none; font-size: 1.1rem; font-weight: 500;
  }
  .handheld-navigation .sub-menu { display: none; padding: 0 0 .6rem .9rem; }
  .handheld-navigation .sub-menu.toggled-on { display: block; }
  .handheld-navigation .sub-menu a { padding: .45rem 3rem .45rem 0; font-size: 1rem; font-weight: 400; color: var(--pl-ink-soft); }
  .handheld-navigation .dropdown-toggle {
    position: absolute; top: .35rem; right: 0; width: 2.75rem; height: 2.75rem; padding: 0;
    border: 0; border-radius: var(--pl-radius); background: none; cursor: pointer;
  }
  .handheld-navigation .sub-menu .dropdown-toggle { top: 0; height: 2.4rem; }
  .handheld-navigation .dropdown-toggle:hover { background: var(--pl-natur); }
  .handheld-navigation .dropdown-toggle::after {
    content: ""; position: absolute; inset: 0; margin: auto; width: 1.1rem; height: 1.1rem; background: var(--pl-ink);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    transition: transform .15s ease;
  }
  .handheld-navigation .dropdown-toggle.toggled-on::after { transform: rotate(180deg); }

  .wpforms-field-container { gap: .9rem .6rem; }

  .woocommerce-orders-table thead { display: none; }
  .woocommerce-orders-table tr { display: block; padding: .75rem 0; border-bottom: 1px solid var(--pl-line); }
  .woocommerce-orders-table td { display: flex; justify-content: space-between; gap: 1rem; padding: .25rem 0; border: 0; }
  .woocommerce-orders-table td::before { content: attr(data-title); color: var(--pl-ink-soft); }
  .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions::before { content: none; }

  /* Hero-billedet vises kun på bredere skærme. På mobil starter hero'en direkte med teksten. */
  .pl-hero-media { display: none; }
}

/* ---------- Bred skærm ---------- */
@media (min-width: 48rem) {
  ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
  ul.products li.product { padding: 1rem 1rem 1.25rem; }
  :is(.home, .pl-range) ul.products { columns: 2; column-gap: clamp(2rem, 5vw, 5rem); border-top: 0; }
  :is(.home, .pl-range) ul.products li.product-category { padding: 0; border-top: 0; }
  :is(.home, .pl-range) ul.products li.product-category:first-child,
  :is(.home, .pl-range) ul.products li.product-category:nth-child(8) { border-top: 2px solid var(--pl-ink); }
  .single-product div.product {
    grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 3rem clamp(2rem, 5vw, 5rem); align-items: start;
  }
  .pl-product-details, .related { grid-column: 1 / -1; }
  .home .woocommerce-products-header { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); }
  /* Fotoet har en hvid kant, og pladerne slutter ved 96 % af bredden. Den negative margen skubber
     pladernes kant ud til indholdets højre kant, så de flugter med kurven i toppen. */
  .pl-hero-media { justify-self: end; width: 110%; margin-right: -4.2%; }
  .pl-product-details { grid-template-columns: subgrid; }
  /* Overskriften fylder venstre kolonne ved siden af alle afsnit. Rækkerne har ingen afstand,
     så de tomme rækker, overskriften strækker sig over, ikke giver luft. */
  .pl-works { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 0 clamp(2rem, 6vw, 6rem); align-items: start; }
  .pl-works > h2 { grid-column: 1; grid-row: 1 / span 9; }
  .pl-works > :not(h2) { grid-column: 2; }
  .pl-works > p + p { margin-top: 1rem; }

  /* Almindelige sider: teksten til venstre, boksen med firmaoplysninger til højre. */
  .pl-page .entry-content { grid-template-columns: minmax(0, var(--pl-measure)) minmax(15rem, 22rem); justify-content: space-between; column-gap: clamp(2rem, 6vw, 6rem); }
  .pl-page .entry-content > * { grid-column: 1; }
  .pl-page .entry-content > .pl-facts {
    grid-column: 2; grid-row: 1 / span 20; margin-top: 0;
    position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 1.5rem);
  }
  .footer-widgets.row-1 { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; }
  .footer-widgets.row-2 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  /* Kurvens rækker på én linje: billede, navn og stykpris, antal, linjepris, kryds. */
  table.cart tr.cart_item {
    grid-template-columns: 5.5rem minmax(0, 1fr) auto minmax(6.5rem, auto) 2.25rem; column-gap: 1.25rem;
    grid-template-areas: "thumb name qty total remove" "thumb price qty total remove";
  }
  table.cart :is(td.product-quantity, td.product-subtotal, td.product-remove) { margin-top: 0; align-self: center; }
  table.cart td.product-subtotal { font-size: 1.1rem; }
}

@media (min-width: 64rem) {
  ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }

  .pl-material { grid-template-columns: minmax(13rem, 17rem) minmax(0, 1fr) auto; padding: 1rem 0; }
  .pl-material-codes { grid-column: 2; grid-row: 1; }
  .pl-material-count { grid-column: 3; }

  .pl-list { --pl-grid: minmax(14rem, 2.2fr) repeat(var(--pl-cols), minmax(5rem, 1fr)) minmax(10.5rem, auto) 17rem; }
  .pl-list-head, ul.products.pl-list-rows > li.product {
    display: grid; grid-template-columns: var(--pl-grid); align-items: center; gap: 0 1.5rem;
  }
  .pl-list-head { padding: 0 0 .7rem; font-size: .92rem; color: var(--pl-ink-soft); }
  ul.products.pl-list-rows > li.product { padding: .7rem 0; }
  ul.products.pl-list-rows > li.product > a:first-child { grid-column: auto; }
  .pl-specs {
    grid-column: span var(--pl-cols); display: grid; grid-template-columns: subgrid; gap: 0 1.5rem;
    font-size: 1.0625rem; color: var(--pl-ink);
  }
  .pl-spec dt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
  .pl-list .price, .pl-list-price { text-align: right; }
  .pl-row-action { flex-wrap: nowrap; }

  /* Kassen: kundens oplysninger til venstre, ordreoversigten til højre. Fejlbeskeder går over begge. */
  form.checkout {
    display: grid; grid-template-columns: minmax(0, 40rem) minmax(22rem, 28rem);
    justify-content: space-between; column-gap: clamp(2rem, 5vw, 5rem); align-items: start;
  }
  form.checkout > :not(#customer_details, .pl-order-summary) { grid-column: 1; }
  form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
  form.checkout > #customer_details { grid-column: 1; }
  form.checkout > .pl-order-summary { grid-column: 2; margin-top: 0; }

  /* Min konto, logget ind: menuen som en liste til venstre, i samme stil som sortimentet. */
  .woocommerce-account.logged-in .entry-content > .woocommerce:has(> .woocommerce-MyAccount-navigation) {
    display: grid; grid-template-columns: 14rem minmax(0, 1fr); column-gap: clamp(2.5rem, 6vw, 6rem); align-items: start;
  }
  .woocommerce-MyAccount-navigation ul { flex-direction: column; gap: 0; margin: 0; border-top: 2px solid var(--pl-ink); }
  .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--pl-line); }
  .woocommerce-MyAccount-navigation a { padding: .75rem .75rem; border: 0; border-radius: 0; }
  .woocommerce-MyAccount-navigation .is-active a { background: var(--pl-natur); }
  .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 1rem; border-bottom: 0; }
  .pl-account-shortcuts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .woocommerce-Addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .woocommerce-customer-details .woocommerce-columns--addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Log ind: boksen til venstre, teksten til dem uden konto til højre. */
  .woocommerce-account:not(.logged-in) .entry-content > .woocommerce:has(.pl-login-card) {
    grid-template-columns: minmax(0, 28rem) minmax(0, 22rem); column-gap: clamp(2.5rem, 7vw, 7rem);
  }

  /* Kurven: varerne til venstre og totalboksen til højre, som i kassen. */
  .woocommerce-cart .entry-content > .woocommerce {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(20rem, 24rem);
    column-gap: clamp(2rem, 4vw, 4rem); align-items: start;
  }
  .woocommerce-cart .entry-content > .woocommerce > * { grid-column: 1 / -1; }
  .woocommerce-cart .entry-content > .woocommerce > .woocommerce-cart-form { grid-column: 1; }
  .woocommerce-cart .entry-content > .woocommerce > .cart-collaterals { grid-column: 2; margin-top: 0; }
  .woocommerce-cart .cart_totals { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}
