@charset "UTF-8";

/* -------------------------
  ress.css v5.0.2 | MIT License | github.com/filipelinhares/ress
-------------------------　*/
html{-webkit-text-size-adjust:100%;box-sizing:border-box;-moz-tab-size:4;tab-size:4;word-break:normal}*,:after,:before{background-repeat:no-repeat;box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{margin:0;padding:0}hr{color:inherit;height:0;overflow:visible}details,main{display:block}summary{display:list-item}small{font-size:80%}[hidden]{display:none}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}a{background-color:transparent}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}pre{font-size:1em}b,strong{font-weight:bolder}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}iframe{border-style:none}input{border-radius:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}button,select{text-transform:none}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:1px dotted ButtonText}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,input,select,textarea{background-color:transparent;border-style:none}a:focus,button:focus,input:focus,select:focus,textarea:focus{outline-width:0}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;max-width:100%;white-space:normal}::-webkit-file-upload-button{-webkit-appearance:button;color:inherit;font:inherit}[disabled]{cursor:default}img{border-style:none}progress{vertical-align:baseline}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled=true]{cursor:default}

/* -------------------------
  init
-------------------------　*/
:root {
  --color-white: #ffffff;

  --color-primary: #333333;
  --color-secondary: #666666;
  --color-tertiary: #999999;
  --color-quaternary : #dddddd;

  --color-white-op: #ffffffe6;
  --color-black-op: #000000d9;
  --color-secondary-op: #333333b3;

  --color-border-default: #cccccc;

  --color-accent-primary: #3c70b2;
  --color-accent-primary-op: #3c70b280;
  --color-accent-secondary: #b23c70;
  --color-accent-tertiary: #70b23c;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  background-color: var(--color-white);
  color: var(--color-primary);
  font-family: "Noto Sans JP", system-ui, -apple-system, Segoe UI, Roboto, "Hiragino Kaku Gothic ProN", "Yu Gothic", Arial, sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  letter-spacing: 0.1em;
  line-height: 1.5;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  width: 100%;
}

* {
  box-sizing: border-box;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

img {
  display: block;
  max-width: 100%;
}

a {
  display: inline-block;
  color: inherit;
  text-decoration: none;
}

em {
  font-style: normal;
}

/* -------------------------
  layout
-------------------------　*/
body:not(.home) .main {
  padding: 0 0 80px;
}

.container-lg {
  width: min(1200px, calc(100% - (24px * 2)));
  margin-inline: auto;
}

.container {
  width: min(1000px, calc(100% - (24px * 2)));
  margin-inline: auto;
}

/* responsive */
@media (max-width: 1024px) {
  body:not(.home) .main {
    padding: 0 0 7.813vw;
  }

  .container-lg {
    width: min(1200px, calc(100% - (2.344vw * 2)));
  }

  .container {
    width: min(1000px, calc(100% - (2.344vw * 2)));
  }
}

@media (max-width: 768px) {
  body:not(.home) .main {
    padding: 0 0 64px;
  }

  .container-lg,
  .container {
    width: calc(100% - (20px * 2));
  }
}

@media (max-width: 413px) {
  body:not(.home) .main {
    padding: 0 0 15.459vw;
  }

  .container-lg,
  .container {
    width: calc(100% - (4.831vw * 2));
  }
}

/* -------------------------
  helpers
-------------------------　*/
/* .u-pc / .u-sp */
.u-sp {
  display: none;
}
@media (max-width: 768px) {
  .u-sp {
    display: block;
  }

  .u-pc {
    display: none;
  }
}

/* .u-maker */
.u-maker {
  background: linear-gradient(transparent 70%, var(--color-accent-primary-op) 70%);
}

/* .u-btn-op */
.u-btn-op {
  transition: all 0.3s ease;
}
.u-btn-op:hover {
  opacity: 0.6;
  transform: translateY(-1px);
}

/* .u-btn-skew */
.u-btn-skew {
  display: block;
  position: relative;
  background-color: var(--color-primary);
  overflow: hidden;
  transition: all 0.3s ease;
}
.u-btn-skew:hover {
  transform: translateY(-1px);
}

.u-btn-skew::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 130%;
  height: 100%;
  background-color: var(--color-white);
  transform: translateX(-120%) skewX(-25deg);
  transition: transform 0.5s ease;
}
.u-btn-skew:hover::before {
  transform: translateX(-10%) skewX(-25deg);
}

.u-btn-skew span {
  position: relative;
  z-index: 3;
  color: var(--color-white);
  transition: color 0.2s ease;
}
.u-btn-skew:hover span {
  color: var(--color-primary);
}

/* .u-btn */
.u-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin: 0 auto;
  padding: 14px 56px 14px 80px;
  border: 1px solid var(--color-primary);
  background-color: var(--color-primary);
  color: var(--color-white);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  letter-spacing: 0.1em;
}
.u-btn-text {
  display: inline-block;
  position: relative;
  z-index: 10;
  margin-top: -1px;
}
.u-btn-arrow {
  display: inline-block;
  position: relative;
  width: 12.6px;
  height: 23.2px;
  z-index: 10;
}
.u-btn-arrow::before,
.u-btn-arrow::after {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  right: 0;
  width: 17px;
  height: 2px;
  border-radius: 9999px;
  background-color: var(--color-white);
  transform-origin: calc(100% - 1px) 50%;
  transition: background-color 0.2s ease;
}
.u-btn-arrow::before {
  transform: rotate(45deg);
}
.u-btn-arrow::after {
  transform: rotate(-45deg);
}
.u-btn:hover .u-btn-arrow::before,
.u-btn:hover .u-btn-arrow::after {
  background-color: var(--color-primary);
}

/* responsive */
@media (max-width: 1024px) {
  .u-btn {
    gap: 2.344vw;
    padding: 1.367vw 5.469vw 1.367vw 7.813vw;
    font-size: 1.758vw;
  }
  .u-btn-text {
    margin-top: -0.098vw;
  }
  .u-btn-arrow {
    width: 1.23vw;
    height: 2.266vw;
  }
  .u-btn-arrow::before,
  .u-btn-arrow::after {
    top: calc(50% - 0.098vw);
    width: 1.66vw;
    height: 0.195vw;
  }
}

@media (max-width: 768px) {
  .u-btn {
    gap: 16px;
    padding: 14px 40px 14px 64px;
    font-size: 16px;
  }
  .u-btn-arrow {
    width: 10.5px;
    height: 19px;
  }
  .u-btn-arrow::before,
  .u-btn-arrow::after {
    top: calc(50% - 1px);
    width: 14px;
    height: 2px;
    transform-origin: calc(100% - 1px) 50%;
  }
}

@media (max-width: 413px) {
  .u-btn {
    gap: 3.865vw;
    padding: 3.382vw 9.662vw 3.382vw 15.459vw;
    font-size: 3.865vw;
  }
  .u-btn-arrow {
    width: 2.536vw;
    height: 4.589vw;
  }
  .u-btn-arrow::before,
  .u-btn-arrow::after {
    top: calc(50% - 0.242vw);
    width: 3.382vw;
    height: 0.483vw;
  }
}

/* u-table */
.u-table {
  width: 100%;
  margin: 24px auto 0;
  border-collapse: collapse;
  border-top: 1px solid var(--color-border-default);
}

.u-table th,
.u-table td {
  padding: 20px 24px;
  border-bottom: 1px solid var(--color-border-default);
  font-size: 16px;
  line-height: 1.6;
  text-align: left;
  vertical-align: middle;
}

.u-table th {
  width: 20%;
}

/* responsive */
@media (max-width: 1024px) {
  .u-table {
    margin: 2.344vw auto 0;
  }

  .u-table th,
  .u-table td {
    padding: 1.953vw 2.344vw;
    font-size: 1.563vw;
  }
}

@media (max-width: 768px) {
  .u-table {
    margin: 16px auto 0;
  }

  .u-table th,
  .u-table td {
    padding: 16px 10px;
    font-size: 14px;
  }

  .u-table th {
    width: 28%;
  }
}

@media (max-width: 413px) {
  .u-table {
    margin: 3.865vw auto 0;
  }

  .u-table th,
  .u-table td {
    padding: 3.865vw 2.415vw;
    font-size: 3.382vw;
  }
}

/* u-list */
.u-list-table {
  list-style: none;
  width: 100%;
  margin: 24px 0 0;
  padding: 0;
  border-top: 1px solid var(--color-border-default);
}

.u-list-table li {
  position: relative;
  padding: 20px 0 20px 44px;
  font-size: 16px;
  line-height: 1.6;
  border-bottom: 1px solid var(--color-border-default);
}
.u-list-table li:before {
  content: "•";
  position: absolute;
  top: 0.7em;
  left: 24px;
  color: var(--color-accent-primary);
  font-size: 20px;
  font-weight: 900;
}

/* responsive */
@media (max-width: 1024px) {
  .u-list-table {
    margin: 2.344vw 0 0;
  }

  .u-list-table li {
    padding: 1.953vw 0 1.953vw 4.297vw;
    font-size: 1.563vw;
  }
  .u-list-table li:before {
    left: 2.344vw;
    font-size: 1.953vw;
  }
}

@media (max-width: 768px) {
  .u-list-table {
    margin: 16px 0 0;
  }

  .u-list-table li {
    padding: 16px 0 16px 28px;
    font-size: 14px;
  }
  .u-list-table li:before {
    top: 0.5em;
    left: 10px;
    font-size: 20px;
  }
}

@media (max-width: 413px) {
  .u-list-table {
    margin: 3.865vw 0 0;
  }

  .u-list-table li {
    padding: 3.865vw 0 3.865vw 6.763vw;
    font-size: 3.382vw;
  }
  .u-list-table li:before {
    left: 2.415vw;
    font-size: 4.831vw;
  }
}

/* -------------------------
  header
-------------------------　*/
.header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1000;
  background-color: var(--color-secondary-op);
  backdrop-filter: blur(20px);
}

.header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 85px;
}

.header-logo-link {
  display: flex;
  align-items: center;
  gap: 0 16px;
  height: 85px;
  padding: 0 24px;
  text-decoration: none;
}

.header-logo img {
  height: 52px;
}

.header-tagline {
  color: var(--color-quaternary);
  font-family: "Noto Serif JP", serif;
  font-size: 12px;
  letter-spacing: 0.085em;
}

.header-headline {
  margin-top: 4px;
  padding-left: 0.35em;
  color: var(--color-white);
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  font-weight: 700;
}

.header-nav-list {
  display: flex;
  align-items: center;
  list-style-type: none;
}

.header-nav-item a {
  width: 152px;
  color: var(--color-white);
  font-size: 16px;
  font-weight: 700;
  line-height: 85px;
  text-align: center;
}
.header-nav-item.hni-contact a {
  width: 176px;
  background-color: var(--color-primary);
}

/* responsive */
@media (max-width: 1024px) {
  .header-inner {
    height: 8.301vw;
  }

  .header-logo-link {
    gap: 0 1.563vw;
    height: 8.301vw;
    padding: 0 2.344vw;
  }

  .header-logo img {
    height: 5.078vw;
  }

  .header-tagline {
    font-size: 1.172vw;
    letter-spacing: 0.085em;
  }

  .header-headline {
    margin-top: 0.391vw;
    padding-left: 0.35em;
    font-size: 1.758vw;
  }

  .header-nav-item a {
    width: 14.844vw;
    font-size: 1.563vw;
    line-height: 8.301vw;
  }
  .header-nav-item.hni-contact a {
    width: 17.188vw;
  }
}

@media (max-width: 768px) {
  .header-inner {
    height: 60px;
  }

  .header-logo-link {
    gap: 0 8px;
    height: 60px;
    padding: 0 12px;
  }

  .header-logo img {
    height: 34px;
  }

  .header-tagline {
    font-size: 9px;
    letter-spacing: 0.05em;
 }

  .header-headline {
    margin-top: 2px;
    font-size: 13px;
  }

  .header-nav-item a {
    width: 88px;
    font-size: 12px;
    line-height: 60px;
  }
  .header-nav-item.hni-contact a {
    width: 104px;
  }
}

@media (max-width: 413px) {
  .header-inner {
    height: 14.493vw;
  }

  .header-logo-link {
    gap: 0 1.932vw;
    height: 14.493vw;
    padding: 0 2.899vw;
  }

  .header-logo img {
    height: 8.213vw;
  }

  .header-tagline {
    font-size: 2.174vw;
    letter-spacing: 0.06em;
 }

  .header-headline {
    margin-top: 0.483vw;
    font-size: 3.14vw;
  }

  .header-nav-item a {
    width: 21.256vw;
    font-size: 2.899vw;
    line-height: 14.493vw;
  }
  .header-nav-item.hni-contact a {
    width: 25.121vw;
  }
}

/* -------------------------
  section
-------------------------　*/
.section {
  margin: 64px 0 0;
}

.section-body {
  margin: 0 auto;
}
.section-body.sb-w {
  padding: 48px 40px 56px;
  background-color: var(--color-white-op);
}
.section-body.sb-b {
  padding: 48px 40px 56px;
  background-color: var(--color-black-op);
}

.section-title {
  font-size: 26px;
  font-weight: 900;
  text-align: center;
}
.section-body.sb-b .section-title {
  color: var(--color-white);
}
body:not(.home) .section-title {
  font-size: 24px;
  text-align: left;
}

.section-sub-title {
  font-size: 20px;
  font-weight: 700;
}

.section-text-wrapper {
  margin-top: 32px;
}

.section-text {
  margin-top: 20px;
  font-size: 18px;
  line-height: 1.8;
  text-align: center;
}
.section-body.sb-b .section-text {
  color: var(--color-white);
}
.section-text.u-text-lg {
  font-size: 20px;
}
body:not(.home) .section-text {
  text-align: left;
}

.section-btn {
  margin-top: 40px;
  text-align: center;
}

/* responsive */
@media (max-width: 1024px) {
  .section {
    margin: 6.25vw 0 0;
  }

  .section-body.sb-w {
    padding: 4.688vw 3.906vw 5.469vw;
  }
  .section-body.sb-b {
    padding: 4.688vw 3.906vw 5.469vw;
  }

  .section-title {
    font-size: 2.539vw;
  }
  body:not(.home) .section-title {
    font-size: 2.344vw;
  }

  .section-sub-title {
    font-size: 1.953vw;
  }

  .section-text-wrapper {
    margin-top: 3.125vw;
  }

  .section-text {
    margin-top: 1.953vw;
    font-size: 1.758vw;
  }
  .section-text.u-text-lg {
    font-size: 1.953vw;
  }

  .section-btn {
    margin-top: 3.906vw;
  }
}

@media (max-width: 768px) {
  .section {
    margin: 40px 0 0;
  }

  .section-body.sb-w {
    padding: 40px 20px 48px;
  }
  .section-body.sb-b {
    padding: 40px 20px 48px;
  }

  .section-title {
    font-size: 20px;
  }
  body:not(.home) .section-title {
    font-size: 18px;
  }

  .section-sub-title {
    font-size: 16px;
  }

  .section-text-wrapper {
    margin-top: 16px;
  }

  .section-text {
    margin-top: 24px;
    font-size: 15px;
  }
  .section-text.u-text-lg {
    font-size: 15px;
  }

  .section-btn {
    margin-top: 32px;
    font-size: 18px;
  }
}

@media (max-width: 413px) {
  .section {
    margin: 9.662vw 0 0;
  }

  .section-body.sb-w {
    padding: 9.662vw 4.831vw 11.594vw;
  }
  .section-body.sb-b {
    padding: 9.662vw 4.831vw 11.594vw;
  }

  .section-title {
    font-size: 4.831vw;
  }
  body:not(.home) .section-title {
    font-size: 4.348vw;
  }

  .section-sub-title {
    font-size: 3.865vw;
  }

  .section-text-wrapper {
    margin-top: 3.865vw;
  }

  .section-text {
    margin-top: 5.797vw;
    font-size: 3.623vw;
  }
  .section-text.u-text-lg {
    font-size: 3.623vw;
  }

  .section-btn {
    margin-top: 7.729vw;
    font-size: 4.348vw;
  }
}

/* -------------------------
  hero
-------------------------　*/
.hero {
  position: relative;
  height: 100svh;
  background: url("/wp-content/themes/e-trigger/assets/img/hero.jpg") no-repeat center top / cover;
}

.hero .section-body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 80px;
  margin: 0 auto;
}

/* responsive */
@media (max-width: 1024px) {
  .hero .section-body {
    bottom: 7.813vw;
  }
}

@media (max-width: 768px) {
  .hero {
    background: url("/wp-content/themes/e-trigger/assets/img/hero.jpg") no-repeat 65% top / cover;
  }

  .hero .section-body {
    bottom: 56px;
  }
}

@media (max-width: 413px) {
  .hero .section-body {
    bottom: 13.527vw;
  }
}

/* -------------------------
  s-services
-------------------------　*/
.s-services {
  padding: 80px 0;
  background: url("/wp-content/themes/e-trigger/assets/img/services_bg.jpg") no-repeat center center / cover;
}

/* responsive */
@media (max-width: 1024px) {
  .s-services {
    padding: 7.813vw 0;
  }
}

@media (max-width: 768px) {
  .s-services {
    padding: 56px 0;
    background: url("/wp-content/themes/e-trigger/assets/img/services_bg.jpg") no-repeat center center / cover;
  }
}

@media (max-width: 413px) {
  .s-services {
    padding: 13.527vw 0;
  }
}

/* -------------------------
  s-industries
-------------------------　*/
.s-industries {
  margin-top: 80px;
}

.industries-list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 24px;
  width: 100%;
  max-width: 1000px;
  margin: 40px auto 0;
}

.industries-item {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 140px;
  aspect-ratio: 1;
  padding: 16px;
  border-radius: 9999px;
  background-color: var(--color-accent-primary);
  color: var(--color-white);
  font-size: 18px;
  font-weight: 700;
  text-align: center;
  box-sizing: border-box;
}

/* responsive */
@media (max-width: 1024px) {
  .s-industries {
    margin-top: 7.031vw;
  }

  .industries-list {
    gap: 0 2.344vw;
    max-width: 97.656vw;
    margin: 3.906vw auto 0;
  }

  .industries-item {
    width: 13.672vw;
    padding: 1.563vw;
    font-size: 1.758vw;
  }
}

@media (max-width: 768px) {
  .s-industries {
    margin-top: 56px;
  }

  .industries-list {
    flex-wrap: wrap;
    gap: 20px;
    margin: 24px auto 0;
  }

  .industries-item {
    width: calc(100% / 3 - (40px / 3));
    padding: 16px;
    font-size: 16px;
  }
}

@media (max-width: 413px) {
  .s-industries {
    margin-top: 13.527vw;
  }

  .industries-list {
    gap: 4.831vw;
    margin: 5.797vw auto 0;
  }

  .industries-item {
    width: calc(100% / 3 - (9.662vw / 3));
    padding: 3.865vw;
    font-size: 3.865vw;
  }
}

/* -------------------------
  s-technical
-------------------------　*/
.s-technical {
  margin-top: 80px;
}

/* responsive */
@media (max-width: 1024px) {
  .s-technical {
    margin-top: 7.813vw;
  }
}

@media (max-width: 768px) {
  .s-technical {
    margin-top: 56px;
  }
}

@media (max-width: 413px) {
  .s-technical {
    margin-top: 13.527vw;
  }
}

/* -------------------------
  s-strengths
-------------------------　*/
.s-strengths {
  margin-top: 80px;
  padding: 80px 0;
  background: url("/wp-content/themes/e-trigger/assets/img/strengths_bg.jpg") no-repeat center center / cover;
}

/* responsive */
@media (max-width: 1024px) {
  .s-strengths {
    margin-top: 7.813vw;
    padding: 7.813vw 0;
  }
}

@media (max-width: 768px) {
  .s-strengths {
    margin-top: 56px;
    padding: 56px 0;
  }
}

@media (max-width: 413px) {
  .s-strengths {
    margin-top: 13.527vw;
    padding: 13.527vw 0;
  }
}

/* -------------------------
  s-order
-------------------------　*/
.order-inner {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  max-width: 1000px;
  width: 100%;
  margin: 32px auto 0;
  padding: 40px 20px;
  border: 1px solid var(--color-border-default);
  box-sizing: border-box;
}

.order-steps-list {
  list-style: none;
  width: 320px;
  margin-bottom: 44px;
}

.order-steps-item {
  margin-top: 8px;
  text-align: center;
}
.order-steps-item:not(:last-child)::after {
  content: "";
  display: inline-block;
  width: 39.6px;
  height: 56px;
  margin-top: 16px;
  background-color: var(--color-accent-primary-op);
  clip-path: polygon(0 64.6%, 34.8% 64.6%, 34.8% 0, 65.2% 0, 65.2% 64.6%, 100% 64.6%, 50% 100%);
}

.order-steps-item-title {
  padding: 0 16px;
  background-color: var(--color-accent-primary);
  border-radius: 16px;
  color: var(--color-white);
  font-size: 20px;
  font-weight: 700;
  line-height: 64px;
  text-align: center;
}

.order-steps-item-note {
  margin-top: 6px;
  font-size: 16px;
  text-align: center;
}

.order-side.os-left {
  margin-left: 39px;
  margin-right: 66px;
}
.order-side.os-right {
  margin-left: 85px;
}

.order-side-item {
  font-size: 16px;
}

/* responsive */
@media (max-width: 1024px) {
  .order-inner {
    max-width: 97.656vw;
    margin: 3.125vw auto 0;
    padding: 3.906vw 1.953vw;
  }

  .order-steps-list {
    width: 31.25vw;
    margin-bottom: 4.297vw;
  }

  .order-steps-item {
    margin-top: 0.781vw;
  }
  .order-steps-item:not(:last-child)::after {
    width: 3.867vw;
    height: 5.469vw;
    margin-top: 1.563vw;
  }

  .order-steps-item-title {
    padding: 0 1.563vw;
    border-radius: 1.563vw;
    font-size: 1.953vw;
    line-height: 6.25vw;
  }

  .order-steps-item-note {
    margin-top: 0.586vw;
    font-size: 1.563vw;
  }

  .order-side.os-left {
    margin-left: 3.809vw;
    margin-right: 6.445vw;
  }
  .order-side.os-right {
    margin-left: 8.301vw;
  }

  .order-side-item {
    font-size: 1.563vw;
  }
}

@media (max-width: 768px) {
  .order-inner {
    flex-direction: column;
    align-items: center;
    gap: 16px 0;
    margin: 16px auto 0;
    padding: 24px 20px;
  }

  .order-steps-list {
    width: 50%;
    margin-bottom: 0;
  }

  .order-steps-item {
    margin-top: 4px;
  }
  .order-steps-item:not(:last-child)::after {
    width: 22.6px;
    height: 32px;
    margin-top: 8px;
    clip-path: polygon(0 64.6%, 32.3% 64.6%, 32.3% 0, 67.7% 0, 67.7% 64.6%, 100% 64.6%, 50% 100%);
  }

  .order-steps-item-title {
    padding: 0 16px;
    border-radius: 8px;
    font-size: 16px;
    line-height: 40px;
  }

  .order-steps-item-note {
    margin-top: 6px;
    font-size: 14px;
  }

  .order-side-item {
    font-size: 18px;
  }

  /* モバイル用のコンテナを表示 */
  .order-sides-container {
    display: flex;
    justify-content: center;
    gap: 0 64px;
    width: 100%;
    margin: 0 auto;
    padding: 0 0 0 24px;
  }

  .order-side-item {
    font-size: 14px;
  }
}

@media (max-width: 413px) {
  .order-inner {
    gap: 3.865vw 0;
    margin: 3.865vw auto 0;
    padding: 5.797vw 4.831vw;
  }

  .order-steps-item {
    margin-top: 0.966vw;
  }
  .order-steps-item:not(:last-child)::after {
    width: 5.459vw;
    height: 7.729vw;
    margin-top: 1.932vw;
  }

  .order-steps-item-title {
    padding: 0 3.865vw;
    border-radius: 1.932vw;
    font-size: 3.865vw;
    line-height: 9.662vw;
  }

  .order-steps-item-note {
    margin-top: 1.449vw;
    font-size: 3.382vw;
  }

  .order-side-item {
    font-size: 4.348vw;
  }

  /* モバイル用のコンテナを表示 */
  .order-sides-container {
    gap: 0 15.459vw;
    padding: 0 0 0 5.797vw;
  }

  .order-side-item {
    font-size: 3.382vw;
  }
}

/* -------------------------
  s-delivery
-------------------------　*/
.s-delivery {
  margin: 72px 0 0;
}

.delivery-list {
  display: flex;
  justify-content: center;
  gap: 0 24px;
  position: relative;
  z-index: 1;
  margin-top: 56px;
}
.delivery-list::before {
  content: "";
  position: absolute;
  top: 36px;
  left: 118px;
  right: 74px;
  height: 2px;
  background-color: var(--color-primary);
  z-index: 0;
}

.delivery-item {
  list-style: none;
  position: relative;
  z-index: 1;
  width: 144px;
  padding: 64px 24px 24px;
  border-radius: 16px;
  border: 1px solid var(--color-border-default);
  text-align: center;
}
.delivery-item:nth-child(1),
.delivery-item:nth-child(2) {
  width: 236px;
}
.delivery-item::before {
  content: "";
  position: absolute;
  top: 31px;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 10px;
  background-color: var(--color-primary);
  border-radius: 50%;
}

.delivery-step {
  position: absolute;
  top: -28px;
  left: 50%;
  transform: translate(-50%, 0);
  width: 100%;
  color: var(--color-tertiary);
  font-size: 24px;
  font-weight: 700;
  line-height: 0.9;
}

.delivery-meta-label {
  color: var(--color-tertiary);
  font-size: 14px;
}

.delivery-title {
  font-size: 20px;
  font-weight: 700;
}

.delivery-bullets-list {
  display: inline-block;
  list-style: disc;
  margin: 16px 0 0;
}

.delivery-bullets-item {
  font-size: 16px;
}

.delivery-note {
  max-width: 1000px;
  margin: 24px auto 0;
  padding-left: 1.0em;
  font-size: 16px;
  text-indent: -1.0em;
}

/* responsive */
@media (max-width: 1024px) {
  .s-delivery {
    margin: 7.031vw 0 0;
  }

  .delivery-list {
    gap: 0 2.344vw;
    margin-top: 5.469vw;
  }
  .delivery-list::before {
    top: 3.516vw;
    left: 11.523vw;
    right: 7.227vw;
    height: 0.195vw;
  }

  .delivery-item {
    width: 14.063vw;
    padding: 6.25vw 2.344vw 2.344vw;
    border-radius: 1.563vw;
  }
  .delivery-item:nth-child(1),
  .delivery-item:nth-child(2) {
    width: 23.047vw;
  }
  .delivery-item::before {
    top: 3.027vw;
    width: 0.977vw;
    height: 0.977vw;
  }

  .delivery-step {
    top: -2.734vw;
    font-size: 2.344vw;
  }

  .delivery-meta-label {
    font-size: 1.367vw;
  }

  .delivery-title {
    font-size: 1.953vw;
  }

  .delivery-bullets-list {
    margin: 1.563vw 0 0;
  }

  .delivery-bullets-item {
    font-size: 1.563vw;
  }

  .delivery-note {
    max-width: 97.656vw;
    margin: 2.344vw auto 0;
    font-size: 1.563vw;
  }
}

@media (max-width: 768px) {
  .s-delivery {
    margin: 56px 0 0;
  }

  .delivery-list {
    flex-wrap: wrap;
    gap: 48px 20px;
    margin-top: 56px;
  }
  .delivery-list:before {
    top: 35px;
    left: 88px;
    right: 0;
    height: 1px;
  }
  .delivery-list::after {
    content: "";
    position: absolute;
    top: 265px;
    left: 0;
    right: 54px;
    height: 1px;
    background-color: var(--color-primary);
    z-index: 0;
  }

  .delivery-item {
    width: calc((100% / 3) - (40px / 3));
    padding: 64px 20px 16px;
    border-radius: 8px;
  }
  .delivery-item:nth-child(1),
  .delivery-item:nth-child(2) {
    width: calc((100% / 2) - (20px / 2));
  }
  .delivery-item::before {
    top: 31px;
    width: 8px;
    height: 8px;
  }

  .delivery-step {
    top: -30px;
    left: 50%;
    font-size: 24px;
    line-height: 1;
  }

  .delivery-meta-label {
    font-size: 14px;
  }

  .delivery-title {
    font-size: 16px;
  }

  .delivery-bullets-list {
    margin: 12px 0 0;
  }

  .delivery-bullets-item {
    font-size: 14px;
  }

  .delivery-note {
    margin: 16px auto 0;
    font-size: 13px;
  }
}

@media (max-width: 413px) {
  .s-delivery {
    margin: 13.527vw 0 0;
  }

  .delivery-list {
    gap: 11.594vw 4.831vw;
    margin-top: 13.527vw;
  }
  .delivery-list:before {
    top: 8.454vw;
    left: 21.256vw;
    height: 0.242vw;
  }
  .delivery-list::after {
    top: 64.01vw;
    right: 13.043vw;
    height: 0.242vw;
  }

  .delivery-item {
    width: calc((100% / 3) - (9.662vw / 3));
    padding: 15.459vw 4.831vw 3.865vw;
    border-radius: 1.932vw;
  }
  .delivery-item:nth-child(1),
  .delivery-item:nth-child(2) {
    width: calc((100% / 2) - (4.831vw / 2));
  }
  .delivery-item::before {
    top: 7.488vw;
    width: 1.932vw;
    height: 1.932vw;
  }

  .delivery-step {
    top: -7.246vw;
    font-size: 5.797vw;
  }

  .delivery-meta-label {
    font-size: 3.382vw;
  }

  .delivery-title {
    font-size: 3.865vw;
  }

  .delivery-bullets-list {
    margin: 2.899vw 0 0;
  }

  .delivery-bullets-item {
    font-size: 3.382vw;
  }

  .delivery-note {
    margin: 3.865vw auto 0;
    font-size: 3.14vw;
  }
}

/* -------------------------
  s-contact
-------------------------　*/
.s-contact {
  margin: 80px 0 0;
  padding: 80px 0;
  background: url("/wp-content/themes/e-trigger/assets/img/contact_bg.jpg") no-repeat center center / cover;
}

/* responsive */
@media (max-width: 1024px) {
  .s-contact {
    margin: 7.813vw 0 0;
    padding: 7.813vw 0;
  }
}

@media (max-width: 768px) {
  .s-contact {
    margin: 56px 0 0;
    padding: 56px 0;
  }
}

@media (max-width: 413px) {
  .s-contact {
    margin: 13.527vw 0 0;
    padding: 13.527vw 0;
  }
}

/* -------------------------
  footer
-------------------------　*/
.footer {
  padding: 32px 0;
  background-color: var(--color-primary);
  color: var(--color-white);
  font-size: 14px;
  text-align: center;
}

/* responsive */
@media (max-width: 1024px) {
  .footer {
    padding: 3.125vw 0;
    font-size: 1.367vw;
  }
}

@media (max-width: 768px) {
  .footer {
    padding: 22px 0 26px 0;
    font-size: 12px;
  }
}

@media (max-width: 413px) {
  .footer {
    padding: 5.314vw 0 6.28vw 0;
    font-size: 2.899vw;
  }
}

/* -------------------------
  page-top-btn
-------------------------　*/
.page-top-btn {
  position: fixed;
  bottom: 32px;
  right: 32px;
  z-index: 999;
  width: 56px;
  height: 56px;
  border: none;
  border-radius: 50%;
  background-color: var(--color-accent-primary);
  box-shadow: 0 4px 12px rgba(60, 112, 178, 0.3);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transform-origin: center;
  transition: all 0.3s ease;
}

.page-top-btn.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.page-top-btn:hover {
  background-color: var(--color-accent-primary);
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 6px 16px rgba(60, 112, 178, 0.4);
}

.page-top-btn:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(60, 112, 178, 0.3);
}

.page-top-arrow {
  display: block;
  position: relative;
  width: 21.8px;
  height: 11.9px;
  margin: 0 auto;
}

.page-top-arrow::before,
.page-top-arrow::after {
  content: "";
  position: absolute;
  top: calc(50% + 2px);
  left: 50%;
  width: 2px;
  height: 16px;
  border-radius: 9999px;
  background-color: var(--color-white);
  transform-origin: 50% 1px;
  transition: all 0.3s ease;
}

.page-top-arrow::before {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.page-top-arrow::after {
  transform: translate(-50%, -50%) rotate(45deg);
}

/* responsive */
@media (max-width: 1024px) {
  .page-top-btn {
    bottom: 3.125vw;
    right: 3.125vw;
    width: 5.469vw;
    height: 5.469vw;
  }

  .page-top-arrow {
    width: 2.129vw;
    height: 1.162vw;
  }

  .page-top-arrow::before,
  .page-top-arrow::after {
    top: calc(50% + 0.195vw);
    width: 0.195vw;
    height: 1.563vw;
  }
}

@media (max-width: 768px) {
  .page-top-btn {
    bottom: 20px;
    right: 20px;
    width: 48px;
    height: 48px;
    transform: translateY(20px);
  }

  .page-top-arrow {
    width: 19px;
    height: 10.5px;
  }

  .page-top-arrow::before,
  .page-top-arrow::after {
    top: calc(50% + 2px);
    width: 2px;
    height: 14px;
    transform-origin: 50% 1px;
  }
}

@media (max-width: 413px) {
  .page-top-btn {
    bottom: 4.831vw;
    right: 4.831vw;
    width: 11.594vw;
    height: 11.594vw;
    transform: translateY(4.831vw);
  }

  .page-top-arrow {
    width: 4.589vw;
    height: 2.536vw;
  }

  .page-top-arrow::before,
  .page-top-arrow::after {
    top: calc(50% + 0.483vw);
    width: 0.483vw;
    height: 3.382vw;
  }
}

/* -------------------------
  animations
-------------------------　*/
/* reveal animations */
.reveal-up,
.reveal-left,
.reveal-right {
  opacity: 0;
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.reveal-up {
  transform: translateY(40px);
}

.reveal-left {
  transform: translateX(-40px);
}

.reveal-right {
  transform: translateX(40px);
}

.reveal-up.is-inview,
.reveal-left.is-inview,
.reveal-right.is-inview {
  opacity: 1;
  transform: translate(0, 0);
}

/* delay classes */
.delay-1 {
  transition-delay: 0.2s;
}

.delay-2 {
  transition-delay: 0.4s;
}

.delay-3 {
  transition-delay: 0.6s;
}

/* industries items animation */
.industries-item {
  transition: all 0.3s ease;
}

.industries-item:hover {
  transform: scale(1.05);
  box-shadow: 0 8px 20px rgba(60, 112, 178, 0.3);
}

/* delivery items animation */
.delivery-item {
  transition: all 0.3s ease;
}

.delivery-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  border-color: var(--color-accent-primary);
}

/* company page styles */
/* -------------------------
  p-hero
-------------------------　*/
.p-hero {
  display: flex;
  align-items: center;
  position: relative;
  height: 385px;
}

.p-hero-image {
  position: absolute;
  z-index: 1;
  inset: 0;
}
body.company .p-hero-image {
  background: url("/wp-content/themes/e-trigger/assets/img/services_bg.jpg") no-repeat center 90% / cover;
}
body.contact .p-hero-image {
  background: url("/wp-content/themes/e-trigger/assets/img/contact_bg.jpg") no-repeat right top / cover;
}

.p-hero-content {
  position: relative;
  z-index: 2;
}

.p-hero-title {
  margin-top: 64px;
  padding: 0 107px;
  color: var(--color-white);
  font-size: 40px;
  font-weight: 900;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}
body.contact .p-hero-title {
  color: var(--color-primary);
}

/* responsive */
@media (max-width: 1024px) {
  .p-hero {
    height: 37.598vw;
  }

  .p-hero-title {
    margin-top: 6.25vw;
    padding: 0 10.449vw;
    font-size: 3.906vw;
  }
}

@media (max-width: 768px) {
  .p-hero {
    height: 168px;
  }

  body.company .p-hero-image {
    background: url("/wp-content/themes/e-trigger/assets/img/services_bg.jpg") no-repeat center bottom / cover;
  }
  body.contact .p-hero-image {
    background: url("/wp-content/themes/e-trigger/assets/img/contact_bg_sp.jpg") no-repeat center top / cover;
  }

  .p-hero-title {
    margin-top: 56px;
    padding: 0 20px;
    font-size: 20px;
  }
}

@media (max-width: 413px) {
  .p-hero {
    height: 40.58vw;
  }

  .p-hero-title {
    margin-top: 13.527vw;
    padding: 0 4.831vw;
    font-size: 4.831vw;
  }
}

/* -------------------------
  s-qualifications
-------------------------　*/
.s-qualifications {
  margin: 80px 0 0;
}

.qualifications-other {
  margin-top: 40px;
}

/* responsive */
@media (max-width: 1024px) {
  .s-qualifications {
    margin: 7.813vw 0 0;
  }

  .qualifications-other {
    margin-top: 3.906vw;
  }
}

@media (max-width: 768px) {
  .s-qualifications {
    margin: 48px 0 0;
  }

  .qualifications-other {
    margin-top: 32px;
  }
}

@media (max-width: 413px) {
  .s-qualifications {
    margin: 11.594vw 0 0;
  }

  .qualifications-other {
    margin-top: 7.729vw;
  }
}

/* contact page styles */
/* -------------------------
  s-qualifications
-------------------------　*/
.wpcf7-form {
  margin: 24px 0 0;
  border-top: 1px solid var(--color-border-default);
}

.form-group p {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0 40px;
  padding: 20px 24px;
  border-bottom: 1px solid var(--color-border-default);
}

.form-label {
  display: block;
  position: relative;
  width: 30%;
  font-size: 16px;
  font-weight: 700;
}

.form-label.required::after {
  content: "必須";
  display: inline-block;
  position: absolute;
  top: 2px;
  right: 0;
  padding: 2px 8px;
  background-color: var(--color-accent-secondary);
  color: var(--color-white);
  font-size: 12px;
  font-weight: 700;
  border-radius: 4px;
  vertical-align: middle;
}

.wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.form-input,
.form-textarea {
  width: 100%;
  padding: 12px 16px;
  border-radius: 4px;
  border: 1px solid var(--color-border-default);
  background-color: var(--color-white);
  font-size: 16px;
  line-height: 1.5;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.form-input:focus,
.form-textarea:focus {
  outline: none;
  border-color: var(--color-accent-primary);
  box-shadow: 0 0 0 3px rgba(60, 112, 178, 0.1);
}

.wpcf7-form-control-wrap .form-input::placeholder,
.form-textarea::placeholder {
  color: var(--color-tertiary);
}

.form-textarea {
  min-height: 120px;
  resize: vertical;
}

.form-note {
  margin: 40px 0 0;
}

.form-note p {
  padding-left: 1.0em;
  font-size: 14px;
  text-indent: -1.0em;
}

.form-submit {
  margin: 40px 0 0;
  text-align: center;
}

.submit-btn {
  display: inline-block;
  position: relative;
}

.submit-btn .u-btn {
  display: inline-block;
  padding: 14px 80px;
}

.wpcf7-spinner {
  position: absolute;
  top: 16px;
  right: 16px;
  margin: 0;
  background-color: transparent;
}
.wpcf7-spinner::before {
  background-color: var(--color-white);
}

/* form validation styles */
.form-input:invalid:not(:placeholder-shown),
.form-textarea:invalid:not(:placeholder-shown) {
  border-color: var(--color-accent-secondary)
}

.form-input:valid:not(:placeholder-shown),
.form-textarea:valid:not(:placeholder-shown) {
  border-color: var(--color-accent-tertiary)
}

.wpcf7-not-valid {
  border-color: var(--color-accent-secondary)
}

.wpcf7-not-valid-tip {
  margin: 4px 0 0;
  color: var(--color-accent-secondary);
  font-size: 16px;
}

.wpcf7 form .wpcf7-response-output {
  margin: 40px 0 0;
  padding: 8px 16px !important;
  border-color: var(--color-accent-secondary) !important;
  color: var(--color-accent-secondary) !important;
  font-size: 16px !important;
}

/* responsive */
@media (max-width: 1024px) {
  .wpcf7-form {
    margin: 2.344vw 0 0;
  }

  .form-group p {
    gap: 0 3.906vw;
    padding: 1.953vw 2.344vw;
  }

  .form-label {
    font-size: 1.563vw;
  }

  .form-label.required::after {
    top: 0.195vw;
    padding: 0.195vw 0.781vw;
    font-size: 1.172vw;
    border-radius: 0.391vw;
  }

  .form-input,
  .form-textarea {
    padding: 1.172vw 1.563vw;
    border-radius: 0.391vw;
    font-size: 1.563vw;
  }

  .form-textarea {
    min-height: 11.719vw;
  }

  .form-note {
    margin: 3.906vw 0 0;
  }

  .form-note p {
    font-size: 1.367vw;
  }

  .form-submit {
    margin: 3.906vw 0 0;
  }

  .submit-btn .u-btn {
    padding: 1.367vw 7.813vw;
  }

  .wpcf7-spinner {
    top: 1.563vw;
    right: 1.563vw;
  }

  /* form validation styles */
  .wpcf7-not-valid-tip {
    margin: 0.391vw 0 0;
    font-size: 1.563vw;
  }

  .wpcf7 form .wpcf7-response-output {
    margin: 3.906vw 0 0;
    padding: 0.781vw 1.563vw; !important;
    font-size: 1.563vw; !important;
  }
}

@media (max-width: 768px) {
  body.contact .section-text {
    font-size: 14px;
  }

  .wpcf7-form {
    margin: 16px 0 0;
  }

  .form-group p {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px 0;
    padding: 20px 0 24px;
  }

  .form-label {
    width: 100%;
    font-size: 16px;
  }

  .form-label.required::after {
    display: inline-block;
    position: static;
    margin: 0 0 2px 8px;
    padding: 1px 6px 3px;
    font-size: 10px;
  }

  .form-input,
  .form-textarea {
    padding: 12px;
    font-size: 16px;
  }

  .form-textarea {
    min-height: 120px;
  }

  .form-note {
    margin: 32px 0 0;
  }

  .form-note p {
    font-size: 13px;
  }

  .form-submit {
    min-width: 160px;
    margin: 32px 0 0;
  }

  .submit-btn .u-btn {
    padding: 14px 80px;
  }

  .wpcf7-spinner {
    top: 16px;
    right: 16px;
  }

  /* form validation styles */
  .wpcf7-not-valid-tip {
    margin: 4px 0 0;
    font-size: 16px;
  }

  .wpcf7 form .wpcf7-response-output {
    margin: 40px 0 0;
    padding: 8px 16px !important;
    font-size: 16px !important;
  }
}

@media (max-width: 413px) {
  body.contact .section-text {
    font-size: 3.382vw;
  }

  .wpcf7-form {
    margin: 3.865vw 0 0;
  }

  .form-group p {
    gap: 2.415vw 0;
    padding: 4.831vw 0 5.797vw;
  }

  .form-label {
    font-size: 3.865vw;
  }

  .form-label.required::after {
    margin: 0 0 0.483vw 1.932vw;
    padding: 0.242vw 1.449vw 0.725vw;
    font-size: 2.415vw;
  }

  .form-input,
  .form-textarea {
    padding: 2.899vw;
    font-size: 16px; /* keep font-size fixed for readability */
  }

  .form-textarea {
    min-height: 28.986vw;
  }

  .form-note {
    margin: 7.729vw 0 0;
  }

  .form-note p {
    font-size: 3.14vw;
  }

  .form-submit {
    min-width: 38.647vw;
    margin: 7.729vw 0 0;
  }

  .submit-btn .u-btn {
    padding: 3.382vw 19.324vw;
  }

  .wpcf7-spinner {
    top: 3.865vw;
    right: 3.865vw;
  }

  /* form validation styles */
  .wpcf7-not-valid-tip {
    margin: 0.966vw 0 0;
    font-size: 3.865vw;
  }

  .wpcf7 form .wpcf7-response-output {
    margin: 9.662vw 0 0;
    padding: 1.932vw 3.865vw !important;
    font-size: 3.865vw !important;
  }
}
