/* # =================================================================
  # Global selectors
  # ================================================================= */
  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}
html{
  font-size: 62.5%;
  font-family:'メイリオ', 'Meiryo', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', '游ゴシック', 'Yu Gothic', sans-serif;
  color: #202020;
  scroll-behavior: smooth;
  scroll-padding-top: 6.28rem;
}
body{ 
  line-height: 1.6;
  padding-top: 7rem;
}
h2{
  font-size: 3.2rem;
  line-height: 1.4;
  text-align: center;
}
h2 span{
  font-size:2.4rem;
}
h3{
  font-size: 2.4rem;
}
h4{
  font-size: 2rem;
}
h5{
  font-size: 1.8rem;
}
p{
  font-size: 1.6rem;
  line-height: 1.6;
}
img{
  max-width: 934px;
}
li{
  font-size: 1.6rem;
}
.br-1120, .br-1000, .br-900, .br-768, .br-768-2, .br-600, .br-480, .br-390{
  display: none;
}
#header{
  padding: 0 5%;
  background-color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  transition: padding 0.4s cubic-bezier(0.4,0,0.2,1);
}
#header.transform{
  box-shadow: 1px 1px 6px rgba(0,0,0,0.3); ;
  padding: 0 5%;
}
.logo_dl{
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
header-logo-wrapper, .header-btn-wrapper{
transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
}
.header-logo-wrapper{
  margin-right: 1rem;
  display: flex;
  padding: 2rem 0;
  align-items: center;
  transform-origin: 0% 50%;
  transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
}
.logo{
  display: block;
}
.header-btn-wrapper{
  display: flex;
  flex-direction: column;
  align-items:end;
  justify-content: flex-end;
  transform-origin: 100% 50%;
  transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
}
#header.transform .header-logo-wrapper, #header.transform .header-btn-wrapper{
  transform: scale(80%);
}

#header.transform .header-logo-wrapper{
  padding: 1rem 0;
}
#header .contact {
  text-align: right;
}
#header .contact a{
  font-size: 1.3rem;
  text-decoration: none;
  font-weight: 300;
  color: #3f3f3f;
  display: inline-flex;
  align-items: center;
  margin-bottom: 0.2rem;
  }
#header .material-icons {
  margin-left: 0.2rem;
  padding-bottom: 0.1rem;
  font-size: 1.6rem;
  color: #3f3f3f;
  vertical-align: middle;
  }
.logo_dl{
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.header-dl-btn{
  width:100%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22rem;
  height: 4rem;
  border-radius: 3.6rem;
  font-size: 1.6rem;
  font-weight: bold;
  background-color: #4eb233;
  color: #fff;
  text-decoration: none;
  margin-right:-0.4rem;
  padding-top: 0.3rem;
}
.header-dl-btn .material-symbols-outlined{
  font-size:2.4rem; 
  vertical-align:middle; 
  padding-bottom: 0.2rem; 
  margin-right: 0.4rem;
}   
a{
  transition: all 0.2s ease 0s
}
a:hover{
  opacity: 0.7;
}
.container{
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}
.hl-shoulder{
  text-align: center;
  font-weight: bold;
  line-height: 1.4;
  margin-bottom: 0.4rem;
  font-size: 2.4rem;
}
.br-1, .br-2{
  display: none;
}
.normal-section{
  padding: 5rem 0;
}
/* hero */
.hero-container{
  height: 100%;
  margin: 0 auto;
  background-position: center;
  background: linear-gradient(90deg,rgba(23, 153, 30, 0.9) 0%, rgba(71, 181, 124, 0.8) 24%, rgba(0, 166, 217, 0.4) 100%),  url('../img/hero-pc.png');
  background-size: cover;
  background-position: center;
  padding: 4rem 0;
}
.hero-ttl{
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
}
.hero-target{
  font-size: 2rem;
  color: #202020;
  background-color: #fff;
  display: inline-block;
  padding: 0.8rem 3rem 0.6rem;
  border-radius: 0.4rem;
  letter-spacing: 0.2rem;
  font-weight: bold;
  margin-bottom: 2rem;
}
.hero-pre-title{
  font-size: 2.4rem;
  color: #fff;
  font-weight: bold;
  margin-bottom: 1rem;
  text-shadow: 0.2rem 0.2rem 0.8rem rgba(0, 70, 63, 0.4);

}
h1{
  font-size: 5.2rem;
  color: #fff;
  line-height: 1.3;
  margin-bottom: 1.6rem;
  text-shadow: 0.2rem 0.2rem 0.8rem rgba(0, 70, 63, 0.4);
}
.hero-points{
  display: flex;
  gap: 0.5rem;
}
.hero-point{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 18rem;
  height: 6rem;
  color: #fff;
  text-align: center;
  background-color: #004481;
  font-weight: bold;
  padding-top: 0.2rem;
  clip-path: polygon(0 0, 91% 0, 100% 26%, 100% 100%, 9% 100%, 0 74%);
  aspect-ratio: 3 / 1;
  line-height: 1.3;
}
.hero-dl-btn{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40rem;
  height: 6.8rem;
  border-radius: 3.6rem;
  font-size: 2.4rem;
  background-color: #50d32d;
  color: #fff;
  text-decoration: none;
  padding-top: 0.4rem;
  margin: 0 auto;
  margin-top: 5rem;
  font-weight: bold;
}
.hero-dl-btn:hover{
  transition: all 0.2s ease 0s
}
.hero-dl-btn:hover{
  background-color: #8ed32d;
  opacity: 1;
}
.hero-dl-btn .material-symbols-outlined{
  font-size:3.2rem; 
  vertical-align:middle;
  padding-bottom: 0.4rem;
}
/* problem */
.problem-section{
  background-color: #f1f1f1;
}
.problem-headline{
  margin-bottom: 4rem;
}
.problem-card-wrap{
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* 4列・等幅 */
  gap: 1.4rem; /* 隙間をつけたい場合（任意） */
}
.prob-arrow{
  display: block;
  margin: 2rem auto;
  content: "";
  width:3rem;
  height: 1.5rem;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  background-color: #888888;
}
.problem-card{
  background-color: #fff;
  display: flex;
  flex-direction: column;
}
.problem-items{
  padding: 2.4rem 2rem 2rem;
  display: flex;
  flex-direction: column;
}
.problem-items img{
  max-height: 5rem;
  max-width: 100%;
  margin: 0 auto;
}
.problem-label{
  text-align: center;
  background-color: #3f3f3f;
  padding: 1.1em 1em 0.9em;
  font-weight: bold;
  font-size: 1.8rem;
  color: #fff;
}
.prob-caption {
  font-size: 1.4rem;
  margin-top: 1.6em;
}
.prob-solver{
  background-color: #17991e;
  color: #fff;
  font-size: 2.2rem;
  text-align: center;
  padding: 1.1em 1em 0.9em;
}
/* solution */
.solution-section{
  padding-bottom: 5rem;
}
.big-arrow{
  display: block;
  margin: 0rem auto;
  content: "";
  width:18rem;
  height: 6rem;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  background-color: #f1f1f1;
}
.solution-items{
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
}
.solution-body{
  width: 40%;
  line-height: 1.8;
}
.solution-items img{
  width: 56%;
  display: block;
  align-self: flex-start;
}
.solution-headline{
  margin: 0rem auto 4rem;
}
.solution-section .hl-shoulder{
  margin-top: 4rem;
}
/* step */
.step{
  display: flex;
  flex-direction: column;
}
.step img{
  width: 100%;
  max-width: 70rem;
  margin: 4rem auto;
}
.steps-section{
  background-color: #eaf7ce;
}
.three-steps-wrap{
  display: flex;
  flex-direction: column;
  gap: 4rem;
}
.steps-headline{
  margin-bottom: 4rem;
}
.step{
  background-color: #fff;
  padding: 3.2rem 4rem 4rem;
}
.diagram-ttl-wrap{
  background-color: #33b8f5;
  color: #fff;
  height: 8rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 3rem;
  padding: 1rem;
}
.step-num-ttl{
  display: flex;
  width: 100%;
  height: 6rem;
}
.step-num{
  font-size: 2.8rem;
  font-weight: bold;
  width: 6rem;
  background-color: #8ec31e;
  color: #fff;
  text-align: center;
  line-height: 6.4rem;
}
.step-ttl{
  display: block;
  width: calc(100% - 6rem);
  height: 6rem;
  background-color: #17991e;
  color: #fff;
  line-height: 6.4rem;
  padding: 0 1em;
}
.step-points{
  display: flex;
  justify-content: space-between;
  gap: 2%;
}
.point-arrow{
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #004481;
  color: #fff;
  width: 14rem;
  height: 10rem;
  font-weight: bold;
  padding-right: 1.5%;
  clip-path: polygon(0% 0%, 75% 0%, 100% 50%, 75% 100%, 0% 100%);
}
.step-point{
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-weight: bold;
  background-color: #eaf1e7;
  color: #17991e;
  width: calc((100% - 14rem) / 2);
  height: 10rem;
  line-height: 1.3;
  padding: 0.3em 1em 0;
}

/* download */

#download-section h2{
  margin-bottom: 4rem;
}
#download-section {
  background-color: #f1f1f1;
}
#download-section h2{
  color: #202020;
}
#download-section .contact a{
  display: inline;
  justify-content: center;
  font-size: 1.6rem;
  text-decoration: none;
  font-weight: 300;
  color: #17991e;
}
.contact{
  text-align: center;
}
#download-section .material-icons {
  margin-left: 0.4rem;
  font-size: 2rem;
  padding-bottom: 0.3rem;
  color: #17991e;
  vertical-align: middle;
  }
  .privacy-policy{
    display: inline-block;
    font-size: 1.6rem;
    text-decoration: none;
    color:#17991e;
    margin: 2.4rem 0 1rem;
    font-weight: 300;
    margin: 0 auto;
  }
  .pp-wrap{
    display: flex;
    justify-content: center;
    margin: 2rem 0 0.6rem;
    text-align: center;
  }
  .ss_contents fieldset{
    font-size: 16px;
    padding: 5.6px 12px 10px;
  }
  .ss_contents select, .form-wrap textarea, .ss_required_field input{
    padding: 4px 7px;
    background-color: #fff;
  }
  .ss_input .ss_bottomComment{
    font-size: 12px;
  }      
  .form-wrap .ss_btnArea input{
    background-color: #17991e;
    width: 280px;
    border: solid 2px #17991e;
  }
  .form-wrap textarea{
    width: 100% !important;
  }
  .form-wrap .ss_btnArea{
    margin-top: 2rem;
  }
  .form-wrap{
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    background-color: #fff;
    padding:2rem 2rem
  }
  .ss_input{
    width: 100%;
  }
  .ss_contents{
    width: 100%;
    max-width: 700px;
    margin: 0 auto;
  }
/* company profile */
.company-profile-section .container{
  text-align: center;
  }
  .profile-ttl{
  text-align: center;
  color: #17991e;
  font-size: 1.8rem;
  font-weight: bold;
  padding-bottom:0rem;
  border-bottom: 2px solid #17991e;
  display: inline-block; 
  }
  .company-profile{
  text-align: left;
  width: calc(50% - 4.1rem);
  font-size: 1.6rem;
  table-layout: auto;
  border-collapse: separate;
  border-spacing: 0 0.5em;
  }
  .company-profile tr{
  vertical-align: top;
  }
  .company-profile th{
  width: 32%;
  }
  .company-profile-l td{
  width: 68%;
  }
  .table-wrapper{
  display: flex;
  flex-wrap: wrap;
  gap: 4rem;
  margin-top: 4rem;
  }
  .cp-line{
  border: 2px solid #dcdcdc;
  padding:4rem;
  }
  .v-line{
  width: 2px;
  background-color: #dcdcdc;
  }
  
/* footer */
#footer{
  border-top:1px dashed #888888;
}
#footer_menu{
  background-color: #F9F9F9;
  padding: 2rem 0;
}
#footer p#copyright{
  margin:5px 160px 5px 10px;
  color:#888888;
  display:inline;
    font-size: 11px;
    line-height: 140%;
}
.footer_menu .footer_nav {
  text-align: center;
  font-size: 11px;
}
.footer_menu .wrapper {
  box-sizing: border-box;
  margin: auto;
  width:100%;
}

.footer_copy {
  display: block;
  background: #e5e5e5;
  padding-top: 2rem;
  padding-bottom: 2rem;
  font-size: 1.2rem;
  justify-content: center;
  }
.footer_copy p{
  font-size: 1.2rem;
  text-align: center;
}
.footer_menu .footer_nav {
    text-align: center;
    font-size: 11px;
}
.nav_item a{
  font-size: 1.1rem;
}

.footer_menu .nav_item .nav_link {
  color: #535353;
  text-decoration: none;
  font-weight: 300;

  }
.footer_menu .nav_item::before {
    display: none;
  }
.footer_menu .nav_item {
  background: url(https://www.teldevice.co.jp/img/common/ico_arr_02.png) no-repeat 0 50%;
  display: inline-block;
  padding: 0 20px 0 13px;
}
.footer_logo-wrapper{
display: flex;
justify-content: center;
}
.page-top {
position: fixed;
bottom: 30px;
right: 30px;
padding: 10px 15px;
font-size: 18px;
border: none;
border-radius: 50%;
background-color: #333;
color: #fff;
cursor: pointer;
opacity: 0;
transition: opacity 0.3s;
z-index: 999;
}
.page-top.show {
opacity: 1;
}
/* フォーム */

/* 1120 */
@media screen and (max-width: 1120px) {
  .hero-ttl,.container{
    width: 90%;
  }
  .problem-card-wrap{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.4rem; 
  }
  .br-1120{
    display: block;
  }
}
/* 1000 */
@media screen and (max-width: 1000px){
  .br-1000{
    display: block;
  }
}
/* 900 */
@media screen and (max-width: 900px) {
  .br-900{
    display: block;
  }
  .br-900r{
    display: none;
  }
  .br-d{
    display: none;
  }
  .step-point{
    font-size: 1.7rem;
  }
}

/* 768 */
@media screen and (max-width: 768px) {

  h1{
    font-size: 4.8rem;
  }
  h2{
    font-size: 2.8rem;
  }
  h2 span{
    font-size: 1.8rem;
  }
  .hl-shoulder{
    font-size: 1.8rem;
  }
  .hero-dl-btn{
    width: 28rem;
    height: 6.4rem;
    font-size: 2rem;
  }
  .solution-items{
    flex-direction: column;
  }
  .solution-items img{
    width: 90%;
    margin: 0 auto;
  }
  .solution-body{
    width: 100%;
    margin-top: 2em;
  }
  .step-ttl{
    padding-top: 0.2rem;
    font-size: 2rem;
    height: 7.4rem;
    line-height: 1.3;
    display: flex;
    align-items: center;
    width: calc(100% - 5rem);
  }
  .step-num{
    font-size: 2.4rem;
    width: 5rem;
    height: 7.4rem;
    line-height: 1.3;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  step-num-ttl{
    height: 7.4rem;    
    font-size: 1.8rem;
  }
  .step{
    padding-top: 3rem;
  }
  .diagram-ttl-txt{
    font-size: 1.4rem;
    line-height: 1.4;
  }
  h5{
    font-size: 1.8rem;
  }
  .point-arrow{
    width: 8rem;
    height: 4rem;
    padding-right: 1rem;
    font-size: 1.4rem;
  }
  .step-points{
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
  .step-point{
    width: 100%;
    height: 3em;
  }
  .step-point br{
    display: none;
  }
  .br-768{
    display: block;
  }
}
/* 600 */
@media screen and (max-width: 600px) {
  .form-wrap .ss_btnArea input{
    width: 50vw;
  }
  .form-wrap{
    padding: 0 0 1.4rem 0;
  }
  .ss_form_title, .ss_enquete_title {
    font-size: 14px;
  }
  .normal-section{
    padding-top: 8vw;
    padding-bottom: 8vw;
  }
  .diagram-ttl{
    margin-bottom: 0.4em;
  }
  h2,.problem-headline, .solution-headline, .steps-headline, #download-section .section-ttl{
    margin-bottom: 6vw;
  }
  .br-600{
    display: block !important;
  }
  h2{
    font-size: 5vw;
  }
  .problem-items{
    padding-left: 3vw;
    padding-right: 3vw;
  }
  .problem-headline{
    font-size: 4.2vw;
  }
  .header-logo-wrapper{
    max-width: 60%;
    margin-right: 3%;
  }
  .header-dl-btn .material-symbols-outlined{
    font-size: 1.6rem;
  }
  #header .contact a{
    font-size: 1rem;
  }
  .header-btn-wrapper{
    max-width: 37%;
  }
  .header-dl-btn{
    margin-right: -0.2rem;
  }
  .logo{
    width: 100%;
  }
  .header-dl-btn{
    width: 12rem;
    height: 2rem;
    font-size: 1rem;
  }
  h1{
    font-size: 8vw;
  }
  .hero-target{
    font-size: 4vw;
  }
  .hero-ttl{
    text-align: center;
  }
  .hero-pre-title{
    font-size: 5vw;
  }
  .hero-section{
    height: auto;
  }
  .hero-point{
    font-size: 2.8vw;
    padding: 0.4em;
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 1;
    clip-path: polygon(0 0, 90% 0, 100% 19%, 100% 100%, 10% 100%, 0 81%);
    }
  .hero-dl-btn{
    margin-top:2.4rem;
  }
  p{
    font-size: 1.4rem;
  }
  .step{
    padding: 2.4rem 3rem;
  }
  .step-num-ttl{
    height: 7rem;
  }
  .step-point{
    height: 6rem;
    padding-top: 0.2rem;
  }
  .big-arrow{
    width: 12rem;
    height: 4rem;
  }
  .diagram-ttl-wrap{
    text-align: center;
    height: auto;
    padding: 1.8rem 1.6rem 1.4rem ;
  }
  .diagram-ttl{
    line-height: 1.2;
  }
  .company-profile{
    font-size: 1.4rem;
    width: 100%;
  }
  .company-profile th{
    width: 36%;
  }
  .table-wrapper{
    display: flex;
    flex-direction: column;
    gap: 0rem;
  }
  .cp-line{
    padding: 4rem 2rem;
  }
}
/* 480 */
@media screen and (max-width: 480px) {
  .three-steps-wrap{
    gap: 2rem;
  }
  .hl-shoulder{
    font-size: 4vw;
  }
  .hero-dl-btn{
    height: 5rem;
    width: 25rem;
    font-size: 1.6rem;
  }
  .pp-wrap, .privacy-policy{
    font-size: 1.4rem;
  }
  #download-section .contact a{
    font-size: 1.4rem;
  }
  .br-768-2{
    display: none;
  }
  .br-480{
    display: block !important;
  }
  .hero-container{
    padding-top: 6rem;
  }
  .prob-solver{
    font-size: 1.8rem;
  }
  h3{
    font-size: 2rem;
  }
  .step-point{
    font-size: 3.8vw;
  }
  h2{
    line-height: 1.4;
  }
  .diagram-ttl{
    font-size: 1.8rem;
  }
  h2{
    font-size: 5.3vw;
  }
  .problem-headline{
    font-size: 5vw;
  }
  .problem-label{
    font-size: 3.5vw;
  }
  .prob-solver{
    font-size: 4.5vw;
  }
  .step-ttl{
    font-size: 4.2vw;
  }
}
/* 390 */
@media screen and (max-width: 390px) {
  .diagram-ttl{
    font-size: 4.6vw;
  }
  .footer_menu img{
    width: 80vw;
    height: auto;
    aspect-ratio: 322 / 30;
  }
  body{ 
    padding-top: 5rem;
  }
  h5{
    font-size: 1.6rem;
  }
  .hero-pre-title{
    margin-bottom: 0.4rem;
  }
  .hero-container{
    padding-top: 4rem;
  }
  .problem-label{
    padding: 1.1rem 1rem 0.9rem;
  }
  .prob-caption {
    font-size: 1.2rem;
  }
  .step{
    padding: 3rem 2rem;
  }

  .diagram-ttl-txt{
    font-size: 1.2rem;
  }
  .br-390{
    display: block !important;
  }
}
/* 375 */
@media screen and (max-width:375px) {
  .header-btn-wrapper .material-symbols-outlined {
    display: none;
  }
  .step-num{
    font-size: 7vw;
  }
  .about-pii,.about-pii a, pp-wrap .contact a {
    font-size: 3.6vw;
  }
  .header-dl-btn{
    width: 10rem;
  }
  .footer_nav{
    padding-left:1rem;
    padding-right: 1rem;
  }
  .diagram-ttl-wrap{
    padding:1.4rem 1.4rem 1.2rem;
  }
}