/* Modul: delivery. Alle Regeln sind auf dessen Wurzelelement begrenzt. */
[data-lemp-module="delivery"] {
  position: relative;
  isolation: isolate;
  margin-block: clamp(16px, 2.6vw, 36px);
  padding-block: clamp(34px, 4.5vw, 66px);
}

[data-lemp-module="delivery"]::before,
[data-lemp-module="delivery"]::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

/* The lifted portions cast broader shadows than the edges lying flat. */
[data-lemp-module="delivery"]::before {
  z-index: -2;
  inset: -4px 0 -9px;
  background:
    radial-gradient(ellipse at 49% 50%, rgb(86 49 24 / 21%), transparent 71%) 0 0 / 57% 32px no-repeat,
    radial-gradient(ellipse at 49% 50%, rgb(86 49 24 / 19%), transparent 70%) 100% 0 / 58% 28px no-repeat,
    radial-gradient(ellipse at 49% 50%, rgb(86 49 24 / 23%), transparent 71%) 0 100% / 64% 39px no-repeat,
    radial-gradient(ellipse at 49% 50%, rgb(86 49 24 / 25%), transparent 70%) 100% 100% / 64% 42px no-repeat;
}

[data-lemp-module="delivery"]::after {
  z-index: -1;
  inset: 0;
  border-radius: 43% 57% 40% 60% / 9px 12px 13px 8px;
  background-color: #e8cfaf;
  background-image:
    linear-gradient(to bottom, rgb(255 248 233 / 43%), transparent 20px, transparent calc(100% - 20px), rgb(109 67 32 / 10%)),
    radial-gradient(ellipse at 22% 42%, rgb(255 248 233 / 35%), transparent 72%),
    repeating-linear-gradient(117deg, rgb(84 51 24 / 1.5%) 0 1px, transparent 1px 5px),
    repeating-linear-gradient(21deg, rgb(255 248 233 / 14%) 0 1px, transparent 1px 7px);
}

/* Clip the paper only, leaving text, controls and focus rings untouched. */
@supports (clip-path: shape(from 0 0, line to 100% 0, close)) {
  [data-lemp-module="delivery"]::after {
    border-radius: 0;
    clip-path: shape(
      from 0 9px,
      curve to 29% 12px with 11% 0px / 17% 15px,
      curve to 67% 4px with 43% 9px / 51% 1px,
      curve to 100% 9px with 83% 10px / 91% 14px,
      line to 100% calc(100% - 9px),
      curve to 67% calc(100% - 14px) with 90% 100% / 80% calc(100% - 16px),
      curve to 29% calc(100% - 4px) with 52% calc(100% - 11px) / 44% 100%,
      curve to 0 calc(100% - 10px) with 17% calc(100% - 7px) / 9% calc(100% - 15px),
      close
    );
  }
}

[data-lemp-module="delivery"] .lemp-delivery__bag-image {
  display: block;
  width: 100%;
  max-width: 190px;
  margin: auto;
}

[data-lemp-module="delivery"] .lemp-delivery__title {
  font-family: var(--lemp-font-hand);
  font-size: clamp(38px,4vw,49px);
  color: var(--lemp-red);
  line-height: .95;
  margin-bottom: 14px;
}

[data-lemp-module="delivery"] .lemp-delivery__lead {
  font-size: 21px;
  line-height: 1.2;
}

[data-lemp-module="delivery"] .lemp-delivery__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

[data-lemp-module="delivery"] .lemp-delivery__button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  min-height: 48px;
  padding: 10px 22px;
  font-family: var(--lemp-font-heading);
  font-size: 22px;
  text-decoration: none;
}

[data-lemp-module="delivery"] .lemp-delivery__button--primary {
  background: url('../../img/brush-stroke-red.webp') center/100% 100% no-repeat;
  color: white;
  text-transform: uppercase;
}

[data-lemp-module="delivery"] .lemp-delivery__button--secondary {
  border: 1px solid var(--lemp-red);
  border-radius: 3px;
  color: var(--lemp-red);
}

[data-lemp-module="delivery"] .lemp-delivery__facts {
  display: grid;
  gap: 13px;
}

[data-lemp-module="delivery"] .lemp-delivery__fact {
  display: grid;
  grid-template-columns: 27px minmax(0,1fr);
  gap: 14px;
}

[data-lemp-module="delivery"] .lemp-delivery__fact .lemp-decoration {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
}

[data-lemp-module="delivery"] .lemp-delivery__fact p {
  margin: 0;
  font-size: 17px;
  line-height: 1.3;
}

[data-lemp-module="delivery"] .lemp-delivery__more {
  margin-left: 41px;
  color: var(--lemp-red);
  font-family: var(--lemp-font-heading);
  font-size: 20px;
}

/* Tagesübersicht mit Textlink zur Lieferzeiten-Übersicht im Dialog. */
[data-lemp-module="delivery"] .lemp-delivery-hours__toggle {
  display: inline-block;
  color: var(--lemp-red);
  font-size: 17px;
  text-decoration: underline;
  text-underline-offset: 3px;
  padding: 5px 0;
  margin-top: 6px;
}
[data-lemp-module="delivery"] .lemp-delivery-hours__toggle:focus-visible {
  outline: 2px solid var(--lemp-red);
  outline-offset: 3px;
}

.delivery-fact-icon-1 { --lemp-decoration-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%3E%20%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%228.3%22%3E%3C%2Fcircle%3E%20%3Cpath%20d%3D%22M12%207v5.5l3.6%202.1%22%3E%3C%2Fpath%3E%20%3C%2Fsvg%3E"); }

.delivery-fact-icon-2 { --lemp-decoration-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%3E%20%3Cpath%20d%3D%22M4%206h2l1.6%208h9.6l1.5-5.5H7.1%22%3E%3C%2Fpath%3E%20%3Ccircle%20cx%3D%229.2%22%20cy%3D%2218.1%22%20r%3D%221.2%22%3E%3C%2Fcircle%3E%20%3Ccircle%20cx%3D%2216.8%22%20cy%3D%2218.1%22%20r%3D%221.2%22%3E%3C%2Fcircle%3E%20%3C%2Fsvg%3E"); }

.delivery-fact-icon-3 { --lemp-decoration-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%3E%20%3Cpath%20d%3D%22M3.5%207.5h10v8h-10z%22%3E%3C%2Fpath%3E%20%3Cpath%20d%3D%22M13.5%2010h3.2l3.8%203.8v1.7h-7z%22%3E%3C%2Fpath%3E%20%3Ccircle%20cx%3D%227%22%20cy%3D%2217.3%22%20r%3D%221.5%22%3E%3C%2Fcircle%3E%20%3Ccircle%20cx%3D%2217%22%20cy%3D%2217.3%22%20r%3D%221.5%22%3E%3C%2Fcircle%3E%20%3C%2Fsvg%3E"); }
