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

body { line-height: 1; }

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

nav ul { list-style: none; }

blockquote, q { quotes: none; }

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

a { margin: 0; padding: 0; font-size: 100%; vertical-align: baseline; background: transparent; color: inherit; text-decoration: none; }

/* change colours to suit your needs */
ins { background-color: #ff9; color: #000; text-decoration: none; }

/* change colours to suit your needs */
mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }

del { text-decoration: line-through; }

abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }

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

/* change border colour to suit your needs */
hr { display: block; height: 1px; border: 0; border-top: 1px solid #cccccc; margin: 1em 0; padding: 0; }

input, button, textarea, select { margin: 0; padding: 0; background: none; border: none; border-radius: 0; outline: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; }

textarea { resize: none; }

html, body { -webkit-text-size-adjust: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-feature-settings: "palt"; -webkit-font-feature-settings: "palt"; text-rendering: optimizeLegibility; }

img, video { vertical-align: bottom; max-width: 100%; height: auto; }

img[src$=".svg"] { width: 100%; }

li { list-style: none; }

main { display: block; }

h1, h2, h3, h4, h5 { font-weight: normal; }

/* --------------------------------------------------
Common
-------------------------------------------------- */
html { height: 100%; font-size: 10px; }

body { height: 100%; font-weight: 400; }

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

h1, h2, h3, h4, h5 { font-weight: 400; }

@media screen and (max-width: 768px) { .pc { display: none !important; } }
@media screen and (min-width: 769px) { .sp { display: none !important; } }
body.is-loaded { opacity: 1 !important; transition: opacity 1s ease 0s; }

/* --------------------------------------------------
Header
-------------------------------------------------- */
body { font-family: "Helvetica", neue-haas-grotesk-display, YuGothic, "Yu Gothic", serif; }
body #wrapper header { position: fixed; top: 0; left: 0; right: 0; z-index: 99; padding: 19px 0; transition: color .4s ease 0s; }
body #wrapper header .logo { width: 99px; margin: 0 auto; }
body #wrapper header nav { position: absolute; right: 10px; top: 27px; }
body #wrapper header nav ul { display: flex; }
body #wrapper header nav ul li { font-size: 1.4rem; }
body #wrapper header nav ul li a { display: inline-block; padding: 4px; }
body #wrapper header nav ul li::after { display: inline-block; content: "/"; }
body #wrapper header nav ul li:last-child::after { display: none; }
body #wrapper header nav ul li.current a { pointer-events: none; }

@media screen and (min-width: 769px) { body #wrapper header { padding: 26px 36px; display: flex; justify-content: space-between; }
  body #wrapper header .logo { width: 90px; margin: 0; }
  body #wrapper header nav { position: static; } }
/* --------------------------------------------------
Footer
-------------------------------------------------- */
#wrapper footer { padding: 180px 0 30px; text-align: center; position: relative; }
#wrapper footer #to_online { font-size: 1.45rem; margin: 0 0 24px; }
#wrapper footer #to_online a { text-decoration: underline; }
#wrapper footer .links { display: flex; justify-content: center; margin: 0 0 46px; }
#wrapper footer .links li { font-size: 1.2rem; }
#wrapper footer .links li:nth-child(1)::after { display: inline-block; content: "/"; margin: 0 .3em; }
#wrapper footer .logo { width: 78px; margin: 0 auto 13px; }
#wrapper footer small { font-size: .75rem; }

@media screen and (min-width: 769px) { #wrapper footer a { transition: opacity .4s ease 0s; }
  #wrapper footer a:hover { opacity: .5; }
  #wrapper footer .textgroup { position: absolute; top: 55%; left: 0; right: 0; transform: translate(0, -50%); }
  #wrapper footer .textgroup .textarea { position: static; transform: none; }
  #wrapper footer .textgroup .textarea .logo { width: 81px; margin: 0 auto 31px; }
  #wrapper footer .textgroup .textarea #to_online { font-size: 2rem; }
  #wrapper footer .textgroup .textarea .links { margin: 0 0 60px; }
  #wrapper footer .textgroup .textarea .links li { width: 16px; margin: 0 13px; }
  #wrapper footer .textgroup small { position: static; font-size: 1rem; transform: scale(0.8); } }
/* --------------------------------------------------
Contents
-------------------------------------------------- */
body #wrapper #contents { padding: 87px 0 0; }
body #wrapper #contents .group { padding: 0 10px; }
body #wrapper #contents .group .imagearea ul li { width: 38.31%; }
body #wrapper #contents .group .textarea { margin: 30px 0 0; }
body #wrapper #contents .group .textarea .credit ul li { font-size: 1.2rem; line-height: 1.58; }
body #wrapper #contents .group .textarea .credit ul li .name { display: block; }
body #wrapper #contents .group .textarea .credit ul li .brand, body #wrapper #contents .group .textarea .credit ul li .price { margin: 0 .5em 0 0; }
body #wrapper #contents .group .textarea .credit ul li a { font-weight: 700; text-decoration: underline; vertical-align: top; font-size: 1.05rem; }
body #wrapper #contents .group + .group { margin: 90px 0 0; }
body #wrapper #contents .group.col2 .imagearea ul { display: flex; }
body #wrapper #contents .group.col2.sb .imagearea ul { justify-content: space-between; }
body #wrapper #contents .group.col2.left .imagearea ul li:nth-child(1), body #wrapper #contents .group.col2.right .imagearea ul li:nth-child(1) { margin: 0 10px 0 0; }
body #wrapper #contents .group.col2.right .imagearea ul { justify-content: flex-end; }
body #wrapper #contents .group.col1.left .imagearea ul li { margin: 0 0 0 20.56%; }
body #wrapper #contents .group.col1.right .imagearea ul li { margin: 0 20.56% 0 auto; }
body #wrapper #contents .group.col1.center .imagearea ul li { margin: 0 auto; }

@media screen and (min-width: 769px) { body #wrapper #contents { padding: 150px 0 0; }
  body #wrapper #contents .group { padding: 0; width: 82.43%; margin: 0 auto; display: flex; } }
@media screen and (min-width: 769px) and (max-width: 1279px) { body #wrapper #contents .group { width: 96%; } }
@media screen and (min-width: 769px) { body #wrapper #contents .group .imagearea { width: 70.52%; order: 2; }
  body #wrapper #contents .group .imagearea ul li { width: 37.28%; }
  body #wrapper #contents .group .textarea { margin: 0; width: 29.48%; order: 1; padding: 66px 35px 0 0; box-sizing: border-box; } }
@media screen and (min-width: 769px) and (max-width: 1279px) { body #wrapper #contents .group .textarea { padding: 0 35px 0 0; } }
@media screen and (min-width: 769px) { body #wrapper #contents .group .textarea .credit ul li { font-size: 1.4rem; line-height: 1.57; }
  body #wrapper #contents .group .textarea .credit ul li a { font-size: 1.2rem; }
  body #wrapper #contents .group + .group { margin: 130px auto 0; }
  body #wrapper #contents .group.col2.left .imagearea ul li:nth-child(1), body #wrapper #contents .group.col2.right .imagearea ul li:nth-child(1) { margin: 0 4.53% 0 0; }
  body #wrapper #contents .group.col1.left .imagearea ul li { margin: 0 0 0 20.91%; }
  body #wrapper #contents .group.col1.right .imagearea ul li { margin: 0 20.91% 0 auto; }
  body #wrapper #contents .group.col1.center .imagearea ul li { width: 37.28%; } }
/* --------------------------------------------------
Modal
-------------------------------------------------- */
#wrapper #modal { position: fixed; top: 0; right: 0; bottom: 0; left: 0; background: #fff; z-index: 9; display: none; }
#wrapper #modal .modal-single { position: absolute; top: 90px; right: 0; bottom: 0; left: 0; overflow: auto; display: none; }
#wrapper #modal .modal-single .imagearea { position: relative; }
#wrapper #modal .modal-single .imagearea ul { position: relative; margin: 0 30px; }
#wrapper #modal .modal-single .imagearea ul li { opacity: 0; transition: opacity 1s ease 0s; }
#wrapper #modal .modal-single .imagearea ul li:nth-child(2) { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
#wrapper #modal .modal-single .imagearea ul li.is-active { opacity: 1; }
#wrapper #modal .modal-single .imagearea .modal-move-icon a { display: block; position: absolute; top: 50%; left: 0; transform: translate(0, -50%); padding: 11px; }
#wrapper #modal .modal-single .imagearea .modal-move-icon a img { width: 8px; }
#wrapper #modal .modal-single .imagearea .modal-move-icon a.modal-next { left: auto; right: 0; }
#wrapper #modal .modal-single .textarea { margin: 30px 30px 0; padding: 0 0 30px; }
#wrapper #modal .modal-single .textarea .credit { margin: 0 0 35px; }
#wrapper #modal .modal-single .textarea .credit ul li { font-size: 1.2rem; line-height: 1.58; }
#wrapper #modal .modal-single .textarea .credit ul li .name { display: block; }
#wrapper #modal .modal-single .textarea .credit ul li .brand, #wrapper #modal .modal-single .textarea .credit ul li .price { margin: 0 .5em 0 0; }
#wrapper #modal .modal-single .textarea .credit ul li a { font-weight: 700; text-decoration: underline; vertical-align: top; font-size: 1.05rem; }
#wrapper #modal .modal-single .textarea .modal-close { text-align: center; font-weight: 700; text-decoration: underline; font-size: 1.2rem; }

@media screen and (min-width: 769px) { #wrapper #modal .modal-single { top: 54px; bottom: 41px; overflow: hidden; }
  #wrapper #modal .modal-single .imagearea { margin: 0 auto; width: calc((100vh - 95px) * (430 / 645)); } }
@media screen and (min-width: 769px) and (max-width: 1279px) { #wrapper #modal .modal-single .imagearea { margin: 0 0 0 450px; } }
@media screen and (min-width: 769px) { #wrapper #modal .modal-single .imagearea ul { margin: 0; }
  #wrapper #modal .modal-single .imagearea .modal-move-icon a { left: -28px; padding: 5px; }
  #wrapper #modal .modal-single .imagearea .modal-move-icon a img { width: 9px; }
  #wrapper #modal .modal-single .imagearea .modal-move-icon a.modal-next { left: auto; right: -28px; }
  #wrapper #modal .modal-single .textarea { margin: 0; padding: 0; position: absolute; top: 50%; left: 36px; transform: translate(0, -50%); }
  #wrapper #modal .modal-single .textarea .credit { margin: 0 0 66px; }
  #wrapper #modal .modal-single .textarea .credit ul li { font-size: 1.4rem; line-height: 1.57; }
  #wrapper #modal .modal-single .textarea .credit ul li a { font-size: 1.2rem; }
  #wrapper #modal .modal-single .textarea .modal-close { font-size: 1.4rem; text-align: left; } }
