@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&family=Zen+Old+Mincho:wght@500;700;900&display=swap");
/*---------------------------------------------------------
カラー 設定
---------------------------------------------------------*/
/*
その他カラー 設定
---------------------------------------------------------*/
/*---------------------------------------------------------
フォントサイズ・line-height 設定
---------------------------------------------------------*/
/*
XD用 line-height調整
---------------------------------------------------------*/
/*---------------------------------------------------------
ブレークポイント・マックスサイズ 設定
---------------------------------------------------------*/
/*769px 以上*/
/*768px 以下*/
/*---------------------------------------------------------
ブレークポイント・マックスサイズ 設定
---------------------------------------------------------*/
:root {
  accent-color: #20469B; }

/*---------------------------------------------------------
Reset box-model and set borders
---------------------------------------------------------*/
*,
::before,
::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0; }

/*---------------------------------------------------------
Document
---------------------------------------------------------*/
/*1. Correct the line height in all browsers.*/
/*2. Prevent adjustments of font size after orientation changes in iOS.*/
/*3. Remove gray overlay on links for iOS.*/
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -webkit-tap-highlight-color: transparent;
  /* 3*/ }

/*---------------------------------------------------------
Sections
---------------------------------------------------------*/
/*Remove the margin in all browsers.*/
body {
  margin: 0; }

/*Render the `main` element consistently in IE.*/
main {
  display: block; }

/*---------------------------------------------------------
Vertical rhythm
---------------------------------------------------------*/
p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
  margin: 0; }

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

/*---------------------------------------------------------
Lists (enumeration)
---------------------------------------------------------*/
ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none; }

/*---------------------------------------------------------
Lists (definition)
---------------------------------------------------------*/
dt {
  font-weight: bold; }

dd {
  margin-left: 0; }

/*---------------------------------------------------------
Grouping content
---------------------------------------------------------*/
/*1. Add the correct box sizing in Firefox.*/
/*2. Show the overflow in Edge and IE.*/
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
  border-top-width: 1px;
  margin: 0;
  clear: both;
  color: inherit; }

/*1. Correct the inheritance and scaling of font size in all browsers.*/
/*2. Correct the odd `em` font sizing in all browsers.*/
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: inherit;
  /* 2 */ }

address {
  font-style: inherit; }

/*---------------------------------------------------------
Text-level semantics
---------------------------------------------------------*/
/*Remove the gray background on active links in IE 10.*/
a {
  background-color: transparent;
  text-decoration: none;
  color: inherit; }

/*1. Remove the bottom border in Chrome 57-/*
/*2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.*/
abbr[title] {
  text-decoration: underline dotted;
  /* 2 */ }

/*Add the correct font weight in Chrome, Edge, and Safari.*/
b,
strong {
  font-weight: bolder; }

/*1. Correct the inheritance and scaling of font size in all browsers.*/
/*2. Correct the odd `em` font sizing in all browsers.*/
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: inherit;
  /* 2 */ }

/*Add the correct font size in all browsers.*/
small {
  font-size: 80%; }

/*Prevent `sub` and `sup` elements from affecting the line height in*/
/*all browsers.*/
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

/*---------------------------------------------------------
Replaced content
---------------------------------------------------------*/
/*Prevent vertical alignment issues.*/
svg,
img,
embed,
object,
iframe {
  vertical-align: bottom; }

/*---------------------------------------------------------
Forms
---------------------------------------------------------*/
/*Reset form fields to make them styleable.*/
/*1. Make form elements stylable across systems iOS especially.*/
/*2. Inherit text-transform from parent.*/
button,
input,
optgroup,
select,
textarea {
  -webkit-appearance: none;
  /* 1 */
  appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
  text-align: inherit;
  text-transform: inherit;
  /* 2 */ }

/*Reset radio and checkbox appearance to preserve their look in iOS.*/
[type="checkbox"] {
  -webkit-appearance: checkbox;
  appearance: checkbox; }

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

/*Correct cursors for clickable elements.*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
  cursor: pointer; }

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

/*Improve outlines for Firefox and unify style with input elements & buttons.*/
:-moz-focusring {
  outline: auto; }

select:disabled {
  opacity: inherit; }

/*Remove padding*/
option {
  padding: 0; }

/*Reset to invisible*/
fieldset {
  margin: 0;
  padding: 0;
  min-width: 0; }

legend {
  padding: 0; }

/*Add the correct vertical alignment in Chrome, Firefox, and Opera.*/
progress {
  vertical-align: baseline; }

/*Remove the default vertical scrollbar in IE 10+.*/
textarea {
  overflow: auto; }

/*Correct the cursor style of increment and decrement buttons in Chrome.*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/*1. Correct the outline style in Safari.*/
[type="search"] {
  outline-offset: -2px;
  /* 1 */ }

/*Remove the inner padding in Chrome and Safari on macOS.*/
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/*1. Correct the inability to style clickable types in iOS and Safari.*/
/*2. Fix font inheritance.*/
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */ }

/*Clickable labels*/
label[for] {
  cursor: pointer; }

/*---------------------------------------------------------
Interactive
---------------------------------------------------------*/
/*Add the correct display in Edge, IE 10+, and Firefox. */
details {
  display: block; }

/*Add the correct display in all browsers.*/
summary {
  display: list-item; }

/*Remove outline for editable content.*/
[contenteditable]:focus {
  outline: auto; }

/*---------------------------------------------------------
Tables
---------------------------------------------------------*/
/*1. Correct table border color inheritance in all Chrome and Safari.*/
table {
  border-color: inherit;
  /* 1 */ }

caption {
  text-align: left; }

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

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

/*---------------------------------------------------------
html & body & main
---------------------------------------------------------*/
html {
  height: 100%; }

body {
  /*文字詰め*/
  font-feature-settings: "palt";
  /*スマホの文字サイズ自動変更無効*/
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  text-rendering: optimizeSpeed;
  /*フォントセット*/
  font-family: 'Noto Sans JP', sans-serif;
  color: #333333;
  line-height: 1.8125;
  font-size: 1rem;
  background-image: url("../images/main_bg.png");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  height: 100%;
  background-attachment: fixed; }
  body img {
    width: 100%; }

/*リンク・ボタン設定
 --------------------------------------------------*/
a {
  color: #0078ff;
  text-decoration: underline;
  /*非アクティブリンク*/
  /*電話*/ }
  @media print, screen and (min-width: 768px) {
    a {
      transition: all .3s ease-out; } }
  a.disabled {
    opacity: .5;
    pointer-events: none;
    text-decoration: none; }
  a[href^="tel:"] {
    color: #333333; }
    @media print, screen and (min-width: 768px) {
      a[href^="tel:"] {
        pointer-events: none;
        text-decoration: none; } }
  a:hover {
    opacity: .5; }
    @media print, screen and (max-width: 768px) {
      a:hover {
        opacity: 1; } }

button:hover {
  opacity: .5; }
  @media print, screen and (min-width: 768px) {
    button:hover {
      transition: all .3s ease-out; } }
  @media print, screen and (max-width: 768px) {
    button:hover {
      opacity: 1; } }

/*---------------------------------------------------------
#content
---------------------------------------------------------*/
#content {
  /*height: 100%;*/
  position: relative;
  display: block;
  align-items: center; }
  #content .contentMaxInner {
    .padding: 2% 0 0 0; }

/*---------------------------------------------------------
コンテンツエリア 共通
---------------------------------------------------------*/
.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2%; }

h1 {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 466px;
  width: 50%; }

/*トップへ戻るボタン*/
.retern_btn {
  display: block;
  margin-right: 10px;
  position: absolute;
  right: 0;
  top: 0; }
  .retern_btn a {
    display: block;
    width: 85px;
    background-color: #B6292D;
    border-radius: 3px;
    -moz-border-radius: 3px;
    -webkit-border-radius: 3px;
    -khtml-border-radius: 3px;
    box-shadow: 10px 14px 14px -11px rgba(0, 0, 0, 0.6); }

/*画面遷移コントロールボタン */
.btn_area {
  display: flex;
  justify-content: center;
  width: 307px;
  margin-left: auto;
  margin-right: auto; }
  .btn_area .btn {
    display: block;
    border-radius: 3px;
    -moz-border-radius: 3px;
    -webkit-border-radius: 3px;
    -khtml-border-radius: 3px;
    box-shadow: 10px 14px 14px -11px rgba(0, 0, 0, 0.6);
    width: 137px;
    text-align: center;
    color: #fff;
    font-family: 'Roboto', sans-serif;
    font-size: min(4vw, 28px);
    line-height: 50px;
    text-decoration: none; }
    @media print, screen and (min-width: 768px) {
      .btn_area .btn:hover {
        opacity: 0.5; } }
    .btn_area .btn.negative {
      background-color: #393939; }
    .btn_area .btn.affirmative {
      background-color: #B6292D; }

/**/
.c-box {
  background-color: #fff;
  margin-left: auto;
  margin-right: auto;
  width: 80%;
  border-radius: 13px;
  -moz-border-radius: 13px;
  -webkit-border-radius: 13px;
  -khtml-border-radius: 13px;
  margin-bottom: 3%;
  padding: 4%;
  overflow: hidden; }

/*
ログイン
---------------------------------------------------------*/
.login {
  display: flex !important;
  font-family: 'Roboto', sans-serif;
  padding-top: 5%; }
  .login p {
    font-family: 'Roboto', sans-serif;
    font-weight: bold;
    font-size: min(3vw, 25px);
    line-height: 1.8;
    text-align: left;
    margin-bottom: 25px; }
  .login dl dt {
    text-align: center;
    color: #fff;
    background-color: #B6292D;
    line-height: 13px;
    font-size: 13px;
    font-weight: normal;
    border-radius: 18px;
    -moz-border-radius: 18px;
    -webkit-border-radius: 18px;
    -khtml-border-radius: 18px;
    display: inline-block;
    padding: 3px 20px;
    margin-bottom: 5px; }
  .login dl#id {
    margin-bottom: 50px; }
  .login dl#password {
    margin-bottom: 70px; }

/*
名前入力画面
---------------------------------------------------------*/
.name_input {
  font-family: 'Roboto', sans-serif;
  padding-top: 5%;
  padding-bottom: 15%; }
  .name_input p {
    font-family: 'Roboto', sans-serif;
    font-weight: bold;
    font-size: min(3vw, 25px);
    line-height: 1.8;
    text-align: left;
    margin-bottom: 25px; }
  .name_input dl {
    max-width: 400px;
    margin-left: auto;
    margin-right: auto; }
    .name_input dl dt {
      text-align: center;
      color: #fff;
      background-color: #B6292D;
      line-height: 13px;
      font-size: 13px;
      font-weight: normal;
      border-radius: 18px;
      -moz-border-radius: 18px;
      -webkit-border-radius: 18px;
      -khtml-border-radius: 18px;
      display: inline-block;
      padding: 3px 20px;
      margin-bottom: 5px; }
    .name_input dl dd .btn_area {
      justify-content: space-between;
      width: 100%; }
      .name_input dl dd .btn_area .btn {
        max-width: 111px;
        height: 40px;
        font-size: min(3vw, 23px);
        line-height: 40px;
        background-color: #C3C3C3; }
        .name_input dl dd .btn_area .btn.js_active {
          background-color: #29C32E; }
    .name_input dl#gender {
      margin-bottom: 30px; }
    .name_input dl#your_name {
      margin-bottom: 70px; }
      .name_input dl#your_name input {
        border: none;
        border-bottom: 1px solid #B6292D;
        border-radius: 0;
        -moz-border-radius: 0;
        -webkit-border-radius: 0;
        -khtml-border-radius: 0;
        font-size: min(3vw, 25px);
        background-image: url("../images/icon_awesome-pen.svg");
        background-size: 21px auto;
        background-position: center right 10px;
        background-repeat: no-repeat; }

/*
結果ページ
---------------------------------------------------------*/
@media screen and (min-width: 1025px) {
  .result .result_inner_wrap .fortune_telling ul li.on {
    position: fixed;
    top: 0;
    width: 368px !important; } }
.result {
  padding-top: 5%;
  padding-bottom: 5%; }
  .result h1.small {
    max-width: 265px;
    margin-left: 5%;
    margin-bottom: 0; }
  .result .result_inner_wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 4%; }
    .result .result_inner_wrap .fortune_telling_read {
      width: 100%;
      padding: 2% 3%;
      margin-bottom: 2%; }
    .result .result_inner_wrap p {
      font-family: 'Roboto', sans-serif;
      font-weight: bold;
      font-size: min(2vw, 20px);
      line-height: 1.5; }
    .result .result_inner_wrap .select_character {
      width: 60% !important;
      display: flex; }
      .result .result_inner_wrap .select_character .c-box {
        padding: 0 !important;
        display: flex;
        flex-wrap: wrap; }
        .result .result_inner_wrap .select_character .c-box .name-box {
          width: 100%;
          padding: 10px;
          line-height: 0; }
          .result .result_inner_wrap .select_character .c-box .name-box .title-box {
            display: inline-block;
            background-color: #B6292D;
            border-radius: 18px;
            -moz-border-radius: 18px;
            -webkit-border-radius: 18px;
            -khtml-border-radius: 18px;
            color: #fff;
            text-align: center;
            line-height: 1;
            padding: 5px 15px;
            font-size: min(2vw, 13px);
            margin-bottom: 5px; }
          .result .result_inner_wrap .select_character .c-box .name-box .input_name-box {
            display: block;
            text-align: center;
            line-height: 1;
            padding: 5px 15px;
            font-size: min(3vw, 25px);
            border-bottom: 1px solid #B6292D; }
        .result .result_inner_wrap .select_character .c-box .chinese_characters {
          width: 45%;
          font-size: min(10vw, 92px);
          height: 100%;
          padding-top: 2.5%;
          background-color: #FF8C71; }
          .result .result_inner_wrap .select_character .c-box .chinese_characters li {
            text-align: center;
            font-family: ‘Zen Old Mincho’, serif;
            font-weight: 900;
            background-color: #FF8C71;
            line-height: 1.7;
            position: relative; }
            .result .result_inner_wrap .select_character .c-box .chinese_characters li .pull_down {
              position: absolute;
              width: 100%;
              right: -111%;
              bottom: 27%; }
              .result .result_inner_wrap .select_character .c-box .chinese_characters li .pull_down .text {
                font-family: 'Roboto', sans-serif;
                font-size: min(3vw, 27px);
                font-weight: 400;
                line-height: 1;
                display: block;
                margin-bottom: 4%; }
        .result .result_inner_wrap .select_character .c-box .select_area {
          width: 55%;
          padding: 2% 5%; }
          .result .result_inner_wrap .select_character .c-box .select_area p {
            margin-bottom: 25%; }
    .result .result_inner_wrap .fortune_telling {
      width: 40% !important; }
      .result .result_inner_wrap .fortune_telling ul li {
        display: none; }
        .result .result_inner_wrap .fortune_telling ul li.on {
          position: fixed;
          top: 0;
          width: 36%; }
        .result .result_inner_wrap .fortune_telling ul li img {
          max-width: 674px;
          width: 70%; }
        .result .result_inner_wrap .fortune_telling ul li.js_active {
          display: flex !important;
          justify-content: center; }
    .result .result_inner_wrap .c-box {
      width: 100%; }
  .result .btn_area {
    justify-content: center; }

/*
画像選択
---------------------------------------------------------*/
.choose_sticker {
  padding-top: 5%;
  padding-bottom: 10%; }
  .choose_sticker h1.small {
    max-width: 265px;
    margin-left: 5%;
    margin-bottom: 0; }
  .choose_sticker .text_area {
    padding: 20px 0;
    margin-bottom: 0; }
    .choose_sticker .text_area p {
      font-family: 'Roboto', sans-serif;
      font-weight: bold;
      font-size: min(2.5vw, 25px);
      line-height: 1;
      text-align: center;
      margin-bottom: 0; }
  .choose_sticker .choose_area {
    display: flex;
    justify-content: space-between;
    margin-left: auto;
    margin-right: auto;
    width: 80%;
    margin-bottom: 50px; }
    .choose_sticker .choose_area li {
      width: 15%; }
      .choose_sticker .choose_area li .check-box {
        cursor: pointer;
        /* チェックボックスイメージ */ }
        .choose_sticker .choose_area li .check-box .title {
          font-family: 'Roboto', sans-serif;
          font-weight: bold;
          font-size: min(1.5vw, 15px);
          line-height: 1.3;
          margin-bottom: 0;
          display: flex;
          align-items: flex-end;
          justify-content: center;
          text-align: center;
          height: 4em;
          margin-bottom: 15px; }
        .choose_sticker .choose_area li .check-box .checkbox_img {
          align-items: center;
          display: flex;
          justify-content: center; }
        .choose_sticker .choose_area li .check-box input {
          display: none; }
          .choose_sticker .choose_area li .check-box input + .sticker_img + .checkbox_img::before {
            background-image: url("../images/checkbox_off.svg");
            background-position: center;
            background-repeat: no-repeat;
            background-size: contain;
            content: "";
            height: 30px;
            position: relative;
            width: 30px; }
          .choose_sticker .choose_area li .check-box input:checked + .sticker_img + .checkbox_img::before {
            background-image: url("../images/checkbox_on.svg"); }
          .choose_sticker .choose_area li .check-box input + .sticker_img {
            border: 5px solid rgba(41, 195, 46, 0);
            display: block;
            margin-bottom: 10px; }
          .choose_sticker .choose_area li .check-box input:checked + .sticker_img {
            border: 5px solid #29C32E; }
          .choose_sticker .choose_area li .check-box input:checked + .sticker_img img {
            opacity: .5; }
  .choose_sticker .btn_area {
    justify-content: center; }
    .choose_sticker .btn_area #print_button {
      background-color: #CCCCCC;
      cursor: auto; }
      .choose_sticker .btn_area #print_button:hover {
        opacity: 1; }
      .choose_sticker .btn_area #print_button.js_active {
        background-color: #B6292D;
        cursor: pointer; }
        .choose_sticker .btn_area #print_button.js_active:hover {
          opacity: .5; }

.date {
  display: inline-block;
  color: #fff;
  background: rgba(0, 0, 0, 0.84);
  font-family: ‘Zen Old Mincho’, serif;
  background-image: url("../images/transparent_bg.png"); }

/*
プリントプレビューページ
---------------------------------------------------------*/
.print h1.small {
  max-width: 265px;
  margin-left: 5%;
  margin-bottom: 0; }
.print .print_preview-wrap p {
  font-family: 'Roboto', sans-serif;
  font-weight: bold;
  font-size: min(2.5vw, 25px);
  line-height: 1;
  text-align: center;
  margin-bottom: 25px; }
.print .print_preview-wrap .print_preview-box {
  display: flex;
  max-width: 560px;
  justify-content: space-between;
  margin-left: auto;
  margin-right: auto; }
  .print .print_preview-wrap .print_preview-box .postcard-box {
    width: 49%;
    position: relative; }
    .print .print_preview-wrap .print_preview-box .postcard-box .letter_area {
      -ms-writing-mode: tb-rl;
      writing-mode: vertical-rl;
      top: 9%;
      left: 50%;
      transform: translateX(-50%);
      -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      position: absolute;
      font-family: 'Zen Old Mincho', serif;
      font-weight: 900;
      letter-spacing: 5px;
      white-space: nowrap;
      /*fontsaiz 1文字〜2文字*/
      /*fontsaiz ３文字*/
      /*fontsaiz 4文字以上*/ }
      .print .print_preview-wrap .print_preview-box .postcard-box .letter_area.f01 {
        font-size: min(12vw, 90px);
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%); }
      .print .print_preview-wrap .print_preview-box .postcard-box .letter_area.f02 {
        font-size: min(9.5vw, 75px); }
      .print .print_preview-wrap .print_preview-box .postcard-box .letter_area.f03 {
        font-size: min(7vw, 55px);
        line-height: 1.2; }
.print .btn_area {
  justify-content: space-between; }

.print-box {
  display: none !important; }

/*
完了ページ
---------------------------------------------------------*/
.completion .c-box {
  font-family: ‘Zen Old Mincho’, serif;
  letter-spacing: 4px;
  font-weight: 700;
  font-size: min(7vw, 76px);
  text-align: center;
  background-color: transparent !important; }

#component .title {
  border-bottom: 2px solid #20469B;
  display: block;
  margin-bottom: 20px;
  font-size: 1.25rem;
  font-weight: 700; }

/*---------------------------------------------------------
読み込み時transition無効
---------------------------------------------------------*/
.preload {
  transition: 0 !important;
  transition: none !important; }

/*---------------------------------------------------------
コンテナサイズ 設定
---------------------------------------------------------*/
.contentMaxInner {
  position: relative;
  margin-left: auto;
  margin-right: auto;
  max-width: 1024px;
  width: 100%; }

/*---------------------------------------------------------
限定表示
---------------------------------------------------------*/
.pc {
  display: block; }
  @media print, screen and (max-width: 768px) {
    .pc {
      display: none; } }

.sp {
  display: none; }
  @media print, screen and (max-width: 768px) {
    .sp {
      display: block; } }

/*---------------------------------------------------------
イメージボックス
---------------------------------------------------------*/
.img-box {
  position: relative;
  display: block; }

/*---------------------------------------------------------
アイキャッチ
---------------------------------------------------------*/
/*---------------------------------------------------------
パンくず
---------------------------------------------------------*/
#breadcrumbs ul {
  display: flex; }
  #breadcrumbs ul li {
    display: flex; }
    #breadcrumbs ul li::after {
      content: ">";
      display: block;
      padding: 0 10px 0 10px; }
    #breadcrumbs ul li:last-child a {
      color: #333333;
      pointer-events: none;
      text-decoration: none; }
    #breadcrumbs ul li:last-child::after {
      display: none; }

/*---------------------------------------------------------
タイトル 設定
---------------------------------------------------------*/
/*title_h1
 --------------------------------------------------*/
/*title_h2
 --------------------------------------------------*/
/*title_h3
 --------------------------------------------------*/
/*---------------------------------------------------------
モーダル 設定
---------------------------------------------------------*/
/*モーダルを開くボタン
 --------------------------------------------------*/
/*モーダル本体の指定 + モーダル外側の背景の指定
 --------------------------------------------------*/
.modal_container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  text-align: center;
  background: rgba(0, 0, 0, 0.5);
  padding: 40px 20px;
  overflow: auto;
  opacity: 0;
  visibility: hidden;
  transition: all .5s ease-out;
  box-sizing: border-box;
  z-index: 9999;
  /*モーダル本体の擬似要素の指定*/
  /*モーダル本体に「active」クラス付与した時のスタイル*/
  /*モーダル枠の指定*/ }
  .modal_container::before {
    content: "";
    display: inline-block;
    vertical-align: middle;
    height: 100%; }
  .modal_container.active {
    opacity: 1;
    visibility: visible; }
  .modal_container .modal_body {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    max-width: 500px;
    width: 90%;
    /*モーダルを閉じるボタンの指定*/
    /*モーダル内のコンテンツの指定*/ }
    .modal_container .modal_body .modal_close {
      cursor: pointer; }
      .modal_container .modal_body .modal_close.close_button {
        position: absolute;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 50px;
        -moz-border-radius: 50px;
        -webkit-border-radius: 50px;
        -khtml-border-radius: 50px;
        top: -20px;
        right: -20px;
        width: 40px;
        height: 40px;
        font-size: 20px;
        line-height: 20px;
        color: #fff;
        cursor: pointer;
        background-color: #333;
        box-shadow: 0px 0px 19px -5px rgba(0, 0, 0, 0.8); }
        @media print, screen and (min-width: 768px) {
          .modal_container .modal_body .modal_close.close_button:hover {
            opacity: .8; } }
    .modal_container .modal_body .modal_content {
      background: #fff;
      text-align: left;
      padding: 30px; }

/*---------------------------------------------------------
アコーディオン 設定
---------------------------------------------------------*/
.accordion {
  /*アコーディオンボタン
   --------------------------------------------------*/
  /*アコーディオン コンテンツ
   --------------------------------------------------*/ }
  .accordion .ac_btn {
    cursor: pointer;
    display: flex;
    align-items: center;
    background-color: transparent;
    transition: all .5s ease-out;
    /*閉じた時*/
    /*開いた時*/ }
    .accordion .ac_btn::after {
      content: "+"; }
    .accordion .ac_btn.active {
      background-color: #FF0004;
      color: #fff; }
      .accordion .ac_btn.active::after {
        content: "-"; }
  .accordion .ac_content {
    display: none; }

/*---------------------------------------------------------
ページトップへ戻るボタン
---------------------------------------------------------*/
.pagetop {
  height: 45px;
  width: 45px;
  position: fixed;
  right: 30px;
  bottom: 30px;
  background: #20469B;
  border-radius: 50%;
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 2;
  cursor: pointer;
  font-size: 0;
  line-height: 0;
  /*矢印のデザインをイメージで表現する場合*/
  /*background-image: url("../images/scrollTopControl_arrow.svg");
  background-repeat: no-repeat;
  background-size: 20px auto;
  background-position: center center;*/ }
  .pagetop::after {
    content: "";
    display: block;
    height: 10px;
    width: 10px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: translateY(20%) rotate(-45deg); }

/*---------------------------------------------------------
設定
---------------------------------------------------------*/
/*
カラー 設定
---------------------------------------------------------*/
/*
角R 設定
---------------------------------------------------------*/
/*
入力エリア縦幅 設定
---------------------------------------------------------*/
/*---------------------------------------------------------
input 共通
---------------------------------------------------------*/
input {
  height: 45px;
  line-height: 45px;
  width: 100%; }
  @media print, screen and (max-width: 768px) {
    input {
      height: 40px;
      line-height: 40px; } }
  input::placeholder {
    color: #ccc; }

label {
  cursor: pointer; }

/*---------------------------------------------------------
必須表示
---------------------------------------------------------*/
.require::after {
  content: "\5FC5\9808";
  font-size: 0.75rem;
  color: #ff0000;
  margin-left: 3px; }

/*---------------------------------------------------------
エラーメッセージ
---------------------------------------------------------*/
.errorMessage {
  display: block;
  padding-bottom: 5px;
  color: #ff0000;
  font-size: 0.75rem; }

/*---------------------------------------------------------
注釈・コメント
---------------------------------------------------------*/
.comment {
  display: block;
  font-size: 0.75rem; }

/*---------------------------------------------------------
テキスト入力エリア
---------------------------------------------------------*/
/*共通*/
.inputText,
.textArea,
select,
datalist {
  border-radius: 5px;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  -khtml-border-radius: 5px;
  border: solid 1px #ccc;
  background-color: #fff;
  outline: none;
  position: relative;
  margin: 0;
  width: 100%; }
  .inputText:focus,
  .textArea:focus,
  select:focus,
  datalist:focus {
    background-color: #eee;
    border: solid 1px #999;
    box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.2);
    transition: all .3s ease-out; }
  .inputText::placeholder,
  .textArea::placeholder,
  select::placeholder,
  datalist::placeholder {
    color: #ccc; }

/*
テキスト入力
---------------------------------------------------------*/
.inputText {
  padding: 0 0 0 10px; }

/*
フリー入力
---------------------------------------------------------*/
.textArea {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding: 5px 10px;
  resize: none; }

/*---------------------------------------------------------
ラジオボックス
---------------------------------------------------------*/
.radioBoxWrap {
  line-height: 0; }
  .radioBoxWrap .radioBox {
    opacity: 0;
    height: 0;
    width: 0; }
    .radioBoxWrap .radioBox + label {
      display: flex;
      align-items: center; }
      .radioBoxWrap .radioBox + label::before {
        content: '';
        background: #eee;
        border-radius: 100%;
        border: 1px solid #aeaeae;
        display: inline-block;
        width: 1.4em;
        height: 1.4em;
        position: relative;
        margin-right: .5em;
        cursor: pointer;
        text-align: center;
        transition: all .3s ease-out; }
    .radioBoxWrap .radioBox:checked + label::before {
      background-color: #20469B;
      box-shadow: inset 0 0 0 3px #eee; }
    .radioBoxWrap .radioBox:focus + label::before {
      outline: none;
      border-color: #20469B; }
    .radioBoxWrap .radioBox:disabled + label {
      cursor: auto; }
      .radioBoxWrap .radioBox:disabled + label::before {
        box-shadow: inset 0 0 0 5px #eee;
        border-color: #aeaeae;
        background: #aeaeae;
        cursor: auto; }
    .radioBoxWrap .radioBox + label:empty::before {
      margin-right: 0; }

/*---------------------------------------------------------
チェックボックス
---------------------------------------------------------*/
.checkBoxWrap {
  line-height: 0; }
  .checkBoxWrap .checkBox {
    opacity: 0;
    height: 0;
    width: 0; }
    .checkBoxWrap .checkBox + label {
      display: flex;
      align-items: center;
      position: relative; }
      .checkBoxWrap .checkBox + label::before {
        content: '';
        background: #eee;
        border: 1px solid #aeaeae;
        display: inline-block;
        width: 1.4em;
        height: 1.4em;
        position: relative;
        margin-right: .5em;
        cursor: pointer;
        text-align: center;
        transition: all .3s ease-out; }
      .checkBoxWrap .checkBox + label::after {
        content: '';
        border-right: 2px solid #eee;
        border-bottom: 2px solid #eee;
        display: block;
        height: 10px;
        width: 5px;
        opacity: 0;
        position: absolute;
        top: 50%;
        left: 9px;
        margin-top: -6px;
        transform: rotate(45deg); }
        @media print, screen and (max-width: 768px) {
          .checkBoxWrap .checkBox + label::after {
            left: 9px; } }
    .checkBoxWrap .checkBox:checked + label::before {
      background-color: #20469B;
      box-shadow: inset 0 0 0 2px #eee; }
    .checkBoxWrap .checkBox:checked + label::after {
      opacity: 1; }
    .checkBoxWrap .checkBox:disabled + label {
      cursor: auto; }
      .checkBoxWrap .checkBox:disabled + label::before {
        box-shadow: inset 0 0 0 5px #eee;
        border-color: #aeaeae;
        background: #aeaeae;
        cursor: auto; }
    .checkBoxWrap .checkBox + label:empty::before {
      margin-right: 0; }

/*---------------------------------------------------------
・選択[プルダウン]・入力可能選択[プルダウン]
---------------------------------------------------------*/
.selectbox {
  position: relative;
  display: block;
  font-size: 0; }

.selectbox::after {
  position: absolute;
  content: '\25BC';
  pointer-events: none;
  right: 0px;
  top: 0px;
  display: flex;
  width: 20%;
  border-radius: 0 3px 3px 0;
  padding: 0;
  background-color: #ED7E30;
  z-index: 1;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: min(1.2vw, 13px);
  height: 100%; }

.selectbox select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  min-width: 100%;
  padding: 0 20% 0 5px;
  border: 1px solid #ED7E30;
  border-radius: 5px;
  font-size: min(1.5vw, 18px);
  cursor: pointer;
  line-height: 2;
  text-align: left;
  background-color: #FFF0E8;
  font-family: 'Roboto', sans-serif;
  font-weight: normal; }

.selectbox select:focus {
  outline: 1px solid #ED7E30; }

/*
送信ボタンエリア
---------------------------------------------------------*/
.submitBtnWrap {
  display: block;
  position: relative;
  max-width: 500px;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto 5% auto;
  line-height: 0; }
  .submitBtnWrap li {
    display: block;
    width: 100%;
    margin-right: 2.5%;
    max-width: 250px; }
    @media print, screen and (max-width: 768px) {
      .submitBtnWrap li {
        width: 100%; } }
    .submitBtnWrap li:last-child {
      margin-right: 0; }
    .submitBtnWrap li button {
      display: flex;
      justify-content: center;
      align-items: center; }
      .submitBtnWrap li button.reset, .submitBtnWrap li button.back {
        background: transparent;
        background-color: #ccc;
        color: #fff; }

/*---------------------------------------------------------
テーブル 設定
---------------------------------------------------------*/
.itemListTable {
  width: 100%;
  transition: all .3s ease-out;
  margin-bottom: 50px; }
  @media print, screen and (max-width: 768px) {
    .itemListTable {
      margin-bottom: 25px; } }
  .itemListTable th,
  .itemListTable td {
    border-bottom: 1px solid #eee;
    transition: all .3s ease-out;
    padding: 15px 0; }
    @media print, screen and (max-width: 768px) {
      .itemListTable th,
      .itemListTable td {
        display: block;
        padding: 5px 0;
        width: 100%;
        border-bottom: none; } }
  .itemListTable th {
    font-weight: bold;
    width: 15%; }
    @media print, screen and (max-width: 768px) {
      .itemListTable th {
        background-color: #eee;
        padding-left: 2%;
        width: 100%; } }
  .itemListTable td {
    width: 85%; }
    @media print, screen and (max-width: 768px) {
      .itemListTable td {
        width: 100%;
        padding-bottom: 10px; } }

/*---------------------------------------------------------
入力エリア等の横幅 設定
---------------------------------------------------------*/
.boxSizeL {
  width: 100%; }
  @media print, screen and (max-width: 768px) {
    .boxSizeL {
      width: 100%; } }

.boxSizeM {
  width: 50%; }
  @media print, screen and (max-width: 768px) {
    .boxSizeM {
      width: 100%; } }

.boxSizeS {
  width: 25%; }
  @media print, screen and (max-width: 768px) {
    .boxSizeS {
      width: 50%; } }
