@charset 'utf-8';

/* Base
--------------------------------------------------- */
*, ::before, ::after { background-repeat: no-repeat; box-sizing: inherit; }
::before, ::after { text-decoration: inherit; vertical-align: inherit; }
html { box-sizing: border-box; cursor: default; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
article, aside, footer, header, nav, section { display: block; }
body { margin: 0; }
figcaption, figure, main { display: block; }
hr { box-sizing: content-box; height: 0; overflow: visible; }
nav ol, nav ul { list-style: none; }
pre { font-family: monospace, monospace; font-size: 1em; }
a { background-color: transparent; -webkit-text-decoration-skip: objects; }
abbr[title] { border-bottom: none; text-decoration: underline; text-decoration: underline dotted; }
b, strong { font-weight: inherit; font-weight: bolder; }
code, kbd, samp { font-family: monospace, monospace; font-size: 1em; }
dfn { font-style: italic; }
mark { background-color: #ff0; color: #000; }
small { font-size: 80%; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sub { bottom: -.25em; }
sup { top: -.5em; }
audio, canvas, iframe, img, svg, video { vertical-align: middle; }
audio, video { display: inline-block; }
audio:not([controls]) { display: none; height: 0; }
img { border-style: none; }
svg { fill: currentColor; }
svg:not(:root) { overflow: hidden; }
table { border-collapse: collapse; }
details, menu { display: block; }
summary { display: list-item; }
canvas { display: inline-block; }
template { display: none; }
a, area, button, input, label, select, summary, textarea, [tabindex] { -ms-touch-action: manipulation; touch-action: manipulation; }
[hidden] { display: none; }
button, input, optgroup, select, textarea { margin: 0; }
button, input, select, textarea { color: inherit; font-size: inherit; line-height: inherit; }
button, input { overflow: visible; }
button, select { text-transform: none; }
button, html [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; }
button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; }
button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; }
legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; padding: 0; white-space: normal; }
progress { display: inline-block; vertical-align: baseline; }
textarea { overflow: auto; resize: vertical; }
[type="checkbox"], [type="radio"] { box-sizing: border-box; padding: 0; }
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; }
[type="search"] { -webkit-appearance: textfield; outline-offset: -2px; }
[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4, h5, h6 { margin: 0; font-size: 100%; font-weight: 400; }
blockquote, figure, p { margin: 0; }
dl, dd, ol, ul { margin: 0; padding: 0; }
ul { list-style: none; }
i { font-style: normal; }

/* base */
body { font-family: RyuminPro-Regular, serif; font-size: 14px; line-height: 1; color: #222; background: url("../img/bg.jpg") 0 0 repeat; background-size: 154px 160px; }
@media (-webkit-min-device-pixel-ratio:2) {
  body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
}
::-moz-selection { background: #c9c2ae; color: #fff; text-shadow: none; }
::selection { background: #c9c2ae; color: #fff; text-shadow: none; }
a { color: #0275d8; }
a:link, a:visited { color: #0275d8; text-decoration: none; }
a:hover, a:active { color: #1893fd; -webkit-transition: color 0.1s; transition: color 0.1s; }
a:hover img, a:active img { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; filter: alpha(opacity=80); opacity: 0.8; }

/* Layouts
--------------------------------------------------- */
.l-inner { padding: 0 6.67%; }
.l-inner.slide { padding: 0; max-width: 1080px; }
@media screen and (min-width:768px) {
  .l-side { width: 140px; padding: 24px 26px; position: fixed; }
  .l-main { margin-left: 120px; }
  .l-main .contents { min-height: calc(100vh - 166px); }
  .l-inner { width: 100%; max-width: 904px; padding: 0 40px; margin: 0 auto; }
}
@media screen and (min-width:768px) {
  .l-col { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-justify-content: space-between; -ms-justify-content: space-between; justify-content: space-between; }
  .l-col-heading { width: 19.9%; }
  .l-col-content { width: 80.1%; }
  .l-col-heading.-left, .l-col-content.-left { -webkit-order: 1; -ms-order: 1; order: 1; }
  .l-col-heading.-right, .l-col-content.-right { -webkit-order: 2; -ms-order: 2; order: 2; }
  .l-col-content.-narrow { width: 80.1%; max-width: 554px; }
  .l-col-content.-wide { width: 100%; }
}

/* Components
--------------------------------------------------- */

/* typo & basic */
.contents { letter-spacing: 2px; }
.contents h2, .contents h3, .contents h4, .contents .lead { font-family: "Ryumin Bold KL", serif; }
.contents h2 { font-size: 20px; letter-spacing: 2.86px; margin-bottom: 24px; }
.contents h2 span { font-size: 16px; margin-bottom: 12px; display: block; }
.contents h3 { font-size: 16px; line-height: 1.5; margin-top: 48px; }
.contents h4 { font-size: 14px; line-height: 1.71; }
.contents p { line-height: 1.71; margin: 1em 0; }
.contents p:first-child { margin-top: 0; }
.contents p:last-child { margin-bottom: 0; }
.contents ul, .contents ol, .contents dl { line-height: 1.71; }
.contents ul { margin: 2em 0 2em 2em; list-style: disc; }
.contents ul li { margin-bottom: 1em; }
.contents ul li:last-child { margin-bottom: 0; }
.contents ol { margin: 1em 0 1em 2em; list-style: decimal; }
.contents ol li { margin-bottom: 1em; }
.contents ol li:last-child { margin-bottom: 0; }
.contents dl { margin: 2em 0 0; }
.contents dl dt { font-family: "Ryumin Bold KL", serif; }
.contents dl dd { margin-bottom: 2em; }
.contents dl dd:last-child { margin-bottom: 0; }
.contents hr { border: 0; height: 1px; border-top: 1px solid #c9c2ae; margin: 60px 0 48px; }
.contents .caption { font-size: 10px; letter-spacing: 1.43px; line-height: 1.75; margin-top: 8px; }
@media screen and (min-width:768px) {
  .contents h2 { display:inline-block; font-size: 28px; letter-spacing: 10px; writing-mode: vertical-rl; -webkit-writing-mode:vertical-rl; -ms-writing-mode: tb-rl; margin: 0 auto; -webkit-font-feature-settings: 'pkna'; font-feature-settings: 'pkna'; }
  .contents h2 span { font-size: 20px; margin: 0 12px; }
  .contents .-right h2 { padding-left: 40px; }
  .contents .-left h2 { padding-right: 20px; }
  .contents dl { margin: 2em 0; overflow: hidden; }
  .contents dl dt { width: 130px; float: left; }
  .contents dl dd { margin-left: 130px; }
  .contents hr { margin: 120px 0 48px; }
}

/* catch */
.catch { margin: 0 -7.69% 48px; }
.catch-txt { font-size: 16px; letter-spacing: 2.67px; line-height: 1.75; padding: 0 7.69%; }
.catch-cap { padding: 0 7.69%; }
@media screen and (min-width:768px) {
  .catch { margin: 0 0 48px; position: relative; }
  .catch-txt { position: absolute; right: -24.85%; bottom: 24px; background: #fff; padding: 16px 24px; font-size: 24px; letter-spacing: 4px; line-height: 1.17 !important; }
  .catch-cap { padding: 0; }
}

/* contact form */
.form .asterisk { font-size: 10px; color: #D0021B; letter-spacing: -0.71px; padding-left: 2px; }
.form .error { display: inline-block !important; margin: 8px; }
.form dl { margin: 40px 0; }
.form dl dt { width: 100px; float: left; padding: 8px 0; font-family: "Ryumin Regular KL", serif; font-size: 13px; }
.form dl dd { margin-left: 100px; margin-bottom: 1.2em; }
.form dl dd:after { content: ''; display: block; clear: both; }
.form [type="radio"] { margin-right: 6px; }
.form .mwform-radio-field { padding: 8px; display: inline-block; }
.form .mwform-radio-field.vertical-item { display: block; }
.form .vertical-item + .vertical-item { margin-top: 0 !important; }
.form .mwform-radio-field-text { letter-spacing: 0.01em; line-height: 1.3; }
.form .vertical-item .mwform-radio-field-text { letter-spacing: 0.01em; line-height: 1.3; }
.form input[type="text"].comment { margin-bottom: 8px; }
.form input { max-width: 100%; padding: 8px; background: #fff; }
.form input:first-of-type { margin-left: 0; }
.form textarea { width: 100%; padding: 8px; height: 140px; background: #fff; }
.form input, .form textarea, .form select { border: 1px solid #d2c2a9; font-size: 14px; line-height: 1.3; }
.form input:focus, .form textarea:focus, .form select:focus { box-shadow: inset 0 0 2px 0 #fff; }
.form .file-upload { display: none !important; }
.form .file-btn { padding: 8px 16px; border-radius: 4px; border: 1px solid #c2c2c2; background: #fff; font-family: "Ryumin Regular KL", serif; font-size: 12px; letter-spacing: 1px; }
.form .file-name { display: inline-block; font-size: 12px; }
.form .mwform-file-delete { display: none; }
.form .memorial { margin: 32px auto 56px; }
.form .memorial-client { margin: 0; }
.form .memorial-client:nth-child(odd) { padding-bottom: 24px; border-bottom: 1px dashed #D2C2A9; }
.form .memorial-client:nth-child(even) { padding-top: 24px; }
.form .memorial select { margin: 8px 8px 8px 0; }
.form .submit { line-height: 1; text-align: center; display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-justify-content: center; -ms-justify-content: center; justify-content: center; margin: 40px auto 0; }
.form .submit input { font-size: 16px; letter-spacing: 2px; font-family: "Ryumin Bold KL", serif; color: #fff; background: #716146; border-radius: 4px; padding: 12px 54px; border: 0; outline: none; }
.form .submit input:hover { background: #8d867b; }
@media screen and (min-width:768px) {
  .form dl dt { font-size: 14px; width: 130px; }
  .form dl dd { margin-left: 130px; }
  .form .submit { -webkit-justify-content: flex-start; -ms-justify-content: flex-start; justify-content: flex-start; margin: 40px 0 0 130px; }
  .form .file-name { margin-left: 16px; }
  .form .memorial { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-justify-content: space-between; -ms-justify-content: space-between; justify-content: space-between; }
  .form .memorial-client { width: 50%; }
  .form .memorial-client:nth-child(odd) { padding-bottom: 0; padding-right: 16px; border-bottom:0; border-right: 1px dashed #D2C2A9; }
  .form .memorial-client:nth-child(even) { padding-top: 0; padding-left: 16px; }
  .form .memorial-client dt { width: 80px; }
  .form .memorial-client dd { margin-left: 80px; }
}
.form .wpcf7-list-item { margin: 0; padding: 4px 0; display: block; }
.form .wpcf7-list-item.first { padding-top: 8px; }
.form .wpcf7-list-item.has-free-text label { margin-right: 12px; }
.form .wpcf7-spinner { display: none; }
.form.-confirm dl dt { padding: 0;}
.form.-confirm .back { display: flex; align-items: center; justify-content: center; }
.form.-confirm .back input[type="button"] { margin-top: 24px; border: 0; outline: none; padding: 0; line-height: 1; background-color: transparent; border-bottom: 1px solid #222222; }
.form .memorial-client dl { margin: 0; }
.form .memorial-client h4 { margin: 24px 0 12px; }
@media screen and (min-width:768px) {
  .form.-confirm .back { margin-left: 130px; width: 180px; text-align: center; }
}

/* gallery */
.gallery { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-justify-content: space-between; -ms-justify-content: space-between; justify-content: space-between; margin: 0 -7.69%; }
.gallery-item2 { width: 50%; }
.gallery-item2x3 { width: 66.75%; }
.gallery-item1x3 { width: 33.25%; }
.gallery-item4 { width: 50%; }
.gallery.-history { margin: 48px 0 0; }
.gallery.-history .gallery-item:nth-child(1) { width: 46.15%; margin-bottom: 32px; }
.gallery.-history .gallery-item:nth-child(2), .gallery.-history .gallery-item:nth-child(3) { width: 46.15%; }
@media screen and (min-width:768px) {
  .gallery { margin: 0; }
  .gallery-item4 { width: 25%; }
  .gallery.-history .gallery-item:nth-child(1) { width: 21%; margin-bottom: 0; }
  .gallery.-history .gallery-item:nth-child(2) { width: 32%; }
  .gallery.-history .gallery-item:nth-child(3) { width: 45%; }
}

/* hero area */
.hero { position: relative; }
.hero-logo { position: absolute; top: 27.72%; width: 16.67%; margin: 0 5.68%; }
.hero-slide { position: absolute; top: 0; left: 25%; width: 75%; }
.hero-img { background-position: center center !important; background-repeat: no-repeat; background-size: cover !important; max-height: 712px !important; height: 72.01vw !important; }

@media screen and (min-width:960px) {
  .hero-logo { width: 150px; margin: 0 54px; }
  .hero-slide { left: 244px; width: -webkit-calc(100% - 244px); width: calc(100% - 244px); }
}

/* modal */
.modal-btn { width: 122px; margin: 40px auto 0; padding: 16px 0; text-align: center; border: 1px solid #8d867b; font-family: "Ryumin Bold KL", serif; }
.modal-btn:hover { color: #fff; background: #8d867b; }
.modal-box { position: fixed; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); width: 80%; max-width: 824px; max-height: 80%; overflow: scroll; padding: 48px 4.85%; z-index: 101; background: #fff; box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter: alpha(opacity=0); opacity: 0; visibility: hidden; }
.modal-box.-active { -ms-filter: none; filter: none; opacity: 1; visibility: visible; -webkit-transition: opacity 300ms ease, visibility 0ms linear 0ms; transition: opacity 300ms ease, visibility 0ms linear 0ms; }
.modal-overlay { cursor: pointer; position: fixed; top: 0; left: 0; z-index: 100; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.3); -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter: alpha(opacity=0); opacity: 0; visibility: hidden; }
.modal-overlay.-active { -ms-filter: none; filter: none; opacity: 1; visibility: visible; -webkit-transition: opacity 600ms ease, visibility 0ms linear 0ms; transition: opacity 600ms ease, visibility 0ms linear 0ms; }
@media screen and (min-width:768px) {
  .modal-btn { margin: 40px 0 0; }
}

/* section */
[class*="sec-"] { padding-top: 48px; padding-bottom: 60px; border-top: 1px solid #c9c2ae; }
.sec-history { margin-top: 60px; }
@media screen and (min-width:768px) {
  [class*="sec-"] { padding-top: 60px; border: 0; }
  .sec-history { background: url("../img/jimon.png") right center no-repeat; background-size: 490px; }
  .sec-events { background: url("../img/jimon.png") left top no-repeat; background-size: 490px; }
  .sec-contact { background: url("../img/jimon.png") left top no-repeat; background-size: 490px; }
}

/* footer */
.foot { background-color: rgba(193, 168, 76, 0.18); padding: 24px 0 32px; }
.foot-info { font-size: 12px; line-height: 2; }
.foot-ttl { font-family: "Ryumin Bold KL", serif; font-size: 14px; margin-bottom: 1em; }
.foot-copyright { font-size: 10px; margin-top: 3em; -webkit-align-self: flex-end; -ms-align-self: flex-end; align-self: flex-end; }
@media screen and (min-width:960px) {
  .foot { margin-top: 20px; }
  .foot-wrap { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-justify-content: space-between; -ms-justify-content: space-between; justify-content: space-between; }
}

/* header */
.head { background: #fff; height: 100%; }
.head a { color: #222; display: inline-block; }
.head a:link, .head a:visited { color: #222; }
.head a:hover, .head a:active, .head a.current { color: #c9c2ae; }
.head-logo img { width: 72px; margin-left: 8px; }
.head-gnav { margin-top: 40px; }
.head-gnav-li { margin-top: 26px; font-family: "Ryumin Regular KL", serif; font-size: 20px; letter-spacing: 2.86px; }
.head-gnav-li span { font-size: 12px; line-height: 2; }
@media screen and (min-width:768px) {
  .head-gnav { position: absolute; margin-top: 6px; }
  .head-gnav-li { font-size: 16px; letter-spacing: 2px; }
}

/* mobile nav */
@media screen and (max-width:767px) {
  .nav-btn { position: fixed; top: 32px; left: 6.25%; z-index: 102; width: 24px; height: 32px; display: block; }
  .nav-icn { position: absolute; top: 50%; left: 50%; width: 24px; height: 2px; background: #152e53; display: block; margin-left: -12px; margin-top: -1px; }
  .nav-icn:before, .nav-icn:after { content: ""; -webkit-transition: all 600ms cubic-bezier(0.19, 1, 0.22, 1); transition: all 600ms cubic-bezier(0.19, 1, 0.22, 1); background: #152e53; display: block; }
  .nav-icn:before { position: absolute; top: 0; left: 0; width: 24px; height: 2px; -webkit-transform: translateY(-8px); -ms-transform: translateY(-8px); transform: translateY(-8px); }
  .nav-icn:after { position: absolute; top: 0; left: 0; width: 16px; height: 2px; -webkit-transform: translateY(8px); -ms-transform: translateY(8px); transform: translateY(8px); }
  .nav-icn.-active { background: transparent; }
  .nav-icn.-active:before { width: 24px; -webkit-transform: translateY(0) rotate(45deg) scale(1); -ms-transform: translateY(0) rotate(45deg) scale(1); transform: translateY(0) rotate(45deg) scale(1); }
  .nav-icn.-active:after { width: 24px; -webkit-transform: translateY(0) rotate(-45deg); -ms-transform: translateY(0) rotate(-45deg); transform: translateY(0) rotate(-45deg); }
  .nav-wrap { position: fixed; top: 0; left: -55%; padding: 64px 56px; z-index: 101; width: 50%; height: 100%; background: #fff; box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); -webkit-transition: all 600ms cubic-bezier(0.19, 1, 0.22, 1); transition: all 600ms cubic-bezier(0.19, 1, 0.22, 1); }
  .nav-wrap.-active { left: 0; -webkit-transition: all 600ms cubic-bezier(0.19, 1, 0.22, 1); transition: all 600ms cubic-bezier(0.19, 1, 0.22, 1); }
  .nav-overlay { cursor: pointer; position: fixed; top: 0; left: 0; z-index: 100; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.3); -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter: alpha(opacity=0); opacity: 0; visibility: hidden; }
  .nav-overlay.-active { -ms-filter: none; filter: none; opacity: 1; visibility: visible; -webkit-transition: opacity 600ms ease, visibility 0ms linear 0ms; transition: opacity 600ms ease, visibility 0ms linear 0ms; }
}
@media screen and (max-width:480px) {
  .nav-btn { top: 16px; }
  .nav-wrap { left: -85%; width: 80%; }
}

/* Trumps
--------------------------------------------------- */

/* typo */
._center { text-align: center !important; }
._left { text-align: left !important; }
._right { text-align: right !important; }
._small { font-size: 12px !important; }
._large { font-size: 16px !important; }

/* layout */
._m0 { margin: 0 !important; }
._p0 { padding: 0 !important; }
._cf::before, ._cf::after { content: " "; display: table; }
._cf::after { clear: both; }
._pull-right { float: right !important; }
._pull-left { float: left !important; }
._pc { display: none; }
@media screen and (min-width:768px) {
  ._pc { display: inline-block; }
  ._sp { display: none; }
}

/* Plugins
--------------------------------------------------- */

/* slick */
.slick-dots { position: absolute; right: 4.44%; bottom: 8px; z-index: 10; text-align: center; }
.slick-dots li { display: inline-block; margin: 0 3px; }
.slick-dots li button { font-size: 0; line-height: 0; display: block; cursor: pointer; height: 4px; width: 4px; border-radius: 50%; padding: 1px; border: 0; outline: none; color: transparent; background: #ba9940; }
.slick-dots li.slick-active button, .slick-dots li:hover button { background: #fdf8ec; }
@media screen and (min-width:768px) {
  .slick-dots { right: 26px; bottom: 24px; }
  .slick-dots li { display: inline-block; margin: 0 6px; }
  .slick-dots li button { height: 8px; width: 8px; }
}
