:root {
  --bg: #f3f0ea;
  --fg: #000;
  --muted: #6b6b6b;
  --card: #fff;
  --radius: 18px;
  --container: 1300px;
}

body {
  font-family: 'Roboto', 'Zen Kaku Gothic New', system-ui, -apple-system, sans-serif;
  color: var(--fg);
  background: #fff;
}
/* WP管理バー表示時のズレ対策（sticky/fixed用） */
body.admin-bar .l-header{
  top: 32px;
}

@media (max-width: 782px){
  body.admin-bar .l-header{
    top: 46px; /* スマホ管理バーは高さが変わる */
  }
}
html.is-menuOpen, html.is-menuOpen body {
  overflow: hidden;
}
/* デフォルトはPC想定 */
.pc {
  display: block;
}
.sp {
  display: none;
}
/* SP */
@media (max-width: 768px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
}
.l-container {
  width: min(100% - 80px, var(--container));
  margin-inline: auto;
}
.l-header {
  position: sticky;
  width: 100%;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, .86);
  backdrop-filter: blur(8px);
  transition: 0.5s;
}
.home .l-header {
  position: fixed;
  background: none;
  backdrop-filter: none;
}
.home .l-header.is-scrolled {
  background: rgba(255, 255, 255, .86);
  backdrop-filter: blur(8px);
  transition: 0.5s;
}
.l-header .l-header__logo svg {
  max-width: 238px;
  width: 100%;
}
.home .l-header .l-header__logo svg path {
  fill: #fff;
}
.home .l-header.is-scrolled .l-header__logo svg path {
  fill: #000;
}
.l-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 45px 50px;
  margin-inline: auto;
  transition: 0.5s;
}
.home .l-header__inner {
  padding: 45px 50px 0;
}
.l-header.is-scrolled .l-header__inner, .home .l-header.is-scrolled .l-header__inner {
  padding: 20px 50px;
  transition: 0.5s;
}
.l-header__toggle {
  display: inline-flex;
  flex-direction: column;
  gap: 5px;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0;
  display: none;
}
.l-header__toggleLine {
  width: 22px;
  height: 2px;
  background: #111;
  border-radius: 2px;
}
.l-gnav__list {
  display: flex;
  align-items: center;
  gap: 56px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.l-gnav__link {
  font-size: 16px;
  font-weight: 500;
}
.home .l-gnav__link {
  color: #fff;
  transition: 0.5s;
}
.home .l-header.is-scrolled .l-gnav__link {
  color: #000;
  transition:all 0.5s;
}
.l-header .l-gnav__link {
  transition:all 0.5s;
}
.l-header .l-gnav__link:hover {
  opacity: 0.5;
}
.l-gnav__link.m-contact {
  border: 1px solid #000;
  border-radius: 100vh;
  min-width: 166px;
  text-align: center;
  display: block;
  padding: 12px 0;
  transition:all 0.5s;
}

.home .l-gnav__link.m-contact {
  border: 1px solid #fff;
  transition: all 0.5s;
}
.home .l-header.is-scrolled .l-gnav__link.m-contact {
  border: 1px solid #000;
  transition: all 0.5s;
}
.l-gnav__link.m-contact:hover,
.home .l-header.is-scrolled .l-gnav__link.m-contact:hover{
  background: #000;
  color: #fff;
  opacity: 1;
}
.l-gnav__head {
  display: none;
}
@media (max-width: 1024px) {
  .l-header__inner {
    padding: 32px 32px;
  }
  .home .l-header__inner {
    padding: 32px 32px 0;
  }
  .l-header.is-scrolled .l-header__inner, .home .l-header.is-scrolled .l-header__inner {
    padding: 8px 30px;
  }
  .l-gnav__list {
    gap: 32px;
  }
  .l-header .l-header__logo svg {
    max-width: 200px;
  }
}
@media (max-width: 768px) {
.l-container {
  width:92%;
}
  /* =========================
     Header（SP）
  ========================= */
  .l-header__inner, .home .l-header__inner {
    padding: 4vw 6vw;
  }
	.l-header.is-scrolled .l-header__inner, .home .l-header.is-scrolled .l-header__inner {
    padding: 3vw 5vw;
  }
  .l-header .l-header__logo svg {
    max-width: 200px;
  }
  .l-header .l-header__logo svg {
    max-width: 25vw;
  }
  .l-header__toggle {
    display: inline-flex;
    position: relative;
    z-index: 101; /* 開いた時も押せるように */
  }
  .l-header__toggleLine {
    transition: transform .25s ease, opacity .25s ease;
  }
  /* 開いたら × */
  .l-header__toggle[aria-expanded="true"] .l-header__toggleLine:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
  .l-header__toggle[aria-expanded="true"] .l-header__toggleLine:nth-child(2) {
    opacity: 0;
  }
  .l-header__toggle[aria-expanded="true"] .l-header__toggleLine:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }
  /* HOME時の色制御（ハンバーガー用） */
  .home .l-header__toggleLine {
    background: #fff;
  }
  .home .l-header.is-scrolled .l-header__toggleLine {
    background: #000;
  }
  /* メニュー表示中は×を黒固定（HOMEで白になるのを防ぐ） */
  html.is-menuOpen .l-header__toggleLine {
    background: #000 !important;
  }
  /* =========================
     Gnav（SP：全画面 + 背景）
  ========================= */
  .l-gnav {
  position: fixed;
  inset: 0;
  height: 100dvh;        /* ← 重要（100vhより安定） */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  z-index: 9999;

  display: none;
}

.l-gnav.is-open {
  display: block;
}
  /* 背景（オーバーレイ） */
  .l-gnav::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .55);
    backdrop-filter: blur(2px);
    opacity: 0;
    transition: opacity .35s ease;
  }
  /* パネル（メニュー本体：幅いっぱい） */
  .l-gnav__list {
    position: absolute;
    top: 0;
    right: 0;
    height: 100vh;
    width: 100vw;
    display: block;
    padding: 20vw 0 10vw;
    margin: 0;
    background: #E8E5DC;
    list-style: none;
    transform: translateX(100%);
    transition: transform .35s ease;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
  /* 開いた状態 */
  .l-gnav.is-open {
    pointer-events: auto;
  }
  .l-gnav.is-open::before {
    opacity: 1;
  }
  .l-gnav.is-open .l-gnav__list {
    transform: translateX(0);
  }
  .l-gnav__link, .l-gnav.is-open a {
    color: #000;
  }
  .l-gnav.is-open .l-gnav__link {
    border: none;
    border-bottom: 1px solid #000;
    display: block;
    padding: 3vw 5vw;
    text-align: left;
    font-size: 4.6vw;
    font-weight: 700;
  }
  .home .l-header.is-scrolled .l-gnav__link.m-contact, .l-gnav__link.m-contact {
    border: none;
    border-bottom: 1px solid #000;
    border-radius: 0;
  }
  .l-header__follow {
    margin: 8vw 5vw;
  }
  .l-header__ttl {
    margin: 0 0 4.5vw;
    font-weight: 500;
    font-size: 4.6vw;
  }
  .l-header__sns {
    width: 4.6vw;
    height: 4.6vw;
  }
  /* =========================
     Gnav header（logo + close）
  ========================= */
  .l-gnav__head {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding:  3vw 5vw;
    /* 初期は非表示 */
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
  }
  /* 開いた時だけ表示 */
  html.is-menuOpen .l-gnav__head {
    opacity: 1;
    pointer-events: auto;
  }
  /* メニュー内ロゴ */
  .l-gnav__logo svg {
    max-width: 25vw;
    width: 100%;
    height: auto;
    display: block;
  }
  .l-gnav__logo svg path {
    fill: #111;
  }
  /* ×ボタン */
  .l-gnav__close {
    width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
    position: relative;
  }
  .l-gnav__close span {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 22px;
    height: 2px;
    background: #707070;
    transform-origin: center;
  }
  .l-gnav__close span:nth-child(1) {
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .l-gnav__close span:nth-child(2) {
    transform: translate(-50%, -50%) rotate(-45deg);
  }
  html.is-menuOpen .l-header__toggle {
    opacity: 0;
    pointer-events: none;
  }
}
/* hero */
.hero {
  position: relative;
  height: 100vh;
  overflow: hidden;
  color: #fff;
  margin: 0 0 186px;
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2' viewBox='0 0 2 2'%3E%3Crect x='0' y='0' width='1' height='1' fill='%23000'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 2px 2px;
  opacity: 0.7;
  margin: 20px;
}
/* ===== 背景 ===== */
.hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  margin: 20px;
}
.hero-bg .bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity .8s ease;
}
.hero-bg .bg.is-active {
  opacity: 1;
}
/* ===== ロゴ ===== */
.hero-logo {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  pointer-events: none; /* クリック透過 */
}
.hero-logo .t_logo {
  width: 288px;
  max-width: 60%;
}
/* ===== テキスト ===== */
/* テキストスライドは重ねて、active だけ表示 */
.hero-slides {
  position: relative;
  z-index: 3;
  height: 100%;
  padding: 20px;
}
/* 非アクティブはクリック不可 */
.hero-slides .slide {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  transform: translateY(16px);
  transition: opacity .5s ease, transform .5s ease;
  height: calc(100% - 40px);
  width: calc(100% - 40px);
}
/* アクティブだけ表示＋クリック可 */
.hero-slides .slide.is-active {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
/* ★全面リンク：クリック判定を最前面に */
.hero-slides .slide-link {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 5; /* ←テキストより上に */
}
.hero-slides .detail {
  position: absolute;
  right: 50px;
  bottom: 30px;
  min-width: 200px;
}
.hero-slides .detail .date_ttl {
  font-size: 18px;
  font-weight: 700;
  border-bottom: 1px solid #fff;
  padding: 0 0 5px;
  margin: 0 0 10px;
}
.hero-slides .detail dl {
  display: flex;
  margin: 0 0 5px;
  font-size: 13px;
}
.hero-slides .detail dl dt {
  min-width: 4em;
}
.hero-slides .detail dl dd {
  margin: 0 0 0 2.5em;
}
.hero-slides p.more {
  font-size: 18px;
  font-weight: 700;
  position: absolute;
  left: 60px;
  bottom: 42px;
  line-height: 1;
  color: #fff;
}
.hero-slides p.more::before {
  width: 55px;
  height: 1px;
  content: "";
  display: block;
  position: absolute;
  left: -60px;
  bottom: 8px;
  background-color: #fff;
}
.hero .prev, .hero .next {
  position: absolute;
  z-index: 10;
  top: 50%;
  transform: translateY(-50%);
  font-size: 24px;
  font-weight: 700;
  border: 1px solid #fff;
  height: 166px;
  width: 48px;
  border-radius: 100vw;
}
.hero .prev {
  left: 52px;
}
.hero .next {
  right: 52px;
}
@media (max-width: 768px) {
  /* hero */
  .hero {
    height: 100svh; /* iOS対策：100vhより安定 */
    margin: 0 0 15vw; /* 下余白を縮める */
  }
  /* 外枠の余白（20px → 12px） */
  .hero::after {
    margin: 12px;
    opacity: 0.55; /* ドットを少し薄める（好み） */
  }
  .hero-bg {
    margin: 12px;
  }
  /* ロゴ */
  .hero-logo .t_logo {
    width: 40vw;
    max-width: 70%;
  }
  /* スライド領域 */
  .hero-slides {
    padding: 5vw;
  }
  .hero-slides .slide {
    height: calc(100% - 10vw);
    width: calc(100% - 10vw);
  }
  /* 右下 detail：幅・余白・文字サイズをSP向けに */
  .hero-slides .detail {
    right: 50%;
    transform: translateX(50%);
    bottom: 4.5vw;
    min-width: 0;
    width: 48vw;
  }
  .hero-slides .detail .date_ttl {
    font-size: 4.2vw;
    padding: 0 0 1vw;
    margin: 0 0 1.5vw;
  }
  .hero-slides .detail dl {
    font-size: 2.9vw;
    margin: 0 0 4px;
  }
  .hero-slides .detail dl dd {
    margin: 0 0 0 1.3em;
  }
  /* 矢印：中央から下部へ、小さく */
  .hero .prev, .hero .next {
    top: auto;
    bottom: 9.5vw;
    transform: none;
    height: 25vw;
    width: 7.4vw;
    font-size: 4.6vw;
    display: grid;
    place-items: center;
  }
  .hero .prev {
    left: 5vw;
  }
  .hero .next {
    right: 5vw;
  }
  .hero .prev, .hero .next {
    z-index: 20;
  }
  .hero-slides p.more {
    display: none;
  }
}
/* section */
.p-section__head_wrap {
  border-bottom: 1px solid #000;
}
.p-section__head {
  margin: auto;
  padding: 0 40px;
  display: flex;
  align-items: center;
  gap: 25px;
  max-width: 1728px;
}
.p-section__head .c-heading {
  padding: 25px 95px;
  background-color: #E8E5DC;
  font-size: 60px;
  margin: 0;
  font-weight: 500;
  border-radius: 20px 20px 0 0;
  border: 1px solid #000;
  border-bottom: none;
}
.p-section__foot {
  margin-top: 22px;
  text-align: center
}
.c-headingSub {
  font-size: 22px;
  font-weight: 500;
}
@media (max-width: 768px) {
  /* section */
  .p-section__head {
    padding: 0 3vw;
    gap: 12px;
    align-items: flex-end;
  }
  .p-section__head .c-heading {
    padding: 1.5vw 9vw;
    font-size: 4.6vw;
    border-radius: 3.4vw 3.4vw 0 0;
  }
  .c-headingSub {
    font-size: 3.4vw;
    line-height: 1.2;
    padding: 3vw;
  }
}
/* buttons */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  padding: 18px 36px;
  border-radius: 100vh;
  border: 1px solid #000;
  background: #000;
  font-size: 17px;
  min-width: 280px;
  color: #fff;
  position: relative;
  transition: 0.5s;
}
.c-btn:hover {
  color: #000;
  background: #fff;
  transition: 0.5s;
}
.c-btn::before, .c-btn::after {
  content: "";
  position: absolute;
  background-color: #fff;
  display: block;
  height: 1px;
  transition: 0.5s;
}
.c-btn:hover::before, .c-btn:hover::after {
  background-color: #000;
  transition: 0.5s;
}
.c-btn::before {
  width: 20px;
  right: 32px;
}
.c-btn::after {
  width: 10px;
  right: 30px;
  top: 45%;
  transform: translateY(-50%) rotate(45deg);
}
@media (max-width: 768px) {
  /* buttons */
  .c-btn {
    padding: 3.6vw 8.4vw;
    font-size: 3.4vw;
    min-width: auto;
    width: 60vw;
    justify-content: space-between;
  }
  /* 矢印（線）を小さく */
  .c-btn::before {
    width: 5vw;
    right: 6vw;
  }
  .c-btn::after {
    width: 3vw;
    right: 5.5vw;
    top: 40.5%;
  }
}
/* works */
.p-works {
  padding: 0 0 130px;
}
/* タブ */
.p-topWorks__tabs {
  display: flex;
  gap: 10px;
  max-width: 1642px;
  padding: 0 40px;
  margin: 60px auto 68px;
}
.p-topWorks__tab {
  padding: 0 0 10px;
  min-width: 200px;
  color: #B4B4B4;
  font-size: 15px;
  font-weight: 500;
}
.p-topWorks__tab.is-active {
  border-bottom: 1px solid #000;
  color: var(--fg)
}
/* 中身：JSの hidden 属性で制御 */
.p-topWorks__content {
  display: block;
}
.p-topWorks__content[hidden] {
  display: none; /* hidden のときだけ隠す */
}
/* タブ：横スクロール対応（SPで崩れない） */
.p-topWorks__tabs {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 6px;
}
.p-topWorks__tab {
  flex: 0 0 auto; /* 折り返しで潰れない */
  white-space: nowrap;
}
/* is-active は「見た目」だけにする */
.p-topWorks__content.is-active {
  display: block; /* 念のため。hiddenが優先なので実質保険 */
}
.p-works__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px 20px;
  padding: 0 20px 16px;
  border-bottom: 1px solid #000;
}
.p-worksCard {
  background: var(--card);
  overflow: hidden;
  position: relative;
}
.p-topWorks .p-worksCard__thumb {
  aspect-ratio: 1/1;
  background: #000
}
.p-topWorks .p-worksCard__thumb img {
  transition: 0.7s;
}
.p-topWorks .p-worksCard__thumb:hover img {
  opacity: 0.6;
  transition: 0.7s;
}
.p-topWorks .p-worksCard p {
  font-size: 18px;
  font-weight: 700;
  position: absolute;
  left: 60px;
  bottom: 30px;
  line-height: 1;
  color: #fff;
}
.p-topWorks .p-worksCard p::before {
  width: 55px;
  height: 1px;
  content: "";
  display: block;
  position: absolute;
  left: -60px;
  bottom: 8px;
  background-color: #fff;
}
.p-topWorks .p-topWorks__more {
  text-align: center;
  margin: 60px 0 0;
}
.p-topWorks__content .no-post {
  text-align: center;
}
.p-worksCard__meta {
	padding: 30px 0 0;
}
.p-worksCard__title {
  margin: 0;
  font-size: 18px;
	font-weight: 500;
}
.p-worksCard__place {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 12px
}
@media (max-width: 768px) {
  /* works */
  .p-works {
    padding: 0 0 20vw;
  }
  /* tabs */
  .p-topWorks__tabs {
    max-width: none;
    padding: 0 3vw;
    margin: 8vw auto 5.4vw; /* 60/68 → 詰める */
    gap: 5vw 0;
    flex-wrap: wrap;
  }
  .p-topWorks__tab {
    min-width: 50%;
    font-size: 3vw;
    padding: 0 0 3vw;
  }
  /* grid: 3col -> 2col */
  .p-works__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.3vw;
    padding: 0 3vw 3vw;
  }
  /* card overlay text（白文字） */
  .p-topWorks .p-worksCard p {
    left: 16px;
    bottom: 1.5vw;
    font-size: 2.3vw;
  }
  .p-topWorks .p-worksCard p::before {
    width: 28px;
    left: -32px;
    bottom: 1vw;
  }
  /* more */
  .p-topWorks .p-topWorks__more {
    margin: 7.2vw 0 0;
  }
  /* meta */
  .p-worksCard__meta {
    padding: 10px;
  }
  .p-worksCard__title {
    font-size: 13px;
  }
  .p-worksCard__place {
    font-size: 11px;
  }
}
/* CTA */
.p-cta {
  max-width: 1466px;
  margin: auto;
  text-align: center;
  padding: 0 40px;
}
.p-cta__ttl {
  padding: 0 0 25px;
  border-bottom: 1px solid #000;
  margin: 0 0 35px;
}
.p-cta__ttl .icon {
  margin: 0 0 25px;
}
.p-cta__ttl .icon .wh {
  display: none;
}
.p-cta__ttl p {
  font-size: 28px;
  font-weight: 500;
}
.p-cta__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
}
.p-cta__box {
  background: #E8E5DC;
  border-radius: 40px;
  padding: 44px 18px 0;
  border: 1px solid #000;
  min-height: 244px;
}
.p-cta__label {
  margin: 0 0 40px;
  font-weight: 500;
  font-size: 20px;
}
.p-cta__value {
  display: inline-block;
  font-size: 35px;
  font-weight: 700
}
.p-cta__value a {
  font-size: 48px;
}
@media (max-width: 768px) {
  /* CTA */
  .p-cta {
    padding: 0 5vw;
  }
  .p-cta__ttl {
    padding: 0 0 3vw;
    margin: 0 0 6vw;
  }
  .p-cta__ttl .icon {
    margin: 0 auto 2vw;
    width: 14vw;
  }
  .p-cta__ttl p {
    font-size: 4vw;
    line-height: 1.4;
  }
  /* グリッド：2列 → 縦並び */
  .p-cta__inner {
    grid-template-columns: 1fr;
    gap: 4vw;
  }
  .p-cta__box {
    border-radius: 4.6vw;
    padding: 5.3vw 3vw;
    min-height: auto;
  }
  .p-cta__label {
    margin: 0 0 5vw; /* 40px → 16px */
    font-size: 3.4vw; /* 20px → 16px */
  }
  .p-cta__value {
    font-size: 4.4vw; /* 48px → 32px */
    line-height: 1.1;
  }
  .p-cta__value a {
    font-size: 6vw;
  }
}
/* about */
.p-about {
  padding: 190px 0 0;
}
.p-about .l-container {
  width: min(100% - 80px, 1304px);
}
.p-about .p-section__head {
  padding: 0;
  width: min(100% - 80px, var(--container));
}
.p-about__bg {
  background-color: #E8E5DC;
  border: 1px solid #000;
  border-radius: 40px;
  padding: 70px 0 170px;
}
.p-about__label {
  font-weight: 700;
  font-size: 22px;
  margin: 0 0 80px;
}
.p-about__blockWrap {
  position: relative;
  overflow: hidden; /* ここで下方向だけ制御 */
}
.p-about__block {
  position: relative;
  overflow: visible;
  display: flex;
  align-items: center;
  gap: 18px;
}
.p-about__block.block01 {
  min-height: 602px;
  margin: 0 0 330px;
}
.p-about__block.block02 {
  margin: 0 0 280px;
}
.p-about__block.block02, .p-about__block.block03 {
  min-height: 539px;
}
.p-about__block.block03 {
  justify-content: flex-end;
}
.p-about__block .en_svg {
  position: absolute;
  z-index: 1;
}
.p-about__block.block02 .en_svg {
  top: -126px;
  left: -266px;
}
.p-about__block.block03 .en_svg {
  top: -90px;
  right: -166px;
}
.p-about__block.block02 .p-about__text {
  width: 563px;
  z-index: 1;
}
.p-about__block.block03 .p-about__text {
  width: 536px;
  z-index: 1;
}
.p-about__media {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.p-about__block.block01 .p-about__media {
  right: -308px;
  max-width: 1072px;
}
.p-about__block.block02 .p-about__media {
  right: -172px;
  max-width: 796px;
}
.p-about__block.block03 .p-about__media {
  left: -172px;
  max-width: 796px;
}
.p-about__title {
  margin: 40px 0 50px;
  font-size: 22px;
  font-weight: 500;
}
.p-about__block.block03 .p-about__title {
  margin-top: 100px;
}
.p-about__desc {
  margin: 0 0 70px;
  line-height: 2.4;
  font-size: 15px;
  font-weight: 500;
}
@media (max-width: 1240px) {
  /* about */
  .p-about .l-container {
    width: 90vw;
  }
  .p-about .p-section__head {
    width: 90vw;
  }
  .p-about__blockWrap {
    overflow: visible; /* SPははみ出し制御しない方が安全 */
  }
  /* ブロック：縦積み */
  .p-about__block {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
  /* PCの巨大余白・高さを解除 */
  .p-about__block.block01, .p-about__block.block02, .p-about__block.block03 {
    min-height: auto;
	  margin: 0 0 100px;
  }
  .p-about__block.block03 {
    justify-content: flex-start;
    margin: 0;
  }
  /* 装飾SVGはSPでは一旦非表示（必要なら後で縮小表示に変更） */
  .p-about__block .en_svg {
    position: relative;
  }
  .p-about__block.block02 .en_svg {
    top: 0;
    left: 0;
  }
  .p-about__block.block03 .en_svg {
    top: 0;
    left: 0;
    width: 66vw;
  }
  /* テキスト幅固定を解除 */
  .p-about__block.block02 .p-about__text, .p-about__block.block03 .p-about__text {
    width: auto;
  }
  .p-about__block.block03 .p-about__title {
    margin-top: 0;
  }
  /* 画像：absolute解除して通常フローへ */
  .p-about__media {
    position: relative;
    top: auto;
    transform: none;
    width: 100%;
    max-width: none;
	margin-top: 60px;
  }
  .p-about__block.block01 .p-about__media, .p-about__block.block02 .p-about__media, .p-about__block.block03 .p-about__media {
    left: auto;
    right: auto;
    max-width: none;
  }
  .p-about__desc {
    width: 100%;
  }
}
@media (max-width: 768px) {
  /* about */
  .p-about {
    padding: 25vw 0 0; /* 190 → 96 */
  }
  .p-about .l-container {
    width: 90vw;
  }
  .p-about .p-section__head {
    width: 90vw;
  }
  .p-about__bg {
    border-radius: 4vw;
    padding: 15vw 0;
  }
  .p-about__label {
    font-size: 5vw;
    margin: 0 0 9vw; /* 80 → 24 */
  }
  .p-about__blockWrap {
    overflow: visible; /* SPははみ出し制御しない方が安全 */
  }
  /* ブロック：縦積み */
  .p-about__block {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
  /* PCの巨大余白・高さを解除 */
  .p-about__block.block01, .p-about__block.block02, .p-about__block.block03 {
    min-height: auto;
    margin: 0 0 22vw;
  }
  .p-about__block.block03 {
    justify-content: flex-start;
    margin: 0;
  }
  /* 装飾SVGはSPでは一旦非表示（必要なら後で縮小表示に変更） */
  .p-about__block .en_svg {
    position: relative;
  }
  .p-about__block.block02 .en_svg {
    top: 0;
    left: 0;
    margin: 0 0 10vw;
  }
  .p-about__block.block03 .en_svg {
    top: 0;
    left: 0;
    margin: 0 0 10vw;
    width: 66vw;
  }
  /* テキスト幅固定を解除 */
  .p-about__block.block02 .p-about__text, .p-about__block.block03 .p-about__text {
    width: auto;
  }
  .p-about__block.block03 .p-about__title {
    margin-top: 0;
  }
  /* 画像：absolute解除して通常フローへ */
  .p-about__media {
    position: relative;
    top: auto;
    transform: none;
    width: 100%;
    max-width: none;
    margin-top: 12vw;
  }
  .p-about__block.block01 .p-about__media, .p-about__block.block02 .p-about__media, .p-about__block.block03 .p-about__media {
    left: auto;
    right: auto;
    max-width: none;
  }
  .p-about__title {
    margin: 0 0 7vw;
    font-size: 5vw;
  }
  .p-about__desc {
    margin: 0 0 12vw; /* 70 → 20 */
    line-height: 1.9; /* 2.4 → 1.9 */
    font-size: 3.4vw;
    width: 100%;
  }
  .p-about .c-btn {
    margin: 0 15vw;
  }
}
/* process */
.p-process {
  padding: 160px 0 190px;
}
.p-process .p-section__head {
  justify-content: center;
}
.p-process__into {
  text-align: center;
  font-size: 22px;
  line-height: 1.454;
  margin: 75px 0 0;
  font-weight: 500;
}
.p-process__list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 72px 32px;
  margin: 100px auto 0;
  padding: 0 40px;
  max-width: 1920px;
}
.p-process__item {
  border: 1px solid #000;
  border-radius: 16px;
  padding: 64px 42px 42px;
  max-width: 388px;
  width: 100%;
  position: relative;
}
.p-process__step {
  margin: 0;
  font-size: 32px;
  width: 98px;
  line-height: 96px;
  text-align: center;
  border: 1px solid #000;
  border-radius: 100vh;
  background-color: #E8E5DC;
  position: absolute;
  left: -20px;
  top: -20px;
}
.p-process__icon {
  text-align: center;
}
.p-process__title {
  margin: 40px 0 0;
  font-size: 18px;
  font-weight: 500;
}
.p-process__desc {
  margin: 20px 0 0;
  font-size: 14px;
  line-height: 2
}
@media (max-width: 768px) {
  /* process */
  .p-process {
    padding: 20vw 0 22vw; /* 160 0 190 → 縮小 */
  }
  .p-process__into {
    font-size: 3.4vw; /* 22 → 16 */
    line-height: 1.6;
    margin: 4.6vw 0 0; /* 75 → 24 */
    padding: 0 3vw;
  }
  /* list */
  .p-process__list {
    gap: 6vw 0;
    margin: 12vw auto 0;
    padding: 0 4vw;
    justify-content: space-between;
  }
  /* item */
  .p-process__item {
    max-width: none;
    width: 43.2vw;
    padding: 6.8vw 3.2vw;
    border-radius: 3vw;
  }
  /* step */
  .p-process__step {
    font-size: 3.7vw;
    width: 11vw;
    line-height: 1;
    padding: 3.6vw 0;
    left: -2.2vw;
    top: -2.2vw;
  }
  /* title / desc */
  .p-process__title {
    margin: 3.2vw 0 0; /* 40 → 24 */
    font-size: 3.2vw; /* 18 → 16 */
    text-align: left;
    letter-spacing: -0.05em;
  }
  .p-process__desc {
    margin: 2.2vw 0 0; /* 20 → 12 */
    font-size: 3.2vw; /* 14 → 13 */
    line-height: 1.8; /* 2 → 1.8 */
  }
  .p-process__icon {
    width: 14vw;
    margin: 0 auto;
  }
}
/* news */
.p-news {
  padding: 260px 0 200px;
}
.p-news__cont {
  max-width: 1728px;
  width: 100%;
  padding: 0 40px;
  margin: auto;
}
.p-news__list {
  margin: 65px 0 0;
}
.p-newsItem {
  display: flex;
  gap: 60px;
  padding: 40px 0;
  border-bottom: 1px solid #707070;
  align-items: center;
}
.p-newsItem__date {
  font-weight: 500;
  min-width: 140px;
  font-size: 20px
}
.p-postCard__cat {
  font-weight: 500;
  min-width: 142px;
  font-size: 15px;
  background-color: #000;
  color: #fff;
  text-align: center;
  padding: 4px;
}
.p-newsItem__title {
  font-size: 18px;
  font-weight: 500;
}
.p-news__foot {
  text-align: right;
  margin: 40px 0 0;
}
@media (max-width: 768px) {
  /* news */
  .p-news {
    padding: 25vw 0;
  }
  .p-news__cont {
    padding: 0 4vw;
  }
  .p-news__list {
    margin: 3vw 0 0;
  }
  .p-newsItem {
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 5vw 0;
  }
  .p-newsItem__date {
    min-width: auto;
    font-size: 3vw;
    width: 20vw;
  }
  .p-postCard__cat {
    min-width: auto;
    font-size: 3vw;
    padding: 0.6vw 3vw;
  }
  .p-newsItem__title {
    font-size: 3.7vw; /* 18 → 15 */
    line-height: 1.5;
    width: 100%;
    margin: 1vw 0 0;
  }
  .p-news__foot {
    margin: 8vw 16vw 0; /* 40 → 24 */
  }
}
/* shop */
.p-shop {
  padding: 0 0 150px;
}
.p-shop__bg {
  background-color: #E8E5DC;
  border: 1px solid #000;
  border-radius: 40px;
  padding: 62px 40px 116px;
}
.p-shop__blockWrap {
  position: relative;
  overflow: hidden;
}
.p-shop__ttl {
  text-align: center;
  max-width: 1550px;
  margin: 0 auto 65px;
}
.p-shop__block {
  max-width: 1648px;
  margin: auto;
  position: relative;
  overflow: visible;
  display: flex;
  gap: 18px;
  min-height: 442px;
}
.p-shop__text {
  padding: 70px 0 0;
}
.p-shop__text .p-shop__title {
  font-size: 22px;
  font-weight: 500;
  margin: 0 0 55px;
}
.p-shop__text .p-shop__desc {
  font-size: 15px;
  line-height: 2.67;
  font-weight: 500;
}
.p-shop__block .p-shop__media {
  right: -348px;
  max-width: 1550px;
  display: flex;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  gap: 24px;
}
@media (max-width: 768px) {
  /* shop */
  .p-shop {
    padding: 0 0 15vw;
  }
  .p-shop__bg {
    border-radius: 4vw;
    padding: 8.5vw 4vw 15vw;
  }
  .p-shop__blockWrap {
    overflow: visible;
  }
  .p-shop__ttl {
    margin: 0 auto 12vw 0;
    max-width: 72vw;
    text-align: left;
  }
  /* ブロック：縦積み */
  .p-shop__block {
    max-width: none;
    min-height: auto;
    flex-direction: column;
    gap: 16px;
  }
  .p-shop__text {
    padding: 0;
  }
  .p-shop__text .p-shop__title {
    font-size: 5vw;
    margin: 0 0 12vw;
  }
  .p-shop__text .p-shop__desc {
    font-size: 3.4vw;
    line-height: 1.9;
  }
  /* 画像：absolute解除して通常フローへ */
  .p-shop__block .p-shop__media {
    display: flex;
    flex-wrap: wrap;
    position: relative;
    max-width: none;
    right: 0;
    top: 0;
    gap: 1vw;
    transform: none;
    margin: 12vw 0 0;
  }
  /* 画像がimg要素なら潰れ防止（任意） */
  .p-shop__block .p-shop__media img {
    width: 100%;
    height: auto;
  }
}
/* instagram */
.p-instagram {
  padding: 0 40px 220px;
}
.p-instagram__ttl {
  text-align: center;
  margin: 0 0 128px;
}
.p-instagram__ttl .c-heading {
  font-size: 52px;
  font-weight: 500;
  margin: 10px 0 0;
}
.p-instagram__block {
  max-width: 988px;
  margin: auto;
}
.p-instagram__block.block01 {
  margin-bottom: 160px;
}
.p-instagram__block_wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 40px;
}
.p-instagram___block_ttl {
  display: flex;
  align-items: center;
  gap: 40px;
}
.p-instagram___block_text h3 {
  font-size: 20px;
  margin: 0 0 12px;
  font-weight: 500;
}
.p-instagram___block_text .name {
  font-size: 15px;
}
@media (max-width: 768px) {
  .p-instagram {
    padding: 0 4vw 25vw;
  }
  .p-instagram__ttl {
    margin: 0 0 8.4vw;
  }
  .p-instagram__ttl .icon img {
    width: 4vw;
  }
  .p-instagram__ttl .c-heading {
    font-size: 4.6vw;
    margin: 1vw 0 0;
  }
  .p-instagram__block {
    max-width: auto;
    margin: auto;
  }
  .p-instagram__block .icon img {
    width: 7.4vw;
  }
  .p-instagram__block.block01 {
    margin-bottom: 16vw;
  }
  .p-instagram__block_wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 4.6vw;
  }
  .p-instagram___block_ttl {
    gap: 3.4vw;
  }
  .p-instagram___block_text h3 {
    font-size: 3.2vw;
    margin: 0 0 1vw;
  }
  .p-instagram___block_text .name {
    font-size: 2.7vw;
  }
  .p-instagram__pict {
    text-align: center;
  }
  .p-instagram__pict img {
    width: 100%;
  }
  .p-instagram .btn {
    text-align: center;
    margin: 6.5vw 0 0;
  }
}
.p-gallery {
  padding: 0 20px 240px;
  text-align: center;
}
@media (max-width: 768px) {
  .p-gallery {
    padding: 0 4vw 22vw;
  }
}
/* contact */
.p-contact {
  padding: 0 0 270px;
}
.p-contact .p-section__head {
  justify-content: center;
}
.p-contact__cont {
  background-color: #000;
  padding: 54px 0 134px;
}
.p-contact__cont .bk {
  display: none;
}
.p-contact__cont .p-cta__ttl .icon .wh {
  display: inline;
}
.p-contact__ttl {
  color: #fff;
  font-size: 22px;
  font-weight: 500;
  text-align: center;
  margin: 0 0 85px;
}
.p-contact__cont .p-cta__ttl p {
  color: #fff;
}
.p-contact__cont .p-cta__ttl {
  border-bottom: 1px solid #fff;
}
@media (max-width: 768px) {
  .p-contact {
    padding: 0;
  }
  .p-contact__cont {
    padding: 5.8vw 0 14vw;
  }
  .p-contact__ttl {
    font-size: 3.4vw;
    margin: 0 0 14vw;
  }
}
.p-gmap {
  line-height: 0;
}
.p-gmap iframe {
  width: 100%;
  height: 500px;
  filter: grayscale(100%);
  -webkit-filter: grayscale(100%);
}
/* footer */
.l-footer {
  background: #E8E5DC;
  border-top: 1px solid #000;
}
.l-footer a {
  transition: 0.3s;
}
.l-footer a:hover {
  transition: 0.3s;
  opacity: 0.5;
}
.l-footer__inner {
  max-width: 1728px;
  width: 100%;
  padding: 75px 40px 40px;
  margin: auto;
}
.l-footer__brand {
  margin: 0 0 25px;
}
.l-footer__logo img {
  max-width: 248px;
  height: auto;
  display: block;
}
.l-footer__grid {
  display: flex;
  justify-content: space-between;
}
.l-footer__infoGrid {
  gap: 120px;
  display: flex;
}
.l-footer__ttl {
  margin: 0 0 20px;
  font-weight: 500;
  font-size: 17px;
}
.l-footer__txt {
  margin: 0;
  font-size: 14px;
  line-height: 2;
}
.l-footer__dl {
  margin: 0;
  display: grid;
}
.l-footer__dlRow {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 14px;
  font-size: 13px;
  line-height: 1.9;
  color: rgba(0, 0, 0, .72);
}
.l-footer__dl dt {
  margin: 0;
  color: rgba(0, 0, 0, .72);
}
.l-footer__dl dd {
  margin: 0;
}
.l-footer__follow {
  margin-top: 45px;
}
.l-footer__sns {
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
}
.l-footer__sns img {
  width: 20px;
  height: 20px;
  display: block;
}
/* right nav */
.l-footer__nav {
  justify-self: end;
  text-align: left;
  max-width: 670px;
  width: 100%;
}
.l-footer__navList {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  font-weight: 700;
  letter-spacing: .08em;
}
.l-footer__navList a {
  font-size: 24px;
  font-weight: 500;
}
.l-footer__subList {
  margin: 32px 0 0 20px;
  padding: 0;
  display: grid;
  gap: 18px;
  position: absolute;
}
.l-footer__subList a {
  font-size: 14px;
}
/* bottom row */
.l-footer__bottom {
  margin-top: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 670px;
  margin: -10px 0 0 auto;
}
.l-footer__privacy {
  font-size: 16px;
  font-weight: 500;
}
.l-footer__copy {
  font-size: 13px;
  font-weight: 500;
}
/* responsive */
@media (max-width: 768px) {
  .l-footer__inner {
    max-width: none;
    width: 100%;
    padding: 15vw 4vw 6vw;
  }
  .l-footer__brand {
    margin: 0 0 10vw;
  }
  .l-footer__logo img {
    max-width: 36vw;
    height: auto;
    display: block;
  }
  .l-footer__grid {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .l-footer__left {
    order: 2;
    margin: 20vw 0 0;
  }
  .l-footer__infoGrid {
    justify-content: space-between;
    gap: 9vw;
  }
  .l-footer__ttl {
    margin: 0 0 4.5vw;
    font-size: 3.8vw;
  }
  .l-footer__txt {
    margin: 0;
    font-size: 3.2vw;
    line-height: 2;
  }
  .l-footer__dlRow {
    gap: 14px;
    font-size: 3.2vw;
  }
  .l-footer__follow {
    margin-top: 9.2vw;
  }
  .l-footer__sns {
    width: 4.6vw;
    height: 4.6vw;
  }
  .l-footer__sns img {
    width: 4.6vw;
    height: 4.6vw;
  }
  /* right nav */
  .l-footer__nav {
    justify-self: end;
    text-align: left;
    max-width: 670px;
    width: 100%;
  }
  .l-footer__navList {
    display: block;
    order: 1;
  }
  .l-footer__navList li {
    margin: 0 0 3.5vw;
    position: relative;
  }
  .l-footer__navList a {
    font-size: 3.4vw;
  }
  .l-footer__subList {
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0;
    position: absolute;
    left: 22vw;
    top: -0.5vw;
  }
  .l-footer__subList a {
    font-size: 3vw;
  }
  /* bottom row */
  .l-footer__bottom {
    margin-top: 46px;
    justify-content: flex-end;
    max-width: none;
    margin: auto;
  }
  .l-footer__privacy_wrap {
    margin: 9.2vw 0 0;
  }
  .l-footer__privacy {
    font-size: 3.2vw;
  }
  .l-footer__copy {
    font-size: 3vw;
    margin: 5vw 0 0;
  }
}
/* マウス追従カーソル */
.c-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 108px;
  height: 108px;
  border-radius: 50%;
  border: 1px solid #fff;
  color: #fff;
  display: grid;
  place-items: center;
  pointer-events: none;
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity .2s ease, transform .08s ease;
  z-index: 9999;
}
.c-cursor__icon {
  font-size: 18px;
  font-weight: 700;
}
/* 表示トリガー */
.is-cursorActive .c-cursor {
  opacity: 1;
}
/*low page*/

/* =========================================
about
========================================= */
.p-aboutPage {
	padding: 70px 0 0;
}
.p-aboutPage__into {
	padding: 150px 0 260px;
}
.p-aboutPage__into_block {
	display: flex;
	justify-content: space-between;
	gap:20px;
}
.p-aboutPage__into_label {
	font-size: 60px;
	font-weight: 500;
}
.p-aboutPage__into_labelSub {
	font-size: 24px;
	font-weight: 500;
}
.p-aboutPage__into_desc {
	font-size: 15px;
	line-height: 2.4;
	margin: 70px 0 0;
}

.p-aboutPage__omoi {
    background-color: #E8E5DC;
    border: 1px solid #000;
    border-radius: 40px;
    padding: 160px 0 130px;
	position: relative;
	width: 100%;
}
.p-aboutPage__omoi_txt img {
	position: absolute;
	top:-100px;
	left:50%;
	transform: translateX(-50%);
	width: 1530px;
	padding: 0 20px;
}
.p-aboutPaget__omoi_block {
	position: relative;
}
.p-aboutPage__omoi_ttl {
	font-size: 32px;
	font-weight: 500;
	writing-mode: vertical-rl;
	letter-spacing: 0.5em;
	position: absolute;
	left: -140px;
	top: 0;
}
.p-aboutPage__omoi_list dl {
	display: flex;
	border-bottom: 1px solid #000;
	margin: 0 0 50px;
	padding: 35px 0 50px;
}
.p-aboutPage__omoi_list dl:last-child {
	border: none;
	margin: 0;
	padding: 35px 0 0;
}
.p-aboutPage__omoi_list dl dt{
	min-width: 426px;
	margin: 0;
	font-size: 22px;
	padding: 0 0 0 82px;
	position: relative;
}
.p-aboutPage__omoi_list dl dt::before {
	content: "";
	width: 80px;
	height: 1px;
	display: block;
	position: absolute;
	left: -10px;
	top: 4px;
	background-color: #000;
	transform: rotate(-45deg);
}
.p-aboutPage__omoi_list dl dt span {
	position: absolute;
	left: 0;
	top: -35px;
	font-size: 20px;
}
.p-aboutPage__omoi_list dl dd{
	min-width: 340px;
	margin: 0;
	font-size: 15px;
	line-height: 2.4;
}

.p-aboutPage__staff {
	padding: 140px 0 0;
}
.p-aboutPaget__staff_block,
.p-aboutPaget__company_block{
	display: flex;
	justify-content: space-between;
}
.p-aboutPaget__staff_tll,
.p-aboutPaget__company_tll{
	position: relative;
}
.p-aboutPaget__staff_tll::before,
.p-aboutPaget__company_tll::before {
	content: "";
	width: 300px;
    height: 1px;
    display: block;
    position: absolute;
    left: -40px;
    top: 130px;
	background-color: #000;
	transform: rotate(-45deg);
}
.p-aboutPaget__staff_tll h3,
.p-aboutPaget__company_tll h3{
	font-size: 40px;
	font-weight: 500;
}
.p-aboutPaget__staff_tll p,
.p-aboutPaget__company_tll p{
	font-size: 20px;
	font-weight: 500;
	padding: 5px 0 0;
}
.p-aboutPaget__staff_list {
	display: flex;
	min-width: 760px;
	justify-content: center;
	gap:60px;
}
.p-aboutPaget__staff_info {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 30px 0 0;
	gap:25px;
	min-height: 42px;
}
.p-aboutPaget__staff_info .post {
	font-size: 15px;
}
.p-aboutPaget__staff_info .name {
	font-size: 18px;
	font-weight: 500;
}
.p-aboutPage__company {
	padding: 140px 0;
}
.p-aboutPaget__company_list {
	min-width: 760px;
}
.p-aboutPaget__company_list dl {
	display: flex;
	font-size: 16px;
	border-bottom: 1px solid #B4B4B4;
	margin: 0 0 15px;
	padding: 0 0 15px;
}
.p-aboutPaget__company_list dl:last-child {
	border-bottom: none;
}
.p-aboutPaget__company_list dl dt{
	min-width: 200px;
	margin: 0;
	color: #707070;
	line-height: 2.125;
}
.p-aboutPaget__company_list dl dd{
	margin: 0;
	line-height: 2.125;
}

@media (max-width: 1620px) {
.p-aboutPage__omoi_ttl {
	writing-mode:horizontal-tb;
	position: relative;
	left: 0;
	top: 0;
	margin: 0 0 100px;
}
}
@media (max-width: 768px) {
.p-aboutPage {
	padding: 10vw 0 0;
}
.p-aboutPage__into {
	padding: 10vw 0 24vw;
}
.p-aboutPage__into_block {
	flex-wrap: wrap;
	gap:8vw;
}
.p-aboutPage__into_label {
	font-size: 8.2vw;
}
.p-aboutPage__into_labelSub {
	font-size: 4vw;
}
.p-aboutPage__into_desc {
	font-size: 3.4;
	line-height: 1.9;
	margin: 6vw 0 0;
}

.p-aboutPage__omoi {
    border-radius: 4vw;
    padding: 16vw 0;
	width: 100%;
}
.p-aboutPage__omoi_txt img {
	top:-7vw;
	padding: 0;
}
.p-aboutPage__omoi_ttl {
	font-size: 5.2vw;
	writing-mode: vertical-rl;
	letter-spacing: 0.3em;
	position: relative;
	left: 0;
	top: 0;
	margin: 0 auto 10vw;
}
.p-aboutPage__omoi_list dl {
	flex-wrap: wrap;
	margin: 0 0 8vw;
	padding: 6vw 0;
}
.p-aboutPage__omoi_list dl:last-child {
	padding: 6vw 0 0;
}
.p-aboutPage__omoi_list dl dt{
	min-width: auto;
	margin: 0;
	font-size: 4.6vw;
	padding: 0 0 5vw 16vw;
	position: relative;
}
.p-aboutPage__omoi_list dl dt::before {
	width: 16vw;
	left: -2vw;
	top: 2vw;
}
.p-aboutPage__omoi_list dl dt span {
	position: absolute;
	left: 0;
	top: -6vw;
	font-size: 4.6vw;
}
.p-aboutPage__omoi_list dl dd{
	min-width: auto;
	margin: 0;
	font-size: 3.4vw;
	line-height: 1.9;
	padding: 0 0 0 16vw;
}

.p-aboutPage__staff {
	padding: 20vw 0 0;
}
.p-aboutPaget__staff_block,
.p-aboutPaget__company_block{
	display: block;
}
.p-aboutPaget__staff_tll::before,
.p-aboutPaget__company_tll::before {
	width: 54vw;
	left: -8vw;
	top: 22vw;
}
.p-aboutPaget__staff_tll h3,
.p-aboutPaget__company_tll h3{
	font-size: 4.6vw;
}
.p-aboutPaget__staff_tll p,
.p-aboutPaget__company_tll p{
	font-size: 3.7vw;
	padding: 1vw 0 0;
}
.p-aboutPaget__staff_list {
	min-width: auto;
	margin: 30vw auto 0;
	flex-wrap: wrap;
	gap:12vw;
	text-align: center;
}
.p-aboutPaget__staff_info {
	margin: 5vw 0 0;
	gap:6.5vw;
	min-height: auto;
}
.p-aboutPaget__staff_info .post {
	font-size: 3.4vw;
	text-align: left;
}
.p-aboutPaget__staff_info .name {
	font-size: 4vw;
	text-align: left;
}
.p-aboutPage__company {
	padding: 20vw 0 10vw;
}
.p-aboutPaget__company_list {
	min-width: auto;
	margin: 38vw 0 0;
}
.p-aboutPaget__company_list dl {
	font-size: 3vw;
	margin: 0 0 3vw;
	padding: 0 0 3vw;
}
.p-aboutPaget__company_list dl dt{
	min-width: 18vw;
}
.p-aboutPaget__company_list dl dd{
	margin: 0;
	line-height: 2.125;
}
}
/* =========================================
WORKS
========================================= */
/* WORKS archive */
.p-worksArchive {
  padding: 72px 0 160px;
}
.p-worksArchive__filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 100px 0 0;
}
.p-worksArchive__filters--child {
 margin:50px auto 0;
	padding: 36px 140px 0;
	border-top: 1px solid #000;
  gap: 20px 18px;
}
.p-worksArchive__filters--tags {
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(0, 0, 0, .08);
	
}

.p-worksArchive__filters .cate_ttl {
	font-size: 20px;
	font-weight: 500;
	margin: 0 50px 0 0;
}

.c-filter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  font-size: 15px;
  min-width: 200px;
	min-height: 40px;
	color: #B4B4B4;
	font-weight: 500;
	transition: all 0.5s;
	border-bottom: 1px solid #fff;
}
.c-filter.is-active,
.c-filter:hover{
	border-bottom: 1px solid #000;
	color: #000;
	position: relative;
}
.c-filter.is-active:nth-of-type(3)::before {
  content: "";
  position: absolute;
  bottom: -67px;
  left: 50%;
  width: 32px;
  height: 32px;
  background-color: #fff;
  border-left: 2px solid #000;
  border-top: 2px solid #000;
  transform: translateX(-50%) rotate(45deg);
}
.c-tagLink {
  padding: 14px 10px;
  border-radius: 999px;
  font-size: 15px;
  text-align: center;
	font-weight: 500;
	border: 1px solid #000;
	min-width: 166px;
	transition: all 0.5s;
}
.c-tagLink.is-active,
.c-tagLink:hover{
  background: #000;
  color: #fff;
}
.p-worksGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 55px 50px;
  margin-top: 100px;
}
@media (max-width: 900px) {
  .p-worksGrid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  .p-worksGrid {
    grid-template-columns: 1fr;
  }
}
.p-worksCard__thumb {
  aspect-ratio: 427 / 267;
  overflow: hidden;
  background: #ddd;
}
.p-worksCard__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-worksCard__cat {
  margin: 30px 0 0;
  color: #000;
  border:1px solid #000;
  font-size: 14px;
	display: inline-block;
	padding: 2px 12px;
	font-weight: 500;
}
.p-worksCard__subcat {
  margin: 15px 0 0;
  color: #707070;
  font-size: 14px;
	font-weight: 500;
}
.p-pagination {
  margin-top: 100px;
}
.p-pagination .navigation .nav-links {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}
.p-pagination a, .p-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
}
.p-pagination .current {
  background: #111;
  color: #fff;
  border-color: #111;
}
.p-pagination a span {
	width: 22px;
	display: block;
	height: 1px;
	background-color: #000;
	position: relative;
	margin: 10px 0 0;
}
.p-pagination a span::before {
	content: "";
    position: absolute;
    background-color: #000;
    display: block;
    height: 1px;
    transition: 0.5s;
	width: 15px;
    top: -5px;
}
.p-pagination a .prev_arr::before {
	right: 26px;
	transform: translateY(-50%) rotate(-45deg);
}
.p-pagination a .next_arr::before {
	left: 26px;
	transform: translateY(-50%) rotate(45deg);
}
@media (max-width: 768px) {
.p-worksArchive {
  padding: 7vw 0 22vw;
}
.p-worksArchive__filters {
  gap: 3vw 0;
  margin: 12vw 0 0;
	justify-content: space-between;
}
.p-worksArchive__filters--child {
 margin:6.8vw auto 0;
	padding: 5.4vw 0 0;
  gap: 3vw 2vw;
}
.p-worksArchive__filters .cate_ttl {
	font-size: 3.7vw;
	margin: 0 ;
	width: 100%;
}

.c-filter {
  padding: 8px 14px;
  font-size: 3.4vw;
  min-width: 49%;
	min-height: 3em;
}
.c-filter.is-active:nth-of-type(3)::before {
  bottom: -9vw;
  width: 4vw;
  height: 4vw;
}
.c-tagLink {
  padding: 2.4vw 1vw;
  font-size: 2.6vw;
	min-width: 28vw;
}
.p-worksGrid {
  display: grid;
  gap: 12vw;
  margin-top: 10vw;
}
	.p-worksCard__meta {
		padding: 6vw 0 0;
	}
	.p-worksCard__meta .p-worksCard__title {
		font-size: 4vw;
	}
.p-worksCard__cat {
  margin: 5vw 0 0;
  font-size: 3.2vw;
	padding: 1vw 4vw;
}
.p-worksCard__subcat {
  margin: 2.5vw 0 0;
   font-size: 3.2vw;
}
.p-pagination {
  margin-top: 16vw;
}
.p-pagination .navigation .nav-links {
  gap: 2vw;
}
.p-pagination a, .p-pagination span {
  min-width: 8vw;
  height: 8vw;
  padding: 0 2vw;
}
.p-pagination a span {
	width: 6vw;
	margin: 3vw 0 0;
}
.p-pagination a span::before {
	width: 4vw;
    top: -1.1vw;
}
.p-pagination a .prev_arr::before {
	right: 5vw;
}
.p-pagination a .next_arr::before {
	left: 5vw;
}
}


/* works singlw */

.p-worksDetail {
  margin: 60px auto 96px;
}
.p-worksDetail .l-container {
	width: min(100% - 80px, 1380px);
}
.p-worksDetail__title {
	font-size: 36px;
	margin: 0 0 30px;
}
.p-worksDetail__tags .c-tag--parent{
    color: #000;
    border: 1px solid #000;
    font-size: 14px;
    display: inline-block;
    padding: 2px 12px;
    font-weight: 500;
}
.p-worksDetail__tags .c-tag--child{
    color: #707070;
    font-size: 14px;
    display: inline-block;
    font-weight: 500;
	margin: 15px 5px 0 0;
}
.p-worksDetail__hero {
	margin: 35px auto 0;
}
.p-worksDetail__hero img {
  width: 100%;
  height: auto;
}
.p-worksDetail__gallery {
	margin: 95px auto 40px;
}
.p-worksGallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px 36px;
}
.p-worksGallery__item {
  display: block;
  position: relative;
  aspect-ratio: 427 / 267;
  overflow: hidden;
}
.p-worksGallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.p-worksDetail__info {
	display: flex;
	justify-content: space-between;
	margin: 0 auto 80px;
	gap: 20px;
	flex-wrap: wrap;
}
.p-worksInfo__head {
	font-size: 20px;
	font-weight: 500;
	position: relative;
}
.p-worksInfo__head::before {
    content: "";
    width: 100px;
    height: 1px;
    display: block;
    position: absolute;
    left: -15px;
    top: 45px;
    background-color: #000;
    transform: rotate(-45deg);
}
.p-worksInfo__dl {
	margin: 20px 0 0 80px;
}
.p-worksInfo__row {
	display: flex;
	border-top: 1px solid #E5E5E5;
	width: 580px;
	padding: 18px 0;
}
.p-worksInfo__row:last-child {
	border-bottom: 1px solid #E5E5E5;
}
.p-worksInfo__row dt {
	margin: 0;
	min-width: 100px;
	font-size: 14px;
}
.p-worksInfo__row dd {
	margin: 0;
	font-size: 14px;
}
.p-worksDetail__body {
	width: 630px;
	margin: 40px 0 0;
	font-size: 13px;
	line-height: 2.3;
}
.p-worksDetail__pager {
	text-align: center;
}
.p-pager {
	display: flex;
	justify-content: center;
	gap:100px;
	margin: 0 0 60px;
}
.p-pager a {
	display: block;
	padding: 10px;
}
.p-pager a span {
	width: 22px;
	display: block;
	height: 1px;
	background-color: #000;
	position: relative;
}
.p-pager a span::before {
	content: "";
    position: absolute;
    background-color: #000;
    display: block;
    height: 1px;
    transition: 0.5s;
	width: 10px;
    top: -3px;
}
.p-pager a .prev_arr::before {
	right:12px;
	transform: translateY(-50%) rotate(-45deg);
}
.p-pager a .next_arr::before {
	left: 12px;
	transform: translateY(-50%) rotate(45deg);
}
@media (max-width: 768px) {
.p-worksDetail {
  margin: 7vw auto 16vw;
}
.p-worksDetail .l-container {
	width: 90vw;
}
.p-worksDetail__title {
	font-size: 5.4vw;
	margin: 0 0 4.5vw;
}
.p-worksDetail__tags .c-tag--parent{
    font-size: 3.2vw;
    padding: 1vw 4vw;
}
.p-worksDetail__tags .c-tag--child{
    font-size: 3.2vw;
	margin: 3vw 1vw 0 0;
}
.p-worksDetail__hero {
	margin: 8vw auto 0;
}
.p-worksDetail .p-worksDetail__hero.l-container {
	width: 100%;
}
.p-worksDetail__gallery {
	margin: 8vw auto 40px;
}
.p-worksGallery {
  grid-template-columns: repeat(2, 1fr);
  gap: 2.4vw 3.5vw;
}
.p-worksDetail__info {
	margin: 0 auto 14vw;
	gap: 9vw;
}
	.p-worksInfo {
		display: flex;
		justify-content: space-between;
		width: 100%;
	}
.p-worksInfo__head {
	font-size: 4vw;
}
.p-worksInfo__head::before {
    width: 20vw;
    left: -3vw;
    top: 9vw;
}
.p-worksInfo__dl {
	margin:0;
	width: 72vw;
}
.p-worksInfo__row {
	padding: 2.4vw 0;
	width: auto;
}
.p-worksInfo__row dt {
	margin: 0;
	min-width: 20vw;
	font-size: 3.2vw;
}
.p-worksInfo__row dd {
	margin: 0;
	font-size: 3.2vw;
}
.p-worksDetail__body {
	width: auto;
	margin:0;
	font-size: 3vw;
	line-height: 2;
}
.p-pager {
	gap:16vw;
	margin: 0 0 12vw;
}
}
/* =========================================
NEWS
========================================= */
/* NEWS list */
.p-newsArchive_newsList{
  border-top: 1px solid #E5E5E5;
	margin: 80px 0 0;
}

.p-newsArchive_newsItem{
  display:grid;
  grid-template-columns: 260px 1fr auto;
  gap: 48px;
  align-items:center;
  padding: 26px 0;
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.p-newsArchive_newsItem__thumb{
  aspect-ratio: 4 / 3;
  overflow:hidden;
  background:#eee;
}
.p-newsArchive_newsItem__thumb img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

.p-newsArchive_newsItem__meta{
  display:flex;
  gap: 14px;
  align-items:center;
  margin-bottom: 25px;
}
.p-newsArchive_newsItem__cat{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 29px;
  padding: 0 12px;
  border: 1px solid #000;
  font-size: 14px;
	font-weight: 500;
}
.p-newsArchive_newsItem__date{
  font-size: 15px;
  letter-spacing: .06em;
	font-weight: 500;
}

.p-newsArchive_newsItem__title{
  margin: 0;
  font-size: 22px;
  line-height: 1.8;
}
.p-newsArchive_newsItem__arrow {
	width: 22px;
	display: block;
	height: 1px;
	background-color: #B4B4B4;
	position: relative;
}
.p-newsArchive_newsItem__arrow::before {
	content: "";
    position: absolute;
    background-color: #B4B4B4;
    display: block;
    height: 1px;
    transition: 0.5s;
	width: 15px;
    top: -4px;
	left: 10px;
	transform: translateY(-50%) rotate(45deg);
}

@media (max-width: 768px){
.p-newsArchive_newsList{
	margin: 16vw 0 0;
}

.p-newsArchive_newsItem{
  grid-template-columns: 25vw 1fr auto;
  gap: 4vw;
  align-items:flex-start;
  padding: 5vw 0;
	position: relative;
}
.p-newsArchive_newsItem__meta{
  gap: 3vw;
  margin-bottom: 2vw;
}
.p-newsArchive_newsItem__cat{
  height: 2em;
  padding: 0 2vw;
  font-size: 2.8vw;
}
.p-newsArchive_newsItem__date{
  font-size:2.8vw;
}

.p-newsArchive_newsItem__title{
  margin: 0;
  font-size: 3.2vw;
  line-height: 1.6;
}
.p-newsArchive_newsItem__arrow_wrap {
	bottom: 5vw;
	right: 0;
	position: absolute;
}
}

/* NEWS list */
.p-newsSingle_Detail{
	margin: 80px 0 160px;
}
.p-newsSingle_Detail__title {
	font-size: 36px;
	font-weight: 500;
}
.p-newsSingle_Detail__meta {
	display: flex;
	gap:30px;
	align-items: center;
	margin: 35px 0 60px;
	border-bottom: 1px solid #E5E5E5;
	padding: 0 0 30px;
}
.p-newsSingle_Detail__body {
	margin: 0 auto 160px;
}
@media (max-width: 768px){
.p-newsSingle_Detail{
	margin: 7vw 0 20vw;
}
.p-newsSingle_Detail__title {
	font-size: 4.6vw;
}
.p-newsSingle_Detail__meta {
	gap:4vw;
	margin: 4vw 0 6vw;
	padding: 0 0 4vw;
}
.p-newsSingle_Detail__body {
	margin: 0 auto 12vw;
}
} 
/* =========================================
privacypolicy
========================================= */
.p-pravacyPage {
  padding: 100px 0 140px;
}

.p-pravacyPage h2 {
  font-size: 28px;
  font-weight: 500;
  margin: 0 0 70px;
}
.p-pravacyPage p {
  font-size: 16px;
  line-height: 1.875;
}
.p-pravacyPage p.tel {
  margin: 20px 0 0;
}
.p-pravacyPage_into {
  margin: 0 0 40px;
}
.p-pravacyPage_cont .box {
  margin: 0 0 35px;
}
.p-pravacyPage_cont .box h3 {
  font-size: 20px;
  font-weight: 500;
  margin: 0 0 10px;
}
.p-pravacyPage_enactment {
  margin: 70px 0 85px;
}
.p-pravacyPage_btn {
  text-align: center;
}
@media (max-width: 768px) {
.p-pravacyPage {
  padding: 7vw 0 22vw;
}

.p-pravacyPage h2 {
  font-size: 4.6vw;
  margin: 0 0 5.5vw;
}
.p-pravacyPage p {
  font-size: 3.2vw;
}
.p-pravacyPage p.tel {
  margin: 6.8vw 0 0;
}
.p-pravacyPage_into {
  margin: 0 0 6.8vw;
}
.p-pravacyPage_cont .box {
  margin: 0 0 6.8vw;
}
.p-pravacyPage_cont .box h3 {
  font-size: 4vw;
  margin: 0 0 2vw;
}
.p-pravacyPage_enactment {
  margin: 6.8vw 0 11vw;
}
}


/* =========================================
Contact
========================================= */
.p-contactPage_wrap {
  padding: 90px 0 200px;
}
.p-contactPage_wrap p {
  font-size: 16px;
  line-height: 1.875;
}
.p-contactPage_into {
  margin: 0 0 60px;
}
.p-contactPage_cont {
  max-width: 1000px;
  margin: auto;
}
.p-contactPage_tel {
  display: flex;
  align-items: baseline;
  margin: 0 0 40px;
}
.p-contactPage_tel span {
  font-size: 24px;
  font-weight: 700;
  padding: 0 10px 0 0;
}
.p-contactPage_tel a {
  font-size:56px;
  font-weight: 700;
}
.p-contactPage_tel p {
  padding: 0 0 0 20px;
}
.p-contactPage_formarea {
  border-top: 1px solid #B4B4B4;
  margin: 70px 0 0;
  padding: 60px 0 0;
}
@media (max-width: 768px) {
.p-contactPage {
  padding: 7vw 0 22vw;
}
.p-contactPage_wrap {
     padding: 7vw 0 0;
}
.p-contactPage_wrap p {
  font-size: 3.2vw;
}
.p-contactPage_into {
  margin: 0 0 9vw;
}
.p-contactPage_cont {
  max-width: 1000px;
  margin: auto;
}
.p-contactPage_tel {
  flex-wrap: wrap;
  margin: 0 0 12vw;
}
.p-contactPage_tel span {
  font-size: 5.5vw;
  padding: 0 2vw 0 0;
}
.p-contactPage_tel a {
  font-size:9.2vw;
}
.p-contactPage_tel p {
  padding: 2vw 0 0;
  width: 100%;
}
.p-contactPage_formarea {
  margin: 9vw 0 0;
  padding: 7vw 0 0;
}
}
/* =========================================
Contact Form 7
========================================= */
.cf7-row {
  margin: 0 0 35px;
}

.cf7-label {
  display: flex;
  align-items: center;
  margin: 0 0 15px;
  font-weight: 500;
}

.cf7-required {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 2px;
  background:#C70000;
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  margin: 0 0 0 10px;
  position: relative;
  top: -1px;
}

.cf7-note {
  color: #707070;
  font-size: 15px;
  padding: 0 0 0 30px;
}

/* inputs */
.cf7-input,
.cf7-textarea {
  width: 100%;
  max-width: 530px;
  box-sizing: border-box;
  border: 1px solid #E5E5E5;
  padding: 16px 14px;
  font-size: 15px;
  line-height: 1.6;
  background: #fff;
  outline: none;
}
.adress .cf7-input {
  max-width: 100%;
}
.cf7-textarea {
  min-height: 220px;
  max-width: 100%;
  resize: vertical;
}

.cf7-input::placeholder,
.cf7-textarea::placeholder {
  color: #E5E5E5;
}

/* focus */
.cf7-input:focus,
.cf7-textarea:focus {
  border-color: #222;
  box-shadow: 0 0 0 3px rgba(0,0,0,.06);
}

/* checkbox / radio base */
.cf7-checks .wpcf7-list-item,
.cf7-radios .wpcf7-list-item {
  margin: 0 0 12px;
}



/* acceptance */
.cf7-privacy .wpcf7-form-control-wrap {
  display: block;
}

.cf7-acceptance {
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.6;
  color: #333;
}
.cf7-privacy {
  display: flex;
  justify-content: center;
  margin: 45px 0 0;
}
.cf7-privacy a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 5px;
}

/* submit button */
.cf7-submit {
  margin: 50px auto 0;
  text-align: center;
  max-width: 280px;
   position: relative;
}
.cf7-submit::before,.cf7-submit::after {
  content: "";
  position: absolute;
  background-color: #fff;
  display: block;
  height: 1px;
  transition: 0.5s;
}
.cf7-submit::before {
  width: 20px;
  right: 32px;
  top: 50%;
}
.cf7-submit::after {
  width: 10px;
  right: 30px;
  top: 45%;
  transform: translateY(-50%) rotate(45deg);
}

.cf7-submit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  padding: 12px 36px;
  border-radius: 100vh;
  background: #000;
  font-size: 17px;
  min-width: 280px;
  color: #fff;
  transition: 0.5s;
  text-align: left;
}
.cf7-submit-btn.disabled{
  background:#ccc;
  cursor:not-allowed;
  pointer-events:none;
}


.cf7-submit-btn:active {
  transform: translateY(1px);
}

/* spinner / response */
.wpcf7-spinner {
  margin: 10px auto 0;
  display: block;
  position: absolute;
}

.wpcf7-not-valid-tip {
  margin-top: 6px;
  font-size: 13px;
  color: #d60000;
}

.wpcf7-response-output {
  border: none !important;
  text-align: center;
  color: #d60000;
}

/* mobile: make it airy */
@media (max-width: 768px) {
  .cf7-row {
    margin-bottom: 5.4vw;
  }
  .cf7-input,
  .cf7-textarea {
    padding: 13px 12px;
    font-size: 16px; /* iOS zoom対策 */
  }
  .cf7-submit-btn {
    height: 54px;
  }
}

/* ===============================
CF7 Custom Checkbox
=============================== */

.cf7-checks .wpcf7-list-item {
  display:block;
  margin-bottom:14px;
}

/* label全体をクリック可能 */
.cf7-checks label{
  display:flex;
  align-items:center;
  cursor:pointer;
  gap:12px;
  font-size:16px;
}

/* 元のチェックボックスを隠す */
.cf7-checks input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width:30px;
  height:30px;
  border:1px solid #E5E5E5;
  position:relative;
  cursor:pointer;
  transition:0.2s;
}

/* hover */
.cf7-checks input[type="checkbox"]:hover{
  border-color:#000;
}

/* checked状態 */
.cf7-checks input[type="checkbox"]:checked{
  background:#000;
  border-color:#000;
}

/* チェックマーク */
.cf7-checks input[type="checkbox"]:checked::after{
  content:"";
  position:absolute;
  left: 9px;
  top: 1px;
  width: 10px;
  height: 18px;
  border:solid #fff;
  border-width:0 3px 3px 0;
  transform:rotate(45deg);
}

/* スマホ */
@media (max-width:768px){

  .cf7-checks label{
    font-size:3.2vw;
  }

  .cf7-checks input[type="checkbox"]{
    width:20px;
    height:20px;
  }
  .cf7-checks input[type="checkbox"]:checked::after {
    left: 5px;
    width: 8px;
    height: 13px;
}
  .wpcf7-list-item-label {
    width: 80vw;
  }
 .cf7-privacy .wpcf7-list-item-label {
    width: auto;
  }

}

/* ===============================
CF7 Custom Radio
=============================== */

.cf7-radios .wpcf7-list-item{
  display:block;
  margin-bottom:14px;
}

.cf7-radios label{
  display:flex;
  align-items:center;
  cursor:pointer;
  gap:12px;
  font-size:16px;
}

/* 元ラジオ */
.cf7-radios input[type="radio"]{
  appearance:none;
  -webkit-appearance:none;
  width:30px;
  height:30px;
  border:1px solid #E5E5E5;
  border-radius:50%;
  position:relative;
  cursor:pointer;
  transition:0.2s;
}

/* hover */
.cf7-radios input[type="radio"]:hover{
  border-color:#000;
}

/* 中の丸 */
.cf7-radios input[type="radio"]:checked::after{
  content:"";
  position:absolute;
  width:12px;
  height:12px;
  background:#000;
  border-radius:50%;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
}

/* スマホ */
@media (max-width:768px){

  .cf7-radios label{
    font-size:3.2vw;
  }

  .cf7-radios input[type="radio"]{
    width:24px;
    height:24px;
  }
  .cf7-radios input[type="radio"]:checked::after {
 width:10px;
    height:10px;
}
}

/* =========================================
confirm
========================================= */
.p-confirmPage {
  padding: 100px 0 140px;
  max-width: 1000px;
  margin: auto;
}

.p-confirmPage h2 {
  font-size: 28px;
  font-weight: 500;
  margin: 0 0 35px;
}
.p-confirmPage p {
  font-size: 16px;
  line-height: 1.875;
}

.p-confirmPage_cont {
  margin: 80px 0 0;
}
.cf7mt_row {
  display: flex;
  border-top: 1px solid #B4B4B4;
  padding: 18px 0;
}
.cf7mt_row.last {
  border-bottom: 1px solid #B4B4B4;
}
.cf7mt_row p{
  font-size: 15px;
}
.cf7mt_row p:nth-of-type(1){
  min-width: 240px;
  font-weight: 500;
}
.p-confirmPage_cont .cf7-submit {
  margin: 80px auto 0;
}
.cf7mt_previous {
  text-align: center;
  margin: 50px 0 0;
}
.cf7mt_previous a{
  font-size: 13px;
  text-decoration: underline;
  color: #3B4043;
}
@media (max-width:768px){
  .p-confirmPage {
  padding: 7vw 0 22vw;
}
  .p-confirmPage h2 {
  font-size: 4.6vw;
  margin: 0 0 5.5vw;
}
.p-confirmPage p {
  font-size: 3.2vw;
}
.p-confirmPage_cont {
  margin: 10vw 0 0;
}
.cf7mt_row {
  flex-wrap: wrap;
  padding: 6vw 0;
}
.cf7mt_row.last {
  border-bottom: 1px solid #B4B4B4;
}
.cf7mt_row p{
  font-size: 3.2vw;
  width: 100%;
}
.cf7mt_row p:nth-of-type(1){
  min-width: 100%;
  margin: 0 0 1vw;
}
.p-confirmPage_cont .cf7-submit {
  margin: 18vw auto 0;
}
.cf7mt_previous {
  text-align: center;
  margin: 8vw 0 0;
}
.cf7mt_previous a{
  font-size: 3vw;
}
}

/* =========================================
thanks
========================================= */
.p-thanksPage {
  padding: 100px 0 140px;
  max-width: 1000px;
  margin: auto;
}
.p-thanksPage h2 {
  font-size: 28px;
  font-weight: 500;
  margin: 0 0 35px;
}
.p-thanksPage p {
  font-size: 16px;
  line-height: 1.875;
}
.p-thanksPage_btn {
  text-align: center;
  margin: 90px auto 0;
}
@media (max-width:768px){
.p-thanksPage {
  padding: 7vw 0 22vw;
  max-width: 1000px;
  margin: auto;
}
.p-thanksPage h2 {
  font-size: 4.6vw;
  margin: 0 0 5.5vw;
}
.p-thanksPage p {
  font-size: 3.2vw;
}
.p-thanksPage_btn {
  margin: 12vw auto 0;
}
}

/* =========================================
404
========================================= */
.p-404Page {
  padding: 100px 0 300px;
}
.p-404Page h2 {
  font-size: 28px;
  font-weight: 500;
  margin: 0 0 35px;
}
.p-404Page p {
  font-size: 16px;
  line-height: 1.875;
}
.p-404Page_cont {
  padding: 85px 0 150px;
}
.p-404Page_btn {
  text-align: center;
}
@media (max-width:768px){
.p-404Page {
  padding: 7vw 0 16vw;
}
.p-404Page h2 {
  font-size: 4.4vw;
  margin: 0 0 5.5vw;
}
.p-404Page p {
  font-size: 3vw;
}
.p-404Page_cont {
  padding: 9vw 0 12vw;
}
}



/* =========================================================
 editor CSS
========================================================= */

.p-newsSingle_Detail__body p{
  margin: 0 0 1.4em;
  font-size: 15px;
	line-height: 2;
}

.p-newsSingle_Detail__body a{
  color: inherit;
  text-decoration: underline;
  text-underline-offset: .18em;
}

.p-newsSingle_Detail__body h2{
  margin: 40px 0 16px;
  font-size: 18px;
  line-height: 1.7;
  letter-spacing: .04em;
}

.p-newsSingle_Detail__body h3{
  margin: 28px 0 12px;
  font-size: 16px;
  line-height: 1.7;
}

.p-newsSingle_Detail__body h4{
  margin: 22px 0 10px;
  font-size: 14px;
  line-height: 1.7;
}

.p-newsSingle_Detail__body ul,
.p-newsSingle_Detail__body ol{
  margin: 16px 0 16px 20px;
  padding: 0;
}

.p-newsSingle_Detail__body li{
  margin: 6px 0;
}

.p-newsSingle_Detail__body hr{
  border: 0;
  border-top: 1px solid rgba(0,0,0,.08);
  margin: 32px 0;
}

.p-newsSingle_Detail__body img{
  max-width: 100%;
  height: auto;
  display: block;
  margin: 24px 0;
  border-radius: 6px;
}

.p-newsSingle_Detail__body figure{
  margin: 24px 0;
}
.p-newsSingle_Detail__body figcaption{
  margin-top: 8px;
  font-size: 12px;
  color: rgba(0,0,0,.6);
  line-height: 1.7;
}

/* 引用 */
.p-newsSingle_Detail__body blockquote{
  margin: 22px 0;
  padding: 14px 16px;
  border-left: 3px solid rgba(0,0,0,.2);
  background: rgba(0,0,0,.03);
}
.p-newsSingle_Detail__body blockquote p{ margin: 0; }

/* コード */
.p-newsSingle_Detail__body pre{
  margin: 22px 0;
  padding: 14px 16px;
  background: rgba(0,0,0,.05);
  overflow: auto;
  border-radius: 6px;
  line-height: 1.7;
  font-size: 13px;
}
.p-newsSingle_Detail__body code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 0.95em;
  background: rgba(0,0,0,.06);
  padding: 0 .3em;
  border-radius: 4px;
}

/* テーブル */
.p-newsSingle_Detail__body table{
  width: 100%;
  border-collapse: collapse;
  margin: 22px 0;
}
.p-newsSingle_Detail__body th,
.p-newsSingle_Detail__body td{
  border: 1px solid rgba(0,0,0,.14);
  padding: 10px 12px;
  vertical-align: top;
}
.p-newsSingle_Detail__body th{
  background: rgba(0,0,0,.03);
  font-weight: 700;
}
