@charset "UTF-8";
.input .rule {
  display: inline-block;
  padding: 4px 8px;
  -moz-border-radius: 2px;
  -webkit-border-radius: 2px;
  border-radius: 2px;
  margin: 4px 0 0 0;
  float: left;
  background: #3978c6;
  font-size: 12px;
  color: #fff; }

.images .rule {
  padding: 10px;
  -moz-border-radius: 2px;
  -webkit-border-radius: 2px;
  border-radius: 2px;
  margin: 0 0 30px 0;
  background: #3978c6;
  font-size: 14px;
  color: #fff;
  text-align: center; }

#contents {
  padding: 0;
  margin: 0 auto; }

#main {
  padding: 0;
  position: relative;
  background: #fff;
  font-size: 16px; }
  #main:before, #main:after {
    content: "";
    display: block;
    width: 160px;
    height: 100%;
    position: absolute;
    top: 0;
    z-index: 1; }
  #main:before {
    right: 0;
    background: transparent url(../../img/page/booklet/main_right_bg.png) repeat-y;
    background-position: top;
    -moz-background-size: 100%;
    -o-background-size: 100%;
    -webkit-background-size: 100%;
    background-size: 100%; }
  #main:after {
    left: 0;
    background: transparent url(../../img/page/booklet/main_left_bg.png) repeat-y;
    background-position: top;
    -moz-background-size: 100%;
    -o-background-size: 100%;
    -webkit-background-size: 100%;
    background-size: 100%; }
  #main > .page-title {
    width: auto;
    padding: 100px 0;
    margin: 0;
    background: #333 url(../../img/page/booklet/page_title.jpg) no-repeat;
    -moz-background-size: cover;
    -o-background-size: cover;
    -webkit-background-size: cover;
    background-size: cover;
    color: #fff;
    text-align: center; }
    #main > .page-title h1 {
      width: 1000px;
      padding: 0 10px;
      border: none;
      margin: 0 auto;
      position: relative;
      z-index: 2;
      font-size: 40px;
      text-shadow: 0 0 3px #333; }
      #main > .page-title h1 .main {
        display: block;
        margin: 0 0 -20px 0; }
      #main > .page-title h1 small {
        display: inline-block;
        position: relative;
        font-family: "a-otf-midashi-go-mb31-pr6n";
        font-size: 20px; }
        #main > .page-title h1 small:after {
          content: "";
          display: block;
          width: 100%;
          height: 1px;
          margin: 0 auto;
          position: absolute;
          right: -9999px;
          bottom: -1px;
          left: -9999px;
          background: #fff;
          -moz-box-shadow: 0 0 3px 0 #333;
          -webkit-box-shadow: 0 0 3px 0 #333;
          box-shadow: 0 0 3px 0 #333; }
  #main .container {
    width: 1000px;
    min-height: 1360px;
    padding: 40px;
    border-right: 1px solid #b1c2c5;
    border-left: 1px solid #b1c2c5;
    margin: 0 auto;
    position: relative;
    z-index: 2;
    background: #fff;
    *zoom: 1; }
    #main .container:after {
      content: "";
      display: table;
      clear: both; }
    #main .container.has-error {
      min-height: 1520px; }
  #main .description {
    padding: 0 340px 0 0; }
    #main .description .photo {
      margin: 40px 0; }
      #main .description .photo img {
        width: 100%; }
      #main .description .photo .caption {
        display: block;
        margin: 4px 0 0 0;
        font-size: 10px;
        text-align: center; }
  #main .form-container {
    width: 300px;
    position: absolute;
    top: 40px;
    right: 40px; }
    #main .form-container .form {
      padding: 0;
      margin: 0;
      font-size: 16px; }
    #main .form-container .rule-description {
      padding: 10px 20px;
      border: 2px solid #0c3138;
      margin: 0 0 20px 0;
      background: #fff;
      font-size: 14px; }
      #main .form-container .rule-description .required {
        display: inline-block;
        padding: 4px 8px;
        border: 1px solid #e34f4f;
        margin: 0 4px 0 0;
        -moz-border-radius: 4px;
        -webkit-border-radius: 4px;
        border-radius: 4px;
        font-family: "a-otf-midashi-go-mb31-pr6n";
        font-size: 12px;
        font-weight: bold;
        line-height: 21px;
        color: #e34f4f; }
    #main .form-container .inputs {
      width: 100%;
      margin: 0 0 20px 0; }
    #main .form-container label {
      display: block;
      padding: 8px 4px;
      border-bottom: 2px solid #0c3138;
      position: relative;
      font-family: "a-otf-midashi-go-mb31-pr6n";
      font-size: 18px;
      font-weight: bold;
      line-height: 21px;
      cursor: pointer; }
      #main .form-container label .required:after {
        display: inline-block;
        content: "必須";
        padding: 4px 8px;
        border: 1px solid #e34f4f;
        -moz-border-radius: 4px;
        -webkit-border-radius: 4px;
        border-radius: 4px;
        position: absolute;
        top: 0;
        right: 0;
        font-size: 12px;
        color: #e34f4f; }
    #main .form-container .input:first-child label {
      border-top: none; }
    #main .form-container .input-container {
      padding: 10px 0;
      background: #fff; }
    #main .form-container input, #main .form-container select {
      cursor: pointer;
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box; }
    #main .form-container input {
      height: 36px;
      font-size: 16px;
      line-height: 36px; }
    #main .form-container textarea {
      height: 150px; }
    #main .form-container .validation .error-message {
      padding: 2px 10px;
      -moz-border-radius: 2px;
      -webkit-border-radius: 2px;
      border-radius: 2px;
      margin: 4px 0 0 0;
      float: none;
      background: #e95c49;
      color: #fff; }
    #main .form-container .rule {
      float: none; }
    #main .form-container .example {
      display: block;
      margin: 4px 0 0 0;
      font-size: 14px;
      color: #aaa; }
      #main .form-container .example:before {
        content: "例）";
        display: inline; }
    #main .form-container #email {
      display: inline-block;
      width: 100%;
      max-width: 100%; }
    #main .form-container .personal-details {
      padding: 10px 20px;
      border: 1px solid #0c3138;
      margin: 0 0 20px 0;
      background: #fff; }
      #main .form-container .personal-details .description {
        padding: 0 0 10px 0;
        border-bottom: 1px dashed #0c3138;
        margin: 0 0 30px 0;
        font-size: 14px; }
      #main .form-container .personal-details .input {
        display: block;
        position: relative;
        text-align: center;
        *zoom: 1; }
        #main .form-container .personal-details .input:after {
          content: "";
          display: table;
          clear: both; }
        #main .form-container .personal-details .input.required:before {
          width: 100%;
          padding: 4px 0;
          top: -20px; }
      #main .form-container .personal-details label {
        display: inline-block;
        width: auto;
        height: 50px;
        padding: 0;
        border: none;
        background: transparent;
        line-height: 50px;
        vertical-align: top;
        -moz-user-select: -moz-none;
        -ms-user-select: none;
        -webkit-user-select: none;
        user-select: none; }
      #main .form-container .personal-details .input-container {
        display: inline-block;
        width: auto;
        height: 50px;
        padding: 0;
        border: none;
        line-height: 50px;
        vertical-align: top; }
        #main .form-container .personal-details .input-container input {
          height: 50px;
          line-height: 50px; }
      #main .form-container .personal-details .validation .error-message {
        display: block; }
    #main .form-container .submit {
      width: 100%;
      padding: 20px 0 0 0;
      text-align: center; }
      #main .form-container .submit button {
        padding: 10px 20px;
        border: none;
        -moz-border-radius: 3px;
        -webkit-border-radius: 3px;
        border-radius: 3px;
        font-size: 16px; }
  #main .download-container {
    padding: 20px;
    border: 1px solid #0c3138;
    background: #fff; }
    #main .download-container p {
      margin: 20px 0; }
    #main .download-container em {
      display: block;
      color: #a72020;
      text-align: center; }
      #main .download-container em:before {
        content: "※";
        display: inline; }
    #main .download-container .download, #main .download-container .send-email {
      margin: 20px 0;
      text-align: center; }
      #main .download-container .download .btn, #main .download-container .send-email .btn {
        padding: 10px 20px;
        border: none;
        -moz-border-radius: 3px;
        -webkit-border-radius: 3px;
        border-radius: 3px; }

@media screen and (max-width: 1040px) {
  #main > .page-title h1 {
    width: auto; }
  #main .container {
    width: auto;
    border: none; } }
@media screen and (max-width: 768px) {
  #main .container {
    padding: 40px 20px 100px 20px; }
  #main .description {
    padding: 0;
    margin: 0 10px 40px 10px; }
  #main .form-container {
    width: auto;
    position: static; }
    #main .form-container .inputs {
      display: block; }
      #main .form-container .inputs .input {
        display: block; }
      #main .form-container .inputs label {
        display: block;
        width: 100%; }
      #main .form-container .inputs .input-container {
        display: block;
        width: 100%; } }
@media screen and (max-width: 540px) {
  #main:before, #main:after {
    display: none; }
  #main > .page-title h1 {
    font-size: 20px; }
    #main > .page-title h1 .main {
      margin: 0 0 -8px 0; }
    #main > .page-title h1 small {
      font-size: 11px; }
      #main > .page-title h1 small:after {
        width: 100%; } }
@media screen and (max-width: 500px) {
  #main .description {
    padding: 0;
    margin: 0; } }
@media screen and (max-width: 375px) {
  body {
    min-width: 320px; }

  #main .description > .photo {
    width: 100%; }
  #main .form-container .personal-details label .required:after {
    display: block;
    margin: 6px 0 0 0; } }
