/*
Theme Name: Screenr
Theme URI: https://www.famethemes.com/themes/screenr
Author: FameThemes
Author URI: https://www.famethemes.com
Description: Big - Bold and stylish, Screenr is a multiuse fullscreen theme well suited for business, portfolio, digital agency, product showcase, freelancers and everyone else who appreciate good design. Also with the flexible of the header and navigation, it can be use for one page or multiple pages website. The theme was built on Bootstrap 4, so you know it contains clean, precise code that makes for a highly streanlined site. (Live preview : http://www.famethemes.com/preview/?theme=Screenr)

Version: 1.1.0 (Refactored)
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: screenr
Tags: one-column, two-columns, left-sidebar, right-sidebar, custom-background, custom-colors, custom-header, custom-logo, editor-style, featured-image-header, featured-images, footer-widgets, full-width-template, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready, blog, portfolio

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.

Screenr is based on Underscores http://underscores.me/, (C) 2016 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
1.0  Reset
2.0  Document
3.0  Layout
4.0  Structure
5.0  Contents
6.0  Elements
7.0  Widgets
8.0  Sections
9.0  External Plugins

--------------------------------------------------------------*/
/*--------------------------------------------------------------
2.0 Document Setup
--------------------------------------------------------------*/
/*------------------------------
	2.1 Typography
------------------------------*/
html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
}

html {
  box-sizing: border-box;
  /* -webkit-tap-highlight-color: transparent; を削除 */
  font-size: 16px;
}

@media (max-width: 991px) {
  html {
    font-size: 15px;
  }
}

@media (max-width: 767px) {
  html {
    font-size: 14px;
  }
}

body {
  background: #ffffff;
  height: 100%;
}

.site {
  position: relative;
}

pre,
code,
input,
textarea {
  font: inherit;
}

::-moz-selection {
  background: rgb(0, 0, 0);
  color: #ffffff;
}

::selection {
  background: rgb(0, 0, 0);
  color: #ffffff;
}

/* ------ Font ------ */

/* 各ブラウザに対応したWebフォントを指定 */
@font-face {
  font-family: "icomoon";
  src: url("fonts/icomoon.eot?afgnnj");
  src: url("fonts/icomoon.eot?afgnnj#iefix") format("embedded-opentype"),
    url("fonts/icomoon.ttf?afgnnj") format("truetype"),
    url("fonts/icomoon.woff?afgnnj") format("woff"),
    url("fonts/icomoon.svg?afgnnj#icomoon") format("svg");
  font-weight: normal;
  font-style: normal;
}

[class^="icon-"],
[class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: "icomoon" !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/*------------------------------
	2.2 Links
------------------------------*/
a {
  color: #e86240;
  text-decoration: none;
  outline: none;
}

a:hover {
  text-decoration: none;
  color: #777777;
  text-decoration: underline;
}

a:active,
a:focus,
a:hover {
  outline: none;
}

/*------------------------------
	2.3 Heading
------------------------------*/
h1,
h2,
h3,
h4,
h5,
h6 {
  clear: both;
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-weight: 400;
  /* 重複していた margin-bottom: 15px; を削除 */
  margin-bottom: 0.9375rem;
  margin-top: 0;
  color: #444444;
}

h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
  color: #444444;
  text-decoration: none;
}

h1 {
  line-height: 1.3;
  font-size: 33px;
  font-size: 2.0625rem;
}

@media (min-width: 768px) {
  h1 {
    font-size: 40px;
    font-size: 2.5rem;
  }
}

h1 span {
  font-weight: bold;
}

h2 {
  line-height: 1.2;
  font-size: 25px;
  font-size: 1.5625rem;
}

@media (min-width: 768px) {
  h2 {
    font-size: 32px;
    font-size: 2rem;
  }
}

h3 {
  font-size: 22px;
  font-size: 1.375rem;
}

h4 {
  font-size: 20px;
  font-size: 1.25rem;
  margin-bottom: 12px;
}

h5 {
  font-size: 18px;
  font-size: 1.125rem;
}

h6 {
  font-size: 16px;
  font-size: 1rem;
}

/*------------------------------
	2.4 Base
------------------------------*/
ul,
ol,
dl,
p,
details,
address,
.vcard,
figure,
pre,
fieldset,
table,
dt,
dd,
hr {
  margin-bottom: 15px;
  margin-bottom: 0.9375rem;
  margin-top: 0;
}

/*------------------------------
	2.5 Content
------------------------------*/
img {
  height: auto;
  max-width: 100%;
  vertical-align: middle;
}

b,
strong {
  font-weight: bold;
}

blockquote {
  clear: both;
  margin: 20px 0;
}

blockquote p {
  font-style: italic;
}

blockquote cite {
  font-style: normal;
  margin-bottom: 20px;
  font-size: 13px;
}

dfn,
cite,
em,
i {
  font-style: italic;
}

figure {
  margin: 0;
}

address {
  margin: 20px 0;
}

hr {
  border: 0;
  border-top: 1px solid #e9e9e9;
  height: 1px;
  margin-bottom: 20px;
}

tt,
kbd,
pre,
code,
samp,
var {
  font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
  background-color: #e9e9e9;
  padding: 5px 7px;
  /* -webkit-border-radius, -moz-border-radius を削除 */
  border-radius: 2px;
}

.site-content kbd {
  color: #666666;
}

pre {
  overflow: auto;
  white-space: pre-wrap;
  max-width: 100%;
  line-height: 1.7;
  margin: 20px 0;
  padding: 20px;
}

details summary {
  font-weight: bold;
  margin-bottom: 20px;
}

details :focus {
  outline: none;
}

abbr,
acronym,
dfn {
  cursor: help;
  font-size: 0.95em;
  text-transform: uppercase;
  border-bottom: 1px dotted #e9e9e9;
  letter-spacing: 1px;
}

mark {
  background-color: #fff9c0;
  text-decoration: none;
}

small {
  font-size: 82%;
}

big {
  font-size: 125%;
}

ul,
ol {
  padding-left: 20px;
}

ul {
  list-style: disc;
}

ol {
  list-style: decimal;
}

ul li,
ol li {
  margin: 8px 0;
}

dt {
  font-weight: bold;
}

dd {
  margin: 0 20px 20px;
}

/*------------------------------
	2.6 Table
------------------------------*/
table {
  width: 100%;
  margin-bottom: 20px;
  border: 1px solid #e9e9e9;
  border-collapse: collapse;
  border-spacing: 0;
}

table > thead > tr > th,
table > tbody > tr > th,
table > tfoot > tr > th,
table > thead > tr > td,
table > tbody > tr > td,
table > tfoot > tr > td {
  border: 1px solid #e9e9e9;
  line-height: 1.42857;
  padding: 5px;
  vertical-align: middle;
  text-align: center;
}

table > thead > tr > th,
table > thead > tr > td {
  border-bottom-width: 2px;
}

table th {
  font-size: 14px;
  letter-spacing: 2px;
  text-transform: uppercase;
}

/*------------------------------
	2.7 Form
------------------------------*/
fieldset {
  padding: 20px;
  border: 1px solid #e9e9e9;
}

input[type="reset"],
input[type="submit"],
input[type="submit"] {
  cursor: pointer;
  background: #e86240;
  border: none;
  display: inline-block;
  color: #ffffff;
  letter-spacing: 1px;
  text-transform: uppercase;
  line-height: 1;
  text-align: center;
  padding: 18px 23px 18px 23px;
  /* -webkit-border-radius, -moz-border-radius を削除 */
  border-radius: 2px;
  box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset;
  margin: 3px 0;
  text-decoration: none;
  font-weight: 600;
  font-size: 13px;
}

input[type="reset"]:hover,
input[type="submit"]:hover,
input[type="submit"]:hover {
  opacity: 0.8;
}

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

textarea {
  resize: vertical;
}

select {
  max-width: 100%;
  overflow: auto;
  vertical-align: top;
  outline: none;
  border: 1px solid #e9e9e9;
  padding: 10px;
}

textarea,
input[type="date"],
input[type="datetime"],
input[type="datetime-local"],
input[type="email"],
input[type="month"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="text"],
input[type="time"],
input[type="url"],
input[type="week"] {
  padding: 13px 13px;
  max-width: 100%;
  border: 0px;
  font-size: 15px;
  font-weight: normal;
  line-height: 22px;
  border-radius: 3px;
  /* -moz-transition, -webkit-transition, -o-transition を削除 */
  transition: all 0.2s linear;
  border: 1px solid #cccccc;
  box-sizing: border-box;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.08) inset;
  color: #222222;
}

textarea:focus,
input[type="date"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="email"]:focus,
input[type="month"]:focus,
input[type="number"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="text"]:focus,
input[type="time"]:focus,
input[type="url"]:focus,
input[type="week"]:focus {
  /* -moz-transition, -webkit-transition, -o-transition を削除 */
  transition: all 0.2s linear;
  border-color: #e86240;
}

button::-moz-focus-inner {
  border: 0;
  padding: 0;
}

input[type="radio"],
input[type="checkbox"] {
  margin: 0 10px;
}

/*------------------------------
	2.8 Accessibility
------------------------------*/
/* Text meant only for screen readers */
.screen-reader-text {
  /* 古い clip: rect(1px, 1px, 1px, 1px) から現代のsr-onlyパターンへ変更 */
  border: 0;
  clip: rect(0 0 0 0); /* 旧ブラウザ互換性のための残し */
  clip-path: inset(50%); /* 現代の推奨 */
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  white-space: nowrap;
  width: 1px;
}

.screen-reader-text:hover,
.screen-reader-text:active,
.screen-reader-text:focus {
  background-color: #f8f9f9;
  /* -webkit-border-radius, -moz-border-radius を削除 */
  border-radius: 3px;
  clip: auto !important;
  color: #e86240;
  display: block;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 17px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
  /* Above WP toolbar */
}

/*------------------------------
	2.8 Accessibility (※セクション番号が重複していたため修正)
------------------------------*/
/*------------------------------
	2.9 Alignments
------------------------------*/
.alignleft {
  display: inline;
  float: left;
  margin-right: 3.5em;
}

.alignright {
  display: inline;
  float: right;
  margin-left: 3.5em;
}

.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/*------------------------------
	3.0 Clearings
------------------------------*/
/* clearfixの記述を整理・統合 */
.clear:before,
.clear:after,
.entry-content:before,
.entry-content:after,
.comment-content:before,
.comment-content:after,
.site-header:before,
.site-header:after,
.site-content:before,
.site-content:after,
.site-footer:before,
.site-footer:after {
  content: "";
  display: table;
}

.clear:after,
.entry-content:after,
.comment-content:after,
.site-header:after,
.site-content:after,
.site-footer:after {
  clear: both;
}

/*------------------------------
	3.1 Infinite Scroll
------------------------------*/
/* Globally hidden elements when Infinite Scroll is supported and in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
  /* Theme Footer (when set to scrolling) */
  display: none;
}

/* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before. */
.infinity-end.neverending .site-footer {
  display: block;
}

/*------------------------------
	3.2 Helper. (※セクション番号を修正)
------------------------------*/
.hide {
  display: none;
}

.clearleft {
  clear: left;
}

.page-links {
  clear: both;
  padding-top: 15px;
  display: block;
}

.page-links a {
  padding: 0 5px;
}

.transition5 {
  /* ベンダープレフィックスを削除 */
  transition: all 0.5s ease;
}

/*--------------------------------------------------------------
3.0 Layout
--------------------------------------------------------------*/
#primary {
  padding-bottom: 40px;
  padding-top: 40px;
}

#secondary {
  padding-bottom: 40px;
  padding-top: 0;
}

@media screen and (min-width: 940px) {
  #secondary {
    padding-top: 40px;
  }
}

.content-area {
  width: 100%;
  float: none;
}

@media screen and (min-width: 940px) {
  .content-area {
    float: left;
  }
}

.site-content .sidebar {
  width: 100%;
  float: none;
}

@media screen and (min-width: 940px) {
  .site-content .sidebar {
    width: 25.22523%;
    float: left;
  }
}

.no-sidebar .content-area {
  width: 100%;
}

.no-sidebar .entry-content {
  max-width: 100%;
}

@media screen and (min-width: 940px) {
  .left-sidebar .content-area {
    float: right;
    padding-left: 39px;
    border-left: 1px solid #e9e9e9;
    margin-right: 1px;
    width: 74.77477%;
  }
  .left-sidebar .sidebar {
    padding-right: 39px;
    border-right: 1px solid #e9e9e9;
    margin-right: -1px;
  }
  .right-sidebar .content-area {
    padding-right: 39px;
    border-right: 1px solid #e9e9e9;
    width: 74.77477%;
  }
  .right-sidebar .sidebar {
    padding-left: 39px;
    border-left: 1px solid #e9e9e9;
    margin-left: -1px;
  }
}

/*--------------------------------------------------------------
4.0 Structure
--------------------------------------------------------------*/
/* Header
------------------------------*/
.scrolled.header-layout-fixed .site-header {
  line-height: 70px;
  height: 70px;
}

.scrolled.header-layout-fixed .site-header .nav-menu.nav-menu-mobile {
  top: 70px;
}

.scrolled.has-site-title.has-site-tagline .site-header {
  height: 70px;
}

.site-header {
  line-height: 85px;
  position: relative;
  width: 100%;
  background: #ffffff;
  z-index: 99;
  /* -webkit-transition を削除 */
  transition: all 0.5s ease-out;
}

.site-header.transparent {
  background: transparent;
}

.site-header.sticky-header.transparent.header-fixed {
  border-bottom-color: transparent;
}

.site-header.sticky-header.transparent {
  position: fixed;
}

.site-header-wrapper {
  display: block;
}

.site-header.header-fixed {
  box-shadow: 0 5px 10px 0 rgba(50, 50, 50, 0.06);
}

.site-header.header-fixed.transparent {
  background: rgba(0, 0, 0, 0.8);
}

.site-header-wrapper.is-fixed .header-fixed {
  position: fixed;
}

.is-fixed .site-header.header-fixed {
  top: 0px;
  left: 0px;
}

.sticky-header.transparent .swiper-slide-intro {
  padding-top: 50px;
  padding-top: 3.125rem;
}

.site-branding {
  float: left;
}

.site-branding .site-title,
.site-branding .site-text-logo {
  margin: 0px;
  line-height: 1;
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-size: 23px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: rgb(0, 0, 0);
  display: initial;
  vertical-align: middle;
  font-weight: 600;
  position: relative;
}

.site-branding .site-title:hover,
.site-branding .site-title a:hover,
.site-branding .site-text-logo:hover,
.site-branding .site-text-logo a:hover {
  text-decoration: none;
}

.site-branding .site-description {
  line-height: 16px;
  line-height: 1rem;
  font-size: 12px;
  font-size: 0.75rem;
  margin-bottom: 0px;
  margin-bottom: 0rem;
  margin-top: 6px;
  margin-top: 0.375rem;
}

.custom-logo-link {
  display: block;
}

.wp-custom-logo .site-title,
.wp-custom-logo .site-description {
  display: none !important;
}

.wp-custom-logo .site-branding .custom-logo-link {
  display: block;
}

.no-site-title .site-title {
  display: none;
}

.no-site-title.has-site-tagline .site-description {
  margin-top: 0px;
  line-height: 85px;
}

.no-site-tagline .site-description {
  display: none;
}

.has-site-title.has-site-tagline .site-header {
  display: block;
  height: 85px;
  z-index: 20;
}

.has-site-title.has-site-tagline .container {
  display: block;
  height: 100%;
}

.has-site-title.has-site-tagline .site-branding {
  position: relative;
  top: 50%;
  transform: translateY(-50%);
  line-height: 1;
}

.has-site-title.has-site-tagline .site-title {
  display: inline-block;
}

.site-branding .site-title a,
.site-branding .site-description {
  color: #333333;
}

.transparent .site-title,
.transparent .site-title a,
.transparent .site-description {
  color: #fff;
}

.header-social {
  margin-left: 0px;
  float: right;
}

@media screen and (min-width: 940px) {
  .header-social {
    margin-left: 10px;
  }
}

@media screen and (max-width: 576px) {
  .header-social {
    display: none;
  }
}

.header-social a {
  display: block;
  height: 100%;
  float: left;
  margin-left: 0px;
  margin-top: -2px;
  color: #e86240;
}

@media screen and (min-width: 940px) {
  .header-social a {
    margin-left: 3px;
  }
}

.header-social a:hover {
  color: rgb(0, 0, 0);
  transition: all 0.2s linear 0s;
}

.header-social .fa-stack-1x,
.header-social .fa-stack-2x {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}

.header-social .fa-stack-1x {
  line-height: inherit;
}

.header-social .fa-stack-2x {
  font-size: 2em;
}

.header-social .fa-inverse {
  color: #ffffff;
}

.header-btn {
  float: right;
}

/* Site Navigation */
.nav-menu,
.nav-menu * {
  margin: 0;
  padding: 0;
  list-style: none;
}

.nav-menu {
  float: right;
}

.nav-menu ul {
  position: absolute;
  display: none;
  top: 100%;
  left: 0;
  z-index: 99;
}

.nav-menu ul ul {
  top: 0;
  left: 100%;
}

.nav-menu li {
  position: relative;
}

.nav-menu > li {
  float: left;
}

.nav-menu li:hover > ul,
.nav-menu li.sfHover > ul {
  display: block;
}

.nav-menu a {
  display: block;
  position: relative;
}

.nav-menu ul {
  min-width: 12em;
  *width: 12em;
  border: 1px solid #e9e9e9;
  border-top: none;
}

.nav-menu li {
  white-space: nowrap;
  *white-space: normal;
  /* -webkit-transition を削除 */
  transition: background 0.2s;
}

.nav-menu li.current-menu-item > a {
  color: #e86240;
}

.nav-menu li:hover,
.nav-menu li.sfHover {
  /* -webkit-transition を削除 */
  transition: none;
}

.nav-menu a {
  color: #333333;
  padding-left: 17px;
  padding-right: 17px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  zoom: 1;
}

.nav-menu a:hover {
  color: #e86240;
}

.nav-menu ul li {
  line-height: 26px;
}

.nav-menu ul li a {
  border-top: 1px solid #e9e9e9;
  padding: 8px 18px;
  color: #999999;
  font-size: 13px;
  text-transform: none;
  background: #ffffff;
  letter-spacing: 0;
}

.nav-menu ul li a:hover {
  color: #e86240;
}

.nav-menu li.onepress-current-item > a {
  color: #e86240;
}

.nav-menu ul li.current-menu-item > a {
  color: #e86240;
}

.nav-menu > li:last-child > a {
  padding-right: 0px;
}

.nav-menu > li a.menu-actived {
  color: #e86240;
}

.nav-menu .nav-toggle-subarrow {
  display: none;
}

@media screen and (min-width: 1140px) {
  .sticky-header.transparent .nav-menu > li > a {
    color: #ffffff;
    position: relative;
  }
  .sticky-header.transparent .nav-menu > li > a::after {
    border-bottom: 2px solid transparent;
    content: " ";
    display: block;
    position: absolute;
    bottom: 20px;
    bottom: 1.25rem;
    left: 17px;
    left: 1.0625rem;
    right: 17px;
    right: 1.0625rem;
  }
  .sticky-header.transparent .nav-menu > li:hover > a::after,
  .sticky-header.transparent .nav-menu > li.current-menu-item > a::after {
    border-bottom-color: #ffffff;
  }
  .sticky-header.transparent .nav-menu > li:last-child > a {
    padding-right: 17px;
  }
}

@media screen and (max-width: 1140px) {
  .transparent #nav-toggle span,
  .transparent #nav-toggle span:after,
  .transparent #nav-toggle span:before {
    background-color: #ffffff;
  }
  .transparent #nav-toggle.nav-is-visible span {
    background-color: transparent;
  }
  .transparent #nav-toggle.nav-is-visible span:before,
  .transparent #nav-toggle.nav-is-visible span::after {
    background-color: #ffffff;
  }
}

#nav-toggle {
  display: none;
  margin-left: 15px;
}

@media screen and (max-width: 1140px) {
  .main-navigation {
    position: static;
  }
  .main-navigation .nav-menu {
    width: 100% !important;
    display: none;
  }
  .nav-menu.nav-menu-mobile {
    /* !important は競合回避のため維持 */
    display: block !important;
    position: absolute;
    top: 85px;
    right: 0;
    width: 100%;
    background: transparent;
    z-index: 100;
    border-bottom: 1px solid #e9e9e9;
  }
  .nav-menu.nav-menu-mobile > li > a {
    padding: 12px 20px;
  }
  .nav-menu.nav-menu-mobile li:hover ul {
    display: none;
  }
  .nav-menu.nav-menu-mobile ul {
    box-shadow: none;
    padding-bottom: 0;
    border: none;
    position: relative;
  }
  .nav-menu.nav-menu-mobile ul li:last-child {
    border-bottom: none;
  }
  .nav-menu.nav-menu-mobile ul li a {
    padding: 12px 35px;
    border-top: none;
  }
  .nav-menu.nav-menu-mobile ul li a:hover {
    background: transparent;
  }
  .nav-menu.nav-menu-mobile ul li li a {
    padding: 12px 70px;
    border-top: none;
  }
  .nav-menu.nav-menu-mobile ul li li li a {
    padding: 12px 105px;
  }
  .nav-menu.nav-menu-mobile ul ul {
    left: 0px;
  }
  .nav-menu.nav-menu-mobile li {
    line-height: 20px;
    background: #ffffff;
    border-top: 1px solid #e9e9e9;
    width: 100% !important;
  }
  .nav-menu.nav-menu-mobile li.nav-current-item > a {
    color: #e86240;
  }
  .nav-menu.nav-menu-mobile a {
    color: #777777;
  }
  .nav-menu.nav-menu-mobile a:hover {
    color: rgb(0, 0, 0);
  }
  .nav-menu.nav-menu-mobile .nav-toggle-subarrow {
    display: block;
    color: #999999;
    border-left: 1px solid #e9e9e9;
    font-weight: normal;
    position: absolute;
    top: 0;
    right: 0;
    cursor: pointer;
    text-align: center;
    padding: 11px 20px;
    z-index: 10;
    font-size: 22px;
  }
  .nav-menu.nav-menu-mobile
    .nav-toggle-dropdown
    > .nav-toggle-subarrow
    .fa-angle-down:before {
    /* アイコンフォントの content はそのまま維持 */
    content: "\e600" !important;
  }
  .nav-menu.nav-menu-mobile .nav-toggle-dropdown > ul {
    /* !important は競合回避のため維持 */
    display: block !important;
  }
  #nav-toggle {
    display: block;
  }
}

/* --- ハンバーガーメニューアイコン (#nav-toggle) --- */

#nav-toggle {
  float: right;
  position: relative;
  width: 35px;
  overflow: hidden;
  white-space: nowrap;
  color: transparent;
}

#nav-toggle span {
  position: absolute;
  top: 50%;
  right: 5px;
  margin-top: -2px;
  /* ベンダープレフィックスを削除し、標準の transition に */
  transition: background 0.2s;
  display: inline-block;
  height: 3px;
  width: 24px;
  background: rgb(0, 0, 0);
}

#nav-toggle span:before {
  top: -8px;
}

#nav-toggle span:after {
  top: 8px;
}

#nav-toggle span:before,
#nav-toggle span:after {
  position: absolute;
  display: inline-block;
  height: 3px;
  width: 24px;
  background: rgb(0, 0, 0);
  content: "";
  right: 0;
  /* ベンダープレフィックスを削除し、標準の transform に */
  transform: translateZ(0);
  /* backface-visibility は標準プロパティに統一 */
  backface-visibility: hidden;
  /* transform-origin は標準プロパティに統一 */
  transform-origin: 0% 50%;
  /* transition は標準プロパティに統一 */
  transition: transform 0.2s;
}

#nav-toggle.nav-is-visible span {
  background: transparent;
}

/* メニューオープン時のX字への変形 */
#nav-toggle.nav-is-visible span:before {
  /* ベンダープレフィックスを削除し、標準の transform に */
  transform: translateX(4px) translateY(-1px) rotate(45deg);
}

#nav-toggle.nav-is-visible span:after {
  /* ベンダープレフィックスを削除し、標準の transform に */
  transform: translateX(4px) translateY(0px) rotate(-45deg);
}

#nav-toggle.nav-is-visible span:before,
#nav-toggle.nav-is-visible span:after {
  background: rgb(0, 0, 0);
}

/* --- Page header cover --- */
#page-header-cover .swiper-slide-heading {
  font-size: 40px;
  font-size: 2.5rem;
  font-weight: 600;
}

@media (max-width: 767px) {
  #page-header-cover .swiper-slide-heading {
    font-size: 30px;
    font-size: 1.875rem;
  }
}

/* --- Content --- */
.site-content {
  position: relative;
  z-index: 10;
}

.blog .site-content,
.single-post .site-content {
  margin-top: 0;
}

.site-content.no-border {
  border-top: none;
}

.page-header {
  padding: 30px 0px;
  border-top: 1px solid #e9e9e9;
  background: #f8f9f9;
  border-bottom: 1px solid #e9e9e9;
}

.page-header .entry-title,
.page-header .page-title {
  margin-bottom: 0px;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.page-header p {
  margin: 6px 0px 0px 0px;
}

/* --- Footer --- */
.site-footer {
  background: rgb(0, 0, 0);
  color: #888888;
  font-size: 14px;
}

.site-footer a {
  color: #e86240;
}

.site-footer table > thead > tr > th,
.site-footer table > tbody > tr > th,
.site-footer table > tfoot > tr > th,
.site-footer table > thead > tr > td,
.site-footer table > tbody > tr > td,
.site-footer table > tfoot > tr > td {
  border-color: rgba(255, 255, 255, 0.1);
}
/* --- Footer Widgets --- */
.site-footer .footer-widgets.section-padding {
  /* 重複していた px 単位の padding を削除し、rem のみを残す */
  padding: 3.75rem 0rem 1.25rem 0rem;
}

.site-footer .sidebar .widget a {
  color: #bbbbbb;
}

.site-footer .sidebar .widget a:hover {
  text-decoration: underline;
}

/* --- Site Info / Copyright --- */
.site-footer .site-info {
  position: relative;
  text-align: center;
  padding: 21px 0px;
  background: #222222;
  border-top: 1px solid #333;
  font-weight: 500;
  color: #777777;
  font-size: 13px;
}

.site-footer .site-info a {
  color: #777777;
}

.site-footer .site-info a:hover {
  text-decoration: underline;
}

.site-footer .site-info::after {
  /* 他の clearfix 定義と統合されていればこの clear: both の記述は削除可能だが、単体ルールとして維持 */
  clear: both;
}

.site-footer .site-info .site-copyright {
  float: left;
}

.site-footer .site-info .theme-info {
  float: right;
}

@media (max-width: 767px) {
  .site-footer .site-info .site-copyright {
    float: none;
    text-align: center;
    margin-bottom: 15px;
  }
  .site-footer .site-info .theme-info {
    float: none;
    text-align: center;
  }
}

/* --- Back to Top Button (.btt a) --- */
.site-footer .btt a {
  border-radius: 0px 20px 0 0;
  color: #999999;
  background: #222222;
  display: block;
  font-size: 30px;
  height: 50px;
  line-height: 50px;
  margin: auto;
  position: absolute;
  right: 60px;
  top: -25px;
  transition: all 0.2s linear 0s;
  width: 50px;
  /* ベンダープレフィックスを削除し、標準の transform に統一 */
  transform: rotate(-45deg);
}

.site-footer .btt a:hover {
  color: #e86240;
}

.site-footer .btt a i {
  /* ベンダープレフィックスを削除し、標準の transform に統一 */
  transform: rotate(45deg);
}

@media screen and (max-width: 940px) {
  .site-footer .btt a {
    right: 0;
    left: 0;
  }
}

.site-footer .sidebar .widget .widget-title {
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 20px;
}

.site-footer .widget_recent_entries ul li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.site-footer .widget_tag_cloud a {
  border-color: rgba(255, 255, 255, 0.1);
}

/*--------------------------------------------------------------
5.0 Contents
--------------------------------------------------------------*/
/* Page: 404
------------------------------*/
.error404 {
  text-align: center;
}

.error404 .fa-frown-o {
  margin-bottom: 10px;
}

.error404 .search-form,
.error404 .widget {
  margin-bottom: 40px;
  text-align: center;
}

.error404 .search-form {
  margin-top: 30px;
}

.error404 .search-form input {
  margin: 0;
}

.error404 .page-header,
.error404 .page-title {
  text-align: center;
}

.error404 .widgettitle,
.error404 .widget-title {
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 13px;
  font-weight: 700;
}

.error404 ul {
  padding-left: 0px;
}

.error404 ul li {
  list-style: none;
}

/* Page: Search
------------------------------*/
.search-results .hentry {
  border-bottom: 1px solid #e9e9e9;
  padding-bottom: 25px;
  margin-bottom: 25px;
}

.search-results .entry-summary p {
  margin-bottom: 0px;
}

.search-results .entry-header .entry-title {
  font-size: 22px;
  line-height: 1.5;
  font-weight: 500;
}

.search-results .entry-header .entry-title a:hover {
  text-decoration: none;
}

/* Page: Blog List - Default
------------------------------*/
.blog .content-area article,
.archive .content-area article,
.search .content-area article {
  margin-bottom: 30px;
  margin-bottom: 1.875rem;
  padding-bottom: 40px;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid #e9e9e9;
}

.blog .entry-content,
.archive .entry-content,
.search .entry-content {
  margin-bottom: 25px;
}

/* Entry Header
------------------------------*/
.entry-header .entry-title {
  font-weight: 600;
  text-transform: none;
  letter-spacing: -0.6px;
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-size: 23px;
  line-height: 1.3;
  word-wrap: break-word;
}

@media screen and (min-width: 940px) {
  .entry-header .entry-title {
    font-size: 28px;
    line-height: 1.5;
  }
}

.single .entry-header .entry-title {
  margin-bottom: 30px;
  font-size: 28px;
}

@media screen and (min-width: 940px) {
  .single .entry-header .entry-title {
    font-size: 32px;
    line-height: 1.5;
  }
}

.single .entry-meta {
  border-top: 1px solid #e9e9e9;
  padding-top: 14px;
}

.highlight {
  color: #e86240;
}

/* Entry Content
------------------------------*/
.content-area {
  word-wrap: break-word;
}

.entry-content {
  margin-bottom: 30px;
  margin-top: 20px;
  max-width: 790px;
  word-wrap: break-word;
}

.entry-content blockquote {
  padding: 30px;
  position: relative;
  background: #f8f9f9;
  border-left: 3px solid #e86240;
  font-style: italic;
}

.entry-content blockquote p {
  margin: 0px;
}

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
  font-weight: normal;
  text-transform: none;
}

.entry-content h1 {
  letter-spacing: -0.5px;
}

.entry-content h2 {
  letter-spacing: -0.3px;
}

/* Entry Stuff
------------------------------*/
.entry-more a {
  /* 重複していた px 単位の padding を削除し、rem のみを残す */
  padding: 0.5rem 0.9375rem 0.625rem;
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
}

.entry-more a i {
  margin-left: 5px;
}

.entry-meta {
  margin-bottom: 15px;
  font-size: 14px;
  font-size: 0.875rem;
  color: #999999;
}

.entry-meta::after {
  content: "";
  display: table;
  clear: both;
}

.entry-meta a {
  color: #888888;
}

.entry-meta a:hover {
  color: #e86240;
}

.entry-meta i {
  color: #e86240;
}

.entry-meta > span {
  margin-left: 15px;
  padding-left: 15px;
  position: relative;
}

@media (max-width: 767px) {
  .entry-meta > span {
    width: 50%;
    margin-bottom: 5px;
  }
  .entry-meta > span.meta-cate {
    display: none;
  }
}

.entry-meta > span:before {
  background: #cccccc none repeat scroll 0 0;
  content: "";
  height: 12px;
  left: 0;
  position: absolute;
  top: 4px;
  width: 1px;
}

@media (max-width: 767px) {
  .entry-meta > span:before {
    content: none;
  }
}

.entry-meta > span:first-child {
  margin-left: 0px;
  padding-left: 0px;
}

.entry-meta > span:first-child:before {
  content: none;
}

.entry-meta > span:last-child {
  float: right;
}

@media (max-width: 767px) {
  .entry-meta > span:last-child {
    float: none;
  }
}

.entry-meta > span:last-child:first-child {
  float: left;
}

.entry-footer {
  margin-bottom: 30px;
  padding-top: 30px;
  border-top: 1px solid #e9e9e9;
}

.entry-footer .cat-links,
.entry-footer .tags-links {
  display: block;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-size: 12px;
  font-weight: 600;
  margin-top: 5px;
}

.nav-links {
  padding: 30px 0px;
  border-left: none;
  border-right: none;
  margin-bottom: 50px;
}

.nav-links .nav-previous {
  float: left;
}

.nav-links .nav-next {
  float: right;
}

.nav-links a {
  background: #cccccc;
  color: #ffffff;
  padding: 12px 20px;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
  border-radius: 2px;
}

.nav-links a:hover {
  background: #e86240;
  text-decoration: none;
}

.bypostauthor {
  margin: 0;
}

/* Sticky Post
------------------------------*/
.sticky .entry-title {
  padding-left: 20px;
  position: relative;
}

.sticky .entry-title:after {
  content: "\f276";
  display: inline-block;
  font-family: "FontAwesome";
  font-style: normal;
  font-weight: normal;
  width: 12px;
  height: 12px;
  position: absolute;
  left: 0px;
  top: 7px;
  font-size: 22px;
  color: #e86240;
}

/* WordPress caption style
------------------------------*/
.wp-caption {
  max-width: 100%;
  font-style: italic;
  line-height: 1.35;
  margin-bottom: 15px;
  margin-top: 5px;
}

.wp-caption img[class*="wp-image-"] {
  display: block;
  max-width: 100%;
}

.wp-caption .wp-caption-text {
  margin: 10px 0px;
}

.wp-caption-text,
.entry-thumbnail-caption,
.cycle-caption {
  font-style: italic;
  line-height: 1.35;
  font-size: 13px;
}

/* WordPress Gallery
------------------------------*/
.gallery {
  margin: -5px;
  margin-bottom: 1.5em;
}

.gallery-item {
  display: inline-block;
  text-align: center;
  vertical-align: top;
  width: 100%;
  margin-bottom: 1em;
}

.gallery-item .gallery-icon {
  padding: 5px;
}

.gallery-item .gallery-icon img {
  width: 100%;
  height: auto;
}

.gallery-columns-2 .gallery-item {
  max-width: 50%;
}

.gallery-columns-3 .gallery-item {
  max-width: 33.33%;
}

.gallery-columns-4 .gallery-item {
  max-width: 25%;
}

.gallery-columns-5 .gallery-item {
  max-width: 20%;
}

.gallery-columns-6 .gallery-item {
  max-width: 16.66%;
}

.gallery-columns-7 .gallery-item {
  max-width: 14.28%;
}

.gallery-columns-8 .gallery-item {
  max-width: 12.5%;
}

.gallery-columns-9 .gallery-item {
  max-width: 11.11%;
}

.gallery-caption {
  display: block;
}

/* Video Audio */
.wp-audio-shortcode,
.wp-video-shortcode {
  margin: 15px 0px 30px;
}

/* Comments
------------------------------*/
#comments {
  padding-top: 30px;
  border-top: 1px solid #e9e9e9;
}

#comments .comments-title {
  margin-bottom: 20px;
  font-size: 18px;
  line-height: 26px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

#comments .comment-list {
  list-style: none;
  padding-left: 0px;
}

#comments .comment-list .pingback {
  border-bottom: 1px solid #e9e9e9;
  padding: 20px 0;
  margin: 0;
}

#comments .comment-list .pingback p {
  margin: 0px;
}

#comments .comment-list .pingback:last-child {
  margin-bottom: 40px;
}

#comments .comment-content.entry-content {
  margin-bottom: 0px;
}

#comments .comment {
  list-style: none;
  margin: 30px 0;
}

#comments .comment .avatar {
  width: 60px;
  float: left;
  /* ベンダープレフィックスを削除し、標準の border-radius に統一 */
  border-radius: 3px;
}

#comments .comment .comment-wrapper {
  margin-left: 90px;
  padding: 25px 30px 15px 30px;
  background: #f8f9f9;
  position: relative;
}

#comments .comment .comment-wrapper:before {
  border-color: transparent #f6f7f9 transparent transparent;
  border-style: solid;
  border-width: 0 10px 10px 0;
  content: "";
  height: 0;
  left: -9px;
  position: absolute;
  top: 0;
  width: 0;
}

#comments .comment .comment-wrapper .comment-meta .comment-time,
#comments .comment .comment-wrapper .comment-meta .comment-reply-link,
#comments .comment .comment-wrapper .comment-meta .comment-edit-link {
  color: #aaaaaa;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  font-size: 11px;
}

#comments .comment .comment-wrapper .comment-meta .comment-time:hover,
#comments .comment .comment-wrapper .comment-meta .comment-reply-link:hover,
#comments .comment .comment-wrapper .comment-meta .comment-edit-link:hover {
  color: #e86240;
}

#comments .comment .comment-wrapper .comment-meta .comment-time:after,
#comments .comment .comment-wrapper .comment-meta .comment-reply-link:after,
#comments .comment .comment-wrapper .comment-meta .comment-edit-link:after {
  content: "/";
  padding: 0px 5px;
}

#comments .comment .comment-wrapper .comment-meta a:last-child:after {
  content: "";
}

#comments .comment .comment-wrapper .comment-meta cite .fn {
  font-weight: bold;
  font-style: normal;
  margin-right: 5px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-size: 14px;
}

#comments .comment .comment-wrapper .comment-meta cite span {
  padding: 3px 10px;
  background: #e9e9e9;
  /* ベンダープレフィックスを削除し、標準の border-radius に統一 */
  border-radius: 4px;
  margin-right: 10px;
}

#comments .comment .comment-wrapper a {
  text-decoration: none;
}

#comments .comment .comment-wrapper a:hover {
  text-decoration: underline;
}

#comments .comment .children {
  padding-left: 30px;
}

#comments .comment .children .children {
  padding-left: 30px;
}

#comments .comment .children .children .children {
  padding-left: 0px;
}

@media screen and (min-width: 940px) {
  #comments .comment .children {
    padding-left: 90px;
  }
  #comments .comment .children .children {
    padding-left: 90px;
  }
  #comments .comment .children .children .children {
    padding-left: 90px;
  }
}

#comments .form-allowed-tags {
  display: none;
}

#comments a {
  text-decoration: none;
}

#comments a:hover {
  text-decoration: underline;
}

.right-sidebar .comment-respond textarea,
.left-sidebar .comment-respond textarea {
  width: 100%;
}

/* Comment Form
------------------------------*/
#respond {
  padding-top: 20px;
}

#respond .comment-form label {
  display: block;
  margin-bottom: 4px;
}

#respond .form-allowed-tags {
  font-size: 12px;
}

#respond .form-allowed-tags code {
  background: none;
}

#respond .comment-reply-title {
  font-size: 18px;
  letter-spacing: 1.5px;
  margin-bottom: 20px;
  text-transform: uppercase;
}

#respond .comment-notes {
  display: none;
}

#respond label {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
}

.full-screen .comments-area {
  max-width: 1110px;
  margin: 0 auto;
}

/*--------------------------------------------------------------
6.0 Elements
--------------------------------------------------------------*/
/* Button
------------------------------*/
.btn {
  /* -webkit-border-radius, -moz-border-radius を削除 */
  border-radius: 2px;
  font-size: 13px;
  font-size: 0.8125rem;
  font-weight: 600;
}

.btn:active,
.btn:focus {
  outline: none;
}

.btn-lg {
  font-size: 17px;
  font-size: 1.0625rem;
}

.btn-theme-primary {
  background: #e86240;
  color: #ffffff;
}

.btn-theme-primary:hover {
  color: #ffffff;
  opacity: 0.9;
}

.btn-theme-primary-outline {
  background-color: transparent;
  background-image: none;
  border-color: #e86240;
  color: #e86240;
}

.btn-theme-primary-outline:hover {
  color: #fff;
  background-color: #e86240;
  border-color: #e86240;
}

.slide_content .btn {
  margin: 10px;
}

.slide_content .btn-secondary-outline {
  border-color: #fff;
  color: #fff;
}

.slide_content .btn-secondary-outline:hover {
  background: #ffffff;
  color: #333333;
}

/*--------------------------------------------------------------
7.0 Widgets
--------------------------------------------------------------*/
.widget {
  word-wrap: break-word;
}

.sidebar .widget {
  margin-bottom: 40px;
}

.sidebar .widget .widget-title {
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 13px;
  font-weight: 700;
}

.sidebar .widget ul {
  list-style: none;
  padding: 0px;
}

.sidebar .widget ul:after {
  clear: both;
  content: ".";
  display: block;
  height: 0;
  visibility: hidden;
}

.sidebar .widget a {
  color: #777777;
  font-size: 14px;
}

.sidebar .widget a:hover {
  color: #e86240;
  text-decoration: underline;
}

/* Search
------------------------------*/
.sidebar .widget .search-form .search-field {
  width: 100% !important;
  /* 重複していた padding: 10px 15px; を削除し、rem のみを残す */
  padding: 0.625rem 0.9375rem;
}

.sidebar .widget .search-form .search-submit {
  padding: 12px 23px 12px;
  width: 93%;
}

/* Recent Comment
------------------------------*/
.widget_recent_comments ul {
  margin-top: 25px;
}

.widget_recent_comments ul li {
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #e9e9e9;
}

.widget_recent_comments ul a {
  font-style: italic;
}

.widget_recent_comments .comment-author-link a {
  font-weight: bold;
  font-style: normal;
}

/* Recent Categories, Archive, Meta
------------------------------*/
.widget-area .widget_categories li,
.widget-area .widget_archive li,
.widget-area .widget_meta li {
  float: left;
  margin-bottom: 0;
  width: 50%;
}

@media screen and (min-width: 720px) {
  .widget-area .widget_categories li,
  .widget-area .widget_archive li,
  .widget-area .widget_meta li {
    width: 50%;
  }
}

@media screen and (min-width: 940px) {
  .widget-area .widget_categories li,
  .widget-area .widget_archive li,
  .widget-area .widget_meta li {
    width: 100%;
    float: none;
  }
}

@media screen and (min-width: 1140px) {
  .widget-area .widget_categories li,
  .widget-area .widget_archive li,
  .widget-area .widget_meta li {
    width: 50%;
    float: left;
  }
}

.widget_recent_entries ul li {
  margin: 0px;
  padding: 10px 0px 10px 0px;
  border-bottom: 1px solid #e9e9e9;
}

/* Tags */
.widget_tag_cloud a {
  border: 1px solid #e9e9e9;
  border-radius: 2px;
  display: inline-block;
  font-size: 13px !important;
  margin-bottom: 5px;
  padding: 2.5px 10px 3px;
}

/* Business Text Widget */
.contact-info-item {
  margin-bottom: 13px;
}

.contact-info-item .contact-text {
  display: block;
  float: left;
  width: 130px;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-top: 2px;
  position: relative;
}

.contact-info-item .contact-value {
  display: block;
  margin-left: 135px;
}

.contact-info-item .contact-text {
  width: 30px;
}

.contact-info-item .contact-text i {
  font-size: 16px;
}

.contact-info-item .contact-text i.fa-envelope {
  font-size: 12px;
  position: relative;
  top: -3px;
}

.contact-info-item .contact-text i.fa-fax {
  font-size: 14px;
  position: relative;
  top: -3px;
}

.contact-info-item .contact-value {
  margin-left: 35px;
}

.contact-info-box img {
  margin-bottom: 30px;
}

ul.hours li {
  border-top: 1px dotted rgba(255, 255, 255, 0.1);
  padding: 5px 0px 1px;
}

ul.hours li:first-child {
  border-top: none;
}

ul.hours span {
  float: right;
  font-weight: bold;
}

/*--------------------------------------------------------------
8.0 Sections
--------------------------------------------------------------*/
/* Section Stuffs
------------------------------*/
.section-padding {
  /* 重複していた padding: 50px 0px; を削除し、rem のみを残す */
  padding: 3.125rem 0rem;
}

.section-padding-lg {
  /* 重複していた padding: 70px 0px; を削除し、rem のみを残す */
  padding: 4.375rem 0rem;
}

.section-padding-larger {
  /* 重複していた padding: 100px 0px; を削除し、rem のみを残す */
  padding: 6.25rem 0rem;
}

.section-padding-empty {
  padding: 0px;
  padding: 0rem;
}

.section-meta {
  background-color: #f8f9f9;
}

.onepage-section,
.screenr-section {
  position: relative;
  overflow: hidden;
}

.onepage-section .container,
.screenr-section .container {
  position: relative;
  z-index: 5;
}

.section-inverse {
  background: #222222;
}

.section-inverse .section-title-area .section-title {
  color: rgba(255, 255, 255, 0.99);
}

.section-inverse .section-title-area .section-subtitle {
  color: rgba(255, 255, 255, 0.7);
}

.section-inverse .section-title-area .section-subtitle::after {
  background: rgba(255, 255, 255, 0.8);
}

.section-inverse-extended {
  background: #333333;
}

.section-inverse-extended .section-title-area .section-title {
  color: rgba(255, 255, 255, 0.99);
}

.section-inverse-extended .section-title-area .section-subtitle {
  color: rgba(255, 255, 255, 0.7);
}

.section-inverse-extended .section-title-area .section-subtitle::after {
  background: rgba(255, 255, 255, 0.8);
}

.section-inverse {
  color: rgba(255, 255, 255, 0.5);
}

.section-inverse h1,
.section-inverse h2,
.section-inverse h3,
.section-inverse h4,
.section-inverse h5,
.section-inverse h6 {
  color: rgba(255, 255, 255, 0.9);
}

.section-inverse p {
  color: rgba(255, 255, 255, 0.5);
}

.section-title-area {
  margin-bottom: 40px;
  text-align: center;
}

.section-title-area .section-title {
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-size: 28px;
  letter-spacing: 0px;
  text-transform: uppercase;
  font-weight: 600;
  position: relative;
  margin-bottom: 0px;
}

@media screen and (min-width: 940px) {
  .section-title-area .section-title {
    font-size: 36px;
  }
}

.section-title-area .section-subtitle {
  font-size: 12px;
  display: inline-block;
  position: relative;
  /* 重複していた margin: 0px 0px 10px 0px; を削除し、rem のみを残す */
  margin: 0rem 0rem 0.625rem 0rem;
  text-transform: uppercase;
  letter-spacing: 2px;
}

@media screen and (min-width: 940px) {
  .section-title-area .section-subtitle {
    font-size: 14px;
  }
}

.section-desc {
  font-size: 20px;
  font-size: 1.25rem;
  margin-top: 40px;
  margin-top: 2.5rem;
}

.section-content {
  padding-top: 10px;
}

/* Full Screen Slider
------------------------------*/
.swiper-slider {
  width: 100%;
  /* display: block; はデフォルトなので不要 */
  position: relative;
  overflow: hidden;
  /* z-index: 0; は意図がなければ省略可能 */
}

/* swiper-container と swiper-slide は Swiper ライブラリ側の基本スタイルと重複する可能性があるので、ここでは必要最小限に */
.swiper-slider .swiper-container {
  width: 100%;
  height: 100%;
  /* display: block; はデフォルトなので不要 */
}

.swiper-slider .swiper-slide {
  /* display: block; はデフォルトなので不要 */
  overflow: hidden;
  position: relative;
  background-position: center;
  background-repeat: no-repeat;
  /* 背景画像の設定: ベンダープレフィックスを削除 */
  background-size: cover;
  background-color: #222222;
}

/* 垂直中央寄せのモダン化: display: table-cell; の代わりに Flexbox を使用 */
.swiper-slider.full-screen .swiper-slide-intro {
  height: 100%;
  /* Flexbox を使用してコンテンツを中央に配置 */
  display: flex;
  align-items: center; /* 垂直中央寄せ */
  justify-content: center; /* 水平中央寄せ */
}

.swiper-slider.full-screen .swiper-intro-inner {
  /* full-screen の場合、padding を 0 にして高さをコンテンツに合わせる */
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* スライド内のコンテンツエリア */
.swiper-slide-intro {
  position: relative;
  width: 100%;
  z-index: 4;
  /* 単位を rem に統一 */
  max-width: 71.25rem; /* 1140px */
  margin: 0 auto;
  color: #fff;
  text-align: center;
}

/* 垂直・水平方向のパディングを rem に統一 */
.swiper-slider .swiper-slide .swiper-intro-inner {
  padding: 15.625rem 0; /* 25% を仮に rem に変換 (元の意図によっては調整が必要) */
}

/* オーバーレイ */
.swiper-slider .swiper-slide .overlay {
  z-index: 3;
  position: absolute;
  inset: 0; /* top: 0; left: 0; right: 0; bottom: 0; を短縮 */
  opacity: 0.45;
  background: #000;
}

/* アクションボタン（マージンの rem への統一） */
.swiper-slider .swiper-slide .swiper-slide-actions {
  margin-top: 1.875rem; /* 30px */
}

/* --- アニメーション関連の改善 --- */

/* transform のベンダープレフィックスを削除 */
.swiper-slider .swiper-intro-inner h1,
.swiper-slider .swiper-intro-inner h2,
.swiper-slider .swiper-intro-inner h3,
.swiper-slider .swiper-intro-inner h4,
.swiper-slider .swiper-intro-inner p,
.swiper-slider .swiper-intro-inner div,
.swiper-slider .swiper-intro-inner .swiper-slide-actions {
  transform: translateY(100%);
  /* transition のベンダープレフィックスを削除 */
  transition: transform 500ms linear;
  visibility: hidden;
}

/* transition-delay のベンダープレフィックスを削除 */
.swiper-slider .swiper-intro-inner h1,
.swiper-slider .swiper-intro-inner h2,
.swiper-slider .swiper-intro-inner h3,
.swiper-slider .swiper-intro-inner h4 {
  color: #ffffff;
  text-transform: uppercase;
  transition-delay: 0ms;
}

.swiper-slider .swiper-intro-inner p,
.swiper-slider .swiper-intro-inner div {
  transition-delay: 300ms;
}

.swiper-slider .swiper-slide-actions {
  transition-delay: 600ms;
}

.swiper-slider .activated .swiper-intro-inner h1,
.swiper-slider .activated .swiper-intro-inner h2,
.swiper-slider .activated .swiper-intro-inner h3,
.swiper-slider .activated .swiper-intro-inner h4,
.swiper-slider .activated .swiper-intro-inner p,
.swiper-slider .activated .swiper-intro-inner div {
  transform: translateY(0); /* translateY(0px) を簡略化 */
  visibility: visible;
}

/* --- ナビゲーションボタンの改善 --- */

.swiper-slider .swiper-button-prev,
.swiper-slider .swiper-button-next {
  background-image: none;
  background-color: rgba(0, 0, 0, 0.2);
  padding: 0;
  /* 単位を rem に統一 */
  height: 3.75rem; /* 60px */
  width: 3.125rem; /* 50px */
  overflow: hidden;
}

.swiper-slider .swiper-button-prev i,
.swiper-slider .swiper-button-next i {
  width: 3.125rem; /* 50px */
  font-size: 2.5rem; /* 40px */
  line-height: 3.625rem; /* 58px */
  color: #fff;
  vertical-align: middle;
  text-align: center;
}

/* スライドカウントの改善 (rem への統一、IE用の transform を削除) */
.swiper-slider .swiper-button-prev .sep,
.swiper-slider .swiper-button-next .sep {
  position: absolute;
  transform: rotate(25deg);
  width: 1px;
  background: #fff;
  display: block;
  height: 2.1875rem; /* 35px */
  top: 0.78125rem; /* 12.5px */
  left: 1.5rem; /* 24px */
}

/* ボーダーラディウスの改善 (ベンダープレフィックスを削除) */
.swiper-slider .swiper-button-prev {
  left: 0;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
}

.swiper-slider .swiper-button-next {
  right: 0;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
}

/* --- 次セクションボタンの改善 --- */

.swiper-slider .btn-next-section {
  /* 単位を rem に統一 */
  width: 3.75rem; /* 60px */
  height: 3.75rem; /* 60px */
  bottom: 1.875rem; /* 30px */
  margin-left: -1.875rem; /* -30px */
  border-radius: 4px; /* ベンダープレフィックスを削除 */
}

/* 矢印の線（ベンダープレフィックスを削除） */
.swiper-slider .btn-next-section:before,
.swiper-slider .btn-next-section:after {
  width: 1.875rem; /* 30px */
  height: 0.0625rem; /* 1px */
}

.swiper-slider .btn-next-section:before {
  transform: rotate(-135deg);
  bottom: 1.875rem; /* 30px */
  left: 0.3125rem; /* 5px */
}

.swiper-slider .btn-next-section:after {
  transform: rotate(135deg);
  bottom: 1.875rem; /* 30px */
  right: 0.3125rem; /* 5px */
}

/* アニメーションの改善 */
.swiper-slider .swiper-container.over-1-3 .btn-next-section {
  transition: transform 400ms linear 200ms; /* delay を transition プロパティに統合 */
  transform: translateY(100px);
  visibility: hidden;
}

/* Swiper Slider Content Styles
------------------------------*/

/* フルスクリーン時の垂直中央寄せを Flexbox に置き換え */
.swiper-slider.full-screen .swiper-slide-intro {
  height: 100%;
  /* Flexbox を使用してコンテンツを中央に配置 */
  display: flex;
  align-items: center; /* 垂直中央寄せ */
  justify-content: center; /* 水平中央寄せ */
}

.swiper-slider.full-screen .swiper-intro-inner {
  /* !important は極力避け、必要に応じて詳細度を上げるべきですが、ここでは元の意図を維持 */
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  /* Flexbox化により display: table-cell; vertical-align: middle; は不要 */
}

/* slide_content のフォントサイズを rem に統一 */
.slide_content {
  font-size: 1.375rem; /* 22px */
}

@media (max-width: 47.9375rem) {
  /* 767px を rem に変換 (767/16) */
  .slide_content {
    font-size: 1.125rem; /* 18px */
  }
}

.slide_content .btn {
  margin: 0.625rem; /* 10px */
}

.slide_content .btn-secondary-outline {
  border-color: #fff;
  color: #fff;
}

.slide_content .btn-secondary-outline:hover {
  background: #ffffff;
  color: #333333;
}

.slide_content h1,
.slide_content h2,
.slide_content h3,
.slide_content h4,
.slide_content h5,
.slide_content h6 {
  font-weight: 100;
  letter-spacing: 1px;
  margin-bottom: 1.25rem; /* 20px */
}

.slide_content h1 strong,
.slide_content h2 strong,
.slide_content h3 strong,
.slide_content h4 strong,
.slide_content h5 strong,
.slide_content h6 strong {
  font-weight: 900;
}

.slide_content p {
  margin-bottom: 1.25rem; /* 20px */
}

.slide_content h1 {
  line-height: 1.3;
  font-size: 2.1875rem; /* 35px */
}

@media (min-width: 48rem) {
  /* 768px を rem に変換 */
  .slide_content h1 {
    font-size: 3.125rem; /* 50px */
  }
}

.swiper-slide-intro {
  position: relative;
  width: 100%;
  z-index: 4;
  max-width: 71.25rem; /* 1140px */
  margin: 0 auto;
  color: #fff;
  text-align: center;
}

/* Section: Features
------------------------------*/
.section-features .card {
  border: none;
}

.features-content .features__item {
  /* 0px は 0 に簡略化 */
  border-radius: 0;
  background: #e86240;
  color: rgba(255, 255, 255, 0.9);
  font-size: 1rem; /* 16px */
}

@media (max-width: 61.9375rem) {
  /* 991px を rem に変換 */
  .features-content .features__item {
    margin-bottom: 0;
    /* display: inherit は通常必要ありません。親要素のレイアウトに合わせて調整が必要です。
           ここでは元の記述を維持しますが、Flex/Gridのコンテナであれば削除を検討します。 */
    display: inherit;
  }
}

.features-content .features__item h3 {
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 1.25rem; /* 20px */
  line-height: 1.3;
}

.features-content .features__item .features__item-media {
  text-align: center;
}

.features-content .features__item .features__item-media.icon {
  padding-top: 4.375rem; /* 70px */
}

.features-content .features__item .features__item-media .fa-7x {
  /* em 単位は親要素のフォントサイズが基準。ここでは1em = 16pxとして計算しない */
  font-size: 7em;
}

/* Padding の冗長な併記を削除 */
.features-content .features__item .features__item-content {
  text-align: center;
  padding: 3.75rem 3.125rem; /* 60px 50px */
}

.features-content .features__item .features__item-content p:last-of-type {
  margin-bottom: 0;
}

.features-content
  .features__item
  .features__item-content
  .features__item-content-button {
  text-align: center;
  margin-top: 1.875rem; /* 30px */
}

/* Padding の冗長な併記を削除 */
.features-content
  .features__item
  .features__item-content
  .btn-secondary-outline {
  border-color: #fff;
  color: #fff;
  padding: 0.3125rem 1.8125rem 0.4375rem; /* 5px 29px 7px */
}

.features-content
  .features__item
  .features__item-content
  .btn-secondary-outline:hover {
  color: #777777;
  background-color: #fff;
  border-color: #fff;
}

/* Section: About
------------------------------*/
.section-about .section-title-area {
  text-align: left;
  margin-bottom: 0;
}

.section-about .section-title-area .section-desc {
  margin-top: 1.25rem; /* 20px */
}

.section-about .section-about-content {
  padding-left: 1.875rem; /* 30px */
}

/* Section: Videolightbox
------------------------------*/
.section-videolightbox {
  text-align: center;
}

.section-videolightbox .videolightbox__icon {
  margin-top: 2.5rem; /* 40px */
}

.section-videolightbox .videolightbox__heading {
  font-size: 2.375rem; /* 38px */
  letter-spacing: 0;
  font-weight: 500;
}

.section-videolightbox .videolightbox__heading strong {
  font-weight: 800;
}

.section-videolightbox .video_icon {
  background: rgba(0, 0, 0, 0.2);
  border: 4px solid #fff;
  /* border-radius: 100px は大きすぎるので、見た目が同じになるように 50% を推奨 */
  border-radius: 50%;
  height: 3.125rem; /* 50px */
  line-height: 1;
  padding: 0.625rem; /* 10px */
  width: 3.125rem; /* 50px */
  display: inline-flex; /* i 要素の垂直中央寄せのため inline-block から変更を推奨 */
  align-items: center;
  justify-content: center;
}

.section-videolightbox .video_icon i {
  color: #fff;
  font-size: 1.25rem; /* 20px */
  /* 親要素を Flex にしたため、margin や line-height による調整は不要になる */
  margin: 0;
  line-height: 1;
  /* 再調整（元のコードの margin-left: 6px の意図が不明なため、ここでは削除して中央寄せを優先）
       もし三角形のアイコン（再生ボタン）がズレる場合は、margin-left: 0.1875rem; (3px) などを追加 */
}

.section-videolightbox .video_icon:hover {
  background: #ffffff;
}

.section-videolightbox .video_icon:hover i {
  color: #000;
}

/* Section: Services
------------------------------*/
.services-content .card {
  margin-top: 1.25rem; /* 20px */
  margin-bottom: 0.625rem; /* 10px */
}

/* Padding の冗長な併記を削除し、rem に統一 */
.services-content .card-block,
.services-content .card-img-overlay {
  padding: 1.75rem 1.875rem 1.875rem; /* 28px 30px 30px */
}

.services-content .card-title {
  margin-bottom: 0.9375rem; /* 15px */
}

.services-content .service__media-icon .service-card-content {
  padding-right: 5rem; /* 80px */
}

.services-content .service-card-icon {
  position: absolute;
  top: 1.875rem; /* 30px */
  right: 1.875rem; /* 30px */
}

.services-content .service-card-icon i {
  color: #e86240;
}

.services-content .service-button {
  margin-top: 1.25rem; /* 20px */
  display: block;
  font-size: 1.0625rem; /* 17px */
}

.services-content .card-img-overlay {
  background: rgba(0, 0, 0, 0.7);
}

.card-img-overlay .card-title a {
  color: #fff;
}

.card-img-overlay .card-title a:hover {
  /* 777 は #777777 と同じ意味なので短縮 */
  color: #777;
}

/* Section: News
------------------------------*/

/* ブレイクポイントの rem への変換 (940px / 16 = 58.75rem) */
@media screen and (min-width: 58.75rem) {
  /* 複数のカラムレイアウトをサポートしているが、float/clear を使用しているため、
       可能であれば Grid や Flexbox を使ったレイアウトへの移行を推奨 */
  .section-news .content-grid[data-layout="4"] article:nth-child(4n + 1),
  .section-news .content-grid[data-layout="3"] article:nth-child(3n + 1),
  .section-news .content-grid[data-layout="2"] article:nth-child(2n + 1) {
    clear: left;
  }
}

@media screen and (max-width: 58.75rem) {
  .section-news .content-grid article {
    width: 100%;
  }
}

.section-news .entry-grid-elements {
  border: 1px solid #e9e9e9;
  border-top: 3px solid #e86240;
  /* Padding の冗長な記述を削除し、rem に統一 */
  padding: 1.5625rem 1.875rem; /* 25px 30px */
  background: #fff;
  color: #777777;
}

.section-news .entry-grid-title {
  font-size: 1.25rem; /* 20px */
  line-height: 1.5;
  font-weight: 400;
  /* font-family: "Montserrat", Helvetica, Arial, sans-serif; は維持 */
  margin-bottom: 0.9375rem; /* 15px */
}

.section-news .entry-grid-title a {
  color: #444444;
}

.section-news .entry-thumb img {
  width: 100%;
  height: auto;
}

.section-news .entry-grid-cate {
  margin-bottom: 0.25rem; /* 4px */
}

.section-news .entry-grid-cate a {
  color: #999999;
  font-weight: bold;
  font-size: 0.75rem; /* 12px */
}

.section-news .entry-grid-more {
  margin-top: 1.25rem; /* 20px */
}

.section-news .entry-grid-more a {
  color: #333333;
  text-transform: uppercase;
}

.content-grid article {
  margin-bottom: 1.875rem; /* 30px */
}

.content-grid-loadmore {
  text-align: center;
  margin-top: 0.3125rem; /* 5px */
  margin-bottom: 0.625rem; /* 10px */
  display: block;
}

.content-grid-loadmore i {
  margin-left: 0.5rem; /* 8px */
}

/* Section: Clients (大幅な改善: float -> Flexbox)
------------------------------*/
.section-clients .section-title-area {
  margin-bottom: 1.25rem; /* 20px */
}

/* 浮動小数点 (float) を使ったクリアフィックスとネガティブマージンを Flexbox で置き換え */
.clients-wrapper {
  /* Flexboxコンテナとして設定 */
  display: flex;
  flex-wrap: wrap; /* 折り返しを有効に */
  /* ネガティブマージン（-15px）を相殺する padding に変更 */
  padding-left: 0.9375rem; /* 15px */
  padding-right: 0.9375rem; /* 15px */
  margin-left: 0;
  margin-right: 0;
}

/* clearfix の削除: Flexbox を使用するため不要 */
.clients-wrapper:after {
  content: none;
  display: none;
  clear: none;
}

.client-col {
  /* float を削除し、padding の rem への統一 */
  padding: 0.9375rem; /* 15px */
  /* 幅の設定は下記のクラスに移動し、Flexbox の機能を使用 */
}

.client-col img {
  max-width: 100%;
  height: auto;
}

/* デスクトップビュー (940px / 16 = 58.75rem) */
@media screen and (min-width: 58.75rem) {
  /* Flexbox を使用して幅を設定し、clear: left; を削除 */
  .client-4-cols .client-col {
    width: 25%;
  }
  /* clear: left; は Flexbox では不要なので削除
	.client-4-cols .client-col:nth-child(4n+1) { clear: left; } */

  .client-5-cols .client-col {
    width: 20%;
  }
  /* clear: left; は削除
	.client-5-cols .client-col:nth-child(5n+1) { clear: left; } */

  .client-6-cols .client-col {
    width: 16.66667%;
  }
  /* clear: left; は削除
	.client-6-cols .client-col:nth-child(6n+1) { clear: left; } */
}

/* タブレット・モバイルビュー */
@media screen and (max-width: 58.75rem) {
  .client-4-cols .client-col,
  .client-5-cols .client-col,
  .client-6-cols .client-col {
    width: 50%;
  }
  /* clear: left; は Flexbox では不要なので削除
	.client-4-cols .client-col:nth-child(2n+1),
	.client-5-cols .client-col:nth-child(2n+1),
	.client-6-cols .client-col:nth-child(2n+1) { clear: left; } */
}

/* Section: Contact
------------------------------*/

/* Input/Textarea のセレクタを短縮し、属性セレクタを使用 (メンテナンス性の向上) */
.section-contact
  input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not(
    [type="radio"]
  ),
.section-contact textarea {
  width: 100%;
}

.section-contact .contact-submit {
  text-align: center;
}

.section-contact .wpcf7-submit {
  /* Padding と font-size を rem に統一 */
  padding: 1.25rem 2.5rem; /* 20px 40px */
  font-size: 1rem; /* 16px */
  width: 100%;
}

.section-contact .large-label {
  text-transform: uppercase;
  font-weight: bold;
  letter-spacing: 1.5px;
  display: inline-block;
  margin-bottom: 0.3125rem; /* 5px */
  font-size: 0.8125rem; /* 13px */
  color: #222222;
}

.section-inverse .large-label {
  /* rgba の 0.99 は 1 に近いので、opacity を 1 に変更可能だが、元のコードの意図を尊重し維持 */
  color: rgba(255, 255, 255, 0.99);
}

.contact-details {
  padding: 0;
  text-align: center;
}

/* clearfix の修正: contact-details が ul の場合、float を使用していないため不要だが、
   使用されていたコードの誤りを修正 (after の後の () を削除) */
.contact-details:after {
  content: "";
  display: table;
  clear: both;
}

.contact-details li {
  padding: 0 0.9375rem; /* 0px 15px */
  list-style: none;
  display: inline-block;
}

.contact-details .contact-detail {
  margin-bottom: 2.5rem; /* 40px */
}

.contact-details i {
  color: #e86240;
  margin-right: 0.375rem; /* 6px */
}

.contact-details a:hover {
  text-decoration: none;
}

.contact-details a .contact-detail-value,
.contact-details .contact-detail-value {
  color: #777777;
  font-size: 1.25rem; /* 20px */
  position: relative;
  top: -0.3125rem; /* -5px */
}

.contact-details a .contact-detail-value:hover,
.contact-details .contact-detail-value:hover {
  text-decoration: none;
  color: #e86240;
}

/* Section: Parallax
------------------------------*/
.parallax-window section {
  z-index: 10;
  position: relative;
  background: transparent !important;
}

.parallax-window .parallax-mirror::before {
  content: " ";
  position: absolute;
  /* inset: 0; を使用して短縮 */
  inset: 0;
  display: block;
  z-index: 2;
  background: rgba(0, 0, 0, 0.4);
}

/* Section: Counter
------------------------------*/
.counter-item {
  background-color: #171717;
  /* Padding の冗長な記述を削除し、rem に統一 */
  padding: 1.5625rem 1.875rem 1.875rem 1.875rem; /* 25px 30px 30px 30px */
  position: relative;
  color: #ffffff;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  margin-bottom: 1.875rem; /* 30px */
}

/* 背景色の短縮化を検討 */
.counter-item.counter-item-bg1 {
  background-color: #0099e5;
}

.counter-item.counter-item-bg3 {
  background-color: #f4c4c; /* ffff4c4c と同じ意味 */
}

.counter-item.counter-item-bg4 {
  background-color: #34bf49;
}

.counter-item .counter-title {
  color: #fff;
  text-transform: none;
  font-weight: 100;
  font-size: 1.375rem; /* 22px */
  margin-bottom: 0.9375rem; /* 15px */
  display: block;
}

.counter-item .counter__number span {
  font-size: 2.6875rem; /* 43px */
  line-height: 1.875rem; /* 30px */
  font-weight: 100;
  letter-spacing: -2px;
}

.counter-item i {
  position: absolute;
  right: 1.875rem; /* 30px */
  bottom: 1.875rem; /* 30px */
  color: rgba(255, 255, 255, 0.5);
}

/*--------------------------------------------------------------
9.0 External Plugins
--------------------------------------------------------------*/
/* Magnific Popup CSS (Modernized) */
.mfp-bg {
  /* inset: 0 で top/left/width/height を集約 */
  inset: 0;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  /* filter: alpha(opacity=80) (IE8以下) を削除 */
  opacity: 0.8;
}

.mfp-wrap {
  inset: 0;
  z-index: 1043;
  position: fixed;
  outline: none !important;
  /* ベンダープレフィックスを削除 */
  backface-visibility: hidden;
}

.mfp-container {
  text-align: center;
  position: absolute;
  inset: 0;
  padding: 0 0.5rem; /* 8px */
  /* ベンダープレフィックスを削除し、標準の box-sizing のみ残す */
  box-sizing: border-box;
}

/* 垂直中央寄せのためのテクニック（mfp-container:before）は維持 */
.mfp-container:before {
  content: "";
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}

.mfp-align-top .mfp-container:before {
  display: none;
}

.mfp-content {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin: 0 auto;
  text-align: left;
  z-index: 1045;
}

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
  width: 100%;
  cursor: auto;
}

.mfp-ajax-cur {
  cursor: progress;
}

.mfp-zoom-out-cur,
.mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  /* ベンダープレフィックスを削除し、標準のカーソルのみ残す */
  cursor: zoom-out;
}

.mfp-zoom {
  cursor: zoom-in;
}

.mfp-auto-cursor .mfp-content {
  cursor: auto;
}

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
  /* ベンダープレフィックスを削除 */
  user-select: none;
}

.mfp-loading.mfp-figure {
  display: none;
}

.mfp-hide {
  display: none !important;
}

.mfp-preloader {
  color: #ccc;
  position: absolute;
  top: 50%;
  width: auto;
  text-align: center;
  margin-top: -0.8em;
  left: 0.5rem; /* 8px */
  right: 0.5rem; /* 8px */
  z-index: 1044;
}

.mfp-preloader a {
  color: #ccc;
}

.mfp-preloader a:hover {
  color: #fff;
}

.mfp-s-ready .mfp-preloader {
  display: none;
}

.mfp-s-error .mfp-content {
  display: none;
}

button.mfp-close,
button.mfp-arrow {
  overflow: visible;
  cursor: pointer;
  background: transparent;
  border: 0;
  /* ベンダープレフィックスを削除 */
  appearance: none;
  display: block;
  outline: none;
  padding: 0;
  z-index: 1046;
  /* ベンダープレフィックスを削除 */
  box-shadow: none;
}

button::-moz-focus-inner {
  padding: 0;
  border: 0;
}

.mfp-close {
  width: 2.75rem; /* 44px */
  height: 2.75rem; /* 44px */
  line-height: 2.75rem; /* 44px */
  position: absolute;
  right: 0;
  top: 0;
  text-decoration: none;
  text-align: center;
  /* filter: alpha(opacity=65) を削除 */
  opacity: 0.65;
  /* padding を rem に統一 (0 0 1.125rem 0.625rem) */
  padding: 0 0 1.125rem 0.625rem;
  color: #fff;
  font-style: normal;
  font-size: 1.75rem; /* 28px */
  font-family: Arial, Baskerville, monospace;
}

.mfp-close:hover,
.mfp-close:focus {
  /* filter: alpha(opacity=100) を削除 */
  opacity: 1;
}

.mfp-close:active {
  top: 1px;
}

.mfp-close-btn-in .mfp-close {
  color: #333;
}

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
  color: #fff;
  right: -0.375rem; /* -6px */
  text-align: right;
  padding-right: 0.375rem; /* 6px */
  width: 100%;
}

.mfp-counter {
  position: absolute;
  top: 0;
  right: 0;
  color: #ccc;
  font-size: 0.75rem; /* 12px */
  line-height: 1.125rem; /* 18px */
  white-space: nowrap;
}

.mfp-arrow {
  position: absolute;
  opacity: 0.65;
  /* filter: alpha(opacity=65) を削除 */
  margin: 0;
  top: 50%;
  margin-top: -3.4375rem; /* -55px */
  padding: 0;
  width: 5.625rem; /* 90px */
  height: 6.875rem; /* 110px */
  /* ベンダープレフィックスを削除 */
  tap-highlight-color: transparent;
}

.mfp-arrow:active {
  margin-top: -3.375rem; /* -54px */
}

.mfp-arrow:hover,
.mfp-arrow:focus {
  /* filter: alpha(opacity=100) を削除 */
  opacity: 1;
}

/* mfp-arrow:before / mfp-arrow:after / .mfp-b / .mfp-a のスタイルは維持 */
.mfp-arrow:before,
.mfp-arrow:after,
.mfp-arrow .mfp-b,
.mfp-arrow .mfp-a {
  content: "";
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  left: 0;
  top: 0;
  margin-top: 2.1875rem; /* 35px */
  margin-left: 2.1875rem; /* 35px */
  border: medium inset transparent;
}

.mfp-arrow:after,
.mfp-arrow .mfp-a {
  border-top-width: 0.8125rem; /* 13px */
  border-bottom-width: 0.8125rem; /* 13px */
  top: 0.5rem; /* 8px */
}

.mfp-arrow:before,
.mfp-arrow .mfp-b {
  border-top-width: 1.3125rem; /* 21px */
  border-bottom-width: 1.3125rem; /* 21px */
  opacity: 0.7;
}

.mfp-arrow-left {
  left: 0;
}

.mfp-arrow-left:after,
.mfp-arrow-left .mfp-a {
  border-right: 1.0625rem solid #fff; /* 17px */
  margin-left: 1.9375rem; /* 31px */
}

.mfp-arrow-left:before,
.mfp-arrow-left .mfp-b {
  margin-left: 1.5625rem; /* 25px */
  border-right: 1.6875rem solid #3f3f3f; /* 27px */
}

.mfp-arrow-right {
  right: 0;
}

.mfp-arrow-right:after,
.mfp-arrow-right .mfp-a {
  border-left: 1.0625rem solid #fff; /* 17px */
  margin-left: 2.4375rem; /* 39px */
}

.mfp-arrow-right:before,
.mfp-arrow-right .mfp-b {
  border-left: 1.6875rem solid #3f3f3f; /* 27px */
}

.mfp-iframe-holder {
  padding-top: 2.5rem; /* 40px */
  padding-bottom: 2.5rem; /* 40px */
}

.mfp-iframe-holder .mfp-content {
  line-height: 0;
  width: 100%;
  max-width: 56.25rem; /* 900px */
}

.mfp-iframe-holder .mfp-close {
  top: -2.5rem; /* -40px */
}

.mfp-iframe-scaler {
  width: 100%;
  height: 0;
  overflow: hidden;
  /* 16:9 のアスペクト比を維持 */
  padding-top: 56.25%;
}

.mfp-iframe-scaler iframe {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.6); /* 8px */
  background: #000;
}

/* Main image in popup */
img.mfp-img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  line-height: 0;
  /* ベンダープレフィックスを削除 */
  box-sizing: border-box;
  padding: 2.5rem 0; /* 40px 0 40px */
  margin: 0 auto;
}

/* The shadow behind the image */
.mfp-figure {
  line-height: 0;
}

.mfp-figure:after {
  content: "";
  position: absolute;
  left: 0;
  top: 2.5rem; /* 40px */
  bottom: 2.5rem; /* 40px */
  display: block;
  right: 0;
  width: auto;
  height: auto;
  z-index: -1;
  box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.6); /* 8px */
  background: #444;
}

.mfp-figure small {
  color: #bdbdbd;
  display: block;
  font-size: 0.75rem; /* 12px */
  line-height: 0.875rem; /* 14px */
}

.mfp-figure figure {
  margin: 0;
}

.mfp-bottom-bar {
  margin-top: -2.25rem; /* -36px */
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  cursor: auto;
}

.mfp-title {
  text-align: left;
  line-height: 1.125rem; /* 18px */
  color: #f3f3f3;
  word-wrap: break-word;
  padding-right: 2.25rem; /* 36px */
}

.mfp-image-holder .mfp-content {
  max-width: 100%;
}

.mfp-gallery .mfp-image-holder .mfp-figure {
  cursor: pointer;
}

/* レスポンシブメディアクエリの最適化 */
@media screen and (max-width: 50rem) and (orientation: landscape),
  screen and (max-height: 18.75rem) {
  /* 800px / 16 = 50rem, 300px / 16 = 18.75rem */
  .mfp-img-mobile .mfp-image-holder {
    padding-left: 0;
    padding-right: 0;
  }
  .mfp-img-mobile img.mfp-img {
    padding: 0;
  }
  .mfp-img-mobile .mfp-figure:after {
    top: 0;
    bottom: 0;
  }
  .mfp-img-mobile .mfp-figure small {
    display: inline;
    margin-left: 0.3125rem; /* 5px */
  }
  .mfp-img-mobile .mfp-bottom-bar {
    background: rgba(0, 0, 0, 0.6);
    bottom: 0;
    margin: 0;
    top: auto;
    padding: 0.1875rem 0.3125rem; /* 3px 5px */
    position: fixed;
    /* ベンダープレフィックスを削除 */
    box-sizing: border-box;
  }
  .mfp-img-mobile .mfp-bottom-bar:empty {
    padding: 0;
  }
  .mfp-img-mobile .mfp-counter {
    right: 0.3125rem; /* 5px */
    top: 0.1875rem; /* 3px */
  }
  .mfp-img-mobile .mfp-close {
    top: 0;
    right: 0;
    width: 2.1875rem; /* 35px */
    height: 2.1875rem; /* 35px */
    line-height: 2.1875rem; /* 35px */
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    text-align: center;
    padding: 0;
  }
}

@media all and (max-width: 56.25rem) {
  /* 900px / 16 = 56.25rem */
  .mfp-arrow {
    /* ベンダープレフィックスを削除 */
    transform: scale(0.75);
  }
  .mfp-arrow-left {
    /* ベンダープレフィックスを削除 */
    transform-origin: 0;
  }
  .mfp-arrow-right {
    /* ベンダープレフィックスを削除 */
    transform-origin: 100%;
  }
  .mfp-container {
    padding-left: 0.375rem; /* 6px */
    padding-right: 0.375rem; /* 6px */
  }
}

/* mfp-ie7 (IE7専用のハック) は現代では不要なので全て削除します */

/* WooCommerce support (Modernized)
------------------------------*/
.woocommerce-page .site-main .page-title {
  display: none;
}

.woocommerce-result-count {
  font-style: italic;
}

.woocommerce .woocommerce-ordering,
.woocommerce .woocommerce-result-count {
  margin-bottom: 1.5em;
}

.woocommerce-ordering select {
  padding: 0.4375rem; /* 7px */
  margin-top: -0.625rem; /* -10px */
}

/* font-size の冗長な併記を削除 */
.woocommerce ul.products li.product h3 {
  font-size: 1.125rem; /* 18px */
  margin-bottom: 0.4375rem; /* 7px */
}

.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce button.button.alt {
  background-color: #e86240;
  /* Padding の冗長な併記を削除し、rem に統一 */
  padding: 0.625rem 1.25rem; /* 10px 20px */
  color: #fff;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  /* font-size の冗長な併記を削除 */
  font-size: 0.8125rem; /* 13px */
  border-radius: 2px;
}

.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce button.button.alt:hover {
  background: #222222;
  color: #fff;
  /* ベンダープレフィックスを削除 */
  transition: all 0.2s ease-in-out;
}

.woocommerce table.shop_table {
  border-collapse: collapse;
}

.woocommerce .quantity .qty {
  padding: 0.3125rem; /* 5px */
}

.woocommerce span.onsale {
  /* padding: inherit は元の意図を保持 */
  padding: inherit;
}

/* font-size の冗長な併記を削除 */
.related.products h2,
#tab-description h2 {
  font-size: 1.0625rem; /* 17px */
  margin-bottom: 1.25rem; /* 20px */
  text-transform: uppercase;
  letter-spacing: 1px;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  padding: 0.5625rem 0.875rem; /* 9px 14px */
  font-weight: bold;
}

/* Breadcrumbs (Modernized)
------------------------------*/
.breadcrumbs {
  font-size: 0.625rem; /* 10px */
  padding: 0.9375rem 0; /* 15px 0px */
  border-bottom: 1px solid #e9e9e9;
  color: #858585;
}

@media screen and (min-width: 45rem) {
  /* 720px / 16 = 45rem */
  .breadcrumbs {
    font-size: 0.75rem; /* 12px */
  }
}

.breadcrumbs i {
  margin: 0 0.375rem; /* 6px */
}

.breadcrumbs a {
  text-decoration: none;
  color: #777777;
  font-weight: 600;
}

.breadcrumbs a:hover {
  text-decoration: underline;
}

.breadcrumbs span {
  margin-right: 1.25rem; /* 20px */
  position: relative;
}

@media screen and (min-width: 45rem) {
  /* 720px */
  .breadcrumbs span {
    margin-right: 2.5rem; /* 40px */
  }
}

.breadcrumbs span span {
  margin-right: 0;
}

/* パンくずリストの矢印（CSSで描画）の rem 化と簡略化 */
.breadcrumbs a:before {
  border-bottom: 0.375rem solid transparent; /* 6px */
  border-left: 0.375rem solid rgba(0, 0, 0, 0.2); /* 6px */
  border-top: 0.375rem solid transparent; /* 6px */
  content: "";
  display: inline-block;
  position: absolute;
  right: -0.6875rem; /* -11px */
  top: 0.125rem; /* 2px */
}

@media screen and (min-width: 45rem) {
  .breadcrumbs a:before {
    right: -1.4375rem; /* -23px */
    top: 0.1875rem; /* 3px */
  }
}

.breadcrumbs a:after {
  border-bottom: 0.3125rem solid transparent; /* 5px */
  border-left: 0.3125rem solid #ffffff; /* 5px */
  border-top: 0.3125rem solid transparent; /* 5px */
  content: "";
  display: inline-block;
  position: absolute;
  right: -0.625rem; /* -10px */
  top: 0.1875rem; /* 3px */
}

@media screen and (min-width: 45rem) {
  .breadcrumbs a:after {
    right: -1.375rem; /* -22px */
    top: 0.25rem; /* 4px */
  }
}

/* Swiper Slide (Modernized)
------------------------------*/
/* Swiper 3.3.1 - 現代化 */
.swiper-container {
  margin: 0 auto;
  position: relative;
  overflow: hidden;
  z-index: 1;
}

.swiper-container-no-flexbox .swiper-slide {
  float: left;
}

.swiper-container-vertical > .swiper-wrapper {
  /* ベンダープレフィックスを削除 */
  flex-direction: column;
}

.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  /* ベンダープレフィックスを削除し、標準の display: flex のみ残す */
  display: flex;
  /* ベンダープレフィックスを削除 */
  transition-property: transform;
  /* ベンダープレフィックスを削除 */
  box-sizing: content-box;
}

.swiper-container-android .swiper-slide,
.swiper-wrapper {
  /* ベンダープレフィックスを削除し、標準の transform のみ残す */
  transform: translate3d(0, 0, 0);
}

.swiper-container-multirow > .swiper-wrapper {
  /* ベンダープレフィックスを削除 */
  flex-wrap: wrap;
}

.swiper-container-free-mode > .swiper-wrapper {
  /* ベンダープレフィックスを削除 */
  transition-timing-function: ease-out;
  margin: 0 auto;
}

.swiper-slide {
  /* ベンダープレフィックスを削除 */
  flex-shrink: 0;
  /* flex: 0 0 auto; は flex-shrink: 0; の上位互換なので削除 */
  width: 100%;
  height: 100%;
  position: relative;
}

/* Auto Height */
.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
  height: auto;
}

.swiper-container-autoheight .swiper-wrapper {
  /* ベンダープレフィックスを削除 */
  align-items: flex-start;
  /* ベンダープレフィックスを削除 */
  transition-property: transform, height;
}

/* a11y */
.swiper-container .swiper-notification {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  opacity: 0;
  z-index: -1000;
}

/* IE10 Windows Phone 8 Fixes (ベンダープレフィックスは維持) */
.swiper-wp8-horizontal {
  -ms-touch-action: pan-y;
  touch-action: pan-y;
}

.swiper-wp8-vertical {
  -ms-touch-action: pan-x;
  touch-action: pan-x;
}

/* Arrows */
.swiper-button-prev,
.swiper-button-next {
  position: absolute;
  top: 50%;
  width: 1.6875rem; /* 27px */
  height: 2.75rem; /* 44px */
  margin-top: -1.375rem; /* -22px */
  z-index: 10;
  cursor: pointer;
  /* ベンダープレフィックスを削除 */
  background-size: 1.6875rem 2.75rem; /* 27px 44px */
  background-position: center;
  background-repeat: no-repeat;
}

.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
  opacity: 0.35;
  cursor: auto;
  pointer-events: none;
}

/* SVG Base64 URLs は維持 */
.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
  left: 0.625rem; /* 10px */
  right: auto;
}

.swiper-button-prev.swiper-button-black,
.swiper-container-rtl .swiper-button-next.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-prev.swiper-button-white,
.swiper-container-rtl .swiper-button-next.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
  right: 0.625rem; /* 10px */
  left: auto;
}

.swiper-button-next.swiper-button-black,
.swiper-container-rtl .swiper-button-prev.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-next.swiper-button-white,
.swiper-container-rtl .swiper-button-prev.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}

/* Pagination Styles */
.swiper-pagination {
  position: absolute;
  text-align: center;
  /* ベンダープレフィックスを削除 */
  transition: 300ms;
  /* ベンダープレフィックスを削除 */
  transform: translate3d(0, 0, 0);
  z-index: 10;
}

.swiper-pagination.swiper-pagination-hidden {
  opacity: 0;
}

/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
  bottom: 10px;
  left: 0;
  width: 100%;
}

/* Bullets */
.swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  display: inline-block;
  border-radius: 100%;
  background: #000;
  opacity: 0.2;
}

button.swiper-pagination-bullet {
  border: none;
  margin: 0;
  padding: 0;
  box-shadow: none;
  -moz-appearance: none;
  -ms-appearance: none;
  -webkit-appearance: none;
  appearance: none;
}

.swiper-pagination-clickable .swiper-pagination-bullet {
  cursor: pointer;
}

.swiper-pagination-white .swiper-pagination-bullet {
  background: #fff;
}

.swiper-pagination-bullet-active {
  opacity: 1;
  background: #007aff;
}

.swiper-pagination-white .swiper-pagination-bullet-active {
  background: #fff;
}

.swiper-pagination-black .swiper-pagination-bullet-active {
  background: #000;
}

.swiper-container-vertical > .swiper-pagination-bullets {
  right: 10px;
  top: 50%;
  -webkit-transform: translate3d(0px, -50%, 0);
  -moz-transform: translate3d(0px, -50%, 0);
  -o-transform: translate(0px, -50%);
  -ms-transform: translate3d(0px, -50%, 0);
  transform: translate3d(0px, -50%, 0);
}

.swiper-container-vertical
  > .swiper-pagination-bullets
  .swiper-pagination-bullet {
  margin: 5px 0;
  display: block;
}

.swiper-container-horizontal
  > .swiper-pagination-bullets
  .swiper-pagination-bullet {
  margin: 0 5px;
}

/* Progress */
.swiper-pagination-progress {
  background: rgba(0, 0, 0, 0.25);
  position: absolute;
}

.swiper-pagination-progress .swiper-pagination-progressbar {
  background: #007aff;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
  -webkit-transform-origin: left top;
  -moz-transform-origin: left top;
  -ms-transform-origin: left top;
  -o-transform-origin: left top;
  transform-origin: left top;
}

.swiper-container-rtl
  .swiper-pagination-progress
  .swiper-pagination-progressbar {
  -webkit-transform-origin: right top;
  -moz-transform-origin: right top;
  -ms-transform-origin: right top;
  -o-transform-origin: right top;
  transform-origin: right top;
}

.swiper-container-horizontal > .swiper-pagination-progress {
  width: 100%;
  height: 4px;
  left: 0;
  top: 0;
}

.swiper-container-vertical > .swiper-pagination-progress {
  width: 4px;
  height: 100%;
  left: 0;
  top: 0;
}

.swiper-pagination-progress.swiper-pagination-white {
  background: rgba(255, 255, 255, 0.5);
}

.swiper-pagination-progress.swiper-pagination-white
  .swiper-pagination-progressbar {
  background: #fff;
}

.swiper-pagination-progress.swiper-pagination-black
  .swiper-pagination-progressbar {
  background: #000;
}

/* 3D Container */
.swiper-container-3d {
  -webkit-perspective: 1200px;
  -moz-perspective: 1200px;
  -o-perspective: 1200px;
  perspective: 1200px;
}

.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
  -webkit-transform-style: preserve-3d;
  -moz-transform-style: preserve-3d;
  -ms-transform-style: preserve-3d;
  transform-style: preserve-3d;
}

.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}

.swiper-container-3d .swiper-slide-shadow-left {
  background-image: -webkit-gradient(
    linear,
    left top,
    right top,
    from(rgba(0, 0, 0, 0.5)),
    to(transparent)
  );
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(
    right,
    rgba(0, 0, 0, 0.5),
    transparent
  );
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  background-image: -moz-linear-gradient(
    right,
    rgba(0, 0, 0, 0.5),
    transparent
  );
  /* Firefox 3.6-15 */
  background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), transparent);
  /* Opera 11.10-12.00 */
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 16+, IE10, Opera 12.50+ */
}

.swiper-container-3d .swiper-slide-shadow-right {
  background-image: -webkit-gradient(
    linear,
    right top,
    left top,
    from(rgba(0, 0, 0, 0.5)),
    to(transparent)
  );
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(
    left,
    rgba(0, 0, 0, 0.5),
    transparent
  );
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 3.6-15 */
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), transparent);
  /* Opera 11.10-12.00 */
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 16+, IE10, Opera 12.50+ */
}

.swiper-container-3d .swiper-slide-shadow-top {
  background-image: -webkit-gradient(
    linear,
    left top,
    left bottom,
    from(rgba(0, 0, 0, 0.5)),
    to(transparent)
  );
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(
    bottom,
    rgba(0, 0, 0, 0.5),
    transparent
  );
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  background-image: -moz-linear-gradient(
    bottom,
    rgba(0, 0, 0, 0.5),
    transparent
  );
  /* Firefox 3.6-15 */
  background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), transparent);
  /* Opera 11.10-12.00 */
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 16+, IE10, Opera 12.50+ */
}

.swiper-container-3d .swiper-slide-shadow-bottom {
  background-image: -webkit-gradient(
    linear,
    left bottom,
    left top,
    from(rgba(0, 0, 0, 0.5)),
    to(transparent)
  );
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(
    top,
    rgba(0, 0, 0, 0.5),
    transparent
  );
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 3.6-15 */
  background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), transparent);
  /* Opera 11.10-12.00 */
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 16+, IE10, Opera 12.50+ */
}

/* Coverflow */
.swiper-container-coverflow .swiper-wrapper,
.swiper-container-flip .swiper-wrapper {
  /* Windows 8 IE 10 fix */
  -ms-perspective: 1200px;
}

/* Cube + Flip */
.swiper-container-cube,
.swiper-container-flip {
  overflow: visible;
}

.swiper-container-cube .swiper-slide,
.swiper-container-flip .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;
  z-index: 1;
}

.swiper-container-cube .swiper-slide .swiper-slide,
.swiper-container-flip .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-container-cube .swiper-slide-active,
.swiper-container-flip .swiper-slide-active,
.swiper-container-cube .swiper-slide-active .swiper-slide-active,
.swiper-container-flip .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

.swiper-container-cube .swiper-slide-shadow-top,
.swiper-container-flip .swiper-slide-shadow-top,
.swiper-container-cube .swiper-slide-shadow-bottom,
.swiper-container-flip .swiper-slide-shadow-bottom,
.swiper-container-cube .swiper-slide-shadow-left,
.swiper-container-flip .swiper-slide-shadow-left,
.swiper-container-cube .swiper-slide-shadow-right,
.swiper-container-flip .swiper-slide-shadow-right {
  z-index: 0;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* Cube */
.swiper-container-cube .swiper-slide {
  visibility: hidden;
  -webkit-transform-origin: 0 0;
  -moz-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
  width: 100%;
  height: 100%;
}

.swiper-container-cube.swiper-container-rtl .swiper-slide {
  -webkit-transform-origin: 100% 0;
  -moz-transform-origin: 100% 0;
  -ms-transform-origin: 100% 0;
  transform-origin: 100% 0;
}

.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-next,
.swiper-container-cube .swiper-slide-prev,
.swiper-container-cube .swiper-slide-next + .swiper-slide {
  pointer-events: auto;
  visibility: visible;
}

.swiper-container-cube .swiper-cube-shadow {
  position: absolute;
  left: 0;
  bottom: 0px;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0.6;
  -webkit-filter: blur(50px);
  filter: blur(50px);
  z-index: 0;
}

/* Fade */
.swiper-container-fade.swiper-container-free-mode .swiper-slide {
  -webkit-transition-timing-function: ease-out;
  -moz-transition-timing-function: ease-out;
  -ms-transition-timing-function: ease-out;
  -o-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}

.swiper-container-fade .swiper-slide {
  pointer-events: none;
  -webkit-transition-property: opacity;
  -moz-transition-property: opacity;
  -o-transition-property: opacity;
  transition-property: opacity;
}

.swiper-container-fade .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

/* Scrollbar */
.swiper-scrollbar {
  border-radius: 10px;
  position: relative;
  -ms-touch-action: none;
  background: rgba(0, 0, 0, 0.1);
}

.swiper-container-horizontal > .swiper-scrollbar {
  position: absolute;
  left: 1%;
  bottom: 3px;
  z-index: 50;
  height: 5px;
  width: 98%;
}

.swiper-container-vertical > .swiper-scrollbar {
  position: absolute;
  right: 3px;
  top: 1%;
  z-index: 50;
  width: 5px;
  height: 98%;
}

.swiper-scrollbar-drag {
  height: 100%;
  width: 100%;
  position: relative;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 10px;
  left: 0;
  top: 0;
}

.swiper-scrollbar-cursor-drag {
  cursor: move;
}

/* Preloader */
.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  -webkit-transform-origin: 50%;
  -moz-transform-origin: 50%;
  transform-origin: 50%;
  -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite;
  -moz-animation: swiper-preloader-spin 1s steps(12, end) infinite;
  animation: swiper-preloader-spin 1s steps(12, end) infinite;
}

.swiper-lazy-preloader:after {
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-position: 50%;
  -webkit-background-size: 100%;
  background-size: 100%;
  background-repeat: no-repeat;
}

.swiper-lazy-preloader-white:after {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}

@-webkit-keyframes swiper-preloader-spin {
  100% {
    -webkit-transform: rotate(360deg);
  }
}

@keyframes swiper-preloader-spin {
  100% {
    transform: rotate(360deg);
  }
}
