@charset "UTF-8";
/*! destyle.css v3.0.0 | MIT License | https://github.com/nicolas-cusan/destyle.min.css */
*, ::before, ::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0; }

html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent; }

body {
  margin: 0; }

main {
  display: block; }

p, table, blockquote, address, pre, iframe, form, figure, dl {
  margin: 0; }

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
  margin: 0; }

ul, ol {
  margin: 0;
  padding: 0;
  list-style: none; }

dt {
  font-weight: 700; }

dd {
  margin-left: 0; }

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
  border-top-width: 1px;
  margin: 0;
  clear: both;
  color: inherit; }

pre {
  font-family: monospace,monospace;
  font-size: inherit; }

address {
  font-style: inherit; }

a {
  background-color: transparent;
  text-decoration: none;
  color: inherit; }

abbr[title] {
  text-decoration: underline dotted; }

b, strong {
  font-weight: bolder; }

code, kbd, samp {
  font-family: monospace,monospace;
  font-size: inherit; }

small {
  font-size: 80%; }

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -.25em; }

sup {
  top: -.5em; }

svg, img, embed, object, iframe {
  vertical-align: bottom; }

button, input, optgroup, select, textarea {
  -webkit-appearance: none;
  appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
  text-align: inherit;
  text-transform: inherit; }

[type="checkbox"] {
  -webkit-appearance: checkbox;
  appearance: checkbox; }

[type="radio"] {
  -webkit-appearance: radio;
  appearance: radio; }

button, [type="button"], [type="reset"], [type="submit"] {
  cursor: pointer; }

button:disabled, [type="button"]:disabled, [type="reset"]:disabled, [type="submit"]:disabled {
  cursor: default; }

:-moz-focusring {
  outline: auto; }

select:disabled {
  opacity: inherit; }

option {
  padding: 0; }

fieldset {
  margin: 0;
  padding: 0;
  min-width: 0; }

legend {
  padding: 0; }

progress {
  vertical-align: baseline; }

textarea {
  overflow: auto; }

[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button {
  height: auto; }

[type="search"] {
  outline-offset: -2px; }

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit; }

label[for] {
  cursor: pointer; }

details {
  display: block; }

summary {
  display: list-item; }

[contenteditable]:focus {
  outline: auto; }

table {
  border-color: inherit; }

caption {
  text-align: left; }

td, th {
  vertical-align: top;
  padding: 0; }

th {
  text-align: left;
  font-weight: 700; }

:root {
  --color-gr: #49cc91;
  --color-pl: #8686db;
  --color-aq: #4bd9f2;
  --text: #222;
  --text-br: #6e3f21;
  --text-gr: #2eb377;
  --text-aq: #12bfdd; }

@media screen and (max-width: 767px), print {
  html {
    height: -webkit-fill-available; }

  body {
    min-height: 100vh;
    min-height: -webkit-fill-available; } }
html {
  font-size: calc(100vw * 10 / 375);
  scroll-behavior: smooth;
  scroll-padding-top: 1rem; }
  @media screen and (min-width: 768px), print {
    html {
      font-size: 62.5%; } }

body {
  color: var(--text);
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 1.4rem;
  line-height: 1.7; }
  @media screen and (min-width: 768px), print {
    body {
      font-size: 1.8rem; } }

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

a {
  transition: opacity .2s;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  cursor: pointer; }

@media screen and (min-width: 768px), print {
  a:hover {
    opacity: .85; } }
img {
  max-width: 100%;
  height: auto; }

@font-face {
  font-family: 'rounded-x-mplus-2c-heavy';
  src: url("../fonts/rounded-x-mplus-2c-heavy.eot");
  src: url("../fonts/rounded-x-mplus-2c-heavy.eot?#iefix") format("embedded-opentype"), url("../fonts/rounded-x-mplus-2c-heavy.woff") format("woff"), url("../fonts/rounded-x-mplus-2c-heavy.ttf") format("truetype"); }
.font-2cHeavy-top {
  font-family: 'rounded-x-mplus-2c-heavy';
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.font-sansSerif {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif; }

.font-2cHeavy {
  font-family: 'M PLUS Rounded 1c', sans-serif; }

.l-wrapper {
  position: relative;
  background-color: var(--color-gr);
  padding-bottom: 0; }
  @media screen and (min-width: 768px), print {
    .l-wrapper {
      padding-bottom: 0; } }

.section {
  margin-bottom: 3rem; }
  @media screen and (min-width: 768px), print {
    .section {
      margin-bottom: 6rem; } }

.section_inner {
  position: relative;
  width: 100%;
  padding: 0 1rem; }
  @media screen and (min-width: 768px), print {
    .section_inner {
      width: 950px;
      padding: 0;
      margin: auto; } }

.mb00 {
  margin-bottom: 0 !important; }

.mb30 {
  margin-bottom: 1.5rem !important; }

.mb60 {
  margin-bottom: 3rem !important; }

@media screen and (min-width: 768px), print {
  .mb30 {
    margin-bottom: 30px !important; }

  .mb60 {
    margin-bottom: 60px !important; } }
.bold {
  font-weight: bold !important; }

.center {
  text-align: center !important; }

.left {
  text-align: left !important; }

.right {
  text-align: right !important; }

.list_item {
  text-indent: -1em;
  padding-left: 1em; }

@media screen and (min-width: 768px), print {
  .spOnly {
    display: none !important; } }

.pcOnly {
  display: none !important; }
  @media screen and (min-width: 768px), print {
    .pcOnly {
      display: block !important; } }

.red {
  color: #ff0000 !important; }

.title-top {
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 2.8rem;
  line-height: 1.1;
  text-align: center;
  padding: 0 0 3rem; }
  .title-top .font-s {
    font-size: 2.1rem;
    letter-spacing: -.02em; }
  .title-top .font-ss {
    font-size: 1.8rem; }
  @media screen and (min-width: 768px), print {
    .title-top {
      font-size: 5.6rem;
      padding: 0 0 5rem; }
      .title-top .font-s {
        font-size: 3.6rem; }
      .title-top .font-ss {
        font-size: 3.2rem; } }

.howto {
  background-color: #fff;
  border-radius: 1rem;
  padding: 2rem 2rem 1.8rem; }
  @media screen and (min-width: 768px), print {
    .howto {
      border-radius: 2rem;
      padding: 3rem 6rem; } }

.howto_title {
  color: var(--text-gr);
  font-size: 2.4rem;
  line-height: 1;
  text-align: center;
  margin-bottom: 1.4rem; }
  @media screen and (min-width: 768px), print {
    .howto_title {
      font-size: 3.2rem;
      margin-bottom: 2rem; } }

.howto_list {
  padding-left: 1em;
  text-indent: -1em;
  color: var(--text-br);
  font-weight: bold;
  line-height: 1.5; }

.howto_list_item {
  margin-bottom: 1rem; }

.note {
  padding-left: 1em;
  text-indent: -1em;
  font-size: 1.2rem;
  font-weight: normal;
  line-height: 1.6;
  margin-top: 1.6rem; }
  @media screen and (min-width: 768px), print {
    .note {
      margin-top: 2rem; } }

.note li {
  margin-top: .5rem; }

.note span {
  padding-right: .3em; }

.local_title {
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 2.6rem;
  text-align: center;
  margin-bottom: 1.2rem; }
  @media screen and (min-width: 768px), print {
    .local_title {
      font-size: 4rem;
      margin-bottom: 3rem; } }

.section.local {
  margin-bottom: 0; }

.area_list {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 3rem;
  margin: 0 2rem 2rem; }
  @media screen and (min-width: 768px), print {
    .area_list {
      gap: 1rem;
      margin: 0 0 3rem; } }

.area_list_item {
  width: calc(calc(100% - 3rem) / 2);
  border: 2px solid #fff;
  border-radius: 1.8rem;
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.8rem;
  text-align: center;
  transition: background-color .2s; }
  @media screen and (min-width: 768px), print {
    .area_list_item {
      font-size: 1.6rem;
      width: calc(calc(100% - 6rem) / 7);
      padding: .2rem 0;
      transition: background-color .2s; }
      .area_list_item:hover {
        background-color: rgba(134, 134, 219, 0.85); } }

.area_list_item.is-active {
  background-color: var(--color-pl); }

.local_list {
  display: flex;
  flex-wrap: wrap;
  gap: 1.4rem; }
  @media screen and (min-width: 768px), print {
    .local_list {
      gap: 2.5rem; } }

.local_list_item {
  background-color: var(--color-aq);
  border-radius: 1rem;
  border: .2rem solid #fff;
  text-align: center;
  width: calc(calc(100% - 1.4rem) / 2);
  padding-bottom: .6rem;
  overflow: hidden; }
  @media screen and (min-width: 768px), print {
    .local_list_item {
      border-radius: 2rem;
      border: .4rem solid #fff;
      width: calc(calc(100% - 5rem) / 3);
      padding-bottom: 1rem; } }

.local_list_item .img_box {
  background: url(/sustainability/jimotoouen_cp/vote/assets/images/deco-dot-wh.svg);
  background-size: .6rem .4rem;
  background-position-y: bottom;
  background-repeat: repeat-x;
  padding: .6rem 0;
  margin-bottom: .8rem; }
  @media screen and (min-width: 768px), print {
    .local_list_item .img_box {
      background-size: .8rem .5rem;
      margin-bottom: 1.2rem; } }

.local_list_item .local_name {
  background-color: #fff;
  color: var(--text-gr);
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.7rem;
  padding-bottom: .2rem; }
  @media screen and (min-width: 768px), print {
    .local_list_item .local_name {
      font-size: 2.6rem; } }

.local_list_item .local_kyorochan_name {
  color: var(--text-br);
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.2rem;
  letter-spacing: -.04em;
  line-height: 1.2;
  padding: 0 .4rem;
  margin-bottom: .8rem; }
  @media screen and (min-width: 768px), print {
    .local_list_item .local_kyorochan_name {
      font-size: 1.8rem;
      margin-bottom: 1rem; } }

/* ボタン */
.btn-vote {
  display: inline-block;
  background-color: #fff;
  background: #fff url(/sustainability/jimotoouen_cp/vote/assets/images/icon-arrow-aq.png) no-repeat;
  background-size: 1.6rem;
  background-position: right 1rem center;
  border-radius: .5rem;
  color: var(--text-aq);
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.8rem;
  width: 14rem;
  padding: .3rem 0;
  margin-bottom: .3rem; }
  @media screen and (min-width: 768px), print {
    .btn-vote {
      background-size: 1.8rem;
      background-position: right 2rem center;
      font-size: 2rem;
      width: 18rem;
      padding: .6rem 0;
      margin-bottom: .6rem;
      transition: background-color .2s; }
      .btn-vote:hover {
        background-color: rgba(255, 255, 255, 0.85); } }

.is-animate {
  opacity: 1;
  animation: .6s zoomIn; }

@keyframes zoomIn {
  0% {
    opacity: 0.3;
    transform: scale(0.8); }
  100% {
    opacity: 1;
    transform: none; } }
/* モーダル全体(背景＋本体) */
.modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100%; }

/* モーダル背景 */
.modal-bg {
  position: absolute;
  height: 100vh;
  width: 100%;
  background: rgba(0, 0, 0, 0.8); }

/* モーダル本体 */
.modal-cont {
  position: absolute;
  top: -10svh;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background-color: var(--color-gr);
  border-radius: 2rem;
  text-align: center;
  width: calc(100% - 4rem);
  height: fit-content;
  max-height: 51rem;
  padding: 1rem 2rem;
  overflow: scroll; }
  @media screen and (min-width: 768px), print {
    .modal-cont {
      width: 38rem;
      height: 100svh;
      max-height: 55rem;
      overflow: auto; } }

/* モーダルウィンドウ表示中に記事本体を固定 */
body.fixed {
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0; }

.modal-cont_title {
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 2.2rem;
  letter-spacing: -.04em;
  margin-bottom: .5rem; }
  @media screen and (min-width: 768px), print {
    .modal-cont_title {
      font-size: 2.6rem; } }

.modal-cont .local_cont {
  background-color: #fff;
  border-radius: 2rem;
  padding: 0 1.6rem 2rem;
  margin-bottom: 1.5rem; }

.modal-cont .local_name {
  color: var(--text-gr);
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 2.2rem;
  letter-spacing: .16em; }

.modal-cont .img_box {
  position: relative;
  overflow: hidden;
  background-color: var(--color-aq); }

.modal-cont .img_box img {
  position: relative; }

.modal-cont .img_box .bg-shine {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  margin: auto;
  width: 100%;
  animation: fadeIn 0.2s cubic-bezier(0.33, 0.17, 0.85, 0.59) 0.34s 1 forwards;
  opacity: 0; }

@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
.modal-cont .local_kyorochan_name {
  color: var(--text-br);
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.5rem;
  letter-spacing: -.08em;
  line-height: 1.3;
  margin-bottom: 1.5rem; }
  @media screen and (min-width: 768px), print {
    .modal-cont .local_kyorochan_name {
      font-size: 1.6rem; } }

.modal-cont .text {
  color: var(--text-br);
  font-size: 1rem;
  font-weight: normal;
  text-align: left;
  text-indent: -.7em;
  padding-left: .7em;
  margin-bottom: 1.5rem; }

/* ボタン */
.btn-or {
  display: inline-block;
  background: #ffa801 url(/sustainability/jimotoouen_cp/vote/assets/images/icon-arrow-wh.png) no-repeat;
  background-size: 2.4rem;
  background-position: right 1.2rem center;
  border: 3px solid #fff;
  border-radius: .7rem;
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 2rem;
  letter-spacing: .16em;
  width: 100%;
  padding: .2rem 0;
  margin-bottom: 1.4rem; }

.btn-pk {
  display: inline-block;
  background: #ff5983 url(/sustainability/jimotoouen_cp/vote/assets/images/icon-arrow-wh.png) no-repeat;
  background-size: 2.4rem;
  background-position: right 1.2rem center;
  border: 3px solid #fff;
  border-radius: .7rem;
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 2rem;
  width: 100%;
  padding: .2rem 0;
  margin-bottom: 1.4rem; }

.btn-close {
  display: inline-block;
  background: #49cc91 url(/sustainability/jimotoouen_cp/vote/assets/images/icon-close.png) no-repeat;
  background-size: 2.4rem;
  background-position: right 1.2rem center;
  border: 3px solid #fff;
  border-radius: .7rem;
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 2rem;
  letter-spacing: .16em;
  width: 100%;
  padding: .2rem 0;
  margin-bottom: 1.4rem; }

.footer-nav {
  background: url(/sustainability/jimotoouen_cp/vote/assets/images/deco-dot-wh.svg);
  background-size: .6rem .4rem;
  background-position-y: top;
  background-repeat: repeat-x;
  text-align: center;
  padding: 2.6rem 0; }
  @media screen and (min-width: 768px), print {
    .footer-nav {
      background-size: .8rem .5rem;
      padding: 4.5rem 0; } }

/* ボタン */
.btn-pl {
  display: inline-block;
  background: #8686db url(/sustainability/jimotoouen_cp/vote/assets/images/icon-arrow-wh.png) no-repeat;
  background-size: 2.2rem;
  background-position: right 1.2rem center;
  border: 2px solid #fff;
  border-radius: 1rem;
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 2.1rem;
  letter-spacing: .16em;
  width: 100%;
  padding: .6rem 0;
  margin-bottom: 1rem; }
  @media screen and (min-width: 768px), print {
    .btn-pl {
      background-size: 3.2rem;
      background-position: right 2.4rem center;
      border: 4px solid #fff;
      border-radius: 2rem;
      font-size: 4.2rem;
      width: 68.8rem;
      margin-bottom: 2.4rem; } }

.btn-yl {
  display: inline-block;
  background: #fdc525 url(/sustainability/jimotoouen_cp/vote/assets/images/icon-arrow-wh.png) no-repeat;
  background-size: 2.2rem;
  background-position: right 1.2rem center;
  border: 2px solid #fff;
  border-radius: 1rem;
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 2.1rem;
  letter-spacing: -.08em;
  width: 100%;
  padding: .6rem 0; }
  @media screen and (min-width: 768px), print {
    .btn-yl {
      background-size: 3.2rem;
      background-position: right 2.4rem center;
      border: 4px solid #fff;
      border-radius: 2rem;
      font-size: 4.2rem;
      width: 68.8rem; } }

.bnr {
  margin-top: 3rem;
}
@media screen and (min-width: 768px), print {
  .bnr {
    margin-top: 6rem;
  }
}
