/* ========================================================================== 
   NASHORN Kontakt — responsive content migration
   Homepage-derived content grammar. Desktop and the shared shell stay locked.
   ========================================================================== */

/* All canonical non-desktop families. */
@media (min-width: 768px) and (max-width: 1199.98px) and (orientation: landscape) and (min-height: 601px),
       (min-width: 1024px) and (max-width: 1199.98px) and (orientation: portrait),
       (max-width: 767.98px),
       (min-width: 768px) and (max-width: 1023.98px) and (orientation: portrait),
       (min-width: 768px) and (max-width: 1199.98px) and (orientation: landscape) and (max-height: 600px) {
  .site-page .ko {
    --ko-travel: 0px;
    --ko-overlap: 0px;
    padding-bottom: var(--site-section-space);
  }

  .site-page .ko__pin {
    height: auto;
    margin-bottom: 0;
  }

  .site-page .ko__hero {
    position: relative;
    top: auto !important;
    height: auto;
    min-height: 0;
  }

  .site-page .ko__hero-grid {
    height: auto;
    min-height: 0;
    padding-top: var(--site-section-space-compact);
    padding-bottom: calc(var(--site-section-space) + (2 * var(--site-card-gap)));
  }

  .site-page .ko__title {
    font-size: var(--site-title-size);
    line-height: var(--site-title-line-height);
    letter-spacing: var(--site-title-letter-spacing);
  }

  .site-page .ko__routes {
    gap: var(--site-card-gap);
    padding-top: var(--site-section-space-compact);
  }

  .site-page .ko__routes h2 {
    margin-bottom: 8px;
    font-size: var(--site-meta-size);
    line-height: var(--site-meta-line-height);
    letter-spacing: var(--site-meta-letter-spacing);
  }

  .site-page .ko__routes p,
  .site-page .ko__routes .ko__fax,
  .site-page .ko__place p:not(.ko__place-name) {
    font-size: var(--site-body-size);
    line-height: var(--site-body-line-height);
  }

  .site-page .ko__place-name {
    font-size: var(--site-card-title-size);
    line-height: var(--site-card-title-line-height);
    letter-spacing: var(--site-card-title-letter-spacing);
  }

  .site-page .ko__hours {
    padding: var(--site-card-padding);
  }

  .site-page .ko__form-wrap {
    margin-top: calc(-2 * var(--site-card-gap));
  }

  .site-page .ko__main {
    padding: var(--site-card-padding);
  }

  .site-page .ko__form-head {
    gap: var(--site-card-gap);
    margin-bottom: calc(1.5 * var(--site-card-gap));
  }

  .site-page .ko__form-title,
  .site-page .ko__picks h2 {
    font-size: var(--site-card-feature-title-size);
    line-height: var(--site-card-feature-title-line-height);
    letter-spacing: var(--site-card-feature-title-letter-spacing);
  }

  .site-page .ko__empty,
  .site-page .ko .ko__check,
  .site-page .ko__check-note,
  .site-page .ko__note,
  .site-page .ko__colors li {
    font-size: var(--site-card-copy-size);
    line-height: var(--site-card-copy-line-height);
  }

  .site-page .ko__empty a,
  .site-page .ko__show,
  .site-page .ko__edit,
  .site-page .ko__hide,
  .site-page .ko__clear,
  .site-page .ko__total {
    font-size: var(--site-action-size);
    line-height: var(--site-action-line-height);
    letter-spacing: var(--site-action-letter-spacing);
  }

  .site-page .ko__fields {
    gap: var(--site-card-gap) calc(2 * var(--site-card-gap));
  }

  .site-page .ko .np-field input:not([type="checkbox"]),
  .site-page .ko .np-field textarea {
    min-height: var(--site-touch-target);
    font-size: var(--site-body-size);
    line-height: var(--site-body-line-height);
  }

  .site-page .ko .np-field textarea {
    min-height: 148px;
  }

  .site-page .ko__consent,
  .site-page .ko__main .btn {
    margin-top: calc(1.5 * var(--site-card-gap));
  }

  .site-page .ko__main .btn {
    min-height: var(--site-button-min-height);
  }

  .site-page .ko__picks-head {
    padding: var(--site-card-padding);
    padding-bottom: var(--site-card-gap);
  }

  .site-page .ko__count,
  .site-page .ko__sku {
    font-size: var(--site-meta-size);
    line-height: var(--site-meta-line-height);
    letter-spacing: var(--site-meta-letter-spacing);
  }

  .site-page .ko__name {
    font-size: var(--site-card-title-size);
    line-height: var(--site-card-title-line-height);
    letter-spacing: var(--site-card-title-letter-spacing);
  }

  .site-page .ko__list-scroll {
    padding-inline: 30px;
    padding-bottom: 30px;
  }

  .site-page .ko__pick {
    gap: var(--site-card-gap);
    padding-block: var(--site-card-gap);
  }
}

/* Compact Desktop Master: preserve the desktop form/summary relationship. */
@media (min-width: 768px) and (max-width: 1199.98px) and (orientation: landscape) and (min-height: 601px),
       (min-width: 1024px) and (max-width: 1199.98px) and (orientation: portrait) {
  .site-page .ko__hero-grid {
    min-height: clamp(610px, 74svh, 760px);
  }

  .site-page .ko__routes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-page .ko__form-wrap {
    margin-top: calc(-1 * var(--site-section-space-compact));
  }

  .site-page .ko__main {
    padding: 30px 34px;
  }
}

/* Touch Master: the selection becomes an on-demand block below the form. */
@media (max-width: 767.98px),
       (min-width: 768px) and (max-width: 1023.98px) and (orientation: portrait),
       (min-width: 768px) and (max-width: 1199.98px) and (orientation: landscape) and (max-height: 600px) {
  .site-page .ko__top {
    grid-template-columns: 1fr;
    align-items: start;
    gap: calc(2 * var(--site-card-gap));
  }

  .site-page .ko__place {
    justify-self: start;
    max-width: none;
    text-align: left;
  }

  .site-page .ko__routes {
    grid-template-columns: 1fr;
  }

  .site-page .ko__routes > div {
    padding-block: var(--site-card-gap);
    border-top: 1px solid rgba(255, 255, 255, 0.2);
  }

  .site-page .ko__routes a {
    display: inline-flex;
    align-items: center;
    min-height: var(--site-touch-target);
  }

  .site-page .ko__hours {
    border-left: 0;
    border-top-color: #7fb8e6;
  }

  .site-page .ko__sheet,
  .site-page .ko__body {
    display: flex;
    flex-direction: column;
  }

  .site-page .ko__main,
  .site-page .ko__sheet.has-summary:not(.is-collapsed) .ko__main {
    order: 1;
    width: 100%;
  }

  .site-page .ko__form-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .site-page .ko__fields {
    grid-template-columns: 1fr;
  }

  .site-page .ko__span {
    grid-column: auto;
  }

  .site-page .ko__show,
  .site-page .ko__edit,
  .site-page .ko__hide,
  .site-page .ko__clear {
    min-height: var(--site-touch-target);
  }

  .site-page .ko__picks {
    position: relative;
    inset: auto;
    order: 2;
    width: 100%;
    height: 0;
    min-height: 0;
    opacity: 0;
    visibility: hidden;
    transform: none;
    transition: height var(--ko-panel), opacity 220ms ease, visibility 0s linear 460ms;
  }

  .site-page .ko__sheet.has-summary:not(.is-collapsed) .ko__picks {
    height: min(60svh, 34rem);
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: height var(--ko-panel), opacity 220ms ease, visibility 0s;
  }

  .site-page .ko__picks-tools {
    gap: 4px var(--site-card-gap);
  }

  .site-page .ko__edit,
  .site-page .ko__hide,
  .site-page .ko__clear {
    padding-block: 8px;
  }
}

/* Small Tablet Portrait: Touch Master with the approved wider two-column rhythm. */
@media (min-width: 768px) and (max-width: 1023.98px) and (orientation: portrait) {
  .site-page .ko__top,
  .site-page .ko__routes,
  .site-page .ko__fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-page .ko__place {
    justify-self: end;
    text-align: right;
  }

  .site-page .ko__span {
    grid-column: 1 / -1;
  }

  .site-page .ko__sheet.has-summary:not(.is-collapsed) .ko__picks {
    height: min(52svh, 32rem);
  }
}

/* Mobile Portrait. */
@media (max-width: 767.98px) and (orientation: portrait) {
  .site-page .ko__hero-grid {
    padding-top: var(--site-section-space);
  }

  .site-page .ko__form-wrap {
    margin-top: calc(-1 * var(--site-card-gap));
  }

  .site-page .ko__main,
  .site-page .ko__picks-head {
    padding: var(--site-card-compact-padding);
  }

  .site-page .ko__list-scroll {
    padding-inline: 30px;
  }

  .site-page .ko__main .btn {
    width: 100%;
  }

  .site-page .ko__sheet.has-summary:not(.is-collapsed) .ko__picks {
    height: min(70svh, 32rem);
  }
}

/* Mobile Landscape / low-height Touch Master. */
@media (min-width: 768px) and (max-width: 1199.98px) and (orientation: landscape) and (max-height: 600px) {
  .site-page .ko__hero-grid {
    padding-top: var(--site-section-space-compact);
    padding-bottom: calc(var(--site-section-space-compact) + var(--site-card-gap));
  }

  .site-page .ko__top,
  .site-page .ko__routes,
  .site-page .ko__fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-page .ko__place {
    justify-self: end;
    text-align: right;
  }

  .site-page .ko__span {
    grid-column: 1 / -1;
  }

  .site-page .ko__routes {
    padding-top: calc(2 * var(--site-card-gap));
  }

  .site-page .ko__form-wrap {
    margin-top: calc(-1 * var(--site-card-gap));
  }

  .site-page .ko__main {
    padding: 24px 30px;
  }

  .site-page .ko__sheet.has-summary:not(.is-collapsed) .ko__picks {
    height: min(78svh, 28rem);
  }
}

