@charset "UTF-8";
/* ==========================================================
   株式会社シンタク  TOPページ
   PCデザイン幅：192rem / SPデザイン幅：43rem
   ブレイクポイント：76.7rem以下をSP
   ========================================================== */

:root {
  --green: #05a497;
  --green-dark: #018177;
  --green-pale: #eef7f6;
  --gray-bg: #f8f8f8;
  --black: #000;
  --white: #fff;
  --ff-jp: "Noto Sans JP", sans-serif;
  --ff-en: "Jost", "Noto Sans JP", sans-serif;
  --ff-impact: Impact, "Anton", sans-serif;
  --container: 120rem;
  --header-h: 15rem;
}

/* ---------- リキッドレイアウト ----------
   1rem = PCは1920px幅で10px、SPは430px幅で10px。画面幅に比例して全体が拡大縮小する
   （PCは1920px以上で拡大を止める。768〜1023pxは1024px相当で止める） */
html { font-size: clamp(5.333px, calc(100vw / 192), 10px); }
@media (max-width: 767px) {
  html { font-size: calc(100vw / 43); }
}

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--ff-jp);
  font-weight: 500;
  color: var(--black);
  background: var(--white);
  font-size: 1.6rem;
  line-height: 1.6;
  overflow-x: hidden;
}
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; padding: 0; }
ul { list-style: none; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.is-locked { overflow: hidden; }

.sp-only { display: none; }
@media (max-width: 767px) {
  .pc-only { display: none !important; }
  .sp-only { display: block; }
}

.l-container {
  width: 100%;
  max-width: calc(var(--container) + 8rem);
  margin: 0 auto;
  padding: 0 4rem;
}
@media (max-width: 767px) {
  .l-container { padding: 0 3.6rem; }
}

/* ---------- アイコン：半円 ---------- */
.c-half {
  display: inline-block;
  width: 1.2rem;
  height: 2rem;
  flex-shrink: 0;
  background: currentColor;
  border-radius: 0 1rem 1rem 0;
  -webkit-mask: radial-gradient(circle at 0 50%, transparent 0.4rem, #000 0.45rem);
          mask: radial-gradient(circle at 0 50%, transparent 0.4rem, #000 0.45rem);
}

/* ---------- 見出し ---------- */
.c-heading__jp {
  display: block;
  font-size: 2.2rem;
  font-weight: 600;
  color: var(--green);
  line-height: 1.3;
}
.c-heading__en {
  display: block;
  margin-top: 0.6rem;
  font-family: var(--ff-en);
  font-size: 7rem;
  font-weight: 500;
  color: var(--green);
  line-height: 1.1;
  letter-spacing: 0;
}
.c-heading--white .c-heading__jp,
.c-heading--white .c-heading__en { color: var(--white); }
.c-heading--center { text-align: center; }
@media (max-width: 767px) {
  .c-heading__jp { font-size: 1.3rem; }
  .c-heading__en { font-size: 4rem; margin-top: 0.8rem; }
}

/* ---------- 下線つきリンクボタン ---------- */
.c-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.4rem;
  min-width: 22rem;
  padding: 0 0 1.8rem;
  border-bottom: 1px solid currentColor;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.3;
  position: relative;
  transition: opacity .3s;
}
.c-link::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.5rem 0 0.5rem 0.7rem;
  border-color: transparent transparent transparent currentColor;
  transition: transform .3s;
}
.c-link:hover::after { transform: translateX(0.6rem); }
.c-link--white { color: var(--white); }
@media (max-width: 767px) {
  .c-link { font-size: 1.4rem; min-width: 21rem; padding-bottom: 1.4rem; }
}

/* ---------- 丸ボタン（白枠） ---------- */
.c-pill {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 4rem;
  min-width: 25.6rem;
  height: 6.4rem;
  padding: 0 2.8rem 0 3.6rem;
  border: 1.5px solid var(--white);
  border-radius: 3.2rem;
  color: var(--white);
  font-size: 1.6rem;
  font-weight: 600;
  transition: background .3s, color .3s;
}
.c-pill::after {
  content: "";
  border-style: solid;
  border-width: 0.5rem 0 0.5rem 0.7rem;
  border-color: transparent transparent transparent currentColor;
}
.c-pill:hover { background: var(--white); color: var(--green); }
@media (max-width: 767px) {
  .c-pill { min-width: 21rem; height: 5.2rem; font-size: 1.4rem; }
}

/* ---------- タグ ---------- */
.c-tag {
  display: inline-block;
  padding: 0.2rem 1.2rem;
  border-radius: 0.4rem;
  background: #e3e3e3;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.6;
  white-space: nowrap;
}
.c-tag--gray {
  background: #a5a5a5;
  color: var(--white);
  border-radius: 99.9rem;
  letter-spacing: .1em;
}

/* ==========================================================
   ヘッダー
   ========================================================== */
.l-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  height: var(--header-h);
  background: var(--white);
  transition: height .3s, box-shadow .3s;
}
.l-header.is-scrolled {
  height: 9rem;
  box-shadow: 0 0.2rem 1.2rem rgba(0, 0, 0, .06);
}
.l-header__inner {
  height: 100%;
  display: flex;
  align-items: center;
  padding: 0 4.2vw 0 4.15vw;
}
.l-header__brand {
  display: flex;
  align-items: center;
  gap: 3rem;
}
.l-header__logo img { width: 8.4rem; }
.l-header__catch {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 2.5rem;
  letter-spacing: .05em;
}
.l-header__right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 2.8rem;
}
.l-gnav {
  display: flex;
  gap: 4rem;
}
.l-gnav a {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  color: var(--green);
  transition: opacity .3s;
}
.l-gnav a:hover { opacity: .7; }
.l-gnav__jp {
  display: block;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.3;
}
.l-gnav__en {
  display: block;
  font-family: var(--ff-en);
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.2;
}
.l-header__insta {
  display: grid;
  place-items: center;
  width: 4.8rem;
  height: 4.8rem;
  border-radius: 50%;
  background: var(--green);
  color: var(--white);
  transition: opacity .3s;
}
.l-header__insta:hover { opacity: .75; }
.l-header__insta svg { width: 2.2rem; height: 2.2rem; }
.l-header__contact {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  width: 22.8rem;
  height: 5.2rem;
  border-radius: 2.6rem;
  background: var(--green);
  color: var(--white);
  font-size: 1.8rem;
  font-weight: 600;
  transition: background .3s;
}
.l-header__contact:hover { background: var(--green-dark); }
.l-header__contact svg { width: 2rem; height: 2rem; }
.l-header__burger { display: none; }

@media (max-width: 767px) {
  .l-header,
  .l-header.is-scrolled { height: 7rem; }
  .l-header__inner { padding: 0 1.6rem 0 2rem; }
  .l-header__brand { gap: 1rem; }
  .l-header__logo img { width: 4.8rem; }
  .l-header__catch { display: block; font-size: 0.9rem; line-height: 1.4rem; letter-spacing: .03em; }
  .l-gnav, .l-header__insta { display: none; }
  .l-header__right { gap: 1.2rem; }
  .l-header__contact {
    width: auto;
    height: 3.4rem;
    padding: 0 1.4rem;
    font-size: 1.2rem;
    gap: 0.6rem;
  }
  .l-header__contact svg { width: 1.4rem; height: 1.4rem; }
  .l-header__burger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.6rem;
    width: 3rem;
    height: 3.4rem;
  }
  .l-header__burger span {
    display: block;
    width: 100%;
    height: 0.2rem;
    background: var(--green);
  }
}

/* ==========================================================
   SPメニュー
   ========================================================== */
.l-drawer {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: var(--green);
  color: var(--white);
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s, visibility .35s;
}
.l-drawer.is-open { opacity: 1; visibility: visible; }
.l-drawer__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.4rem 1.6rem 0 1.6rem;
}
.l-drawer__logo img { width: 4.4rem; }
.l-drawer__close {
  position: relative;
  width: 3.4rem;
  height: 3.4rem;
  margin-right: 0.4rem;
}
.l-drawer__close::before,
.l-drawer__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2.2rem;
  height: 1.5px;
  background: var(--white);
}
.l-drawer__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.l-drawer__close::after  { transform: translate(-50%, -50%) rotate(-45deg); }
.l-drawer__body { padding: 7rem 3rem 6rem 3.4rem; }
.l-drawer__nav > li { border-bottom: 1px solid rgba(255, 255, 255, .85); }
.l-drawer__nav > li > a,
.l-drawer__toggle {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 5.7rem;
  padding: 0 0 0 0.7rem;
  text-align: left;
  color: var(--white);
}
.l-drawer__nav .c-half { width: 0.8rem; height: 1.4rem; margin-right: 1.2rem;
  -webkit-mask: radial-gradient(circle at 0 50%, transparent 0.26rem, #000 0.3rem);
          mask: radial-gradient(circle at 0 50%, transparent 0.26rem, #000 0.3rem); }
.l-drawer__jp { font-size: 1.8rem; font-weight: 600; }
.l-drawer__en { margin-left: 0.7rem; font-family: var(--ff-en); font-size: 1.2rem; font-weight: 600; padding-top: 0.3rem; }
.l-drawer__plus {
  position: relative;
  width: 1.6rem;
  height: 1.6rem;
  margin: 0 1.2rem 0 auto;
}
.l-drawer__plus::before,
.l-drawer__plus::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1.5px;
  background: var(--white);
  transition: transform .3s;
}
.l-drawer__plus::after { transform: rotate(90deg); }
.l-drawer__toggle[aria-expanded="true"] .l-drawer__plus::after { transform: rotate(0deg); }
/* 事業内容の展開：デザインでは区切り線の下にサブメニュー */
.l-drawer__item--has-sub { border-bottom: 0 !important; }
.l-drawer__item--has-sub .l-drawer__toggle { border-bottom: 1px solid rgba(255, 255, 255, .85); }
.l-drawer__sub {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .35s;
}
.l-drawer__sub > ul { overflow: hidden; padding-left: 2.7rem; }
.l-drawer__toggle[aria-expanded="true"] + .l-drawer__sub { grid-template-rows: 1fr; }
.l-drawer__sub li:first-child { padding-top: 1rem; }
.l-drawer__sub li:last-child { padding-bottom: 0.4rem; }
.l-drawer__sub a { display: block; font-size: 1.6rem; font-weight: 600; line-height: 3.5rem; }
.l-drawer__contact {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.4rem;
  height: 5.4rem;
  margin: 3.7rem 0 0 0.2rem;
  border-radius: 2.7rem;
  background: var(--white);
  color: var(--green-dark);
  font-size: 1.8rem;
  font-weight: 600;
}
.l-drawer__contact svg { width: 1.8rem; height: 1.8rem; }
.l-drawer__links { margin: 3.2rem 0 0 0.2rem; }
.l-drawer__links li + li { margin-top: 1rem; }
.l-drawer__links a { font-size: 1.3rem; font-weight: 600; }
.l-drawer__insta {
  display: grid;
  place-items: center;
  width: 4.8rem;
  height: 4.8rem;
  margin: 2.2rem 0 0 0.2rem;
  border: 1px solid var(--white);
  border-radius: 50%;
}
.l-drawer__insta svg { width: 2.4rem; height: 2.4rem; }
@media (min-width: 768px) { .l-drawer { display: none; } }

/* ==========================================================
   メイン：背景のあしらい（XDの図形をSVGで書き出し）
   ========================================================== */
.p-top { position: relative; padding-top: var(--header-h); }
@media (max-width: 767px) { .p-top { padding-top: 70px; } }
.p-top__deco {
  position: absolute;
  top: 0;
  left: 50%;
  width: 192rem;
  height: 235.4rem;
  transform: translateX(-50%);
  pointer-events: none;
  z-index: -1;
}
.p-top__deco img { width: 100%; height: 100%; }
.p-deco {                          /* セクション背景の装飾：セクション全体に敷く */
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.p-deco img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 767px) {
  .p-top__deco { left: 0; width: 100%; height: 377.2vw; transform: none; }  /* 1622 / 430 */
}

/* ==========================================================
   MV（PCは1920px基準のvw、SPは430px基準のvw）
   ========================================================== */
.p-mv { position: relative; }
.p-mv__viewport { overflow: hidden; }
.p-mv__track {
  display: flex;
  gap: 5.2083vw;                   /* 100 / 1920 */
  will-change: transform;
}
.p-mv__slide {
  flex: 0 0 40.156vw;              /* 771 / 1920 */
  aspect-ratio: 771 / 987;
  overflow: hidden;
}
.p-mv__slide img { width: 100%; height: 100%; object-fit: cover; }

/* 縦書きコピー：白い箱 ＋ 1文字ずつ縦に並べる */
.p-mv__copy { margin: 0; }
.p-mv__box {
  position: absolute;
  top: 6.406vw;                    /* (273-150) / 1920 */
  z-index: 2;
  width: 6.823vw;                  /* 131 */
  padding-top: 0.9vw;
  background: var(--white);
  color: var(--green);
  font-size: 4.74vw;               /* 91 */
  font-weight: 700;
  line-height: 1;
  writing-mode: vertical-rl;
  display: flex;
  align-items: center;
}
.p-mv__box--1 { left: 85.42vw; height: 26.51vw; letter-spacing: .156vw; }  /* x1640 / h509 / 字間3 */
.p-mv__box--2 { left: 77.55vw; height: 22.55vw; letter-spacing: .47vw; }   /* x1489 / h433 / 字間9 */
.p-mv__quote {
  position: absolute;
  z-index: 3;
  width: 3.385vw;                  /* 65 */
  height: 2.917vw;                 /* 56 */
}
.p-mv__quote--close { left: 90.99vw; top: 4.688vw; }   /* (1747, 240) */
.p-mv__quote--open  { left: 75.52vw; top: 28.125vw; }  /* (1450, 690) */
.p-mv__en {
  position: absolute;
  left: 7.292vw;                   /* 140 */
  top: 40.1vw;                     /* (920-150) */
  z-index: 2;
  display: flex;
  align-items: center;
  width: 37.34vw;                  /* 717 */
  height: 6.458vw;                 /* 124 */
  padding-left: 1.82vw;
  background: var(--white);
  color: var(--green);
  font-family: var(--ff-en);
  font-size: 4.48vw;               /* 86 */
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}
.p-mv__dots {
  display: flex;
  justify-content: center;
  gap: 1.4rem;
  margin-top: 4.6rem;
}
.p-mv__dots button {
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 50%;
  border: 1px solid #9e9e9e;
  background: var(--white);
  transition: background .3s, border-color .3s;
}
.p-mv__dots button.is-active { background: var(--green); border-color: var(--green); }

@media (max-width: 767px) {
  .p-mv { padding-top: 31.86vw; }                /* (207-70) / 430 */
  .p-mv__track { gap: 5.814vw; }                 /* 25 */
  .p-mv__slide { flex-basis: 88.14vw; aspect-ratio: 379 / 486; }
  .p-mv__box {
    top: 7.674vw;                                /* (103-70) */
    width: 17.44vw;                              /* 75 */
    padding-top: 2.3vw;
    font-size: 10.47vw;                          /* 45 */
    letter-spacing: 1.163vw;                     /* 字間5 */
  }
  .p-mv__box--1 { left: 73.26vw; height: 63.49vw; letter-spacing: 1.163vw; }  /* x315 / h273 */
  .p-mv__box--2 { left: 53.02vw; height: 51.86vw; letter-spacing: 1.163vw; }  /* x228 / h223 */
  .p-mv__quote { width: 6.977vw; height: 6.047vw; }                           /* 30 x 26 */
  .p-mv__quote--close { left: 88.37vw; top: 3.256vw; }                         /* (380, 84) */
  .p-mv__quote--open  { left: 49.3vw;  top: 56.51vw; }                         /* (212, 313) */
  .p-mv__en {
    left: 8.372vw;                               /* 36 */
    top: 122.1vw;                                /* (595-70) */
    width: 61.86vw;                              /* 266 */
    height: 10vw;                                /* 43 */
    padding-left: 2.8vw;
    font-size: 6.977vw;                          /* 30 */
  }
  .p-mv__dots { gap: 1rem; margin-top: 3.9rem; }
  .p-mv__dots button { width: 1.1rem; height: 1.1rem; }
}

/* ---------- 新着1行 ---------- */
.p-pickup { margin-top: 8.8rem; }
.p-pickup__link {
  display: flex;
  align-items: center;
  max-width: 82.6rem;
  margin: 0 auto;
  padding: 0 0.4rem 1.8rem;
  border-bottom: 1px solid #c9c9c9;
  font-size: 1.6rem;
  font-weight: 600;
  transition: opacity .3s;
}
.p-pickup__link:hover { opacity: .7; }
.p-pickup__date { margin: 0 2.4rem 0 2.6rem; }
.p-pickup__title {
  flex: 1;
  padding-left: 2.4rem;
  border-left: 1px solid #000;
  line-height: 1.6;
}
.p-pickup__link::after {
  content: "";
  border-style: solid;
  border-width: 0.4rem 0 0.4rem 0.6rem;
  border-color: transparent transparent transparent var(--green);
}
@media (max-width: 767px) {
  .p-pickup { margin-top: 5.7rem; padding: 0 3.6rem; }
  .p-pickup__link { display: grid; grid-template-columns: auto 1fr auto; row-gap: 1.4rem; padding-bottom: 2.3rem; font-size: 1.4rem; }
  .p-pickup__date { margin: 0 0 0 1.6rem; }
  .p-pickup__title { grid-column: 1 / 3; border: 0; padding: 0; font-size: 1.5rem; }
  .p-pickup__link::after { grid-column: 3; grid-row: 2; }
}

/* ==========================================================
   Company
   ========================================================== */
.p-company { padding: 20.1rem 0 14.8rem; }
.p-company__inner { position: relative; }
.p-company__visual { position: relative; margin-top: 5.9rem; }
.p-company__img {
  aspect-ratio: 1200 / 354;
  overflow: hidden;
}
.p-company__img img { width: 100%; height: 100%; object-fit: cover; }
.p-company__vertical {
  position: absolute;
  right: 5.5rem;                     /* 1560 - 1505 */
  top: -21.4rem;                     /* 1489 - 1703（写真の上端から） */
  z-index: 1;
  display: flex;
  flex-direction: row-reverse;
  gap: 1.2rem;
  margin: 0;
}
.p-company__vertical span {
  display: flex;
  align-items: center;
  width: 6.9rem;
  height: 43.5rem;
  padding-top: 1.5rem;
  background: var(--white);
  color: var(--green);
  font-size: 4.5rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.5rem;             /* 行送り50 - 文字45 */
  writing-mode: vertical-rl;
  white-space: nowrap;
}
.p-company__foot {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 4.4rem;
}
.p-company__text {
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 3.5rem;
  letter-spacing: .05em;
}
.p-company__foot .c-link { margin-right: 4rem; }

@media (max-width: 767px) {
  .p-company { padding: 12.9rem 0 9.3rem; }
  .p-company__visual { margin-top: 2.6rem; }
  .p-company__vertical span { white-space: nowrap; }
  .p-company__img { aspect-ratio: 357 / 220; }
  .p-company__vertical { right: 1.7rem; top: -8.9rem; gap: 0.7rem; }       /* 1028 - 1117 */
  .p-company__vertical span { width: 3.4rem; height: 21.6rem; padding-top: 0.8rem; font-size: 2.2rem; letter-spacing: 0.2rem; }
  .p-company__foot { display: block; margin-top: 3.2rem; }
  .p-company__text { font-size: 1.5rem; line-height: 2.8rem; letter-spacing: 0; }
  .p-company__foot .c-link { margin: 3.6rem 0 0; }
}

/* ==========================================================
   Service
   ========================================================== */
.p-service {
  position: relative;
  overflow: hidden;
  background: var(--green);
  color: var(--white);
  padding: 16.5rem 0;
}
.p-service__inner {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.p-service__body { padding-top: 2.2rem; }
.p-service__list { margin-top: 4.9rem; }
.p-service__list li {
  display: flex;
  align-items: center;
  gap: 1.35rem;
  font-size: 2.3rem;
  font-weight: 600;
  line-height: 6rem;
  letter-spacing: .1em;
}
.p-service__list li::before {      /* XD：直径14・線幅5の白いリング */
  content: "";
  width: 1.9rem;
  height: 1.9rem;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--white);
  -webkit-mask: radial-gradient(circle, transparent .44rem, #000 .46rem);
          mask: radial-gradient(circle, transparent .44rem, #000 .46rem);
}
.p-service__list li:first-child::before {   /* 1つ目：黄色の円弧（12時から約258°） */
  background: conic-gradient(#ffce00 0deg 258deg, var(--white) 258deg 360deg);
}
.p-service__list a { transition: opacity .3s; }
.p-service__list a:hover { opacity: .7; }
.p-service .c-link { margin-top: 4.6rem; }
.p-service__img {
  flex: 0 0 62.75%;                /* 753 / 1200 */
  aspect-ratio: 753 / 543;
  overflow: hidden;
}
.p-service__img img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 767px) {
  .p-service { padding: 10.9rem 0 10.7rem; }
  .p-service__inner { flex-direction: column; align-items: stretch; }
  .p-service__img { order: 2; flex: none; margin-top: 2.6rem; aspect-ratio: 357 / 220; }
  .p-service__body { display: contents; }
  .p-service__body .c-heading { order: 1; }
  .p-service__list { order: 3; margin-top: 2.6rem; }
  .p-service__list li { font-size: 1.8rem; line-height: 4rem; gap: 1.2rem; }
  .p-service__list li::before { width: 1.6rem; height: 1.6rem; -webkit-mask: radial-gradient(circle, transparent .36rem, #000 .38rem); mask: radial-gradient(circle, transparent .36rem, #000 .38rem); }
  .p-service .c-link { order: 4; margin-top: 3rem; align-self: flex-start; }
}

/* ==========================================================
   流れる社名 ＋ Works
   ========================================================== */
.p-works-wrap { background: var(--gray-bg); position: relative; overflow: hidden; }
.p-marquee {
  position: relative;
  z-index: 1;
  overflow: hidden;
  white-space: nowrap;
  line-height: 1;
  padding-top: 1.4rem;
}
.p-marquee__inner {
  display: inline-flex;
  animation: marquee 40s linear infinite;
}
.p-marquee__inner span {
  font-family: var(--ff-impact);
  font-size: 25rem;
  color: var(--green);
  opacity: .15;
  letter-spacing: .05em;
  text-transform: uppercase;
  line-height: 0.85;
  padding-right: .3em;
}
@keyframes marquee { to { transform: translateX(-50%); } }
@media (max-width: 767px) {
  .p-marquee { padding-top: 0.8rem; }
  .p-marquee__inner span { font-size: 9rem; }
}

.p-works { position: relative; z-index: 1; padding: 7.1rem 0 18.7rem; }
.p-works__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
.p-works__list { margin-top: 7.2rem; }
.p-works__item + .p-works__item { margin-top: 1.4rem; }
.p-works__item a {
  display: flex;
  align-items: center;
  gap: 9.2rem;
  transition: opacity .3s;
}
.p-works__item a:hover { opacity: .75; }
.p-works__thumb {
  flex: 0 0 49.8rem;
  aspect-ratio: 498 / 220;
  background: var(--white);
  overflow: hidden;
}
.p-works__thumb img { width: 100%; height: 100%; object-fit: cover; }
.p-works__thumb--noimg { display: grid; place-items: center; }
.p-works__thumb--noimg img { width: 12.4rem; height: auto; object-fit: contain; }
.p-works__tags { display: flex; gap: 0.8rem; }
.p-works__meta {
  display: flex;
  align-items: center;
  margin-top: 1.4rem;
  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: .08em;
  white-space: nowrap;
}
.p-works__date { padding-right: 2.4rem; margin-right: 2.4rem; border-right: 1px solid #000; line-height: 1.2; }
@media (max-width: 767px) {
  .p-works { padding: 4.9rem 0 16rem; }
  .p-works__head .c-link { display: none; }
  .p-works__list { margin-top: 3.1rem; }
  .p-works__item + .p-works__item { margin-top: 5.4rem; }
  .p-works__item a { display: block; }
  .p-works__thumb { aspect-ratio: 357 / 158; }
  .p-works__thumb--noimg img { width: 9.2rem; }
  .p-works__info { display: grid; grid-template-columns: auto 1fr; align-items: center; margin-top: 2.7rem; column-gap: 1.4rem; }
  .p-works__tags { gap: 0.6rem; }
  .p-works__meta { display: contents; font-size: 1.4rem; letter-spacing: 0; white-space: normal; }
  .p-works__date { border: 0; margin: 0; padding: 0; font-size: 1.2rem; }
  .p-works__title { grid-column: 1 / 3; margin-top: 1.2rem; font-size: 1.5rem; }
  .p-works__more { text-align: center; margin-top: 4.2rem; }
}

/* ==========================================================
   Recruit
   ========================================================== */
.p-recruit {
  position: relative;
  overflow: hidden;
  min-height: 113.8rem;
  padding: 16.8rem 0 12rem;
  color: var(--white);
  text-align: center;
  isolation: isolate;
}
.p-recruit__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  background: var(--white);
}
.p-recruit__bg > img { width: 100%; height: 100%; object-fit: cover; opacity: .585; }
/* 緑のかぶせ（丸く抜いた形）を乗算、左下の白い円を重ねる */
.p-recruit__bg .p-deco--multiply img { mix-blend-mode: multiply; opacity: .742; }
.p-recruit__catch {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  gap: 6.3rem;
  margin: 7.5rem auto 0;
}
.p-recruit__catch span {
  writing-mode: vertical-rl;
  font-size: 4.5rem;
  font-weight: 700;
  line-height: 4.5rem;
  letter-spacing: 0.5rem;
  white-space: nowrap;
  text-align: left;
}
.p-recruit .c-pill { margin-top: 5.3rem; }
@media (max-width: 767px) {
  .p-recruit { min-height: 86rem; padding: 18.2rem 0 6rem; }
  .p-recruit__catch { margin-top: 1.8rem; gap: 1.8rem; }
  .p-recruit__catch span { font-size: 2.7rem; line-height: 2.7rem; letter-spacing: 0.8rem; }   /* 行送り35 */
  .p-recruit .c-pill { margin-top: 9.2rem; }
}

/* ==========================================================
   Contact
   ========================================================== */
.p-contact {
  position: relative;
  overflow: hidden;
  min-height: 99.8rem;
  padding-top: 26.3rem;
  isolation: isolate;
}
.p-contact__bg { position: absolute; inset: 0; z-index: -1; }
.p-contact__bg img { width: 100%; height: 100%; object-fit: cover; }
.p-contact__bg::after {            /* XD：白→#CAF2EC のグラデーション（不透明度83%） */
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #fff 0%, #caf2ec 100%);
  opacity: .834;
}
.p-contact__inner { width: 100%; }
.p-contact__body { position: relative; z-index: 1; }
.p-contact__lead {
  margin-top: 8.4rem;
  font-size: 2.3rem;
  font-weight: 600;
  line-height: 4.4rem;
  letter-spacing: .1em;
}
.p-contact__lead em { font-style: normal; color: var(--green); }
.p-contact__catch {
  margin-top: 1.6rem;
  font-size: 3rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .1em;
}
.p-contact .c-link { margin-top: 10.1rem; }
.p-contact__gallery {
  position: absolute;
  top: 18rem;                       /* 5894 - 5714 */
  left: calc(50% + 7.3rem);           /* 1033 / 1920 */
  width: 140rem;
  display: grid;
  gap: 1.5rem;
}
.p-contact__row { overflow: hidden; }
.p-contact__row-inner {
  display: flex;
  gap: 1.5rem;
  width: max-content;
  animation: marquee 60s linear infinite;
}
.p-contact__row--2 .p-contact__row-inner { animation-direction: reverse; margin-left: -15.1rem; }
.p-contact__row img {
  width: 45.1rem;
  height: 31.2rem;
  object-fit: cover;
}
@media (max-width: 767px) {
  .p-contact { display: block; min-height: 0; padding: 15rem 0 0; }
  .p-contact__lead { margin-top: 1.8rem; font-size: 1.5rem; line-height: 2.8rem; letter-spacing: 0; }
  .p-contact__catch { margin-top: 0.4rem; font-size: 2.2rem; line-height: 3.5rem; }
  .p-contact .c-link { margin-top: 6.1rem; }
  .p-contact__gallery {
    position: static;
    width: auto;
    transform: none;
    margin-top: 10.1rem;
    gap: 0;
  }
  .p-contact__row--2 { display: none; }
  .p-contact__row-inner { gap: 1rem; }
  .p-contact__row img { width: 27.3rem; height: 19.2rem; }
}

/* ==========================================================
   News
   ========================================================== */
.p-news { padding: 17.8rem 0 18rem; }
.p-news__inner { display: flex; justify-content: space-between; }
.p-news__head .c-link { margin-top: 7.7rem; }
.p-news__list { flex: 0 0 82.6rem; margin: 0 0 0 auto; }
.p-news__inner .p-news__list { margin-right: 0; }
.p-news__list a {
  display: flex;
  align-items: center;
  padding: 3.1rem 1.8rem 4.1rem 0;
  border-bottom: 1px solid #c9c9c9;
  font-size: 2rem;
  font-weight: 600;
  transition: opacity .3s;
}
.p-news__list a:hover { opacity: .7; }
.p-news__list .c-tag { display: inline-flex; align-items: center; justify-content: center; width: 9.8rem; height: 3.2rem; padding: 0; font-size: 1.7rem; border-radius: 1.6rem; }
.p-news__date { margin: 0 2.6rem; }
.p-news__title { padding-left: 2.6rem; border-left: 1px solid #000; line-height: 1.4; }
.p-news__title { flex: 1; }
.p-news__list a::after {
  content: "";
  border-style: solid;
  border-width: 0.4rem 0 0.4rem 0.6rem;
  border-color: transparent transparent transparent var(--green);
}
@media (max-width: 767px) {
  .p-news { padding: 8.4rem 0 8rem; }
  .p-news__inner { display: block; }
  .p-news__head .c-link { display: none; }
  .p-news__list { margin-top: 2rem; }
  .p-news__list a { display: grid; grid-template-columns: auto 1fr auto; row-gap: 1.6rem; padding: 2.8rem 0 3.1rem; font-size: 1.5rem; }
  .p-news__list .c-tag { width: auto; height: auto; font-size: 1.2rem; padding: 1px 1.4rem; }
  .p-news__date { margin: 0 0 0 1.6rem; font-size: 1.4rem; }
  .p-news__title { grid-column: 1 / 3; border: 0; padding: 0; }
  .p-news__list a::after { grid-column: 3; grid-row: 2; }
  .p-news__more { text-align: center; margin-top: 5rem; }
}

/* ==========================================================
   ギャラリー帯
   ========================================================== */
.p-gallery { overflow: hidden; }
.p-gallery__inner {
  display: flex;
  gap: 1rem;
  width: max-content;
  animation: marquee 50s linear infinite;
}
.p-gallery__inner img { width: 49.6rem; height: 30.8rem; object-fit: cover; }
@media (max-width: 767px) {
  .p-gallery__inner img { width: 30.9rem; height: 19.2rem; }
}

/* ==========================================================
   フッター
   ========================================================== */
.l-footer { background: #e9f5f4; position: relative; }
.l-footer .l-container { max-width: 172rem; }   /* 左右140pxの位置まで広げる */
.l-footer__inner {
  display: flex;
  justify-content: space-between;
  padding: 13.7rem 0 10rem;
}
.l-footer__logo img { width: 13.3rem; }
.l-footer__name {
  margin-top: 6.6rem;
  color: var(--green);
  font-size: 2.2rem;
  font-weight: 600;
  letter-spacing: .1em;
}
.l-footer__address {
  margin-top: 1.2rem;
  font-style: normal;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 2.7rem;
  letter-spacing: .05em;
}
.l-footer__insta { display: inline-block; margin-top: 2rem; color: var(--green); }
.l-footer__insta svg { width: 2.6rem; height: 2.6rem; }
.l-footer__nav {
  display: grid;
  grid-template-columns: 30.2rem 22.4rem auto;   /* 1060 / 1362 / 1586 */
  row-gap: 4.5rem;
  align-content: start;
  margin-top: 16.5rem;
}
.l-footer__nav > li > a {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  color: var(--green);
  transition: opacity .3s;
}
.l-footer__nav > li > a:hover { opacity: .7; }
.l-footer__jp { display: block; font-size: 1.8rem; font-weight: 600; line-height: 1.3; }
.l-footer__en { display: block; font-family: var(--ff-en); font-size: 1.3rem; font-weight: 600; line-height: 1.3; }
.l-footer__sub { margin: 1.4rem 0 0 0; }
.l-footer__sub a { font-size: 1.6rem; font-weight: 600; color: var(--green); line-height: 2; }
.l-footer__nav .is-span2 { grid-row: span 2; }
.l-footer__pagetop {
  position: absolute;
  right: 6.35vw;
  top: 8.9rem;
  writing-mode: vertical-rl;
  font-family: var(--ff-en);
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--green);
  letter-spacing: .1em;
  display: flex;
  align-items: center;
  gap: 1rem;
}
.l-footer__pagetop::before {
  content: "";
  border-style: solid;
  border-width: 0 0.5rem 0.7rem 0.5rem;
  border-color: transparent transparent var(--green) transparent;
}
.l-footer__copy {
  background: #c8e8e4;
  padding: 3.3rem 0;
  text-align: center;
  font-size: 1.4rem;
  font-weight: 500;
}
@media (max-width: 767px) {
  .l-footer__inner { display: block; padding: 15.5rem 0 7rem; text-align: center; }
  .l-footer__logo img { width: 9.4rem; margin: 0 auto; }
  .l-footer__name { margin-top: 3.9rem; font-size: 2.2rem; }
  .l-footer__address { margin-top: 1.4rem; font-size: 1.5rem; line-height: 2.2rem; letter-spacing: .03em; }
  .l-footer__insta { margin-top: 3rem; }
  .l-footer__insta svg { width: 3rem; height: 3rem; }
  .l-footer__nav { display: flex; flex-direction: column; row-gap: 0; margin: 4.5rem 0.7rem 0; text-align: left; }
  .l-footer__nav > li > a {
    min-height: 7.6rem;
    padding-left: 1rem;
    gap: 1.5rem;
    border-bottom: 1px solid rgba(5, 164, 151, .45);
  }
  .l-footer__nav .c-half { width: 1rem; height: 2rem; }
  .l-footer__nav > li > a > span:last-child { display: flex; align-items: baseline; gap: 0.9rem; }
  .l-footer__jp { font-size: 1.8rem; }
  .l-footer__en { font-size: 1.3rem; }
  .l-footer__sub { margin: 0; padding: 1.5rem 0 0 1.2rem; }
  .l-footer__sub a { font-size: 1.6rem; line-height: 3.5rem; }
  .l-footer__pagetop { right: 3.3rem; top: 6.5rem; font-size: 1.3rem; }
  .l-footer__copy { padding: 2.2rem 0; font-size: 1.3rem; }
}

/* ---------- スクロール表示 ---------- */
.js-fade { opacity: 0; transform: translateY(3rem); transition: opacity .9s, transform .9s; }
.js-fade.is-show { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js-fade { opacity: 1; transform: none; }
  .p-marquee__inner, .p-contact__row-inner, .p-gallery__inner { animation: none; }
}

/* ---------- 追加調整 ---------- */
br.sp-only { display: none; }
.p-recruit__catch.sp-only { display: none; }
@media (max-width: 767px) {
  br.sp-only { display: inline; }
  .p-recruit__catch.sp-only { display: flex; }
  .l-footer__nav > li:nth-child(1) { order: 1; }
  .l-footer__nav > li:nth-child(4) { order: 2; }
  .l-footer__nav > li:nth-child(2) { order: 3; }
  .l-footer__nav > li:nth-child(5) { order: 4; }
  .l-footer__nav > li:nth-child(7) { order: 5; }
  .l-footer__nav > li:nth-child(3) { order: 6; }
  .l-footer__nav > li:nth-child(6) { order: 7; }
  .l-footer__nav > li:nth-child(8) { order: 8; }
}

/* ==========================================================
   下層ページ（WordPress）
   ========================================================== */
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}
.p-sub { padding-top: var(--header-h); }
.l-container--narrow { max-width: calc(100rem + 8rem); }

/* ---------- 見出しエリア ---------- */
.p-sub-head {
  position: relative;
  overflow: hidden;
  padding: 12rem 0 9rem;
  background: var(--green-pale);
  isolation: isolate;
}
.p-sub-head__deco {
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .8;
  pointer-events: none;
}
.p-sub-head__deco img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.p-sub-head__title { margin: 0; }

/* ---------- パンくず ---------- */
.c-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 1.2rem;
  margin-top: 4rem;
  list-style: none;
  font-size: 1.4rem;
  font-weight: 500;
  color: #555;
}
.c-breadcrumb li + li::before {
  content: "›";
  margin-right: 1.2rem;
  color: var(--green);
}
.c-breadcrumb a { color: var(--green); }
.c-breadcrumb a:hover { text-decoration: underline; }

/* ---------- 本文エリア ---------- */
.p-sub__body { padding: 10rem 0 16rem; }
.p-empty { padding: 6rem 0; text-align: center; font-size: 1.6rem; }

/* ---------- 絞り込み（カテゴリー） ---------- */
.c-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
  margin-bottom: 5rem;
}
.c-filter a {
  display: inline-block;
  padding: .7rem 2.4rem;
  border: 1px solid var(--green);
  border-radius: 99.9rem;
  color: var(--green);
  font-size: 1.5rem;
  font-weight: 600;
  transition: background .3s, color .3s;
}
.c-filter a:hover,
.c-filter a[aria-current] { background: var(--green); color: var(--white); }

/* ---------- お知らせ一覧 ---------- */
.p-news__list--archive { width: 100%; margin: 0; border-top: 1px solid #c9c9c9; }

/* ---------- 施工事例 一覧 ---------- */
.p-works-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6rem 4rem;
}
.p-works-card a { display: block; transition: opacity .3s; }
.p-works-card a:hover { opacity: .75; }
.p-works-card__thumb {
  aspect-ratio: 498 / 300;
  overflow: hidden;
  background: var(--white);
  border: 1px solid #eee;
}
.p-works-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.p-works-card__thumb.is-noimg { display: grid; place-items: center; }
.p-works-card__thumb.is-noimg img { width: 12.4rem; height: auto; object-fit: contain; }
.p-works-card__tags { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.8rem; }
.p-works-card__date { display: block; margin-top: 1rem; font-size: 1.4rem; font-weight: 600; letter-spacing: .08em; }
.p-works-card__title { margin-top: .6rem; font-size: 1.8rem; font-weight: 600; line-height: 1.6; }

/* ---------- 記事詳細 ---------- */
.p-article__head { padding-bottom: 3rem; border-bottom: 1px solid #c9c9c9; }
.p-article__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .8rem 1.6rem;
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: .08em;
}
.p-article__title {
  margin-top: 1.8rem;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.5;
}
.p-article__thumb { margin-top: 5rem; }
.p-article__thumb img { width: 100%; }
.p-article .p-entry { margin-top: 5rem; }

/* ---------- 前後の記事 ---------- */
.c-post-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 2rem;
  margin-top: 10rem;
  padding-top: 4rem;
  border-top: 1px solid #c9c9c9;
  font-size: 1.6rem;
  font-weight: 600;
}
.c-post-nav__next { text-align: right; }
.c-post-nav__prev a::before { content: "‹ "; color: var(--green); }
.c-post-nav__next a::after { content: " ›"; color: var(--green); }
.c-post-nav__back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24rem;
  height: 5.6rem;
  padding: 0 3rem;
  border-radius: 2.8rem;
  background: var(--green);
  color: var(--white);
  transition: background .3s;
}
.c-post-nav__back:hover { background: var(--green-dark); }

/* ---------- ページ送り ---------- */
.c-pagination {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 8rem;
}
.c-pagination .page-numbers {
  display: grid;
  place-items: center;
  min-width: 4.6rem;
  height: 4.6rem;
  padding: 0 1rem;
  border: 1px solid var(--green);
  border-radius: 2.3rem;
  color: var(--green);
  font-family: var(--ff-en);
  font-size: 1.6rem;
  font-weight: 600;
}
.c-pagination .page-numbers.current { background: var(--green); color: var(--white); }
.c-pagination .page-numbers.dots { border: 0; }
.c-pagination a.page-numbers:hover { background: var(--green-pale); }

/* ---------- 本文（ブロックエディタ） ---------- */
.p-entry {
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 2;
}
.p-entry > * + * { margin-top: 2.4rem; }
.p-entry h2 {
  margin-top: 8rem;
  padding: .4rem 0 .4rem 2rem;
  border-left: .6rem solid var(--green);
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.5;
}
.p-entry h3 {
  margin-top: 6rem;
  padding-bottom: 1.2rem;
  border-bottom: 2px solid var(--green-pale);
  color: var(--green);
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.5;
}
.p-entry h4 { margin-top: 4rem; font-size: 1.9rem; font-weight: 700; }
.p-entry > :first-child { margin-top: 0; }
.p-entry ul, .p-entry ol { padding-left: 1.6em; }
.p-entry ul { list-style: disc; }
.p-entry ol { list-style: decimal; }
.p-entry li::marker { color: var(--green); }
.p-entry a { color: var(--green); text-decoration: underline; }
.p-entry img { height: auto; }
.p-entry figure figcaption { margin-top: .8rem; font-size: 1.4rem; color: #666; text-align: center; }
.p-entry table { width: 100%; border-collapse: collapse; }
.p-entry .wp-block-table td,
.p-entry .wp-block-table th,
.p-entry table td,
.p-entry table th {
  padding: 2rem 2.4rem;
  border: 0;
  border-bottom: 1px solid #d9d9d9;
  text-align: left;
  vertical-align: top;
}
.p-entry table th,
.p-entry table td:first-child:not(:only-child) {
  width: 26%;
  background: var(--green-pale);
  color: var(--green);
  font-weight: 700;
}
.p-entry .wp-block-table thead { border-bottom: 0; }
.p-entry blockquote {
  padding: 2.4rem 3rem;
  border-left: .4rem solid var(--green);
  background: var(--gray-bg);
}
.p-entry .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  min-height: 5.6rem;
  padding: 0 4rem;
  border-radius: 2.8rem;
  background: var(--green);
  color: var(--white);
  font-weight: 600;
  text-decoration: none;
}
.p-entry .wp-block-button__link:hover { background: var(--green-dark); }
.p-entry .alignwide { max-width: none; }
.p-entry .aligncenter { margin-left: auto; margin-right: auto; text-align: center; }
.p-404 { text-align: center; }

@media (max-width: 767px) {
  .p-sub { padding-top: 7rem; }
  .p-sub-head { padding: 6rem 0 5rem; }
  .c-breadcrumb ol { margin-top: 2.4rem; font-size: 1.2rem; }
  .p-sub__body { padding: 5rem 0 9rem; }
  .c-filter { gap: .8rem; margin-bottom: 3rem; }
  .c-filter a { padding: .5rem 1.6rem; font-size: 1.3rem; }
  .p-works-grid { grid-template-columns: 1fr; gap: 4.4rem; }
  .p-works-card__title { font-size: 1.6rem; }
  .p-article__title { font-size: 2.2rem; }
  .p-article__meta { font-size: 1.4rem; }
  .p-article__thumb, .p-article .p-entry { margin-top: 3rem; }
  .c-post-nav { grid-template-columns: 1fr 1fr; margin-top: 6rem; font-size: 1.4rem; }
  .c-post-nav__back { grid-column: 1 / 3; grid-row: 2; justify-self: center; min-width: 22rem; height: 5rem; }
  .c-pagination { margin-top: 5rem; }
  .p-entry { font-size: 1.5rem; line-height: 1.9; }
  .p-entry h2 { margin-top: 5rem; font-size: 2.1rem; padding-left: 1.4rem; }
  .p-entry h3 { margin-top: 4rem; font-size: 1.8rem; }
  .p-entry table th,
  .p-entry table td { display: block; width: 100% !important; padding: 1.2rem 1.4rem; }
}
