/* ==========================================================================
   Facilities page — Figma: 保有施設・設備 / FACILITIES (18354-9126)
   Handoff: 制作仕様 / Developer handoff (18354-9127)

   Same canvas rules as the About page: 1440px design width, 1284px content
   column, 78px gutter, 104px section spacing, shared .section-head block
   titles with the catch phrase as separate text below.

   The .fac-* tokens duplicate their .about-* counterparts on purpose:
   about.css and facilities.css never load on the same page, and neither may
   touch main.css.
   ========================================================================== */

.page-facilities {
  --fac-body: #284c5a;      /* body copy on light grounds */
  --fac-caption: #587380;   /* photo captions and notes */
  --fac-desc: #38474d;
  --fac-panel: #f2fafc;
  --fac-mid: #f2fbfd;
  --fac-border: #d7ebf0;

  background: var(--c-white);
}

.fac-wrap {
  position: relative;
  z-index: 1;
  width: min(100%, var(--page-w, 1440px));
  margin-inline: auto;
  padding-inline: var(--page-gutter, 78px);
}

.fac-overview,
.fac-stories,
.fac-equipment,
.fac-vehicles,
.fac-containers,
.fac-safety {
  position: relative;
  overflow: hidden;
}

/* Decoration crop window — Figma's wave layers are named "width 1440 crop",
   drawn wider than the canvas so their flat edges fall outside it. Keeping
   them in this box lets Figma's x/y values be used verbatim. */
.fac-canvas {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(100%, var(--page-w, 1440px));
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
/* main.css caps every img at max-width:100%; the decoration must opt out or
   the wave is squeezed to 1440px and its flat edge lands in view. */
.fac-canvas > img {
  position: absolute;
  display: block;
  max-width: none;
}

/* Facilities overview stamp: 24s clockwise, per the handoff. */
.fac-stamp {
  animation: fac-stamp-spin 24s linear infinite;
}
@keyframes fac-stamp-spin {
  to { transform: rotate(360deg); }
}

@keyframes fac-wave-drift {
  to { transform: translateX(8px); }
}

/* Shared pill action. */
.fac-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  align-self: flex-start;
  min-height: 56px;
  padding: 12px 24px;
  background: var(--color-heading);
  border: 0;
  border-radius: 999px;
  font-family: var(--ff-jp);
  font-size: var(--fs-16);
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.1em;
  color: var(--c-white);
  text-decoration: none;
  cursor: pointer;
  transition: background-color 200ms ease;
}
.fac-btn:hover {
  background: var(--c-teal-900);
}
.fac-btn:focus-visible {
  outline: 2px solid var(--c-teal-900);
  outline-offset: 4px;
}
.fac-btn span {
  transition: transform 200ms ease;
}
.fac-btn:hover span {
  transform: translateX(4px);
}

/* --------------------------------------------------------------------------
   03 / 施設概要 — Figma 18380:9383
   -------------------------------------------------------------------------- */

.fac-overview {
  padding: 104px 0 88px;
  background: linear-gradient(
    to bottom,
    var(--c-white) 0%,
    var(--fac-mid) 64%,
    var(--c-white) 100%
  );
}

.fac-overview__wave {
  top: -103px;
  left: -366px;
  width: 1808px;
  height: 811px;
  animation: fac-wave-drift 12s ease-in-out infinite alternate;
}

.fac-overview__stamp {
  top: 108px;
  left: 1200px;
  width: 163px;
  height: 164px;
}

.fac-overview__catch {
  margin: 32px 0 0;
  font-family: var(--ff-kosugi, 'Kosugi Maru', sans-serif);
  font-size: var(--fs-32);
  line-height: 48px;
  text-align: center;
  color: var(--color-heading);
}

.fac-overview__lead {
  margin: 32px 0 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-18);
  line-height: 33px;
  text-align: center;
  color: var(--fac-body);
}

.fac-overview__scales {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin: 32px 0 0;
}

.fac-overview__scale {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 28px;
  background: var(--fac-panel);
  border-radius: 24px;
}

.fac-overview__scale-num {
  margin: 0;
  font-family: var(--ff-num);
  font-size: 56px;
  font-weight: 500;
  line-height: 62px;
  color: var(--color-heading);
}

.fac-overview__scale-label {
  font-family: var(--ff-jp);
  font-size: var(--fs-16);
  font-weight: 500;
  line-height: 29px;
  color: var(--color-heading);
}

/* --------------------------------------------------------------------------
   04 / 施設紹介 — Figma 18381:9376
   -------------------------------------------------------------------------- */

.fac-stories {
  padding-block: 104px;
  background: var(--fac-panel);
}

.fac-stories__wave {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 64px;
  pointer-events: none;
  z-index: 0;
  animation: fac-wave-drift 12s ease-in-out infinite alternate;
}

.fac-stories__catch {
  margin: 32px 0 0;
  font-family: var(--ff-kosugi, 'Kosugi Maru', sans-serif);
  font-size: var(--fs-32);
  line-height: 48px;
  text-align: center;
  color: var(--color-heading);
}

.fac-stories__list {
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin-top: 40px;
}

.fac-story {
  display: flex;
  gap: 40px;
  align-items: center;
  padding: 32px;
  background: var(--c-white);
  border-radius: 28px;
}
.fac-story--reverse {
  flex-direction: row-reverse;
}

.fac-story__photo {
  flex: 0 0 610px;
  width: 610px;
  height: 352px;
  object-fit: cover;
  border-radius: 20px;
}

.fac-story__info {
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex: 1 1 auto;
}

.fac-story__label {
  margin: 0;
  font-family: var(--ff-jost);
  font-size: var(--fs-18);
  font-weight: 500;
  line-height: 27px;
  color: var(--color-heading);
  white-space: pre-wrap;
}

.fac-story__name {
  margin: 0;
  font-family: var(--ff-kosugi, 'Kosugi Maru', sans-serif);
  font-size: var(--fs-32);
  font-weight: 400;
  line-height: 48px;
  color: var(--color-heading);
}

.fac-story__text {
  margin: 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-16);
  line-height: 30px;
  color: var(--fac-body);
}

.fac-story__spec {
  margin: 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-18);
  font-weight: 500;
  line-height: 32px;
  color: var(--color-heading);
}

.fac-story__note {
  margin: 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-16);
  line-height: 24px;
  color: var(--fac-caption);
}

/* --------------------------------------------------------------------------
   05 / 処理・計量設備 — Figma 18385:9382
   -------------------------------------------------------------------------- */

.fac-equipment {
  padding-block: 104px;
  background: linear-gradient(
    to bottom,
    var(--c-white) 0%,
    #fbfeff 55%,
    var(--fac-mid) 100%
  );
}

.fac-equipment__wave {
  top: 279px;
  left: -321px;
  width: 2138px;
  height: 1043px;
  animation: fac-wave-drift 13s ease-in-out infinite alternate;
}

.fac-equipment__circle {
  top: -155px;
  left: 1115px;
  width: 440px;
  height: 440px;
}

.fac-equipment__lead {
  margin: 40px 0 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-18);
  line-height: 33px;
  text-align: center;
  color: var(--fac-body);
}

.fac-equipment__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin: 40px 0 0;
  padding: 0;
  list-style: none;
}

.fac-equipment__card {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-height: 376px;
  padding: 28px;
  background: var(--fac-panel);
  border-radius: 24px;
}

.fac-equipment__icon {
  width: 200px;
  height: 124px;
}

.fac-equipment__name {
  margin: 0;
  font-family: var(--ff-kosugi, 'Kosugi Maru', sans-serif);
  font-size: var(--fs-28);
  font-weight: 400;
  line-height: 42px;
  color: var(--color-heading);
}

.fac-equipment__model {
  margin: 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-16);
  font-weight: 500;
  line-height: 30px;
  color: var(--color-heading);
}

.fac-equipment__text {
  margin: 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-16);
  line-height: 30px;
  color: var(--fac-body);
}

/* Machinery inventory — the Figma layer is literally named "semantic table",
   so it is a real <table>. It scrolls inside its own box rather than making
   the page scroll sideways. */
.fac-inventory {
  margin-top: 40px;
  padding: 32px;
  background: var(--c-white);
  border: 1px solid var(--fac-border);
  border-radius: 24px;
}

.fac-inventory__scroll {
  overflow-x: auto;
}

.fac-inventory__table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--ff-jp);
}

.fac-inventory__table th {
  padding: 0 0 20px;
  font-size: var(--fs-18);
  font-weight: 500;
  line-height: 29px;
  text-align: left;
  color: var(--color-heading);
}
.fac-inventory__table th.fac-inventory__count {
  font-size: var(--fs-16);
}

.fac-inventory__table td {
  padding: 0;
  font-size: var(--fs-18);
  line-height: 41px;
  color: var(--fac-body);
}

.fac-inventory__count {
  width: 116px;
  text-align: right;
  white-space: nowrap;
}
.fac-inventory__table td.fac-inventory__count {
  font-weight: 500;
  color: var(--color-heading);
}

/* --------------------------------------------------------------------------
   06 / 保有車両・重機 — Figma 18388:9382
   -------------------------------------------------------------------------- */

.fac-vehicles {
  padding-block: 104px;
  background: var(--color-heading);
}

.fac-vehicles__circle {
  top: 170px;
  left: -360px;
  width: 680px;
  height: 680px;
}

.fac-vehicles__intro {
  display: flex;
  gap: 64px;
  align-items: center;
}

.fac-vehicles__copy {
  display: flex;
  flex-direction: column;
  gap: 32px;
  flex: 0 1 610px;
}

.fac-vehicles__catch {
  margin: 0;
  font-family: var(--ff-kosugi, 'Kosugi Maru', sans-serif);
  font-size: var(--fs-32);
  line-height: 48px;
  color: var(--c-white);
}

.fac-vehicles__text {
  margin: 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-18);
  line-height: 33px;
  color: var(--c-white);
}

.fac-vehicles__photo {
  flex: 0 0 610px;
  width: 610px;
  height: 340px;
  object-fit: cover;
  border-radius: 24px;
}

.fac-vehicles__groups {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  margin-top: 48px;
}

.fac-fleet {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-height: 468px;
  padding: 32px;
  background: var(--c-white);
  border-radius: 24px;
}

.fac-fleet__title {
  margin: 0;
  font-family: var(--ff-kosugi, 'Kosugi Maru', sans-serif);
  font-size: var(--fs-24);
  font-weight: 400;
  line-height: 36px;
  color: var(--color-heading);
}

.fac-fleet__table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--ff-jp);
}
.fac-fleet__table td {
  padding: 0;
  font-size: var(--fs-16);
  line-height: 36px;
  color: var(--fac-body);
}
.fac-fleet__count {
  width: 58px;
  text-align: right;
  white-space: nowrap;
}
.fac-fleet__table td.fac-fleet__count {
  font-weight: 500;
  color: var(--color-heading);
}

/* --------------------------------------------------------------------------
   07 / コンテナ — Figma 18390:9382
   -------------------------------------------------------------------------- */

.fac-containers {
  padding-block: 104px;
  background: linear-gradient(
    to bottom,
    var(--c-white) 0%,
    #f7fdfe 52%,
    #f0fafd 100%
  );
}

.fac-containers__wave {
  top: 358px;
  left: -321px;
  width: 2138px;
  height: 1043px;
  animation: fac-wave-drift 13s ease-in-out infinite alternate;
}

.fac-containers__circle {
  top: -180px;
  left: -230px;
  width: 440px;
  height: 440px;
}

.fac-containers__catch {
  margin: 32px 0 0;
  font-family: var(--ff-kosugi, 'Kosugi Maru', sans-serif);
  font-size: var(--fs-32);
  line-height: 48px;
  text-align: center;
  color: var(--color-heading);
}

.fac-containers__lead {
  margin: 40px 0 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-18);
  line-height: 33px;
  text-align: center;
  color: var(--fac-body);
}

.fac-containers__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  margin: 40px 0 0;
  padding: 0;
  list-style: none;
}

.fac-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 28px;
  background: var(--fac-panel);
  border-radius: 24px;
}

.fac-container__photo {
  width: 100%;
  height: 312px;
  object-fit: cover;
  border-radius: 18px;
}

.fac-container__label {
  margin: 0;
  font-family: var(--ff-jost);
  font-size: var(--fs-18);
  font-weight: 500;
  line-height: 27px;
  color: var(--color-heading);
  white-space: pre-wrap;
}

.fac-container__name {
  margin: 0;
  font-family: var(--ff-kosugi, 'Kosugi Maru', sans-serif);
  font-size: var(--fs-32);
  font-weight: 400;
  line-height: 48px;
  color: var(--color-heading);
}

.fac-container__text {
  margin: 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-18);
  line-height: 33px;
  color: var(--fac-body);
}

.fac-container__note {
  margin: 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-16);
  line-height: 30px;
  color: var(--fac-caption);
}

.fac-consult {
  display: flex;
  gap: 32px;
  align-items: center;
  justify-content: space-between;
  margin-top: 40px;
  padding: 32px;
  background: var(--color-heading);
  border-radius: 24px;
}

.fac-consult__text {
  margin: 0;
  font-family: var(--ff-kosugi, 'Kosugi Maru', sans-serif);
  font-size: 22px;
  line-height: 35px;
  color: var(--c-white);
}

.fac-consult__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 56px;
  padding: 12px 24px;
  background: var(--c-white);
  border: 1px solid var(--fac-border);
  border-radius: 999px;
  font-family: var(--ff-jp);
  font-size: var(--fs-16);
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.1em;
  color: var(--color-heading);
  text-decoration: none;
  transition: background-color 200ms ease, color 200ms ease;
}
.fac-consult__btn:hover {
  background: var(--c-teal-900);
  color: var(--c-white);
}
.fac-consult__btn:focus-visible {
  outline: 2px solid var(--c-white);
  outline-offset: 4px;
}
.fac-consult__btn span {
  transition: transform 200ms ease;
}
.fac-consult__btn:hover span {
  transform: translateX(4px);
}

/* --------------------------------------------------------------------------
   08 / 安全・環境への取り組み — Figma 18395:9385
   -------------------------------------------------------------------------- */

.fac-safety {
  padding-block: 104px;
  background: linear-gradient(
    to right,
    var(--fac-panel) 0%,
    #fbfeff 58%,
    #eef9fd 100%
  );
}

.fac-safety__wave {
  top: -71px;
  left: -366px;
  width: 1808px;
  height: 811px;
  animation: fac-wave-drift 14s ease-in-out infinite alternate;
}

.fac-safety__circle {
  top: -190px;
  left: 1110px;
  width: 440px;
  height: 440px;
}

.fac-safety__inner {
  display: flex;
  gap: 72px;
  align-items: center;
}

.fac-safety__intro {
  display: flex;
  flex-direction: column;
  gap: 32px;
  flex: 0 1 480px;
}

.fac-safety__catch {
  margin: 0;
  font-family: var(--ff-kosugi, 'Kosugi Maru', sans-serif);
  font-size: var(--fs-32);
  line-height: 48px;
  color: var(--color-heading);
}

.fac-safety__text {
  margin: 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-18);
  line-height: 33px;
  color: var(--fac-body);
}

/* The guidance button opens the shared dialog; the arrow does not travel. */
.fac-btn--guide span {
  transition: none;
}
.fac-btn--guide:hover span {
  transform: none;
}

.fac-safety__list {
  display: flex;
  flex-direction: column;
  gap: 24px;
  flex: 1 1 732px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fac-safety__item {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 28px;
  background: var(--c-white);
  border-radius: 20px;
}

.fac-safety__item-title {
  margin: 0;
  font-family: var(--ff-kosugi, 'Kosugi Maru', sans-serif);
  font-size: 22px;
  font-weight: 400;
  line-height: 33px;
  color: var(--color-heading);
}

.fac-safety__item-text {
  margin: 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-16);
  line-height: 30px;
  color: var(--fac-body);
}

/* Block titles that sit on the navy vehicles section. */
.section-head--on-dark .section-head__title {
  color: var(--c-white);
}

/* --- Visitor guidance dialog — shared with /about/, Figma 18404:9461 ------ */

.visit-dialog {
  width: min(840px, calc(100vw - 40px));
  max-height: 90dvh;
  padding: 0;
  background: transparent;
  border: 0;
  overflow: visible;
}
.visit-dialog::backdrop {
  background: rgba(7, 54, 68, 0.55);
}

.visit-dialog__panel {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-height: 90dvh;
  padding: 40px;
  background: var(--c-white);
  border: 1px solid var(--fac-border);
  border-radius: 28px;
}

.visit-dialog__head {
  display: flex;
  gap: 24px;
  align-items: center;
  justify-content: space-between;
}

.visit-dialog__title {
  margin: 0;
  font-family: var(--ff-kosugi, 'Kosugi Maru', sans-serif);
  font-size: var(--fs-32);
  font-weight: 400;
  line-height: 48px;
  color: var(--color-heading);
}

.visit-dialog__close {
  min-height: 44px;
  padding: 0 12px;
  background: none;
  border: 0;
  font-family: var(--ff-jp);
  font-size: var(--fs-16);
  font-weight: 500;
  line-height: 44px;
  color: var(--color-heading);
  cursor: pointer;
}
.visit-dialog__close:focus-visible {
  outline: 2px solid var(--c-teal-900);
  outline-offset: 4px;
}

/* Internal scroll area, so a long list never pushes the dialog off screen. */
.visit-dialog__body {
  overflow-y: auto;
  min-height: 0;
}
.visit-dialog__body p {
  margin: 0 0 24px;
  font-family: var(--ff-jp);
  font-size: var(--fs-16);
  line-height: 30px;
  color: var(--fac-body);
}
.visit-dialog__body p:last-child {
  margin-bottom: 0;
}
.visit-dialog__body b {
  font-weight: 500;
  color: var(--color-heading);
}

.visit-dialog__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  align-self: flex-start;
  min-height: 56px;
  padding: 12px 24px;
  background: var(--color-heading);
  border-radius: 999px;
  font-family: var(--ff-jp);
  font-size: var(--fs-16);
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.1em;
  color: var(--c-white);
  text-decoration: none;
  transition: background-color 200ms ease;
}
.visit-dialog__action:hover {
  background: var(--c-teal-900);
}
.visit-dialog__action:focus-visible {
  outline: 2px solid var(--c-teal-900);
  outline-offset: 4px;
}

/* --------------------------------------------------------------------------
   Responsive — handoff §05
   -------------------------------------------------------------------------- */

@media (max-width: 64rem) {
  .fac-overview__stamp,
  .fac-equipment__circle {
    display: none;
  }
  .fac-overview__scales,
  .fac-equipment__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .fac-story {
    gap: 24px;
  }
  .fac-story__photo {
    flex: 0 1 420px;
    width: 100%;
  }
  .fac-vehicles__circle,
  .fac-containers__circle,
  .fac-safety__circle {
    display: none;
  }
  .fac-vehicles__intro,
  .fac-safety__inner {
    gap: 40px;
  }
  .fac-vehicles__photo {
    flex: 0 1 420px;
    width: 100%;
  }
  .fac-consult {
    gap: 20px;
  }
}

@media (max-width: 48rem) {
  .fac-overview,
  .fac-stories,
  .fac-equipment {
    padding-block: 64px;
  }
  .fac-wrap {
    padding-inline: 20px;
  }

  .fac-overview__catch,
  .fac-stories__catch {
    font-size: var(--fs-24);
    line-height: 1.6;
  }
  .fac-overview__lead,
  .fac-equipment__lead {
    font-size: var(--fs-16);
    line-height: 1.9;
  }

  .fac-overview__scales,
  .fac-equipment__grid {
    grid-template-columns: 1fr;
  }
  .fac-overview__scale-num {
    font-size: var(--fs-40);
    line-height: 1.3;
  }

  .fac-story,
  .fac-story--reverse {
    flex-direction: column;
    align-items: stretch;
    padding: 20px;
    border-radius: 24px;
  }
  .fac-story__photo {
    flex: 1 1 auto;
    width: 100%;
    height: auto;
    aspect-ratio: 610 / 352;
  }
  .fac-story__name {
    font-size: var(--fs-24);
    line-height: 1.5;
  }
  .fac-story__spec {
    font-size: var(--fs-16);
  }
  .fac-btn {
    width: 100%;
  }

  .fac-equipment__card {
    min-height: 0;
    padding: 20px;
  }
  .fac-inventory {
    padding: 20px;
  }
  /* Name and count stay two columns, with the name wrapping. */
  .fac-inventory__table td,
  .fac-inventory__table th {
    font-size: var(--fs-16);
    line-height: 1.9;
    vertical-align: top;
  }
  .fac-inventory__count {
    width: 72px;
  }

  .fac-vehicles,
  .fac-containers,
  .fac-safety {
    padding-block: 64px;
  }
  .fac-vehicles__intro,
  .fac-safety__inner {
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
  }
  .fac-vehicles__copy,
  .fac-vehicles__photo,
  .fac-safety__intro,
  .fac-safety__list {
    flex: 1 1 auto;
  }
  .fac-vehicles__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 610 / 340;
  }
  .fac-vehicles__catch,
  .fac-containers__catch,
  .fac-safety__catch {
    font-size: var(--fs-24);
    line-height: 1.6;
  }
  .fac-vehicles__text,
  .fac-containers__lead,
  .fac-safety__text,
  .fac-container__text {
    font-size: var(--fs-16);
    line-height: 1.9;
  }
  .fac-vehicles__groups,
  .fac-containers__grid {
    grid-template-columns: 1fr;
  }
  .fac-fleet {
    min-height: 0;
    padding: 20px;
  }
  /* Name and count stay two columns, with the name wrapping. */
  .fac-fleet__table td {
    font-size: var(--fs-16);
    line-height: 1.9;
    vertical-align: top;
  }
  .fac-container {
    padding: 20px;
  }
  .fac-container__photo {
    height: auto;
    aspect-ratio: 570 / 312;
  }
  .fac-container__name {
    font-size: var(--fs-24);
    line-height: 1.5;
  }
  .fac-consult {
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
    padding: 24px;
  }
  .fac-consult__text {
    font-size: var(--fs-18);
    line-height: 1.7;
  }
  .fac-consult__btn {
    width: 100%;
  }
  .fac-safety__item {
    padding: 20px;
  }
  .fac-safety__item-title {
    font-size: var(--fs-18);
    line-height: 1.6;
  }

  .visit-dialog__panel {
    gap: 16px;
    padding: 24px;
    border-radius: 20px;
  }
  .visit-dialog__title {
    font-size: var(--fs-24);
    line-height: 1.5;
  }
  .visit-dialog__action {
    width: 100%;
  }
}

/* --------------------------------------------------------------------------
   Reduced motion — handoff §03
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .fac-stamp,
  .fac-overview__wave,
  .fac-stories__wave,
  .fac-equipment__wave,
  .fac-containers__wave,
  .fac-safety__wave {
    animation: none;
  }
  .fac-btn,
  .fac-btn span,
  .fac-consult__btn,
  .fac-consult__btn span,
  .visit-dialog__action {
    transition: none;
  }
  .fac-btn:hover span,
  .fac-consult__btn:hover span {
    transform: none;
  }
}
