header {
  /* position: fixed;
  top: 0; */
  width: 100%;
  z-index: var(--z-index-level-high-first);
  height: var(--header-height);
  /* padding-inline: var(--content-sides-space-default); */
  /* padding-block: 30px; */
  padding-block: clamp(10px, 5vw, 30px);
  background-color: var(--header-color-light-primary);
}
header #h_title img {
  height: clamp(40px, 10vw, 75px);
}

#h_catch_phrase p {
  letter-spacing: 0;
}
#h_catch_phrase p:nth-child(2) {
  font-family: "Noto Serif JP";
  font-weight: 900;
}

/* h1, h2 {
  font-family: "Area Extended";
  font-size: var(--font-size-xx-large);
  line-height: 0.8;
  font-weight: 600;
} */
h1 {
  font-family: "Raleway";
  /* font-size: var(--font-size-xx-large); */
  font-size: clamp(24px, 10vw, var(--font-size-xx-large));
  line-height: 0.8;
  font-weight: var(--font-weight-bolder);
  letter-spacing: .06em;
}

h3 {
  /* font-size: var(--font-size-initial); */
  font-size: clamp(14px, 3vw, var(--font-size-larger));
  /* font-weight: var(--font-weight-bold); */
}

#domain h2 {
  font-size: var(--font-size-larger);
  font-size: clamp(14px, 3vw, var(--font-size-larger));
  line-height: 2.5;
  border-block-end: 4px solid var(--border-color-dark-secondary);
}
#domain_factory, #domain_import, #domain_store  {
  padding-block-start: var(--space-large);
}
.factory h3 + * {
  margin-block-start: 0;
}
#domain_import .summary, #domain_store .summary {
  margin-block-start: var(--space-initial);
}
#domain_store .cluster {
  gap: var(--space-larger);
}


#features_news h2 {
  font-size: var(--font-size-large);
  font-size: clamp(16px, 4vw, var(--font-size-large));
  font-weight: var(--font-weight-x-bold);
  letter-spacing: 0;
}
 /* top, features */
#features_news > * {
  border-block-start: 2px solid var(--border-color-dark-secondary);
  padding-block-start: var(--space-larger); 
}
#features_news li {
  line-height: 1.8;
}


.sub-heading {
  font-weight: var(--font-weight-bold);
  border-block: 1px solid var(--border-color-dark-secondary);
  margin-inline: calc(var(--content-sides-space-default) * -0.7);
  font-size: calc(var(--font-size-initial) * 1.2);
  line-height: 2.0;
}

.catch-phrase {
  font-size: var(--font-size-large);
  font-size: clamp(16px, 4vw, var(--font-size-large));
  /* letter-spacing: 0; */
  font-weight: var(--font-weight-bold);
}

/* トップページとFeaturesページ */
/* 写真差し替え時にコメントアウトをトグルする */
/* ↓ */
#features_list img {
  /* border-radius: 6px; 
  box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.5); */
  margin-bottom: -17px;
}
#features_list figcaption {
  text-align: left;
  font-weight: var(--font-weight-bold);
  padding-inline: 16px;
}
/* 上 */
/* 写真差し替え時にコメントアウトをトグルする */

#recruitment .catch-phrase {
  font-family: "Noto Serif JP";
  font-size: clamp(20px, 4vw, var(--font-size-x-large));
  letter-spacing: unset;
  font-weight: var(--font-weight-initial);
}
#recruitment #new-graduate a {
  text-decoration: underline;
}

main article:first-child {
  margin-block-start: var(--space-x-large);
}

main > article {
  background: linear-gradient(to bottom, var(--bg-color-light-secondary), var(--bg-color-light-primary));
}
section {
  background-color: var(--bg-color-light-primary);
  border-top-left-radius: 50px;
  border-top-right-radius: 50px;
  box-shadow: 0 -10px 11px rgba(0, 0, 0, 0.2)
}

.article-contents,
.footer-contents {
  /* padding-block-start: var(--space-xx-large);
  padding-block-end: var(--space-x-large); */
  padding-block: var(--space-xx-large);
}

.footer-nav-privacy {
  padding-block-start: var(--space-larger);
}

img {
  vertical-align: middle;
  max-width: 100%;
  height: auto;
}
figure {
  text-align: center;
}


/* header */


#nav-toggle {
  position: absolute;
  right: var(--content-sides-space-default);
  height: 75px;
  top: 0;
  cursor: pointer;
  z-index: 2;
}

#nav-toggle, 
#nav-toggle span {
  width: 44px;
}

#nav-toggle span {
  position: absolute;
  transition: all .4s;
  --toggle-line-weight: 2px;
  --toggle-lines-distance: 9px;
  --toggle-base-line-position: 50px;
  --toggle-base-line-position: clamp(20px, 6vw, 50px);
  --toggle-next-line-position: calc(var(--toggle-line-weight) + var(--toggle-lines-distance));
  background-color: var(--text-color-dark-primary);
  height: var(--toggle-line-weight);
  bottom: auto;
}

#nav-toggle span:nth-of-type(1) {
  top: var(--toggle-base-line-position);
}

#nav-toggle span:nth-of-type(2) {
  top: calc(var(--toggle-base-line-position) + var(--toggle-next-line-position));
}

#nav-toggle span:nth-of-type(3) {
  top: calc(var(--toggle-base-line-position) + var(--toggle-next-line-position) * 2);
}

#nav-toggle span:nth-of-type(4) {
  top: calc(var(--toggle-base-line-position) + var(--toggle-next-line-position) * 3);
}


/* Open nav menu */
#nav.open #nav-toggle span:nth-of-type(1) {
  opacity: 1;
  transform: translateY(16px) rotate(-41deg);
}

#nav.open #nav-toggle span:nth-of-type(2),
#nav.open #nav-toggle span:nth-of-type(3) {
  opacity: 0;
}

#nav.open #nav-toggle span:nth-of-type(4) {
  opacity: 1;
  transform: translateY(-16px) rotate(41deg);
}

.sp_nav {
  display: none;
  position: absolute;
  top: clamp(20px, 5vw, 55px);
  right: var(--content-sides-space-default);
  width: min(250px, 46%);
  z-index: 1;
  background-color: rgba(255,255,255,1);
}

.sp_nav li {
  border-left: solid 4px var(--secondaly-dark-bg-color);    
  background-color: var(--default-bg-color);
  height: 44px;
}

.sp_nav li:first-child {
  border-right: solid 48px var(--secondaly-dark-bg-color);
}

.sp_nav li.child {
  margin-inline-start: var(--content-sides-space-default);
}

.sp_nav li.main {
  background-color: var(--primary-dark-bg-color);
}

.sp_nav li a {
  color: var(--dark-text-color);
  border: none;
  padding-inline: 12px;
}

.sp_nav li.main a {
  color: var(--light-text-color);
}

.sp_nav li.parent:not(.nav_cube) a {
  max-width: 234px;
}

.sp_nav li.nav_site a {
  width: 78%;
}

.sp_nav li.nav_edge a {
  width: 84%;
}

.sp_nav li.parent a img {
  height: 14px;
}

.sp_nav li.parent.nav_cube a img {
  height: 15.2px;
}

.sp_nav li.child a img {
  height: 18px;
}


#key_visual video {
  width: 100%;
}

footer {
  background-color: #e6e6e6;
}

footer nav .heading {
  font-weight: var(--font-weight-bold);
}

footer button:not(.no-border):has(.arrow) {
  margin-inline: 0;
}

/* Contact Form Styling */
/* .wpcf7-form {
  background-color: var(--bg-color-light-primary);
  border-radius: 20px;
  padding: var(--space-xx-large);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  max-width: 800px;
  margin: 0 auto;
} */

.wpcf7-form p {
  margin-bottom: var(--space-large);
}

.wpcf7-form label {
  display: block;
  font-weight: var(--font-weight-bold);
  color: var(--text-color-dark-primary);
  margin-bottom: var(--space-small);
  font-size: var(--font-size-initial);
}

.wpcf7-form-control {
  width: 100%;
  padding: var(--space-larger);
  border: 1px solid #a0a0a0;
  border-radius: 8px;
  font-size: var(--font-size-initial);
  font-family: inherit;
  transition: all 0.3s ease;
  background-color: #fafafa;
}

.wpcf7-form-control:focus {
  outline: none;
  border-color: var(--bg-color-light-secondary);
  background-color: var(--bg-color-light-primary);
  box-shadow: 0 0 0 3px rgba(89, 99, 128, 0.1);
}

.wpcf7-form-control.wpcf7-validates-as-required.wpcf7-not-valid {
  border-color: #ff6b6b;
}

.wpcf7-form-control.wpcf7-validates-as-required:focus {
  border-color: var(--bg-color-light-secondary);
}

.wpcf7-select {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px;
  padding-right: 40px;
  appearance: none;
  cursor: pointer;
}

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

.wpcf7-submit {
  /* background: linear-gradient(135deg, var(--bg-color-light-secondary), #4a5568); */
  background-color:var(--bg-color-dark-primary);
  color: var(--text-color-light-primary);
  border: none;
  padding: var(--space-larger) var(--space-xx-large);
  border-radius: 8px;
  font-size: var(--font-size-larger);
  font-weight: var(--font-weight-bold);
  cursor: pointer;
  transition: all 0.3s ease;
  /* box-shadow: 0 4px 15px rgba(89, 99, 128, 0.3); */
  width: 100%;
  margin-block-end: var(--space-large);
}

/* .wpcf7-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(89, 99, 128, 0.4);
}

.wpcf7-submit:active {
  transform: translateY(0);
  box-shadow: 0 2px 10px rgba(89, 99, 128, 0.3);
} */

.wpcf7-spinner {
  display: none;
}

.wpcf7-response-output {
  margin-top: var(--space-large);
  padding: var(--space-larger);
  border-radius: 8px;
  font-weight: var(--font-weight-bold);
}

.wpcf7-response-output.wpcf7-mail-sent-ok {
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}

.wpcf7-response-output.wpcf7-validation-errors {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}

/* Privacy Policy Button Styling */
/* button.cluster {
  background: linear-gradient(135deg, #f8f9fa, #e9ecef);
  border: 2px solid #dee2e6;
  color: var(--text-color-dark-primary);
  padding: var(--space-larger) var(--space-xx-large);
  border-radius: 8px;
  font-size: var(--font-size-initial);
  font-weight: var(--font-weight-bold);
  cursor: pointer;
  transition: all 0.3s ease;
  margin-top: var(--space-large);
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-small);
} */

/* button.cluster:hover {
  background: linear-gradient(135deg, #e9ecef, #dee2e6);
  transform: translateY(-1px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

button.cluster .arrow {
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M5 12h14M12 5l7 7-7 7'%3e%3c/path%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
} */

/* Responsive Design */
@media (max-width: 768px) {
  .wpcf7-form {
    padding-block: var(--space-large);
  }
  
  .wpcf7-form-control {
    padding: var(--space-larger);
  }
  
  .wpcf7-submit {
    padding: var(--space-larger) var(--space-large);
    font-size: var(--font-size-initial);
  }
}
