*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  min-height: 100vh;
  line-height: 1.8;
  font-family: 'Noto Sans JP', sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, picture, video, canvas, svg { display: block; max-width: 100%; height: auto; }
input, button, textarea, select { font: inherit; color: inherit; }
button { background: none; border: none; padding: 0; cursor: pointer; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; padding: 0; }
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }
table { border-collapse: collapse; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

#p-drawer { display: none; }
#p-drawer.is-open { display: block; }

:root {

  --green:       #2e7d4f;
  --green-deep:  #163f2a;
  --gray-deep:   #34363a;
  --green-light: #4aa06a;
  --teal:        #2b8a8f;
  --teal-light:  #4fb0b3;

  --paper:   #f4f4f5;
  --paper-2: #ececee;
  --white:   #fdfdfd;
  --ink:     #23262b;
  --slate:   #5b6067;
  --slate-2: #8d9198;
  --line:    #dededf;
  --line-2:  #ececed;

  --serif: "Noto Serif JP", serif;
  --sans:  "Noto Sans JP", "Helvetica Neue", Arial, sans-serif;
  --mono:  "Roboto", "Helvetica Neue", Arial, sans-serif;

  --ease: cubic-bezier(0.25, 1, 0.3, 1);
  --ease-io: cubic-bezier(0.65, 0, 0.35, 1);
  --dur: 1s;
  --dur-slow: 1.5s;

  --gutter: clamp(38px, 6vw, 130px);
  --maxw: 1440px;
  --header-h: 100px;

  --sec-pad: clamp(80px, 10vw, 150px);
  --sec-head-mb: clamp(40px, 5.5vw, 72px);
}

* , *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--sans);
  color: var(--ink);
  background: var(--paper);
  line-height: 1.95;
  letter-spacing: .045em;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
body.is-locked { overflow: hidden; }

h1,h2,h3,p,dl,dd,figure,ul,ol { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
::selection { background: var(--green); color: #fff; }

.jp-serif { font-family: var(--serif); font-weight: 500; }

h1, h2, h3, .jp-serif { font-feature-settings: "palt" 1; }
.sec-head__jp, .numbers__jp, .partners__vtitle-jp, .cta__lead, .cta-col__title { text-wrap: balance; }

a:focus-visible, button:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; border-radius: 2px; }
.yg-container { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }

.ph { position: absolute; inset: 0; background-size: cover; background-position: center; }

.ph--placeholder { display: grid; place-items: center; background: #e9e9eb; }
.ph--placeholder::before { content: "NO IMAGE"; font-family: var(--mono); font-size: 11px; letter-spacing: .3em; color: var(--slate-2); }

.loader {
  position: fixed; inset: 0; z-index: 2000; background: var(--paper);
  display: grid; place-items: center; overflow: hidden;
  transition: opacity .8s var(--ease), visibility .8s var(--ease), clip-path .9s var(--ease);
}
.loader.is-done { opacity: 0; visibility: hidden; clip-path: inset(0 0 100% 0); }
.loader__stage { display: flex; flex-direction: column; align-items: center; gap: 22px; }

.loader__mark { width: clamp(104px, 27vw, 148px); height: auto; overflow: visible; }
.loader__bar { opacity: 0; transform: translateX(-16px); transform-box: fill-box; }
.loader__bar--1 { animation: barIn .6s var(--ease) .35s forwards; }
.loader__bar--2 { animation: barIn .6s var(--ease) .50s forwards; }
.loader__bar--3 { animation: barIn .6s var(--ease) .65s forwards; }
@keyframes barIn { to { opacity: 1; transform: translateX(0); } }

.loader__name { display: inline-block; font-family: var(--serif); font-weight: 600; font-size: clamp(15px,2.4vw,18px); letter-spacing: .3em; color: var(--ink); padding-left: .3em; opacity: 0; transform: translateY(8px); animation: loaderName .8s var(--ease) .9s forwards; }
@keyframes loaderName { to { opacity: 1; transform: translateY(0); } }
@keyframes fade { to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  .loader__bar, .loader__name { opacity: 1; transform: none; animation: none; }
}

.yg-header {
  position: fixed; top: 0; left: 0; width: 100%; z-index: 1990; height: var(--header-h);
  display: flex; align-items: center; pointer-events: auto;
  transition: background .6s var(--ease), height .6s var(--ease), box-shadow .6s var(--ease);
}
.yg-header.is-scrolled { height: 72px; background: rgba(255,255,255,.94); backdrop-filter: blur(14px); box-shadow: 0 1px 0 var(--line); }

.yg-header { transition: background .6s var(--ease), height .6s var(--ease), box-shadow .6s var(--ease), transform .6s var(--ease); }
.yg-header.is-hidden { transform: translateY(-100%); }

.yg-header__inner { width: 100%; max-width: 1560px; margin-inline: auto; padding-inline: clamp(20px, 3vw, 56px); display: flex; align-items: center; justify-content: space-between; gap: 28px; }

.brand { display: flex; flex-direction: column; gap: 3px; transition: color .6s var(--ease); }
.brand__tag { font-size: 10.5px; line-height: 1; letter-spacing: .12em; color: var(--slate-2); }
.yg-header.is-scrolled .brand__tag { display: none; }
.brand__row { display: flex; align-items: center; gap: 10px; }
.brand__mark { display: inline-flex; align-items: center; }
.brand__mark svg { display: block; height: 21px; width: auto; }
.brand__name { font-size: 16px; letter-spacing: .12em; font-weight: 600; }

.nav__list { display: flex; flex-wrap: nowrap; align-items: flex-end; gap: clamp(10px, 1.3vw, 24px); }
.nav__list a { white-space: nowrap; }
.nav__list a:not(.nav__contact) { position: relative; display: inline-block; font-size: 14px; letter-spacing: .06em; font-weight: 500; padding-block: 6px; transition: color .4s var(--ease); }
.nav__contact { position: relative; font-size: 14px; letter-spacing: .06em; font-weight: 500; transition: color .4s var(--ease); }
.nav__list a:not(.nav__contact)::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; background: var(--teal); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ease); }
.nav__list a:not(.nav__contact):hover { color: var(--teal); }
.nav__list a:not(.nav__contact):hover::after { transform: scaleX(1); }

.nav__contact { display: inline-flex; flex-direction: column; align-items: center; gap: 0; padding: 0 0 6px !important; }
.nav__contact-i { display: inline-flex; }
.nav__contact-i svg { width: 22px; height: auto; display: block; transition: width .4s var(--ease); }

.nav__contact::before { content: ""; position: absolute; left: 50%; top: 50%; width: 116px; height: 116px; margin: -58px 0 0 -58px; z-index: -1; border-radius: 50%; background: linear-gradient(140deg, #3f9a67 0%, #2f979c 100%); opacity: 0; transform: scale(.7); transition: opacity .4s var(--ease), transform .4s var(--ease); }
.nav__contact:hover::before { opacity: 1; transform: scale(1); }
.nav__contact:hover { color: #fff; }
.nav__contact:hover .nav__contact-i { animation: mailBounce .7s cubic-bezier(.34,1.56,.64,1) forwards; }

@keyframes mailBounce {
  0%   { transform: translateY(0) scale(1); }
  30%  { transform: translateY(-8px) scale(1.3); }
  55%  { transform: translateY(2px) scale(.85); }
  75%  { transform: translateY(-4px) scale(1.15); }
  100% { transform: translateY(-2px) scale(1.08); }
}

.yg-header.is-scrolled .nav__contact-i svg { width: 17px; }
.yg-header.is-scrolled .nav__contact::before { width: 122px; height: 122px; margin: -61px 0 0 -61px; }

@media (max-width: 1360px) {
  .yg-header__inner { max-width: none; padding-inline: clamp(16px, 2.4vw, 40px); }
  .nav__list { gap: clamp(9px, 1.15vw, 18px); }
}
@media (max-width: 1150px) { .nav { display: none; } }

.menu-toggle { display: none; width: 44px; height: 44px; background: none; border: 0; cursor: pointer; position: relative; }
.menu-toggle span { position: absolute; left: 10px; right: 10px; height: 2px; background: var(--ink); transition: transform .5s var(--ease), background .5s var(--ease); }
.menu-toggle span:nth-child(1) { top: 17px; }
.menu-toggle span:nth-child(2) { bottom: 17px; }
body.menu-open .menu-toggle span:nth-child(1) { transform: translateY(4px) rotate(45deg); background: var(--ink); }
body.menu-open .menu-toggle span:nth-child(2) { transform: translateY(-4px) rotate(-45deg); background: var(--ink); }
@media (max-width: 1150px) {

  .menu-toggle { display: block; position: fixed; top: calc((var(--header-h) - 44px) / 2); right: var(--gutter); z-index: 1100; transition: top .6s var(--ease); }

  .yg-header.is-scrolled .menu-toggle,
  body:has(.yg-header.is-scrolled) .menu-toggle { top: 14px; }
}

.drawer { position: fixed; inset: 0; z-index: 900; background: rgba(244,246,243,.96); backdrop-filter: blur(10px); padding: calc(var(--header-h) + 8px) var(--gutter) var(--gutter); display: flex; align-items: center; clip-path: inset(0 0 100% 0); transition: clip-path .9s var(--ease); visibility: hidden; pointer-events: none; }
body.menu-open .drawer { clip-path: inset(0 0 0 0); visibility: visible; pointer-events: auto; }
.drawer__nav { display: flex; flex-direction: column; gap: 0; width: 100%; max-width: 560px; margin-inline: auto; }
.drawer__nav a { color: var(--ink); font-family: var(--serif); font-size: clamp(14px, 3.6vw, 17px); font-weight: 500; letter-spacing: .08em; padding: 11px 0; border-bottom: 1px solid var(--line); display: flex; align-items: baseline; gap: 16px; opacity: 0; transform: translateY(20px); transition: color .4s var(--ease); }
.drawer__nav a:hover { color: var(--green); }
body.menu-open .drawer__nav a { animation: drawerIn .8s var(--ease) forwards; }
.drawer__nav a:nth-child(1){animation-delay:.15s}.drawer__nav a:nth-child(2){animation-delay:.22s}
.drawer__nav a:nth-child(3){animation-delay:.29s}.drawer__nav a:nth-child(4){animation-delay:.36s}
.drawer__nav a:nth-child(5){animation-delay:.43s}.drawer__nav a:nth-child(6){animation-delay:.50s}
.drawer__nav a:nth-child(7){animation-delay:.57s}
.drawer__nav a:nth-child(8){animation-delay:.64s}.drawer__nav a:nth-child(9){animation-delay:.71s}
.drawer__nav a::before { content: attr(data-idx); font-family: var(--mono); font-size: 11px; color: var(--teal); }
.drawer__nav em { font-family: var(--mono); font-style: normal; font-size: 10.5px; color: var(--slate-2); letter-spacing: .2em; text-transform: uppercase; margin-left: auto; }
@keyframes drawerIn { to { opacity: 1; transform: translateY(0); } }

.yg-btn { display: inline-flex; align-items: center; gap: 16px; font-size: 16px; font-weight: 600; letter-spacing: .06em; padding: 17px 30px; border-radius: 2px; transition: background .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease), transform .5s var(--ease), filter .5s var(--ease); }
.btn__arw { width: 26px; height: 1px; background: currentColor; position: relative; transition: width .5s var(--ease); }
.btn__arw::after { content: ""; position: absolute; right: 0; top: 50%; width: 6px; height: 6px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: translateY(-50%) rotate(45deg); }
.yg-btn:hover .btn__arw { width: 38px; }

.btn--primary { background: linear-gradient(140deg, #3f9a67 0%, #2f979c 100%); color: #fff; }
.btn--primary:hover { filter: brightness(1.07) saturate(1.05); color: #fff; }
.btn--ghost { border: 1px solid rgba(255,255,255,.6); color: #fff; }
.btn--ghost:hover { background: #fff; color: var(--green-deep); border-color: #fff; }
.btn--light { background: #fff; color: var(--green-deep); }
.btn--light:hover { background: var(--teal); color: #fff; }
.btn--lg { padding: 20px 40px; font-size: 17px; }

.btn-circle { display: inline-flex; align-items: center; gap: 20px; }
.btn-circle__ring { position: relative; width: 62px; height: 62px; border-radius: 50%; border: 1px solid var(--slate); display: grid; place-items: center; flex: none; transition: background .6s var(--ease), border-color .6s var(--ease); }
.btn-circle__ring::before { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 1px solid var(--teal); transform: scale(1); opacity: 0; transition: transform .6s var(--ease), opacity .6s var(--ease); }
.btn-circle__ring i { width: 8px; height: 8px; border-top: 1px solid var(--ink); border-right: 1px solid var(--ink); transform: rotate(45deg); position: relative; left: -1px; transition: border-color .5s var(--ease), transform .5s var(--ease); }
.btn-circle__label { font-size: 16px; font-weight: 600; letter-spacing: .08em; color: var(--ink); }
.btn-circle:hover .btn-circle__ring { background: var(--green); border-color: var(--green); }
.btn-circle:hover .btn-circle__ring::before { transform: scale(1.28); opacity: 1; }
.btn-circle:hover .btn-circle__ring i { border-color: #fff; transform: rotate(45deg) translate(2px,-2px); }
.sec-head--light .btn-circle__label { color: #fff; }

.section__cta { margin-top: clamp(50px, 6vw, 84px); display: flex; justify-content: center; flex-wrap: wrap; gap: clamp(20px, 3vw, 40px); }

.company-lead { display: grid; grid-template-columns: minmax(0,1fr) clamp(300px,40vw,520px); gap: clamp(32px,5vw,72px); align-items: center; }
.company-lead__body { max-width: 560px; }
.company-lead__text { font-size: clamp(16px,1.5vw,20px); line-height: 2.15; color: var(--ink); letter-spacing: .02em; }
.company-lead__photo { display: block; width: 100%; aspect-ratio: 4/3; background-size: cover; background-position: center; }
.company-lead .btn-circle { margin-top: clamp(30px,3.4vw,44px); }
@media (max-width: 820px) {
  .company-lead { grid-template-columns: 1fr; gap: clamp(26px,5vw,36px); }
  .company-lead__media { order: -1; }
  .company-lead__photo { aspect-ratio: 16/9; }
}

.hero { position: relative; min-height: 100svh; overflow: hidden; display: flex; align-items: flex-start; padding: calc(var(--header-h) + clamp(24px,6vh,72px)) var(--gutter) 120px; background: #fff; color: var(--ink); }

.hero__art {
  position: absolute; top: var(--header-h); left: 0; right: 0;
  height: var(--art-h); z-index: 0; background: #fff;
  --art-h: calc(100svh - var(--header-h));
  --box-left: 36.3%;
  --yg-w: 37.1%;
  --yg-inv: 2.695;
}
.hero__box { position: absolute; inset: 0; clip-path: inset(0 0 0 var(--box-left)); }

.hero__yg { position: absolute; left: 0; bottom: 0; width: var(--yg-w); aspect-ratio: 640.918 / 455.124; clip-path: url(#ygClip); }
.hero__yg .heroPar { position: absolute; inset: 0; }

.hero__art img.hero__ph {
  position: absolute; left: 0; bottom: 0;
  width: 100%; height: calc(var(--art-h) + 80px);
  object-fit: cover;
  object-position: calc(50% + var(--ph-x, 0%)) calc(50% + var(--ph-y, 0%));
  transform: translateY(var(--par-y, 0px));
}

.hero__art img.hero__ph { max-width: none; }
.hero__yg img.hero__ph { width: calc(100% * var(--yg-inv)); }

.hero__ph { opacity: 0; transition: opacity 1.8s var(--ease); }
.hero__ph.is-active { opacity: 1; }

.hero .btn--ghost { border-color: var(--slate); color: var(--ink); }
.hero .btn--ghost:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.hero__scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(105deg, rgba(11,30,20,.82) 0%, rgba(11,30,20,.5) 45%, rgba(11,30,20,.2) 100%); }
.hero__grid { position: absolute; inset: 0; background-image: linear-gradient(to right, rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(to bottom, rgba(255,255,255,.04) 1px, transparent 1px); background-size: clamp(60px,7vw,110px) clamp(60px,7vw,110px); mask-image: linear-gradient(180deg, transparent, #000 30%, #000 70%, transparent); }

.hero__frame { position: absolute; background: var(--teal-light); opacity: .7; z-index: 2; }
.hero__frame--top { top: var(--header-h); left: var(--gutter); height: 2px; width: 0; animation: growX var(--dur-slow) var(--ease) 1.1s forwards; }
.hero__frame--left { top: var(--header-h); left: var(--gutter); width: 2px; height: 0; animation: growY var(--dur-slow) var(--ease) 1.25s forwards; }
@keyframes growX { to { width: clamp(120px, 20vw, 320px); } }
@keyframes growY { to { height: clamp(90px, 14vw, 180px); } }

.hero__body { position: relative; z-index: 3; max-width: 1000px; }
.hero__label { display: flex; align-items: center; gap: 16px; margin-bottom: clamp(18px,3vw,30px); opacity: 0; animation: fadeUp 1s var(--ease) .9s forwards; }
.hero__label-en { font-family: var(--mono); font-size: 12px; letter-spacing: .22em; color: var(--teal); text-transform: uppercase; }
.hero__label-bar { width: 46px; height: 1px; background: var(--slate-2); }
.hero__label-jp { font-size: clamp(16px,1.35vw,18px); font-weight: 500; letter-spacing: .12em; color: var(--slate); }

.hero__copy { font-family: var(--serif); font-weight: 600; font-size: clamp(30px, 5.2vw, 72px); line-height: 1.28; letter-spacing: .045em; color: var(--ink); text-shadow: 0 2px 12px rgba(22,63,42,.14); }
.hero__copy .line { display: block; overflow: hidden; padding-block: .04em; }
.hero__copy .word { display: block; transform: translateY(112%); animation: lineUp 1.3s var(--ease) forwards; }
.hero__copy .line:nth-child(1) .word { animation-delay: 1.0s; }
.hero__copy .line:nth-child(2) .word { animation-delay: 1.15s; }
.hero__copy .line:nth-child(3) .word { animation-delay: 1.3s; }
@keyframes lineUp { to { transform: translateY(0); } }

.hero__meta { margin-top: clamp(26px,4vw,40px); font-family: var(--mono); font-size: clamp(16px,1.1vw,17px); letter-spacing: .08em; color: var(--slate); opacity: 0; animation: fadeUp 1.1s var(--ease) 1.7s forwards; }
.hero__actions { margin-top: clamp(30px,4vw,44px); display: flex; flex-wrap: wrap; gap: 16px; opacity: 0; animation: fadeUp 1.1s var(--ease) 1.9s forwards; }

.hero__dots { position: absolute; right: var(--gutter); bottom: 44px; z-index: 3; display: flex; gap: 12px; }
.hero__dots button { width: 30px; height: 2px; background: rgba(255,255,255,.3); border: 0; cursor: pointer; padding: 0; transition: background .5s var(--ease); }
.hero__dots button.is-active { background: var(--teal-light); }
@media (max-width: 720px) { .hero__dots { display: none; } }

.hero__foot { position: absolute; left: var(--gutter); bottom: 36px; z-index: 3; display: flex; flex-direction: column; gap: 16px; }
.hero__enline { font-family: var(--mono); font-weight: 700; font-size: clamp(14px,1.15vw,17px); letter-spacing: .22em; text-transform: uppercase; color: var(--teal); opacity: 0; animation: fadeUp 1s var(--ease) 2s forwards; }
.hero__scroll { display: flex; align-items: center; gap: 14px; opacity: 0; animation: fadeUp 1s var(--ease) 2.1s forwards; }
.hero__scroll-text { font-family: var(--mono); font-size: 11px; letter-spacing: .3em; color: var(--slate); }
.hero__scroll-line { position: relative; width: 64px; height: 1px; background: var(--line); overflow: hidden; }
.hero__scroll-line i { position: absolute; inset: 0; background: var(--teal-light); transform: translateX(-100%); animation: track 2.6s var(--ease-io) infinite; }

@media (max-width: 1000px) {
  .hero { flex-direction: column; align-items: stretch; min-height: 0; padding: calc(var(--header-h) + 20px) var(--gutter) 44px; row-gap: clamp(28px,7vw,44px); }
  .hero__body { order: 1; position: relative; max-width: none; }
  .hero__art { order: 2; position: relative; top: auto; width: calc(100% + var(--gutter) * 2); margin-inline: calc(var(--gutter) * -1); --art-h: clamp(240px, 52vw, 430px); }
  .hero__foot { order: 3; position: static; left: auto; bottom: auto; flex-direction: row; align-items: center; justify-content: space-between; gap: 16px; }
}

@media (max-width: 480px) {
  .hero__art { --box-left: 26%; --yg-w: 30%; --yg-inv: 3.333; }
}
@keyframes track { 0%{transform:translateX(-100%)} 50%{transform:translateX(0)} 100%{transform:translateX(100%)} }

@keyframes fadeUp { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: translateY(0); } }

.numbers { position: relative; background: var(--white); padding-block: var(--sec-pad); overflow: hidden; }
.numbers .yg-container { position: relative; z-index: 2; }

.numbers__grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  grid-template-areas:
    "s1 s1 s2 s2"
    "p1 p2 s3 cta";
  gap: 1px; background: var(--line); border: 1px solid var(--line);
}
.numbers__grid > * { background: var(--white); }
.stat--record { grid-area: s1; }
.stat--works { grid-area: s2; }
.stat--area { grid-area: s3; }
.stat--cta { grid-area: cta; }
.numbers__ph--1 { grid-area: p1; }
.numbers__ph--2 { grid-area: p2; }
.numbers__ph { display: block; background-size: cover; background-position: center; }
.stat { position: relative; display: flex; flex-direction: column; min-height: clamp(230px,23vw,330px); padding: clamp(28px,3vw,44px) clamp(20px,2.2vw,38px) clamp(24px,2.6vw,36px); }
.stat__en { font-family: var(--mono); font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--slate-2); margin-bottom: auto; }

.stat__fig { display: flex; align-items: baseline; gap: 5px; line-height: .82; margin-top: 24px; }
.stat__n { font-family: var(--mono); font-weight: 700; font-size: clamp(76px,10.5vw,170px); letter-spacing: -.03em; font-variant-numeric: proportional-nums; color: var(--green); }
.stat__plus { font-family: var(--mono); font-weight: 700; font-size: clamp(26px,3.2vw,50px); color: var(--teal); }
.stat__unit { font-family: var(--serif); font-weight: 600; font-size: clamp(16px,1.7vw,23px); color: var(--ink); }
.stat__label { font-size: clamp(13px,1.2vw,17px); color: var(--slate); margin-top: 18px; letter-spacing: .05em; }

.stat--area .stat__label { white-space: nowrap; }

.stat__fig--works { display: block; font-family: var(--sans); font-weight: 300; font-size: clamp(28px,3.4vw,50px); line-height: 1.3; letter-spacing: .04em; color: var(--ink); margin-top: 24px; }

.stat--cta { background: linear-gradient(140deg, var(--green) 0%, var(--teal) 100%); overflow: hidden; transition: filter .5s var(--ease); }
.stat--cta > * { position: relative; z-index: 1; }
.stat--cta .stat__en { color: rgba(255,255,255,.82); }
.stat__fig--jp { display: block; font-weight: 700; font-size: clamp(26px,3vw,40px); line-height: 1.28; color: #fff; margin-top: 24px; }
.stat--cta .stat__label { color: #fff; display: flex; align-items: center; gap: 12px; }
.stat__arw { display: inline-block; width: 24px; height: 1px; background: #fff; position: relative; transition: width .5s var(--ease); }
.stat__arw::after { content: ""; position: absolute; right: 0; top: 50%; width: 6px; height: 6px; border-top: 1px solid #fff; border-right: 1px solid #fff; transform: translateY(-50%) rotate(45deg); }
.stat--cta:hover { filter: brightness(1.06); }
.stat--cta:hover .stat__arw { width: 40px; }
@media (max-width: 900px) {
  .numbers__grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-areas:
      "s1 s1"
      "s2 s2"
      "p1 p2"
      "s3 cta";
  }
  .numbers__ph { min-height: 180px; }
}
@media (max-width: 520px) {
  .numbers__grid { grid-template-columns: 1fr; grid-template-areas: "s1" "s2" "s3" "cta"; }
  .numbers__ph { display: none; }
  .stat { min-height: 0; padding-block: clamp(30px,7vw,44px); }
}

.section { position: relative; padding-block: var(--sec-pad); overflow: hidden; }
.section .yg-container, .empathy .yg-container, .partner .yg-container { position: relative; z-index: 2; }

.sec-head { margin-bottom: var(--sec-head-mb); }
.numbers__head, .partners__head { margin: 0 0 var(--sec-head-mb); }
.sec-head__row, .numbers__head, .partners__head { display: flex; align-items: baseline; column-gap: 22px; row-gap: 8px; flex-wrap: wrap; }
.sec-head__en, .numbers__en, .partners__vtitle-en, .cta__en { font-family: var(--mono); font-weight: 400; font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: var(--teal); }
.sec-head__jp, .numbers__jp, .partners__vtitle-jp { font-family: var(--serif); font-weight: 600; font-size: clamp(26px,3.4vw,38px); letter-spacing: .06em; color: var(--ink); }
.sec-head__note { margin-top: 22px; max-width: 640px; font-size: 16px; line-height: 2.1; color: var(--slate); }
.sec-head--light .sec-head__jp { color: #fff; }
.sec-head--light .sec-head__en { color: var(--teal-light); }

@media (max-width: 620px) {
  .sec-head__row, .numbers__head, .partners__head { flex-direction: column; align-items: flex-start; row-gap: 6px; }
}

@media (max-width: 420px) {
  .sec-head__jp, .numbers__jp, .partners__vtitle-jp { font-size: 24px; letter-spacing: .03em; }
  .stat__fig--works { font-size: 24px; letter-spacing: .03em; }
}

.partners {
  position: relative; background: var(--paper); overflow: hidden;
  display: grid; grid-template-columns: minmax(200px,1fr) minmax(auto,600px) minmax(200px,1fr);
  gap: clamp(20px,3.5vw,60px); align-items: stretch;
  padding-block: var(--sec-pad);
}
.partners__side { position: relative; overflow: hidden; min-height: 0; }
.partners__track { position: absolute; top: 0; left: 0; width: 100%; display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(8px,1vw,14px); align-content: start; animation: pScrollUp 68s linear infinite; will-change: transform; }
.partners__side--right .partners__track { animation-name: pScrollDown; }
.partners__img { display: block; width: 100%; aspect-ratio: 4/5; margin-bottom: clamp(8px,1vw,14px); background-size: cover; background-position: center; }
@keyframes pScrollUp { from { transform: translateY(0); } to { transform: translateY(-50%); } }
@keyframes pScrollDown { from { transform: translateY(-50%); } to { transform: translateY(0); } }

.partners__center { position: relative; display: flex; flex-direction: column; align-items: flex-start; padding-block: clamp(10px,2vw,30px); }

.partners__head { position: relative; z-index: 2; width: 100%; max-width: 560px; }

.partners__body { position: relative; z-index: 2; width: 100%; max-width: 560px; }
.partners__text { display: flex; flex-direction: column; gap: clamp(18px,2vw,26px); }
.partners__text p { font-family: var(--serif); font-size: clamp(16px,1.5vw,19px); line-height: 1.9; color: var(--ink); letter-spacing: .05em; }
.partners__body .btn-circle { margin-top: clamp(36px,4vw,54px); }

.partners__group { position: relative; z-index: 2; width: 100%; max-width: 560px; }

.partners__note { margin: calc(var(--sec-head-mb) * -1 + 22px) 0 clamp(26px,3vw,38px); font-size: 16px; line-height: 2.1; color: var(--slate); }

.partners__group--wide, .partners__group--wide .partners__head, .partners__group--wide .partners__body { max-width: none; }
.partners__group--divider { margin-top: clamp(48px,6vw,80px); padding-top: clamp(36px,4.5vw,60px); border-top: 1px solid var(--line); }

@media (max-width: 1000px) {
  .partners { grid-template-columns: 1fr; gap: clamp(28px,5vw,44px); }
  .partners__side { overflow: visible; padding-inline: var(--gutter); }
  .partners__side--right { display: none; }
  .partners__track { position: static; display: flex; flex-direction: row; gap: clamp(10px,2.5vw,16px); animation: none !important; transform: none !important; }
  .partners__track .partners__img { flex: 1; aspect-ratio: 1/1; margin-bottom: 0; }
  .partners__track .partners__img:nth-child(n+4) { display: none; }
  .partners__center { align-items: flex-start; padding-inline: var(--gutter); }
}

.svc-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px,2.4vw,44px); align-items: start; }
.svc { position: relative; display: flex; flex-direction: column; }
.svc__img { position: relative; aspect-ratio: 3/4; overflow: hidden; }

.svc__img { clip-path: inset(0 100% 0 0); transition: clip-path 1.2s var(--ease); transition-delay: var(--reveal-delay, 0s); }
.svc.is-visible .svc__img { clip-path: inset(0 0 0 0); }
.svc__img .ph { transform: scale(1.14); transition: transform 1.8s var(--ease); }
.svc.is-visible .svc__img .ph { transform: scale(1); }
.svc:hover .svc__img .ph { transform: scale(1.05); }
.svc__cat { position: absolute; left: 20px; top: 18px; z-index: 3; font-family: var(--mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.9); }

.svc__panel { position: relative; z-index: 2; margin: clamp(-64px,-5vw,-44px) clamp(14px,1.4vw,22px) 0; background: var(--white); padding: clamp(24px,2.2vw,34px) clamp(22px,2vw,30px) clamp(26px,2.4vw,34px); box-shadow: 0 26px 50px -30px rgba(22,63,42,.45); transition: transform .6s var(--ease); }
.svc:hover .svc__panel { transform: translateY(-6px); }
.svc__title { font-size: clamp(20px,2vw,24px); letter-spacing: .05em; margin-bottom: 14px; }
.svc__desc { font-size: 16px; line-height: 2.1; color: var(--slate); }
.svc__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.svc__tags li { font-family: var(--mono); font-size: 11px; letter-spacing: .04em; color: var(--slate); padding: 5px 11px; border: 1px solid var(--line); border-radius: 999px; }
@media (max-width: 780px) { .svc-cards { grid-template-columns: 1fr; gap: clamp(36px,7vw,52px); } .svc__img { aspect-ratio: 16/11; } .svc__panel { margin-top: -48px; } }

.why { background: #eceef0; color: var(--ink); }
.why-list { border-top: 1px solid var(--line); }
.why-item { position: relative; display: grid; grid-template-columns: 100px 1fr clamp(220px,24vw,340px); gap: clamp(20px,4vw,60px); align-items: baseline; padding-block: clamp(34px,4vw,54px); }

.why-item__photo { align-self: stretch; margin-block: calc(clamp(34px,4vw,54px) * -1); background-size: cover; background-position: center; }
.why-item__line { position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: var(--line); transform: scaleX(0); transform-origin: left; transition: transform var(--dur-slow) var(--ease); }
.why-item__num { font-family: var(--mono); font-weight: 400; font-size: clamp(30px,3.4vw,48px); color: var(--teal); line-height: 1; }
.why-item__title { font-size: clamp(20px,2vw,24px); letter-spacing: .05em; margin-bottom: 14px; color: var(--ink); }
.why-item__desc { font-size: 16px; line-height: 2.1; color: var(--slate); max-width: 640px; }

@media (max-width: 1000px) {
  .why-item { grid-template-columns: 100px 1fr; }
  .why-item__photo { grid-column: 2; height: clamp(140px,22vw,200px); margin-block: 0; }
  .why-item__line { display: none; }
  .why-list { border-top: 0; }
}
@media (max-width: 620px) {
  .why-item { grid-template-columns: 1fr; gap: 12px; }
  .why-item__photo { grid-column: 1; height: clamp(140px,32vw,200px); margin-top: 6px; }
}

.works__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(30px,3.4vw,60px) clamp(24px,4vw,64px); }
.work { display: block; }

.work__photo { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; clip-path: inset(0 100% 0 0); transition: clip-path 1.2s var(--ease); transition-delay: var(--reveal-delay, 0s); }
.work.is-visible .work__photo { clip-path: inset(0 0 0 0); }
.work__photo .ph { transition: transform 1.8s var(--ease); }
.work:hover .work__photo .ph { transform: scale(1.05); }

.work__ba { position: relative; aspect-ratio: 16/9; overflow: hidden; cursor: ew-resize; touch-action: none; }
.work__ba:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }
.work__img { position: absolute; inset: 0; overflow: hidden; }
.work__img--top { z-index: 4; clip-path: inset(0 calc(100% - var(--pos, 50%)) 0 0); }
.work__img em { position: absolute; right: 14px; top: 12px; z-index: 3; font-family: var(--mono); font-style: normal; font-size: 10px; letter-spacing: .2em; color: rgba(255,255,255,.9); border: 1px solid rgba(255,255,255,.55); padding: 3px 8px; background: rgba(30,42,34,.35); }
.work__img--top em { right: auto; left: 14px; }
.work__ba-handle { position: absolute; top: 0; bottom: 0; left: var(--pos, 50%); width: 2px; margin-left: -1px; z-index: 5; background: #fff; box-shadow: 0 0 14px rgba(0,0,0,.35); pointer-events: none; }
.work__ba-handle i { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 36px; height: 36px; border-radius: 50%; background: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.25); }
.work__ba-handle i::before, .work__ba-handle i::after { content: ""; position: absolute; top: 50%; width: 7px; height: 7px; border-top: 1.5px solid var(--ink); }
.work__ba-handle i::before { left: 8px; border-left: 1.5px solid var(--ink); transform: translateY(-50%) rotate(-45deg); }
.work__ba-handle i::after { right: 8px; border-right: 1.5px solid var(--ink); transform: translateY(-50%) rotate(45deg); }

.work__ba { clip-path: inset(0 100% 0 0); transition: clip-path 1.2s var(--ease); transition-delay: var(--reveal-delay, 0s); }
.work.is-visible .work__ba { clip-path: inset(0 0 0 0); }
.work__body { display: block; padding-top: 22px; }
.work__cat { font-family: var(--mono); font-size: 11px; letter-spacing: .16em; color: var(--teal); }
.work__title { font-size: clamp(20px,2vw,24px); letter-spacing: .04em; line-height: 1.7; margin: 10px 0 10px; transition: color .4s var(--ease); }
.work__body:hover .work__title { color: var(--green); }
.work__meta { font-size: 16px; color: var(--slate); letter-spacing: .03em; }
@media (max-width: 700px) { .works__grid { grid-template-columns: 1fr; } }

body .parts131415_blog_EbsECCh0tU { padding-block: var(--sec-pad) !important; }
body .parts131415_blog_EbsECCh0tU .container-lg { max-width: var(--maxw) !important; padding-inline: var(--gutter) !important; margin-inline: auto; }
body .parts131415_blog_EbsECCh0tU .row { --bs-gutter-x: clamp(24px,3vw,44px); --bs-gutter-y: clamp(30px,3.4vw,52px); }
body .parts131415_blog_EbsECCh0tU .card { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; box-shadow: none !important; }
body .parts131415_blog_EbsECCh0tU .card .card-body { padding: 0 !important; }
body .parts131415_blog_EbsECCh0tU .card-body a { display: block; }
body .parts131415_blog_EbsECCh0tU .parts131415_blog_thumbnail { height: auto !important; aspect-ratio: 16 / 10; overflow: hidden; }
body .parts131415_blog_EbsECCh0tU .card img { max-height: none !important; width: 100% !important; height: 100% !important; object-fit: cover; transition: transform 1.2s var(--ease); }
body .parts131415_blog_EbsECCh0tU .card:hover img { transform: scale(1.05); }
body .parts131415_blog_EbsECCh0tU .card-title { text-align: left !important; color: var(--teal) !important; font-family: var(--mono) !important; font-weight: 400 !important; font-size: 11px !important; letter-spacing: .16em !important; text-transform: uppercase; margin: 18px 0 8px !important; }
body .parts131415_blog_EbsECCh0tU .card-text { text-align: left !important; color: var(--ink) !important; font-family: var(--serif) !important; font-weight: 600 !important; font-size: clamp(18px,1.6vw,21px) !important; letter-spacing: .04em !important; line-height: 1.7 !important; height: auto !important; margin: 0 !important; transition: color .4s var(--ease); }
body .parts131415_blog_EbsECCh0tU .card:hover .card-text { color: var(--green) !important; }

.company-dl { border-top: 1px solid var(--line); }
.company-dl > div { display: grid; grid-template-columns: clamp(110px,16vw,200px) 1fr; gap: 16px; padding-block: 18px; border-bottom: 1px solid var(--line); }
.company-dl dt { font-size: 14px; letter-spacing: .08em; color: var(--slate-2); }
.company-dl dd { font-size: 16px; letter-spacing: .04em; color: var(--ink); }
@media (max-width: 520px) { .company-dl > div { grid-template-columns: 1fr; gap: 4px; padding-block: 14px; } }

.partner {
  position: relative; overflow: hidden; padding-block: var(--sec-pad); color: #fff;
  background: linear-gradient(120deg, var(--green) 0%, var(--teal) 100%);
}

.partner::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/cta-piping.webp) center / cover no-repeat fixed;
  mix-blend-mode: soft-light;
  opacity: .40;
}

@media (max-width: 820px) { .partner::before { background-attachment: scroll; } }
@media (prefers-reduced-motion: reduce) { .partner::before { background-attachment: scroll; } }

.cta { position: relative; z-index: 1; }

.cta__head { text-align: center; margin-bottom: var(--sec-head-mb); }
.cta__en { color: rgba(255,255,255,.85); margin-bottom: 18px; }
.cta__lead { font-size: clamp(28px,4.6vw,52px); line-height: 1.5; letter-spacing: .05em; color: #fff; }
.cta__note { margin-top: 16px; font-size: 16px; letter-spacing: .05em; color: rgba(255,255,255,.9); }
.cta-split { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px,5vw,80px); align-items: start; max-width: 900px; margin-inline: auto; }
.cta-split::before { content: ""; position: absolute; top: 4%; bottom: 4%; left: 50%; width: 1px; background: rgba(255,255,255,.26); }
.cta-col { display: flex; flex-direction: column; align-items: flex-start; }
.cta-col__en { font-family: var(--mono); font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: rgba(255,255,255,.8); margin-bottom: 14px; }
.cta-col__title { font-size: clamp(20px,2.4vw,28px); letter-spacing: .05em; color: #fff; margin-bottom: 15px; }
.cta-col__text { font-size: 16px; line-height: 2.1; color: rgba(255,255,255,.9); margin-bottom: clamp(22px,2.4vw,30px); }
.cta-col__tel { display: flex; flex-direction: column; gap: 3px; margin-bottom: 22px; }
.cta-col__tel-label { font-size: 11.5px; letter-spacing: .1em; color: rgba(255,255,255,.8); }
.cta-col__tel-num { font-family: var(--mono); font-weight: 600; font-size: clamp(26px,3vw,38px); letter-spacing: .04em; color: #fff; }
.cta-col__tel-pre { font-size: .7em; }

.partner .btn--ghost { border-color: rgba(255,255,255,.6); color: #fff; }
.partner .btn--ghost:hover { background: #fff; color: var(--green-deep); border-color: #fff; }

.partner .btn--light { border: 1px solid transparent; }
.partner .btn--light:hover { background: var(--ink); color: #fff; }
@media (max-width: 720px) {
  .cta-split { grid-template-columns: 1fr; gap: 0; }
  .cta-split::before { display: none; }

  .cta-col + .cta-col { border-top: 1px solid rgba(255,255,255,.24); margin-top: clamp(32px,7vw,44px); padding-top: clamp(32px,7vw,44px); }

  .cta-col .yg-btn { width: 100%; justify-content: center; }
}

.footer { background: #e9ebec; color: var(--ink); }
.footer__main { padding-block: clamp(52px,6vw,84px) 38px; }
.footer__top { display: flex; justify-content: space-between; gap: 48px; flex-wrap: wrap; padding-bottom: 40px; border-bottom: 1px solid #d6d9da; }
.footer__mark { font-size: 16px; letter-spacing: .1em; font-weight: 600; }
.footer__copy { font-size: clamp(19px,2.2vw,26px); margin-top: 16px; letter-spacing: .06em; color: var(--ink); }
.footer__addr { margin-top: 18px; font-family: var(--mono); font-size: 11.5px; line-height: 1.9; letter-spacing: .06em; color: var(--slate); }
.footer__nav { display: grid; grid-template-columns: repeat(2, auto); gap: 0 48px; align-content: start; }
.footer__nav a { display: inline-block; padding-block: 10px; font-size: 16px; letter-spacing: .08em; color: var(--slate); transition: color .4s var(--ease); }
.footer__nav a:hover { color: var(--green); }
.footer__bottom { padding-top: 26px; }
.footer__bottom small { font-family: var(--mono); font-size: 11px; letter-spacing: .1em; color: var(--slate-2); }

.fixed-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 880; display: none; grid-template-columns: 1fr 1fr; box-shadow: 0 -6px 24px rgba(22,63,42,.14); }
.fixed-cta__btn { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 16px 10px calc(16px + env(safe-area-inset-bottom)); font-size: 15px; font-weight: 600; letter-spacing: .06em; color: #fff; text-align: center; }
.fixed-cta__btn--partner { background: var(--green-deep); }
.fixed-cta__btn--contact { background: linear-gradient(140deg, #3f9a67 0%, #2f979c 100%); }
@media (max-width: 1150px) {
  .fixed-cta { display: grid; }

  body { padding-bottom: calc(56px + env(safe-area-inset-bottom)); }
}

main { position: relative; }
.pipe { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }

.pipe__path { fill: none; stroke: var(--green); stroke-width: 2; opacity: .75; }
.pipe__joint { fill: none; stroke: var(--green); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; opacity: 0; transition: opacity .5s var(--ease); }
.pipe__joint.is-on { opacity: .8; }

[data-reveal] { opacity: 0; transform: translateY(40px); transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease); transition-delay: var(--reveal-delay, 0s); will-change: opacity, transform; }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }
[data-line].is-visible { transform: scaleX(1) !important; }

.pt-index { padding: calc(var(--header-h) + 40px) 0 20px; }
.pt-index__note { font-size: 14px; line-height: 1.9; color: var(--slate); }
.pt-sec { border-top: 2px dashed var(--line); padding-top: 28px; margin-top: 28px; }
.pt-label { display: inline-block; font-family: var(--mono); font-size: 11px; letter-spacing: .12em; color: #fff; background: var(--slate); padding: 5px 12px; border-radius: 2px; margin-bottom: 8px; }

.page-hero { position: relative; overflow: hidden; background: var(--white); padding: clamp(48px,6vw,90px) 0 clamp(56px,7vw,100px); }

.crumb { background: #fff; border-bottom: 1px solid var(--line); }
.crumb__list { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding-block: 13px; font-family: var(--mono); font-size: 12px; letter-spacing: .1em; color: var(--slate); }
.crumb__list li { display: flex; align-items: center; gap: 12px; }
.crumb__list li + li::before { content: "＞"; color: var(--slate-2); font-size: 10px; }
.crumb__list a { color: var(--slate); transition: color .4s var(--ease); }
.crumb__list a:hover { color: var(--teal); }
.crumb__list li[aria-current="page"] { color: var(--ink); }
.page-hero__en { font-family: var(--mono); font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: var(--teal); margin-bottom: 14px; }
.page-hero__title { font-weight: 600; font-size: clamp(28px,4.2vw,52px); line-height: 1.5; letter-spacing: .05em; color: var(--ink); text-shadow: 0 2px 12px rgba(22,63,42,.14); }

.page-hero__title .line { display: block; overflow: hidden; padding-block: .04em; }
.page-hero__title .word { display: block; transform: translateY(112%); animation: lineUp 1.3s var(--ease) forwards; }
.page-hero__title .line:nth-child(1) .word { animation-delay: .3s; }
.page-hero__title .line:nth-child(2) .word { animation-delay: .45s; }
.page-hero__lead { margin-top: clamp(24px,3vw,38px); max-width: none; font-size: 16px; line-height: 2.2; color: var(--slate); }

.page-hero__wm { position: absolute; left: max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter))); bottom: -.22em; z-index: 0; font-family: var(--mono); font-weight: 700; font-size: clamp(44px,11.5vw,166px); letter-spacing: .02em; line-height: 1; white-space: nowrap; color: var(--paper-2); pointer-events: none; user-select: none; transform: translateX(90vw); animation: wmSlideIn 2s var(--ease) .3s forwards; }
@keyframes wmSlideIn { to { transform: translateX(0); } }
.page-hero .yg-container { position: relative; z-index: 1; }

.article-sec { padding-block: clamp(56px,7vw,100px); }
.art { display: grid; grid-template-columns: minmax(0,1fr) clamp(240px,26vw,380px); gap: clamp(28px,4vw,64px); align-items: start; }
.art__head { grid-column: 1; display: flex; align-items: baseline; gap: 20px; margin-bottom: clamp(22px,2.6vw,34px); }
.art__num { font-family: var(--mono); font-weight: 400; font-size: clamp(30px,3.4vw,48px); color: var(--teal); line-height: 1; }
.art__title { font-size: clamp(22px,2.6vw,32px); letter-spacing: .05em; color: var(--ink); }
.art__body { grid-column: 1; }
.art__body > p { font-size: 16px; line-height: 2.2; color: var(--slate); }
.art__body > p + p { margin-top: 1.2em; }
.art__sub { display: flex; align-items: center; gap: 14px; font-size: clamp(18px,1.8vw,22px); letter-spacing: .05em; color: var(--ink); margin: clamp(30px,3.4vw,44px) 0 14px; }
.art__sub-bar { display: inline-block; width: 34px; height: 2px; background: var(--green); flex: none; transform: scaleX(0); transform-origin: left; transition: transform var(--dur-slow) var(--ease); }
.art__photo { grid-column: 2; grid-row: 1 / span 2; align-self: stretch; min-height: 280px; background-size: cover; background-position: center; }
@media (max-width: 900px) {
  .art { grid-template-columns: 1fr; }
  .art__photo { order: -1; grid-column: 1; grid-row: auto; min-height: 0; height: clamp(180px,42vw,260px); margin: 0 0 28px; }
}

.message-sec { background: #eceef0; padding-block: clamp(56px,7vw,100px); }
.message { display: grid; grid-template-columns: clamp(200px,24vw,320px) 1fr; gap: clamp(28px,4vw,64px); align-items: start; }
.message__photo { position: relative; display: block; aspect-ratio: 3/4; }
.message__text { font-size: clamp(16px,1.5vw,19px); line-height: 2.1; letter-spacing: .05em; color: var(--ink); }
.message__text + .message__text { margin-top: 1.4em; }
.message__sign { margin-top: clamp(26px,3vw,38px); font-size: 14px; letter-spacing: .08em; color: var(--slate); }
.message__sign em { display: block; font-style: normal; font-family: var(--serif); font-weight: 600; font-size: clamp(18px,1.8vw,22px); color: var(--ink); margin-top: 6px; }
@media (max-width: 720px) {
  .message { grid-template-columns: 1fr; }
  .message__photo { max-width: 260px; }
}

.checklist { border-top: 1px solid var(--line); }
.checklist__item { display: flex; align-items: center; gap: 18px; padding: 18px 4px; border-bottom: 1px solid var(--line); font-size: clamp(16px,1.5vw,18px); letter-spacing: .04em; color: var(--ink); }
.checklist__ico { position: relative; flex: none; width: 26px; height: 26px; border-radius: 50%; background: linear-gradient(140deg, #3f9a67 0%, #2f979c 100%); }
.checklist__ico::after { content: ""; position: absolute; left: 8px; top: 6px; width: 8px; height: 12px; border-right: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(42deg); }

.merit-sec { background: var(--white); }

.merits { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--line); }
.merit { position: relative; background: var(--white); padding: clamp(26px,3vw,44px) clamp(22px,2.4vw,36px); border-left: 1px solid var(--line); }
.merit:first-child { border-left: 0; }
.merit__num { display: block; font-family: var(--mono); font-weight: 400; font-size: clamp(30px,3.2vw,44px); color: var(--teal); line-height: 1; margin-bottom: 18px; }
.merit__title { font-size: clamp(18px,1.8vw,22px); line-height: 1.7; letter-spacing: .04em; color: var(--ink); margin-bottom: 14px; }
.merit__text { font-size: 15px; line-height: 2.05; color: var(--slate); }
@media (max-width: 900px) {
  .merits { grid-template-columns: 1fr; }
  .merit { border-left: 0; border-top: 1px solid var(--line); }
  .merit:first-child { border-top: 0; }
}

.table-note { margin-top: 14px; font-size: 13px; letter-spacing: .04em; color: var(--slate-2); }

.faq-cat { display: flex; align-items: baseline; gap: 16px; font-size: clamp(19px,2vw,24px); letter-spacing: .05em; color: var(--ink); margin: clamp(36px,4.5vw,60px) 0 18px; }
.faq-cat:first-of-type { margin-top: 0; }
.faq-cat__num { font-family: var(--mono); font-size: 13px; color: var(--teal); }
.acc { border-top: 1px solid var(--line); }
.acc__item { border-bottom: 1px solid var(--line); }
.acc__q { display: flex; align-items: baseline; gap: 16px; width: 100%; text-align: left; background: none; border: 0; cursor: pointer; padding: clamp(18px,2.2vw,26px) 44px clamp(18px,2.2vw,26px) 4px; position: relative; font-family: var(--sans); font-size: clamp(16px,1.5vw,18px); font-weight: 500; letter-spacing: .04em; color: var(--ink); line-height: 1.8; transition: color .4s var(--ease); }
.acc__q:hover { color: var(--teal); }
.acc__mark { flex: none; font-family: var(--mono); font-weight: 700; font-size: 15px; color: var(--teal); }
.acc__mark--a { color: var(--green); }
.acc__ico { position: absolute; right: 8px; top: 50%; width: 14px; height: 14px; margin-top: -7px; }
.acc__ico::before, .acc__ico::after { content: ""; position: absolute; left: 0; top: 50%; width: 100%; height: 1.5px; background: var(--teal); transition: transform .5s var(--ease); }
.acc__ico::after { transform: rotate(90deg); }
.acc__item.is-open .acc__ico::after { transform: rotate(0deg); }
.acc__a { max-height: 0; overflow: hidden; transition: max-height .6s var(--ease); }
.acc__a-inner { display: flex; align-items: baseline; gap: 16px; padding: 4px 4px clamp(20px,2.4vw,28px); }
.acc__a-inner p { font-size: 16px; line-height: 2.05; color: var(--slate); }

.biz-sec { background: var(--white); }
.biz { display: grid; grid-template-columns: clamp(260px,32vw,460px) 1fr; gap: clamp(28px,4.5vw,72px); align-items: start; }
.biz__photo { position: relative; aspect-ratio: 3/4; overflow: hidden; }
.biz__title { font-size: clamp(22px,2.6vw,32px); letter-spacing: .05em; line-height: 1.6; color: var(--ink); margin-bottom: 18px; }
.biz__lead { font-size: 16px; line-height: 2.2; color: var(--slate); margin-bottom: clamp(24px,2.6vw,34px); }
.biz__sub { display: flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 600; letter-spacing: .1em; color: var(--teal); margin: clamp(20px,2.4vw,30px) 0 12px; }
.biz__sub::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.biz__list li { position: relative; padding: 8px 0 8px 22px; font-size: 16px; line-height: 1.9; color: var(--ink); letter-spacing: .03em; border-bottom: 1px dashed var(--line-2); }
.biz__list li::before { content: ""; position: absolute; left: 2px; top: 1.05em; width: 8px; height: 8px; border-radius: 50%; background: var(--green-light); }
.biz__note { font-size: 16px; line-height: 2.1; color: var(--slate); }
@media (max-width: 860px) {
  .biz { grid-template-columns: 1fr; }
  .biz__photo { aspect-ratio: 16/9; }
}

.steps { counter-reset: step; display: grid; grid-template-columns: repeat(5,1fr); gap: clamp(10px,1.4vw,20px); }
.step { position: relative; background: var(--white); border: 1px solid var(--line); padding: clamp(20px,2.2vw,30px) clamp(14px,1.6vw,22px); display: flex; flex-direction: column; gap: 12px; }
.step:not(:last-child)::after { content: ""; position: absolute; right: calc(clamp(10px,1.4vw,20px) * -1); top: 50%; width: clamp(10px,1.4vw,20px); height: 1px; background: var(--teal); }
.step__num { font-family: var(--mono); font-weight: 700; font-size: 13px; letter-spacing: .18em; color: var(--teal); }

.step__label { font-size: clamp(13px,1.25vw,18px); font-weight: 600; letter-spacing: .03em; color: var(--ink); line-height: 1.6; white-space: nowrap; }
@media (max-width: 860px) {
  .steps { grid-template-columns: 1fr; }
  .step:not(:last-child)::after { right: auto; left: 30px; top: auto; bottom: calc(clamp(10px,1.4vw,20px) * -1); width: 1px; height: clamp(10px,1.4vw,20px); }
  .step__label { font-size: 16px; }
}

.access { display: grid; grid-template-columns: 1fr; gap: 20px; }
.access__map { position: relative; width: 100%; aspect-ratio: 21/9; }
.access__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.access__addr { font-size: 16px; line-height: 2.05; letter-spacing: .04em; color: var(--ink); }
@media (max-width: 700px) { .access__map { aspect-ratio: 4/3; } }

.cta-band__actions { display: flex; justify-content: center; margin-top: clamp(30px,4vw,48px); }
.cta-band .cta__note { text-align: center; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-delay: 0s !important; transition-duration: .001ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
  [data-line] { transform: scaleX(1) !important; }
  .hero__copy .word { transform: none; }
  .partners__track { animation: none !important; transform: none !important; }
  .svc__img, .work__ba { clip-path: none !important; }
  .svc__img .ph { transform: none !important; }
  .hero__ph { transition: none; }
}

body.page-lower .yg-header:not(.is-scrolled) { background: rgba(255,255,255,.94); box-shadow: 0 1px 0 var(--line); }
body.page-lower .page-hero { padding-top: calc(var(--header-h) + clamp(40px, 5vw, 72px)); }

html, body { height: auto; }

.art--rev { grid-template-columns: clamp(240px,26vw,380px) minmax(0,1fr); }
.art--rev .art__head, .art--rev .art__body { grid-column: 2; }
.art--rev .art__photo { grid-column: 1; grid-row: 1 / span 2; }
@media (max-width: 820px) {
  .art--rev { grid-template-columns: 1fr; }
  .art--rev .art__head, .art--rev .art__body, .art--rev .art__photo { grid-column: 1; }
}
.concept { text-align: center; }

.concept__word { font-family: var(--serif); font-size: clamp(24px,3.4vw,40px); font-weight: 600; letter-spacing: 0; color: var(--green-deep); line-height: 1.9; display: inline-block; transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease), letter-spacing 1.8s var(--ease); }
.concept__word.is-visible { letter-spacing: .3em; }
.concept__word::before, .concept__word::after { content: ""; display: block; width: 46px; height: 2px; background: var(--teal); margin-inline: auto; }
.concept__word::before { margin-bottom: clamp(22px,2.8vw,32px); }
.concept__word::after { margin-top: clamp(22px,2.8vw,32px); }

.brand { flex-shrink: 0; }
.brand__name, .brand__tag { white-space: nowrap; }

body [class*="_post_wrap"] {
  background: transparent !important; border: 0 !important; border-radius: 0 !important;
  overflow: visible !important; box-shadow: none !important;
}
body [class*="_post_wrap"]:hover { transform: none !important; border-color: transparent !important; }

body [class*="_post_img"] { overflow: hidden; border-radius: 0 !important; }
body [class*="_post_img"] a { display: block; width: 100%; }
body [class*="_post_img"] img { width: 100% !important; height: auto !important; aspect-ratio: 16 / 9; object-fit: cover; display: block; transition: transform 1.2s var(--ease); }
body [class*="_post_wrap"]:hover [class*="_post_img"] img { transform: scale(1.05); }

body [class*="_post_status"] { display: flex !important; flex-direction: column !important; align-items: flex-start !important; margin: 18px 0 0 !important; padding: 0 !important; gap: 5px !important; }
body [class*="_post_title-excerpt"] { padding: 0 !important; }
body [class*="_post_title"] { font-family: var(--serif) !important; color: var(--ink) !important; font-weight: 600; font-size: clamp(19px, 2vw, 23px) !important; letter-spacing: .04em; line-height: 1.7; margin: 0 !important; transition: color .4s var(--ease); }
body [class*="_post_wrap"]:hover [class*="_post_title"] { color: var(--green) !important; }
body [class*="_post_date"] { font-family: var(--mono) !important; color: var(--slate) !important; font-size: 13px; letter-spacing: .04em; }

body [class*="_post_category"],
body [class*="_post_status"] > span:last-child,
body .parts-blog-ex_tag {
  background: transparent !important; border: 0 !important; border-radius: 0 !important;
  padding: 0 !important; color: var(--teal) !important;
  font-family: var(--mono) !important; font-size: 11px !important; letter-spacing: .16em; text-transform: uppercase;
}
body .parts-blog-ex-tag_wrap { padding: 8px 0 0 !important; gap: 12px !important; }

body .parts222_sidebar h3 {
  background: var(--green) !important; color: #fff !important;
  font-family: var(--sans) !important; font-weight: 700 !important;
  font-size: 15px !important; letter-spacing: .08em !important;
  line-height: 1.5 !important; padding: 13px 18px !important; margin: 0 !important;
}

body .parts222_sidebar ul li { border-color: var(--line) !important; }
body .parts222_sidebar .category_post_count ul li { border-left: 0 !important; border-right: 0 !important; border-bottom: 1px solid var(--line) !important; }

body .parts222_sidebar .parts222_sidebar_post_title {
  font-family: var(--sans) !important; font-weight: 500 !important; color: var(--ink) !important;
  font-size: 15px !important; line-height: 1.7 !important; letter-spacing: .02em !important; margin: 4px 0 0 !important;
}
body .parts222_sidebar .parts222_sidebar_date { font-family: var(--mono) !important; color: var(--slate) !important; font-size: 12.5px !important; letter-spacing: .04em !important; text-transform: none !important; }

body .parts222_sidebar .parts222_sidebar_post_category {
  font-family: var(--sans) !important; font-weight: 400 !important; color: var(--ink) !important;
  font-size: 15px !important; letter-spacing: .02em !important; text-transform: none !important;
}
body .parts222_sidebar .category_post_count ul li a { padding: 13px 4px !important; transition: color .4s var(--ease); }
body .parts222_sidebar .category_post_count ul li a:hover .parts222_sidebar_post_category { color: var(--green) !important; }

body .parts222_sidebar .parts222_sidebar_post_category_count {
  width: 34px !important; height: 24px !important; flex: none !important;
  background: var(--paper) !important; color: var(--slate) !important;
  border: 1px solid var(--line) !important; border-radius: 3px !important;
  font-family: var(--mono) !important; font-size: 12px !important; letter-spacing: 0 !important; text-transform: none !important;
  padding: 0 !important;
}

body.page-blog { background: var(--white) !important; }
body.page-blog .parts222_section { background: var(--white) !important; }

body.page-works { background: var(--white) !important; }
body.page-works .parts228_section { background: var(--white) !important; }

body .article_prevnext_wrap .article_prev a::before,
body .article_prevnext_wrap .article_next a::after { top: 50%; margin-top: -7px; }

body .recent_posts_wrap .recent_post_title {
  color: #fff !important; font-family: var(--sans) !important; font-weight: 700 !important;
  font-size: 15px !important; letter-spacing: .08em !important; line-height: 1.5 !important; padding: 13px 18px !important;
}
body .recent_posts_wrap ul li { border-color: var(--line) !important; }
body .recent_posts_wrap ul li a h3 {
  font-family: var(--sans) !important; font-weight: 500 !important; color: var(--ink) !important;
  font-size: 15px !important; line-height: 1.7 !important; letter-spacing: .02em !important; margin: 4px 0 0 !important;
}
body .recent_posts_wrap ul li a .recent_post_date {
  font-family: var(--mono) !important; color: var(--slate) !important; font-size: 12.5px !important; letter-spacing: .04em !important;
}

.page-hero__title, .page-hero__lead, .sec-head__jp, .sec-head__note,
.art__title, .art__sub, .art__body p, .concept__word,
.cta__lead, .cta__note, .partners__vtitle-jp, .partners__note,
.checklist__item, .merit__title, .merit__text, .company-dl dd,
.message__text, .stat__label {
  line-break: strict;
  word-break: auto-phrase;
}
.br-sp { display: none; }
@media (max-width: 640px) {
  .br-pc { display: none; }
  .br-sp { display: inline; }
}

body .required { background: transparent !important; color: #0089b8 !important; border: 0 !important; border-radius: 0 !important; padding: 0 0 0 8px !important; font-size: 12.5px !important; font-weight: 700 !important; letter-spacing: .08em; }

body [class*="_form_wrap"] { max-width: 920px !important; }

body .form_textarea { align-items: flex-start !important; }
body .form_textarea .form_text_dt { padding-top: 12px !important; }

body .contact_submit input[type="submit"]:not([name="back"]),
body .contact_submit button:not([name="back"]),
body .contact_submit .btn-main {
  background: linear-gradient(140deg, #3f9a67 0%, #2f979c 100%) !important;
  color: #fff !important; border: 0 !important; border-radius: 0 !important;
  padding: 18px 32px !important; transition: filter .4s var(--ease);
}
body .contact_submit input[type="submit"]:not([name="back"]):hover,
body .contact_submit button:not([name="back"]):hover { filter: brightness(1.06); }

body .label_file_upload button { font-size: 13px !important; padding: 8px 18px !important; letter-spacing: .04em; border-radius: 0 !important; }

body [class*="privacypolicy-parts"] .section_title_wrap { display: none !important; }


:root{

  --dyn-bg:        var(--background-color, #ffffff);
  --dyn-surface:   var(--temporary-color, #f4f4f2);
  --dyn-text:      var(--text-color, #222222);
  --dyn-heading:   var(--text-color, #111111);
  --dyn-muted:     var(--sub-color, #8a8a8a);
  --dyn-border:    var(--sub-color, #dddddd);
  --dyn-accent:    var(--main-color, #1e3a5f);
  --dyn-accent-2:  var(--link-color, var(--main-color, #1e3a5f));
  --dyn-on-accent: #ffffff;

  --dyn-font-display: var(--font-display, "Noto Serif JP","Yu Mincho",serif);
  --dyn-font-body:    var(--font-body, "Noto Sans JP","Yu Gothic",sans-serif);
  --dyn-font-numeric: var(--font-numeric, "EB Garamond","Noto Serif JP",serif);

  --dyn-radius: 6px;

  --dyn-card-min: 300px;
  --dyn-gap: 32px;
}

[class*="_breadcrumb"], .p-breadcrumb{ background:var(--dyn-bg) !important; }
.p-breadcrumb__inner{
  list-style:none; margin:0 auto; padding:14px 24px;
  max-width:1200px; display:flex; flex-wrap:wrap; align-items:center;
}
.p-breadcrumb__item{
  display:inline-flex; align-items:center;
  color:var(--dyn-muted) !important; font-family:var(--dyn-font-body);
  font-size:.78rem; letter-spacing:.04em;
}
.p-breadcrumb__item a{ color:var(--dyn-muted) !important; text-decoration:none; }
.p-breadcrumb__item a:hover{ color:var(--dyn-accent-2) !important; text-decoration:underline; }
.p-breadcrumb__item:last-child{ color:var(--dyn-text) !important; }

.p-breadcrumb__item + .p-breadcrumb__item::before{
  content:"\203A"; margin:0 .6em; color:var(--dyn-border) !important; font-size:.95em;
}
.p-breadcrumb meta{ display:none; }

[class*="_article_header"] .ja, [class*="_article_header"] h1, [class*="_article_header"] h2{
  color:var(--dyn-heading) !important; font-family:var(--dyn-font-display) !important;
  text-shadow:0 2px 14px rgba(0,0,0,.5) !important;
}
[class*="_article_header"] .en{ color:var(--dyn-muted) !important; font-family:var(--dyn-font-numeric) !important; letter-spacing:.1em; text-shadow:0 1px 10px rgba(0,0,0,.5) !important; }

.pagination_num, .pagination_prev, .pagination_next{
  font-family:var(--dyn-font-numeric); color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius);
  min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; text-decoration:none;
}
.pagination_num.current{ background:var(--dyn-accent) !important; border-color:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }
.pagination_num:hover, .pagination_prev:hover, .pagination_next:hover{ border-color:var(--dyn-accent-2) !important; color:var(--dyn-accent-2) !important; }

[class*="_pagenation"] a{ border-color:var(--dyn-accent) !important; color:var(--dyn-text) !important; }
[class*="_pagenation"] span.current, [class*="_pagenation"] .current, [class*="_pagenation"] .active{
  background:var(--dyn-accent) !important; border-color:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important;
}
[class*="_pagenation"] a:hover{ border-color:var(--dyn-accent-2) !important; color:var(--dyn-accent-2) !important; }
.pe-none{ opacity:.3; pointer-events:none; }

[class*="_post_list"], [class*="_post_wrap"]{ }

[class*="_post_list"]{ display:grid !important; grid-template-columns:repeat(auto-fill, minmax(var(--dyn-card-min), 1fr)) !important; gap:var(--dyn-gap) !important; }

[class*="_post_wrap"]{
  display:block !important; width:auto !important; max-width:none !important; text-decoration:none;
  background:var(--dyn-surface) !important; border:1px solid var(--dyn-border) !important;
  border-radius:var(--dyn-radius); overflow:hidden;
  transition:transform .3s ease, border-color .3s ease;
}
[class*="_post_wrap"]:hover{ transform:translateY(-4px); border-color:var(--dyn-accent-2) !important; }
[class*="_post_img"]{ width:100%; display:block; border-radius:0; }

[class*="_post_status"]{ border:none !important; background:transparent !important; margin:14px 16px 0 !important; padding:0 !important; display:flex !important; gap:10px; align-items:center; }
[class*="_post_title-excerpt"]{ padding:10px 16px 16px !important; }
[class*="_post_title"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_post_excerpt"]{ color:var(--dyn-muted) !important; }
[class*="_post_date"]{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }

[class*="_post_category"], [class*="_post_status"] > span:last-child{
  width:auto; max-width:none !important;
  background:var(--dyn-bg) !important; border:1px solid var(--dyn-accent) !important;
  border-radius:var(--dyn-radius); padding:2px 8px; color:var(--dyn-accent) !important;
}
.parts-blog-ex-tag_wrap{ display:flex; flex-wrap:wrap; gap:6px; padding:0 16px 14px; }
.parts-blog-ex_tag{ font-size:.72rem; color:var(--dyn-muted) !important; background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:2px 8px; }

[class*="_section"]:has([class*="_post_list"]) > h2,
[class*="_section"] > h2.f_meiryo{ display:none !important; }

[class*="_post_list"]::after{ content:none !important; display:none !important; }

[class*="_sidebar"], .recent_posts_wrap{ color:var(--dyn-text); }
[class*="_sidebar_post_title"], .recent_post_title{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_sidebar_date"], .recent_post_date{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }

[class*="_sidebar_post_category_count"]{ background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:0 8px !important; }

.parts-blog-ex_text{ font-family:var(--dyn-font-body); color:var(--dyn-text) !important; line-height:1.9; }
.parts-blog-ex_text h2, .parts-blog-ex_text h3{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
.signature_wrap{ font-family:var(--dyn-font-display); color:var(--dyn-muted) !important; border-top:1px solid var(--dyn-border); padding-top:16px; }
.slick-prev, .slick-next{ color:var(--dyn-accent-2) !important; }

.contact_section, [class*="_section_form"], [class*="_section_content"], [class*="_content_wrap"], [class*="_content"]{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
[class*="_form_wrap"]{ max-width:720px; margin:0 auto; }
[class*="_form_wrap"] label, [class*="_form_wrap"] dt, [class*="_form_wrap"] .ja, [class*="_form_wrap"] .en{ color:var(--dyn-text) !important; }

[class*="_form_wrap"] dd input:not([type="checkbox"]):not([type="radio"]),
[class*="_form_wrap"] dd select{ width:100% !important; max-width:none !important; padding:14px 16px !important; font-size:16px !important; min-height:54px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
[class*="_form_wrap"] textarea, .form_textarea textarea{ width:100% !important; padding:14px 16px !important; font-size:16px !important; min-height:220px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }

[class*="_form_wrap"] input[type="checkbox"], [class*="_form_wrap"] input[type="radio"]{ width:18px !important; height:18px !important; min-height:0 !important; padding:0 !important; margin:0 8px 0 0 !important; vertical-align:-3px; accent-color:var(--dyn-accent); flex:none !important; }

.required{ display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important; white-space:nowrap !important; padding:6px 12px !important; border-radius:var(--dyn-radius) !important; background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }
.error{ color:var(--dyn-accent-2) !important; }

.form_textarea, .form_text_dt{ border:none !important; background:transparent !important; }

.contact_submit, .contact_submit button, .contact_submit input{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; border:none !important; border-radius:var(--dyn-radius) !important; }

.contact_submit input[name="back"]{ background:transparent !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; }

.contact_submit input[disabled]{ opacity:.5; cursor:not-allowed; }

.label_file_upload{ display:block; width:100%; padding:12px 14px; cursor:pointer;
  background:var(--dyn-surface) !important; color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
.label_file_upload button{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius) !important; pointer-events:none; }
.label_file_upload span, #file-chosen, [id$="filechosen"]{ color:var(--dyn-muted) !important; }
.des{ color:var(--dyn-muted) !important; }

.attention{ color:var(--dyn-muted) !important; }

[class*="_form_wrap"] dd input.zip:not([type="checkbox"]):not([type="radio"]){ width:9em !important; max-width:9em !important; display:inline-block; margin-right:8px; }

.privacypolicy{ background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:16px; color:var(--dyn-muted) !important; }
.privacypolicy-link{ color:var(--dyn-accent-2) !important; }

[class*="_content"] [class*="btn"], [class*="_content"] a[class*="round"]{ border-radius:var(--dyn-radius) !important; }

.formWrapbg, .formWrap, .form, [class*="formSec"]{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
.formWrap{ max-width:720px; margin:0 auto; }
.formBox{ margin-bottom:20px; }
.formBox dt, .formBox label{ color:var(--dyn-text) !important; }
.formBox dd input:not([type="checkbox"]):not([type="radio"]),
.formBox dd select,
.formWrap input[type="text"], .formWrap input[type="email"], .formWrap input[type="tel"]{
  width:100% !important; max-width:none !important; padding:14px 16px !important; font-size:16px !important;
  min-height:54px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius);
}
.formBox dd textarea, .formWrap textarea{
  width:100% !important; padding:14px 16px !important; font-size:16px !important; min-height:220px !important;
  background:var(--dyn-surface) !important; color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius);
}
.formWrap input[type="checkbox"], .formWrap input[type="radio"]{
  width:18px !important; height:18px !important; min-height:0 !important; padding:0 !important; margin:0 8px 0 0 !important;
  vertical-align:-3px; accent-color:var(--dyn-accent); flex:none !important;
}

.req, .formBox .req{
  display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important;
  white-space:nowrap !important; padding:6px 12px !important; border-radius:var(--dyn-radius) !important;
  background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important;
}
.wpcf7-not-valid-tip, .wpcf7-response-output{ color:var(--dyn-accent-2) !important; }

input.wpcf7-submit, .formWrap button[type="submit"]{
  background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important;
  border:none !important; border-radius:var(--dyn-radius) !important;
  min-height:54px !important; padding:14px 28px !important; font-size:16px !important; cursor:pointer;
}

[class*="_section"] h2, [class*="_section"] h3{
  border-radius:0 !important; background:transparent !important; border:none !important; text-align:inherit !important;
}

.parts040506_notice-news{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
.parts040506_notice-news *{ color:var(--dyn-text) !important; }
.parts040506_notice-news .title, .parts040506_notice-news .title a{ color:var(--dyn-heading) !important; }
.parts040506_notice-news [class*="date"], .parts040506_notice-news .f_yugothic{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
.parts040506_notice-news .more{ white-space:nowrap !important; color:var(--dyn-accent-2) !important; }
.parts040506_notice-news a{ color:var(--dyn-accent-2) !important; }

[class*="_blog_title_wrap"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_blog_thumbnail"]{ border-radius:var(--dyn-radius); }

[class*="_blog"] .card{ background:var(--dyn-surface) !important; border-color:var(--dyn-border) !important; border-radius:var(--dyn-radius) !important; }
[class*="_blog"] .card-title, [class*="_blog"] .card-text{ color:var(--dyn-text) !important; }
[class*="_blog"] .card-title{ font-family:var(--dyn-font-display) !important; }

[class*="parts"] .text-dark{ color:var(--dyn-text) !important; }
[class*="parts"] .bg-light{ background:var(--dyn-surface) !important; }
.card-header.bg-light{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }

.privacy{ max-width:880px; margin:0 auto; padding:64px 24px; color:var(--dyn-text); font-family:var(--dyn-font-body); line-height:1.9; }
.privacy__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,4vw,2.6rem); }
.privacy__subtitle{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:1.2rem; margin-top:8px; }
.privacy__lead{ color:var(--dyn-muted); margin:24px 0 40px; }
.privacy-item{ margin-bottom:32px; }
.privacy-item__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); border-left:3px solid var(--dyn-accent); padding-left:12px; margin-bottom:12px; }
.privacy-item__body{ color:var(--dyn-text); }

.privacy-item__list{ list-style:none; counter-reset:pp; margin:8px 0; padding:0; }
.privacy-item__list li{ counter-increment:pp; padding-left:2.2em; text-indent:-2.2em; margin:4px 0; color:var(--dyn-text); }
.privacy-item__list li::before{ content:"(" counter(pp) ") "; }

.subpage-header{ position:relative; padding:calc(72px + var(--fixed-header-h, 0px)) 24px 72px; background:var(--dyn-surface); text-align:center; overflow:hidden; }
.subpage-header__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.45; z-index:0; }
.subpage-header__inner{ position:relative; z-index:1; }
.subpage-header__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,3rem); line-height:1.3; text-shadow:0 2px 14px rgba(0,0,0,.5); }
.subpage-header__en{ font-family:var(--dyn-font-numeric); color:var(--dyn-muted); letter-spacing:.12em; margin-top:8px; }

.thanks, .notfound{ max-width:760px; margin:0 auto; padding:calc(80px + var(--fixed-header-h, 0px)) 24px 96px; text-align:center; }

.not-found{ padding-top: calc(var(--fixed-header-h, 0px) + 24px); }
.thanks__title, .notfound__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,2.6rem); line-height:1.3; margin-bottom:28px; }
.thanks__lead, .notfound__lead{ color:var(--dyn-text); line-height:2; margin-bottom:40px; }
.thanks__action, .notfound__action{ margin-top:8px; }

mark, .mark{
  background-color:transparent !important; color:inherit !important;
  padding:0 !important; border-radius:0 !important;
}

a:hover{ color:inherit; }

a[href^="tel:"]{ white-space:nowrap; }


:root{--fixed-header-h:var(--header-h)}
.u-abs{position:absolute}
.u-mt-flow{margin-top:clamp(34px,4vw,52px)}
.u-mt-note{margin-top:clamp(24px,3vw,36px)}
.bgi-partner-2{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/partner-2.webp)}
.bgi-hero-2{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/hero-2.webp)}
.bgi-partner-3{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/partner-3.webp)}
.bgi-partner-1{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/partner-1.webp)}
.bgi-svc-fire{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/svc-fire.webp)}
.bgi-partner-7{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/partner-7.webp)}
.bgi-hero-3{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/hero-3.webp)}
.bgi-svc-ac{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/svc-ac.webp)}
.bgi-works-1b{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/works-1b.webp)}
.bgi-works-2b{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/works-2b.webp)}
.bgi-partner-4{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/partner-4.webp)}
.bgi-hero-1{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/hero-1.webp)}
.bgi-svc-plumbing{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/svc-plumbing.webp)}
.bgi-partner-8{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/partner-8.webp)}
.bgi-partner-6{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/partner-6.webp)}
.bgi-partner-5{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/partner-5.webp)}
.bgi-cta-piping{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/cta-piping.webp)}
.bgi-works-2a{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/works-2a.webp)}
.bgi-works-1a{background-image:url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.uno/images/1447/works-1a.webp)}
.page-hero{padding-top:calc(var(--header-h) + clamp(40px,5vw,72px))}
.parts231_breadcrumb{display:none !important}
html:not(.js) .loader{display:none}
html:not(.js) [data-reveal]{opacity:1;transform:none}
html:not(.js) .why-item__line,html:not(.js) .art__sub-bar{transform:scaleX(1)}
section.design-parts-52 .container .content h4.banner-area{position:relative;z-index:3;background-color:#2e7d4f!important;color:#fff!important}
.blog-lead{padding-bottom:0}
.blog-more{padding-top:0}

.design-parts-9_RYx9dsC9xU.design-parts-9.bg-color{
        padding-top: 1px!important;
    padding-bottom: 1px!important;
}

.design-parts-9_RYx9dsC9xU.design-parts-9 .container .content .image_area{
    background-size: contain!important;
}