@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Lexend:wght@100..900&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap");
@font-face {
  font-family: 'Futura';
  src: url("../fonts/Futura-Med.eot");
  src: url("../fonts/Futura-Med.eot") format("embedded-opentype"), url("../fonts/Futura-Med.ttf") format("truetype"), url("../fonts/Futura-Med.woff") format("woff"), url("../fonts/Futura-Med.svg") format("svg");
  font-weight: 500;
  font-display: swap; }
@font-face {
  font-family: 'Futura';
  src: url("../fonts/Futura-Bol.eot");
  src: url("../fonts/Futura-Bol.eot") format("embedded-opentype"), url("../fonts/Futura-Bol.ttf") format("truetype"), url("../fonts/Futura-Bol.woff") format("woff"), url("../fonts/Futura-Bol.svg") format("svg");
  font-weight: 700;
  font-display: swap; }
/*============================================================================
	cheader
=============================================================================*/
/*------------------------------------------------
	第一階層　ページヘッダー
------------------------------------------------*/
.mainPageTopArea {
  padding: min(150px,15.6255vw) 0 min(100px,10.416vw);
  position: relative; }
  .mainPageTopArea::after {
    content: '';
    width: 34.5833333333vw;
    height: 45.6944444444vw;
    display: block;
    position: absolute;
    top: 40%;
    left: 0;
    z-index: 0; }
    body.page_about .mainPageTopArea::after {
      background: url("../img/cheader/bg_blue.svg") no-repeat center right/contain; }
    body.page_business .mainPageTopArea::after {
      background: url("../img/cheader/bg_red.svg") no-repeat center right/contain; }
    body.page_sdgs .mainPageTopArea::after {
      background: url("../img/cheader/bg_green.svg") no-repeat center right/contain; }
  .mainPageTopArea .cheaderWrap {
    margin: auto;
    padding-left: calc((100vw - 1160px) / 2);
    width: 100%;
    display: -webkit-flex;
    display: -moz-flex;
    display: flex; }
    .mainPageTopArea .cheaderWrap .cheaderLeft {
      margin: auto 0;
      width: 40%;
      transform: translateY(-50%); }
      .mainPageTopArea .cheaderWrap .cheaderLeft h1 {
        font-size: clamp(25.6px, 6.666vw, 64px);
        font-weight: 700;
        letter-spacing: 0.07em;
        line-height: 1.6; }
    .mainPageTopArea .cheaderWrap .topImage {
      margin: 0 0 0 auto;
      width: 54.65%;
      position: relative; }
      .mainPageTopArea .cheaderWrap .topImage picture {
        width: 100%;
        display: block;
        position: relative;
        overflow: hidden; }
        .mainPageTopArea .cheaderWrap .topImage picture::before {
          content: '';
          padding-top: 83.23%;
          display: block; }
        .mainPageTopArea .cheaderWrap .topImage picture img, .mainPageTopArea .cheaderWrap .topImage picture source {
          width: 100%;
          height: 100%;
          object-fit: cover;
          object-position: center;
          position: absolute;
          top: 0;
          left: 0;
          z-index: 0; }
      .mainPageTopArea .cheaderWrap .topImage .subttl_en {
        margin: auto;
        position: absolute;
        top: 0;
        right: 10.4166666667vw; }
        .mainPageTopArea .cheaderWrap .topImage .subttl_en span {
          padding-top: 20px;
          font-family: "Futura", sans-serif;
          font-weight: 500;
          font-size: clamp(20px, 3.8vw, 25px);
          line-height: 1.56;
          letter-spacing: 0.18em;
          -webkit-writing-mode: vertical-rl;
          -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
          position: relative; }
          .mainPageTopArea .cheaderWrap .topImage .subttl_en span::before {
            content: '';
            margin: auto;
            width: 8px;
            height: 8px;
            border-radius: 50%;
            display: block;
            position: absolute;
            top: 0;
            left: 4px;
            right: 0;
            bottom: auto; }
        body.page_about .mainPageTopArea .cheaderWrap .topImage .subttl_en span {
          color: #4DBDC6; }
          body.page_about .mainPageTopArea .cheaderWrap .topImage .subttl_en span::before {
            background: #4DBDC6; }
        body.page_business .mainPageTopArea .cheaderWrap .topImage .subttl_en span {
          color: #D74D49; }
          body.page_business .mainPageTopArea .cheaderWrap .topImage .subttl_en span::before {
            background: #D74D49; }
        body.page_sdgs .mainPageTopArea .cheaderWrap .topImage .subttl_en span {
          color: #56AF96; }
          body.page_sdgs .mainPageTopArea .cheaderWrap .topImage .subttl_en span::before {
            background: #56AF96; }
    @media (max-width: 1180px) {
      .mainPageTopArea .cheaderWrap {
        padding-left: 5%; } }
    @media (max-width: 480px) {
      .mainPageTopArea .cheaderWrap {
        padding-top: 60px;
        display: block; }
        .mainPageTopArea .cheaderWrap .cheaderLeft {
          width: 100%; }
        .mainPageTopArea .cheaderWrap .topImage {
          width: 80%; }
          .mainPageTopArea .cheaderWrap .topImage .subttl_en {
            right: 5%; } }
  .mainPageTopArea .topSection {
    margin: min(50px,5.208vw) auto;
    width: 90%;
    max-width: 1020px;
    position: relative;
    z-index: 5; }
    .mainPageTopArea .topSection .ttlBox {
      width: 42%; }
      .mainPageTopArea .topSection .ttlBox h2 {
        font-size: clamp(14px, 5.625vw, 27px);
        font-weight: 700;
        letter-spacing: 0.15em;
        line-height: 1.9; }
      .mainPageTopArea .topSection .ttlBox .ttl_en {
        margin-top: 25px;
        font-family: "Futura", sans-serif;
        font-style: normal;
        font-size: clamp(14px, 5.001vw, 24px);
        font-weight: 500;
        line-height: 1.3;
        letter-spacing: 0.18em; }
        body.page_about .mainPageTopArea .topSection .ttlBox .ttl_en {
          color: #4DBDC6; }
        body.page_business .mainPageTopArea .topSection .ttlBox .ttl_en {
          color: #D74D49; }
        body.page_sdgs .mainPageTopArea .topSection .ttlBox .ttl_en {
          color: #56AF96; }
    .mainPageTopArea .topSection .descBox {
      margin: 0 0 0 auto;
      width: 57.35%; }
      .mainPageTopArea .topSection .descBox p {
        font-size: clamp(14px, 2vw, 18px);
        line-height: 3.3;
        letter-spacing: 0.06em; }
    @media (max-width: 1024px) {
      .mainPageTopArea .topSection .ttlBox {
        width: 42%; }
      .mainPageTopArea .topSection .descBox {
        width: 55%; }
        .mainPageTopArea .topSection .descBox p {
          line-height: 2.4; } }
    @media (max-width: 480px) {
      .mainPageTopArea .topSection .ttlBox {
        width: 100%; }
      .mainPageTopArea .topSection .descBox {
        margin-top: 20px;
        width: 100%; }
        .mainPageTopArea .topSection .descBox p {
          line-height: 2; } }

/*------------------------------------------------
	第二階層　ページヘッダー
------------------------------------------------*/
.subHeader {
  margin: auto;
  padding: min(195px,20.313vw) 0;
  width: 100%;
  overflow: hidden;
  position: relative; }
  .subHeader::before {
    content: '';
    padding-top: 32.5%;
    width: 86%;
    max-width: 1237px;
    height: auto;
    background: url("../img/cheader/bg_subheader.svg") no-repeat right top/contain;
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1; }
  .subHeader .headerInner {
    margin: auto;
    max-width: 1020px;
    width: 70.8%;
    position: relative;
    z-index: 50; }
  .subHeader .subcTtl {
    width: 100%;
    opacity: 0.32;
    mix-blend-mode: multiply;
    overflow: hidden;
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 5; }
    .subHeader .subcTtl p {
      color: #F7F3E4;
      font-size: clamp(89.2px, 23.229vw, 223px);
      font-family: "Futura", sans-serif;
      font-weight: 500;
      width: 360vw;
      white-space: nowrap;
      line-height: 1.1;
      letter-spacing: 0.09em;
      display: -webkit-flex;
      display: -moz-flex;
      display: flex; }
      .subHeader .subcTtl p span {
        width: calc(360vw / 3); }
      .subHeader .subcTtl p:nth-of-type(odd) {
        -webkit-animation: slidein 30s linear 0s infinite;
        animation: slidein 30s linear 0s infinite; }
      .subHeader .subcTtl p:nth-of-type(even) {
        -webkit-animation: slideout 30s linear 0s infinite;
        animation: slideout 30s linear 0s infinite; }
        .subHeader .subcTtl p:nth-of-type(even) span {
          text-align: end; }
      body#reform .subHeader .subcTtl p {
        width: 640vw; }
        body#reform .subHeader .subcTtl p span {
          width: calc(640vw / 3); }
      body#delivery .subHeader .subcTtl p, body#history .subHeader .subcTtl p {
        width: 540vw; }
        body#delivery .subHeader .subcTtl p span, body#history .subHeader .subcTtl p span {
          width: calc(540vw / 3); }
  @media (max-width: 1024px) {
    .subHeader .subcTtl {
      font-size: clamp(72px, 18.75vw, 180px); } }
  @media (max-width: 480px) {
    .subHeader .headerInner {
      width: 90%; } }

@keyframes slidein {
  0% {
    transform: translateX(0%); }
  100% {
    transform: translateX(-100%); } }
@keyframes slideout {
  0% {
    transform: translateX(-100%); }
  100% {
    transform: translateX(0%); } }
#privacyWrap {
  padding: min(80px,8.334vw) 0 min(150px,15.6255vw);
  counter-reset: number 0; }
  #privacyWrap p.lead {
    text-align: center;
    font-size: clamp(14px, 3.75vw, 18px);
    line-height: 1.78; }
  #privacyWrap .privacyInner {
    margin: auto;
    max-width: 950px;
    width: 90%; }
    #privacyWrap .privacyInner > p {
      font-size: clamp(14px, 3.75vw, 18px);
      line-height: 1.78;
      letter-spacing: 0.06em; }
      #privacyWrap .privacyInner > p + p {
        margin-top: 2em; }
    #privacyWrap .privacyInner section h2 {
      margin: 0 0 10px;
      font-size: clamp(14px, 3.75vw, 18px);
      font-weight: 700;
      letter-spacing: 0.02em;
      border-bottom: 2px dotted #EFE7C8;
      width: fit-content;
      padding-bottom: 5px; }
      #privacyWrap .privacyInner section h2::before {
        counter-increment: number 1;
        content: counter(number) ". "; }
    #privacyWrap .privacyInner section p {
      font-size: clamp(14px, 3.75vw, 18px); }
    #privacyWrap .privacyInner section ul {
      margin-top: 10px;
      font-size: clamp(14px, 3.75vw, 18px);
      padding-left: 1em; }
      #privacyWrap .privacyInner section ul li {
        padding-left: 1em;
        position: relative; }
        @media (max-width: 480px) {
          #privacyWrap .privacyInner section ul li {
            padding-left: 0.5em; } }
        #privacyWrap .privacyInner section ul li::before {
          content: '';
          width: 0.5em;
          height: 1px;
          background: #000000;
          display: block;
          position: absolute;
          top: 12px;
          left: -3px; }
        #privacyWrap .privacyInner section ul li + li {
          margin-top: 10px; }
    #privacyWrap .privacyInner section .detail {
      margin-top: 0.75em; }
      #privacyWrap .privacyInner section .detail .unit p a {
        word-break: break-all; }
      #privacyWrap .privacyInner section .detail .unit p + p {
        font-size: clamp(14px, 3.333vw, 16px); }
      #privacyWrap .privacyInner section .detail .unit ul {
        margin-top: 0; }
        #privacyWrap .privacyInner section .detail .unit ul li {
          font-size: clamp(14px, 3.333vw, 16px); }
          #privacyWrap .privacyInner section .detail .unit ul li::before {
            display: none; }
      #privacyWrap .privacyInner section .detail .unit + .unit {
        margin-top: 0.75em; }
    #privacyWrap .privacyInner section + section {
      margin-top: min(50px,5.208vw); }
    #privacyWrap .privacyInner section:first-of-type {
      margin-top: min(90px,9.375vw); }
    #privacyWrap .privacyInner section:last-of-type {
      margin-bottom: min(50px,5.208vw); }
    #privacyWrap .privacyInner .autherBox {
      margin: min(90px,9.375vw) 0 0 auto;
      text-align: right; }
      #privacyWrap .privacyInner .autherBox p {
        font-size: clamp(14px, 3.75vw, 18px);
        letter-spacing: 0.06em; }
        #privacyWrap .privacyInner .autherBox p + p {
          margin-top: 10px; }
        #privacyWrap .privacyInner .autherBox p.date {
          margin-top: 40px; }
