
/* --------------------------------------------------------------------------
  Box sizing / horizontal overflow guard
-------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
  font-weight: 500;
}

/* --------------------------------------------------------------------------
  Base settings
-------------------------------------------------------------------------- */
:root {
  --design-width: 1440;
  --px: calc(100vw / var(--design-width));

  --site-inner: calc(var(--px) * 1260);
  --site-wide: 100vw;

  --site-padding-pc: calc(var(--px) * 40);
  --site-padding-sp: calc(var(--px) * 20);

  --space-section-pc: calc(var(--px) * 96);
  --space-section-sp: calc(var(--px) * 64);

  --font-jp: "Zen Kaku Gothic Antique", sans-serif;
  --font-en: "Poppins", sans-serif;

  --fs-12: calc(var(--px) * 12);
  --fs-15: calc(var(--px) * 15);
  --fs-17: calc(var(--px) * 17);
  --fs-19: calc(var(--px) * 19);
  --fs-23: calc(var(--px) * 23);
  --fs-29: calc(var(--px) * 29);
  --fs-38: calc(var(--px) * 38);
  --fs-40: calc(var(--px) * 40);
  --fs-42: calc(var(--px) * 42);
  --fs-46: calc(var(--px) * 46);
  --fs-52: calc(var(--px) * 52);
  --fs-57: calc(var(--px) * 57);
}

html {
  scroll-behavior: smooth;
}

body {
  color: var(--wp--preset--color--deep);
  font-family: var(--font-jp);
  font-feature-settings: "palt";
  letter-spacing: 0.03em;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: inherit;
  text-decoration: none;
  transition: .3s;
}

/* a:not(.wp-block-button__link):hover {
  color: var(--wp--preset--color--accent);
} */

/* ===== SP (max-width: 781px) : 基準幅の切り替え(ここが本体) ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  :root {
    --design-width: 375;

    --site-inner: calc(var(--px) * 335);

    --space-section-pc: calc(var(--px) * 64);

    --fs-12: calc(var(--px) * 12);
    --fs-15: calc(var(--px) * 13);
    --fs-17: calc(var(--px) * 15);
    --fs-19: calc(var(--px) * 15);
    --fs-23: calc(var(--px) * 17);
    --fs-29: calc(var(--px) * 21);
    --fs-38: calc(var(--px) * 22);
    --fs-40: calc(var(--px) * 23);
    --fs-42: calc(var(--px) * 24);
    --fs-46: calc(var(--px) * 25);
    --fs-52: calc(var(--px) * 27);
    --fs-57: calc(var(--px) * 29);
  }
}



/* --------------------------------------------------------------------------
  Layout utilities
-------------------------------------------------------------------------- */
.l-inner,
.wp-block-group.is-style-site-inner {
  width: var(--site-inner);
  margin-inline: auto;
}

.l-wide,
.wp-block-group.is-style-site-wide {
  width: var(--site-wide);
  margin-inline: auto;
}

.l-section,
.wp-block-group.is-style-section {
  padding-block: var(--space-section-pc);
}

/* --------------------------------------------------------------------------
  Typography utilities
-------------------------------------------------------------------------- */
.has-en-font-family {
  font-family: var(--font-en);
}

.has-muted-color {
  color: var(--wp--preset--color--muted);
}

/* --------------------------------------------------------------------------
  Post content
-------------------------------------------------------------------------- */
.wp-block-post-content a:not(.wp-block-button__link),
.p-post-content a:not(.wp-block-button__link) {
  color: var(--wp--preset--color--accent);
  text-underline-offset: 0.2em;
  text-decoration: underline;
}

.wp-block-post-content a:hover,
.p-post-content a:hover {
  opacity: 0.7;
}



/* --------------------------------------------------------------------------
  Header: lower pages / custom hamburger
-------------------------------------------------------------------------- */
.l-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 100;
  width: 100%;
  color: var(--wp--preset--color--deep);
  pointer-events: none;
}

.l-header__inner {
  position: relative;
  z-index: 101;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  width: 100%;
  min-height: calc(var(--px) * 112);
  margin: 0;
  padding: 0 0 0 calc(var(--px) * 36);
  pointer-events: auto;
}

.l-header__logo-link {
  display: block;
  flex: 0 0 auto;
  width: calc(var(--px) * 186);
  line-height: 0;
  padding-top: calc(var(--px) * 30);
}

.l-header__logo-img {
  display: block;
  width: 100%;
  height: auto;
}

.u-visually-hidden {
  position: absolute !important;
  width: calc(var(--px) * 1) !important;
  height: calc(var(--px) * 1) !important;
  margin: calc(var(--px) * -1) !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
}

.l-header__menu-button {
  display: flex;
  flex-direction: column;
  gap: calc(var(--px) * 14);
  align-items: center;
  justify-content: center;
  width: calc(var(--px) * 150);
  height: calc(var(--px) * 150);
  margin: 0;
  padding: 0;
  color: var(--wp--preset--color--deep);
  background: #fff;
  border: 0;
  border-radius: 0 0 0 calc(var(--px) * 60);
  box-shadow: 0 calc(var(--px) * 8) calc(var(--px) * 20) rgba(88, 51, 28, 0.12);
  cursor: pointer;
}

.l-header__menu-line {
  display: block;
  width: calc(var(--px) * 52);
  height: calc(var(--px) * 3);
  background: currentColor;
  border-radius: calc(var(--px) * 999);
}

.l-header__menu-button:hover {
  color: var(--wp--preset--color--accent);
}

.l-header__drawer {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: block;
  width: 100%;
  height: 100dvh;
  overflow-y: auto;
  color: var(--wp--preset--color--deep);
  background: var(--wp--preset--color--pale);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(calc(var(--px) * 24));
  transition:
    opacity 0.28s ease,
    visibility 0.28s ease,
    transform 0.28s ease;
}

.l-header__drawer.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
}

.l-header__drawer-inner {
  position: relative;
  width: min(100% - calc(var(--px) * 48), calc(var(--px) * 960));
  min-height: 100dvh;
  margin-inline: auto;
  padding: calc(var(--px) * 96) 0 calc(var(--px) * 64);
}

.l-header__close-button {
  position: absolute;
  top: calc(var(--px) * 28);
  right: 0;
  display: grid;
  place-items: center;
  width: calc(var(--px) * 56);
  height: calc(var(--px) * 56);
  padding: 0;
  color: var(--wp--preset--color--deep);
  background: transparent;
  border: 0;
  cursor: pointer;
}

.l-header__close-line {
  position: absolute;
  display: block;
  width: calc(var(--px) * 52);
  height: calc(var(--px) * 2);
  background: currentColor;
  border-radius: calc(var(--px) * 999);
}

.l-header__close-line:first-child {
  transform: rotate(45deg);
}

.l-header__close-line:last-child {
  transform: rotate(-45deg);
}

.l-header__close-button:hover {
  color: var(--wp--preset--color--accent);
}

.l-header__menu-list {
  display: grid;
  gap: calc(var(--px) * 24);
  max-width: calc(var(--px) * 560);
  margin: 0;
  padding: 0;
  list-style: none;
}

.l-header__menu-link {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--px) * 16);
  color: var(--wp--preset--color--deep);
  font-family: var(--font-jp);
  font-size: calc(var(--px) * 23);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.06em;
  text-decoration: none;
}

.l-header__menu-link::before {
  content: "";
  width: calc(var(--px) * 10);
  height: calc(var(--px) * 10);
  background: var(--wp--preset--color--accent);
  border-radius: 50%;
}

.l-header__menu-link:hover {
  color: var(--wp--preset--color--accent);
}

body.is-menu-open {
  overflow: hidden;
}



/* ===== SP (max-width: 781px) : 下層ヘッダー ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .l-header__inner {
    min-height: calc(var(--px) * 64);
    padding: 0 0 0 calc(var(--px) * 20);
  }

  .l-header__logo-link {
    width: calc(var(--px) * 110);
    padding-top: calc(var(--px) * 10);
  }

  .l-header__menu-button {
    gap: calc(var(--px) * 8);
    width: calc(var(--px) * 76);
    height: calc(var(--px) * 76);
    border-radius: 0 0 0 calc(var(--px) * 28);
  }

  .l-header__menu-line {
    width: calc(var(--px) * 30);
    height: calc(var(--px) * 2);
  }
}



/* --------------------------------------------------------------------------
  Header: top page
  下層headerをベースに、TOP専用の差分だけここで調整する
-------------------------------------------------------------------------- */
.l-header--top {
  position: absolute;
}

.l-header--top .l-header__logo-link {
  position: relative;
  width: calc(var(--px) * 330);
  padding: calc(var(--px) * 50)
         calc(var(--px) * 50)
         calc(var(--px) * 70)
         calc(var(--px) * 50);
  background-color: var(--wp--preset--color--pale);
  border-radius: 0 0 calc(var(--px) * 70) 0;
  box-sizing: border-box;
}

.l-header--top .l-header__logo-link::before {
  content: "";
  position: absolute;
  left: calc(var(--px) * 45);
  bottom: calc(var(--px) * -61);
  width: calc(var(--px) * 70);
  height: calc(var(--px) * 70);
  background: radial-gradient(
    circle at 100% 100%,
    transparent 0 calc(var(--px) * 60),
    var(--wp--preset--color--pale) calc(var(--px) * 61)
    );
}

.l-header--top .l-header__logo-link::after {
  content: "";
  position: absolute;
  right: calc(var(--px) * -60);
  top: calc(var(--px) * 61);
  width: calc(var(--px) * 70);
  height: calc(var(--px) * 70);
  background: radial-gradient(
    circle at 100% 100%,
    transparent 0 calc(var(--px) * 60),
    var(--wp--preset--color--pale) calc(var(--px) * 61)
    );
}

.l-header--top .l-header__logo-link img {
  width: calc(var(--px) * 200);
  max-width: 100%;
  height: auto;
}

.l-header--top .l-header__menu-button {
  background: rgba(255, 255, 255);
}

/* TOPのMV上で見え方を変えたい場合は、ここだけ調整する */
/*
.l-header--top .l-header__logo-link {
  filter: brightness(0) invert(1);
}

.l-header--top .l-header__menu-button {
  color: var(--wp--preset--color--pale);
  background: var(--wp--preset--color--deep);
}
*/



/* ===== SP (max-width: 781px) : TOPヘッダー ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .l-header--top .l-header__logo-link {
    width: calc(var(--px) * 135);
    padding: calc(var(--px) * 20)
             calc(var(--px) * 20)
             calc(var(--px) * 20)
             calc(var(--px) * 4);
    border-radius: 0 0 calc(var(--px) * 32) 0;
  }

  .l-header--top .l-header__logo-link::before {
    left: calc(var(--px) * -4.5);
    bottom: calc(var(--px) * -28);
    width: calc(var(--px) * 32);
    height: calc(var(--px) * 32);
    background: radial-gradient(
      circle at 100% 100%,
      transparent 0 calc(var(--px) * 27),
      var(--wp--preset--color--pale) calc(var(--px) * 28)
    );
  }

  .l-header--top .l-header__logo-link::after {
    right: calc(var(--px) * -28);
    top: calc(var(--px) * 72);
    width: calc(var(--px) * 32);
    height: calc(var(--px) * 32);
    background: radial-gradient(
      circle at 100% 100%,
      transparent 0 calc(var(--px) * 27),
      var(--wp--preset--color--pale) calc(var(--px) * 28)
    );
  }

  .l-header--top .l-header__logo-link img {
    width: calc(var(--px) * 110);
  }
}



/* --------------------------------------------------------------------------
  Page hero
-------------------------------------------------------------------------- */
.wp-site-blocks > * {
  margin-block-start: 0 !important;
  margin-block-end: 0;
}

.wp-site-blocks > * + * {
  margin-block-start: 0 !important;
}
.c-page-hero {
  position: relative;
  padding: calc(var(--px) * 90) 0 0;
  background: #fff;
}

.c-page-hero__inner {
  width: var(--site-wide);
  margin-inline: auto;
}

.c-page-hero__text {
  width: var(--site-inner);
  margin-inline: auto;
  padding: calc(var(--px) * 72) 0 calc(var(--px) * 75);
}

.c-page-hero__text {
  text-align: center;
}

.c-page-hero__lead {
  margin: calc(var(--px) * 28) auto 0;
  text-align: center;
}

.c-page-hero__en {
  margin: 0 0 calc(var(--px) * 14);
  color: var(--wp--preset--color--accent);
  font-family: var(--font-en);
  font-size: var(--fs-23);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.c-page-hero__title {
  margin: 0;
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-57);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.06em;
}

.c-page-hero__lead {
  max-width: calc(var(--px) * 1260);
  margin-top: calc(var(--px) * 28);
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-19);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.05em;
}

.c-page-hero__lead p {
  margin: 0;
}

.c-page-hero__image {
  width: 100%;
  aspect-ratio: 16 / 3.67;
  margin: 0;
  overflow: hidden;
}

.c-page-hero__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-page-hero__image.is-parallax-ready img {
  transform: translate3d(0, var(--parallax-y, 0), 0) scale(1.5);
  transform-origin: center;
  will-change: transform;
}

@media (max-width: 781px) {
  .c-page-hero__image.is-parallax-ready img {
    transform: translate3d(0, var(--parallax-y, 0), 0) scale(1.4);
  }
}

@media (prefers-reduced-motion: reduce) {
  .c-page-hero__image.is-parallax-ready img {
    transform: none;
  }
}

/* ===== SP (max-width: 781px) : 下層ページヒーロー ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .c-page-hero {
    padding: calc(var(--px) * 76) 0 0;
  }

  .c-page-hero__text {
    padding: calc(var(--px) * 70) 0 calc(var(--px) * 40);
  }

  .c-page-hero__en {
    margin-bottom: calc(var(--px) * 10);
    font-size: calc(var(--px) * 15);
  }

  .c-page-hero__title {
    font-size: calc(var(--px) * 29);
  }

  .c-page-hero__lead {
    margin-top: calc(var(--px) * 18);
    font-size: calc(var(--px) * 15);
    line-height: 1.9;
    text-align: left;
  }

  .c-page-hero__image {
    aspect-ratio: 375 / 160;
  }
}



/* --------------------------------------------------------------------------
  Breadcrumb
-------------------------------------------------------------------------- */
.c-breadcrumb {
  width: var(--site-inner);
  margin: calc(var(--px) * 24) auto 0;
  color: var(--wp--preset--color--muted);
  font-size: var(--fs-12);
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.c-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--px) * 8);
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.c-breadcrumb__item {
  display: flex;
  align-items: center;
  gap: calc(var(--px) * 8);
}

.c-breadcrumb__item:not(:last-child)::after {
  content: "/";
  color: var(--wp--preset--color--muted);
}

.c-breadcrumb a {
  color: var(--wp--preset--color--muted);
  text-decoration: none;
}

.c-breadcrumb a:hover {
  color: var(--wp--preset--color--accent);
}

.c-breadcrumb__current {
  color: var(--wp--preset--color--deep);
}

/* ===== SP (max-width: 781px) : パンくず ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .c-breadcrumb {
    margin-top: calc(var(--px) * 16);
  }
}



/* --------------------------------------------------------------------------
  Page body
-------------------------------------------------------------------------- */
.l-page__body {
  padding: calc(var(--px) * 72) 0 calc(var(--px) * 120);
}



/* ===== SP (max-width: 781px) : 固定ページ本文まわり ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .l-page__body {
    padding: calc(var(--px) * 8) 0 calc(var(--px) * 80);
  }
}



/* --------------------------------------------------------------------------
  Footer common CTA
-------------------------------------------------------------------------- */
.c-footer-cta {
  background: #fff;
  color: var(--wp--preset--color--deep);
  padding: calc(var(--px) * 72) 0 calc(var(--px) * 88);
}

.c-footer-cta__inner {
  width: var(--site-inner);
  margin-inline: auto;
}

.c-footer-cta__head {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: calc(var(--px) * 40);
  margin-bottom: calc(var(--px) * 56);
}

.c-footer-cta__label,
.c-footer-cta__title,
.c-footer-cta__lead {
  margin: 0;
}

.c-footer-cta__label,
.c-footer-cta__title {
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.11em;
}

.c-footer-cta__label {
  font-size: var(--fs-38);
}

.c-footer-cta__title {
  margin-top: calc(var(--px) * 4);
  font-size: var(--fs-46);
}

.c-footer-cta__lead {
  margin-top: calc(var(--px) * 18);
  font-size: var(--fs-17);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
}

.c-footer-cta__character {
  flex: 0 0 auto;
  width: calc(var(--px) * 228);
  margin-right: calc(var(--px) * 24);
}

.c-footer-cta__character img {
  display: block;
  width: 100%;
  height: auto;
}

.c-footer-cta__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(var(--px) * 44);
}

.c-footer-card {
  position: relative;
  display: grid;
  min-height: calc(var(--px) * 224);
  overflow: hidden;
  color: #fff;
  border-radius: calc(var(--px) * 18);
  text-decoration: none;
  background: var(--wp--preset--color--muted);
  box-shadow: 0 calc(var(--px) * 8) calc(var(--px) * 20) rgba(88, 51, 28, 0.08);
}

.c-footer-card--cutting {
  background-image: url("../img/common/footer-card-cutting.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.c-footer-card--other {
  background-image: url("../img/common/footer-card-other.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.c-footer-card__overlay {
  position: absolute;
  inset: 0;
  background: rgba(88, 51, 28, 0.25);
}

.c-footer-card__content {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: calc(var(--px) * 12);
  min-height: calc(var(--px) * 224);
  padding: calc(var(--px) * 32);
  text-align: center;
}

.c-footer-card__title {
  font-size: var(--fs-38);
  line-height: 1.45;
  letter-spacing: 0.08em;
}

.c-footer-card__text {
  max-width: calc(var(--px) * 420);
  font-size: var(--fs-15);
  line-height: 1.8;
  letter-spacing: 0.05em;
}

.c-footer-card__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--px) * 18);
  min-width: calc(var(--px) * 270);
  margin-top: calc(var(--px) * 8);
  padding: calc(var(--px) * 21.5) calc(var(--px) * 25);
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-17);
  font-weight: 700;
  line-height: 1;
  background: #fff;
  border-radius: calc(var(--px) * 999);
}

.c-footer-card__arrow {
  display: inline-grid;
  place-items: center;
  width: calc(var(--px) * 20);
  height: calc(var(--px) * 20);
  color: #fff;
  background: var(--wp--preset--color--deep);
  border-radius: 50%;
}

.c-footer-card:hover {
  color: #fff;
  transform: translateY(calc(var(--px) * -2));
}

.c-footer-card:hover .c-footer-card__button {
  color: #fff;
  background: var(--wp--preset--color--accent);
}

.c-footer-cta__note {
  margin: calc(var(--px) * 20) 0 0;
  font-size: var(--fs-17);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.04em;
}

.c-footer-tel {
  display: grid;
  grid-template-columns: 1fr auto 1.8fr;
  align-items: center;
  gap: calc(var(--px) * 40);
  margin-top: calc(var(--px) * 52);
  padding: calc(var(--px) * 30) calc(var(--px) * 64);
  background-color: var(--wp--preset--color--pale);
  border: calc(var(--px) * 1) solid color-mix(in srgb, var(--wp--preset--color--deep) 38%, transparent);
  border-radius: calc(var(--px) * 16);
}

.c-footer-tel__label {
  margin: 0;
  font-size: var(--fs-29);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.08em;
  text-align: center;
}

.c-footer-tel__line {
  width: calc(var(--px) * 1);
  height: calc(var(--px) * 64);
  background: color-mix(in srgb, var(--wp--preset--color--deep) 28%, transparent);
}

.c-footer-tel__number {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: calc(var(--px) * 18);
  align-items: center;
  margin: 0;
  font-family: var(--font-en);
  font-size: var(--fs-52);
  line-height: 1.2;
  letter-spacing: 0.08em;
}

.c-footer-tel__number a {
  color: var(--wp--preset--color--deep);
  text-decoration: none;
}

.c-footer-tel__icon {
  font-size: calc(var(--px) * 30);
}

.c-footer-tel__time {
  grid-column: 2;
  display: block;
  margin-top: calc(var(--px) * 4);
  font-family: var(--font-jp);
  font-size: var(--fs-17);
  font-weight: 700;
  letter-spacing: 0.03em;
}

/* ===== SP (max-width: 781px) : フッターCTA ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .c-footer-cta {
    padding: calc(var(--px) * 48) 0 calc(var(--px) * 64);
  }

  .c-footer-cta__head {
    flex-direction: column;
    gap: calc(var(--px) * 16);
    margin-bottom: calc(var(--px) * 36);
  }

  .c-footer-cta__label {
    font-size: calc(var(--px) * 17);
  }

  .c-footer-cta__title {
    font-size: calc(var(--px) * 21);
  }

  .c-footer-cta__character {
    width: calc(var(--px) * 118);
    margin-right: 0;
    align-self: flex-end;
  }

  .c-footer-cta__cards {
    grid-template-columns: 1fr;
    gap: calc(var(--px) * 20);
  }

  .c-footer-card,
  .c-footer-card__content {
    min-height: calc(var(--px) * 180);
  }

  .c-footer-tel {
    grid-template-columns: 1fr;
    gap: calc(var(--px) * 16);
    margin-top: calc(var(--px) * 36);
    padding: calc(var(--px) * 24) calc(var(--px) * 20);
    text-align: center;
  }

  .c-footer-tel__line {
    width: 100%;
    height: calc(var(--px) * 1);
  }

  .c-footer-tel__number {
    justify-content: center;
    grid-template-columns: auto auto;
    font-size: calc(var(--px) * 23);
  }

  .c-footer-tel__time {
    grid-column: 1 / -1;
    text-align: center;
  }
}



/* --------------------------------------------------------------------------
  Footer main
-------------------------------------------------------------------------- */
.l-footer__main {
  position: relative;
  overflow: hidden;
  padding: calc(var(--px) * 78) 0 0;
  background: var(--wp--preset--color--pale);
  color: var(--wp--preset--color--deep);
}

.l-footer__main::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  z-index: 2;
  display: block;
  width: 100%;
  height: calc(var(--px) * 6);
  background: var(--wp--preset--color--deep);
}

.l-footer__inner {
  position: relative;
  z-index: 1;
  width: var(--site-inner);
  margin-inline: auto;
  text-align: center;
}

.l-footer__logo-link {
  display: block;
  width: calc(var(--px) * 350);
  aspect-ratio: 260 / 88;
  margin-inline: auto;
  background-image: url("../img/common/logo-footer.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.l-footer__line {
  width: 100%;
  height: calc(var(--px) * 1);
  margin: calc(var(--px) * 56) 0 calc(var(--px) * 28);
  background: color-mix(in srgb, var(--wp--preset--color--deep) 40%, transparent);
}

.l-footer__bottom {
  display: grid;
  gap: calc(var(--px) * 7);
  justify-items: center;
  margin-bottom: calc(var(--px) * 116);
}

.l-footer__privacy,
.l-footer__copy {
  margin: 0;
  color: var(--wp--preset--color--deep);
  font-size: calc(var(--px) * 10);
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
}

.l-footer__privacy:hover {
  color: var(--wp--preset--color--accent);
}

.l-footer__bg {
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
}

.l-footer__mountain {
  display: none;
}



/* ===== SP (max-width: 781px) : フッターメイン ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {
  .l-footer__main {
    padding: calc(var(--px) * 48) 0 0;
  }

  .l-footer__logo-link {
    width: calc(var(--px) * 180);
  }

  .l-footer__line {
    margin: calc(var(--px) * 36) 0 calc(var(--px) * 20);
  }

  .l-footer__bottom {
    margin-bottom: calc(var(--px) * 64);
  }
  .c-page-hero__image img, .l-footer__bg {
    width: 120vw;
    max-width: none;
    margin-left: -10vw;
  }
}



/* --------------------------------------------------------------------------
  Footer background image final
  背景画像を切らず・歪ませず・横幅いっぱいに表示
-------------------------------------------------------------------------- */
.l-footer__mountain {
  display: none !important;
}

.l-footer__bg {
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
}

/* --------------------------------------------------------------------------
  Viewport fixed-ratio final overrides
  1440pxカンプを常に100vwへ等比拡大縮小する
-------------------------------------------------------------------------- */
.l-inner,
.wp-block-group.is-style-site-inner,
.c-page-hero__text,
.c-breadcrumb,
.l-footer__inner,
.c-footer-cta__inner {
  width: var(--site-inner);
  margin-inline: auto;
}

.l-wide,
.wp-block-group.is-style-site-wide,
.c-page-hero__inner {
  width: var(--site-wide);
  margin-inline: auto;
}

.l-header__inner {
  width: 100vw;
}

.c-page-hero__image img,
.l-footer__bg {
  width: 100vw;
  max-width: none;
}

/* --------------------------------------------------------------------------
  WordPress constrained layout override
  WPの .is-layout-constrained を1440カンプ等比スケールに合わせる
-------------------------------------------------------------------------- */
:root {
  --wp--style--global--content-size: var(--site-inner);
  --wp--style--global--wide-size: 100vw;
}

.wp-site-blocks,
.wp-site-blocks > * {
  box-sizing: border-box;
}

.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  width: var(--site-inner) !important;
  max-width: var(--site-inner) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.is-layout-constrained > .alignwide {
  width: var(--site-wide) !important;
  max-width: var(--site-wide) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.is-layout-constrained > .alignfull {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

.wp-block-post-content.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  width: var(--site-inner) !important;
  max-width: var(--site-inner) !important;
}

/* --------------------------------------------------------------------------
  Hamburger drawer visual
  1440pxカンプを100vwへ等比スケールするメニュー内デザイン
-------------------------------------------------------------------------- */
.l-header__drawer {
  background:
    radial-gradient(
      circle at 12% 18%,
      rgba(255, 71, 0, 0.08) 0,
      rgba(255, 71, 0, 0.08) calc(var(--px) * 160),
      transparent calc(var(--px) * 161)
    ),
    var(--wp--preset--color--pale);
    margin-top: 0;
}

.l-header__drawer-inner {
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  width: var(--site-inner);
  min-height: 100dvh;
  margin-inline: auto;
  padding: calc(var(--px) * 96) 0 calc(var(--px) * 72);
}

.l-header__drawer-inner::before {
  content: none;
}

.l-header__close-button {
  position: fixed;
  top: 0;
  right: calc(100% - 100vw);
  width: calc(var(--px) * 150);
  height: calc(var(--px) * 150);
  color: var(--wp--preset--color--deep);
  background: #fff;
  border-radius: 0 0 0 calc(var(--px) * 60);
  box-shadow: 0 calc(var(--px) * 8) calc(var(--px) * 20) rgba(88, 51, 28, 0.12);
}

.l-header__close-line {
  width: calc(var(--px) * 52);
  height: calc(var(--px) * 3);
}

.l-header__nav-menu {
  width: 100%;
}

.l-header__nav-menu .wp-block-navigation__responsive-container,
.l-header__nav-menu .wp-block-navigation__responsive-close,
.l-header__nav-menu .wp-block-navigation__responsive-dialog,
.l-header__nav-menu .wp-block-navigation__responsive-container-content {
  position: static !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

.l-header__nav-menu .wp-block-navigation__container {
  display: grid !important;
  grid-template-rows: repeat(4, auto);
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 0 calc(var(--px) * 48);
  align-items: stretch !important;
  width: 100%;
  margin: 0;
  padding: 0;
}

.l-header__nav-menu .wp-block-navigation-item {
  width: 100%;
  border-bottom: calc(var(--px) * 1) solid rgba(88, 51, 28, 0.24);
}

.l-header__nav-menu .wp-block-navigation-item:nth-child(4n + 1) {
  border-top: calc(var(--px) * 1) solid rgba(88, 51, 28, 0.24);
}

.l-header__nav-menu .wp-block-navigation-item__content {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(var(--px) * 24);
  width: 100%;
  padding: calc(var(--px) * 26) calc(var(--px) * 72) calc(var(--px) * 26) 0;
  color: var(--wp--preset--color--deep);
  font-size: calc(var(--px) * 29);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.08em;
  text-decoration: none;
}

.l-header__nav-menu .wp-block-navigation-item__content::after {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(var(--px) * 8);
  width: calc(var(--px) * 36);
  height: calc(var(--px) * 36);
  border: calc(var(--px) * 1) solid currentColor;
  border-radius: 50%;
  transform: translateY(-50%);
}

.l-header__nav-menu .wp-block-navigation-item__content::before {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(var(--px) * 23);
  z-index: 1;
  width: calc(var(--px) * 7);
  height: calc(var(--px) * 7);
  border-top: calc(var(--px) * 2) solid currentColor;
  border-right: calc(var(--px) * 2) solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

.l-header__nav-menu .wp-block-navigation-item__content:hover {
  color: var(--wp--preset--color--accent);
}

.l-header__nav-menu .wp-block-navigation-item__content:hover::after {
  background: var(--wp--preset--color--accent);
  border-color: var(--wp--preset--color--accent);
}

.l-header__nav-menu .wp-block-navigation-item__content:hover::before {
  border-color: #fff;
}

/* ===== SP (max-width: 781px) : ドロワーメニュー ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .l-header__drawer-inner {
    grid-template-columns: 1fr;
    gap: calc(var(--px) * 40);
    align-items: start;
    padding: calc(var(--px) * 88) 0 calc(var(--px) * 48);
  }

  /* 縦書きMORIBITOはSPでは非表示(表示するなら削除) */
  .l-header__drawer-inner::before {
    display: none;
  }

  .l-header__close-button {
    top: 0;
    width: calc(var(--px) * 76);
    height: calc(var(--px) * 76);
    border-radius: 0 0 0 calc(var(--px) * 28);
  }

  .l-header__close-line {
    width: calc(var(--px) * 30);
    height: calc(var(--px) * 2);
  }

  .l-header__nav-menu .wp-block-navigation-item__content {
    padding: calc(var(--px) * 18) calc(var(--px) * 48) calc(var(--px) * 18) 0;
    font-size: calc(var(--px) * 19);
  }

  .l-header__nav-menu .wp-block-navigation__container {
    grid-template-rows: none;
    grid-auto-flow: row;
    grid-auto-columns: auto;
    gap: 0;
  }

  .l-header__nav-menu .wp-block-navigation-item {
    border-top: calc(var(--px) * 1) solid rgba(88, 51, 28, 0.24);
    border-bottom: 0;
  }

  .l-header__nav-menu .wp-block-navigation-item:last-child {
    border-bottom: calc(var(--px) * 1) solid rgba(88, 51, 28, 0.24);
  }

  .l-header__nav-menu .wp-block-navigation-item__content::after {
    right: calc(var(--px) * 4);
    width: calc(var(--px) * 28);
    height: calc(var(--px) * 28);
  }

  .l-header__nav-menu .wp-block-navigation-item__content::before {
    right: calc(var(--px) * 15);
    width: calc(var(--px) * 6);
    height: calc(var(--px) * 6);
  }
  .c-page-hero__image img, .l-footer__bg{
    width: 150vw;
    max-width: none;
    margin-left: -10vw;
    aspect-ratio: auto;
    height: calc(var(--px) * 190);
  }
}



/* --------------------------------------------------------------------------
  Page content block patterns
  固定ページ本文用ブロックパターン
-------------------------------------------------------------------------- */
.c-content-heading {
  width: var(--site-inner);
  margin-inline: auto;
  text-align: center;
}

.c-content-heading__label {
  margin: 0;
  color: var(--wp--preset--color--accent);
  font-size: var(--fs-19);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.14em;
}

.c-content-heading__title {
  margin: calc(var(--px) * 12) 0 0;
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-40);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.1em;
}

.c-image-text {
  display: grid;
  grid-template-columns: calc(var(--px) * 580) 1fr;
  gap: calc(var(--px) * 72);
  align-items: center;
  width: var(--site-inner);
  margin-inline: auto;
}

.c-image-text--reverse .c-image-text__image {
  order: 2;
}

.c-image-text--reverse .c-image-text__body {
  order: 1;
}

.c-image-text__image {
  width: 100%;
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--px) * 28);
}

.c-image-text__image img {
  display: block;
  width: 100%;
  aspect-ratio: 580 / 400;
  height: auto;
  object-fit: cover;
}

.c-image-text__body {
  min-width: 0;
}

.c-image-text__title {
  margin: 0 0 calc(var(--px) * 24);
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-29);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.c-image-text__text {
  margin: 0;
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-17);
  font-weight: 500;
  line-height: 2.05;
  letter-spacing: 0.05em;
}

.c-image-text__text + .c-image-text__text {
  margin-top: calc(var(--px) * 18);
}

.c-section-divider {
  width: var(--site-inner);
  height: calc(var(--px) * 1);
  margin: calc(var(--px) * 96) auto;
  border: 0;
  background: rgba(88, 51, 28, 0.28);
}

.c-heading-line {
  position: relative;
  width: var(--site-inner);
  margin: 0 auto calc(var(--px) * 40);
  padding-left: calc(var(--px) * 24);
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-29);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.08em;
}

.c-heading-line::before {
  content: "";
  position: absolute;
  top: 0.18em;
  left: 0;
  width: calc(var(--px) * 6);
  height: 1.25em;
  background: var(--wp--preset--color--accent);
  border-radius: calc(var(--px) * 999);
}

.c-page-cta {
  width: var(--site-inner);
  margin-inline: auto;
  padding: calc(var(--px) * 64) calc(var(--px) * 80);
  text-align: center;
  background: #fff;
  border-radius: calc(var(--px) * 24);
  box-shadow: 0 calc(var(--px) * 10) calc(var(--px) * 28) rgba(88, 51, 28, 0.08);
}

.c-page-cta__label {
  margin: 0;
  color: var(--wp--preset--color--accent);
  font-family: var(--font-en);
  font-size: var(--fs-15);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.c-page-cta__title {
  margin: calc(var(--px) * 18) 0 0;
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-29);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.08em;
}

.c-page-cta__text {
  max-width: calc(var(--px) * 760);
  margin: calc(var(--px) * 22) auto 0;
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-17);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.05em;
}

.c-page-cta__buttons {
  margin-top: calc(var(--px) * 36);
}

.c-page-cta__button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: calc(var(--px) * 240);
  min-height: calc(var(--px) * 56);
  padding: calc(var(--px) * 15) calc(var(--px) * 36);
  font-size: var(--fs-15);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
  border-radius: calc(var(--px) * 999);
  text-decoration: none;
}

/* 色を選んでいない時だけデフォルト色 */
.c-page-cta__button .wp-block-button__link:not(.has-background) {
  background: var(--wp--preset--color--deep);
}

.c-page-cta__button .wp-block-button__link:not(.has-text-color) {
  color: #fff;
}

.c-page-cta__button .wp-block-button__link:hover {
  opacity: 0.86;
}

/* ===== SP (max-width: 781px) : 固定ページ用パターン ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .c-content-heading__label {
    font-size: calc(var(--px) * 15);
  }

  .c-content-heading__title {
    font-size: calc(var(--px) * 26);
  }

  .c-image-text {
    grid-template-columns: 1fr;
    gap: calc(var(--px) * 28);
  }

  /* 画像→テキストの順に統一(reverseも同順にする) */
  .c-image-text--reverse .c-image-text__image {
    order: 1;
  }

  .c-image-text--reverse .c-image-text__body {
    order: 2;
  }

  .c-image-text__title {
    margin-bottom: calc(var(--px) * 16);
    font-size: calc(var(--px) * 21);
  }

  .c-section-divider {
    margin: calc(var(--px) * 64) auto;
  }

  .c-heading-line {
    margin-bottom: calc(var(--px) * 28);
    padding-left: calc(var(--px) * 16);
    font-size: calc(var(--px) * 21);
  }

  .c-page-cta {
    padding: calc(var(--px) * 40) calc(var(--px) * 24);
    border-radius: calc(var(--px) * 18);
  }

  .c-page-cta__title {
    font-size: calc(var(--px) * 21);
  }

  .c-page-cta__text {
    max-width: none;
    font-size: calc(var(--px) * 15);
  }
}



/* --------------------------------------------------------------------------
  Button arrow common
  すべてのボタン矢印を同じ扱いに統一
-------------------------------------------------------------------------- */
.wp-block-button .wp-block-button__link,
.c-footer-card__button,
.c-page-cta__button .wp-block-button__link {
  position: relative;
  padding-right: 3.2em;
}

.wp-block-button .wp-block-button__link::after,
.c-footer-card__button::after,
.c-page-cta__button .wp-block-button__link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.4em;
  width: 1.35em;
  height: 1em;
  background: currentColor;
  transform: translateY(-50%);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 34'%3E%3Cpath d='M2 17H42M28 3L42 17L28 31' fill='none' stroke='black' stroke-width='4' 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 46 34'%3E%3Cpath d='M2 17H42M28 3L42 17L28 31' fill='none' stroke='black' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* 既存の丸矢印は消す */
.c-footer-card__arrow {
  display: none;
}

/* --------------------------------------------------------------------------
  Company table
  WordPress標準テーブルブロック用
-------------------------------------------------------------------------- */
.wacca-company-table {
  margin: 0 auto;
  overflow: hidden;
  border: calc(var(--px) * 2) solid var(--wp--preset--color--deep);
  border-radius: calc(var(--px) * 24);
  background: transparent;
}

.wacca-company-table table {
  width: 100%;
  margin: 0;
  border: 0;
  border-spacing: 0;
  border-collapse: separate;
  background: transparent;
}

.wacca-company-table td,
.wacca-company-table th {
  border: 0 !important;
  background: transparent;
}

.wacca-company-table td {
  padding: calc(var(--px) * 14) calc(var(--px) * 30);
  vertical-align: middle;
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-17);
  line-height: 1.9;
  letter-spacing: 0.05em;
  border-bottom: calc(var(--px) * 2) solid var(--wp--preset--color--deep) !important;
}

.wacca-company-table tr:last-child td {
  border-bottom: 0 !important;
}

.wacca-company-table td:first-child {
  width: calc(var(--px) * 300);
  background: rgba(171, 153, 141, 0.28);
  border-right: calc(var(--px) * 2) solid var(--wp--preset--color--deep) !important;
}

.wacca-company-table p {
  margin: 0;
}

.wacca-company-table p + p {
  margin-top: calc(var(--px) * 8);
}

.wacca-company-table ul {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.wacca-company-table li::before {
  content: "・";
}

/* ===== SP (max-width: 781px) : 会社概要テーブル ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .wacca-company-table td {
    padding: calc(var(--px) * 12) calc(var(--px) * 16);
    font-size: calc(var(--px) * 13);
  }

  .wacca-company-table td:first-child {
    width: calc(var(--px) * 96);
  }
}



/* --------------------------------------------------------------------------
  Lazy Blocks: section image text
  セクション見出し＋画像＋本文
-------------------------------------------------------------------------- */
.wacca-section-image-text {
  width: var(--site-inner);
  margin-inline: auto;
}

.wacca-section-image-text__title {
  margin: 0 0 calc(var(--px) * 72);
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-40);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.1em;
  text-align: center;
}

.wacca-section-image-text__row {
  display: grid;
  grid-template-columns: calc(var(--px) * 580) 1fr;
  gap: calc(var(--px) * 92);
  align-items: center;
}

.wacca-section-image-text.is-reverse .wacca-section-image-text__image {
  order: 2;
}

.wacca-section-image-text.is-reverse .wacca-section-image-text__body {
  order: 1;
}

.wacca-section-image-text__image {
  width: 100%;
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--px) * 18);
}

.wacca-section-image-text__image img {
  display: block;
  width: 100%;
  aspect-ratio: 580 / 390;
  height: auto;
  object-fit: cover;
}

.wacca-section-image-text__body {
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-17);
  font-weight: 500;
  line-height: 2.25;
  letter-spacing: 0.06em;
}

.wacca-section-image-text__text-title {
  margin: 0 0 calc(var(--px) * 24);
  color: var(--wp--preset--color--deep);
  font-size: calc(var(--px) * 23);
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.06em;
  white-space: pre-line;
}

.wacca-section-image-text__text {
  margin: 0;
  white-space: pre-line;
}

/* ===== SP (max-width: 781px) : Lazy Blocks: 画像+本文 ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .wacca-section-image-text__title {
    margin-bottom: calc(var(--px) * 40);
    font-size: calc(var(--px) * 26);
  }

  .wacca-section-image-text__row {
    grid-template-columns: 1fr;
    gap: calc(var(--px) * 28);
  }

  /* 画像→テキストの順に統一 */
  .wacca-section-image-text.is-reverse .wacca-section-image-text__image {
    order: 1;
  }

  .wacca-section-image-text.is-reverse .wacca-section-image-text__body {
    order: 2;
  }

  .wacca-section-image-text__text-title {
    margin-bottom: calc(var(--px) * 16);
    font-size: calc(var(--px) * 19);
  }
}



/* --------------------------------------------------------------------------
  Lazy Blocks: orange line heading
-------------------------------------------------------------------------- */
.wacca-heading-line {
  position: relative;
  width: var(--site-inner);
  margin: 0 auto calc(var(--px) * 40);
  padding-left: calc(var(--px) * 24);
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-29);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.08em;
}

.wacca-heading-line::before {
  content: "";
  position: absolute;
  top: 0.22em;
  left: 0;
  width: calc(var(--px) * 6);
  height: 1.15em;
  background: var(--wp--preset--color--accent);
  border-radius: calc(var(--px) * 999);
}

/* ===== SP (max-width: 781px) : Lazy Blocks: オレンジ線見出し ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .wacca-heading-line {
    margin-bottom: calc(var(--px) * 28);
    padding-left: calc(var(--px) * 16);
    font-size: calc(var(--px) * 21);
  }
}



/* --------------------------------------------------------------------------
  Lazy Blocks: service section
-------------------------------------------------------------------------- */
.wacca-service-section {
  width: var(--site-inner);
  margin: 0 auto calc(var(--px) * 112);
}

.wacca-service-section__image {
  width: 100%;
  margin: 0 0 calc(var(--px) * 52);
  overflow: hidden;
  border-radius: calc(var(--px) * 999);
}

.wacca-service-section__image img {
  display: block;
  width: 100%;
  aspect-ratio: 1260 / 360;
  height: auto;
  object-fit: cover;
}

.wacca-service-section__content {
  display: grid;
  grid-template-columns: calc(var(--px) * 360) 1fr;
  column-gap: calc(var(--px) * 45);
  align-items: start;
}

.wacca-service-section__number {
  margin: 0 0 calc(var(--px) * 8);
  color: var(--wp--preset--color--accent);
  font-family: var(--font-en);
  font-size: var(--fs-23);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
}

.wacca-service-section__title {
  margin: 0;
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-52);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
}

.wacca-service-section__subtitle {
  margin: calc(var(--px) * 18) 0 0;
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-23);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.wacca-service-section__tags {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--px) * 8);
  margin-top: calc(var(--px) * 26);
}

.wacca-service-section__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: calc(var(--px) * 88);
  min-height: calc(var(--px) * 28);
  padding: calc(var(--px) * 4) calc(var(--px) * 14);
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-12);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  border: calc(var(--px) * 1) solid var(--wp--preset--color--deep);
  border-radius: calc(var(--px) * 999);
}

.wacca-service-section__body {
  /* font-size: var(--fs-17);
  line-height: 2.15;
  letter-spacing: 0.05em; */
  white-space: pre-line;
}

.wacca-service-section__text-title {
  margin: 0 0 calc(var(--px) * 24);
  color: var(--wp--preset--color--deep);
  font-size: calc(var(--px) * 23);
  font-weight: 700;
  line-height: 1.9;
  letter-spacing: 0.06em;
  white-space: pre-line;
}

.wacca-service-section__body p,
.wacca-service-section__body div {
  margin: 0;
}

:where(.wp-block-post-content h2:not([class*="has-"][class*="-font-size"])) {
  font-size: var(--fs-42);
}

:where(.wp-block-post-content h3:not([class*="has-"][class*="-font-size"])) {
  font-size: calc(var(--px) * 32);
}

:where(.wp-block-post-content h4:not([class*="has-"][class*="-font-size"])) {
  font-size: calc(var(--px) * 24);
}

:where(.wp-block-post-content h5:not([class*="has-"][class*="-font-size"])) {
  font-size: calc(var(--px) * 20);
}

/* ===== SP (max-width: 781px) : Lazy Blocks: サービスセクション/本文見出し ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .wacca-service-section {
    margin-bottom: calc(var(--px) * 72);
  }

  .wacca-service-section__image {
    margin-bottom: calc(var(--px) * 12);
    border-radius: calc(var(--px) * 999);
  }

  .wacca-service-section__image img {
    aspect-ratio: 335 / 140;
  }

  .wacca-service-section__content {
    grid-template-columns: 1fr;
    row-gap: calc(var(--px) * 0);
  }

  .wacca-service-section__title {
    font-size: calc(var(--px) * 34);
  }

  .wacca-service-section__subtitle {
    margin-top: calc(var(--px) * 5);
    font-size: calc(var(--px) * 17);
  }

  .wacca-service-section__text-title {
    font-size: calc(var(--px) * 17);
  }

  .wacca-service-section__tags{
    margin-top: calc(var(--px) * 13);
  }

}



/* --------------------------------------------------------------------------
  Snow Monkey Forms
-------------------------------------------------------------------------- */
.smf-form {
  width: var(--site-inner);
  margin-inline: auto;
}

.smf-item {
  display: grid;
  grid-template-columns: calc(var(--px) * 260) 1fr;
  column-gap: calc(var(--px) * 48);
  align-items: start;
  margin: 0 0 calc(var(--px) * 32);
}

.smf-item:has([data-validations*="required"])
.smf-item__label__text::after {
  content: "";
  position: relative;
  top: calc(var(--px) * -8);
  display: inline-block;
  width: calc(var(--px) * 7);
  height: calc(var(--px) * 7);
  margin-left: calc(var(--px) * 8);
  vertical-align: middle;
  background: #ff4700;
  border-radius: 50%;
}

.smf-item__col--label {
  padding-top: calc(var(--px) * 12);
}

.smf-item__label {
  color: var(--wp--preset--color--deep);
  font-size: calc(var(--px) * 21);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.smf-item__description {
  display: none;
}

/* 必須マーク：オレンジ丸 */
.smf-item--required .smf-item__label::after {
  content: "";
  display: inline-block;
  width: calc(var(--px) * 7);
  height: calc(var(--px) * 7);
  margin-left: calc(var(--px) * 8);
  vertical-align: middle;
  background-color: var(--wp--preset--color--accent);
  border-radius: 50%;
}

/* input / select / textarea */
.smf-form input[type="text"],
.smf-form input[type="email"],
.smf-form input[type="tel"],
.smf-form input[type="url"],
.smf-form input[type="number"],
.smf-form select,
.smf-form textarea {
  width: 100%;
  min-height: calc(var(--px) * 48);
  padding: calc(var(--px) * 10) calc(var(--px) * 16);
  color: var(--wp--preset--color--deep);
  font-size: calc(var(--px) * 16);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.04em;
  background-color: #fff;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.smf-form textarea {
  min-height: calc(var(--px) * 180);
  resize: vertical;
}

/* select */
.smf-form select {
  appearance: auto;
}

/* file */
.smf-form input[type="file"] {
  color: var(--wp--preset--color--deep);
  font-size: calc(var(--px) * 15);
  font-weight: 700;
}

.smf-form input[type="file"]::file-selector-button {
  margin-right: calc(var(--px) * 16);
  padding: calc(var(--px) * 8) calc(var(--px) * 18);
  color: var(--wp--preset--color--deep);
  font-size: calc(var(--px) * 14);
  font-weight: 700;
  background-color: transparent;
  border: calc(var(--px) * 1) solid var(--wp--preset--color--deep);
  border-radius: 0;
  cursor: pointer;
}

/* エラー */
.smf-error-messages {
  margin-top: calc(var(--px) * 8);
  color: var(--wp--preset--color--accent);
  font-size: calc(var(--px) * 13);
  font-weight: 700;
}

.smf-form .smf-item--error input,
.smf-form .smf-item--error select,
.smf-form .smf-item--error textarea {
  outline: calc(var(--px) * 1) solid var(--wp--preset--color--accent);
}

/* Snow Monkey Forms: action buttons */
.smf-action {
  display: flex;
  justify-content: center;
  gap: calc(var(--px) * 24);
  margin-top: calc(var(--px) * 56);
}

.smf-action .smf-button-control__control {
  min-width: calc(var(--px) * 240);
  min-height: calc(var(--px) * 58);
  padding: calc(var(--px) * 14) calc(var(--px) * 40);
  color: #fff;
  font-size: calc(var(--px) * 17);
  font-weight: 700;
  letter-spacing: 0.08em;
  background: var(--wp--preset--color--deep);
  border: none;
  border-radius: calc(var(--px) * 999);
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.smf-action .smf-button-control__control:hover {
  opacity: 0.75;
}

.smf-action .smf-button-control__control {
  position: relative;
  padding-right: 3.2em;
}

.smf-action .smf-button-control__control::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.4em;
  width: 1.35em;
  height: 1em;
  background: currentColor;
  transform: translateY(-50%);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 34'%3E%3Cpath d='M2 17H42M28 3L42 17L28 31' fill='none' stroke='black' stroke-width='4' 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 46 34'%3E%3Cpath d='M2 17H42M28 3L42 17L28 31' fill='none' stroke='black' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.smf-action .smf-button-control__control[data-action="back"] {
  padding-right: calc(var(--px) * 40);
  padding-left: 3.2em;
  color: var(--wp--preset--color--deep);
  background: #fff;
  border: calc(var(--px) * 1) solid var(--wp--preset--color--deep);
}

.smf-action .smf-button-control__control[data-action="back"]::after {
  right: auto;
  left: 1.4em;
  transform: translateY(-50%) scaleX(-1);
}

/* ===== SP (max-width: 781px) : Snow Monkey Forms ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .smf-item {
    grid-template-columns: 1fr;
    row-gap: calc(var(--px) * 8);
    margin-bottom: calc(var(--px) * 24);
  }

  .smf-item__col--label {
    padding-top: 0;
  }

  .smf-item__label {
    font-size: calc(var(--px) * 17);
  }

  .smf-action {
    flex-direction: column;
    align-items: center;
    gap: calc(var(--px) * 16);
    margin-top: calc(var(--px) * 40);
  }

  .smf-action .smf-button-control__control {
    min-width: calc(var(--px) * 240);
  }
}



/* --------------------------------------------------------------------------
  News list
-------------------------------------------------------------------------- */
.wacca-news-layout {
  display: grid;
  grid-template-columns: calc(var(--px) * 300) 1fr;
  column-gap: calc(var(--px) * 80);
  width: var(--site-inner);
  margin: calc(var(--px) * 88) auto calc(var(--px) * 120) !important;
}

.wacca-news-side__en {
  margin: 0 0 calc(var(--px) * 28);
  color: var(--wp--preset--color--accent);
  font-family: var(--font-en);
  font-size: calc(var(--px) * 23);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.12em;
}

.wacca-news-categories {
  margin: 0;
  padding: 0;
  list-style: none;
}

.wacca-news-side__title {
    margin-bottom: 1vw;
    font-size: var(--fs-46);
}

.wacca-news-categories li {
  margin: 0 0 calc(var(--px) * 18);
  color: var(--wp--preset--color--deep);
  font-size: calc(var(--px) * 19);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
  margin-bottom: .5vw;
}

.wacca-news-categories a {
  color: inherit;
  text-decoration: none;
}

.wacca-news-categories a:hover {
  color: var(--wp--preset--color--accent);
}

.wacca-news-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
}

.wacca-news-item {
  position: relative;
  display: grid;
  grid-template-columns: calc(var(--px) * 100) 1fr calc(var(--px) * 44);
  column-gap: calc(var(--px) * 28);
  align-items: center;
  min-height: calc(var(--px) * 60);
  padding: calc(var(--px) * 24) 0;
  border-bottom: calc(var(--px) * 2) solid #58331c40;
}

.wacca-news-list > * {
  margin-block-start: 0 !important;
}

.wacca-news-item__date {
  margin: 0;
  color: color-mix(in srgb, var(--wp--preset--color--deep) 55%, transparent);
  font-family: var(--font-en);
  font-size: calc(var(--px) * 15);
  font-weight: 500;
  line-height: 1.4;
}

.wacca-news-item__title {
  margin: 0;
  color: var(--wp--preset--color--deep);
  font-size: calc(var(--px) * 19);
  line-height: 1.7;
  letter-spacing: 0.06em;
}

.wacca-news-item__title a {
  display: block;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.wacca-news-item::after {
  content: "";
  width: 1.35em;
  height: 1em;
  justify-self: end;
  background: var(--wp--preset--color--deep);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 34'%3E%3Cpath d='M2 17H42M28 3L42 17L28 31' fill='none' stroke='black' stroke-width='4' 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 46 34'%3E%3Cpath d='M2 17H42M28 3L42 17L28 31' fill='none' stroke='black' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wacca-news-item:hover {
  opacity: 0.72;
}

.wacca-news-pagination {
  margin-top: calc(var(--px) * 56);
}

/* ===== SP (max-width: 781px) : ニュース一覧 ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .wacca-news-layout {
    grid-template-columns: 1fr;
    row-gap: calc(var(--px) * 28);
    margin: calc(var(--px) * 56) auto calc(var(--px) * 80) !important;
  }

  .wacca-news-side__en {
    margin-bottom: calc(var(--px) * 8);
    font-size: calc(var(--px) * 21);
  }

  .wacca-news-categories li {
    display: inline-block;
    margin: 0 calc(var(--px) * 16) calc(var(--px) * 8) 0;
    font-size: calc(var(--px) * 15);
  }

  .wacca-news-item {
    grid-template-columns: calc(var(--px) * 80) 1fr calc(var(--px) * 28);
    column-gap: calc(var(--px) * 12);
    padding: calc(var(--px) * 16) 0;
  }

  .wacca-news-item__date {
    font-size: calc(var(--px) * 13);
  }

  .wacca-news-item__title {
    font-size: calc(var(--px) * 15);
  }

  .wacca-news-item__title a {
    white-space: normal; /* SPは折り返し表示。1行省略に戻すなら削除 */
  }

  .wacca-news-pagination {
    margin-top: calc(var(--px) * 40);
  }
}



/* --------------------------------------------------------------------------
  WordPress block gap reset
-------------------------------------------------------------------------- */
/* :root :where(.is-layout-flow) > *,
:root :where(.is-layout-constrained) > * {
  margin-block-start: 0;
  margin-block-end: 0;
} */

/* --------------------------------------------------------------------------
  Single post
-------------------------------------------------------------------------- */
.l-single {
  background: var(--wp--preset--color--pale);
}

.p-single__header {
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: 0;
  margin-bottom: 0;
  padding: calc(var(--px) * 162) 0 calc(var(--px) * 75);
  text-align: center;
  background: #fff;
}

.p-single {
  width: var(--site-inner);
  margin-inline: auto;
}

.p-single__category {
  margin: 0 0 calc(var(--px) * 18);
  color: var(--wp--preset--color--accent);
  font-size: var(--fs-15);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.p-single__category a {
  color: inherit;
  text-decoration: none;
}

.p-single__title {
  margin: 0;
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-57);
  line-height: 1.45;
  letter-spacing: 0.06em;
}

.p-single__en {
  margin: 0 0 calc(var(--px) * 14);
  color: var(--wp--preset--color--accent);
  font-family: var(--font-en);
  font-size: var(--fs-23);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.p-single__date {
  display: block;
  margin-top: calc(var(--px) * 24);
  color: var(--wp--preset--color--muted);
  font-family: var(--font-en);
  font-size: var(--fs-15);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.p-single__image {
  width: var(--site-inner);
  margin: calc(var(--px) * 50) auto 0;
  overflow: hidden;
  border-radius: calc(var(--px) * 18);
}

.p-single__image img {
  display: block;
  width: 100%;
  height: auto;
  margin: auto;
}

.p-single__content {
  width: var(--site-inner);
  margin: calc(var(--px) * 72) auto 0;
  padding-bottom: calc(var(--px) * 160);
}

.wacca-news-layout--front .wacca-news-more {
  grid-column: 2;
  justify-content: flex-end;
  margin-top: calc(var(--px) * 60);
}

.wacca-news-layout--front .wacca-news-more .wp-block-button__link {
  min-width: calc(var(--px) * 240);
  color: var(--wp--preset--color--deep);
  background: transparent;
  border: calc(var(--px) * 2) solid var(--wp--preset--color--deep);
}

/* ===== SP (max-width: 781px) : 投稿詳細/TOPニュースもっと見る ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .p-single__header {
    padding: calc(var(--px) * 140) 0 calc(var(--px) * 44);
  }

  .p-single__en {
    font-size: calc(var(--px) * 15);
  }

  .p-single__title {
    font-size: calc(var(--px) * 25);
  }

  .p-single__date {
    margin-top: calc(var(--px) * 16);
    font-size: calc(var(--px) * 13);
  }

  .p-single__image {
    margin-top: calc(var(--px) * 32);
    border-radius: calc(var(--px) * 12);
  }

  .p-single__content {
    margin-top: calc(var(--px) * 44);
    padding-bottom: calc(var(--px) * 96);
  }

  .wacca-news-layout--front .wacca-news-more {
    grid-column: 1;
    justify-content: center;
    margin-top: calc(var(--px) * 32);
  }
}



/* --------------------------------------------------------------------------
  Front MV
-------------------------------------------------------------------------- */
.p-front-mv {
  position: relative;
  width: 100vw;
  min-height: calc(var(--px) * 820);
  padding: calc(var(--px) * 70) 0 calc(var(--px) * 54);
  overflow: visible;
  background: var(--wp--preset--color--pale);
}

:root :where(.is-layout-flow) > .p-front-mv {
  margin-block-start: 0 !important;
}

.p-front-mv__slides {
  position: relative;
  width: calc(var(--px) * 1260);
  height: calc(var(--px) * 720);
  margin: 0 auto;
  overflow: hidden;
  border-radius: calc(var(--px) * 42);
}

.p-front-mv__slide {
  position: absolute;
  inset: 0;
  overflow: hidden;
  opacity: 0;
  transition: opacity 1.6s ease;
}

.p-front-mv__slide.is-active {
  opacity: 1;
}

/* 背景画像は::beforeに分離(copyを拡大させずに背景だけズームするため)
   非アクティブ時は拡大後(1.08)で待機させておくと、
   アニメーション終了値と一致してフェードアウト中のガタつきが出ない */
.p-front-mv__slide::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  transform: scale(1.08);
  will-change: transform;
}

/* animationはtransitionと違い、読み込み時にクラスが付いていても再生される */
.p-front-mv__slide.is-active::before {
  animation: mv-zoom 5s linear forwards;
}

@keyframes mv-zoom {
  from {
    transform: scale(1);
  }

  to {
    transform: scale(1.08);
  }
}

.p-front-mv__slide--01::before {
  background-image: url("../img/front/mv-01.webp");
}

.p-front-mv__slide--02::before {
  background-image: url("../img/front/mv-02.webp");
}

.p-front-mv__slide--03::before {
  background-image: url("../img/front/mv-03.webp");
}

/* 視差効果を減らす設定のユーザーにはズームを無効化 */
@media (prefers-reduced-motion: reduce) {
  .p-front-mv__slide::before {
    transform: none;
  }

  .p-front-mv__slide.is-active::before {
    animation: none;
  }
}

/* スライドごとの文字画像 */
.p-front-mv__copy {
  position: absolute;
  top: calc(var(--px) * 100);
  right: calc(var(--px) * 150);
  z-index: 2;
  width: calc(var(--px) * 330);
  aspect-ratio: 330 / 520;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.p-front-mv__copy--01 {
  background-image: url("../img/front/mv-copy01.webp");
}

.p-front-mv__copy--02 {
  background-image: url("../img/front/mv-copy02.webp");
}

.p-front-mv__copy--03 {
  background-image: url("../img/front/mv-copy03.webp");
}

/* 右下 最新NEWS */
.p-front-mv__news {
  position: absolute;
  right: calc(var(--px) * 85);
  bottom: calc(var(--px) * 32);
  z-index: 4;
  width: calc(var(--px) * 390);
  padding: calc(var(--px) * 22) calc(var(--px) * 35);
  background: var(--wp--preset--color--pale);
  border-radius: calc(var(--px) * 35) 0 0 0;
}

.p-front-mv__news::before {
  content: "";
  position: absolute;
  right: calc(var(--px) * 5);
  top: calc(var(--px) * -45);
  width: calc(var(--px) * 45);
  height: calc(var(--px) * 45);
  background: radial-gradient(
    circle at 0% 0%,
    transparent 0 calc(var(--px) * 45),
    var(--wp--preset--color--pale) calc(var(--px) * 45)
    );
}

.p-front-mv__news::after {
  content: "";
    position: absolute;
    left: calc(var(--px) * -43);
    bottom: calc(var(--px) * 22);
    width: calc(var(--px) * 45);
    height: calc(var(--px) * 45);
    background: radial-gradient(circle at 0% 0%, transparent 0 calc(var(--px) * 45), var(--wp--preset--color--pale) calc(var(--px) * 45));
}

.p-front-mv-news__item {
  margin: 0;
}

.p-front-mv-news__date {
  margin: 0 0 calc(var(--px) * 8);
  color: var(--wp--preset--color--muted);
  font-family: var(--font-en);
  font-size: var(--fs-15);
  line-height: 1.4;
  margin-bottom: 0;
}

.p-front-mv-news__title {
  margin: 0;
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-17);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.06em;
  padding-bottom: .5vw;
  border-bottom: 1px solid;
}

.p-front-mv-news__title a {
  display: block;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* ===== SP (max-width: 781px) : TOPメインビジュアル ※仮数値・SPカンプに合わせて調整 ===== */
@media (max-width: 781px) {

  .p-front-mv {
    min-height: 0;
    padding: calc(var(--px) * 76) 0 calc(var(--px) * 40);
  }

  .p-front-mv__slides {
    width: calc(var(--px) * 335);
    height: calc(var(--px) * 440);
    border-radius: calc(var(--px) * 20);
  }

  .p-front-mv__copy {
    top: calc(var(--px) * 92);
    right: calc(var(--px) * 30);
    width: calc(var(--px) * 166);
  }

  .p-front-mv__news {
    right: calc(var(--px) * 0);
    bottom: calc(var(--px) * -24);
    width: calc(var(--px) * 260);
    padding: calc(var(--px) * 14) calc(var(--px) * 20);
    border-radius: calc(var(--px) * 20) 0 0 0;
    background: transparent;
  }

  .p-front-mv__news::before {
    display: none;
  }

  .p-front-mv__news::after {
    display: none;
  }

  .p-front-mv-news__date {
    font-size: calc(var(--px) * 12);
  }

  .p-front-mv-news__title {
    font-size: calc(var(--px) * 14);
  }
}

/* --------------------------------------------------------------------------
  Front: About(もりびとについて)
-------------------------------------------------------------------------- */
.p-front-about {
  padding: calc(var(--px) * 112) 0 calc(var(--px) * 96);
  background: var(--wp--preset--color--pale);
}

.p-front-about__inner {
  display: grid;
  grid-template-columns: 1fr calc(var(--px) * 520);
  column-gap: calc(var(--px) * 96);
  align-items: center;
  width: var(--site-inner);
  margin-inline: auto;
}

.p-front-about__images {
  margin: 0;
  margin-left: calc((100vw - var(--site-inner)) / -2);
}

.p-front-about__image {
  margin: 0;
}

.p-front-about__image img {
  display: block;
  width: 100%;
  height: auto;
}

.p-front-about__en {
  margin: 0 0 calc(var(--px) * 14);
  color: var(--wp--preset--color--accent);
  font-family: var(--font-en);
  font-size: var(--fs-19);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.p-front-about__title {
  margin: 0 0 calc(var(--px) * 36);
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-40);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.p-front-about__text {
  margin: 0;
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-15);
  font-weight: 500;
  line-height: 2.1;
  letter-spacing: 0.05em;
}

.p-front-about__text + .p-front-about__text {
  margin-top: calc(var(--px) * 24);
}

.p-front-about__buttons {
  margin-top: calc(var(--px) * 40);
}

/* 白地に濃色ボーダーのアウトラインボタン(共通) */
.c-button-outline .wp-block-button__link {
  min-width: calc(var(--px) * 200);
  color: var(--wp--preset--color--deep);
  background: #fff;
  border: calc(var(--px) * 2) solid var(--wp--preset--color--deep);
}

.c-button-outline .wp-block-button__link:hover {
  color: #fff;
  background: var(--wp--preset--color--deep);
}

/* ===== SP (max-width: 781px) : About ※仮数値 ===== */
@media (max-width: 781px) {
  .p-front-about {
    padding: calc(var(--px) * 30) 0;
  }

  .p-front-about__inner {
    grid-template-columns: 1fr;
    row-gap: calc(var(--px) * 40);
  }

  .p-front-about__images {
    order: 2;
  }

  .p-front-about__body {
    order: 1;
  }

  .p-front-about__en {
    font-size: calc(var(--px) * 15);
  }

  .p-front-about__title {
    margin-bottom: calc(var(--px) * 24);
    font-size: calc(var(--px) * 26);
  }

  .p-front-about__text {
    font-size: calc(var(--px) * 14);
    line-height: 2;
  }

  .p-front-about__buttons {
    margin-top: calc(var(--px) * 28);
    justify-content: center !important;
  }
}



/* --------------------------------------------------------------------------
  Front: Activity(もりびとの活動)
-------------------------------------------------------------------------- */
.p-front-activity {
  padding: calc(var(--px) * 96) 0 calc(var(--px) * 104);
  background: #e9dfd0; /* 仮: カンプのベージュに合わせて調整 */
}

.p-front-activity__inner {
  width: var(--site-inner);
  margin-inline: auto;
}

.p-front-activity__en {
  margin: 0 0 calc(var(--px) * 14);
  color: var(--wp--preset--color--accent);
  font-family: var(--font-en);
  font-size: var(--fs-19);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.p-front-activity__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--px) * 16);
  width: fit-content;
  margin: 0 auto calc(var(--px) * 56);
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-40);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.p-front-activity__deco {
  width: calc(var(--px) * 48);
  pointer-events: none;
}

.p-front-activity__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(var(--px) * 36) calc(var(--px) * 44);
  width: calc(var(--px) * 1080);
  margin-inline: auto;
}

.p-front-activity-card {
  margin: 0;
  transition: transform 0.25s ease;
}

.p-front-activity-card:hover {
  transform: translateY(calc(var(--px) * -3));
}

.p-front-activity-card img {
  display: block;
  width: 100%;
  height: auto;
}

.p-front-activity__buttons {
  margin-top: calc(var(--px) * 56);
}

/* ===== SP (max-width: 781px) : Activity ※仮数値 ===== */
@media (max-width: 781px) {
  .p-front-activity {
    padding: calc(var(--px) * 56) 0 calc(var(--px) * 64);
  }

  .p-front-activity__en {
    font-size: calc(var(--px) * 15);
  }

  .p-front-activity__title {
    gap: calc(var(--px) * 8);
    margin-bottom: calc(var(--px) * 32);
    font-size: calc(var(--px) * 26);
  }

  .p-front-activity__deco {
    width: calc(var(--px) * 28);
  }

  .p-front-activity__list {
    grid-template-columns: 1fr;
    gap: calc(var(--px) * 16);
    width: 100%;
  }

  .p-front-activity-card {
    grid-template-columns: calc(var(--px) * 84) 1fr;
    column-gap: calc(var(--px) * 16);
    padding: 0;
    border-radius: calc(var(--px) * 14);
  }

  .p-front-activity-card__title {
    font-size: calc(var(--px) * 21);
  }

  .p-front-activity-card__text {
    font-size: calc(var(--px) * 13);
  }

  .p-front-activity-card::before {
    right: calc(var(--px) * 16);
    width: calc(var(--px) * 32);
    height: calc(var(--px) * 32);
  }

  .p-front-activity-card::after {
    right: calc(var(--px) * 28);
    width: calc(var(--px) * 6);
    height: calc(var(--px) * 6);
  }

  .p-front-activity__buttons {
    margin-top: calc(var(--px) * 36);
  }
}

/* --------------------------------------------------------------------------
  Front: Nature Positive(ネイチャーポジティブ)
  背景画像: assets/img/front/nature-bg.jpg
-------------------------------------------------------------------------- */
.p-front-nature {
  margin-top: 0;
  padding: calc(var(--px) * 96) 0;
  background-image: url("../img/front/nature-bg.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.p-front-nature__blob {
  position: relative;
  width: calc(var(--px) * 1040);
  margin-inline: auto;
  padding: calc(var(--px) * 130) calc(var(--px) * 100) calc(var(--px) * 110);
  background: rgba(255, 255, 255, 0.8);
  border-radius: calc(var(--px) * 480);
}

/* 左下の木のイラスト(assets/img/front/nature-trees.png を置いたら有効化)
.p-front-nature__blob::after {
  content: "";
  position: absolute;
  left: calc(var(--px) * 96);
  bottom: calc(var(--px) * 40);
  width: calc(var(--px) * 130);
  aspect-ratio: 130 / 100;
  background: url("../img/front/nature-trees.png") center / contain no-repeat;
}
*/

.p-front-nature__title {
  margin: 0 0 calc(var(--px) * 48);
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-42);
  font-weight: 700;
  line-height: 1.9;
  letter-spacing: 0.22em;
}

.p-front-nature__text {
  margin: 0;
  color: var(--wp--preset--color--deep);
  font-size: var(--fs-19);
  font-weight: 700;
  line-height: 2.2;
  letter-spacing: 0.08em;
}

.p-front-nature__buttons {
  margin-top: calc(var(--px) * 48);
}

/* ===== SP (max-width: 781px) : Nature Positive ※仮数値 ===== */
@media (max-width: 781px) {
  .p-front-nature {
    padding: calc(var(--px) * 48) 0;
    /* SP用に別画像を用意する場合:
    background-image: url("../img/front/nature-bg-sp.jpg"); */
  }

  .p-front-nature__blob {
    width: calc(var(--px) * 355);
    padding: calc(var(--px) * 64) calc(var(--px) * 24) calc(var(--px) * 56);
    border-radius: calc(var(--px) * 100);
  }

  .p-front-nature__blob::after {
    left: calc(var(--px) * 32);
    bottom: calc(var(--px) * 16);
    width: calc(var(--px) * 72);
  }

  .p-front-nature__title {
    margin-bottom: calc(var(--px) * 24);
    font-size: calc(var(--px) * 21);
    letter-spacing: 0.14em;
  }

  .p-front-nature__text {
    font-size: calc(var(--px) * 13);
    line-height: 2.1;
  }

  .p-front-nature__text br {
    display: none; /* SPは自然折り返し */
  }

  .p-front-nature__buttons {
    margin-top: calc(var(--px) * 28);
  }
}

/* --------------------------------------------------------------------------
  Fixed tel(スクロールで右下に出る電話バー)
-------------------------------------------------------------------------- */
.c-fixed-tel {
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 90; /* ヘッダー(100)・ドロワー(200)より下 */
  display: block;
  padding: calc(var(--px) * 16) calc(var(--px) * 28);
  color: var(--wp--preset--color--pale);
  font-size: var(--fs-15);
  line-height: 1.4;
  letter-spacing: 0.05em;
  background: var(--wp--preset--color--deep);
  border-radius: calc(var(--px) * 16) 0 0 0;
  box-shadow: 0 calc(var(--px) * -4) calc(var(--px) * 16) rgba(88, 51, 28, 0.16);
  opacity: 0;
  visibility: hidden;
  transform: translateY(calc(var(--px) * 16));
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
}

.c-fixed-tel.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.c-fixed-tel:hover {
  color: var(--wp--preset--color--pale);
  opacity: .7;
}

.c-fixed-tel__number {
  font-family: var(--font-en);
  letter-spacing: 0.06em;
}

/* ===== SP (max-width: 781px) : Fixed tel ※仮数値 ===== */
@media (max-width: 781px) {
  .c-fixed-tel {
    padding: calc(var(--px) * 12) calc(var(--px) * 16);
    font-size: calc(var(--px) * 13);
    border-radius: calc(var(--px) * 12) 0 0 0;
  }
}

/* --------------------------------------------------------------------------
  コンテンツが少ないページの最低高さ確保
-------------------------------------------------------------------------- */
.l-404,
.l-search {
  min-height: calc(100dvh - calc(var(--px) * 400));
  padding-top: calc(var(--px) * 350);
  padding-bottom: calc(var(--px) * 80);
}

@media (max-width: 781px) {
  .l-404,
  .l-search {
    padding-top: calc(var(--px) * 200);
  }
}

/* --------------------------------------------------------------------------
  Front: 装飾イラスト(MV / About / Nature)
-------------------------------------------------------------------------- */

/* MV上の雲(PC/SPで画像を切り替え) */
.p-front-mv__cloud {
  position: absolute;
  top: calc(var(--px) * 124);
  right: calc(var(--px) * 110);
  z-index: 3;
  width: calc(var(--px) * 895);
  pointer-events: none;
}

/* MV左下の木+人(PC/SPで画像を切り替え) */
.p-front-mv__bottom-left {
  position: absolute;
  left: calc(var(--px) * 24);
  bottom: calc(var(--px) * -20);
  z-index: 4;
  width: calc(var(--px) * 660);
  pointer-events: none;
}

/* ABOUT右上の装飾 */
.p-front-about__deco {
  position: absolute;
  top: calc(var(--px) * -32);
  right: calc(var(--px) * -20);
  width: calc(var(--px) * 90);
  pointer-events: none;
}

/* ネイチャー ブロブ左下の装飾 */
.p-front-nature__deco {
  position: absolute;
  left: calc(var(--px) * -40);
  bottom: calc(var(--px) * -24);
  width: calc(var(--px) * 100);
  pointer-events: none;
}

/* ===== SP (max-width: 781px) : MV / About / Nature 装飾 ※仮数値 ===== */
@media (max-width: 781px) {
  .p-front-mv__cloud {
    top: calc(var(--px) * 102);
    right: calc(var(--px) * -64);
    width: calc(var(--px) * 250);
    content: url("../img/front/mv-cloud-sp.webp");
  }

  .p-front-mv__bottom-left {
    left: calc(var(--px) * 8);
    bottom: calc(var(--px) * 34);
    width: calc(var(--px) * 260);
    content: url("../img/front/mv-bottom-left-sp.webp");
  }

  .p-front-about__deco {
    top: calc(var(--px) * -16);
    right: calc(var(--px) * -8);
    width: calc(var(--px) * 48);
  }

  .p-front-nature__deco {
    left: calc(var(--px) * -12);
    bottom: calc(var(--px) * -12);
    width: calc(var(--px) * 56);
  }
}
