/* reset　
-------------------------------------------------------------- */

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}


/* base
-------------------------------------------------------------- */

html {
  font-size: 10px;
}

*,
*:before,
*:after {
  box-sizing: border-box;
}

body {
  position: relative;
  z-index: 0;
  font-family: "Noto Sans CJK JP", sans-serif;
  width: 100%;
  line-height: 1.8333333333;
  color: #000000;
  background-size: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}



@media screen and (max-width: 1280px) {
  html {
    font-size: 0.78125vw;
  }
}

@media screen and (max-width: 960px) {
  html {
    font-size: 10px;
  }
}

@media screen and (max-width: 661px) {
  html {
    font-size: 10px;
  }

  body {
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }
}


/* a
-------------------------------------------------------------- */

a {
  color: inherit;
  text-decoration: underline;
}

a:hover,
a:active {
  text-decoration: none;
}




/* img 
-------------------------------------------------------------- */

img {
  max-width: 100%;
  height: auto;
  border: 0;
}

/* =============================================================
home
============================================================= */
.company-branding {
  margin: auto;
  padding: 9.8em 60px 2em;
  text-align: center;
}

.company-logo {
  max-width: 28%;
}

.company-name {
  font-size: clamp(1.6rem, 1.8vw, 2.1rem);
  font-weight: 900;
}

section.waste-solution-section {
  padding: 60px 0 70px;
  max-width: 70vw;
  margin: 0 auto;
}

/* 見出し・リード */
.section-header {
  text-align: center;
  margin-bottom: 60px;
}

.section-title {
  font-size: clamp(2em, 3vw, 3em);
  font-weight: 900;
  margin-bottom: 12px;
}

.section-lead {
  font-size: clamp(1.4em, 1.8vw, 1.8em);
  line-height: 2.5rem;
  font-weight: 500;
}

/* 弊社の取り組み */
.company-efforts {
  margin-bottom: 60px;
}

.c-title {
  font-size: clamp(1.8em, 2.5vw, 2.6em);
  font-weight: 900;
  margin-bottom: 20px;
  display: flex;
}

.effort-title_Deco {
  width: 34px;
  height: 3px;
  background-color: #009606;
  margin-top: 21px;
  margin-right: 14px;
}

.company-efforts_text {
  font-size: clamp(1.4em, 1.8vw, 1.8em);
  line-height: 2.5rem;
  font-weight: 500;
}

.effort-list {
  list-style: none;
  padding-left: 0;
  margin-bottom: 16px;
  padding-top: 2.8em;
}

.effort-list li {
  font-size: clamp(1.4em, 1.8vw, 1.8em);
  font-weight: 600;
  margin-bottom: 0.2em;
}

.effort-list li:last-child {
  font-size: clamp(1.4em, 1.8vw, 1.8em);
  font-weight: 500;
}

.effort-list li::before {
  content: "●";
  color: #009606;
  margin-right: 8px;
}

.effort-list li:last-child::before {
  content: none;
}

/* お悩みブロック */
.problems-block {}

.problems-list {
  list-style: none;
  padding-left: 0;
  margin-bottom: 16px;
}

.problems-list li {
  font-size: clamp(1.4em, 1.8vw, 1.8em);
  font-weight: 600;
  display: flex;
  align-items: center;
  margin-bottom: 0.2em;
}

.problems-list p {
  font-size: clamp(1.4em, 1.8vw, 1.8em);
}

.problems-list li::before {
  content: "";
  background: url(../images/img_checkmark.svg) no-repeat center center / contain;
  width: 25px;
  height: 25px;
  margin-right: 12px;
  flex-shrink: 0;
}

.contact-section {
  background-color: #000;
  color: #fff;
  padding: 80px 60px 100px;
  text-align: center;
}

.contact-container h1 {
  font-size: clamp(2.2em, 3vw, 3.3em);
  font-weight: 900;
  margin-bottom: 20px;
}

.contact-container p {
  font-size: clamp(1.4em, 1.8vw, 1.8em);
  line-height: 2.5rem;
  font-weight: 500;
  margin-bottom: 40px;
}

.email-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  color: #000;
  max-width: 400px;
  border-radius: 39px;
  padding: 12px 25px 12px 60px;
  text-decoration: none;
  font-weight: bold;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

.email-button:hover {
  background-color: #e0e0e0;
  transform: translateY(-2px);
}

.email-label {
  font-size: clamp(1.6em, 1.8vw, 2em);
  line-height: 2.5rem;
  font-weight: 700;
  margin-right: 60px;
}

.arrow {
  position: relative;
  display: inline-block;
}

.arrow::before,
.arrow::after {
  content: "";
  position: absolute;
  top: calc(50% - 1.5px);
  right: 0;
  width: 18px;
  height: 3px;
  border-radius: 9999px;
  background-color: #000000;
  transform-origin: calc(100% - 1.5px) 50%;
}

.arrow::before {
  transform: rotate(45deg);
}

.arrow::after {
  transform: rotate(-45deg);
}

.u-d-block-md {
  display: none;
}


@media screen and (max-width: 960px) {
  .company-logo {
    max-width: 40%;
  }
}

@media screen and (max-width: 661px) {
  .company-branding {
    padding: 6.8em 30px 1em;
  }

  .company-logo {
    max-width: 80%;
  }

  section.waste-solution-section {
    padding-top: 30px;
    padding-bottom: 50px;
    max-width: 90vw;
  }

  .section-title {
    line-height: 1.5em;
  }

  .section-header {
    margin-bottom: 30px;
  }

  .c-title {
    margin-bottom: 12px;
  }

  .effort-list {
    padding-top: 2em;
  }

  .company-efforts {
    margin-bottom: 40px;
  }

  .contact-container h1 {
    margin-bottom: 12px;
  }

  .contact-section {
    padding: 50px 20px 70px;
  }

  .contact-container p {
    margin-bottom: 30px;
  }


  .email-label {
    line-height: 2rem;
    margin-right: 54px;
  }

  .arrow::before,
  .arrow::after {
    width: 16px;
  }

  .u-d-block-md {
    display: block;
  }
}





/* *{
  outline: 2px red solid;
} */

/* =============================================================
utility
============================================================= */



/* text-align
------------------------------------------------------------- */

.u-text-left {
  text-align: left;
}

.u-text-center {
  text-align: center;
}

.u-text-right {
  text-align: right;
}


/* color-green
------------------------------------------------------------- */

.color-green {
  color: #327C75;
}

.color-yellow {
  color: #FDF756;
}

.color-white {
  color: #FFF;
}

.color-orange {
  color: #FC6946;
}



/* border
------------------------------------------------------------- */
.border_green {
  border-bottom: 4px solid #327C75;
}

.border_yellow {
  border-bottom: 4px solid #FDF756;
}

/* font-weight
------------------------------------------------------------- */

.u-weight-normal {
  font-weight: normal;
}

.u-weight-bold {
  font-weight: bold;
}

.u-weight-600 {
  font-weight: 600;
}

.u-weight-700 {
  font-weight: 700;
}


/* margin
------------------------------------------------------------- */

.u-mt-05 {
  margin-top: 5px;
}

.u-mt-10 {
  margin-top: 10px;
}

.u-mt-15 {
  margin-top: 15px;
}

.u-mt-20 {
  margin-top: 20px;
}

.u-mt-25 {
  margin-top: 25px;
}

.u-mt-30 {
  margin-top: 30px;
}

.u-mt-35 {
  margin-top: 35px;
}

.u-mt-40 {
  margin-top: 40px;
}

.u-mt-45 {
  margin-top: 45px;
}

.u-mt-50 {
  margin-top: 50px;
}

.u-mb-0 {
  margin-bottom: 0;
}

.u-mb-05 {
  margin-bottom: 5px;
}

.u-mb-10 {
  margin-bottom: 10px;
}

.u-mb-15 {
  margin-bottom: 15px;
}

.u-mb-20 {
  margin-bottom: 20px;
}

.u-mb-25 {
  margin-bottom: 25px;
}

.u-mb-30 {
  margin-bottom: 30px;
}

.u-mb-35 {
  margin-bottom: 35px;
}

.u-mb-40 {
  margin-bottom: 40px;
}

.u-mb-45 {
  margin-bottom: 45px;
}

.u-mb-50 {
  margin-bottom: 50px;
}


/* padding
------------------------------------------------------------- */

.u-pt-05 {
  padding-top: 5px;
}

.u-pt-10 {
  padding-top: 10px;
}

.u-pt-15 {
  padding-top: 15px;
}

.u-pt-20 {
  padding-top: 20px;
}

.u-pt-25 {
  padding-top: 25px;
}

.u-pt-30 {
  padding-top: 30px;
}

.u-pt-35 {
  padding-top: 35px;
}

.u-pt-40 {
  padding-top: 40px;
}

.u-pt-45 {
  padding-top: 45px;
}

.u-pt-50 {
  padding-top: 50px;
}

.u-pb-05 {
  padding-bottom: 5px;
}

.u-pb-10 {
  padding-bottom: 10px;
}

.u-pb-15 {
  padding-bottom: 15px;
}

.u-pb-20 {
  padding-bottom: 20px;
}

.u-pb-25 {
  padding-bottom: 25px;
}

.u-pb-30 {
  padding-bottom: 30px;
}

.u-pb-35 {
  padding-bottom: 35px;
}

.u-pb-40 {
  padding-bottom: 40px;
}

.u-pb-45 {
  padding-bottom: 45px;
}

.u-pb-50 {
  padding-bottom: 50px;
}