@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
}

:where(:root) {
  scrollbar-gutter: stable;
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

:where(body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd) {
  margin: 0;
}

:where(body) {
  min-height: 100vh;
}

:where(ul, ol) {
  margin: 0;
  padding: 0;
  list-style-type: "";
}

:where(a:not([class])) {
  color: currentColor;
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

:where(a[class]) {
  display: block;
  text-decoration: none;
  color: inherit;
}

:where(img, picture) {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

:where(svg) {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  fill: currentColor;
}

:where(input, button, textarea, select) {
  font-family: inherit;
  font-size: inherit;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  color: inherit;
}

:where(button) {
  padding: 0;
  border: none;
  background-color: transparent;
  cursor: pointer;
  touch-action: manipulation;
}

:where(address) {
  font-style: normal;
}

:where(dialog) {
  width: auto;
  max-width: none;
  height: auto;
  max-height: none;
  margin: 0;
  padding: 0;
  border: none;
  position: static;
  background: transparent;
  font: inherit;
  color: inherit;
}

:where(fieldset) {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

:where(legend) {
  margin: 0;
  padding: 0;
}

:where(summary)::-webkit-details-marker {
  display: none;
}

:root {
  --duration: 0.3s;
  --font-base: "Noto Sans JP", "Noto Sans CJK JP", sans-serif;
  --font-en: "Akshar", sans-serif;
  --color-text: #000;
  --color-gray: #7c7c7c;
  --color-gray-light: #b0b0b0;
  --color-dot: #6f6f6f;
  --color-btn: #313131;
  --color-cyan: #00dadd;
  --color-box: #6c7676;
  --color-footer: #5a5a5a;
  --color-footer-text: #c5c5c5;
  --gradient: linear-gradient(90deg, #00abe0, #e8fd84);
}

html:not([lang=ja]) {
  word-break: break-word;
}
html.is-scroll-locked {
  position: fixed;
  inset: 0;
  width: 100%;
  overflow: hidden;
}

body {
  font-family: var(--font-base);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.75;
  color: var(--color-text);
  background-color: #fff;
  font-feature-settings: "palt";
  -webkit-text-size-adjust: 100%;
}
@media screen and (max-width: 768px) {
  body {
    font-size: 0.875rem;
  }
}

* {
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1024px) {
  * {
    letter-spacing: 0.02em;
  }
}

/**
 * l-container
 */
.l-container {
  overflow-x: clip;
  position: relative;
}

/**
 * l-header
 * グローバルナビはなく、「KMT inc. Group companies」と Contact のボタンをメインビジュアルの上に重ねる（追従しない）。
 * PC は 1366 基準（1366 以上は固定）、SP（md 以下）は 750 デザインの px を f.svw で指定。
 */
.l-header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
}
.l-header__group {
  position: absolute;
  top: min(3.2064421669vw, 2.7375rem);
  right: min(26.0614934114vw, 22.25rem);
  color: var(--color-gray-light);
  font-family: var(--font-en);
  font-size: min(2.196193265vw, 1.875rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .l-header__group {
    top: 16.1866666667vw;
    right: 0;
    left: 0;
    color: #fff;
    font-size: 4vw;
    text-align: center;
  }
}
.l-header__contact {
  position: absolute;
  top: 0;
  right: 0;
  width: min(20.6442166911vw, 17.625rem);
  height: min(8.2723279649vw, 7.0625rem);
  padding-top: min(3.6237188873vw, 3.09375rem);
  border-bottom-left-radius: min(1.4641288433vw, 1.25rem);
  background: linear-gradient(90deg, #00abe0, #c8f291);
  color: #fff;
  font-family: var(--font-en);
  font-size: min(2.5622254758vw, 2.1875rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.05em;
  text-align: center;
  transition: opacity var(--duration);
}
.l-header__contact:focus-visible {
  opacity: 0.8;
}
@media (any-hover: hover) {
  .l-header__contact:hover {
    opacity: 0.8;
  }
}
@media screen and (max-width: 768px) {
  .l-header__contact {
    width: 24.8vw;
    height: 10.6666666667vw;
    padding-top: 3.92vw;
    border-bottom-left-radius: 2.1333333333vw;
    font-size: 3.3333333333vw;
  }
}

/**
 * l-footer
 * 背景の質感は デザイン/bridcia/links/bridcia_footer.psd を #5a5a5a の上に 30% で重ねて書き出したもの（bg_footer.jpg）。
 * 継ぎ目が出ないように加工した正方形の画像（800px）を、280px で繰り返して並べる。
 * PC は 1366 デザインの px。SP（md 以下）は 750 デザインの px を f.svw で指定。SP は 1 列。
 */
.l-footer {
  overflow: hidden;
  padding: 3.85rem 1.875rem 4.8125rem;
  background-color: var(--color-footer);
  background-image: url("../images/top/bg_footer.webp");
  background-size: 17.5rem 17.5rem;
  color: var(--color-footer-text);
}
@media screen and (max-width: 768px) {
  .l-footer {
    padding: 17.1066666667vw 5.3333333333vw 16.2666666667vw 13.8666666667vw;
  }
}
.l-footer__inner {
  max-width: 68.75rem;
  margin-inline: auto;
}
.l-footer__name {
  display: flex;
  align-items: center;
  margin-right: calc(50% - 50vw);
  font-size: max(2.75rem, min(5.0512445095vw, 4.3125rem));
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.01em;
}
@media screen and (max-width: 768px) {
  .l-footer__name {
    margin-right: -5.3333333333vw;
    font-size: 6.6vw;
    letter-spacing: 0.08em;
  }
}
.l-footer__name::after {
  content: "";
  flex: 1;
  height: 2.25rem;
  margin-left: 2.1875rem;
  background-image: radial-gradient(circle, var(--color-dot) 0.090625rem, transparent 0.103125rem);
  background-size: 0.45rem 0.45rem;
}
@media screen and (max-width: 768px) {
  .l-footer__name::after {
    height: 4.8vw;
    margin-left: 2.6vw;
    background-image: radial-gradient(circle, var(--color-dot) 0.1933333333vw, transparent 0.22vw);
    background-size: 0.96vw 0.96vw;
  }
}
.l-footer__body {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem 0;
  margin-top: 3.10625rem;
}
@media screen and (max-width: 768px) {
  .l-footer__body {
    display: block;
    margin-top: 8.5733333333vw;
  }
}
.l-footer__info {
  flex-shrink: 0;
  width: 29.0625rem;
}
@media screen and (max-width: 1024px) {
  .l-footer__info {
    width: 25rem;
  }
}
@media screen and (max-width: 768px) {
  .l-footer__info {
    width: auto;
  }
}
.l-footer__address {
  font-size: 1.5rem;
  font-weight: 300;
  line-height: 1.35;
  letter-spacing: 0.07em;
}
@media screen and (max-width: 768px) {
  .l-footer__address {
    font-size: 2.9333333333vw;
    line-height: 1.5;
    letter-spacing: 0.087em;
  }
}
.l-footer__address-line {
  display: block;
  letter-spacing: inherit;
}
@media screen and (max-width: 768px) {
  .l-footer__address-line {
    display: inline;
  }
}
.l-footer__tel {
  margin-top: 2.34375rem;
  font-size: 2.125rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.086em;
}
@media screen and (max-width: 768px) {
  .l-footer__tel {
    margin-top: 2.56vw;
    font-size: 4.2666666667vw;
  }
}
.l-footer__tel-link {
  display: inline;
  letter-spacing: inherit;
}
.l-footer__hours {
  margin-top: 1.54375rem;
  font-size: 1.5rem;
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: 0.084em;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .l-footer__hours {
    margin-top: 1.56vw;
    font-size: 2.9333333333vw;
  }
}
.l-footer__group {
  padding-top: 0.09375rem;
}
@media screen and (max-width: 768px) {
  .l-footer__group {
    margin-top: 9.0533333333vw;
    padding-top: 0;
  }
}
.l-footer__group-title {
  font-family: var(--font-en);
  font-size: 2rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .l-footer__group-title {
    font-size: 4.6666666667vw;
  }
}
.l-footer__group-list {
  margin-top: 0.7375rem;
  font-size: 1.25rem;
  font-weight: 300;
  line-height: 1.8;
  letter-spacing: 0.07em;
}
@media screen and (max-width: 768px) {
  .l-footer__group-list {
    margin-top: 1vw;
    font-size: 2.9333333333vw;
    line-height: 1.62;
  }
}
.l-footer__group-item {
  letter-spacing: inherit;
}
.l-footer__group-link {
  display: inline;
  text-decoration: underline;
  letter-spacing: inherit;
  transition: opacity var(--duration);
}
.l-footer__group-link:focus-visible {
  opacity: 0.7;
}
@media (any-hover: hover) {
  .l-footer__group-link:hover {
    opacity: 0.7;
  }
}
.l-footer__copy {
  margin-top: 4.75rem;
  font-size: 1.125rem;
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: 0.066em;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .l-footer__copy {
    margin-top: 6.56vw;
    font-size: 2.1333333333vw;
    letter-spacing: 0.1em;
    text-align: left;
  }
}
.l-footer__copy-text {
  font-size: inherit;
  letter-spacing: inherit;
}

/**
 * アニメーションのためのスタイル
 */
[data-anime=fadeIn] {
  opacity: 0;
  transition-property: opacity;
  transition-duration: var(--duration);
}
[data-anime=fadeIn].is-found {
  opacity: 1;
}

[data-anime=fadeInUp] {
  opacity: 0;
  translate: 0 1.875rem;
  transition-property: opacity, translate;
  transition-duration: var(--duration);
}
[data-anime=fadeInUp].is-found {
  opacity: 1;
  translate: 0;
}

[data-anime=fadeInDown] {
  opacity: 0;
  translate: 0 -1.875rem;
  transition-property: opacity, translate;
  transition-duration: var(--duration);
}
[data-anime=fadeInDown].is-found {
  opacity: 1;
  translate: 0;
}

[data-anime=fadeInLeft] {
  opacity: 0;
  translate: -1.875rem 0;
  transition-property: opacity, translate;
  transition-duration: var(--duration);
}
[data-anime=fadeInLeft].is-found {
  opacity: 1;
  translate: 0;
}

[data-anime=fadeInRight] {
  opacity: 0;
  translate: -1.875rem 0;
  transition-property: opacity, translate;
  transition-duration: var(--duration);
}
[data-anime=fadeInRight].is-found {
  opacity: 1;
  translate: 0;
}

[data-anime][data-anime-duration="0.1"] {
  transition-duration: 0.1s;
}
[data-anime][data-anime-delay="0.1"] {
  transition-delay: 0.1s;
}
[data-anime][data-anime-duration="0.2"] {
  transition-duration: 0.2s;
}
[data-anime][data-anime-delay="0.2"] {
  transition-delay: 0.2s;
}
[data-anime][data-anime-duration="0.3"] {
  transition-duration: 0.3s;
}
[data-anime][data-anime-delay="0.3"] {
  transition-delay: 0.3s;
}
[data-anime][data-anime-duration="0.4"] {
  transition-duration: 0.4s;
}
[data-anime][data-anime-delay="0.4"] {
  transition-delay: 0.4s;
}
[data-anime][data-anime-duration="0.5"] {
  transition-duration: 0.5s;
}
[data-anime][data-anime-delay="0.5"] {
  transition-delay: 0.5s;
}
[data-anime][data-anime-duration="0.6"] {
  transition-duration: 0.6s;
}
[data-anime][data-anime-delay="0.6"] {
  transition-delay: 0.6s;
}
[data-anime][data-anime-duration="0.7"] {
  transition-duration: 0.7s;
}
[data-anime][data-anime-delay="0.7"] {
  transition-delay: 0.7s;
}
[data-anime][data-anime-duration="0.8"] {
  transition-duration: 0.8s;
}
[data-anime][data-anime-delay="0.8"] {
  transition-delay: 0.8s;
}
[data-anime][data-anime-duration="0.9"] {
  transition-duration: 0.9s;
}
[data-anime][data-anime-delay="0.9"] {
  transition-delay: 0.9s;
}
[data-anime][data-anime-duration="1"] {
  transition-duration: 1s;
}
[data-anime][data-anime-delay="1"] {
  transition-delay: 1s;
}
[data-anime][data-anime-duration="1.1"] {
  transition-duration: 1.1s;
}
[data-anime][data-anime-delay="1.1"] {
  transition-delay: 1.1s;
}
[data-anime][data-anime-duration="1.2"] {
  transition-duration: 1.2s;
}
[data-anime][data-anime-delay="1.2"] {
  transition-delay: 1.2s;
}
[data-anime][data-anime-duration="1.3"] {
  transition-duration: 1.3s;
}
[data-anime][data-anime-delay="1.3"] {
  transition-delay: 1.3s;
}
[data-anime][data-anime-duration="1.4"] {
  transition-duration: 1.4s;
}
[data-anime][data-anime-delay="1.4"] {
  transition-delay: 1.4s;
}
[data-anime][data-anime-duration="1.5"] {
  transition-duration: 1.5s;
}
[data-anime][data-anime-delay="1.5"] {
  transition-delay: 1.5s;
}
[data-anime][data-anime-duration="1.6"] {
  transition-duration: 1.6s;
}
[data-anime][data-anime-delay="1.6"] {
  transition-delay: 1.6s;
}
[data-anime][data-anime-duration="1.7"] {
  transition-duration: 1.7s;
}
[data-anime][data-anime-delay="1.7"] {
  transition-delay: 1.7s;
}
[data-anime][data-anime-duration="1.8"] {
  transition-duration: 1.8s;
}
[data-anime][data-anime-delay="1.8"] {
  transition-delay: 1.8s;
}
[data-anime][data-anime-duration="1.9"] {
  transition-duration: 1.9s;
}
[data-anime][data-anime-delay="1.9"] {
  transition-delay: 1.9s;
}
[data-anime][data-anime-duration="2"] {
  transition-duration: 2s;
}
[data-anime][data-anime-delay="2"] {
  transition-delay: 2s;
}
[data-anime][data-anime-duration="2.1"] {
  transition-duration: 2.1s;
}
[data-anime][data-anime-delay="2.1"] {
  transition-delay: 2.1s;
}
[data-anime][data-anime-duration="2.2"] {
  transition-duration: 2.2s;
}
[data-anime][data-anime-delay="2.2"] {
  transition-delay: 2.2s;
}
[data-anime][data-anime-duration="2.3"] {
  transition-duration: 2.3s;
}
[data-anime][data-anime-delay="2.3"] {
  transition-delay: 2.3s;
}
[data-anime][data-anime-duration="2.4"] {
  transition-duration: 2.4s;
}
[data-anime][data-anime-delay="2.4"] {
  transition-delay: 2.4s;
}
[data-anime][data-anime-duration="2.5"] {
  transition-duration: 2.5s;
}
[data-anime][data-anime-delay="2.5"] {
  transition-delay: 2.5s;
}
[data-anime][data-anime-duration="2.6"] {
  transition-duration: 2.6s;
}
[data-anime][data-anime-delay="2.6"] {
  transition-delay: 2.6s;
}
[data-anime][data-anime-duration="2.7"] {
  transition-duration: 2.7s;
}
[data-anime][data-anime-delay="2.7"] {
  transition-delay: 2.7s;
}
[data-anime][data-anime-duration="2.8"] {
  transition-duration: 2.8s;
}
[data-anime][data-anime-delay="2.8"] {
  transition-delay: 2.8s;
}
[data-anime][data-anime-duration="2.9"] {
  transition-duration: 2.9s;
}
[data-anime][data-anime-delay="2.9"] {
  transition-delay: 2.9s;
}
[data-anime][data-anime-duration="3"] {
  transition-duration: 3s;
}
[data-anime][data-anime-delay="3"] {
  transition-delay: 3s;
}

@media screen and (max-width: 768px) {
  [data-anime] {
    transition-delay: 0s;
  }
}
.in-view {
  opacity: 0;
  filter: blur(4px);
  transition: opacity 0.8s cubic-bezier(0.4, 0, 0.4, 1), filter 0.6s cubic-bezier(0.4, 0, 0.4, 1);
}
.in-view.is-fadein {
  opacity: 1;
  filter: none;
}

.in-view--fade {
  opacity: 0;
  transition: opacity 0.8s cubic-bezier(0.4, 0, 0.4, 1);
}
.in-view--fade.is-fadein {
  opacity: 1;
}

/**
 * Layout
 */
/**
 * Visibility
 */
.u-sr-only {
  clip: rect(0, 0, 0, 0);
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
}

@media screen and (min-width: 769px) {
  .u-hidden-md {
    display: none !important;
  }
}

@media screen and (min-width: 1025px) {
  .u-hidden-mlg {
    display: none !important;
  }
}

@media screen and (max-width: 768px) {
  .u-hidden-max-md {
    display: none !important;
  }
}

@media screen and (max-width: 1024px) {
  .u-hidden-max-lg {
    display: none !important;
  }
}

/**
 * Typography
 */
.u-font-bold {
  font-weight: 700;
}

.u-font-black {
  font-weight: 900;
}

.u-text-gray {
  color: var(--color-gray);
}

.u-leading-trim {
  margin-block: calc((1em - 1lh) / 2);
}
.u-leading-trim[lang=en] {
  margin-block: calc((1cap - 1lh) / 2);
}

/**
 * Other
 */
.u-alpha {
  transition: opacity var(--duration);
}
.u-alpha:focus-visible {
  opacity: 0.7;
}
@media (any-hover: hover) {
  .u-alpha:hover {
    opacity: 0.7;
  }
}

/**
 * トップページ
 * デザイン: デザイン/bridcia/bridcia_corporate_v4.ai（PC 1366 幅・SP 750 幅）
 * PC は 1366 デザインの px。f.cvw( px, 1366 ) は 1366 以下で縮み、1366 以上は固定。文字は f.fluid( px, 最小 )。
 * SP（md 以下）は 750 デザインの px を f.svw( px ) で指定（画面の幅に合わせて伸び縮み）。
 */
/**
 * p-mv（メインビジュアル）
 * SP は写真の切り抜きが違うので、SP 用の画像（img_mv-01_sp.jpg）に <picture> で切り替える。
 * PC は写真の下に白い帯（14）がある。
 * 「株式会社 BRIDCIA」は斜体（Noto Sans JP に斜体はないので skew で傾ける）。
 */
.p-mv {
  position: relative;
  padding-bottom: min(1.0248901903vw, 0.875rem);
}
@media screen and (max-width: 768px) {
  .p-mv {
    padding-bottom: 0;
  }
}
.p-mv__img {
  display: block;
  height: min(49.1947291362vw, 42rem);
}
@media screen and (max-width: 768px) {
  .p-mv__img {
    height: 140.5333333333vw;
  }
}
.p-mv__img-inner {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-mv__copy {
  position: absolute;
  top: min(22.298682284vw, 19.0375rem);
  left: calc(50% - min(40.1171303075vw, 34.25rem));
  color: #fff;
  text-shadow: 0.05em 0.05em 0.12em rgba(0, 0, 0, 0.45);
}
@media screen and (max-width: 768px) {
  .p-mv__copy {
    top: 64.48vw;
    left: 15.7333333333vw;
  }
}
.p-mv__title {
  font-weight: 700;
  line-height: 1;
  text-shadow: min(0.2928257687vw, 0.25rem) min(0.5124450952vw, 0.4375rem) min(0.7320644217vw, 0.625rem) #222;
}
.p-mv__title-ja, .p-mv__title-en {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  transform: skewX(-12deg);
  transform-origin: left bottom;
}
.p-mv__title-ja {
  font-size: min(4.6120058565vw, 3.9375rem);
  letter-spacing: 0.02em;
}
@media screen and (max-width: 768px) {
  .p-mv__title-ja {
    font-size: 8.4vw;
  }
}
.p-mv__title-en {
  margin-top: min(0.1464128843vw, 0.125rem);
  margin-left: min(3.0014641288vw, 2.5625rem);
  font-size: min(7.1742313324vw, 6.125rem);
  letter-spacing: 0;
}
@media screen and (max-width: 768px) {
  .p-mv__title-en {
    margin-top: 0.2666666667vw;
    margin-left: 5.4666666667vw;
    font-size: 13.0666666667vw;
  }
}
.p-mv__catch {
  margin-top: min(3.4187408492vw, 2.91875rem);
  font-family: var(--font-en);
  font-size: min(3.6603221083vw, 3.125rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.06em;
  white-space: nowrap;
  text-shadow: min(0.2928257687vw, 0.25rem) min(0.5124450952vw, 0.4375rem) min(0.7320644217vw, 0.625rem) #222;
}
@media screen and (max-width: 768px) {
  .p-mv__catch {
    margin-top: 3.9733333333vw;
    font-size: 5.3333333333vw;
    line-height: 1.5;
  }
}

/**
 * p-intro（小回りの効く配送、あなたの街へ ／ 車種）
 * 背景のグラデーションは デザイン/bridcia/links/bridcia_back.psd から、下の p-plan とつながるように上下で分けて書き出したもの。
 * セクションの大きさに合わせて伸ばす（ぼかしのグラデーションなので伸ばしても崩れない）。
 * 左上・右下の斜めの帯は ::before / ::after（PC は青 → 黄緑、SP は黄緑 → 青）。
 */
.p-intro {
  position: relative;
  padding: 6.8125rem 1.875rem 8.6875rem;
  background: url("../images/top/bg_intro.webp") no-repeat 0 0/100% 100%;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .p-intro {
    padding: 16.1066666667vw 5.3333333333vw 16vw;
    background-image: url("../images/top/bg_intro_sp.webp");
  }
}
.p-intro::before, .p-intro::after {
  content: "";
  position: absolute;
  width: min(17.4231332357vw, 14.875rem);
  aspect-ratio: 1;
  background: var(--gradient);
}
@media screen and (max-width: 768px) {
  .p-intro::before, .p-intro::after {
    width: 20.5333333333vw;
    background: linear-gradient(90deg, #e8fd84, #00abe0);
  }
}
.p-intro::before {
  top: 0;
  left: 0;
  clip-path: polygon(62.2% 0, 100% 0, 0 100%, 0 62.2%);
}
.p-intro::after {
  right: 0;
  bottom: 0;
  clip-path: polygon(100% 0, 100% 37.4%, 37.4% 100%, 0 100%);
}
.p-intro__title {
  font-size: max(1.625rem, min(2.7818448023vw, 2.375rem));
  font-weight: 400;
  line-height: 1.4;
}
@media screen and (max-width: 768px) {
  .p-intro__title {
    font-size: 4.8vw;
  }
}
.p-intro__lead {
  margin-top: 1.6875rem;
  font-size: max(1.125rem, min(2.0497803807vw, 1.75rem));
  font-weight: 500;
  line-height: 1.6;
}
@media screen and (max-width: 768px) {
  .p-intro__lead {
    margin-top: 3.1733333333vw;
    font-size: 3.7333333333vw;
    line-height: 1.79;
  }
}
.p-intro__text {
  max-width: 68.75rem;
  margin: 3.0875rem auto 0;
  font-size: max(1rem, min(1.6837481698vw, 1.4375rem));
  line-height: 1.83;
  letter-spacing: 0.06em;
  text-align: justify;
}
@media screen and (max-width: 768px) {
  .p-intro__text {
    margin-top: 5.0666666667vw;
    font-size: 3.4666666667vw;
    line-height: 1.735;
    letter-spacing: 0.05em;
  }
}
.p-intro__subtitle {
  margin-top: 5.125rem;
  font-size: max(1.25rem, min(2.196193265vw, 1.875rem));
  font-weight: 700;
  line-height: 1.4;
}
@media screen and (max-width: 768px) {
  .p-intro__subtitle {
    margin-top: 9.6vw;
    font-size: 4vw;
  }
}
.p-intro__cars {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-end;
  gap: min(5.8125915081vw, 4.9625rem) min(4.39238653vw, 3.75rem);
  width: min(72.4743777452vw, 61.875rem);
  margin: min(2.5622254758vw, 2.1875rem) auto 0;
}
@media screen and (max-width: 768px) {
  .p-intro__cars {
    gap: 6.5333333333vw 0;
    width: 81.3333333333vw;
    margin-top: 7.1466666667vw;
  }
}
.p-intro__car {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(21.2298682284vw, 18.125rem);
}
@media screen and (max-width: 768px) {
  .p-intro__car {
    width: 50%;
  }
}
.p-intro__car--hijet-van {
  --img-width: min(22.8111273792vw, 19.475rem);
}
@media screen and (max-width: 768px) {
  .p-intro__car--hijet-van {
    --img-width: 30.7866666667vw;
  }
}
.p-intro__car--hijet-cold {
  --img-width: min(22.4963396779vw, 19.20625rem);
}
@media screen and (max-width: 768px) {
  .p-intro__car--hijet-cold {
    --img-width: 31.7333333333vw;
  }
}
.p-intro__car--hijet-hood {
  --img-width: min(21.8374816984vw, 18.64375rem);
}
@media screen and (max-width: 768px) {
  .p-intro__car--hijet-hood {
    --img-width: 29.44vw;
    margin-inline: 25%;
  }
}
.p-intro__car--every-van {
  --img-width: min(23.2650073206vw, 19.8625rem);
  margin-right: min(4.39238653vw, 3.75rem);
}
@media screen and (max-width: 768px) {
  .p-intro__car--every-van {
    --img-width: 30.1066666667vw;
    margin-right: 0;
  }
}
.p-intro__car--every-cold {
  --img-width: min(27.701317716vw, 23.65rem);
}
@media screen and (max-width: 768px) {
  .p-intro__car--every-cold {
    --img-width: 35.84vw;
  }
}
.p-intro__car-img {
  flex-shrink: 0;
  width: var(--img-width);
  max-width: none;
}
.p-intro__car-name {
  margin-top: min(1.1713030747vw, 1rem);
  font-size: max(0.75rem, min(1.3909224012vw, 1.1875rem));
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .p-intro__car-name {
    margin-top: 1.8666666667vw;
    font-size: 2.5333333333vw;
  }
}

/**
 * p-plan（配送プラン ／ 安心の冷凍、冷蔵配送）
 * 背景は p-intro の続きのグラデーション（bg_plan.jpg）に、ずらして並べた点（黒 9%）を重ねる。
 */
.p-plan {
  padding: 6.54375rem 1.875rem 6.61875rem;
  background-image: radial-gradient(circle, rgba(0, 0, 0, 0.09) 0.0875rem, transparent 0.103125rem), radial-gradient(circle, rgba(0, 0, 0, 0.09) 0.0875rem, transparent 0.103125rem), url("../images/top/bg_plan.webp");
  background-position: 0 0, 0.26875rem 0.26875rem, 0 0;
  background-size: 0.5375rem 0.5375rem, 0.5375rem 0.5375rem, 100% 100%;
  background-repeat: repeat, repeat, no-repeat;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .p-plan {
    padding: 13.7866666667vw 5.3333333333vw 12.7733333333vw;
    background-image: radial-gradient(circle, rgba(0, 0, 0, 0.09) 0.28vw, transparent 0.33vw), radial-gradient(circle, rgba(0, 0, 0, 0.09) 0.28vw, transparent 0.33vw), url("../images/top/bg_plan_sp.webp");
    background-position: 0 0, 0.86vw 0.86vw, 0 0;
    background-size: 1.72vw 1.72vw, 1.72vw 1.72vw, 100% 100%;
  }
}
.p-plan__title {
  color: #221714;
  font-size: max(1.375rem, min(2.7086383602vw, 2.3125rem));
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.07em;
}
@media screen and (max-width: 768px) {
  .p-plan__title {
    font-size: 5.0666666667vw;
    line-height: 1.58;
    letter-spacing: -0.01em;
  }
}
.p-plan__list {
  display: flex;
  justify-content: center;
  gap: min(2.196193265vw, 1.875rem);
  margin-top: 3.2625rem;
}
@media screen and (max-width: 768px) {
  .p-plan__list {
    flex-wrap: wrap;
    gap: 2.88vw 3.7333333333vw;
    margin-top: 6.1333333333vw;
  }
}
.p-plan__item {
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
  width: min(23.2796486091vw, 19.875rem);
  height: min(6.2957540264vw, 5.375rem);
  border-radius: 0.4375rem;
  background-color: var(--color-btn);
  color: var(--color-cyan);
  font-size: max(1.0625rem, min(2.196193265vw, 1.875rem));
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 768px) {
  .p-plan__item {
    width: 39.7333333333vw;
    height: 10.7733333333vw;
    border-radius: 1.3333333333vw;
    font-size: 3.7333333333vw;
  }
}
.p-plan__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: min(3.8067349927vw, 3.25rem);
  aspect-ratio: 1;
  background: linear-gradient(90deg, #4cc6c2, #d0f48e);
  clip-path: polygon(37.5% 0, 100% 0, 0 100%, 0 37.5%);
}
@media screen and (max-width: 768px) {
  .p-plan__item::before {
    width: 6.4vw;
  }
}
.p-plan__box {
  width: min(74.2606149341vw, 63.4rem);
  margin: 3.30625rem auto 0;
  padding: min(2.2767203514vw, 1.94375rem) min(2.196193265vw, 1.875rem) min(2.2693997072vw, 1.9375rem);
  border-radius: min(0.5856515373vw, 0.5rem);
  background-color: var(--color-box);
  color: #fff;
}
@media screen and (max-width: 768px) {
  .p-plan__box {
    width: auto;
    margin-top: 10.32vw;
    padding: 2.8vw 4vw 6.2533333333vw;
    border-radius: 1.6vw;
  }
}
.p-plan__label {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: min(37.1888726208vw, 31.75rem);
  height: min(7.3938506589vw, 6.3125rem);
  margin-inline: auto;
  font-size: min(3.074670571vw, 2.625rem);
  font-weight: 700;
  line-height: 1.4;
}
@media screen and (max-width: 768px) {
  .p-plan__label {
    width: 70.4vw;
    height: 16.1333333333vw;
    font-size: 5.0666666667vw;
  }
}
.p-plan__label::before {
  content: "";
  position: absolute;
  inset: 0;
  padding: max(1px, min(0.1098096633vw, 0.09375rem));
  border-radius: min(0.7320644217vw, 0.625rem);
  background: var(--gradient);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
@media screen and (max-width: 768px) {
  .p-plan__label::before {
    padding: 0.2666666667vw;
    border-radius: 1.8666666667vw;
  }
}
.p-plan__label-small {
  font-size: 0.7em;
}
.p-plan__en {
  font-size: min(8.0527086384vw, 6.875rem);
  line-height: 1;
  letter-spacing: -0.01em;
}
@media screen and (max-width: 768px) {
  .p-plan__en {
    margin-top: 1.3333333333vw;
    font-size: 11.3333333333vw;
  }
}
.p-plan__en-small {
  font-size: 0.5em;
  letter-spacing: inherit;
}
@media screen and (max-width: 768px) {
  .p-plan__en-small {
    font-size: 0.53em;
  }
}
.p-plan__body {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  text-align: left;
}
@media screen and (max-width: 768px) {
  .p-plan__body {
    text-align: center;
  }
}
.p-plan__lead {
  margin-top: min(1.0614934114vw, 0.90625rem);
  font-size: min(2.7086383602vw, 2.3125rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 768px) {
  .p-plan__lead {
    margin-top: 5.2266666667vw;
    font-size: 4.9333333333vw;
    letter-spacing: -0.015em;
  }
}
.p-plan__text {
  margin-top: min(0.8199121523vw, 0.7rem);
  font-size: min(1.6837481698vw, 1.4375rem);
  line-height: 1.565;
}
@media screen and (max-width: 768px) {
  .p-plan__text {
    margin-top: 3.8933333333vw;
    font-size: 3.4666666667vw;
    line-height: 1.73;
    letter-spacing: 0.075em;
  }
}
.p-plan__photos {
  display: grid;
  grid-template-columns: 215.7fr 251.2fr 409.7fr;
  gap: min(0.6515373353vw, 0.55625rem);
  width: min(65.4978038067vw, 55.91875rem);
  margin: min(2.4890190337vw, 2.125rem) auto 0;
}
@media screen and (max-width: 768px) {
  .p-plan__photos {
    grid-template-columns: 215.7fr 251.2fr;
    gap: 1.3866666667vw 1.1866666667vw;
    width: 63.44vw;
    margin-top: 4.7066666667vw;
  }
}
.p-plan__photo {
  overflow: hidden;
  border-radius: min(0.439238653vw, 0.375rem);
}
@media screen and (max-width: 768px) {
  .p-plan__photo {
    border-radius: 1.3333333333vw;
  }
}
.p-plan__photo--staff {
  aspect-ratio: 215.7/254.5;
}
.p-plan__photo--fish {
  aspect-ratio: 251.2/254.5;
}
.p-plan__photo--fruits {
  aspect-ratio: 409.7/254.5;
}
@media screen and (max-width: 768px) {
  .p-plan__photo--fruits {
    grid-column: 1/-1;
    aspect-ratio: 475.8/254.4;
  }
}
.p-plan__photo-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/**
 * p-company（会社概要）
 */
.p-company {
  padding: 6.475rem 1.875rem 1.9375rem;
}
@media screen and (max-width: 768px) {
  .p-company {
    padding: 14.24vw 5.4666666667vw 2.7466666667vw;
  }
}
.p-company__title {
  font-size: max(1.625rem, min(2.7818448023vw, 2.375rem));
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.02em;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .p-company__title {
    font-size: 5.0666666667vw;
  }
}
.p-company__list {
  max-width: 68.75rem;
  margin: 1.34375rem auto 0;
}
@media screen and (max-width: 768px) {
  .p-company__list {
    margin-top: 2.44vw;
  }
}
.p-company__row {
  display: flex;
  align-items: center;
  padding-block: 1.625rem;
  border-top: 1px solid #000;
  font-size: 1.5625rem;
  line-height: 1.44;
  letter-spacing: 0.06em;
}
@media screen and (max-width: 1024px) {
  .p-company__row {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 768px) {
  .p-company__row {
    padding-block: 3vw;
    font-size: 3.4666666667vw;
    line-height: 1.73;
    letter-spacing: 0.02em;
  }
}
.p-company__term {
  flex-shrink: 0;
  width: 15.625rem;
  letter-spacing: inherit;
}
@media screen and (max-width: 1024px) {
  .p-company__term {
    width: 12.5rem;
  }
}
@media screen and (max-width: 768px) {
  .p-company__term {
    width: 24.9333333333vw;
  }
}
.p-company__desc {
  flex: 1;
  letter-spacing: inherit;
  word-break: auto-phrase;
}
.p-company__desc--tel {
  margin-block: -0.6875rem;
}
@media screen and (max-width: 768px) {
  .p-company__desc--tel {
    margin-block: 0;
  }
}
.p-company__tel {
  display: block;
  letter-spacing: inherit;
  line-height: 1.2;
}
@media screen and (max-width: 768px) {
  .p-company__tel {
    line-height: inherit;
  }
}
.p-company__tel-link {
  display: inline;
  letter-spacing: inherit;
}
.p-company__hours {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.8em;
  line-height: 1.2;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 768px) {
  .p-company__hours {
    margin-top: 0;
    font-size: 0.885em;
    line-height: 1.73;
  }
}
.p-company__space {
  display: inline-block;
  width: 1.45em;
}

/**
 * p-contact（CONTACT）
 * 上の点の帯（会社概要との区切り）は ::before。
 */
.p-contact {
  position: relative;
  padding: 9.04375rem 1.875rem 6.625rem;
  text-align: center;
  color: var(--color-gray);
}
@media screen and (max-width: 768px) {
  .p-contact {
    padding: 19.3333333333vw 5.3333333333vw 13.1733333333vw;
  }
}
.p-contact::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1.875rem;
  background-image: radial-gradient(circle, var(--color-dot) 0.15625rem, transparent 0.16875rem);
  background-position: -0.196875rem -0.229375rem;
  background-size: 0.76875rem 0.771875rem;
}
@media screen and (max-width: 768px) {
  .p-contact::before {
    height: 3.96vw;
    background-image: radial-gradient(circle, var(--color-dot) 0.3333333333vw, transparent 0.36vw);
    background-position: -0.42vw -0.4893333333vw;
    background-size: 1.6333333333vw 1.6466666667vw;
  }
}
.p-contact__title {
  font-family: var(--font-en);
  font-size: 3.4375rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .p-contact__title {
    font-size: 7.3333333333vw;
  }
}
.p-contact__lead {
  margin-top: 1.06875rem;
  font-size: max(0.9375rem, min(1.6837481698vw, 1.4375rem));
  line-height: 1.75;
  letter-spacing: 0.22em;
}
@media screen and (max-width: 768px) {
  .p-contact__lead {
    margin-top: 2.4533333333vw;
    font-size: 2.9333333333vw;
    letter-spacing: 0.06em;
  }
}
.p-contact__btn {
  display: grid;
  place-items: center;
  width: 29.6875rem;
  max-width: 100%;
  height: 4.375rem;
  margin: 2.9125rem auto 0;
  padding-left: 0.18em;
  border: 1px solid var(--color-gray);
  border-radius: 2.1875rem;
  font-size: 1.4375rem;
  letter-spacing: 0.18em;
  transition: color var(--duration), background-color var(--duration);
}
.p-contact__btn:focus-visible {
  background-color: var(--color-gray);
  color: #fff;
}
@media (any-hover: hover) {
  .p-contact__btn:hover {
    background-color: var(--color-gray);
    color: #fff;
  }
}
@media screen and (max-width: 768px) {
  .p-contact__btn {
    width: 63.3333333333vw;
    height: 9.3333333333vw;
    margin-top: 6.2666666667vw;
    border-radius: 4.6666666667vw;
    font-size: 3.3333333333vw;
  }
}