
@import 'https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,500,700&subset=japanese&display=swap';
@import 'https://fonts.googleapis.com/css?family=Noto+Serif+JP:400,500&subset=japanese&display=swap';
@import 'https://fonts.googleapis.com/css?family=Poppins:400,500&display=swap';
@import 'https://fonts.googleapis.com/css?family=Oswald:400,500&display=swap';
@charset "UTF-8";
/*
///////////////////////////////////////////////////////////////////////

This template is part of EC-CUBE Design template.

Copyright(c) JAPAN ELECTRONIC INDUSTRIAL ARTS CO.LTD.

http://www.jeia.co.jp/

For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.

本テンプレートの著作権は、「株式会社日本電子工藝社」に帰属いたします。

※本テンプレートを譲渡・再頒布・転用・第三者へ開示することは禁止いたします。
ただし、事業者によるショップ運営者への設置代行を禁止するものではございません。
※本テンプレートを申請されたご利用サイトへの設置以外の目的で複製することは禁止いたします。
※本テンプレートデータ内のライセンス条項、および著作権に関する記述を削除することはできません。
※ご利用サイトを変更することはできません。申請と異なるサイトにてご利用になる場合は、
別途、ご利用費用をお支払いただく必要がございます。
※本テンプレートの改変にあたり、一切のサポートはいたしかねます。
※本テンプレートは、すべての設置環境で動作する事は保証しておりません。

///////////////////////////////////////////////////////////////////////
*/
/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Correct the line height in all browsers.
 * 3. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
/* Document
   ========================================================================== */
html {
  font-family: sans-serif; /* 1 */
  line-height: 1.15; /* 2 */
  -ms-text-size-adjust: 100%; /* 3 */
  -webkit-text-size-adjust: 100%; /* 3 */
}
/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0;
}
/**
 * Add the correct display in IE 9-.
 */
article,
aside,
footer,
header,
nav,
section {
  display: block;
}
/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
/* Grouping content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */
figcaption,
figure,
main { /* 1 */
  display: block;
}
/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 40px;
}
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}
/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent; /* 1 */
  -webkit-text-decoration-skip: objects; /* 2 */
}
/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */
a:active,
a:hover {
  outline-width: 0;
}
/**
 * 1. Remove the bottom border in Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}
/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit;
}
/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}
/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic;
}
/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000;
}
/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}
/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
/* Embedded content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
audio,
video {
  display: inline-block;
}
/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}
/**
 * Remove the border on images inside links in IE 10-.
 */
img {
  border-style: none;
}
/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden;
}
/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}
/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input { /* 1 */
  overflow: visible;
}
/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select { /* 1 */
  text-transform: none;
}
/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type="button"], /* 1 */
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; /* 2 */
}
/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}
/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}
/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
}
/**
 * Remove the default vertical scrollbar in IE.
 */
textarea {
  overflow: auto;
}
/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}
/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}
/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}
/* Interactive
   ========================================================================== */
/*
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 */
details, /* 1 */
menu {
  display: block;
}
/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}
/* Scripting
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
canvas {
  display: inline-block;
}
/**
 * Add the correct display in IE.
 */
template {
  display: none;
}
/* Hidden
   ========================================================================== */
/**
 * Add the correct display in IE 10-.
 */
[hidden] {
  display: none;
}
/*
Sass変数

_variables.scss

各パーツの色やサイズを変数として定義しています。

Styleguide 24.7
*/
/*
ヘッダーロゴ
*/
/*
デバイス別設定
*/
/*
ボタン
*/
/*
文字色・背景色
*/
/*
ヘッダー・ドロワー
当テンプレートでは白系（ヘッダーは白背景、ドロワーはライトグレー）でデザインしていますがフラグにより黒系に切り替える事ができます
*/
/*
フッター
*/
/*
シェア・SNSカラー
*/
/*
フォーム部品
*/
/*
カート
*/
/*
アニメーションkeyframes

_animation.scss

定義mixin：<br>
@mixin fadeIn<br>
@mixin fadeOut<br>

<br>
定義CSS：<br>
@keyframes fadeIn<br>
@keyframes fadeOut<br>
.bg-load-overlay

Styleguide 24.6
*/
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
    visibility: hidden; }
  100% {
    opacity: 1;
    visibility: visible; } }
@keyframes fadeIn {
  0% {
    opacity: 0;
    visibility: hidden; }
  100% {
    opacity: 1;
    visibility: visible; } }
@-webkit-keyframes fadeOut {
  0% {
    opacity: 1;
    visibility: visible; }
  100% {
    opacity: 0;
    visibility: hidden; } }
@keyframes fadeOut {
  0% {
    opacity: 1;
    visibility: visible; }
  100% {
    opacity: 0;
    visibility: hidden; } }
.bg-load-overlay {
  background: rgba(255, 255, 255, 0.4);
  box-sizing: border-box;
  position: fixed;
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  justify-content: space-around;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2147483647;
  opacity: 1; }
/*
@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
  padding: $padding-vertical $padding-horizontal;
  font-size: $font-size;
  line-height: $line-height;
  border-radius: $border-radius;
}
*/
/*
ボタン

_btn.scss

Styleguide 24.2
*/
/*
ボタンひな形

* @mixin _btn($color, $background, $border)

Styleguide 24.2.1
*/
/*
インラインボタン

* @mixin btn-default<br>
* @mixin btn-action<br>
* @mixin btn-cancel<br>
* @mixin btn-primary

Styleguide 24.2.2
*/
/*
ブロックボタン

* @mixin blockBtn-default<br>
* @mixin blockBtn-action<br>
* @mixin blockBtn-cancel<br>
* @mixin blockBtn-primary

Styleguide 24.2.3
*/
/*
User select

ボタンひな形（@mixin _btn()）から使用されてるmixinで、テキストを選択不可にしている様子。
ほかからの使用は無い様子。

* @mixin user-select

Styleguide 24.2.4
*/
/*
リンクボタン

使用箇所は無い様子

* @mixin linkBtn

Styleguide 24.2.5
*/
/*
Clearfix

_clearfix.scss

Styleguide 24.4
*/
/*
フォーム

_form.scss

Styleguide 24.3
*/
/*
フォームリセット

* @mixin forms-reset

Styleguide 24.3.1
*/
/*
フォームコントールひな形

* @mixin _form-control

Styleguide 24.3.2
*/
/*
メディア

_media.scss

Styleguide 24.1
*/
/*
メディアクエリ

* @mixin media_desktop

EC-CUBE4標準ではモバイルファースト（スマートフォン）でスタイリングしたのち適宜、デスクトップ用にメディアクエリで上書きする形でスタイリングしている様子ですが、
当テンプレートではタブレットも加えた3デバイスのスタイリングしています。

スタイリングの仕方はケースバイケースで、上書きや汚染が起きないようメディアクエリの内容を範囲を大きくとってがっつり分離してスタイリングする場合や、
一度、デスクトップ用（あるいはスマートフォン用）のスタイリングを施してから、適宜上書き用のメディアクエリを書く場合もあります。

メディアクエリに関しては、後からの変更・修正の際に「ごちゃごちゃしてどこをいじればいいのか判りづらい」コードにならないよう気を付けたいと思っています。
ですので上書きの多用は避けたいとしております、が、上書きスタイリングのほうがコードがすっきりするならそのようにします。ケースバイケースです。

* スマホ：320px～767px
* タブレット：768px～1279px
* PC：1280px以上

※デバイスごとのブレイクポイントは_variables.scssにて変数で設定。

Styleguide 24.1.1
*/
/*
コンテナ

コンテナブロックのmax-width、左右余白などブロックスタイルの共通定義。
各セクションの左右余白の統一感はコンテナによってもたらされます。

※ブラウザのフル幅で背景を敷いたデザインも可能とするため、`.ec-layoutRole__contents`側のmax-widthを解除し、こちらの「コンテナ」でmax-widthを定義。
コンテナを適用するセクションでmax-widthを変更したい場合は、そのコンテナで随時上書きします。

※コンテナの左右余白については、コンテナを「box-sizing:content-box;」としておいてから、希望のままの値でmax-widthを指定し、デバイスごとの左右余白を定義。

EC-CUBE4ではマイページ用に調整されたコンテナがありましたが、当テンプレートではマイページも汎用コンテナでスタイリングしています。

* @mixin container

Styleguide 24.1.2
*/
/*
コンテナの上下マージン

サイト内各コンテナの余白に統一感を持たせるために用意したmixinで、単純に上下余白を定義した内容となります。
コンテナのデザインレイアウトによっては上書き調整される事を想定しています。
*/
/*
コンテナの上下マージンをpaddingで実装する場合

コンテナが背景色を持っている場合はこちらを使用します。
サイト内各コンテナの余白に統一感を持たせるために用意したmixinで、単純に上下余白を定義した内容となります。
コンテナのデザインレイアウトによっては上書き調整される事を想定しています。
*/
/*
印刷用

ニュース記事詳細ページで印刷ボタン機能があります
*/
/*
ECCUBE 固有のスタイルユーティリティ

_projects.scss

* @mixin borderTop
* @mixin borderBottom
* @mixin reset_link

borderTop, borderBottomは、サイト内で一貫したborder線を敷くために使います。
一応、引数で色も指定できますが、一貫とは別種のborderなら直接borderプロパティでスタイリングしたほうがいいとは思います。

reset_linkは、.ec-link（リンクテキストの表現）をリセットさせる目的のmixinでしょうか。当テンプレートではその場その場で、
同等のスタイリングをしていますので、結果このmixinは使用していません。

Styleguide 24.5
*/
/*
追加mixin

当テンプレート用にmixinを追加しています。

Styleguide 24.5.1
*/
/*
offGridを無効にするmixin

テンプレート上、レイアウト的に幅狭め（offGird）を無効にしたい場合に適用

※offGrid自体の機能は崩さずそのまま残しておきたいので、部分的に挙動を無効化するmixinを用意。
※offGrid自体の挙動は変更していないが、タブレット時の挙動は別途追加している。
↓
結果的にoffGridの挙動を変更する形にした

Styleguide 24.5.2
*/
/*
画像マウスオーバー

マウスオーバーで画像を拡大・明度上げします。
mixinはa要素に適用してください。

Markup:
../styleguide/tmpl/24.5.3.html

Styleguide 24.5.3
*/
/*
画像マウスオーバー（カラーオーバーレイ）

マウスオーバーで画像にカラーフィルターをオーバーレイします。
mixinはa要素に適用してください。

* $color: フィルターの色

Markup:
../styleguide/tmpl/24.5.4.html

Styleguide 24.5.4
*/
/*
横並びメニューのボタンに短い区切り線を入れる

マイページのメニュー部分に使用しています。

* $length: ボーダー長さ（%のみ）
* $color: ボーダー色

Markup:
../styleguide/tmpl/24.5.5.html

Styleguide 24.5.5
*/
/*
商品一覧等の陳列レイアウト

商品一覧やお気に入り一覧など子アイテム（商品）を陳列レイアウト（縦横に並べる）スタイリングを施します。
横に配置する数、アイテム間の余白を引数で指定できます。

商品詳細の画像ビジュアルナビでも使用しています。

* $amount: 横に配置する数
* $gutter_W: アイテム間の左右余白
* $gutter_h: アイテム間の上下余白

Styleguide 24.5.6
*/
/*
閉じる・削除ボタン

ヘッダーのカート状況のカート削除ボタン、マイぺージお気に入り削除ボタンなど、画像の上に被さるタイプの丸型の削除系ボタンです。

* $size ボタン自体のサイズを指定

Styleguide 24.5.7
*/
/*
テキストhoverで下線が伸びるエフェクト

* $color: 下線の色

Markup:
../styleguide/tmpl/24.5.8.html

Styleguide 24.5.8
*/
/*
ユーザビリティ タブフォーカス

タブフォーカスのデザインをスタイリングします。
タブフォーカス時だけでなくクリックした時も効果が出てしまいます。デフォルトでは効果をオフにしています。ユーザビリティを優先する場合はコメントアウトを解除してください。
いい具合に実装できるライブラリ「what-input」なるものもあるみたいですね。

Styleguide 24.5.9
*/
/*
ブラウザハック IE11

Styleguide 24.5.10
*/
/*
商品アイテム マウスオーバーアクション

商品名称や価格表示を包含する商品情報要素を最初に非表示にしておき、商品画像にマウスオーバーしたときに商品情報をオーバーレイ表示させるスタイリングです。

商品一覧ページで使用している商品アイテム「.ec-productItemRole」（_13.2.shelf.scss）を上書きスタイリングとなりますので、
商品一覧と同じ商品アイテム「.ec-productItemRole」の中でのみ動作します。
デスクトップ時のみ適用されるようにメディアクエリの中で「.ec-productItemRole」要素に対してこのmixinを適用してください。
当テンプレートでは「特集商品（_12.6.newItem.scss）」「ピックアップカテゴリ（_12.7.category.scss）」ブロックで使用しています。

Markup:
../styleguide/tmpl/24.5.11.html

Styleguide 24.5.11
*/
/*
画像の上に被さる形でタイトルやテキストのコンテンツが乗っているコンポーネントになります。
a要素に対して@includeしてください。

使用箇所：
* TOP 事業内容
* 事業内容index（商品一覧ページ）
*/
/*
ベース

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Styleguide 0.1
*/
body {
  background: transparent;
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  color: #444; }
a:focus {
  text-decoration: none;
  /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
pre {
  /*
  background-color: transparent;
  border: none;
  padding: 16px 0;
  */ }
p {
  margin-bottom: 1em; }
h1, h2, h3, h4, h5, h6 {
  color: #222;
  line-height: 1.2;
  font-weight: 500; }
.mini {
  font-size: .866em; }
img {
  width: 100%;
  height: auto; }
label {
  margin: 0;
  font-weight: normal; }
/*
表組み（シンプル）

table要素、dl要素による表組レイアウト

商品詳細ページのフリーエリアや利用ガイド等の記事の中で差し込まれてくるシンプルな表組みについて基本スタイリングします。

特商や会員登録フォームといったコンテンツの表組みレイアウトは、_1.3.list.scssにて定義しています。

Markup:
../styleguide/tmpl/0.1.2.html

Styleguide 0.1.2
*/
/*
.table_basic 
*/
table.table_basic {
  width: 100%;
  table-layout: fixed;
  font-size: 0.933rem;
  margin: 2rem 0;
  border-top: 1px solid #d6d6d6; }
table.table_basic tr {
    border-bottom: 1px solid #d6d6d6; }
table.table_basic tr:nth-child(odd) {
      background-color: #f8f8f8; }
table.table_basic th {
    padding: 0.5em;
    width: 10em;
    white-space: nowrap;
    vertical-align: top; }
table.table_basic td {
    padding: 0.5em;
    width: auto;
    vertical-align: top; }
/* .caption */
.caption {
  margin: 0;
  padding: 0.5em 0;
  font-size: 0.933rem;
  color: #666; }
/*
dl要素をtable風に
*/
.dl_table {
  width: 100%;
  font-size: 0.933rem;
  margin: 2rem 0; }
.caption + .dl_table {
    margin-top: 0; }
.dl_table dl {
    margin: 0;
    border-bottom: 1px solid #d6d6d6; }
.dl_table dl:nth-child(odd) {
      background-color: #f8f8f8; }
.dl_table dl:first-child {
      border-top: 1px solid #d6d6d6; }
.dl_table dt {
    display: inline-block;
    padding: 0.5em;
    min-width: 10em; }
.dl_table dd {
    display: inline-block;
    padding: 0.5em; }
/*
dl要素レスポンシブ（タブレット・デスクトップ時はtable風で、スマホ時はdtとddを改行して表示）
*/
/*
ページスクロールでブロック要素をふわりと表示（共通エフェクト）

ページスクロールしてブロック領域が表示領域に入ったら、ふわりと表示させるためのエフェクトclassが付与されます（jeia_function.js）
準備としてHTML側にて、エフェクト出現をかけたいブロック要素にclass「.appearEffect」を記述しておきます。
エフェクトのスタイリングは基本、共通エフェクトとなりますが、個別のスタイリングにしたい場合はclass「.appearEffectCustom」で指定しておきます。
表示領域に入ったときに、共通エフェクトなら「.is-appear」を、個別スタイリングの場合は「.is-appearCustom」が付与されます。
ここでは共通エフェクトをスタイリングしています。（個別エフェクトはその適用要素のscssにてスタイリングを行います。）
*/
.appearEffect {
  transform: translate3d(0, 75px, 0);
  opacity: 0;
  transition: 1s; }
.appearEffect.is-appear {
    transform: translate3d(0, 0, 0);
    opacity: 1; }
/*
ページスクロールで商品画像をエフェクト効果しながら表示

ページスクロールして商品画像等のアイテムが表示領域に入ったら、エフェクト効果しながら表示させるためのエフェクトclassが付与されます（jeia_function.js）
準備としてHTML側にて、エフェクト出現をかけたい要素（class「.image」や「.pic」など）にclass「.appearItem」を記述しておきます。
表示領域に入ったときに、エフェクトclass「.is-appear」が付与されます。

事前にスクリプトにより対象画像（img要素）に対して「.appearItemImage」要素で包括されるようにしています。
この包括要素に対してanimationがスタイリングされます。
包括要素を入れずにimg要素に対して直接アニメーションさせてしまうと、表示完了後にhoverアクション（transformを使った拡大表示等）が効かない事があります。
表示完了後に.appearItemを外したり、アニメーションを破棄すれば解決しますが、iOSでは解決しきらない事があったので包括要素を付ける仕様としました。

エフェクト効果のスタイリングは以下のようにパーツに分けてそれぞれにアニメーションさせています。

* パーツA：対象画像本体
* パーツB：グレーのマスク要素
* パーツC：点滅するロゴ

*/
.appearItem {
  position: relative;
  overflow: hidden;
  visibility: hidden;
  /* パーツA: 対象画像本体 */
  /* パーツB: マスク */
  /* パーツC: ロゴ */
  /* アクティブ化表示状態 */ }
.appearItem .appearItemImage {
    transform: translate3d(0, -100%, 0); }
.appearItem:before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: #eee;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    transform: translate3d(0, -100%, 0); }
.appearItem:after {
    content: "";
    display: block;
    background: url(../img/common/sitelogo.png) no-repeat center center;
    background-size: contain;
    width: 50%;
    height: 50%;
    position: absolute;
    top: 25%;
    left: 25%;
    z-index: 2; }
.appearItem.is-appear {
    visibility: visible;
    /* パーツA: 商品画像本体 */
    /* パーツB: マスク */
    /* パーツC: ロゴ */ }
.appearItem.is-appear .appearItemImage {
      -webkit-animation-duration: 0.5s;
              animation-duration: 0.5s;
      -webkit-animation-fill-mode: forwards;
              animation-fill-mode: forwards;
      -webkit-animation-timing-function: ease-in-out;
              animation-timing-function: ease-in-out;
      -webkit-animation-delay: 0.3s;
              animation-delay: 0.3s;
      /*長くとると動きが増える*/
      -webkit-animation-name: appearAnimation_a;
              animation-name: appearAnimation_a; }
@-webkit-keyframes appearAnimation_a {
  0% {
    transform: translate3d(0, -100%, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }
@keyframes appearAnimation_a {
  0% {
    transform: translate3d(0, -100%, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }
.appearItem.is-appear:before {
      visibility: hidden;
      -webkit-animation-duration: 0.8s;
              animation-duration: 0.8s;
      -webkit-animation-fill-mode: forwards;
              animation-fill-mode: forwards;
      -webkit-animation-timing-function: ease-in-out;
              animation-timing-function: ease-in-out;
      -webkit-animation-name: appearAnimation_b;
              animation-name: appearAnimation_b; }
@-webkit-keyframes appearAnimation_b {
  /* [0%] IN→ [30%] Stay [70%] OUT→ [100%] */
  0% {
    visibility: visible;
    transform: translate3d(0, -100%, 0); }
  30% {
    transform: translate3d(0, 0, 0); }
  70% {
    transform: translate3d(0, 0, 0); }
  100% {
    transform: translate3d(0, 100%, 0); } }
@keyframes appearAnimation_b {
  /* [0%] IN→ [30%] Stay [70%] OUT→ [100%] */
  0% {
    visibility: visible;
    transform: translate3d(0, -100%, 0); }
  30% {
    transform: translate3d(0, 0, 0); }
  70% {
    transform: translate3d(0, 0, 0); }
  100% {
    transform: translate3d(0, 100%, 0); } }
.appearItem.is-appear:after {
      visibility: hidden;
      -webkit-animation-duration: 0.8s;
              animation-duration: 0.8s;
      -webkit-animation-fill-mode: forwards;
              animation-fill-mode: forwards;
      -webkit-animation-name: appearAnimation_c;
              animation-name: appearAnimation_c; }
@-webkit-keyframes appearAnimation_c {
  0% {
    opacity: 0;
    visibility: visible; }
  10% {
    opacity: 1; }
  20% {
    opacity: 0; }
  30% {
    opacity: 1; }
  40% {
    opacity: 0; }
  50% {
    opacity: 1; }
  60% {
    opacity: 0; }
  70% {
    opacity: 1; }
  80% {
    opacity: 0; }
  90% {
    opacity: 1; }
  100% {
    opacity: 0;
    visibility: hidden; } }
@keyframes appearAnimation_c {
  0% {
    opacity: 0;
    visibility: visible; }
  10% {
    opacity: 1; }
  20% {
    opacity: 0; }
  30% {
    opacity: 1; }
  40% {
    opacity: 0; }
  50% {
    opacity: 1; }
  60% {
    opacity: 0; }
  70% {
    opacity: 1; }
  80% {
    opacity: 0; }
  90% {
    opacity: 1; }
  100% {
    opacity: 0;
    visibility: hidden; } }
/*
【開発】デバッグ・テスト用
*/
.ec-debugRole {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px; }
/*
メモ書き
*/
.memo {
  max-width: 1280px;
  margin: 20px auto;
  border: solid 1px #d00;
  padding: 0.5em;
  font-size: 13px;
  box-sizing: border-box;
  position: relative; }
.memo:before {
    content: "MEMO";
    display: block;
    background-color: #d00;
    color: #fff;
    padding: 4px 8px;
    font-size: 10px;
    line-height: 1;
    position: absolute;
    bottom: 100%;
    left: -1px; }
/*
デバッグ表示
*/
.debug {
  max-width: 1280px;
  margin: 20px auto;
  border: solid 1px #2190ff;
  padding: 0.5em;
  font-size: 13px;
  box-sizing: border-box;
  position: relative; }
.debug:before {
    content: "DEBUG";
    display: block;
    background-color: #2190ff;
    color: #fff;
    padding: 4px 8px;
    font-size: 10px;
    line-height: 1;
    position: absolute;
    bottom: 100%;
    left: -1px; }
/*
フォントファミリー

使用するフォントファミリー

Styleguide 0.2
*/
/*
 * MEMO
 * IE11でNoto表示するには「&subset=japanese」が必要。
 * Notoは字詰めカーニングが効かない。カーニングが必要であれば游ゴシックなど別フォントに変更。
 * Google Fontsが「display=swap」対応（フォントが読み込まれるまで代替フォントを表示）
*/
body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400; }
button, input, select, textarea {
  font-family: "Noto Sans JP", sans-serif; }
/*
記事スタイル

ブログ記事・商品詳細ページ等において「記事」としてのスタイリングをまとめます。
WYSIWYG使用といったユーザ投稿記事に対して、一定のスタイリングを提供する目的です。
各タイトルh要素、段落p要素、リストul,ol要素、引用blockquote要素等、最低限のHTML構造だけで記事としてまとまるスタイリングになります。

WYSIWYGテンプレート用スタイリングはこの「記事スタイル」を基準にしてスタイリングを重ねていく形になります。

この記事スタイルはブログ記事のほか「新着情報」や「商品詳細の紹介記事」にも利用されることを想定しています。
*/
.ec-article {
  font-size: 0.933rem; }
.ec-article h2, .ec-article h3, .ec-article h4, .ec-article h5, .ec-article h6 {
    font-weight: 500;
    line-height: 1.5;
    margin: 3rem 0 1rem; }
.ec-article h2 {
    font-size: 1.571em; }
.ec-article h3 {
    font-size: 1.428em; }
.ec-article h4 {
    font-size: 1.285em; }
.ec-article h5 {
    font-size: 1.142em; }
.ec-article h6 {
    font-size: 1.071em; }
.ec-article p {
    font-size: 1em;
    line-height: 1.7;
    margin: 1rem 0 3rem;
    text-align: justify; }
.ec-article ul {
    font-size: 1em;
    list-style-type: disc;
    margin: 3rem 0;
    padding-left: 3rem; }
.ec-article ul li {
      padding-left: .25em;
      margin: .5em 0; }
.ec-article ol {
    font-size: 1em;
    list-style-type: decimal;
    margin: 3rem 0;
    padding-left: 3rem; }
.ec-article ol li {
      padding-left: .5em;
      margin: .5em 0; }
.ec-article blockquote {
    font-size: 1em;
    border-left: solid 5px #eee;
    padding: 0 2rem;
    margin: 3rem 0; }
.ec-article img {
    width: 100% !important;
    max-width: 100%;
    height: auto !important; }
.ec-article .ec-list, .ec-article .ec-contentList, .ec-article .ec-list-rice, .ec-article .ec-list-disc, .ec-article .ec-list-decimal, .ec-article .ec-list-decimal_bra, .ec-article .ec-list-decimal_brahalf, .ec-article .ec-list-icon,
  .ec-article .ec-list-rice,
  .ec-article .ec-list-disc,
  .ec-article .ec-list-decimal,
  .ec-article .ec-list-icon {
    margin: 3rem 0; }
.ec-article .ec-amikake {
    margin: 3rem 0;
    background-color: #eee;
    padding: 2rem; }
.ec-article .ec-amikake > * {
      margin: 1rem 0; }
.ec-article .ec-amikake > *:first-child {
        margin-top: 0;
        padding-top: 0; }
.ec-article .ec-amikake > *:last-child {
        margin-bottom: 0;
        padding-bottom: 0; }
.ec-article .ec-speclist {
    margin: 3rem 0;
    font-size: 0.96rem; }
.ec-article .ec-speclist dl {
      border-bottom: solid 1px #ccc;
      display: flex;
      padding: 1em;
      margin: 0; }
.ec-article .ec-speclist dl:first-child {
        border-top: solid 1px #ccc; }
.ec-article .ec-speclist dl dt {
        font-weight: 700;
        margin-right: 1.5em;
        min-width: 5em; }
.ec-article .ec-contentList {
    background: #eee;
    font-size: 1.06rem;
    padding: 1em;
    margin: 1rem 0; }
.ec-article .ec-kakomi {
    margin: 3rem 0;
    border: solid 1px #C8C8C8;
    padding: 1.5em 2rem; }
.ec-article .ec-kakomi h3 {
      font-size: 1.2rem;
      margin: 0;
      margin-bottom: 1em; }
.ec-article .ec-kakomi .ec-kakomilist dl {
      display: flex;
      margin: 0;
      margin-top: 1em; }
.ec-article .ec-kakomi .ec-kakomilist dl dt {
        margin-right: 1.5em;
        min-width: 4em;
        font-weight: 400; }
.ec-article .ec-kakomi .ec-kakomilist dl dt:after {
          content: "："; }
/*
見出し

ページ内で見出しとして機能する要素のスタイル群です。

Styleguide 1.1
*/
/*
商品詳細ページ見出し（未使用）

EC-CUBE4では商品詳細ページのみ見出しに使用されているスタイルですが、当テンプレートでは使用していません。

使用箇所：なし

Markup:
../styleguide/tmpl/1.1.1.html

Styleguide 1.1.1
*/
.ec-headingTitle {
  margin: 0 0 8px;
  /*
  font-size: 32px;
  font-weight: normal;
  color: #525263;
  */ }
/*
ページヘッダ（h1見出し）

各種ページで用いられるページヘッダのデザインです。

EC-CUBE4のHTML構成でページヘッダ見出しは「コンテナ」の中に含まれており、コンテナには左右余白が定義されています。<br>
当テンプレートではh1見出しには背景色を敷いたデザインですが、スマホ・タブレット時ではブラウザ幅フルにフィットさせたいので、
これをネガティブマージンを用いて左右余白を相殺することでスタイリングしています。

もし背景色を敷かないデザインに変更するのであればネガティブマージンによる余白相殺と余白の再定義は不要です。

h1要素に下マージンを持たせて、h1タイトル部とページコンテンツ本体との余白としています。

h1要素にclass名は不要です。「新着情報詳細ページ」のようにh1要素は避けたいが同じスタイルの見出しを付けたい場合は「div.ec-pageHeader__title」としてください。
h1要素、div要素のどちらの場合でもその中にspan要素を設けてタイトルテキストを入れてください。span要素はデザインによっては必要になることがあるためです。
*/
.ec-pageHeader h1,
.ec-pageHeader .ec-pageHeader__title {
  margin: 0;
  background-color: #f4f4f4;
  margin-bottom: 1.5em; }
/*
ページビジュアルヘッダー

各メインページで使用される背景画像を伴うページヘッダーのスタイリングになります。
ページヘッダーですのでh1要素を含むコンポーネントを想定しています。
*/
.ec-pageVisualHeader {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover; }
.ec-pageVisualHeader .ec-pageVisualHeader__inner {
    margin: 0 auto;
    box-sizing: content-box;
    width: auto !important;
    max-width: 1280px;
    max-width: 1280px; }
.ec-pageVisualHeader .ec-pageVisualHeader__title {
    height: 100%;
    display: flex;
    flex-flow: column;
    justify-content: center;
    color: #000;
    text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5), 0 0 10px rgba(255, 255, 255, 0.5); }
.ec-pageVisualHeader .ec-pageVisualHeader__title.white {
      color: #fff;
      text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25), 0 0 10px rgba(0, 0, 0, 0.5); }
.ec-pageVisualHeader .ec-pageVisualHeader__title h1 {
      font-family: "Noto Serif JP", serif;
      font-weight: 400;
      line-height: 1.2;
      color: inherit;
      margin: 0; }
.ec-pageVisualHeader .ec-pageVisualHeader__title .subtitle {
      font-family: "Noto Serif JP", serif;
      font-size: 1.06rem;
      line-height: 1.2;
      color: inherit;
      margin-top: .5em; }
/*
ページヘッダー序文

主にページビジュアルヘッダーに続くテキスト部分のスタイリングになります。
*/
.ec-pageHeaderIntro .ec-pageHeaderIntro__inner {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px;
  max-width: 1280px; }
.ec-pageHeaderIntro.noPadding .ec-pageHeaderIntro__inner {
  padding: 0 !important; }
.ec-pageHeaderIntro .ec-pageHeaderIntro__content .title {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  line-height: 1.54;
  text-align: center;
  margin: 0; }
.ec-pageHeaderIntro .ec-pageHeaderIntro__content .description {
  font-size: 0.96rem;
  line-height: 1.8;
  text-align: justify;
  margin-top: 2em; }
.ec-pageHeaderIntro .ec-pageHeaderIntro__content .description .subtitle {
    font-size: 1.06rem;
    margin: 1em 0; }
.ec-pageHeaderIntro.left .ec-pageHeaderIntro__content .title {
  text-align: left; }
.ec-pageHeaderIntro.left .ec-pageHeaderIntro__content .description {
  text-align: left;
  margin-top: 1.5em; }
.ec-pageHeaderIntro.large .ec-pageHeaderIntro__content .title {
  font-size: 2rem; }
.ec-pageHeaderIntro.large .ec-pageHeaderIntro__content .description {
  font-family: "Noto Serif JP", serif;
  font-size: 1.06rem;
  margin-top: .75em;
  text-align: center; }
/*
ページヘッダー序文 タイプ2

「事業内容」indexで使用される序文のスタイリングになります。
*/
.ec-pageHeaderIntro2 {
  background-color: #A9894A; }
.ec-pageHeaderIntro2 .ec-pageHeaderIntro2__inner {
    margin: 0 auto;
    box-sizing: content-box;
    width: auto !important;
    max-width: 1280px;
    max-width: 1280px;
    display: flex;
    justify-content: space-between; }
.ec-pageHeaderIntro2 .ec-pageHeaderIntro2__content {
    color: #fff; }
.ec-pageHeaderIntro2 .ec-pageHeaderIntro2__content .title {
      font-family: "Noto Serif JP", serif;
      font-weight: 400;
      line-height: 1.54;
      color: inherit;
      margin: 0; }
.ec-pageHeaderIntro2 .ec-pageHeaderIntro2__content .description {
      font-size: 0.96rem;
      line-height: 1.8;
      color: inherit;
      text-align: justify;
      margin-top: 2em; }
.ec-pageHeaderIntro2 .ec-pageHeaderIntro2__image img {
    width: auto;
    max-width: 100%; }
/*
セクション見出し

トップページで使用されているセクションの見出しのスタイルです。
*/
.ec-secHeading {
  text-align: center;
  line-height: 1;
  margin-bottom: 2rem;
  /*
  色反転スタイル（黒系文字を白系文字に上書き）
  */
  /*
  wide
  各ページにおいて上下に大きく余白を取るタイプのセクションタイトルのスタイリングになります。
  コンテナの中には含まれていない状態を想定しており、セクションタイトルが1つのコンテナであり、
  セクションタイトル自身に左右上下の余白を持つ形になります。
  「事業内容」index等で使用しています。
  */ }
.ec-secHeading .ec-secHeading__maintitle {
    display: inline-block;
    font-family: "Noto Serif JP", serif;
    font-size: 1.63rem;
    font-weight: 400;
    margin: 0; }
.ec-secHeading .ec-secHeading__subtitle {
    font-family: "Noto Serif JP", serif;
    font-size: 0.933rem;
    color: #A9884A;
    margin-top: .75em; }
.ec-secHeading.reverse .ec-secHeading__maintitle {
    color: #fff; }
.ec-secHeading.reverse .ec-secHeading__subtitle {
    color: #fff; }
.ec-secHeading.wide {
    margin: 0; }
/*
セクション見出し2

各事業インデックスコンテンツ「私たちの活動」等で使用されるタイトルのスタイリングになります。
*/
.ec-secHeading2 {
  text-align: center;
  margin: 0;
  margin-bottom: 2rem;
  font-size: 1.33rem;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  position: relative; }
.ec-secHeading2 span {
    display: inline-block;
    padding: 0 1em;
    background-color: #fff; }
.ec-secHeading2:before {
    content: "";
    width: 100%;
    height: 1px;
    background-color: #ddd;
    position: absolute;
    top: 50%;
    left: 0;
    z-index: -1; }
/*
箔一オフィシャルデザイン 2レイアウトページレイアウト 左ナビタイトル

ページ構成が、左にナビ、右にコンテンツのある2カラムレイアウトにおける、左ナビ枠上部に位置するメインタイトルのスタイリングになります。
デザインは「.ec-secHeading」とよく似ていますが少し違いがありますので切り分けてスタイリングしています。
*/
.ec-leftHeading {
  text-align: center;
  line-height: 1.2;
  margin-bottom: 2rem; }
.ec-leftHeading .ec-leftHeading__maintitle {
    display: inline-block;
    font-family: "Noto Serif JP", serif;
    font-size: 1.63rem;
    font-weight: 400;
    margin: 0; }
.ec-leftHeading .ec-leftHeading__subtitle {
    font-family: "Noto Serif JP", serif;
    font-size: 1.06rem;
    margin-top: .5em; }
/*
その他 見出し（h2見出し）

「ノベルティ」「よくある質問」で使用。「よくある質問」ではスタイリングを上書きして使用
*/
.ec-heading {
  font-size: 1.33rem;
  font-weight: 700;
  padding: 0;
  margin: 0 0 1em; }
.ec-heading.center {
    text-align: center; }
/*
背景付き見出し

h2の見出し要素を装飾するスタイリングです。<br>
h3以降の使用箇所はありません。使う場面があればh3以降も追加スタイリングしてください。

使用箇所：
Mypage/history.twig
Shopping/index.twig
Shopping/confirm.twig
Help/guide.twig

Markup:
../styleguide/tmpl/1.1.5.html

Styleguide 1.1.5
*/
.ec-rectHeading {
  margin: 0;
  margin-bottom: 1rem; }
.ec-rectHeading h2 {
    margin: 0;
    font-size: 1.1rem;
    font-weight: normal;
    background-color: #eee;
    padding: 0.6em 0.75em; }
/*
メッセージ見出し

ユーザが行った操作に対する、完了報告やエラー表示のページで使用される見出しのスタイルです。

使用箇所：
error.twig
Contact/complete.twig
Entry/activate.twig
Entry/complete.twig
Forgot/complete.twig
Mypage/change_complete.twig
Mypage/withdraw_complete.twig
Shopping/complete.twig

Markup:
../styleguide/tmpl/1.1.6.html

Styleguide 1.1.6
*/
.ec-reportHeading {
  font-size: 1.5rem;
  margin: 0;
  margin-bottom: 1em;
  padding: 1em 0;
  text-align: center;
  border-top: 1px solid #d6d6d6;
  border-bottom: 1px solid #d6d6d6; }
.ec-reportHeading h2 {
    margin: 0;
    font-size: inherit;
    line-height: inherit;
    text-align: inherit; }
/*
ページビジュアルヘッダー大

各事業インデックスページで使用しているビジュアルヘッダーのスタイリングです。
*/
.ec-pageVisualHeaderLarge {
  position: relative;
  overflow: hidden; }
.ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__bgBox {
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    -webkit-animation: animeVisualHeaderBgBox 3s forwards;
            animation: animeVisualHeaderBgBox 3s forwards; }
@-webkit-keyframes animeVisualHeaderBgBox {
  0% {
    transform: scale(1.3);
    filter: blur(10px); }
  100% {
    transform: scale(1);
    filter: blur(0px); } }
@keyframes animeVisualHeaderBgBox {
  0% {
    transform: scale(1.3);
    filter: blur(10px); }
  100% {
    transform: scale(1);
    filter: blur(0px); } }
.ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__title {
    -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 32.5vw;
    font-family: "Noto Serif JP", serif;
    text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.75), 0 0 5px rgba(255, 255, 255, 0.25);
    opacity: 0;
    -webkit-animation: animeVisualHeaderTitle 2s forwards;
            animation: animeVisualHeaderTitle 2s forwards; }
.ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__title.white {
      color: #fff;
      text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5), 0 0 5px rgba(0, 0, 0, 0.25); }
.ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__title h1 {
      font-size: inherit;
      font-weight: 500;
      color: inherit;
      margin: 0;
      letter-spacing: 0.1em; }
@-webkit-keyframes animeVisualHeaderTitle {
  0% {
    transform: translate3d(0, 1em, 0);
    opacity: 0; }
  100% {
    transform: translate3d(0, 0, 0);
    opacity: 1; } }
@keyframes animeVisualHeaderTitle {
  0% {
    transform: translate3d(0, 1em, 0);
    opacity: 0; }
  100% {
    transform: translate3d(0, 0, 0);
    opacity: 1; } }
.ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__content {
    -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
    display: flex;
    flex-flow: column;
    justify-content: center;
    width: 100%;
    padding: 0 0 6vw;
    font-family: "Noto Serif JP", serif;
    text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.75), 0 0 5px rgba(255, 255, 255, 0.25);
    opacity: 0;
    -webkit-animation: animeVisualHeaderContent 2s forwards;
            animation: animeVisualHeaderContent 2s forwards;
    -webkit-animation-delay: 1s;
            animation-delay: 1s; }
.ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__content.white {
      color: #fff;
      text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5), 0 0 5px rgba(0, 0, 0, 0.25); }
.ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__content.white .title,
      .ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__content.white .description {
        position: relative; }
.ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__content.white .title:before,
        .ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__content.white .description:before {
          content: "";
          display: block;
          width: 100%;
          height: 100%;
          background-color: rgba(0, 0, 0, 0.25);
          filter: blur(30px);
          position: absolute;
          top: 0;
          left: 0;
          z-index: -1; }
.ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__content .title {
      font-weight: 400;
      font-size: 2rem;
      line-height: 1.77;
      color: inherit;
      margin: 0;
      margin-left: 1em; }
@-webkit-keyframes animeVisualHeaderContent {
  0% {
    transform: translate3d(0, 3em, 0);
    opacity: 0; }
  100% {
    transform: translate3d(0, 0, 0);
    opacity: 1; } }
@keyframes animeVisualHeaderContent {
  0% {
    transform: translate3d(0, 3em, 0);
    opacity: 0; }
  100% {
    transform: translate3d(0, 0, 0);
    opacity: 1; } }
/*
文字装飾

文字装飾をするためのスタイル群です。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Styleguide 1.2
*/
/*
テキストリンク

テキストリンクのスタイルです。

使用箇所：
Entry/index.twig
Mypage/login.twig
Shopping/login.twig

※ログインページ（Mypage,Shopping）では上書き調整しておりますのでこちらのスタイリングは反映されない形です。

Markup:
../styleguide/tmpl/1.2.1.html

Styleguide 1.2.1
*/
.ec-link {
  text-decoration: none;
  cursor: pointer; }
.ec-link:hover {
    text-decoration: none; }
/*
テキスト（太字）

テキストを太くするためのスタイルです。

使用箇所：
Product/list.twig
Shopping/index.twig
Shopping/confirm.twig

Markup:
../styleguide/tmpl/1.2.2.html

Styleguide 1.2.2
*/
.ec-font-bold {
  font-weight: 500; }
/*
テキスト（グレー）（未使用）

テキストをグレーにするためのスタイルです。

使用箇所：なし

Markup:
../styleguide/tmpl/1.2.3.html

Styleguide 1.2.3
*/
.ec-color-grey {
  color: #666; }
/*
テキスト（赤）

テキストを赤にするためのスタイルです。

使用箇所：
Cart/index.twig
Mypage/history.twig

Markup:
../styleguide/tmpl/1.2.4.html

Styleguide 1.2.4
*/
.ec-color-red {
  color: #e2251f; }
.ec-color-accent {
  color: #e2251f; }
/*
その他アクセント文字
*/
.ec-font-attention {
  color: #c00; }
/*
テキスト水平位置

テキストをセンタリングするためのスタイルです。

使用箇所：
Contact/complete.twig
Entry/activate.twig
Entry/complete.twig
Forgot/complete.twig
Mypage/change_complete.twig
Shopping/complete.twig

Markup:
../styleguide/tmpl/1.2.6.html

Styleguide 1.2.6
*/
.ec-text-ac {
  text-align: center; }
/*
価格テキスト

価格表示を構成するスタイリングです。
構成としては、「通常価格」「販売価格」のラベルテキスト、価格部分、「税込」のテキスト、になります。
ここでは各テキスト部位をインラインで配置するスタイリングに留めています。
各テキスト部位ごとのフォントサイズ調整は、「_13.2.shelf.scss」「_14.1.product.scss」側にてスタイリングします。
「販売価格」と「通常価格」で価格部分のフォントサイズは変化をつけたいが、ラベルと税込みテキストは合わせておきたい等の要望はあるかと思い、
そのようにしたほうが調整がしやすいと判断しました。

使用箇所：
* Product/list.twig
* Product/detail.twig

Markup:
../styleguide/tmpl/1.2.7.html

Styleguide 1.2.7
*/
.ec-price {
  /* 「通常価格」「販売価格」のラベルテキスト */
  /* 価格本体 */
  /* 「税込」のテキスト */ }
.ec-price .ec-price__label {
    display: inline-block;
    vertical-align: baseline;
    margin-right: 0.5em; }
.ec-price .ec-price__price {
    font-family: "Oswald", "Noto Sans JP", sans-serif;
    display: inline-block;
    vertical-align: baseline; }
.ec-price .ec-price__tax {
    display: inline-block;
    vertical-align: baseline; }
/*
テキストの位置

テキストや、入れ子にしたインライン要素を「左揃え」「中央揃え」「右揃え」に設定することができます。

使用箇所は無い様子

Markup:
../styleguide/tmpl/1.2.8.html

Styleguide 1.2.8
*/
.text-left {
  text-align: left; }
.text-center {
  text-align: center; }
.text-right {
  text-align: right; }
/*
メッセージテキスト

ユーザが行った操作に対する、完了報告やエラー表示のページで使用されるテキストのスタイルです。

使用箇所：
error.twig
Contact/complete.twig
Entry/activate.twig
Entry/complete.twig
Forgot/complete.twig
Mypage/change_complete.twig
Mypage/history.twig
Mypage/withdraw_complete.twig
Shopping/complete.twig

Markup:
../styleguide/tmpl/1.2.9.html

Styleguide 1.2.9
*/
.ec-reportDescription {
  font-size: 1rem;
  line-height: 1.8;
  margin-bottom: 2em;
  text-align: left; }
/*
テキスト下部のスペース

テキストの下に余白を追加することができます。

使用箇所：
Contact/index.twig
Forgot/index.twig
Mypage/delivery.twig
Mypage/index.twig

Markup:
../styleguide/tmpl/1.2.10.html

Styleguide 1.2.10
*/
.ec-para-normal {
  margin-bottom: 1em; }
/*
箇条書きスタイル

利用ガイド等で使用する箇条書きスタイルです。各リストマークのパターンを用意しています。
箇条書きスタイルはdl要素に対して適用してください。
*/
/* 箇条書き：ベーシック */
.ec-list, .ec-article .ec-contentList, .ec-list-rice, .ec-list-disc, .ec-list-decimal, .ec-list-decimal_bra, .ec-list-decimal_brahalf, .ec-list-icon {
  margin: 1em 0; }
.ec-list dt, .ec-article .ec-contentList dt, .ec-list-rice dt, .ec-list-disc dt, .ec-list-decimal dt, .ec-list-decimal_bra dt, .ec-list-decimal_brahalf dt, .ec-list-icon dt {
    font-weight: 700; }
.ec-list > dd, .ec-article .ec-contentList > dd, .ec-list-rice > dd, .ec-list-disc > dd, .ec-list-decimal > dd, .ec-list-decimal_bra > dd, .ec-list-decimal_brahalf > dd, .ec-list-icon > dd {
    line-height: 1.8;
    position: relative;
    padding-left: 1.3em;
    /* マークとテキストの間隔調整 */ }
.ec-list > dd:before, .ec-article .ec-contentList > dd:before, .ec-list-rice > dd:before, .ec-list-disc > dd:before, .ec-list-decimal > dd:before, .ec-list-decimal_bra > dd:before, .ec-list-decimal_brahalf > dd:before, .ec-list-icon > dd:before {
      content: "・";
      position: absolute;
      top: 0;
      left: 0; }
/* 箇条書き：「※」スタイル */
.ec-list-rice > dd:before {
  content: "※"; }
/* 箇条書き：「●」スタイル */
.ec-list-disc > dd:before {
  content: "●"; }
/* 箇条書き：連番スタイル */
.ec-list-decimal > dd {
  counter-increment: note; }
.ec-list-decimal > dd:before {
    content: counter(note) "."; }
/* 箇条書き：連番スタイルカッコ付 */
.ec-list-decimal_bra, .ec-list-decimal_brahalf {
  counter-reset: note; }
.ec-list-decimal_bra > dd, .ec-list-decimal_brahalf > dd {
    counter-increment: note;
    padding-left: 2.5em;
    /* マークとテキストの間隔調整 */ }
.ec-list-decimal_bra > dd:before, .ec-list-decimal_brahalf > dd:before {
      content: "（" counter(note) "）"; }
/* 箇条書き：連番スタイル半カッコ付 */
.ec-list-decimal_brahalf > dd {
  padding-left: 2em;
  /* マークとテキストの間隔調整 */ }
.ec-list-decimal_brahalf > dd:before {
    content: counter(note) "）"; }
/* 箇条書き：アイコンスタイル */
.ec-list-icon > dd:before {
  font-family: "jeiafont";
  content: "\e91a"; }
/*
セクションヘッドテキスト

セクションタイトルの下に続くテキスト本文のスタイリングです。
*/
.ec-secHeadDescription {
  font-size: 1rem;
  line-height: 1.8;
  max-width: 980px;
  margin: 2em auto;
  text-align: left; }
/*
リスト

シンプルなリストを構成するためのスタイル群です。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Styleguide 1.3
*/
/*
水平定義リスト

シンプルな定義リストのスタイルを定義します。

dl要素を用いてコーディングします。

使用Twig：
* Mypage/index.twig
* Mypage/history.twig

Markup:
../styleguide/tmpl/1.3.1.html

Styleguide 1.3.1
*/
.ec-definitions, .ec-definitions--soft {
  margin: 0.5em 0;
  display: block; }
.ec-definitions dt, .ec-definitions--soft dt, .ec-definitions dd, .ec-definitions--soft dd {
    display: inline-block;
    margin: 0; }
.ec-definitions dt, .ec-definitions--soft dt {
    font-weight: 500;
    min-width: 8em;
    margin-right: 1em; }
.ec-definitions--soft dt {
  font-weight: normal; }
/*
定義リスト

線が添えられた定義リストのスタイルを定義します。（dlリスト）

フォーム入力ページや、「当サイトについて」「特商表記」など、タイトルと本文のあるコンテンツのスタイル。
*/
.ec-borderedDefs > dl {
  width: 100%;
  margin: 0; }
.ec-borderedDefs > dl > dt {
    font-weight: 700; }
.ec-borderedDefs > dl > dt .ec-label {
      font-weight: inherit; }
/*
ボーダーリスト

線が添えられたリストを表示します。

使用場面はショッピングページのカート商品内容部分で、その中身は商品画像と商品詳細の「.ec-imageGrid」（_5.2.layout.scss）が入ります。

「.ec-borderedLis」も「.ec-imageGrid」もそのパターンでしか使われていない様子なので、
まとめて一つのコンポーネントにしても良いかとも思いますが、今のところはそのままにします。

それともう一点、
「.ec-imageGrid」の使用場面は先のショッピングページの商品内容と、マイページ注文履歴詳細の商品内容とになりますが、
ショッピングページではこれをリスト化（ul li要素）して括っているのが「.ec-borderedList」であるのに対して、
注文履歴詳細のほうではそのリストが含まれておりません。

どちらもさらにその外側で「.ec-orderDelivery__item」で括っているのですが、さらに、
ショッピングページ側では、「.ec-orderDelivery__item」は1つのみでその中にリストのul要素があり、商品ごとにli要素で
括っているのに対して、注文履歴詳細はリストが無く、商品ごとに「.ec-orderDelivery__item」で括っているという違いがあります。

意味合い的にもスタイリングにしても同一なものなので統一してもらいたい所ですが、今のところはCSSで統一させるに留めます。

まず、「.ec-orderDelivery__item」には何もスタイリングしなようにしておき、注文履歴詳細ページのみに働くように
「.ec-orderDelivery__item」に「.ec-borderedList」と同じ形のスタイリングを施しています。

〇ショッピングページ側
構成（※スタイルガイドページでは崩れますのでscssファイルでご覧ください）
.ec-orderDelivery__item
  > ul.ec-borderedList
    > li > .ec-imageGrid
    > li > .ec-imageGrid
    > li > .ec-imageGrid


〇注文履歴詳細ページ側
構成（※スタイルガイドページでは崩れますのでscssファイルでご覧ください）
.ec-orderDelivery__item > .ec-imageGrid
.ec-orderDelivery__item > .ec-imageGrid
.ec-orderDelivery__item > .ec-imageGrid

Markup:
../styleguide/tmpl/1.3.3.html

Styleguide 1.3.3
*/
.ec-borderedList {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid #d6d6d6; }
.ec-borderedList li {
    padding: 10px 0;
    border-bottom: 1px solid #d6d6d6; }
/*
注文履歴詳細用
本来は_15.2.order.scssにてスタイリングすべきですが（※これも厳密にいえばショッピングとマイページコンテンツとで分けておくべきかとも思いますが）、
上記のメモ書きの理由により、混雑しないようにこちらで「.ec-borderedList」と合わせてスタイリングします。
*/
body#page_mypage_history .ec-orderDelivery__item {
  padding: 10px 0;
  border-top: 1px solid #d6d6d6;
  border-bottom: 1px solid #d6d6d6; }
body#page_mypage_history .ec-orderDelivery__item + .ec-orderDelivery__item {
    border-top: none; }
/*
ボタン生成

mixinを利用して各パターンのボタンを生成します。

Styleguide 2.1
*/
/*
通常ボタン（インラインボタン）

インラインの要素としてボタンを定義出来ます。

〇.ec-inlineBtn
使用箇所：
* Mypage/delivery.twig
* Mypage/history.twig
* Mypage/index.twig
* Shopping/index.twig
* Shopping/shipping.twig
* Shopping/shipping_multiple.twig

〇.ec-inlineBtn--primary
使用箇所：なし

〇.ec-inlineBtn--action
使用箇所：
* Product/list.twig
* Product/detail.twig

〇.ec-inlineBtn--cancel
使用箇所：
* Product/list.twig
* Product/detail.twig

Markup:
../styleguide/tmpl/2.1.1.html

Styleguide 2.1.1
*/
.ec-inlineBtn {
  display: inline-block;
  margin-bottom: 0;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 0.6em 1em;
  font-size: 1rem;
  line-height: 1;
  border-radius: 0px;
  font-weight: normal;
  text-decoration: none;
  transition: .3s;
  color: #fff;
  background-color: #222;
  border-color: #222;
  /*
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    color: $color;
    background-color: darken($background, 10%);
        border-color: darken($border, 12%);

    &:hover,
    &:focus,
    &.focus {
      color: $color;
      background-color: darken($background, 17%);
          border-color: darken($border, 25%);
    }
  }
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    background-image: none;
  }
  */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /*
  &,
  &:active,
  &.active {
    &:focus,
    &.focus {
      @include tab-focus;
    }
  }

  &:active,
  &.active {
    outline: 0;
    background-image: none;
    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
  }
  */
  font-size: 0.9rem; }
.ec-inlineBtn:focus, .ec-inlineBtn.focus {
    color: #fff;
    /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
.ec-inlineBtn:hover {
    text-decoration: none;
    color: #fff;
    background-color: #090909;
    border-color: #030303; }
.ec-inlineBtn.disabled, .ec-inlineBtn[disabled],
  fieldset[disabled] .ec-inlineBtn {
    background-color: #999;
    border-color: #999;
    cursor: not-allowed; }
.ec-inlineBtn.disabled:hover, .ec-inlineBtn.disabled:focus, .ec-inlineBtn.disabled.focus, .ec-inlineBtn[disabled]:hover, .ec-inlineBtn[disabled]:focus, .ec-inlineBtn[disabled].focus,
    fieldset[disabled] .ec-inlineBtn:hover,
    fieldset[disabled] .ec-inlineBtn:focus,
    fieldset[disabled] .ec-inlineBtn.focus {
      background-color: #999;
      border-color: #999; }
.ec-inlineBtn .badge {
    color: #222;
    background-color: #fff; }
.ec-inlineBtn--primary {
  display: inline-block;
  margin-bottom: 0;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 0.6em 1em;
  font-size: 1rem;
  line-height: 1;
  border-radius: 0px;
  font-weight: normal;
  text-decoration: none;
  transition: .3s;
  color: #fff;
  background-color: #5CB1B1;
  border-color: #5CB1B1;
  /*
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    color: $color;
    background-color: darken($background, 10%);
        border-color: darken($border, 12%);

    &:hover,
    &:focus,
    &.focus {
      color: $color;
      background-color: darken($background, 17%);
          border-color: darken($border, 25%);
    }
  }
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    background-image: none;
  }
  */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /*
  &,
  &:active,
  &.active {
    &:focus,
    &.focus {
      @include tab-focus;
    }
  }

  &:active,
  &.active {
    outline: 0;
    background-image: none;
    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
  }
  */ }
.ec-inlineBtn--primary:focus, .ec-inlineBtn--primary.focus {
    color: #fff;
    /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
.ec-inlineBtn--primary:hover {
    text-decoration: none;
    color: #fff;
    background-color: #479393;
    border-color: #438d8d; }
.ec-inlineBtn--primary.disabled, .ec-inlineBtn--primary[disabled],
  fieldset[disabled] .ec-inlineBtn--primary {
    background-color: #999;
    border-color: #999;
    cursor: not-allowed; }
.ec-inlineBtn--primary.disabled:hover, .ec-inlineBtn--primary.disabled:focus, .ec-inlineBtn--primary.disabled.focus, .ec-inlineBtn--primary[disabled]:hover, .ec-inlineBtn--primary[disabled]:focus, .ec-inlineBtn--primary[disabled].focus,
    fieldset[disabled] .ec-inlineBtn--primary:hover,
    fieldset[disabled] .ec-inlineBtn--primary:focus,
    fieldset[disabled] .ec-inlineBtn--primary.focus {
      background-color: #999;
      border-color: #999; }
.ec-inlineBtn--primary .badge {
    color: #5CB1B1;
    background-color: #fff; }
.ec-inlineBtn--action {
  display: inline-block;
  margin-bottom: 0;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 0.6em 1em;
  font-size: 1rem;
  line-height: 1;
  border-radius: 0px;
  font-weight: normal;
  text-decoration: none;
  transition: .3s;
  color: #fff;
  background-color: #d41d17;
  border-color: #d41d17;
  /*
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    color: $color;
    background-color: darken($background, 10%);
        border-color: darken($border, 12%);

    &:hover,
    &:focus,
    &.focus {
      color: $color;
      background-color: darken($background, 17%);
          border-color: darken($border, 25%);
    }
  }
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    background-image: none;
  }
  */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /*
  &,
  &:active,
  &.active {
    &:focus,
    &.focus {
      @include tab-focus;
    }
  }

  &:active,
  &.active {
    outline: 0;
    background-image: none;
    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
  }
  */ }
.ec-inlineBtn--action:focus, .ec-inlineBtn--action.focus {
    color: #fff;
    /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
.ec-inlineBtn--action:hover {
    text-decoration: none;
    color: #fff;
    background-color: #a61712;
    border-color: #9d1511; }
.ec-inlineBtn--action.disabled, .ec-inlineBtn--action[disabled],
  fieldset[disabled] .ec-inlineBtn--action {
    background-color: #999;
    border-color: #999;
    cursor: not-allowed; }
.ec-inlineBtn--action.disabled:hover, .ec-inlineBtn--action.disabled:focus, .ec-inlineBtn--action.disabled.focus, .ec-inlineBtn--action[disabled]:hover, .ec-inlineBtn--action[disabled]:focus, .ec-inlineBtn--action[disabled].focus,
    fieldset[disabled] .ec-inlineBtn--action:hover,
    fieldset[disabled] .ec-inlineBtn--action:focus,
    fieldset[disabled] .ec-inlineBtn--action.focus {
      background-color: #999;
      border-color: #999; }
.ec-inlineBtn--action .badge {
    color: #d41d17;
    background-color: #fff; }
.ec-inlineBtn--action:hover {
    background-color: #e60c05;
    border-color: #e60c05; }
.ec-inlineBtn--cancel {
  display: inline-block;
  margin-bottom: 0;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 0.6em 1em;
  font-size: 1rem;
  line-height: 1;
  border-radius: 0px;
  font-weight: normal;
  text-decoration: none;
  transition: .3s;
  color: #fff;
  background-color: #333333;
  border-color: #333333;
  /*
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    color: $color;
    background-color: darken($background, 10%);
        border-color: darken($border, 12%);

    &:hover,
    &:focus,
    &.focus {
      color: $color;
      background-color: darken($background, 17%);
          border-color: darken($border, 25%);
    }
  }
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    background-image: none;
  }
  */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /*
  &,
  &:active,
  &.active {
    &:focus,
    &.focus {
      @include tab-focus;
    }
  }

  &:active,
  &.active {
    outline: 0;
    background-image: none;
    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
  }
  */ }
.ec-inlineBtn--cancel:focus, .ec-inlineBtn--cancel.focus {
    color: #fff;
    /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
.ec-inlineBtn--cancel:hover {
    text-decoration: none;
    color: #fff;
    background-color: #1a1a1a;
    border-color: #141414; }
.ec-inlineBtn--cancel.disabled, .ec-inlineBtn--cancel[disabled],
  fieldset[disabled] .ec-inlineBtn--cancel {
    background-color: #999;
    border-color: #999;
    cursor: not-allowed; }
.ec-inlineBtn--cancel.disabled:hover, .ec-inlineBtn--cancel.disabled:focus, .ec-inlineBtn--cancel.disabled.focus, .ec-inlineBtn--cancel[disabled]:hover, .ec-inlineBtn--cancel[disabled]:focus, .ec-inlineBtn--cancel[disabled].focus,
    fieldset[disabled] .ec-inlineBtn--cancel:hover,
    fieldset[disabled] .ec-inlineBtn--cancel:focus,
    fieldset[disabled] .ec-inlineBtn--cancel.focus {
      background-color: #999;
      border-color: #999; }
.ec-inlineBtn--cancel .badge {
    color: #333333;
    background-color: #fff; }
/*
ブロックボタン（全幅）

ボタンサイズは em で指定するため、テキストサイズの変更でボタンサイズを変更できます。

使用箇所：
error.twig
Block/cart.twig
Block/eyecatch.twig
Cart/index.twig
Contact/index.twig
Contact/complete.twig
Contact/confirm.twig
Entry/index.twig
Entry/activate.twig
Entry/complete.twig
Entry/confirm.twig
Forgot/index.twig
Forgot/reset.twig
Mypage/change.twig
Mypage/change_complete.twig
Mypage/delivery_edit.twig
Mypage/history.twig
Mypage/login.twig
Mypage/withdraw.twig
Mypage/withdraw_complete.twig
Mypage/withdraw_confirm.twig
Product/detail.twig
Product/list.twig
Shopping/index.twig
Shopping/complete.twig
Shopping/confirm.twig
Shopping/login.twig
Shopping/nonmember.twig
Shopping/shipping.twig
Shopping/shipping_edit.twig
Shopping/shipping_multiple.twig
Shopping/shipping_multiple_edit.twig
Shopping/shopping_error.twig

Markup:
../styleguide/tmpl/2.1.2.html

Styleguide 2.1.2
*/
.ec-blockBtn {
  display: inline-block;
  margin-bottom: 0;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 0.6em 1em;
  font-size: 1rem;
  line-height: 1;
  border-radius: 0px;
  font-weight: normal;
  text-decoration: none;
  transition: .3s;
  color: #fff;
  background-color: #222;
  border-color: #222;
  /*
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    color: $color;
    background-color: darken($background, 10%);
        border-color: darken($border, 12%);

    &:hover,
    &:focus,
    &.focus {
      color: $color;
      background-color: darken($background, 17%);
          border-color: darken($border, 25%);
    }
  }
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    background-image: none;
  }
  */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /*
  &,
  &:active,
  &.active {
    &:focus,
    &.focus {
      @include tab-focus;
    }
  }

  &:active,
  &.active {
    outline: 0;
    background-image: none;
    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
  }
  */
  display: block;
  width: 100%;
  height: 3.33rem;
  line-height: 3.33rem;
  padding-top: 0;
  padding-bottom: 0; }
.ec-blockBtn:focus, .ec-blockBtn.focus {
    color: #fff;
    /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
.ec-blockBtn:hover {
    text-decoration: none;
    color: #fff;
    background-color: #090909;
    border-color: #030303; }
.ec-blockBtn.disabled, .ec-blockBtn[disabled],
  fieldset[disabled] .ec-blockBtn {
    background-color: #999;
    border-color: #999;
    cursor: not-allowed; }
.ec-blockBtn.disabled:hover, .ec-blockBtn.disabled:focus, .ec-blockBtn.disabled.focus, .ec-blockBtn[disabled]:hover, .ec-blockBtn[disabled]:focus, .ec-blockBtn[disabled].focus,
    fieldset[disabled] .ec-blockBtn:hover,
    fieldset[disabled] .ec-blockBtn:focus,
    fieldset[disabled] .ec-blockBtn.focus {
      background-color: #999;
      border-color: #999; }
.ec-blockBtn .badge {
    color: #222;
    background-color: #fff; }
.ec-blockBtn--primary {
  display: inline-block;
  margin-bottom: 0;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 0.6em 1em;
  font-size: 1rem;
  line-height: 1;
  border-radius: 0px;
  font-weight: normal;
  text-decoration: none;
  transition: .3s;
  color: #fff;
  background-color: #5CB1B1;
  border-color: #5CB1B1;
  /*
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    color: $color;
    background-color: darken($background, 10%);
        border-color: darken($border, 12%);

    &:hover,
    &:focus,
    &.focus {
      color: $color;
      background-color: darken($background, 17%);
          border-color: darken($border, 25%);
    }
  }
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    background-image: none;
  }
  */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /*
  &,
  &:active,
  &.active {
    &:focus,
    &.focus {
      @include tab-focus;
    }
  }

  &:active,
  &.active {
    outline: 0;
    background-image: none;
    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
  }
  */
  display: block;
  width: 100%;
  height: 3.33rem;
  line-height: 3.33rem;
  padding-top: 0;
  padding-bottom: 0; }
.ec-blockBtn--primary:focus, .ec-blockBtn--primary.focus {
    color: #fff;
    /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
.ec-blockBtn--primary:hover {
    text-decoration: none;
    color: #fff;
    background-color: #479393;
    border-color: #438d8d; }
.ec-blockBtn--primary.disabled, .ec-blockBtn--primary[disabled],
  fieldset[disabled] .ec-blockBtn--primary {
    background-color: #999;
    border-color: #999;
    cursor: not-allowed; }
.ec-blockBtn--primary.disabled:hover, .ec-blockBtn--primary.disabled:focus, .ec-blockBtn--primary.disabled.focus, .ec-blockBtn--primary[disabled]:hover, .ec-blockBtn--primary[disabled]:focus, .ec-blockBtn--primary[disabled].focus,
    fieldset[disabled] .ec-blockBtn--primary:hover,
    fieldset[disabled] .ec-blockBtn--primary:focus,
    fieldset[disabled] .ec-blockBtn--primary.focus {
      background-color: #999;
      border-color: #999; }
.ec-blockBtn--primary .badge {
    color: #5CB1B1;
    background-color: #fff; }
.ec-blockBtn--action {
  display: inline-block;
  margin-bottom: 0;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 0.6em 1em;
  font-size: 1rem;
  line-height: 1;
  border-radius: 0px;
  font-weight: normal;
  text-decoration: none;
  transition: .3s;
  color: #fff;
  background-color: #d41d17;
  border-color: #d41d17;
  /*
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    color: $color;
    background-color: darken($background, 10%);
        border-color: darken($border, 12%);

    &:hover,
    &:focus,
    &.focus {
      color: $color;
      background-color: darken($background, 17%);
          border-color: darken($border, 25%);
    }
  }
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    background-image: none;
  }
  */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /*
  &,
  &:active,
  &.active {
    &:focus,
    &.focus {
      @include tab-focus;
    }
  }

  &:active,
  &.active {
    outline: 0;
    background-image: none;
    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
  }
  */
  display: block;
  width: 100%;
  height: 3.33rem;
  line-height: 3.33rem;
  padding-top: 0;
  padding-bottom: 0; }
.ec-blockBtn--action:focus, .ec-blockBtn--action.focus {
    color: #fff;
    /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
.ec-blockBtn--action:hover {
    text-decoration: none;
    color: #fff;
    background-color: #a61712;
    border-color: #9d1511; }
.ec-blockBtn--action.disabled, .ec-blockBtn--action[disabled],
  fieldset[disabled] .ec-blockBtn--action {
    background-color: #999;
    border-color: #999;
    cursor: not-allowed; }
.ec-blockBtn--action.disabled:hover, .ec-blockBtn--action.disabled:focus, .ec-blockBtn--action.disabled.focus, .ec-blockBtn--action[disabled]:hover, .ec-blockBtn--action[disabled]:focus, .ec-blockBtn--action[disabled].focus,
    fieldset[disabled] .ec-blockBtn--action:hover,
    fieldset[disabled] .ec-blockBtn--action:focus,
    fieldset[disabled] .ec-blockBtn--action.focus {
      background-color: #999;
      border-color: #999; }
.ec-blockBtn--action .badge {
    color: #d41d17;
    background-color: #fff; }
.ec-blockBtn--action:hover {
    background-color: #e60c05;
    border-color: #e60c05; }
.ec-blockBtn--cancel {
  display: inline-block;
  margin-bottom: 0;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 0.6em 1em;
  font-size: 1rem;
  line-height: 1;
  border-radius: 0px;
  font-weight: normal;
  text-decoration: none;
  transition: .3s;
  color: #fff;
  background-color: #333333;
  border-color: #333333;
  /*
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    color: $color;
    background-color: darken($background, 10%);
        border-color: darken($border, 12%);

    &:hover,
    &:focus,
    &.focus {
      color: $color;
      background-color: darken($background, 17%);
          border-color: darken($border, 25%);
    }
  }
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    background-image: none;
  }
  */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /*
  &,
  &:active,
  &.active {
    &:focus,
    &.focus {
      @include tab-focus;
    }
  }

  &:active,
  &.active {
    outline: 0;
    background-image: none;
    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
  }
  */
  display: block;
  width: 100%;
  height: 3.33rem;
  line-height: 3.33rem;
  padding-top: 0;
  padding-bottom: 0; }
.ec-blockBtn--cancel:focus, .ec-blockBtn--cancel.focus {
    color: #fff;
    /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
.ec-blockBtn--cancel:hover {
    text-decoration: none;
    color: #fff;
    background-color: #1a1a1a;
    border-color: #141414; }
.ec-blockBtn--cancel.disabled, .ec-blockBtn--cancel[disabled],
  fieldset[disabled] .ec-blockBtn--cancel {
    background-color: #999;
    border-color: #999;
    cursor: not-allowed; }
.ec-blockBtn--cancel.disabled:hover, .ec-blockBtn--cancel.disabled:focus, .ec-blockBtn--cancel.disabled.focus, .ec-blockBtn--cancel[disabled]:hover, .ec-blockBtn--cancel[disabled]:focus, .ec-blockBtn--cancel[disabled].focus,
    fieldset[disabled] .ec-blockBtn--cancel:hover,
    fieldset[disabled] .ec-blockBtn--cancel:focus,
    fieldset[disabled] .ec-blockBtn--cancel.focus {
      background-color: #999;
      border-color: #999; }
.ec-blockBtn--cancel .badge {
    color: #333333;
    background-color: #fff; }
/*
カートインボタン

sg-wrapper:
<div class="ec-productRole">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/2.1.3.html

Styleguide 2.1.3
*/
.ec-blockBtn--cartin {
  display: inline-block;
  margin-bottom: 0;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 0.6em 1em;
  font-size: 1rem;
  line-height: 1;
  border-radius: 0px;
  font-weight: normal;
  text-decoration: none;
  transition: .3s;
  color: #fff;
  background-color: #000;
  border-color: #000;
  /*
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    color: $color;
    background-color: darken($background, 10%);
        border-color: darken($border, 12%);

    &:hover,
    &:focus,
    &.focus {
      color: $color;
      background-color: darken($background, 17%);
          border-color: darken($border, 25%);
    }
  }
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    background-image: none;
  }
  */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /*
  &,
  &:active,
  &.active {
    &:focus,
    &.focus {
      @include tab-focus;
    }
  }

  &:active,
  &.active {
    outline: 0;
    background-image: none;
    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
  }
  */
  display: block;
  width: 100%;
  height: 3.33rem;
  line-height: 3.33rem;
  padding-top: 0;
  padding-bottom: 0; }
.ec-blockBtn--cartin:focus, .ec-blockBtn--cartin.focus {
    color: #fff;
    /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
.ec-blockBtn--cartin:hover {
    text-decoration: none;
    color: #fff;
    background-color: black;
    border-color: black; }
.ec-blockBtn--cartin.disabled, .ec-blockBtn--cartin[disabled],
  fieldset[disabled] .ec-blockBtn--cartin {
    background-color: #999;
    border-color: #999;
    cursor: not-allowed; }
.ec-blockBtn--cartin.disabled:hover, .ec-blockBtn--cartin.disabled:focus, .ec-blockBtn--cartin.disabled.focus, .ec-blockBtn--cartin[disabled]:hover, .ec-blockBtn--cartin[disabled]:focus, .ec-blockBtn--cartin[disabled].focus,
    fieldset[disabled] .ec-blockBtn--cartin:hover,
    fieldset[disabled] .ec-blockBtn--cartin:focus,
    fieldset[disabled] .ec-blockBtn--cartin.focus {
      background-color: #999;
      border-color: #999; }
.ec-blockBtn--cartin .badge {
    color: #000;
    background-color: #fff; }
.ec-blockBtn--cartin:before {
    font-family: "jeiafont";
    content: "\e900";
    margin-right: 0.5em;
    display: inline-block;
    transform: scale(1.4); }
.ec-blockBtn--cartin:hover {
    background-color: #d41d17;
    border-color: #d41d17; }
/*
お気に入りボタン

お気に入りボタンのサイズは商品詳細ページの「カートイン枠（横一列）」に合わせて、$cartinRow-sizeで生成しています。

sg-wrapper:
<div class="ec-productRole">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/2.1.4.html

Styleguide 2.1.4
*/
.ec-blockBtn--favorite {
  display: block; }
.ec-blockBtn--favorite i {
    display: block;
    margin: 0;
    width: 3.33rem;
    height: 3.33rem;
    text-align: center;
    border-radius: 50%;
    background-color: #666;
    color: #fff;
    transition: .2s;
    position: relative;
    /* ポップアップ */ }
.ec-blockBtn--favorite i:before {
      font-size: 1.665rem;
      line-height: 3.663rem; }
.ec-blockBtn--favorite i span {
      position: absolute;
      bottom: calc(100% + 12px);
      right: 0;
      display: block;
      padding: 0.75em 1em;
      background-color: #333;
      color: #fff;
      font-size: 0.8rem;
      line-height: 1;
      white-space: nowrap;
      border-radius: 2px;
      opacity: 0;
      visibility: hidden;
      transform: translate3d(0, 10px, 0);
      transition: .2s; }
.ec-blockBtn--favorite i span:after {
        content: "";
        width: 0;
        height: 0;
        border: solid 8px transparent;
        border-top-color: #333;
        position: absolute;
        top: 100%;
        right: 17px; }
.ec-blockBtn--favorite i:hover {
      background-color: #ff5555; }
.ec-blockBtn--favorite i:hover span {
        opacity: 1;
        visibility: visible;
        transform: translate3d(0, 0, 0); }
.ec-blockBtn--favorite.added i {
    background-color: #ff5555; }
/*
編集ボタン
※通常ボタン（インラインボタン）と同じ構造になります。その上で編集ボタンのスタイリングを加味しています。
*/
.ec-editBtn {
  display: inline-block;
  margin-bottom: 0;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 0.6em 1em;
  font-size: 1rem;
  line-height: 1;
  border-radius: 0px;
  font-weight: normal;
  text-decoration: none;
  transition: .3s;
  color: #fff;
  background-color: #16457e;
  border-color: #16457e;
  /*
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    color: $color;
    background-color: darken($background, 10%);
        border-color: darken($border, 12%);

    &:hover,
    &:focus,
    &.focus {
      color: $color;
      background-color: darken($background, 17%);
          border-color: darken($border, 25%);
    }
  }
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    background-image: none;
  }
  */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /*
  &,
  &:active,
  &.active {
    &:focus,
    &.focus {
      @include tab-focus;
    }
  }

  &:active,
  &.active {
    outline: 0;
    background-image: none;
    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
  }
  */
  font-size: 0.933rem; }
.ec-editBtn:focus, .ec-editBtn.focus {
    color: #fff;
    /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
.ec-editBtn:hover {
    text-decoration: none;
    color: #fff;
    background-color: #0e2d53;
    border-color: #0d284a; }
.ec-editBtn.disabled, .ec-editBtn[disabled],
  fieldset[disabled] .ec-editBtn {
    background-color: #999;
    border-color: #999;
    cursor: not-allowed; }
.ec-editBtn.disabled:hover, .ec-editBtn.disabled:focus, .ec-editBtn.disabled.focus, .ec-editBtn[disabled]:hover, .ec-editBtn[disabled]:focus, .ec-editBtn[disabled].focus,
    fieldset[disabled] .ec-editBtn:hover,
    fieldset[disabled] .ec-editBtn:focus,
    fieldset[disabled] .ec-editBtn.focus {
      background-color: #999;
      border-color: #999; }
.ec-editBtn .badge {
    color: #16457e;
    background-color: #fff; }
/*
詳細はこちらボタン
*/
.ec-blockDetailBtn, .ec-blockDetailBtn--center, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel,
.ec-progressAction .ec-progressAction__actions .ec-blockBtn--action {
  display: inline-block;
  margin-bottom: 0;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 0.6em 1em;
  font-size: 1rem;
  line-height: 1;
  border-radius: 0px;
  font-weight: normal;
  text-decoration: none;
  transition: .3s;
  color: #fff;
  background-color: #A9894A;
  border-color: #A9894A;
  /*
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    color: $color;
    background-color: darken($background, 10%);
        border-color: darken($border, 12%);

    &:hover,
    &:focus,
    &.focus {
      color: $color;
      background-color: darken($background, 17%);
          border-color: darken($border, 25%);
    }
  }
  &:active,
  &.active,
  .open > &.dropdown-toggle {
    background-image: none;
  }
  */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /*
  &,
  &:active,
  &.active {
    &:focus,
    &.focus {
      @include tab-focus;
    }
  }

  &:active,
  &.active {
    outline: 0;
    background-image: none;
    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
  }
  */
  display: block;
  width: 200px;
  height: 47px;
  line-height: 47px;
  padding-top: 0;
  padding-bottom: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 1.26rem;
  border: none;
  position: relative;
  z-index: 1;
  margin: 1em 0; }
.ec-blockDetailBtn:focus, .ec-blockDetailBtn--center:focus, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel:focus,
  .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action:focus, .ec-blockDetailBtn.focus, .focus.ec-blockDetailBtn--center, .ec-progressAction .ec-progressAction__actions .focus.ec-blockBtn--cancel,
  .ec-progressAction .ec-progressAction__actions .focus.ec-blockBtn--action {
    color: #fff;
    /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
.ec-blockDetailBtn:hover, .ec-blockDetailBtn--center:hover, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel:hover,
  .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action:hover {
    text-decoration: none;
    color: #fff;
    background-color: #866c3a;
    border-color: #7e6637; }
.ec-blockDetailBtn.disabled, .disabled.ec-blockDetailBtn--center, .ec-progressAction .ec-progressAction__actions .disabled.ec-blockBtn--cancel,
  .ec-progressAction .ec-progressAction__actions .disabled.ec-blockBtn--action, .ec-blockDetailBtn[disabled], .ec-blockDetailBtn--center[disabled], .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel[disabled],
  .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action[disabled],
  fieldset[disabled] .ec-blockDetailBtn,
  fieldset[disabled] .ec-blockDetailBtn--center,
  fieldset[disabled] .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel,
  .ec-progressAction .ec-progressAction__actions fieldset[disabled] .ec-blockBtn--cancel,
  fieldset[disabled] .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action,
  .ec-progressAction .ec-progressAction__actions fieldset[disabled] .ec-blockBtn--action {
    background-color: #999;
    border-color: #999;
    cursor: not-allowed; }
.ec-blockDetailBtn.disabled:hover, .disabled.ec-blockDetailBtn--center:hover, .ec-progressAction .ec-progressAction__actions .disabled.ec-blockBtn--cancel:hover,
    .ec-progressAction .ec-progressAction__actions .disabled.ec-blockBtn--action:hover, .ec-blockDetailBtn.disabled:focus, .disabled.ec-blockDetailBtn--center:focus, .ec-progressAction .ec-progressAction__actions .disabled.ec-blockBtn--cancel:focus,
    .ec-progressAction .ec-progressAction__actions .disabled.ec-blockBtn--action:focus, .ec-blockDetailBtn.disabled.focus, .disabled.focus.ec-blockDetailBtn--center, .ec-progressAction .ec-progressAction__actions .disabled.focus.ec-blockBtn--cancel,
    .ec-progressAction .ec-progressAction__actions .disabled.focus.ec-blockBtn--action, .ec-blockDetailBtn[disabled]:hover, .ec-blockDetailBtn--center[disabled]:hover, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel[disabled]:hover,
    .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action[disabled]:hover, .ec-blockDetailBtn[disabled]:focus, .ec-blockDetailBtn--center[disabled]:focus, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel[disabled]:focus,
    .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action[disabled]:focus, .ec-blockDetailBtn[disabled].focus, .ec-blockDetailBtn--center[disabled].focus, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel[disabled].focus,
    .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action[disabled].focus,
    fieldset[disabled] .ec-blockDetailBtn:hover,
    fieldset[disabled] .ec-blockDetailBtn--center:hover,
    fieldset[disabled] .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel:hover,
    .ec-progressAction .ec-progressAction__actions fieldset[disabled] .ec-blockBtn--cancel:hover,
    fieldset[disabled] .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action:hover,
    .ec-progressAction .ec-progressAction__actions fieldset[disabled] .ec-blockBtn--action:hover,
    fieldset[disabled] .ec-blockDetailBtn:focus,
    fieldset[disabled] .ec-blockDetailBtn--center:focus,
    fieldset[disabled] .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel:focus,
    .ec-progressAction .ec-progressAction__actions fieldset[disabled] .ec-blockBtn--cancel:focus,
    fieldset[disabled] .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action:focus,
    .ec-progressAction .ec-progressAction__actions fieldset[disabled] .ec-blockBtn--action:focus,
    fieldset[disabled] .ec-blockDetailBtn.focus,
    fieldset[disabled] .focus.ec-blockDetailBtn--center,
    fieldset[disabled] .ec-progressAction .ec-progressAction__actions .focus.ec-blockBtn--cancel,
    .ec-progressAction .ec-progressAction__actions fieldset[disabled] .focus.ec-blockBtn--cancel,
    fieldset[disabled] .ec-progressAction .ec-progressAction__actions .focus.ec-blockBtn--action,
    .ec-progressAction .ec-progressAction__actions fieldset[disabled] .focus.ec-blockBtn--action {
      background-color: #999;
      border-color: #999; }
.ec-blockDetailBtn .badge, .ec-blockDetailBtn--center .badge, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel .badge, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action .badge {
    color: #A9894A;
    background-color: #fff; }
.ec-blockDetailBtn:before, .ec-blockDetailBtn--center:before, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel:before,
  .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action:before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(150deg, rgba(255, 219, 164, 0.8) 0%, transparent 50%);
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    opacity: 0;
    transition: .4s; }
.ec-blockDetailBtn:after, .ec-blockDetailBtn--center:after, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel:after,
  .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action:after {
    content: "";
    display: block;
    width: 10px;
    height: 1px;
    background-color: #fff;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translate(0, -50%); }
.ec-blockDetailBtn:hover, .ec-blockDetailBtn--center:hover, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel:hover,
  .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action:hover {
    background-color: #A9894A;
    border-color: #A9894A;
    text-shadow: 3px 8px 5px rgba(0, 0, 0, 0.2); }
.ec-blockDetailBtn:hover:before, .ec-blockDetailBtn--center:hover:before, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel:hover:before,
    .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action:hover:before {
      opacity: 1; }
/*
詳細はこちらボタン 中央配置
*/
.ec-blockDetailBtn--center {
  margin-left: auto;
  margin-right: auto; }
/*
詳細ボタン（スケルトン）
*/
.ec-blockDetailBtn.skeleton, .skeleton.ec-blockDetailBtn--center, .ec-progressAction .ec-progressAction__actions .skeleton.ec-blockBtn--cancel,
.ec-progressAction .ec-progressAction__actions .skeleton.ec-blockBtn--action {
  background-color: transparent;
  border: solid 1px #fff; }
.ec-blockDetailBtn.skeleton:hover, .skeleton.ec-blockDetailBtn--center:hover, .ec-progressAction .ec-progressAction__actions .skeleton.ec-blockBtn--cancel:hover,
  .ec-progressAction .ec-progressAction__actions .skeleton.ec-blockBtn--action:hover {
    border-color: #fff; }
/*
詳細ボタン（スケルトン2）
背景透過、黒線（SDGsページで使用）
*/
.ec-blockDetailBtn.white, .white.ec-blockDetailBtn--center, .ec-progressAction .ec-progressAction__actions .white.ec-blockBtn--cancel,
.ec-progressAction .ec-progressAction__actions .white.ec-blockBtn--action {
  background-color: rgba(255, 255, 255, 0.5);
  border: solid 1px #000;
  color: #000; }
.ec-blockDetailBtn.white:after, .white.ec-blockDetailBtn--center:after, .ec-progressAction .ec-progressAction__actions .white.ec-blockBtn--cancel:after,
  .ec-progressAction .ec-progressAction__actions .white.ec-blockBtn--action:after {
    background-color: #000;
    transition: .4s; }
.ec-blockDetailBtn.white:hover, .white.ec-blockDetailBtn--center:hover, .ec-progressAction .ec-progressAction__actions .white.ec-blockBtn--cancel:hover,
  .ec-progressAction .ec-progressAction__actions .white.ec-blockBtn--action:hover {
    background-color: #A9894A;
    border-color: #A9894A;
    color: #fff; }
.ec-blockDetailBtn.white:hover:after, .white.ec-blockDetailBtn--center:hover:after, .ec-progressAction .ec-progressAction__actions .white.ec-blockBtn--cancel:hover:after,
    .ec-progressAction .ec-progressAction__actions .white.ec-blockBtn--action:hover:after {
      background-color: #fff; }
/*
READ MOREボタン
*/
.ec-blockReadMoreBtn, .ec-blockReadMoreBtn--center {
  display: block;
  max-width: 150px;
  padding: .5em 0;
  margin: 1em 0;
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  color: #000;
  line-height: 1;
  text-align: left;
  transition: .5s;
  position: relative; }
.ec-blockReadMoreBtn:before, .ec-blockReadMoreBtn--center:before, .ec-blockReadMoreBtn:after, .ec-blockReadMoreBtn--center:after {
    content: "";
    display: block;
    background-color: #000;
    position: absolute;
    bottom: 0;
    right: 0;
    transition: .3s; }
.ec-blockReadMoreBtn:before, .ec-blockReadMoreBtn--center:before {
    width: 100%;
    height: 1px; }
.ec-blockReadMoreBtn:after, .ec-blockReadMoreBtn--center:after {
    width: 12px;
    height: 1px;
    transform-origin: right bottom;
    transform: rotate(40deg); }
.ec-blockReadMoreBtn:hover, .ec-blockReadMoreBtn--center:hover {
    text-decoration: none;
    padding-left: .5em;
    color: inherit; }
.ec-blockReadMoreBtn:hover:after, .ec-blockReadMoreBtn--center:hover:after {
      transform: rotate(25deg);
      width: 15px; }
/*
READ MOREボタン 中央配置
*/
.ec-blockReadMoreBtn--center {
  max-width: 180px;
  margin-left: auto;
  margin-right: auto;
  text-align: center; }
/* ボタン小 */
.btn-mini {
  font-size: 0.733rem;
  padding: .6em;
  min-width: auto; }
/*
ページングボタン（ページGoBack）

新着情報やよくある質問ページ等にある、「一覧に戻る」等のボタン群のスタイリングになります。
ページャーとは別になります。ページャー（「1 2 3 Next」のようなスタイル）は「_7.2.search.scss」でスタイリングされています。
*/
.ec-pageGoBack {
  list-style: none;
  padding: 0;
  display: flex;
  justify-content: center; }
.ec-pageGoBack li {
    margin: 0 10px; }
.ec-pageGoBack li a {
      display: inline-flex;
      justify-content: center;
      align-items: center;
      width: 200px;
      height: 40px;
      font-size: 1rem;
      background-color: #A9894A;
      color: #fff;
      transition: .3s; }
.ec-pageGoBack li a:hover {
        text-decoration: none;
        background-color: #b59657; }
.ec-pageGoBack li a.primary {
        background-color: #B20000; }
/*
アイコンボタン

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Styleguide 2.2
*/
/*
閉じるボタン

使用箇所：
Mypage/favorite.twig

Markup:
../styleguide/tmpl/2.2.2.html

Styleguide 2.2.2
*/
.ec-closeBtn--circle:after {
  font-family: "jeiafont";
  content: "\e918";
  display: block;
  width: 30px;
  height: 30px;
  line-height: 30px;
  font-size: 21px;
  text-align: center;
  border-radius: 50%;
  background-color: #fff;
  color: #333;
  border: solid 1px #aaa;
  box-sizing: border-box;
  cursor: pointer;
  transform: translate3d(0, 0, 0);
  transition: .2s; }
.ec-closeBtn--circle:hover:after {
  text-decoration: none;
  transform: translate3d(0, 1px, 0);
  box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.3); }
.ec-closeBtn--circle:hover {
  text-decoration: none; }
.ec-closeBtn--circle .ec-icon {
  display: none; }
/*
その他のボタン

通常のボタンや、アイコンボタン以外のボタンを定義します。

Styleguide 2.3
*/
/*
常駐ナビ

ページ右下に常駐するナビのスタイリングです。
ここにガイドボタン・ガイドナビ、ページトップボタンが格納された構造となっています。
ページの右下に常駐しているガイドボタンをマウスオーバーするとガイドナビが表示されます。
ページがスクロールされるとページトップボタンが現れます。

ガイドボタンとページトップボタンのスタイリングは後で行います。
*/
.ec-floatNavRole {
  position: fixed;
  right: 10px;
  bottom: 10px;
  z-index: 99;
  /* ガイドナビエリア */
  /* ガイドナビ */ }
.ec-floatNavRole .ec-floatNavRole__guide {
    position: relative; }
.ec-floatNavRole .ec-floatNavRole__guide:hover .ec-floatNavRole__guideNav {
      visibility: visible;
      opacity: 1; }
.ec-floatNavRole .ec-floatNavRole__guideNav {
    position: absolute;
    bottom: 0;
    right: 100%;
    color: #444;
    font-size: 0.933rem;
    padding-right: 15px;
    transition: .3s;
    visibility: hidden;
    opacity: 0; }
.ec-floatNavRole .ec-floatNavRole__guideNav ul {
      list-style-type: none;
      margin: 0;
      padding: 15px;
      background-color: #fff;
      filter: drop-shadow(0 0 1px #ddd) drop-shadow(0 0 5px rgba(0, 0, 0, 0.2));
      position: relative;
      /* くちばし */ }
.ec-floatNavRole .ec-floatNavRole__guideNav ul:after {
        content: "";
        display: block;
        width: 0;
        height: 0;
        border: solid 10px transparent;
        border-left-color: #fff;
        position: absolute;
        bottom: 16px;
        left: 100%; }
.ec-floatNavRole .ec-floatNavRole__guideNav ul li {
        border-bottom: solid 1px #eee; }
.ec-floatNavRole .ec-floatNavRole__guideNav ul li a {
          display: block;
          padding: 1em .5em;
          color: inherit;
          background-color: #fff;
          min-width: 15em;
          white-space: nowrap;
          transition: .2s; }
.ec-floatNavRole .ec-floatNavRole__guideNav ul li a:hover {
            text-decoration: none;
            background-color: #f0f1f2; }
/*
ガイドボタンとページトップボタンのひな形（共通部分のスタイリング）
*/
/*
ガイドボタン
*/
.ec-blockGuideBtn {
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 1;
  font-size: 22px;
  width: 48px;
  height: 48px;
  color: #999;
  border: solid 3px #999;
  border-radius: 50%;
  box-sizing: border-box;
  cursor: pointer;
  font-size: 26px;
  border: none;
  background-color: #A9894A;
  color: #fff; }
.ec-blockGuideBtn a {
    display: block;
    color: inherit; }
/*
ページトップボタン
*/
.ec-blockTopBtn {
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 1;
  font-size: 22px;
  width: 48px;
  height: 48px;
  color: #999;
  border: solid 3px #999;
  border-radius: 50%;
  box-sizing: border-box;
  cursor: pointer;
  margin-top: 0;
  z-index: -1;
  visibility: hidden;
  opacity: 0;
  transition: .5s;
  /* スクロールでボタン表示 */ }
body.scrolled .ec-blockTopBtn {
    visibility: visible;
    opacity: 1;
    margin-top: 20px; }
.ec-blockTopBtn i {
    transform: translate3d(0, 1px, 0);
    transition: .5s; }
.ec-blockTopBtn:hover i {
    transform: translate3d(0, -1px, 0); }
/*
フォーム部品（入力要素）

テキストや数値の入力項目に関するフォーム要素の基本整形をスタイリングします。

Styleguide 3.1
*/
/*
テキスト入力フォーム

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.1.1.html

Styleguide 3.1.1
*/
.ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input {
  display: block;
  width: 100%;
  height: auto;
  padding: 0.5em 0.75em;
  font-size: 16px;
  line-height: 1.3;
  color: #333;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 0;
  -webkit-appearance: none;
  box-shadow: none;
  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; }
.ec-input input:focus, .ec-halfInput input:focus, .ec-numberInput input:focus, .ec-zipInput input:focus, .ec-telInput input:focus {
    border-color: #3c8dbc;
    outline: none;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); }
.ec-input input::-moz-placeholder, .ec-halfInput input::-moz-placeholder, .ec-numberInput input::-moz-placeholder, .ec-zipInput input::-moz-placeholder, .ec-telInput input::-moz-placeholder {
    color: #ddd;
    opacity: 1; }
.ec-input input:-ms-input-placeholder, .ec-halfInput input:-ms-input-placeholder, .ec-numberInput input:-ms-input-placeholder, .ec-zipInput input:-ms-input-placeholder, .ec-telInput input:-ms-input-placeholder {
    color: #ddd; }
.ec-input input::-webkit-input-placeholder, .ec-halfInput input::-webkit-input-placeholder, .ec-numberInput input::-webkit-input-placeholder, .ec-zipInput input::-webkit-input-placeholder, .ec-telInput input::-webkit-input-placeholder {
    color: #ddd; }
.ec-input input::-ms-expand, .ec-halfInput input::-ms-expand, .ec-numberInput input::-ms-expand, .ec-zipInput input::-ms-expand, .ec-telInput input::-ms-expand {
    border: 0;
    background-color: transparent; }
.ec-input input[disabled], .ec-halfInput input[disabled], .ec-numberInput input[disabled], .ec-zipInput input[disabled], .ec-telInput input[disabled], .ec-input input[readonly], .ec-halfInput input[readonly], .ec-numberInput input[readonly], .ec-zipInput input[readonly], .ec-telInput input[readonly],
  fieldset[disabled] .ec-input input,
  fieldset[disabled] .ec-halfInput input,
  fieldset[disabled] .ec-numberInput input,
  fieldset[disabled] .ec-zipInput input,
  fieldset[disabled] .ec-telInput input {
    background-color: #eee;
    opacity: 1; }
.ec-input input[disabled], .ec-halfInput input[disabled], .ec-numberInput input[disabled], .ec-zipInput input[disabled], .ec-telInput input[disabled],
  fieldset[disabled] .ec-input input,
  fieldset[disabled] .ec-halfInput input,
  fieldset[disabled] .ec-numberInput input,
  fieldset[disabled] .ec-zipInput input,
  fieldset[disabled] .ec-telInput input {
    cursor: not-allowed; }
.ec-input textarea, .ec-halfInput textarea, .ec-numberInput textarea, .ec-zipInput textarea, .ec-telInput textarea {
  display: block;
  width: 100%;
  height: auto;
  padding: 0.5em 0.75em;
  font-size: 16px;
  line-height: 1.3;
  color: #333;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 0;
  -webkit-appearance: none;
  box-shadow: none;
  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
  height: auto;
  min-height: 8em; }
.ec-input textarea:focus, .ec-halfInput textarea:focus, .ec-numberInput textarea:focus, .ec-zipInput textarea:focus, .ec-telInput textarea:focus {
    border-color: #3c8dbc;
    outline: none;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); }
.ec-input textarea::-moz-placeholder, .ec-halfInput textarea::-moz-placeholder, .ec-numberInput textarea::-moz-placeholder, .ec-zipInput textarea::-moz-placeholder, .ec-telInput textarea::-moz-placeholder {
    color: #ddd;
    opacity: 1; }
.ec-input textarea:-ms-input-placeholder, .ec-halfInput textarea:-ms-input-placeholder, .ec-numberInput textarea:-ms-input-placeholder, .ec-zipInput textarea:-ms-input-placeholder, .ec-telInput textarea:-ms-input-placeholder {
    color: #ddd; }
.ec-input textarea::-webkit-input-placeholder, .ec-halfInput textarea::-webkit-input-placeholder, .ec-numberInput textarea::-webkit-input-placeholder, .ec-zipInput textarea::-webkit-input-placeholder, .ec-telInput textarea::-webkit-input-placeholder {
    color: #ddd; }
.ec-input textarea::-ms-expand, .ec-halfInput textarea::-ms-expand, .ec-numberInput textarea::-ms-expand, .ec-zipInput textarea::-ms-expand, .ec-telInput textarea::-ms-expand {
    border: 0;
    background-color: transparent; }
.ec-input textarea[disabled], .ec-halfInput textarea[disabled], .ec-numberInput textarea[disabled], .ec-zipInput textarea[disabled], .ec-telInput textarea[disabled], .ec-input textarea[readonly], .ec-halfInput textarea[readonly], .ec-numberInput textarea[readonly], .ec-zipInput textarea[readonly], .ec-telInput textarea[readonly],
  fieldset[disabled] .ec-input textarea,
  fieldset[disabled] .ec-halfInput textarea,
  fieldset[disabled] .ec-numberInput textarea,
  fieldset[disabled] .ec-zipInput textarea,
  fieldset[disabled] .ec-telInput textarea {
    background-color: #eee;
    opacity: 1; }
.ec-input textarea[disabled], .ec-halfInput textarea[disabled], .ec-numberInput textarea[disabled], .ec-zipInput textarea[disabled], .ec-telInput textarea[disabled],
  fieldset[disabled] .ec-input textarea,
  fieldset[disabled] .ec-halfInput textarea,
  fieldset[disabled] .ec-numberInput textarea,
  fieldset[disabled] .ec-zipInput textarea,
  fieldset[disabled] .ec-telInput textarea {
    cursor: not-allowed; }
.ec-input + p, .ec-halfInput + p, .ec-numberInput + p, .ec-zipInput + p, .ec-telInput + p {
  margin: 0.75em 0 0;
  font-size: 0.933em; }
.ec-input + .ec-input, .ec-halfInput + .ec-input, .ec-numberInput + .ec-input, .ec-zipInput + .ec-input, .ec-telInput + .ec-input, .ec-input + .ec-halfInput, .ec-halfInput + .ec-halfInput, .ec-numberInput + .ec-halfInput, .ec-zipInput + .ec-halfInput, .ec-telInput + .ec-halfInput, .ec-input + .ec-numberInput, .ec-halfInput + .ec-numberInput, .ec-numberInput + .ec-numberInput, .ec-zipInput + .ec-numberInput, .ec-telInput + .ec-numberInput, .ec-input + .ec-zipInput, .ec-halfInput + .ec-zipInput, .ec-numberInput + .ec-zipInput, .ec-zipInput + .ec-zipInput, .ec-telInput + .ec-zipInput, .ec-input + .ec-telInput, .ec-halfInput + .ec-telInput, .ec-numberInput + .ec-telInput, .ec-zipInput + .ec-telInput, .ec-telInput + .ec-telInput {
  margin-top: 1em; }
.ec-select + .ec-input, .ec-birth + .ec-input, .ec-select + .ec-halfInput, .ec-birth + .ec-halfInput, .ec-select + .ec-numberInput, .ec-birth + .ec-numberInput, .ec-select + .ec-zipInput, .ec-birth + .ec-zipInput, .ec-select + .ec-telInput, .ec-birth + .ec-telInput {
  margin-top: 1em; }
.ec-input.error input, .error.ec-halfInput input, .error.ec-numberInput input, .error.ec-zipInput input, .error.ec-telInput input, .ec-input.error textarea, .error.ec-halfInput textarea, .error.ec-numberInput textarea, .error.ec-zipInput textarea, .error.ec-telInput textarea {
  border-color: #aa0b00;
  background-color: #FDF1F0; }
/*
テキスト入力フォーム（左右2分割）

姓名など入力フォームが分割されている項目で使用します。

入力フォームを半分で用意したいときにも利用可能です。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.1.2.html

Styleguide 3.1.2
*/
.ec-halfInput {
  display: flex;
  justify-content: flex-start;
  flex-flow: row wrap; }
.ec-halfInput > input,
  .ec-halfInput > .input_item {
    flex: 0 0 auto;
    width: calc( (100% - 15px ) / 2);
    margin-left: 15px; }
.ec-halfInput > input:first-child,
    .ec-halfInput > .input_item:first-child {
      margin-left: 0; }
.ec-halfInput > span.customer-form input {
    width: 100%;
    margin: 0; }
.ec-halfInput .ec-errorMessage {
    flex: 0 0 100%; }
/*
数量ボタン

数量を表示するための小さなコンポーネントです。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.1.3.html

Styleguide 3.1.3
*/
.ec-numberInput input[type='number'] {
  width: auto;
  max-width: 5em;
  text-align: center; }
/*
数量ボタン（増減ボタンセット）
*/
.ec-quantityRole {
  font-size: 1rem;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  border: solid 1px #ccc; }
.ec-quantityRole .ec-quantityRole__btn {
    width: 3.33rem;
    height: 3.33rem;
    line-height: 3.33rem;
    text-align: center;
    font-size: 1.2em;
    background-color: #f0f0f0;
    cursor: pointer; }
.ec-quantityRole .ec-quantityRole__btn i {
      line-height: inherit; }
.ec-quantityRole .ec-numberInput {
    height: 3.33rem;
    padding: 0;
    border: none;
    border-left: solid 1px #ccc;
    border-right: solid 1px #ccc; }
.ec-quantityRole .ec-numberInput input {
      height: 3.33rem;
      border: none;
      width: 3.33rem;
      font-family: "Oswald"; }
/*
郵便番号フォーム

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.1.4.html

Styleguide 3.1.4
*/
.ec-zipInput {
  /*
  input {
    //display: inline-block;
    width: auto;
    max-width: 8em;
    margin-left: .5em;
  }

  > span {
    display: inline-block;
  }
  */
  display: flex;
  flex-flow: row wrap;
  align-items: center; }
.ec-zipInput input {
    width: auto;
    margin: 0 .5em;
    max-width: 4em; }
.ec-zipInputHelp {
  margin: .5em; }
.ec-zipInputHelp .ec-zipInputHelp__icon {
    display: none; }
.ec-zipInputHelp a {
    font-family: "Noto Serif JP", serif;
    font-size: 1.06rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    height: 2.3em;
    color: #A9894A;
    border: solid 1px #A9894A;
    padding: 0 1em;
    transition: .3s;
    /*
    &:before {
      font-family: "jeiafont";
      content: "\e901";
      margin-right: .5em;
      padding-right: .5em;
      border-right: solid 1px hsla(0,0%,100%,0.3);
    }
    */ }
.ec-zipInputHelp a:hover {
      text-decoration: none; }
.ec-zipInputAuto {
  margin: .5em; }
.ec-zipInput + .ec-select, .ec-zipInput + .ec-birth {
  margin-top: 1em;
  margin-bottom: 1em; }
/*
電話番号ボタン

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.1.5.html

Styleguide 3.1.5
*/
.ec-telInput {
  display: flex;
  align-items: center; }
.ec-telInput input {
    max-width: 5em; }
.ec-telInput > span {
    margin: 0 .5em; }
/*
エラーメッセージ

エラー項目にポップアップ形式で表示するタイプにしたいが、.ec-harfInputの場合に2つ目のエラーも左に出てしまう。これを制御するにはTwig側に手をいれないといけないので断念。
普通にエラー項目の下にテキスト表示するに留めます。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.1.6.html

Styleguide 3.1.6
*/
.ec-errorMessage {
  font-size: 0.9rem;
  margin: .5em 0 0;
  color: #ca0000; }
.ec-errorMessage:before {
    font-family: "jeiafont";
    font-weight: normal;
    content: "\e915";
    font-size: 20px;
    display: inline-block;
    vertical-align: -4px;
    margin-right: 3px; }
/* その他 */
/*
input[type="number"]のスピンボタンを非表示

使用箇所：
利用ポイント、商品数量入力

Styleguide 3.1.90
*/
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0; }
input[type="number"] {
  -moz-appearance: textfield; }
/*
フォーム部品(ラジオ、チェックボックス、セレクト)

ラジオ、チェックボックス、セレクト要素の基本整形をスタイリングします。

Styleguide 3.2
*/
/*
ラジオボタン（横配置）

各要素をlabelでくくって、コーディングします。←マチガイ（ver4.0.2では、input + label の構造になっている様子（全部がそうかは未確認））<br>
input要素をlabelでくくってしまうと独自UIは表示されないので注意

ラジオボタンの独自UIはアイコンフォントを使っています。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.2.2.html

Styleguide 3.2.2
*/
.ec-radio, .ec-blockRadio {
  margin-top: -0.5em; }
.ec-radio input[type="radio"], .ec-blockRadio input[type="radio"] {
    opacity: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none; }
.ec-radio input[type="radio"] + label, .ec-blockRadio input[type="radio"] + label {
    display: inline-block;
    margin: 0;
    font-size: 1.05rem;
    font-weight: normal;
    line-height: 1;
    margin-right: 1em;
    margin-top: 0.5em; }
.ec-radio input[type="radio"] + label:before, .ec-blockRadio input[type="radio"] + label:before {
      font-family: "jeiafont";
      content: "\e90c";
      font-size: 22px;
      display: inline-block;
      vertical-align: -3px;
      margin-right: 0;
      color: #999;
      transition: .3s; }
.ec-radio input[type="radio"] + label span, .ec-blockRadio input[type="radio"] + label span {
      display: inline-block; }
.ec-radio input[type="radio"]:checked + label:before, .ec-blockRadio input[type="radio"]:checked + label:before {
    font-family: "jeiafont";
    content: "\e90d";
    color: #0049a3; }
.ec-radio input[type="radio"]:focus + label, .ec-blockRadio input[type="radio"]:focus + label {
    /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
.ec-radio.error, .error.ec-blockRadio {
    background-color: #FDF1F0; }
/*
ラジオボタン(縦配置)

垂直に並ぶラジオボタンフィールドです。

※ショッピングページ「shopping/index.twig」においてはinputとlabelごとをdiv要素（ブロック要素）でくくる形でコーディングされているためCSSスタイリングせずとも縦配置になる。
一応、このブロック要素がない場合でも縦配置になるスタイリングは準備しておく。

EC-CUBE4標準において`.ec-blockRadio`が使われている箇所はshopping/confirm.twigだけの様子だが（お支払いとポイント）、確認画面ページなので表示要素は1点のみであるし、
またラジオボタンですらないので、厳密にいえばここで`.ec-blockRadio`を使うのはミスではないかと思われる。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.2.3.html

Styleguide 3.2.3
*/
.ec-blockRadio {
  margin-right: 0; }
.ec-blockRadio input[type="radio"] + label {
    display: block;
    margin-right: 0;
    margin-top: 0;
    padding: .75em 0;
    border-bottom: dotted 1px #aaa; }
/*
チェックボックス （横配置）

各要素をlabelでくくって、コーディングします。←マチガイ<br>
input要素をlabelでくくってしまうと独自UIは表示されないので注意

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.2.4.html

Styleguide 3.2.4
*/
.ec-checkbox, .ec-blockCheckbox {
  margin-top: -0.5em; }
.ec-checkbox input[type="checkbox"], .ec-blockCheckbox input[type="checkbox"] {
    opacity: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none; }
.ec-checkbox input[type="checkbox"] + label, .ec-blockCheckbox input[type="checkbox"] + label {
    display: inline-block;
    margin: 0;
    font-size: 1.05rem;
    font-weight: normal;
    line-height: 1;
    margin-right: 1em;
    margin-top: 0.5em; }
.ec-checkbox input[type="checkbox"] + label:before, .ec-blockCheckbox input[type="checkbox"] + label:before {
      font-family: "jeiafont";
      content: "\e90e";
      font-size: 22px;
      display: inline-block;
      vertical-align: -3px;
      margin-right: 0.2em;
      color: #999;
      transition: .3s; }
.ec-checkbox input[type="checkbox"] + label span, .ec-blockCheckbox input[type="checkbox"] + label span {
      display: inline-block; }
.ec-checkbox input[type="checkbox"]:checked + label:before, .ec-blockCheckbox input[type="checkbox"]:checked + label:before {
    font-family: "jeiafont";
    content: "\e90f";
    color: #0049a3; }
.ec-checkbox input[type="checkbox"]:focus + label, .ec-blockCheckbox input[type="checkbox"]:focus + label {
    /* タブフォーカスを有効にする場合はコメントアウトを解除してください。
  outline: none;
  box-shadow: 0 0 0 1px $input-border-focus;// フォーム部品のfocusカラーを利用
  */ }
.ec-checkbox.error, .error.ec-blockCheckbox {
    background-color: #FDF1F0; }
/* 会員登録の利用規約チェックだけlabelがつけ方が通常のコーディングルールと違うのでCSS側で吸収 */
.ec-registerRole__actions .ec-checkbox input + label, .ec-registerRole__actions .ec-blockCheckbox input + label {
  margin-right: 0; }
/*
チェックボックス (縦配置)

垂直に並ぶチェックボックス フィールドです。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.2.5.html

Styleguide 3.2.5
*/
.ec-blockCheckbox {
  margin-right: 0; }
.ec-blockCheckbox input[type="checkbox"] + label {
    display: block;
    margin-right: 0;
    margin-top: 0;
    padding: .75em 0;
    border-bottom: dotted 1px #aaa; }
/*
セレクトボックス

独自UIを施しています。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.2.6.html

Styleguide 3.2.6
*/
.ec-select, .ec-birth {
  /*
  独自UIを形成するために、
  EC4系テンプレートでは「Form/form_div_layout.twig」を定義してselect要素を「label.select_ui」要素で囲む形にしましたが、
  EC-PACK2.17では不要なlabel要素は減らそうと思います（HTML構造がややこしくなるのを少しでも防ぎたい）。
  ですので、select要素の親要素となっている「.input_item」に並列して「.select_ui」を記述する形で実装してみています。
  */ }
.ec-select select, .ec-birth select {
    display: block;
    width: 100%;
    height: auto;
    padding: 0.5em 0.75em;
    font-size: 16px;
    line-height: 1.3;
    color: #333;
    background-color: #fff;
    background-image: none;
    border: 1px solid #ccc;
    border-radius: 0;
    -webkit-appearance: none;
    box-shadow: none;
    transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
    width: auto;
    max-width: 100%;
    background-color: #f8f8f8;
    cursor: pointer;
    padding-right: calc(20px + .75em);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none; }
.ec-select select:focus, .ec-birth select:focus {
      border-color: #3c8dbc;
      outline: none;
      box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); }
.ec-select select::-moz-placeholder, .ec-birth select::-moz-placeholder {
      color: #ddd;
      opacity: 1; }
.ec-select select:-ms-input-placeholder, .ec-birth select:-ms-input-placeholder {
      color: #ddd; }
.ec-select select::-webkit-input-placeholder, .ec-birth select::-webkit-input-placeholder {
      color: #ddd; }
.ec-select select::-ms-expand, .ec-birth select::-ms-expand {
      border: 0;
      background-color: transparent; }
.ec-select select[disabled], .ec-birth select[disabled], .ec-select select[readonly], .ec-birth select[readonly],
    fieldset[disabled] .ec-select select,
    fieldset[disabled] .ec-birth select {
      background-color: #eee;
      opacity: 1; }
.ec-select select[disabled], .ec-birth select[disabled],
    fieldset[disabled] .ec-select select,
    fieldset[disabled] .ec-birth select {
      cursor: not-allowed; }
.ec-select select::-ms-expand, .ec-birth select::-ms-expand {
      display: none; }
.ec-select .select_ui, .ec-birth .select_ui {
    display: inline-block;
    font-weight: normal;
    margin: 0;
    position: relative; }
.ec-select .select_ui:after, .ec-birth .select_ui:after {
      font-family: "jeiafont";
      content: "\e913";
      font-size: 16px;
      line-height: 1;
      display: flex;
      justify-content: center;
      align-items: center;
      width: 20px;
      height: calc(100% - 2px);
      background: #ddd;
      color: #555;
      position: absolute;
      top: 1px;
      right: 1px;
      border-radius: 0;
      pointer-events: none; }
.ec-select + .ec-select, .ec-birth + .ec-select, .ec-select + .ec-birth, .ec-birth + .ec-birth {
    margin-top: 1rem; }
.ec-select.error select, .error.ec-birth select {
    border-color: #aa0b00;
    background-color: #FDF1F0; }
.ec-select label, .ec-birth label {
    margin: 0; }
.ec-select label + .select_ui, .ec-birth label + .select_ui {
      margin-left: .5em; }
.ec-select__delivery {
  display: block; }
.ec-select__time {
  display: block; }
/*
生年月日選択

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.2.7.html

Styleguide 3.2.7
*/
.ec-birth {
  display: flex;
  align-items: center; }
.ec-birth span {
    display: inline-block;
    margin: 0 .5em; }
/*
フォーム部品（ラベル、他）

フォームのラベルに関する要素を定義します。

Styleguide 3.3
*/
/*
タイトルラベル

リストレイアウトでのタイトル部分など、会員登録ページでいえば「お名前」の部分のスタイリングになります。

メモ：
フォーム周りのタイトルラベルという位置づけの印象が強いですが、EC-CUBE4では「当サイトについて」や「特商」のページでも使われており、
どちらかというと汎用的なタイトルラベルという使い方なのかもしれません。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.3.1.html

Styleguide 3.3.1
*/
.ec-label {
  display: inline-block;
  vertical-align: middle;
  font-weight: normal;
  margin: 0;
  color: #222;
  letter-spacing: 0.05em; }
/*
必須ラベル

上記のタイトルラベルに付随する「必須」項目を示す部位になります。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/3.3.2.html

Styleguide 3.3.2
*/
.ec-required {
  display: inline-block;
  vertical-align: middle;
  font-size: 10px;
  font-weight: normal;
  line-height: 1;
  padding: 0.4em 0.4em;
  background-color: #e2251f;
  color: #fff;
  margin-left: 1em; }
/*
その他の調整

コーディングルールに則っていない（？）部位の調整。<br>
ミスなのか意図的なのかは不明ですがこれまでのフォーム構成（ルール）とは逸れている箇所があり、ミスであるならば本来はTwigを修正すべきですが、
テンプレート的にはTwigの編集は必要以外は極力しないでおきたいですので（バージョンアップの事も考慮しつつ）CSS側で吸収を試みます。

* なるべくピンポイントに働くように、他の部位に影響・汚染の無いよう心掛ける。
* もしバージョンアップでTwigの修正が施された際に悪影響のないようにしておきたい。

Styleguide 3.3.90
*/
/*
ショッピングページ「お客様情報」の変更フォーム

「都道府県」入力欄がここではテキスト入力だが、これを括る要素が.ec-selectとなっておりCSSルールから外れてしまっているので補正

Styleguide 3.3.91
*/
/*
.ec-select {

  .customer-address_pref {

    input {
      @include _form-control;    
    }
  }
}
*/
/*
問い合わせフォーム

問い合わせフォームで、.ec-zipInputHelpが、.ec-zipInputの中ではなく外に出てしまっている

Styleguide 3.3.92
*/
/*
#page_contact {

  .ec-zipInput {
    display: inline-block;
  }

  // .ec-zipInputに続く都道府県selectと住所Input間のマージン調整
  .ec-zipInputHelp {

    & + .ec-select {
      margin-top: 1em;
      margin-bottom: 1em;
    }
  }
}
*/
/*
フォームバリディエーション
.ecp_form_valid

フォームバリディエーション「ecp_form_valid.js」用のスタイリングになります。
jsによってform要素にclass「.ecp_form_valid」が付与されて各スタイリングが適用されます。
必須ラベル（「必須」マーク）もjsが挿入しますので、jsを適用している場合は「.ec-required」（EC4系標準 _3.3.form.scss）を記述する必要はありません。
その他、入力ガイド、入力エラーのバルン表示のスタイリングを施しています。

会員登録や問い合わせといったフォームの枠は、EC2系ではtable要素で組まれていましたが、EC4系の流儀に沿ってdiv要素「.ec-borderedDefs」を用いて、
各行はdl要素で構成されているものとします。js側も「td,th」でコード記述している箇所は「dl,dt」で書き直しています。
*/
.ecp_form_valid dt {
  line-height: 1; }
.ecp_form_valid dt .status {
    /*
      display: block;
      float: right;
      font-size: 12px;
      */
    line-height: 1;
    letter-spacing: 0.1em;
    width: 3em;
    height: 1.9em;
    border-radius: 3px;
    overflow: hidden;
    display: inline-block;
    vertical-align: middle;
    font-size: 0.66rem;
    font-weight: 400;
    margin-left: 1em; }
.ecp_form_valid dt .status .inner {
      width: 100%;
      height: 100%;
      transition: .3s;
      opacity: 1; }
.ecp_form_valid dt .status .inner span {
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        color: #fff; }
.ecp_form_valid dt .status .inner span:nth-child(1) {
          background-color: #d00; }
.ecp_form_valid dt .status .inner span:nth-child(2) {
          background-color: #42bf00; }
.ecp_form_valid dt.complete_field .status .inner {
    transform: translateY(-100%); }
.ecp_form_valid .input_item {
  position: relative; }
.ecp_form_valid .effect_error {
  border: solid 1px #d00;
  box-shadow: 0 0 3px #f00; }
.ecp_form_valid .bln {
  display: inline-flex;
  align-items: center;
  width: auto;
  min-height: 2em;
  font-size: 14px;
  line-height: 1.2;
  /*white-space: nowrap;*/
  vertical-align: middle;
  padding: 0.3em 1em;
  box-sizing: border-box;
  padding-right: 0.5em;
  border-radius: 1em;
  background-color: #666;
  color: #fff;
  filter: drop-shadow(3px 5px 3px rgba(0, 0, 0, 0.2));
  pointer-events: none;
  position: absolute;
  bottom: 100%;
  left: 0;
  transform: translateY(5px);
  opacity: 0;
  visibility: hidden;
  transition: .3s;
  z-index: 9;
  /* iOS Safariでたまにバルンがつぶれてしまう現象あり→効果無しだった
    -webkit-backface-visibility: hidden;
    */ }
.ecp_form_valid .bln:before {
    content: "";
    position: absolute;
    top: 100%;
    left: 1em;
    display: block;
    width: 0;
    height: 0;
    border-top: solid 5px #666;
    border-left: solid 5px transparent;
    border-right: solid 5px transparent;
    border-bottom: solid 5px transparent; }
.ecp_form_valid .bln:after {
    font-family: "jeiafont";
    content: "\e918";
    color: #fff;
    margin-left: 5px;
    opacity: 0;
    transition: .3s; }
.ecp_form_valid .bln.is-active {
    opacity: 0.85;
    visibility: visible;
    transform: translateY(-6px);
    pointer-events: auto;
    cursor: pointer; }
.ecp_form_valid .bln.is-active:hover:after {
      opacity: 1; }
.ecp_form_valid .bln:hover {
    opacity: 1; }
.ecp_form_valid .bln.bln_guide {
    background-color: #235282; }
.ecp_form_valid .bln.bln_guide:before {
      border-top-color: #235282; }
.ecp_form_valid .bln.bln_error {
    background-color: #d00; }
.ecp_form_valid .bln.bln_error:before {
      border-top-color: #d00; }
.bln {
  display: none; }
/*


/* スペーサー*---/
.ecp_form_valid .input_item.spacer:before {
  content: "";
  display: inline-block;
  margin-left: 5px;

}

/* 支払い方法等やむなくtableの外に組まなければならない場合のほか、textareaを幅100%にしたい場合などblock化*---/
.ecp_form_valid .input_item.block {
  display: block;
  width: 100%;
}

/* .ecp_form_group > label ※スタンダードテキスト入力等々 *---/
.ecp_form_valid .ecp_form_group:not(.horizontal) {
}
.ecp_form_valid .ecp_form_group:not(.horizontal) > label {
  /*
  * labelごとに幅MACで縦並べさせたいのでblockとするのがベストだと思うが入力フォームの右側に余白があったとして、そこをクリックしてもlabelなのでフォーカスが入ってしまう。
  * それでもいいのかもしれないが少し奇妙にも思えるので、力技だがpointer-eventsをオフしておき（中の要素でautoに戻す）対処してみた。
  * またblockにすることでtextareaを幅100%にすることも可能となるので、これでいきたい。
  *---/
  display: block;
  pointer-events: none;
}
.ecp_form_valid .ecp_form_group:not(.horizontal) > label > * {
  pointer-events: auto;
}
.ecp_form_valid .ecp_form_group:not(.horizontal) > label + label {
  margin-top: 10px;
}
.ecp_form_valid .ecp_form_group.horizontal > label {
  display: inline-block;
}
.ecp_form_valid .ecp_form_group.horizontal > label + label {
  margin-left: 10px;
}

/* .ecp_form_group > .input_item > label ※ラジオボタン、チェックボックス *---/
.ecp_form_valid .ecp_form_group:not(.horizontal) > .input_item > label {
  display: block;
  margin-left: 0;
}
.ecp_form_valid .ecp_form_group.horizontal > .input_item > label {
  display: inline-block;
}
.ecp_form_valid .ecp_form_group.horizontal > .input_item > label + label {
  margin-left: 1em;
}

/* labelの前後にフォームをつなぐ記号・文字を括ったspanとの余白 *---/
.ecp_form_valid .ecp_form_group label + span {
  margin-left: 5px;
}
.ecp_form_valid .ecp_form_group span + label {
  margin-left: 5px;
}

/* 固定レイアウト： 入力要素2分割（ハーフ） horizontal.half *---/
.ecp_form_valid .ecp_form_group.horizontal.half {
  max-width: 700px;/*フル幅MAXを指定*---/
  display: flex;
  justify-content: space-between;
}
.ecp_form_valid .ecp_form_group.horizontal.half > label {
  flex: 1 1 auto;
  width: calc((100% - 15px) / 2);
}
.ecp_form_valid .ecp_form_group.horizontal.half > label .input_item {
  display: block;
}
.ecp_form_valid .ecp_form_group.horizontal.half > label .input_item input {
  width: 100%;
}

/* 固定レイアウト： 入力要素フル幅 label.full *---/
.ecp_form_valid .ecp_form_group label.full {
  max-width: 700px;/*フル幅MAXを指定*---/
}
.ecp_form_valid .ecp_form_group label.full .input_item {
  display: block;
}
.ecp_form_valid .ecp_form_group label.full .input_item input,
.ecp_form_valid .ecp_form_group label.full .input_item textarea {
  width: 100%;
}


*/
/* inputs *---/
.ecp_form_valid .input_item input,
.ecp_form_valid .input_item select,
.ecp_form_valid .input_item textarea {
}

/* デバッグ中の目印 
.ecp_form_valid .input_item.is-finished {
  box-shadow: 0 0 3px #0f0;
}
.ecp_form_valid .input_item.is-unfinished {
  box-shadow: 0 0 3px #f00;
}
*/
/* 入力情報表示窓 */
#valid_infoarea {
  position: fixed;
  right: 2vw;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-flow: column;
  width: 90px;
  height: 90px;
  box-sizing: border-box;
  border-radius: 50%;
  background-color: #f8f8f8;
  border: solid 2px #d00;
  font-size: 0.866rem;
  overflow: hidden;
  filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.3));
  transition: 0.3s;
  opacity: 0;
  visibility: hidden;
  z-index: 999; }
#valid_infoarea .info_head {
    flex: 0 0 50%;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #d00;
    color: #fff; }
#valid_infoarea .info_body {
    flex: 0 0 50%;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center; }
#valid_infoarea .remain {
    display: block;
    margin-top: -0.5em; }
#valid_infoarea .remain .cnt {
      font-size: 1.5em; }
#valid_infoarea.is-enabled {
    opacity: 1;
    visibility: visible; }
#valid_infoarea.is-complete {
    border-color: #369b00; }
#valid_infoarea.is-complete .info_head {
      background-color: #369b00; }
#valid_infoarea.is-complete .info_body {
      background-color: #42bf00;
      color: #fff; }
#valid_infoarea.is-complete .remain {
      font-size: 1.3em; }
/* iPhoneSEサイズだとカナ入力が改行されてしまうので微調整 
@media ( max-width: 375px ) {
  input[name^="kana"] {
    width: 100px;
  }
}
*/
/*
折りたたみフォーム
*/
.ec-variableForm {
  margin: 1em 0;
  background-color: #eee;
  border: solid 1px #ccc;
  padding: 1em; }
.ec-variableForm label {
    font-size: 500; }
.ec-variableForm label:before {
      background-color: #fff; }
.ec-variableForm .comment {
    margin: 1em 0 0; }
.ec-fileInput {
  display: flex;
  align-items: center; }
.ec-fileInput .ec-fileInput__result .result_uploaded {
    width: 50px;
    height: 50px; }
.ec-fileInput .ec-fileInput__result .result_uploaded img {
      width: 100%;
      height: auto; }
.ec-fileInput .ec-fileInput__result .result_not_uploaded, .ec-fileInput .ec-fileInput__result .result_uploaded_text {
    background-color: #999;
    color: #fff;
    font-size: 13px;
    padding: .75em;
    line-height: 1; }
.ec-fileInput .ec-fileInput__result .result_uploaded_text {
    background-color: #00ad00; }
.ec-fileInput .ec-fileInput__actions {
    display: flex;
    align-items: center; }
.ec-fileInput .ec-fileInput__actions input[type="file"] {
      display: none; }
.ec-fileInput .ec-fileInput__actions .ec-inlineBtn {
      border-radius: 5px;
      font-size: 13px;
      margin-left: 10px; }
.ec-fileInput .ec-fileInput__actions .ec-inlineBtn:hover {
        filter: brightness(1.05); }
.ec-fileInput .ec-fileInput__actions .ec-inlineBtn.action_select {
        background-color: #A9894A;
        border-color: #A9894A; }
.ec-fileInput .ec-fileInput__actions .ec-inlineBtn.action_upload {
        background-color: #A9894A;
        border-color: #A9894A;
        color: #fff; }
.ec-fileInput .ec-fileInput__actions .ec-inlineBtn.action_upload.hidden {
          display: none; }
.ec-fileInput .ec-fileInput__actions .ec-inlineBtn.action_delete {
        background-color: #999;
        border-color: #999; }
.ec-fileInput + p {
    margin-top: 1em; }
/*
身分証明書アップロード（複数アップロード）
*/
.upload_item {
  margin-top: 1em;
  padding-top: 1em;
  border-top: solid 1px #ddd; }
.upload_item:nth-child(1) {
    border: none;
    margin-top: 0;
    padding-top: 0; }
/*
アイコン・WEBフォント

EC-CUBE4ではアイコンに[Font Awesome 5](https://fontawesome.com/) を使用しています。<br>
Font Awesome 5 で利用可能なフォント群については、 Font Awesome 5 公式サイト をご確認ください。

当テンプレートではそのほか、独自のWEBフォントと[Google Material Design](https://material.io/" target="_blank">Material Design)を使用しています。

Styleguide 4.1
*/
/*
SVGアイコン

デフォルトテンプレートのアイコンは`.ec-icon`>`img`タグで使用することができます

使用箇所：
error.twig
Block/search_product.twig
Cart/index.twig
Contact/index.twig
Entry/index.twig
Mypage/change.twig
Mypage/delivery.twig
Mypage/delivery_edit.twig
Mypage/favorite.twig
Mypage/login.twig
Mypage/withdraw.twig
Mypage/withdraw_confirm.twig
Product/detail.twig
Product/list.twig
Shopping/index.twig
Shopping/login.twig
Shopping/nonmember.twig
Shopping/shipping_edit.twig
Shopping/shipping_multiple_edit.twig

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/4.2.html

Styleguide 4.2
*/
.ec-icon img {
  max-width: 80px;
  max-height: 80px; }
/*
JEIA WEBフォント

当テンプレート用に独自のWEBフォントを使用しています。

WEBフォントの読み込みは__default_frame.twig__のheadの中で行っています。

当テンプレートのWEBフォントには[Apache 2.0ライセンス](http://www.apache.org/licenses/LICENSE-2.0)の
[Google Material Design](https://material.io/" target="_blank">Material Design)のアイコンと、
[FontAwesome](https://fontawesome.com/ target="_blank")のアイコンを含めています。

[アイコンリスト](/html/template/dtJEIA4007/assets/icon/jeiafont/demo.html)

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/4.3.html

Styleguide 4.3
*/
i.jeiafont {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'jeiafont';
  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;
  display: inline-block;
  vertical-align: middle; }
/* アイコン回転 */
i.rotate-90 {
  transform-origin: center center;
  transform: rotate(90deg); }
/* 以下アイコン追加があれば適宜追加 */
.jeia-cart:before {
  content: "\e900"; }
.jeia-search:before {
  content: "\e901"; }
.jeia-arrow:before {
  content: "\e902"; }
.jeia-heart:before {
  content: "\e903"; }
.jeia-heart_fill:before {
  content: "\e904"; }
.jeia-user:before {
  content: "\e905"; }
.jeia-user_fill:before {
  content: "\e906"; }
.jeia-lock:before {
  content: "\e907"; }
.jeia-lock_fill:before {
  content: "\e908"; }
.jeia-cross:before {
  content: "\e909"; }
.jeia-menu:before {
  content: "\e90a"; }
.jeia-more:before {
  content: "\e90b"; }
.jeia-radio:before {
  content: "\e90c"; }
.jeia-radio_checked:before {
  content: "\e90d"; }
.jeia-checkbox:before {
  content: "\e90e"; }
.jeia-checkbox_checked:before {
  content: "\e90f"; }
.jeia-call:before {
  content: "\e910"; }
.jeia-mail:before {
  content: "\e911"; }
.jeia-place:before {
  content: "\e912"; }
.jeia-more_angle:before {
  content: "\e913"; }
.jeia-warning:before {
  content: "\e914"; }
.jeia-error:before {
  content: "\e915"; }
.jeia-add:before {
  content: "\e916"; }
.jeia-remove:before {
  content: "\e917"; }
.jeia-clear:before {
  content: "\e918"; }
.jeia-star:before {
  content: "\e919"; }
.jeia-caret:before {
  content: "\e91a"; }
.jeia-arrow-left:before {
  content: "\e91b"; }
.jeia-arrow_b1:before {
  content: "\e91c"; }
.jeia-arrow_b2:before {
  content: "\e91d"; }
.jeia-truck:before {
  content: "\e91e"; }
.jeia-coins:before {
  content: "\e91f"; }
.jeia-creditcard:before {
  content: "\e920"; }
.jeia-twitter:before {
  content: "\e921"; }
.jeia-facebook:before {
  content: "\e922"; }
.jeia-googleplus:before {
  content: "\e923"; }
.jeia-instagram:before {
  content: "\e924"; }
.jeia-volume-mute:before {
  content: "\e925"; }
.jeia-volume-up:before {
  content: "\e926"; }
.jeia-angleup:before {
  content: "\e927"; }
.jeia-info:before {
  content: "\e928"; }
.jeia-crown:before {
  content: "\e929"; }
.jeia-eye:before {
  content: "\e92a"; }
.jeia-btn:before {
  content: "\e92b"; }
.jeia-fax:before {
  content: "\e92c"; }
.jeia-grid:before {
  content: "\e92d"; }
.jeia-cart2:before {
  content: "\e92e"; }
.jeia-cart3:before {
  content: "\e92f"; }
.jeia-amazon:before {
  content: "\e930"; }
.jeia-pinterest:before {
  content: "\e931"; }
.jeia-get-pocket:before {
  content: "\e932"; }
.jeia-line:before {
  content: "\e933"; }
.jeia-external-link:before {
  content: "\e934"; }
.jeia-printer:before {
  content: "\e935"; }
.jeia-facebook2:before {
  content: "\e936"; }
.jeia-line2:before {
  content: "\e937"; }
.jeia-hatenabookmark:before {
  content: "\e938"; }
.jeia-play-circle:before {
  content: "\e939"; }
.jeia-check_circle:before {
  content: "\e93a"; }
.jeia-article:before {
  content: "\e93b"; }
.jeia-quote:before {
  content: "\e93c"; }
.jeia-youtube:before {
  content: "\e93d"; }
.jeia-x-twitter:before {
  content: "\e93e"; }
/*
グリッド

画面を12分割し、グリッドレイアウトに対応するためのスタイルです。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Styleguide 5.1
*/
/*
2分割グリッド

画面２分割のグリッドです。
Bootstrap の col-sm-6 相当のグリッドを提供します。

使用箇所：
Mypage/login.twig
Product/detail.twig
Shopping/login.twig

Markup:
../styleguide/tmpl/5.1.1.html

Styleguide 5.1.1
*/
.ec-grid2 {
  display: block;
  margin: 0; }
.ec-grid2 .ec-grid2__cell {
    min-height: 1px; }
.ec-grid2 .ec-grid2__cell2 {
    min-height: 1px; }
/*
3分割グリッド

画面３分割のグリッドです。

使用箇所：
Shopping/login.twig

Markup:
../styleguide/tmpl/5.1.2.html

Styleguide 5.1.2
*/
.ec-grid3 {
  display: block;
  margin: 0; }
.ec-grid3 .ec-grid3__cell {
    min-height: 1px; }
.ec-grid3 .ec-grid3__cell2 {
    min-height: 1px; }
.ec-grid3 .ec-grid3__cell3 {
    min-height: 1px; }
/*
4分割グリッド

画面４分割のグリッドです。

ex [※使用箇所は無し]

Markup:
../styleguide/tmpl/5.1.3.html

Styleguide 5.1.3
*/
.ec-grid4 {
  display: block;
  margin: 0; }
.ec-grid4 .ec-grid4__cell {
    min-height: 1px; }
/*
6分割グリッド

2つにまとめた cell2 や 3つをまとめた cell3 タグも使用可能です。

ex [※使用箇所は無し]

Markup:
../styleguide/tmpl/5.1.4.html

Styleguide 5.1.4
*/
.ec-grid6 {
  display: block;
  margin: 0; }
.ec-grid6 .ec-grid6__cell {
    min-height: 1px; }
.ec-grid6 .ec-grid6__cell2 {
    min-height: 1px; }
.ec-grid6 .ec-grid6__cell3 {
    min-height: 1px; }
/*
中央寄せグリッド 10/12

左右にマージンを持つ、中央寄せグリッドを提供します。12分の10グリッドです<br>

※当テンプレートでは、この.ec-off1Gridのスタイリングはオフにしております。
EC-CUBE標準で備わっている機能は殺したくない所ですが、この.ec-off1Gridはデザイン的に外しておきたく、本来であればTwig側で調整すべきですが、
テンプレート的にTwigの編集は必要以外、極力しない方向でいきたいと考えております。

使用箇所：
Contact/index.twig
Contact/confirm.twig
Entry/index.twig
Entry/confirm.twig
Forgot/index.twig
Forgot/reset.twig
Help/about.twig
Help/agreement.twig
Help/privacy.twig
Help/tradelaw.twig
Mypage/change.twig
Mypage/delivery.twig
Mypage/delivery_edit.twig
Shopping/nonmember.twig
Shopping/shipping.twig
Shopping/shipping_edit.twig
Shopping/shipping_multiple_edit.twig

Markup:
../styleguide/tmpl/5.1.5.html

Styleguide 5.1.5
*/
/*
中央寄せグリッド 8/12

左右にマージンを持つ、中央寄せグリッドを提供します。12分の8グリッドです

使用箇所：
Mypage/change_complete.twig
Mypage/login.twig

Markup:
../styleguide/tmpl/5.1.6.html

Styleguide 5.1.6
*/
.ec-off2Grid {
  display: block;
  margin: 0; }
.ec-off2Grid .ec-off2Grid__cell {
    margin: 0; }
/*
中央寄せグリッド 6/12

左右にマージンを持つ、中央寄せグリッドを提供します。12分の6グリッドです

使用箇所：
Cart/index.twig
Contact/complete.twig
Entry/activate.twig
Entry/complete.twig
Forgot/complete.twig
Mypage/withdraw.twig
Mypage/withdraw_confirm.twig
Shopping/complete.twig
Shopping/shopping_error.twig

Markup:
../styleguide/tmpl/5.1.7.html

Styleguide 5.1.7
*/
.ec-off3Grid {
  display: block;
  margin: 0; }
.ec-off3Grid .ec-off3Grid__cell {
    margin: 0; }
/*
中央寄せグリッド 4/12

左右にマージンを持つ、中央寄せグリッドを提供します。12分の4グリッドです

使用箇所：
error.twig
Contact/confirm.twig
Contact/complete.twig
Contact/index.twig
Entry/index.twig
Entry/activate.twig
Entry/complete.twig
Entry/confirm.twig
Forgot/index.twig
Forgot/reset.twig
Mypage/change.twig
Mypage/change_complete.twig
Mypage/delivery_edit.twig
Mypage/withdraw.twig
Mypage/withdraw_complete.twig
Mypage/withdraw_confirm.twig
Shopping/complete.twig
Shopping/complete.twig
Shopping/nonmember.twig
Shopping/shipping.twig
Shopping/shipping_edit.twig
Shopping/shipping_multiple.twig
Shopping/shipping_multiple_edit.twig
Shopping/shopping_error.twig

Markup:
../styleguide/tmpl/5.1.8.html

Styleguide 5.1.8
*/
.ec-off4Grid {
  display: block;
  margin: 0; }
.ec-off4Grid .ec-off4Grid__cell {
    margin: 0; }
/*
グリッドオプション

グリッドのセルに対して「左寄せ」「中央寄せ」「右寄せ」のオプションを付与することができます。

Styleguide 5.1.9
*/
/*
グリッドセルの左寄せ

.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。

ex [※使用箇所は無し]

Markup:
../styleguide/tmpl/5.1.10.html

Styleguide 5.1.10
*/
.ec-grid--left {
  justify-content: flex-start; }
/*
グリッドセルの右寄せ

.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。

ex [※使用箇所は無し]

Markup:
../styleguide/tmpl/5.1.11.html

Styleguide 5.1.11
*/
.ec-grid--right {
  justify-content: flex-end; }
/*
グリッドセルの中央寄せ

.ec-gridに.ec-grid--centerを付与すると内包してるセルを中央寄せにすることができます。（※デフォルトで中央寄せなので不要かと思われる）

ex [※使用箇所は無し]

Markup:
../styleguide/tmpl/5.1.12.html

Styleguide 5.1.12
*/
.ec-grid--center {
  justify-content: center; }
/*
グリッドのタブレット時の挙動を追加

offGridを使う場面とは、メインコンテンツ幅に対して少し幅の狭いブロックでレイアウトデザインを組みたい場面と言えると思います。
（EC-CUBE標準ではメインコンテンツ自体を少し幅を狭めるorr1Gridも多用されておりますが…）
offGridはデスクトップ向けのスタイリングですのでタブレットでは適用されずフル幅になってしまいます。
ここではタブレット時もoffGridのスタイリングが加味されるよう調整しています。

Styleguide 5.1.90
*/
/*
レイアウト

様々なレイアウトを変更する為のスタイル群です。

Styleguide 5.2
*/
/*
画像レイアウト

画像とテキストを水平に並べるレイアウトです。

使用箇所：
Mypage/history.twig
Mypage/index.twig
Shopping/confirm.twig
Shopping/index.twig

Markup:
../styleguide/tmpl/5.2.1.html

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Styleguide 5.2.1
*/
.ec-imageGrid {
  display: flex;
  width: 100%; }
.ec-imageGrid .ec-imageGrid__img {
    flex: 0 0 auto;
    width: 22vw;
    max-width: 120px; }
.ec-imageGrid .ec-imageGrid__img img {
      width: 100%; }
.ec-imageGrid .ec-imageGrid__content {
    flex: 1 1 auto;
    padding-left: 1em; }
.ec-imageGrid .ec-imageGrid__content p {
      font-size: 0.9em;
      margin: 0; }
.ec-imageGrid .ec-imageGrid__content p:first-child {
        font-weight: 700; }
.ec-imageGrid .ec-imageGrid__content p span {
        display: inline-block;
        margin-left: 1em; }
/*
ログイン

主にログインフォームのスタイルを表示します。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Styleguide 6.1
*/
/*
ログインフォーム

ログインフォームを表示します。

使用箇所：
Mypage/login.twig
Shopping/login.twig

sg-wrapper:
<div class="ec-role">
  <div class="ec-off2Grid">
    <div class="ec-off2Grid__cell">
      <sg-wrapper-content/>
    </div>
  </div>
</div>

Markup:
../styleguide/tmpl/6.1.1.html

Styleguide 6.1.1
*/
/*
.ec-login {

  // アイコン
  & &__icon {
    .ec-icon {
      margin-bottom: 10px;
      text-align: center;

      @include media_desktop {
        text-align: left;
      }

      img {
        width: 50px;
        height: 50px;
      }
    }
  }

  // 入力欄
  & &__input {
    margin-bottom: 10px;

    input + input {
      margin-top: 1em;
    }

    // 自動ログインチェック
    .ec-checkbox {
      margin-top: 0.5em;

      label {
        font-size: 0.9rem;
      }
    }

    @include media_desktop {
      margin-bottom: 20px;
    }
  }

  // ログインボタン
  & &__actions {
  }

  // その他アクション
  & &__link {
    margin-top: .5em;

    @include media_desktop {
      margin-top: 0;
      margin-left: 1.5em;
      margin-bottom: 0.5em;
    }

    a {
      color: inherit;
      @include hoverBottomLine;

      &:hover {
        text-decoration: underline;
      }
    }
  }
}
*/
/*
ゲスト購入

ゲスト購入ボタンとそのフォームを表示します。

使用箇所：
Shopping/login.twig

Markup:
../styleguide/tmpl/6.1.2.html

Styleguide 6.1.2
*/
/*
.ec-guest {
  display: table;
  width: 100%;
  margin-top: 20px;
  padding: 1.5em;
  box-sizing: border-box;
  background: #f0f0f0;

  @include media_desktop {
    width: auto;
    margin: 0;
    height: 100%;
    margin-left: 40px;
  }

  & &__inner{
    display: table-cell;
    vertical-align: middle;
    text-align: center;

    p {
      margin-bottom: 1em;
    }
  }

  & &__actions {
    display: block;
    text-align: center;
  }
}
*/
/*
ログイン・ゲストエリア

ショッピングページ、マイページで使用されるログイン・ゲストエリアのスタイリングです。
※EC-CUBE4系ではコンポーネントとしての位置づけで「.ec-login」「.ec-guest」単位で定義されていますが、
EC-PACK7では、レイアウト構造も含めてスタイリングしますので、実質はプロジェクト要素になるかと思います。
class名称のほうも「.ec-loginRole」としまして、その中に、
「ログイン枠（.ec-loginRole__login）」、「ゲスト枠（.ec-loginRole__guest）」を設ける形としました。
デスクトップ時はログイン枠とゲスト枠が左右2レイアウトになります。
*/
.ec-loginRole .ec-loginRole__guest {
  background-color: #f4f4f4; }
.ec-loginRole .ec-loginRole__guest > *:first-child {
    margin-top: 0; }
.ec-loginRole .ec-loginRole__guest > *:last-child {
    margin-bottom: 0; }
.ec-loginRole h3 {
  font-size: 1.1rem;
  margin-bottom: 1em; }
.ec-loginRole h3 i {
    width: 1.5em;
    height: 1.5em;
    line-height: 1.5em;
    text-align: center;
    margin-right: .5em;
    font-size: 1.1em;
    background-color: #A9894A;
    color: #fff;
    border-radius: 3px; }
.ec-loginRole .ec-loginRole__input dl {
  margin: 0; }
.ec-loginRole .ec-loginRole__input dl dt {
    padding: .25em 0; }
.ec-loginRole .ec-loginRole__input dl dt.dt_empty {
      display: none; }
.ec-loginRole .ec-loginRole__input dl dd {
    padding: .25em 0; }
.ec-loginRole .ec-blockBtn {
  margin: 1em 0; }
.ec-loginRole .ec-blockBtn i {
    font-size: 1.2;
    margin-right: .5em; }
/*
商品掲載アイテムバナー？（使用箇所なし）

トップページに商品掲載するスタイルガイド群です。

Styleguide 7.1
*/
/*
検索・一覧表示

検索欄や、一覧表示に使用するスタイル群です。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Styleguide 7.2
*/
/*
ページャ

ページャは商品一覧ページ、マイページ注文履歴、お気に入りページで使用されています。

使用箇所：
pager.twig（ブロック）

pager.twigブロックは以下のページからincludeされます。
* Mypage\favorite.twig
* Mypage\index.twig
* Product\list.twig

Markup:
../styleguide/tmpl/7.2.2.html

Styleguide 7.2.2
*/
.ec-pager {
  list-style: none;
  margin: 30px 0;
  padding: 0;
  font-family: "Oswald";
  font-size: 1rem;
  display: flex;
  flex-flow: row wrap;
  justify-content: center; }
.ec-pager .ec-pager__item {
    margin: 3px; }
.ec-pager .ec-pager__item a {
      display: block;
      min-width: 40px;
      height: 40px;
      line-height: 40px;
      text-align: center;
      padding: 0 0.75em;
      background-color: #c8c8c8;
      color: #fff;
      transition: .2s; }
.ec-pager .ec-pager__item a:hover {
        text-decoration: none;
        background-color: #000; }
.ec-pager .ec-pager__item.is-active a {
      background-color: #A9894A;
      pointer-events: none; }
.ec-pager .ec-pager__item.item--prev a {
      padding-left: 0.3em; }
.ec-pager .ec-pager__item.item--prev a:before {
        font-family: "jeiafont";
        content: "\e91b";
        margin-right: 0.2em; }
.ec-pager .ec-pager__item.item--next a {
      padding-right: 0.3em; }
.ec-pager .ec-pager__item.item--next a:after {
        font-family: "jeiafont";
        content: "\e902";
        margin-left: 0.2em; }
/*
カート

ショッピングカートに関するスタイルです。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Styleguide 7.3
*/
/*
プログレス表示

購入完了までの手順や、現在の進捗状況をプログレス表示します。
↓
EC-PACK7では「_10.1.progress.scss」にて修正、まとめ直しました。

使用箇所：
Cart/index.twig
Shopping/index.twig
Shopping/confirm.twig
Shopping/complete.twig
Shopping/nonmember.twig

Markup:
../styleguide/tmpl/7.3.1.html

Styleguide 7.3.1
*/
/*
.ec-progress {
  list-style: none;
  display: table;
  table-layout: fixed;
  width: 100%;
  margin: 0 auto;
  padding: 0;

  @include media_sphone {
    // スマホ時少しだけ左右領域を拡張してゆとりを
    width: calc(100% + 20px);
    transform: translateX(-10px);
  }

  @include media_tablet {
    // バランス的にmax-widthを調整
    max-width: 62.5vw;
  }

  @include media_desktop {
    max-width: 600px;
  }

  & &__item {
    font-family: "Poppins";
    font-size: 1.3rem;// 横線がずれないようここでfont-sizeを指定
    @include media_sphone {
      font-size: 1.2rem;
    }

    display:table-cell;
    text-align: center;
    position: relative;
    z-index: 10;

    // 横線
    &:after {
      content: "";
      display: block;
      width: 100%;
      height: 2px;
      background-color: #ddd;//lighten($noactive-color, 20%);//←非アクティブカラーを薄め

      position: absolute;
      top: 1em;// __numberの大きさが2emなので
      left: 50%;
      transform: translate(0,-50%);
      z-index: -1;
    }

    &:last-child:after {
      display: none;
    }
  }

  // 丸数字
  & &__number{
    background-color: $noactive-color;
    color: #fff;

    display: inline-block;
    line-height: 2em;
    width: 2em;
    height: 2em;
    border-radius: 50%;
    text-align: center;
    margin-bottom: 0.25em;
  }

  // ラベルテキスト
  & &__label {
    font-family: $ff-default;
    font-size: 0.8rem;
    @include media_sphone {
      font-size: 0.7rem;
    }

    padding: 0;
    line-height: 1.2;
    white-space: nowrap;// 改行されないように（崩れるようなら再調整）
  }

  // 現在の進捗段階（厳密にはcompleteではないが）
  .is-complete {
    .ec-progress__number {
      background-color: $active-color;
    }

    .ec-progress__label {
      color: $active-color;
    }
  }
}
*/
/*
EC-CUBEオリジナルの「カートナビゲーション」Styleguide 7.3.5～7.3.7は、Styleguide 11.2.8～11.2.10へ移動
*/
/*
総計

会計時の合計金額、総計を表示します。

使用箇所：
Mypage/history.twig
Shopping/index.twig
Shopping/confirm.twig

Markup:
../styleguide/tmpl/7.3.8.html

Styleguide 7.3.8
*/
.ec-totalBox {
  background-color: #fbfbfb;
  border: solid 1px #ddd;
  padding: 1.5em;
  padding-top: 1em;
  /* 各項目 */
  /* 合計額 */
  /* 合計額：価格 */
  /* 合計額：「税込み」ラベル */
  /* お支払い合計 */
  /* 税率表示 */
  /* ポイント利用 */
  /* ボタンエリア */ }
.ec-totalBox .ec-totalBox__spec {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid #d6d6d6;
    padding: 0.5em 0.25em;
    margin: 0;
    line-height: 1; }
.ec-totalBox .ec-totalBox__spec dt {
      font-weight: normal; }
.ec-totalBox .ec-totalBox__spec dt .ec-font-bold {
        font-weight: normal; }
.ec-totalBox .ec-totalBox__spec dd {
      text-align: right; }
.ec-totalBox .ec-totalBox__total {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    border-bottom: 1px solid #d6d6d6;
    padding: 0.5em 0.25em;
    line-height: 1;
    font-weight: 500;
    margin: 1em 0 1.5em; }
.ec-totalBox .ec-totalBox__price {
    flex: 1 1 auto;
    font-size: 1.6rem;
    color: #000;
    text-align: right;
    margin-bottom: -3px; }
.ec-totalBox .ec-totalBox__taxLabel {
    margin-left: 5px;
    font-size: 0.85rem;
    font-weight: normal; }
.ec-totalBox .ec-totalBox__paymentTotal {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    border-bottom: 1px solid #d6d6d6;
    padding: 0.5em 0.25em;
    line-height: 1;
    font-weight: 500;
    margin: 1em 0 1.5em; }
.ec-totalBox .ec-totalBox__paymentTotal .ec-totalBox__price,
    .ec-totalBox .ec-totalBox__paymentTotal .ec-totalBox__taxLabel {
      color: #e2251f; }
.ec-totalBox .ec-totalBox__taxRate {
    display: flex;
    justify-content: flex-end;
    margin-bottom: .5em;
    font-size: 0.85rem; }
.ec-totalBox .ec-totalBox__taxRate dt {
      font-weight: normal; }
.ec-totalBox .ec-totalBox__taxRate dd {
      margin-left: 1em; }
.ec-totalBox .ec-totalBox__btn {
    margin-top: 2em; }
.ec-totalBox .ec-totalBox__btn .ec-blockBtn--action {
      margin-bottom: 10px; }
/*
お知らせ（未使用）

新着情報やバナーなどの掲載項目を紹介していきます。

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Styleguide 8.1
*/
/*
バナー

※定義なし

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Styleguide 8.2
*/
/*
マイページ

マイページで利用するためのスタイルガイド群です。

メモ：
マイページのほぼすべてのページ（login.twig, navi.twig以外）において、一番外枠に「ec-layoutRole__main」要素が挿入されています。
「ec-layoutRole__main」は、__default_frame.twig__が出力するフレームですので、「ec-layoutRole__main」が2重になっています。
レイアウトには全く影響はないのでスルーしておいてもいいとは思いますが、一応…

「ec-layoutRole__main」は1カラムレイアウト時に出力されるフレームで、2～3カラム時は別のフレームが出力されます。
2～3カラム時は、そのメインカラムの中で1カラム用「ec-layoutRole__main」が入る形になりますが、デザインレイアウト上の問題はありません。
気になる場合はマイページに挿入された「ec-layoutRole__main」を削除するといいと思います。（時期バージョンで解消希望）

sg-wrapper:
<div class="ec-role">
  <sg-wrapper-content/>
</div>

Styleguide 9.1
*/
/*
マイページ メニューナビ

マイページで表示するメニューナビです。

スマホ時はこのメニューナビを非表示にしています。
代わりに、MENUボタンを配置しそのボタンによりドロワーをOPEN、ドロワー内にマイページのメニューが含まれています。

※スマホ用MENUボタンはjsで生成して挿入するようにしていますが、navi.twigにHTML記述しておいてもいいかもしれません。

使用箇所：
Mypage/navi.twig

Markup:
../styleguide/tmpl/9.1.1.html

Styleguide 9.1.1
*/
.ec-navlistRole {
  font-size: 1rem;
  margin-bottom: 1em; }
.ec-navlistRole .ec-navlistRole__navlist {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: .933rem;
    display: flex;
    border-bottom: 1px solid #d6d6d6;
    padding-bottom: 1em;
    margin-bottom: 1em; }
.ec-navlistRole .ec-navlistRole__item {
    property: 27.5%, 72.5%;
    border-left: solid 1px transparent;
    border-image-width: 0 0 0 1px;
    -o-border-image: linear-gradient(to top, transparent 27.5%, #ccc 27.5%, #ccc 72.5%, transparent 72.5%);
       border-image: linear-gradient(to top, transparent 27.5%, #ccc 27.5%, #ccc 72.5%, transparent 72.5%);
    border-image-slice: 1;
    transition: .2s; }
.ec-navlistRole .ec-navlistRole__item:first-child, .ec-navlistRole .ec-navlistRole__item:hover,
    .ec-navlistRole .ec-navlistRole__item:hover + li, .ec-navlistRole .ec-navlistRole__item.active,
    .ec-navlistRole .ec-navlistRole__item.active + li {
      -o-border-image: linear-gradient(to top, transparent 0%, transparent 100%);
         border-image: linear-gradient(to top, transparent 0%, transparent 100%); }
.ec-navlistRole .ec-navlistRole__item > a {
      display: block;
      color: inherit;
      padding: .65em 1em;
      text-align: center;
      transition: .3s; }
.ec-navlistRole .ec-navlistRole__item > a:hover {
        text-decoration: none;
        background-color: #eee; }
.ec-navlistRole .ec-navlistRole__item.active > a {
      background-color: #333;
      color: #fff; }
.ec-navlistRole .mypageMenuBtn {
    display: none; }
/*
Welcome メッセージ

マイページで表示するログイン名の表示コンポーネントです。

使用箇所：
Mypage/navi.twig

Markup:
../styleguide/tmpl/9.1.3.html

Styleguide 9.1.3
*/
.ec-welcomeMsg {
  margin-bottom: 2em;
  margin-left: -1em;
  font-size: .933rem; }
.ec-welcomeMsg p {
    display: inline-block;
    margin: 0;
    margin-left: 1em; }
.ec-welcomeMsg .user_name {
    font-weight: 500; }
.ec-welcomeMsg .point {
    font-weight: 500; }
/*
注文履歴詳細 購入内容概要
*/
.ec-purchaseSummary {
  font-size: 1rem;
  margin: 1em 0; }
/*
注文履歴詳細 再注文フォーム
*/
.ec-reorder {
  margin: 1em 0; }
.ec-reorder .re-orderBtn {
    margin-top: 1em;
    background-color: #A9894A;
    border-color: #A9894A; }
.ec-reorder p {
    margin: 1em 0; }
/*
注文履歴詳細 購入カート表示
↓
カートページと同じく「.ec-cartTable」を使用しています。
*/
/*
注文履歴詳細 その他の注文カート表示
↓
ショッピングフロー用に「.ec-orderTable」をスタイリングしています。それを使用しています。
*/
/*
マイページ：お気に入り一覧
*/
.ec-favoriteRole .ec-favoriteRole__itemList .ec-productItemRole {
  position: relative; }
.ec-favoriteRole .ec-favoriteRole__itemList .ec-productItemRole .ec-closeBtn--circle {
    position: absolute;
    right: 7px;
    top: 7px;
    z-index: 9; }
/*
プログレスボタン・表示（手続き進行）

会員登録やショッピングフローなどの一連の手続きボタン（「戻る」「進む」ボタン等）エリアのコンポーネントと、
その進行状況をページ上部に表示する手続きフローのコンポーネントのスタイリングです。
*/
/*
プログレスフロー（手続き進行状況表示）

EC4系のカートページでは上部に進行状況を示す「.ec-progress」がありますが、EC-PACK7では「.ec-progressFlow」と改めています。
EC4系では「_7.3.cart.scss」に記述されておりますが、EC-PACK7ではこちらにまとめる形にしました。

プログレスフローは、シンプルな「〇-〇-〇」のタイプ「.ec-progressFlow」と、円内に画像を入れるタイプ「.ec-progressFlowPicture」を用意します。
それぞれにスタイリングをしますが、スマホ時はどちらも同じ表示にしたいので、まずスマホ用のスタイリングをmixinにしておき、あとからインクルードします。

.ec-progress自体に上下マージンを持たせる事にしました。
各種ページではコンテナの中で「& &__progress」要素の中に、当.ec-progressコンポーネントを置かれる構造ですが、
各種ページは、会員登録やカート、ショッピングフローと、それぞれコンテナclassが別物ですので、各種ページにおいてある程度、
余白を統一させておきたいと思いこのようにしております。
*/
/*
mixin： プログレスフロー（スマホ用共通スタイル mixin）
「.ec-progressFlow」「.ec-progressFlowPicture」それぞれからインクルードさせます。
*/
/*
プログレスフロー表示 「〇-〇-〇」タイプ
*/
/*
プログレスフロー表示 円内に画像を入れるタイプ
*/
/*
プログレスボタン（手続きボタン）

EC4系では会員登録や問い合わせ等の「進む」「戻る」系のボタン群を「.ec-registerRole__actions」でスタイリングしている様子ですが、
「register=登録」なので言葉の意味では問い合わせでは少々意味合いが反れる感があります。またTwig側のHTML構造に一貫性が欠ける部分もあったりします。
そもそも「.ec-registerRole」自体は「新規会員登録」ページのメイン外枠要素だったりしますので、できれば名称なりHTML構造は整理したい所です。

EC-PACKでは、手続きが進行していく意味をなす「progress」を名称に用います。
EC4系のカートページでは上部に進行状況を示す「.ec-progress」がありますので、これとは区別する意味で、「.ec-progressAction」としました。
また、この進行の具合を示す表示部分はEC-PACKでは「.ec-progressFlow」とします。
*/
.ec-progressAction .ec-progressAction__message {
  text-align: center; }
.ec-progressAction .ec-progressAction__actions {
  display: flex;
  justify-content: center; }
.ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel,
  .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action {
    display: inline-block;
    margin: 0; }
.ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel {
    background-color: #000; }
.ec-progressAction .ec-progressAction__actions .ec-blockBtn--action {
    background-color: #A9894A;
    border-color: #A9894A; }
.ec-progressAction .ec-progressAction__actions .ec-blockBtn--action.primary {
      background-color: #d00;
      border-color: #d00; }
.ec-progressAction .ec-progressAction__actions .ec-blockBtn--action:hover {
      filter: brightness(1.1); }
.ec-progressAction .ec-progressAction__actions .ec-blockBtn--action.is-disabled {
      background-color: #aaa;
      border-color: #aaa; }
/*
ページナビ コンポーネント
*/
/*
ページめくりナビ
*/
.ec-pageTurnNav {
  margin-bottom: 0 !important;
  border-top: solid 1px #D6D6D6;
  padding: 15px 0;
  display: flex;
  justify-content: space-between; }
.ec-pageTurnNav.noBorder {
    border-top: none; }
.ec-pageTurnNav .ec-pageTurnNav__prev a,
  .ec-pageTurnNav .ec-pageTurnNav__next a {
    display: block;
    background-color: #eee;
    color: #666;
    font-size: 1rem;
    padding: .5em 1em;
    border: solid 1px #fff;
    transition: .4s; }
.ec-pageTurnNav .ec-pageTurnNav__prev a:hover,
    .ec-pageTurnNav .ec-pageTurnNav__next a:hover {
      text-decoration: none;
      background-color: #a9894a;
      color: #fff; }
.ec-pageTurnNav .ec-pageTurnNav__prev i,
  .ec-pageTurnNav .ec-pageTurnNav__next i {
    font-size: 1.2em;
    vertical-align: middle;
    transition: .5s; }
.ec-pageTurnNav .ec-pageTurnNav__prev i {
    margin-right: 1em; }
.ec-pageTurnNav .ec-pageTurnNav__prev a:hover i {
    transform: translate3d(-5px, 0, 0); }
.ec-pageTurnNav .ec-pageTurnNav__next i {
    margin-left: 1em; }
.ec-pageTurnNav .ec-pageTurnNav__next a:hover i {
    transform: translate3d(5px, 0, 0); }
/*
レイアウトフレーム

管理画面のレイアウト管理のブロック配置をレイアウトするスタイリングです。

「.ec-layoutRole」下層の各レイアウトフレームについて定義しています。

* .ec-layoutRole
* .ec-layoutRole\_\_contentTop
* .ec-layoutRole\_\_contents
* .ec-layoutRole\_\_main
* .ec-layoutRole\_\_mainWithColumn
* .ec-layoutRole\_\_mainBetweenColumn
* .ec-layoutRole\_\_left
* .ec-layoutRole\_\_right

Styleguide 11.1
*/
.ec-layoutRole {
  width: 100%;
  transition: transform 0.3s;
  background: transparent; }
.ec-layoutRole .ec-layoutRole__contentTop {
    padding: 0; }
.ec-layoutRole .ec-layoutRole__contents {
    width: 100%; }
.ec-layoutRole .ec-layoutRole__main {
    width: 100%; }
/*
汎用コンテナ

汎用的なコンテナブロックです。

mixin「コンテナ」を@includeしています。
mixin「コンテナ」は、コンテナ自体のmax-width、左右余白などブロックスタイルの共通スタイリングを施しています。
各セクションの左右余白の統一感はコンテナによってもたらされます。

背景色をブラウザ幅フルに敷く場合は「max-width:100%;」上書きしておいて、コンテナの中にinner的要素を設けてそちらで改めてmax-widthを指定します。

Styleguide 11.1.2
*/
.ec-role {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px; }
/*
マイページコンテナ

マイページ専用のコンテナブロックです。

※当テンプレートでは汎用コンテナと同一です。

Styleguide 11.1.3
*/
.ec-mypageRole {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px; }
/*
箔一ページレイアウト ナビ付きページ（2カラムページ）

ページ構成が、左にナビ、右にコンテンツのある2カラムレイアウトのスタイリングになります。
*/
.ec-pageWithNavRole {
  display: flex; }
body.LC_Page_EcpBlogCommon_Detail .ec-pageWithNavRole {
    max-width: 1140px;
    /* ※中央配置はナビの折りたたみが効かなくなるのでNG
    margin-left: auto;
    margin-right: auto;
    */ }
.ec-pageWithNavRole .ec-pageWithNavRole__left {
    flex: 0 0 auto;
    display: flex;
    flex-flow: column; }
.ec-pageWithNavRole .ec-pageWithNavRole__main {
    flex: 1 1 auto; }
.ec-pageWithNavRole .ec-pageWithNavRole__body .ec-pageHeaderIntro__inner {
    padding-left: 0;
    padding-right: 0;
    max-width: 100%; }
.ec-pageWithNavRole .ec-pageWithNavRole__nav {
    text-align: center; }
.ec-pageWithNavRole .ec-pageWithNavRole__nav ul {
      display: inline-block;
      margin: 0;
      padding: 0;
      list-style-type: none;
      font-family: "Noto Serif JP", serif;
      font-size: 1.2rem;
      line-height: 1.2; }
.ec-pageWithNavRole .ec-pageWithNavRole__nav ul li {
        text-align: left; }
.ec-pageWithNavRole .ec-pageWithNavRole__nav ul li a {
          display: block;
          padding: .55em 1em;
          padding-left: 25px;
          color: #999;
          transition: .3s;
          position: relative; }
.ec-pageWithNavRole .ec-pageWithNavRole__nav ul li a:before {
            content: "";
            display: block;
            width: 11px;
            height: 1px;
            background-color: #999;
            position: absolute;
            top: 50%;
            left: 0;
            transform: translate(0, -50%); }
.ec-pageWithNavRole .ec-pageWithNavRole__nav ul li a:hover {
            text-decoration: none;
            background-color: rgba(169, 136, 74, 0.1);
            color: #A9884A; }
.ec-pageWithNavRole .ec-pageWithNavRole__nav ul li.active a {
          color: #A9884A; }
.ec-pageWithNavRole .ec-pageWithNavRole__nav ul li.active a:before {
            background-color: #A9884A;
            height: 2px; }
.ec-pageWithNavRole .ec-pageWithNavRole__pageback {
    margin: auto 0 0;
    padding-top: 1rem; }
.ec-pageWithNavRole .ec-pageWithNavRole__pageback a {
      display: block;
      color: #888;
      font-size: 0.96rem;
      font-weight: 500;
      transition: .3s; }
.ec-pageWithNavRole .ec-pageWithNavRole__pageback a:before {
        font-family: jeiafont;
        content: "\e91b";
        font-size: 1.2em;
        margin-right: .25em;
        vertical-align: middle;
        transition: .3s; }
.ec-pageWithNavRole .ec-pageWithNavRole__pageback a:hover {
        text-decoration: none;
        margin-left: -5px; }
/*
左ナビの開閉用スタイリング
*/
.ec-pageWithNavRole .btnNavToggle {
  color: #000;
  background: #eee;
  cursor: pointer;
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  color: #666;
  position: fixed;
  left: 0;
  margin: 10px; }
.ec-pageWithNavRole .btnNavToggle:before {
    font-family: jeiafont;
    content: "\e91c";
    font-size: 16px; }
.ec-pageWithNavRole .ec-pageWithNavRole__left {
  transition: margin 0.5s; }
.ec-pageWithNavRole .ec-pageWithNavRole__main {
  transition: margin 0.5s; }
.ec-pageWithNavRole.is-navClose .btnNavToggle {
  background: rgba(255, 255, 255, 0.5);
  color: #000;
  -webkit-animation: animeBtnNavToggle 1s forwards;
          animation: animeBtnNavToggle 1s forwards; }
.ec-pageWithNavRole.is-navClose .btnNavToggle::before {
    content: "\e91d"; }
@-webkit-keyframes animeBtnNavToggle {
  0% {
    transform: translate3d(0, 0, 0); }
  50% {
    transform: translate3d(-100%, 0, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }
@keyframes animeBtnNavToggle {
  0% {
    transform: translate3d(0, 0, 0); }
  50% {
    transform: translate3d(-100%, 0, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }
/*
ビジュアルヘッダー ナビ付きページ（2カラムページ）用
*/
.ec-pageWithNavVisualHeader {
  /* 背景ビジュアル画像を固定化する仕様へ変更。そのための追加スタイリングは後述します。ここでは背景画像のスタイリングは不要になるのでコメントアウトするに留めています。
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  */ }
.ec-pageWithNavVisualHeader .ec-pageWithNavVisualHeader__title {
    height: 100%;
    display: flex;
    flex-flow: column;
    justify-content: center;
    color: #000;
    text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5), 0 0 12px rgba(255, 255, 255, 0.5); }
.ec-pageWithNavVisualHeader .ec-pageWithNavVisualHeader__title.white {
      color: #fff;
      text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5), 0 0 12px rgba(0, 0, 0, 0.5); }
.ec-pageWithNavVisualHeader .ec-pageWithNavVisualHeader__title .title {
      font-family: "Noto Serif JP", serif;
      font-weight: 400;
      line-height: 1.2;
      color: inherit;
      margin: 0; }
.ec-pageWithNavVisualHeader .ec-pageWithNavVisualHeader__title .person {
      margin-top: 1rem; }
.ec-pageWithNavVisualHeader .ec-pageWithNavVisualHeader__title .person .mini {
        font-size: 0.8rem; }
.ec-pageWithNavVisualHeader .ec-pageWithNavVisualHeader__title .person .name {
        font-family: "Noto Serif JP", serif;
        font-size: 1.2rem;
        line-height: 1.2; }
.ec-pageWithNavVisualHeader.greeting {
    /* ※固定背景ボックス側へ移動
    @include media_sphone {
      background-position: left -10vw center;
    }

    @include media_tablet {
      background-position: left -7vw center;
    }
    */ }
.ec-pageWithNavVisualHeader.greeting .ec-pageWithNavVisualHeader__inner {
      text-align: right;
      padding-right: 3vw; }
.ec-pageWithNavVisualHeader.greeting .ec-pageWithNavVisualHeader__title {
      display: inline-flex;
      align-items: center;
      text-align: left; }
.ec-pageWithNavVisualHeader.vertical .ec-pageWithNavVisualHeader__title, .ec-pageWithNavVisualHeader.public .ec-pageWithNavVisualHeader__title {
    text-align: center; }
.ec-pageWithNavVisualHeader.public .ec-pageWithNavVisualHeader__inner {
    position: relative; }
.ec-pageWithNavVisualHeader.public .ec-pageWithNavVisualHeader__comment {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: rgba(0, 0, 0, 0.411);
    color: #fff;
    padding: 1em;
    font-size: .96rem;
    line-height: 1.2; }
/*
この2カラムレイアウト時のビジュアルヘッダー画像を固定配置する仕様

ビジュアルヘッダーとしてメインタイトルがあり、その背景にビジュアル画像がありますが、
このビジュアル画像をスクロールしても流れないように固定したい、との仕様となっています。

ポイントは、
* 1. メインビジュアルの大きさ（タイトルの配置に関係上）と固定されるビジュアル画像のサイズが同一でなければならない。
* 2. スクロールされた際に、ビジュアル画像は同じ位置に張り付いている状態で（ヘッダー高さが縮めば追随）、メインコンテンツが最下部までスクロールされればビジュアル画像は流れていく（sticky）

実装するにあたり、この固定配置用の要素「.fixBgBox」を入れてあり、これが張り付きstickyとなっていますが、
この要素の縦横サイズはビジュアルヘッダーと同じでなければなりません。
*/
.ec-pageWithNavRole__main {
  position: relative; }
.ec-pageWithNavRole__head {
  background: transparent; }
.ec-pageWithNavRole__body {
  background-color: rgba(255, 255, 255, 0.9); }
.fixBgBox {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  position: -webkit-sticky;
  position: sticky;
  z-index: -1;
  transition: .3s;
  width: 100%; }
/*
追加情報

20230711 創業者訃報のコメントを追加
デスクトップ時はページビジュアルヘッダーの中に表示するデザインで、モバイル時はページヘッダー（画像）の下に挿入する形のデザインとなっています。
HTML構造的には不可能な構造ですので、デスクトップ用とモバイル用とそれぞれHTMLを2つ記述しています。CSSにより表示・非表示を切り替えます。

デスクトップ用とはいえ、ブラウザ幅1280px～1700px未満の状態ではページヘッダ画像からこの追加情報がはみ出してしまうので、
実際にはデスクトップ用デザインは1700px以上で適用されるようにスタイリングしています。
なお、左メニューの折り畳みにより本体コンテンツの幅が可変するわけですが、ページヘッダー高さは変化しませんので左メニューの開閉状態は無視で良しとします。
*/
.additional {
  text-shadow: none; }
.additional span {
    font-family: "Noto Serif JP", serif;
    line-height: 1.55; }
.additional.mobile {
    background-color: #000;
    color: #fff; }
.additional.mobile span {
      display: block; }
.additional.desktop {
    font-size: 1rem;
    position: relative; }
.additional.desktop span {
      position: absolute;
      top: 2.5vw;
      left: 0;
      display: inline-block;
      background-color: #000;
      color: #fff;
      padding: 1em; }
/*
ヘッダー＆ドロワー
*/
/*
ヘッダーフレーム構造

まずはヘッダーのフレーム構造について定義しています。
ヘッダーは横3列のフレーム構造になっております（デスクトップ時）。
スマホ・タブレット時では左のフレーム（ヘッダーメニュー部分）が非表示になり、代わりにドロワー開閉ボタンが表示される形です。

sg-wrapper:
<div class="ec-layoutRole__header">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/11.2.2.html

Styleguide 11.2.2
*/
.ec-layoutRole__header {
  background-color: #000; }
/* .ec-headerRole フレーム構造 */
.ec-headerRole {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px;
  max-width: 100%;
  display: flex;
  justify-content: space-between; }
/*
ヘッダーナビ

sg-wrapper:
<div class="ec-layoutRole__header">
  <div class="ec-headerRole">
    <div class="ec-headerRole__center">
      <sg-wrapper-content/>
    </div>
  </div>
</div>

Markup:
../styleguide/tmpl/11.2.3.html

Styleguide 11.2.3
*/
.ec-headerNav {
  font-family: "Noto Serif JP", serif;
  font-size: 1.2rem;
  color: #fff;
  height: 100%; }
.ec-headerNav nav {
    height: 100%; }
.ec-headerNav__item {
    display: inline-block;
    vertical-align: top;
    margin-right: 2em;
    height: 100%;
    /* サブメニュー枠組み */ }
.ec-headerNav__item:last-child {
      margin-right: 0; }
.ec-headerNav__item > a {
      display: flex;
      align-items: center;
      height: 100%;
      color: inherit;
      padding-top: 2px;
      padding-bottom: 2px;
      position: relative;
      text-decoration: none; }
.ec-headerNav__item > a:hover {
        text-decoration: none !important; }
.ec-headerNav__item > a:after {
        content: "";
        display: block;
        width: 100%;
        height: 1px;
        background-color: #fff;
        position: absolute;
        bottom: 0;
        left: 0;
        transform-origin: left bottom;
        transform: scaleX(0);
        transition: transform .3s; }
.ec-headerNav__item > a:hover:after {
        transform: scaleX(1); }
.ec-headerNav__item > a:after {
        bottom: 0;
        top: calc(50% + .75em); }
.ec-headerNav__item.has-submenu .submenu {
      position: absolute;
      top: 100%;
      left: 0;
      width: 100vw;
      background-color: #000;
      color: #fff;
      padding: 40px;
      padding-top: 20px;
      pointer-events: none;
      z-index: 999;
      visibility: hidden;
      opacity: 0;
      transform: translate3d(0, -15px, 0);
      transition: .2s; }
.ec-headerNav__item.has-submenu .submenu__body {
        max-width: 1280px;
        margin: 0 auto; }
.ec-headerNav__item.has-submenu .submenu__body .submenuTitle {
          font-family: "Noto Serif JP", serif;
          font-size: 1.73rem;
          margin: 0 0 1.5em; }
.ec-headerNav__item.has-submenu:hover .submenu {
      visibility: visible;
      opacity: 1;
      transform: translate3d(0, 0, 0);
      pointer-events: auto; }
.ec-headerNav__item.has-submenu:hover:after {
      content: "";
      width: 100%;
      background: transparent;
      height: 100px;
      position: absolute;
      top: calc(50% + .5em);
      left: 0; }
.ec-categoryTree {
  margin: 0;
  padding: 0;
  list-style-type: none; }
.ec-categoryTree.layout-col2 {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -25px; }
.ec-categoryTree.layout-col2 > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 2);
      margin-left: 0px;
      margin-top: 25px; }
.ec-categoryTree.layout-col2 > *:nth-child(2n+1) {
        margin-left: 0; }
.ec-categoryTree.layout-col2 > li:nth-child(2n+1) {
      border-left: solid 1px #222; }
.ec-categoryTree.layout-col3 {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -25px; }
.ec-categoryTree.layout-col3 > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 3);
      margin-left: 0px;
      margin-top: 25px; }
.ec-categoryTree.layout-col3 > *:nth-child(3n+1) {
        margin-left: 0; }
.ec-categoryTree.layout-col3 > li:nth-child(3n+1) {
      border-left: solid 1px #222; }
.ec-categoryTree > li {
    display: flex;
    padding: 10px 20px;
    border-right: solid 1px #222; }
.ec-categoryTree > li .image {
      flex: 0 0 180px; }
.ec-categoryTree > li .image > a {
        display: block;
        overflow: hidden;
        /* HTML構造によってはIE11でちらつく事があるので保険 */ }
.ec-categoryTree > li .image > a * {
          overflow: hidden; }
.ec-categoryTree > li .image > a img {
          transition: .6s; }
.ec-categoryTree > li .image > a:hover img {
          transform: scale(1.1);
          filter: brightness(1.05); }
.ec-categoryTree > li .content {
      flex: 1 1 auto;
      padding: 0 1em;
      font-size: 18px; }
.ec-categoryTree > li .content > a {
        display: block;
        padding: 0 0;
        color: inherit;
        line-height: 1;
        white-space: nowrap; }
.ec-categoryTree > li .content > a:after {
          display: inline-block;
          vertical-align: middle;
          font-family: jeiafont;
          content: "\e902";
          margin-left: .5em;
          transition: .3s; }
.ec-categoryTree > li .content > a:hover {
          text-decoration: none; }
.ec-categoryTree > li .content > a:hover:after {
            transform: translateX(3px); }
.ec-categoryTree > li .content.centering {
        display: flex;
        justify-content: center;
        align-items: center; }
.ec-categoryTree > li .content.centering > a {
          text-align: center; }
.ec-categoryTree .ec-categoryTree__child {
    margin: 0;
    margin-top: 10px;
    padding: 0;
    list-style-type: none;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 13px; }
.ec-categoryTree .ec-categoryTree__child > li > a {
      display: block;
      padding: .2em 0;
      color: inherit;
      transition: .3s; }
.ec-categoryTree .ec-categoryTree__child > li > a:hover {
        text-decoration: none;
        transform: translateX(3px); }
/*
.ec-categoryTree {
  font-size: 0.933rem;
  margin: 0;
  padding: 0;
  list-style-type: none;

  li {
    margin: 0;
    padding: 0;
    border-bottom: solid 1px $clrHeaderPopupBorder;
    white-space: nowrap;

    position: relative;

    a {
      display: block;
      line-height: 1;
      padding: 1em .5em;
      transition: .2s;
      color: inherit;

      &:hover {
        text-decoration: none;
        background-color: $clrHeaderPopupHoverBg;
      }
    }

    ul.child {
      margin: 0;
      padding: 0;
      list-style-type: none;
      min-width: 10em;

      position: absolute;
      top: .5em;
      left: calc(100% - .5em);
      background-color: $clrHeaderPopupBg;
      color: inherit;
      padding: 15px;
      z-index: 9;
      border: solid 1px #ddd;

      visibility: hidden;
      opacity: 0;
      transition: .2s;
    }

    &:hover > ul.child {
      visibility: visible;
      opacity: 1;
    }
  }

}
*/
/*
ドロワー開閉ボタン

ドロワー開閉ボタンはスマホ・タブレット時に表示されます。

Markup:
../styleguide/tmpl/11.2.4.html

Styleguide 11.2.4
*/
/* ドロワーボタン（サイドメニュー開閉ボタン） */
.ec-drawerButton {
  display: block;
  cursor: pointer;
  position: relative; }
.ec-drawerButton .burger {
    display: block;
    width: 100%;
    height: 2px;
    background-color: #fff;
    position: relative;
    top: 50%;
    text-indent: -9999px;
    transition: .3s;
    /* ドロワー（サイドメニュー）表示時 */ }
.ec-drawerButton .burger:before, .ec-drawerButton .burger:after {
      content: "";
      display: block;
      width: 100%;
      height: 2px;
      background-color: #fff;
      position: absolute;
      left: 0;
      transition: .3s; }
.ec-drawerButton .burger:before {
      top: -8px; }
.ec-drawerButton .burger:after {
      bottom: -8px; }
body.have_curtain .ec-drawerButton .burger {
      background-color: transparent; }
body.have_curtain .ec-drawerButton .burger:before {
        top: 0;
        transform: rotate(225deg); }
body.have_curtain .ec-drawerButton .burger:after {
        bottom: 0;
        transform: rotate(135deg); }
/*
ヘッダータイトル

sg-wrapper:
<div class="ec-layoutRole__header">
  <div class="ec-headerRole">
    <div class="ec-headerRole__left">
      <sg-wrapper-content/>
    </div>
  </div>
</div>

Markup:
../styleguide/tmpl/11.2.5.html

Styleguide 11.2.5
*/
.ec-headerTitle {
  display: block;
  /*
   * デスクトップ時はページスクロールされるとヘッダー高さを縮小させますので、縮小に伴い、
   * ヘッダーロゴ画像が連動して縮小されるように高さに合わせて幅が変動するように準備します。（※ヘッダー縮小の挙動スタイリングは当scssの最後の方で記述しています）
   * ロゴ画像自体の高さ（Sass変数）をmax-heightに設定しておき、ロゴ画像がそれ以上大きくならないようにしています。
   *
   * ロゴ画像のデザインにもよりますが、モバイル時のロゴの収まりも優先して画像生成して、デスクトップ時はそれに合わせて調整（上下中央配置）できた方がいいと思います。
   */ }
.ec-headerTitle a {
    transition: .3s; }
.ec-headerTitle a:hover {
      opacity: 0.8; }
/*
ヘッダーメニュー

ヘッダーメニューは、会員登録、ログインや、商品検索、カートといったユーザメニューで構成されています。
またマウスオーバーでボタンガイド的なポップアップが表示されるようにしています。

sg-wrapper:
<div class="ec-layoutRole__header">
  <div class="ec-headerRole">
    <div class="ec-headerRole__right">
      <sg-wrapper-content/>
    </div>
  </div>
</div>

Markup:
../styleguide/tmpl/11.2.6.html

Styleguide 11.2.6
*/
.ec-headerMenu {
  display: flex;
  align-items: center;
  height: 100%;
  font-size: 14px; }
.ec-headerMenu .ec-headerMenu__item {
    height: 100%;
    padding: 0;
    /* スマホ時に非表示とするボタン */ }
.ec-headerMenu .ec-headerMenu__item > a {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100%;
      padding: 0 1em;
      background-color: #555;
      color: inherit;
      min-width: 45px;
      transition: .2s; }
.ec-headerMenu .ec-headerMenu__item > a:hover {
        text-decoration: none;
        filter: brightness(1.1); }
.ec-headerMenu .ec-headerMenu__item.menu_lang a {
      flex-flow: column;
      background-color: #222;
      color: #A9894A;
      font-size: 1.1rem; }
.ec-headerMenu .ec-headerMenu__item.menu_lang a i {
        display: none;
        margin-top: 5px;
        font-size: 12px;
        transform: rotate(90deg); }
.ec-headerMenu .ec-headerMenu__item.menu_contact a {
      background-color: #A9894A;
      color: #fff;
      font-size: 1.1rem; }
.ec-headerMenu .ec-headerMenu__item.menu_contact a i {
        display: none;
        font-size: 12px;
        margin-left: 5px; }
/* ポップアップ */
.ec-headerMenu .ec-headerMenu__item.has-popup {
  position: relative; }
.ec-headerMenu .ec-headerMenu__item.has-popup:hover .ec-headerMenu__itemPopup {
    visibility: visible;
    opacity: 1;
    transform: translate3d(-50%, 0, 0);
    pointer-events: auto; }
.ec-headerMenu .ec-headerMenu__itemPopup {
  position: absolute;
  top: 100%;
  left: 50%;
  width: auto;
  min-width: 200px;
  padding-top: 15px;
  /*くちばし分の余白*/
  pointer-events: none;
  z-index: 999;
  visibility: hidden;
  opacity: 0;
  transform: translate3d(-50%, -15px, 0);
  transition: .2s; }
.ec-headerMenu .ec-headerMenu__itemPopup .itemPopupInner {
    background-color: #000;
    color: #000;
    padding: 0;
    text-align: center;
    white-space: nowrap;
    filter: drop-shadow(0 0 1px #ddd) drop-shadow(0 0 5px rgba(0, 0, 0, 0.2));
    position: relative;
    /* くちばし */ }
.ec-headerMenu .ec-headerMenu__itemPopup .itemPopupInner:after {
      content: "";
      width: 0;
      height: 0;
      border: solid 10px transparent;
      border-bottom-color: #000;
      position: absolute;
      bottom: 100%;
      left: 50%;
      transform: translateX(-50%); }
.ec-headerMenu .ec-headerMenu__itemPopup .itemPopupInner ul {
      margin: 0;
      padding: 0;
      list-style-type: none; }
.ec-headerMenu .ec-headerMenu__itemPopup .itemPopupInner ul li a {
        display: block;
        padding: .5em 1em;
        background-color: transparent;
        color: #A9894A;
        font-size: 1rem;
        transition: .2s; }
.ec-headerMenu .ec-headerMenu__itemPopup .itemPopupInner ul li a:hover {
          text-decoration: none;
          background-color: rgba(255, 255, 255, 0.2); }
.ec-headerMenu .ec-headerMenu__itemPopup .itemPopupInner ul li + li {
        border-top: solid 1px rgba(255, 255, 255, 0.2); }
/*
ドロワー

スマホ・タブレット時に出現するドロワー（サイドメニュー）コンポーネントです。

ここではドロワーの枠組みを定義しています。
EC-CUBE標準ではドロワーOPEN時はドロワー閉ボタンも表示されますが当テンプレートではヘッダーにあるドロワー開閉ボタンがありますので他の閉ボタンは排除しています。

ドロワーOPEN時にはページコンテンツを暗くするカーテンが表示されます。またその際、ページコンテンツをぼかすエフェクトを追加しています
※デバイス幅がドロワー最大幅を超えると（420px以上）コンテンツが見えてきます。不要なら削除してください。

sg-wrapper:
<div style="position:static">
  <sg-wrapper-content/>
</div>

Markup:
../styleguide/tmpl/11.2.11.html

Styleguide 11.2.11
*/
.ec-drawerRole {
  position: fixed;
  width: 100%;
  max-width: 420px;
  left: 0;
  z-index: 1000;
  box-sizing: border-box;
  overflow-y: scroll;
  background-color: #000;
  color: #fff;
  visibility: hidden;
  transform: translate3d(-100%, 0, 0);
  transition: .3s;
  /* 当テンプレートではヘッダーが上部固定でありヘッダー内のドロワー開閉ボタンを活かしたいので、ドロワーをヘッダーの高さ分だけ短くしておきます */ }
.ec-drawerRole.is-active {
    visibility: visible;
    transform: translate3d(0, 0, 0); }
/* ドロワー閉ボタン（※不使用） */
.ec-drawerRoleClose {
  display: none; }
/* ドロワー背景カーテン */
.ec-overlayRole {
  position: fixed;
  width: 100%;
  left: 0;
  background: rgba(0, 0, 0, 0.75);
  visibility: hidden;
  opacity: 0;
  transition: .4s;
  /* ドロワー同様、背景カーテンもヘッダーの高さ分だけ短くしておきます */
  /* 表示状態 */ }
.have_curtain .ec-overlayRole {
    visibility: visible;
    opacity: 1; }
/* 背景下のページコンテンツをぼかす（不要なら削除） */
.ec-layoutRole > *:not(.ec-layoutRole__header) {
  transition: .4s; }
.have_curtain .ec-layoutRole > *:not(.ec-layoutRole__header) {
    filter: blur(3px); }
/*
ドロワーメニュー

ドロワーの中身をこちらでスタイリングしています。
中身のコンテンツはブロック「ログインナビ（SP)」（login_sp.twig）になります。このブロックの中にすべてのコンテンツを記述しています。

EC-CUBE標準だと検索、カテゴリ、各メニューがそれぞれブロックで分離されておりますが、当テンプレートではブロック1つで実装する形にしています。

Styleguide 11.2.12
*/
.ec-drawerMenu {
  font-size: 0.9285rem;
  margin-bottom: 30px;
  /*
  カテゴリ折り畳み表示
  商品カテゴリとマイページカテゴリにて使用
  */
  /* ドロワーフッターナビ */ }
.ec-drawerMenu .ec-drawerMenu__item {
    border-bottom: dotted 1px rgba(255, 255, 255, 0.4); }
.ec-drawerMenu .ec-drawerMenu__item a {
      display: block;
      padding: 0.75em 0;
      padding-right: 2em;
      color: inherit;
      position: relative; }
.ec-drawerMenu .ec-drawerMenu__itemIcon {
    display: inline-block;
    vertical-align: middle;
    color: #aaa;
    margin-left: 5px; }
.ec-drawerMenu .ec-drawerMenu__itemBadge {
    display: inline-block;
    font-size: 10px;
    line-height: 1.6em;
    width: 1.6em;
    height: 1.6em;
    text-align: center;
    border-radius: 50%;
    background-color: #f55;
    color: #fff;
    font-family: "Poppins", "Noto Sans JP", sans-serif;
    pointer-events: none; }
.ec-drawerMenu .ec-drawerMenu__item.has-category {
    position: relative; }
.ec-drawerMenu .ec-drawerMenu__category ul {
    margin: 0;
    padding: 0;
    list-style-type: none; }
.ec-drawerMenu .ec-drawerMenu__category ul li {
      margin: 0;
      padding: 0; }
.ec-drawerMenu .ec-drawerMenu__category ul li a {
        display: block;
        padding: .5em 0;
        padding-right: 2em;
        color: inherit; }
.ec-drawerMenu .ec-drawerMenu__category ul li.has-child {
        position: relative; }
.ec-drawerMenu .ec-drawerMenu__category ul.parent {
    display: none;
    margin-bottom: 1em; }
.ec-drawerMenu .ec-drawerMenu__category ul.parent > li > a:before {
      font-family: "jeiafont";
      content: "\e91a";
      color: #aaa; }
.ec-drawerMenu .ec-drawerMenu__category ul.child {
    margin-left: .75em;
    padding-left: .75em;
    border-left: solid 1px rgba(255, 255, 255, 0.3);
    display: none; }
.ec-drawerMenu .ec-drawerMenu__category .categoyOpenBtn:after {
    font-family: "jeiafont";
    content: "\e902";
    font-size: 1em;
    display: block;
    width: 2em;
    height: 2em;
    line-height: 2em;
    cursor: pointer;
    text-align: center;
    position: absolute;
    top: 0.5em;
    right: 0;
    transition: .2s; }
.ec-drawerMenu .ec-drawerMenu__category .categoyOpenBtn.is-open:after {
    transform: rotate(90deg); }
.ec-drawerMenu.footerNav {
    margin-top: 20px; }
/*
ヘッダーの挙動

__ヘッダー挙動 その１__

当テンプレートではヘッダーをページ上部に固定させる仕様となっております。
ヘッダーを固定しますので、.ec-layoutRoleに上部余白を設けておく必要があります。

またデスクトップ時はページスクロールが発生するとヘッダーの高さを縮小させます。

__ヘッダー挙動 その２__

デスクトップ時のみの挙動ですが、
トップページ以外ではヘッダーの背景色は、ドロワーと同じ色になります（黒系）。
トップページのみ、トップスライダーとヘッダーが被る形となりその際ヘッダー背景は透過状態になります。
ただし、ページスクロールが発生するとヘッダー背景色はその他ページと同じ黒系背景色になります。

以下、挙動ごとにスタイリングを施します。

Styleguide 11.2.90
*/
/*
ヘッダー挙動 その１

当テンプレートではヘッダーをページ上部に固定させる仕様となっております。
ヘッダーを固定しますので、.ec-layoutRoleに上部余白を設けておく必要があります。

またデスクトップ時はページスクロールが発生するとヘッダーの高さを縮小させます。

Styleguide 11.2.91
*/
.ec-layoutRole .ec-layoutRole__header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1001; }
/*
フッター

※ページコンテンツ本体（.ec-layoutRole__contents）とフッターとの余白は、`.ec-layoutRole__footer`に持たせてあります。
*/
.ec-layoutRole__footer {
  /*
  @include media_sphone {
    margin-top: $padding-sphone;
  }

  @include media_tablet {
    margin-top: $padding-tablet;
  }

  @include media_desktop {
    margin-top: 100px;

    @at-root body.LC_Page_Index & {
      margin-top: 0;
    }
  }
  */ }
.ec-footerRole {
  /*
  @include media_sphone {
    font-size: 0.9285rem;
  }

  @include media_tablet {
    font-size: 0.8666rem;
  }

  @include media_desktop {
    font-size: 0.8666rem;
  }
  */ }
/*
フッターガイド
*/
.ec-footerGuide {
  background-color: #000;
  color: #fff; }
.ec-footerGuide .ec-footerGuide__inner {
    margin: 0 auto;
    box-sizing: content-box;
    width: auto !important;
    max-width: 1280px;
    max-width: 650px; }
.ec-footerGuide .mailtitle {
    font-family: "Noto Serif JP", serif;
    font-size: 1.66rem;
    font-weight: 400;
    color: inherit;
    text-align: center;
    margin: 0;
    margin-bottom: 1em; }
.ec-footerGuide .mailtext {
    font-size: 1.06rem; }
.ec-footerGuide .title {
    font-family: "Noto Serif JP", serif;
    font-size: 1.2rem;
    font-weight: 400;
    color: inherit;
    text-align: center;
    margin: 2em 0 1em;
    position: relative; }
.ec-footerGuide .title span {
      display: inline-block;
      padding: 0 1em;
      background: #000;
      position: relative;
      z-index: 2; }
.ec-footerGuide .title:before {
      content: "";
      display: block;
      width: 100%;
      height: 1px;
      background-color: rgba(255, 255, 255, 0.5);
      position: absolute;
      top: 50%;
      left: 0;
      z-index: 1; }
.ec-footerGuide .ec-blockDetailBtn--center {
    margin-top: 2em;
    margin-bottom: 2em;
    width: 300px; }
.ec-footerGuide .tel {
    display: block;
    font-family: "Noto Serif JP", serif;
    font-size: 2.66rem;
    line-height: 1;
    color: #FAF8F3;
    text-align: center; }
.ec-footerGuide .tel:hover {
      text-decoration: none; }
.ec-footerGuide .day {
    font-size: 0.96rem;
    color: #FAF8F3;
    text-align: center;
    margin-top: 1em; }
/*
フッターナビ
*/
.ec-footerNavi {
  background-color: #fff;
  color: #000;
  /* 各カラム */
  /* リスト */ }
.ec-footerNavi .ec-footerNavi__wrap {
    margin: 0 auto;
    box-sizing: content-box;
    width: auto !important;
    max-width: 1280px;
    max-width: 1280px;
    display: flex;
    flex-flow: row wrap; }
.ec-footerNavi .ec-footerNavi__item {
    flex: 0 0 auto;
    width: 20%;
    padding-right: 1.5rem;
    margin-top: -1.5rem; }
.ec-footerNavi .ec-footerNavi__item h3 {
      font-weight: 400;
      font-size: 1.06rem;
      margin-top: 1.5rem;
      margin-bottom: 0;
      background-color: #eee; }
.ec-footerNavi .ec-footerNavi__item h3 a {
        display: block;
        color: inherit;
        padding: .5em; }
.ec-footerNavi .ec-footerNavi__item h3 a.noLink {
          pointer-events: none; }
.ec-footerNavi .ec-footerNavi__itemList {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 0.86rem;
    margin-top: 1em; }
.ec-footerNavi .ec-footerNavi__itemList li a {
      display: block;
      color: inherit;
      padding: 0.25em 0; }
/*
フッタータイトル
*/
.ec-footerTitle {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px;
  max-width: 100%;
  background-color: #F6F3EC;
  color: #333;
  font-family: "Poppins", "Noto Sans JP", sans-serif;
  text-align: center;
  line-height: 1.2;
  position: relative; }
.ec-footerTitle .ec-footerTitle__bannerLink .item {
    border: solid 2px #bca46b; }
.ec-footerTitle .ec-footerTitle__bannerLink .item a {
      display: block;
      transition: .3s; }
.ec-footerTitle .ec-footerTitle__bannerLink .item a:hover {
        text-decoration: none;
        filter: brightness(1.1); }
.ec-footerTitle .ec-footerTitle__logo a {
    color: inherit; }
.ec-footerTitle .ec-footerTitle__logo img {
    width: 80px; }
.ec-footerTitle .ec-footerTitle__copyright {
    font-size: 12px; }
/*
フッター ソーシャルボタン
*/
.ec-footerSocial {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px;
  max-width: 100%;
  margin-top: 5px;
  margin-bottom: 5px; }
.ec-footerSocial .ec-footerSocial__itemList {
    margin: 0;
    padding: 0;
    list-style: none;
    text-align: center; }
.ec-footerSocial .ec-footerSocial__itemList li {
      display: inline-block;
      margin: 5px;
      /* 各ソーシャルボタン毎に色付け（スマホ・タブレット時のみ） */
      /* デスクトップ時はマウスオーバーで色が付くようにします */ }
.ec-footerSocial .ec-footerSocial__itemList li a {
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 14px;
        width: 1.6em;
        height: 1.6em;
        border-radius: 5px;
        background-color: #666;
        color: #fff; }
.ec-footerSocial .ec-footerSocial__itemList li a:hover {
          text-decoration: none; }
.ec-footerSocial .ec-footerSocial__itemList li i {
        display: block; }
/*
パンくずリスト
*/
.ec-topicPathRole {
  width: 100%;
  background-color: #F9F7F2;
  color: #000;
  font-size: 0.866rem; }
.ec-topicPathRole .ec-topicPathRole__inner {
    margin: 0 auto; }
.ec-topicPathRole .ec-topicPathRole__lists {
    margin: 0;
    padding: 0;
    list-style-type: none; }
.ec-topicPathRole .ec-topicPathRole__lists li {
      display: inline-block;
      line-height: 1.5em; }
.ec-topicPathRole .ec-topicPathRole__lists li a {
        color: inherit; }
.ec-topicPathRole .ec-topicPathRole__lists li.link_home a {
        color: #A9894A; }
.ec-topicPathRole .ec-topicPathRole__lists li + li:before {
      content: "・";
      display: inline-block;
      font-size: .8em;
      margin: 0 2px; }
/*
slick

トッププロモーションや商品ビジュアル画像、商品リストのスライド表示にはEC-CUBE4標準と同じく「slick」を使用しています。

slickを適用する要素は共通してclass「.ec-slickContainer」を設置してその要素に対して適用させるようにしています。

slick適用要素は、slickの準備ができるまではエリアを非表示としておき、準備が整ってからフェードイン表示としています。
slickの準備が完了するまでは画像が一瞬大きく表示されてしまう事がありますのでそれを見せないための処置です。

メモ：
slickドットとslickアロー（prev,next）と両方適用させると、アローボタンは上下中央よりずれてしまいます。

Markup:
../styleguide/tmpl/12.1.html

Styleguide 12.1
*/
.ec-slickContainer {
  visibility: hidden;
  opacity: 0;
  filter: blur(5px);
  transition: 1s; }
.ec-slickContainer.slick-initialized.is-readiness {
    visibility: visible;
    opacity: 1;
    filter: blur(0); }
/*
slick用パーツ

slick用パーツの共通スタイリングです。

* prev,nextボタン
* ドットボタン
* slickガター
* キャプション表示

Styleguide 12.1.1
*/
/*
prev,nextボタン

ボタンを画像に被せて左右に配置するるタイプのスタイリングです。

Markup:
../styleguide/tmpl/12.1.2.html

Styleguide 12.1.2
*/
.slick-slider {
  position: relative; }
.slick-slider .slick-arrow {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 50%;
    padding: 10px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 9;
    font-size: 3rem;
    color: #fff;
    cursor: pointer;
    opacity: .5;
    transition: .2s; }
.slick-slider .slick-arrow.slick-prev {
      left: 0; }
.slick-slider .slick-arrow.slick-next {
      right: 0; }
.slick-slider .slick-arrow:hover {
      opacity: 1; }
.slick-slider .slick-arrow i {
      display: block; }
/*
prev,nextボタンの配置を「おすすめ商品」ブロックのようなslickコンテナの横を左右にはみ出すように上書きスタイリングするミックスインになります。
ブラウザ幅が指定したブレイクポイント未満の場合は、prev・nextボタンをslickコンテナの右上にまとめて配置します。

* $breakPoint: ブレイクポイント
*/
/*
ドットボタン

ドットボタン要素「.slick-dots」は通常は、slick要素「.slick-slider」の中に含まれる形で構成されますが、このslick要素の外に出した構造にしたい場合は、
slickの実行時（javascript側）にパラメータ「appendDots」を指定して外側要素「.slick-dotsOuter」にドットボタンを構成します。
両方のケースにおいて基本となるスタイリングをまとめて行っておき、あとで外側ドットボタンの上書きスタイリングを行います。

Markup:
../styleguide/tmpl/12.1.3.html

Styleguide 12.1.3
*/
.slick-slider .slick-dots,
.slick-dotsOuter .slick-dots {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  padding: 20px; }
.slick-slider .slick-dots li,
  .slick-dotsOuter .slick-dots li {
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #c8c8c8;
    cursor: pointer; }
.slick-slider .slick-dots li button,
    .slick-dotsOuter .slick-dots li button {
      display: none; }
.slick-slider .slick-dots li.slick-active,
    .slick-dotsOuter .slick-dots li.slick-active {
      background-color: #A9894A; }
.slick-slider .slick-dots li + li,
    .slick-dotsOuter .slick-dots li + li {
      margin-left: 15px; }
/* 外側ドットボタンの上書きスタイリング */
.slick-dotsOuter .slick-dots {
  position: static; }
/*
slickガター

slick適用内のアイテム間にガター（間隔）を設けます。

slickを適用する要素（基本は.ec-ec-slickContainer）に併せてclass「slickGutter」を記述しておきます。

※なお、レスポンシブでデバイス事にガター幅を可変できるようにmixin化しています。

メモ：
普通に、.slick-slide要素にマージンを設定し、先祖要素である.slick-listにネガティブマージンを設定して調整します。
しかし、それだけではスライド時に左側にわずかに商品アイテムがはみ出した形で見えてしまいます。これを防ぐ為には、
slick適用の要素（基本は.ec-ec-slickContainer）に「overflow:hidden;」すれば解決しますが、
prev,nectボタンをslick領域の外側に配置したい場合があり（position:absolute;で外に出しています）、overflowだと
この外側に配置したpreve,nextボタンが隠されてしまい見えない事になります。
ですので、ネガティブマージンをかけた.slick-list要素に「clip-path」プロパティを使い表示領域をクリップすることで対応しています。

※IE11、Edgeはclip-path非対応なのでクリップパスは適用されず結果、スライド時に左側が少しはみ出して見えます（2019/09）

Markup:
../styleguide/tmpl/12.1.4.html

Styleguide 12.1.4
*/
.slickGutter .slick-list {
  margin-left: -10px;
  -webkit-clip-path: inset(0 0 0 10px);
          clip-path: inset(0 0 0 10px); }
.slickGutter .slick-list .slick-slide {
    margin-left: 10px; }
/*
slick キャプション表示

slick適用の各アイテムの中に「.caption」要素（説明文）を記述しておくと画像に被さる形でテキストが表示されます。

商品詳細ページでは、slickを適用する画像ビジュアル部分が動的に出力されますのでキャプション要素を追加できませんが、
フリーエリア内にてキャプション要素を記述しておき、javascirptで各キャプションを各画像アイテム内に挿入させて実装しています。

Markup:
../styleguide/tmpl/12.1.5.html

Styleguide 12.1.5
*/
.slick-slider .slick-slide {
  position: relative; }
.slick-slider .slick-slide .caption {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    font-size: .933rem;
    color: #000;
    background-color: rgba(255, 255, 255, 0.5);
    padding: 1em;
    box-sizing: border-box;
    visibility: hidden;
    opacity: 0;
    transform: translate3d(0, 100%, 0);
    transition: .5s;
    transition-delay: .5s; }
.slick-slider .slick-slide.slick-current .caption {
    visibility: visible;
    opacity: 1;
    transform: translate3d(0, 0, 0); }
/*
ヘッドプロモーション（動画スライダー）

slickスライダーに動画を含める事のできる「jeia_movieslider.js」用のスタイリングです。

通常のslickスライダーのスタイリングに対して、動画スライダー用にいくつか上書きと追加スタイリングを施しています。
*/
.ec-headPromotionRole {
  position: relative;
  /* スライドitem */
  /* loader */
  /* SOUNDボタン */
  /* プログレスバー */
  /* 動画メディアキャプション */ }
.ec-headPromotionRole .ec-slickContainer:not(.is-ready) {
    opacity: 0; }
.ec-headPromotionRole .ec-slickContainer.is-ready {
    opacity: 1; }
.ec-headPromotionRole .slick-slide {
    overflow: hidden;
    transition: filter 1s;
    pointer-events: none;
    /* 切り替わり中のエフェクト */ }
.ec-headPromotionRole .slick-slide .itemContainer {
      /* iframe要素 */
      /* video要素 */ }
.ec-headPromotionRole .slick-slide .itemContainer > a {
        display: block;
        pointer-events: auto; }
.ec-headPromotionRole .slick-slide .itemContainer iframe {
        border: none; }
.ec-headPromotionRole .slick-slide .itemContainer video {
        display: block; }
.ec-headPromotionRole .slick-slider .slick-arrow {
    width: 40px;
    height: 40px;
    background-color: #A9894A;
    color: #fff; }
.ec-headPromotionRole .slick-slider .slick-arrow i {
      font-size: 14px; }
.ec-headPromotionRole .slick-slider .slick-dots {
    padding: 1.5vw; }
.ec-headPromotionRole .slick-slider .slick-dots li {
      border-radius: 0;
      width: 35px;
      height: 4px;
      background-color: #D6D6D6; }
.ec-headPromotionRole .slick-slider .slick-dots li.slick-active {
        background-color: #B3A355; }
.ec-headPromotionRole .slick-slider .slick-dots li + li {
      margin-left: 10px; }
.ec-headPromotionRole .loader {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center; }
.ec-headPromotionRole .loader img {
      width: 50px;
      height: 50px; }
.ec-headPromotionRole .soundBtn {
    position: absolute;
    bottom: 1em;
    left: 1em;
    font-size: 25px;
    line-height: 1;
    color: #fff;
    cursor: pointer;
    filter: drop-shadow(1px 2px 2px rgba(0, 0, 0, 0.3));
    z-index: 10;
    visibility: hidden;
    opacity: 0;
    transition: 1s;
    /* SOUND-ONボタン */
    /* SOUND-OFFボタン */
    /* SOUND出力中のアイコン切り替え */ }
.ec-headPromotionRole .soundBtn.is-ready {
      visibility: visible;
      opacity: 0.5; }
.ec-headPromotionRole .soundBtn:hover {
      opacity: 1; }
.ec-headPromotionRole .soundBtn:before {
      font-family: "jeiafont";
      content: "\e926";
      display: none; }
.ec-headPromotionRole .soundBtn:after {
      font-family: "jeiafont";
      content: "\e925";
      display: block; }
.ec-headPromotionRole .soundBtn.sound-on:before {
      display: block; }
.ec-headPromotionRole .soundBtn.sound-on:after {
      display: none; }
.ec-headPromotionRole .progressbar {
    position: absolute;
    right: 20px;
    bottom: 20px;
    width: 100px;
    height: 2px;
    background-color: rgba(255, 255, 255, 0.5);
    z-index: 9;
    overflow: hidden;
    opacity: 0;
    transition: opacity .3s; }
.ec-headPromotionRole .progressbar .bar {
      display: block;
      width: 100%;
      height: 100%;
      background-color: #fff;
      position: absolute;
      top: 0;
      left: 0;
      transform: translate3d(-100%, 0, 0); }
.ec-headPromotionRole .progressbar.is-start {
      opacity: 1; }
.ec-headPromotionRole .progressbar.is-start .bar {
        -webkit-animation: 1s linear forwards progressBarAnimation;
                animation: 1s linear forwards progressBarAnimation; }
@-webkit-keyframes progressBarAnimation {
  0% {
    transform: translate3d(-100%, 0, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }
@keyframes progressBarAnimation {
  0% {
    transform: translate3d(-100%, 0, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }
.ec-headPromotionRole .mediaCaption {
    font-family: "Poppins", "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 1rem;
    max-width: 350px;
    position: absolute;
    top: 50%;
    left: 7%;
    transform: translate(0, -50%);
    z-index: 9;
    overflow: hidden;
    /* キャプション表示 */
    /* スマホ用調整（.mediaCaption） */ }
.ec-headPromotionRole .mediaCaption .inner {
      background-color: rgba(255, 255, 255, 0.75);
      color: #000;
      padding: 1.5em;
      opacity: 0; }
.ec-headPromotionRole .mediaCaption .text_small {
      font-size: 0.9333em; }
.ec-headPromotionRole .mediaCaption .text_big {
      font-size: 2em;
      line-height: 1.2;
      margin: .25em 0;
      opacity: 0; }
.ec-headPromotionRole .mediaCaption .text_description {
      font-size: 1em; }
.ec-headPromotionRole .mediaCaption .linkBtn {
      display: inline-block;
      font-size: 1em;
      margin-top: 1em;
      line-height: 1;
      padding: 1em 1.5em;
      background-color: #000;
      color: #fff;
      pointer-events: auto;
      transition: .2s; }
.ec-headPromotionRole .mediaCaption .linkBtn:hover {
        text-decoration: none;
        background-color: #333; }
.ec-headPromotionRole .mediaCaption .closeBtn {
      display: none; }
.ec-headPromotionRole .mediaCaption.is-active .inner {
      -webkit-animation: viewCaption .5s forwards 1s;
              animation: viewCaption .5s forwards 1s; }
.ec-headPromotionRole .mediaCaption.is-active .text_big {
      -webkit-animation: viewCaption .8s forwards 1s;
              animation: viewCaption .8s forwards 1s; }
@-webkit-keyframes viewCaption {
  0% {
    opacity: 0;
    transform: translate3d(-100%, 0, 0); }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0); } }
@keyframes viewCaption {
  0% {
    opacity: 0;
    transform: translate3d(-100%, 0, 0); }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0); } }
@-webkit-keyframes viewCaptionSp {
  0% {
    opacity: 0;
    transform: translate3d(0, 100%, 0); }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0); } }
@keyframes viewCaptionSp {
  0% {
    opacity: 0;
    transform: translate3d(0, 100%, 0); }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0); } }
/*
トップページのスタイリング
*/
/*
箔一のコンセプト
*/
/*
.ec-topConceptRole {
  background-color: $siteThemeColor;
  color: #fff;
  overflow: hidden;

  & &__inner {
    @include container;
    @include containerMargin;
  }

  // キャッチタイトル
  & &__catch {
    font-family: $ff-min;
    font-size: 2rem;
    margin: 1em 0;
    text-align: center;

    @include media_desktop {
      font-size: 2.53rem;
    }
  }

  // キャッチテキスト
  & &__catchtext {
    font-size: 1.13rem;
    line-height: 1.7;
    text-align: center;
    margin: 1em 0;
  }
}
*/
/*
箔一のコンセプト（縦書きデザイン変更）

デスクトップ・タブレットでは縦書きとします。スマホは横書き
*/
.ec-topConceptRole {
  background-color: #A9894A;
  color: #fff; }
.ec-topConceptRole .ec-topConceptRole__inner {
    margin: 0 auto;
    box-sizing: content-box;
    width: auto !important;
    max-width: 1280px; }
.ec-topConceptRole .ec-topConceptRole__verticalBox {
    -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
    display: flex;
    flex-flow: column;
    justify-content: center;
    width: 100%; }
.ec-topConceptRole .ec-topConceptRole__catch {
    font-family: "Noto Serif JP", serif;
    font-size: 1.73rem;
    line-height: 1.5;
    margin: 0;
    margin-left: 2em; }
.ec-topConceptRole .ec-topConceptRole__catchtext {
    font-family: "Noto Serif JP", serif;
    font-size: 1.13rem;
    line-height: 2; }
.ec-topConceptRole .ec-topConceptRole__catchtext span {
      display: block; }
.ec-topConceptRole .ec-blockDetailBtn--center {
    margin-top: 1.5em;
    margin-bottom: 0;
    width: 250px; }
/*
箔一のコンセプトイメージ（パララックス）
*/
.ec-topConceptImageRole {
  height: 30vh; }
/*
事業内容
*/
.ec-topServiceRole {
  padding-bottom: 0 !important;
  background-color: #FBF9F4; }
.ec-topServiceRole .ec-topServiceRole__head {
    margin: 0 auto;
    box-sizing: content-box;
    width: auto !important;
    max-width: 1280px; }
.ec-topServiceRole .ec-topServiceRole__item {
    display: block;
    position: relative;
    overflow: hidden; }
.ec-topServiceRole .ec-topServiceRole__item .image img {
      transition: .8s; }
.ec-topServiceRole .ec-topServiceRole__item .content {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      padding: 1em;
      display: flex;
      flex-flow: column;
      justify-content: flex-end;
      background: linear-gradient(0deg, #000 0%, transparent 30%);
      transition: .8s; }
.ec-topServiceRole .ec-topServiceRole__item .content .title {
        font-family: "Noto Serif JP", serif;
        font-size: 1.28rem;
        line-height: 1.3;
        color: #fff;
        margin: 0; }
.ec-topServiceRole .ec-topServiceRole__item .content .title:after {
          font-family: jeiafont;
          font-size: 0.9em;
          content: "\e902";
          margin-left: .25em;
          transition: .5s; }
.ec-topServiceRole .ec-topServiceRole__item .content .text {
        font-size: .96rem;
        line-height: 1.75;
        color: #FAF8F3;
        margin-top: 1em; }
.ec-topServiceRole .ec-topServiceRole__item:hover {
      text-decoration: none; }
.ec-topServiceRole .ec-topServiceRole__item:hover .image img {
        transform: scale(1.1); }
.ec-topServiceRole .ec-topServiceRole__item:hover .content {
        background-color: rgba(0, 0, 0, 0.3); }
.ec-topServiceRole .ec-topServiceRole__item:hover .content .title:after {
          margin-left: .35em; }
/*
実績紹介・箔一のものづくり
*/
.ec-topPerformanceRole {
  color: #fff; }
.ec-topPerformanceRole .ec-topPerformanceRole__content {
    display: flex; }
.ec-topPerformanceRole .ec-topPerformanceRole__content .content {
      flex: 0 0 50%;
      background-color: #A9894A;
      display: flex;
      flex-flow: column; }
.ec-topPerformanceRole .ec-topPerformanceRole__content .content .content_head {
        padding: 3vw 4vw; }
.ec-topPerformanceRole .ec-topPerformanceRole__content .content .content_head .ec-secHeading {
          margin: 0; }
.ec-topPerformanceRole .ec-topPerformanceRole__content .content hr {
        margin: 0;
        border-color: rgba(255, 255, 255, 0.5); }
.ec-topPerformanceRole .ec-topPerformanceRole__content .content .content_body {
        padding: 3vw 4vw; }
.ec-topPerformanceRole .ec-topPerformanceRole__content .content .content_body .title {
          font-family: "Noto Serif JP", serif;
          font-size: 1.85rem;
          line-height: 1.2;
          margin-bottom: 3vw;
          text-align: center; }
.ec-topPerformanceRole .ec-topPerformanceRole__content .content .content_body .text {
          font-size: 1.06rem;
          line-height: 1.8; }
.ec-topPerformanceRole .ec-topPerformanceRole__content .image {
      flex: 0 0 50%;
      position: relative; }
.ec-topPerformanceRole .ec-topPerformanceRole__content .image a {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%; }
/*
新着情報
*/
/*
TOP 新着情報ブロック（ブロックタイプ：通常＝slickスライダータイプ）
*/
.ec-newsBlockRole .ec-newsBlockRole__list .slick-slider .slick-arrow {
  padding: 0;
  color: #D2C19F; }
.ec-newsBlockRole .ec-newsBlockRole__listItem a {
  display: block;
  color: inherit;
  display: block;
  overflow: hidden;
  /* HTML構造によってはIE11でちらつく事があるので保険 */ }
.ec-newsBlockRole .ec-newsBlockRole__listItem a * {
    overflow: hidden; }
.ec-newsBlockRole .ec-newsBlockRole__listItem a img {
    transition: .6s; }
.ec-newsBlockRole .ec-newsBlockRole__listItem a:hover img {
    transform: scale(1.1);
    filter: brightness(1.05); }
.ec-newsBlockRole .ec-newsBlockRole__listItem a:hover {
    text-decoration: none; }
.ec-newsBlockRole .ec-newsBlockRole__listItem .content {
  padding: .5rem 0 0; }
.ec-newsBlockRole .ec-newsBlockRole__listItem .content time {
    display: block;
    font-size: 0.93rem;
    line-height: 1.2;
    color: #A9884A;
    margin: 0 0 0.5em; }
.ec-newsBlockRole .ec-newsBlockRole__listItem .content h3 {
    font-size: 0.93rem;
    font-weight: normal;
    line-height: 1.2;
    color: #666;
    margin: 0; }
/*
TOP 新着情報ブロック（ブロックタイプ：画像無しのスライダー無し）
*/
.ec-newsBlockNoImageRole .ec-newsBlockNoImageRole__listItem {
  border-bottom: solid 1px #D0BE9B;
  font-size: 0.93rem;
  line-height: 1.4; }
.ec-newsBlockNoImageRole .ec-newsBlockNoImageRole__listItem a {
    display: block;
    color: inherit;
    padding: 1em 0; }
.ec-newsBlockNoImageRole .ec-newsBlockNoImageRole__listItem a:hover {
      text-decoration: none; }
.ec-newsBlockNoImageRole .ec-newsBlockNoImageRole__listItem .content {
    display: flex; }
.ec-newsBlockNoImageRole .ec-newsBlockNoImageRole__listItem .content time {
      flex: 0 0 auto;
      display: block;
      font-size: inherit;
      line-height: inherit;
      color: #A9894A;
      min-width: 1em;
      white-space: nowrap;
      margin-right: 1.5em; }
.ec-newsBlockNoImageRole .ec-newsBlockNoImageRole__listItem .content h3 {
      flex: 1 1 auto;
      font-size: inherit;
      font-weight: normal;
      line-height: inherit;
      color: #666;
      margin: 0; }
/*
TOP 新着情報ブロックコンテナ

箔一オフィシャルでは4つの新着情報ブロックが存在しています。それらをまとめるコンテナのスタイリングになります。
*/
.ec-newsContainerRole {
  display: flex;
  flex-flow: row wrap; }
.ec-newsContainerRole .ec-newsContainerRole__block1 .ec-secHeading,
  .ec-newsContainerRole .ec-newsContainerRole__block2 .ec-secHeading,
  .ec-newsContainerRole .ec-newsContainerRole__block3 .ec-secHeading,
  .ec-newsContainerRole .ec-newsContainerRole__block4 .ec-secHeading {
    margin: 0;
    padding: .5em 0; }
.ec-newsContainerRole .ec-newsContainerRole__block1 .ec-secHeading .ec-secHeading__maintitle,
    .ec-newsContainerRole .ec-newsContainerRole__block2 .ec-secHeading .ec-secHeading__maintitle,
    .ec-newsContainerRole .ec-newsContainerRole__block3 .ec-secHeading .ec-secHeading__maintitle,
    .ec-newsContainerRole .ec-newsContainerRole__block4 .ec-secHeading .ec-secHeading__maintitle {
      font-size: 1.46rem;
      color: #A9894A; }
.ec-newsContainerRole .ec-newsContainerRole__block1 .ec-secHeading .ec-secHeading__subtitle,
    .ec-newsContainerRole .ec-newsContainerRole__block2 .ec-secHeading .ec-secHeading__subtitle,
    .ec-newsContainerRole .ec-newsContainerRole__block3 .ec-secHeading .ec-secHeading__subtitle,
    .ec-newsContainerRole .ec-newsContainerRole__block4 .ec-secHeading .ec-secHeading__subtitle {
      display: none; }
.ec-newsContainerRole .ec-newsContainerRole__block1 .ec-blockDetailBtn--center,
  .ec-newsContainerRole .ec-newsContainerRole__block2 .ec-blockDetailBtn--center,
  .ec-newsContainerRole .ec-newsContainerRole__block3 .ec-blockDetailBtn--center,
  .ec-newsContainerRole .ec-newsContainerRole__block4 .ec-blockDetailBtn--center {
    margin-bottom: 0; }
.ec-newsContainerRole .ec-newsContainerRole__block1 .ec-newsBlockRole,
  .ec-newsContainerRole .ec-newsContainerRole__block2 .ec-newsBlockRole,
  .ec-newsContainerRole .ec-newsContainerRole__block3 .ec-newsBlockRole,
  .ec-newsContainerRole .ec-newsContainerRole__block4 .ec-newsBlockRole {
    max-width: 790px;
    margin: 0 auto; }
.ec-newsContainerRole .ec-newsContainerRole__block1 .ec-newsBlockRole .ec-newsBlockRole__list,
    .ec-newsContainerRole .ec-newsContainerRole__block2 .ec-newsBlockRole .ec-newsBlockRole__list,
    .ec-newsContainerRole .ec-newsContainerRole__block3 .ec-newsBlockRole .ec-newsBlockRole__list,
    .ec-newsContainerRole .ec-newsContainerRole__block4 .ec-newsBlockRole .ec-newsBlockRole__list {
      border: solid 1px rgba(169, 137, 74, 0.5);
      padding: 40px; }
.ec-newsContainerRole .ec-newsContainerRole__block1 .ec-newsBlockNoImageRole,
  .ec-newsContainerRole .ec-newsContainerRole__block2 .ec-newsBlockNoImageRole,
  .ec-newsContainerRole .ec-newsContainerRole__block3 .ec-newsBlockNoImageRole,
  .ec-newsContainerRole .ec-newsContainerRole__block4 .ec-newsBlockNoImageRole {
    max-width: 790px;
    margin: 0 auto; }
.ec-newsContainerRole .ec-newsContainerRole__block1 {
    flex: 0 0 100%;
    min-height: 0;
    min-width: 0;
    background-color: #F6F3EC; }
.ec-newsContainerRole .ec-newsContainerRole__block2 {
    flex: 0 0 100%;
    min-height: 0;
    min-width: 0;
    background-color: #FBF9F4; }
.ec-newsContainerRole .ec-newsContainerRole__block3 {
    flex: 0 0 100%;
    background-color: #F6F3EC; }
.ec-newsContainerRole .ec-newsContainerRole__block4 {
    flex: 0 0 100%;
    background-color: #FBF9F4; }
/*
ニュース記事一覧ページ
*/
/*
ニュース記事カテゴリ（未使用）
*/
/*
ニュース記事一覧
*/
.ec-newsListRole .ec-newsListRole__year {
  margin: 0 0 1.5rem;
  position: relative;
  display: inline-block; }
.ec-newsListRole .ec-newsListRole__year select {
    margin: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: none;
    height: 2rem;
    cursor: pointer;
    opacity: 0;
    padding-right: 4em; }
.ec-newsListRole .ec-newsListRole__year label {
    display: block;
    font-family: "Noto Serif JP", serif;
    font-size: 1.3rem;
    color: #A9884A;
    line-height: 2rem;
    height: 2rem;
    white-space: nowrap;
    pointer-events: none;
    position: absolute;
    top: 0;
    left: 0; }
.ec-newsListRole .ec-newsListRole__year label span {
      font-size: 2rem; }
.ec-newsListRole .ec-newsListRole__year label:after {
      display: inline-block;
      font-family: jeiafont;
      content: "\e902";
      color: #A9884A;
      font-size: 1em;
      transform: rotate(90deg);
      margin-left: .5em; }
.ec-newsListRole .ec-newsListRole__item {
  padding: 1em 0;
  border-top: solid 1px #ddd; }
.ec-newsListRole .ec-newsListRole__item a {
    display: block;
    overflow: hidden;
    /* HTML構造によってはIE11でちらつく事があるので保険 */
    display: flex;
    color: inherit; }
.ec-newsListRole .ec-newsListRole__item a * {
      overflow: hidden; }
.ec-newsListRole .ec-newsListRole__item a img {
      transition: .6s; }
.ec-newsListRole .ec-newsListRole__item a:hover img {
      transform: scale(1.1);
      filter: brightness(1.05); }
.ec-newsListRole .ec-newsListRole__item a:hover {
      text-decoration: none; }
.ec-newsListRole .ec-newsListRole__item .image {
    flex: 0 0 auto;
    margin-right: 1rem; }
.ec-newsListRole .ec-newsListRole__item .image img {
      border: solid 1px #ddd; }
.ec-newsListRole .ec-newsListRole__item .content {
    flex: 1 1 auto; }
.ec-newsListRole .ec-newsListRole__item .content time {
      font-size: .96rem;
      color: #A9884A; }
.ec-newsListRole .ec-newsListRole__item .content .tag {
      margin: .25em 0; }
.ec-newsListRole .ec-newsListRole__item .content .tag span {
        display: inline-block;
        font-size: .96rem;
        line-height: 1.2;
        padding: .3em 1em;
        border-radius: 3px; }
.ec-newsListRole .ec-newsListRole__item .content .title {
      font-family: "Noto Serif JP", serif;
      font-size: 1.2rem;
      line-height: 1.6;
      margin: .25em 0 0; }
.ec-newsListRole .ec-newsListRole__item .content .comment {
      font-family: "Noto Serif JP", serif;
      font-size: 1rem;
      line-height: 1.6;
      margin: .25em 0 0; }
.ec-newsListRole .ec-newsListRole__item.noImage .image {
    display: none; }
.ec-newsListRole .notFound {
  margin: 0;
  border-top: solid 1px #ddd;
  padding: 1em 0; }
/*
新着情報詳細ページ

新着情報詳細ページ用のスタイリングになります。
*/
.ec-newsDetailRole {
  max-width: 1085px; }
.ec-newsDetailRole .ec-newsDetailRole__head time {
    font-size: .96rem;
    color: #A9884A; }
.ec-newsDetailRole .ec-newsDetailRole__head .tag {
    margin: .25em 0; }
.ec-newsDetailRole .ec-newsDetailRole__head .tag span {
      display: inline-block;
      font-size: .96rem;
      line-height: 1.2;
      padding: .3em 1em;
      border-radius: 3px; }
.ec-newsDetailRole .ec-newsDetailRole__head .title {
    font-family: "Noto Serif JP", serif;
    font-size: 1.2rem;
    margin: .5em 0 1em; }
.ec-newsDetailRole .ec-newsDetailRole__head .comment {
    font-size: .96rem;
    line-height: 1.8;
    margin: 1em 0; }
.ec-newsDetailRole .ec-newsDetailRole__print {
    text-align: center;
    margin-top: 1em; }
.ec-newsDetailRole .ec-newsDetailRole__print a {
      display: inline-block;
      font-size: 16px;
      padding: 0 1em;
      height: 50px;
      line-height: 50px;
      text-align: center;
      width: 300px;
      border: solid 1px #aaa;
      border-radius: 3px;
      color: inherit;
      transition: .3s; }
.ec-newsDetailRole .ec-newsDetailRole__print a:hover {
        text-decoration: none;
        background-color: #f9f7f2; }
.ec-newsDetailRole .ec-newsDetailRole__print a i {
        font-size: 1.5em;
        margin-right: .5em; }
.ec-newsDetailRole .ec-newsDetailRole__share {
    margin-top: 15px; }
.ec-newsDetailRole .ec-newsDetailRole__share ul {
      margin: 0;
      padding: 0;
      list-style-type: none;
      margin: 0 auto;
      display: flex;
      justify-content: center; }
.ec-newsDetailRole .ec-newsDetailRole__share ul li {
        width: 50%;
        max-width: 143px;
        margin: 0 7px; }
.ec-newsDetailRole .ec-newsDetailRole__share .sns_btn {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 50px;
      font-size: 18px;
      font-weight: 500;
      background-color: #999;
      color: #fff;
      transition: .3s; }
.ec-newsDetailRole .ec-newsDetailRole__share .sns_btn:hover {
        text-decoration: none;
        filter: brightness(1.2); }
.ec-newsDetailRole .ec-newsDetailRole__share .sns_btn i {
        background-color: #fff;
        color: #999;
        border-radius: 50%;
        font-size: 15px;
        width: 1.5em;
        height: 1.5em;
        line-height: 1.5em;
        text-align: center;
        margin-right: .5em; }
.ec-newsDetailRole .ec-newsDetailRole__share .sns_btn.fb {
        background-color: #3B5999; }
.ec-newsDetailRole .ec-newsDetailRole__share .sns_btn.fb i {
          color: #3B5999; }
.ec-newsDetailRole .ec-newsDetailRole__share .sns_btn.tw {
        background-color: #000; }
.ec-newsDetailRole .ec-newsDetailRole__share .sns_btn.tw i {
          color: #000; }
/*
ニュース詳細WYSIWYGテンプレート

ニュース詳細用テンプレートはまず記事スタイル「.ec-article」（_0.3.article.scss）が適用されている中で、テンプレート用スタイリングをまとめます。
*/
.news_template {
  margin-top: 3rem; }
.news_template h2, .news_template h3, .news_template h4, .news_template h5, .news_template h6 {
    font-size: 1.06rem;
    font-weight: 700; }
.news_template.template_B h2, .news_template.template_C h2 {
    margin-top: 0; }
.news_template.template_D .content p {
    margin: 1em 0; }
.news_template.template_D .pic {
    margin-top: 1em; }
.news_template.template_F {
    margin-top: 0; }
/*
ページャ

商品一覧やマイページコンテンツで使われるページ送りコンポーネントを定義します。

使用箇所：
* Product/list.twig
* Mypage/favorite.twig
* Mypage/index.twig

※ページャ本体は「pager.twig」ブロックとなっており各ページからincludeされています。

Markup:
../styleguide/tmpl/13.3.html

Styleguide 13.3
*/
.ec-pagerRole {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px; }
/*
お問い合わせ

お問い合わせ に関する Project コンポーネントを定義します。

使用箇所：
* Contact/index.twig

Markup:
../styleguide/tmpl/19.2.html

Styleguide 19.2
*/
/*
404ページ

404 エラー画面で使用するページコンポーネントです。
403ページでもこのスタイルを転用しています。
*/
.ec-404Role {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px;
  padding-top: 20vw;
  padding-bottom: 10vw;
  text-align: center; }
.ec-404Role .ec-404Role__title {
    font-family: "Noto Serif JP", serif;
    font-size: 2.8rem;
    line-height: 1; }
.ec-404Role .ec-404Role__subtitle {
    font-size: 1.2rem;
    color: #818181;
    margin: .5em 0; }
.ec-404Role .ec-404Role__description {
    font-size: 1.06rem;
    color: #333;
    line-height: 1.72;
    max-width: 600px;
    margin: 2em auto; }
.ec-404Role .ec-404Role__topBtn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 580px;
    height: 50px;
    background-color: #D61518;
    color: #fff;
    font-size: 1.2rem;
    margin: 1em auto;
    position: relative;
    transition: .3s; }
.ec-404Role .ec-404Role__topBtn:after {
      display: block;
      font-family: jeiafont;
      content: "\e91d";
      font-size: 1.3em;
      position: absolute;
      top: 50%;
      right: 0;
      transform: translate(-50%, -50%); }
.ec-404Role .ec-404Role__topBtn:hover {
      text-decoration: none;
      filter: brightness(1.1); }
.ec-404Role .ec-404Role__logo {
    width: 100px;
    margin: 2em auto 0; }
/*
〇〇は存在しません

商品一覧ページにて、存在しないカテゴリ、商品検索で該当商品0の場合の表示スタイリングです。
使用箇所は商品一覧ページのみですが、拡張的にFAQや他のコンテンツで使用する場面も出てくる可能性もありますので、
こちらにてスタイリングを記述しています。
*/
.ec-notFoundRole {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px; }
.ec-notFoundRole p {
    text-align: center;
    margin: 3em 0; }
/*
ヘルプ

各ヘルプページに関する Project コンポーネントを定義します。

該当ページ：
* Help/about.twig
* Help/agreement.twig
* Help/guide.twig
* Help/privacy.twig
* Help/tradelaw.twig

Styleguide 23.1
*/
.ec-helpRole {
  /* section */
  /* h3タイトル */
  /* h4タイトル */
  /* 段落 */
  /* 画像 */
  /* table */
  /* 枠囲み */ }
.ec-helpRole .ec-helpRole__pageTitle {
    font-size: 1.33rem;
    font-weight: 700;
    margin: 0 0 1em; }
.ec-helpRole h3 {
    /*
    font-size: 1.066em;
    font-weight: normal;
    margin: 2em 0 1em;
    border-left: solid 5px $clrBorderColor;
    border-bottom: solid 1px $clrBorderColor;
    padding: .5em .5em;
    */
    font-size: 1.33rem;
    font-weight: 700;
    margin: 0 0 1em; }
.ec-helpRole h4 {
    font-size: 1em;
    font-weight: 500;
    margin: 2em 0 1em; }
.ec-helpRole h4:before {
      content: "【 "; }
.ec-helpRole h4:after {
      content: " 】"; }
.ec-helpRole p {
    font-size: 1rem;
    line-height: 1.75; }
.ec-helpRole .fig img {
    width: auto;
    max-width: 100%;
    height: auto; }
.ec-helpRole table {
    width: 100%;
    margin-bottom: 1em; }
.ec-helpRole table th {
      border: solid 1px #ccc;
      padding: 1em; }
.ec-helpRole table td {
      border: solid 1px #ccc;
      padding: 1em;
      /* 価格表示セル */ }
.ec-helpRole table td.priceCell {
        text-align: right;
        white-space: nowrap; }
.ec-helpRole .ec-frame {
    border: solid 1px #ccc;
    padding: 1em;
    margin: 1em 0;
    font-size: inherit;
    line-height: 1.75; }
/*
規約条文

規約条文の汎用スタイルです。

該当ページ：
* Help/agreement.twig
* Help/privacy.twig

Styleguide 23.2
*/
.ec-provision .ec-provision__heading {
  font-size: 1rem;
  margin-bottom: 3em; }
.ec-provision dl {
  font-size: 1rem;
  margin-bottom: 1em; }
.ec-provision dl dt {
    font-weight: 700;
    margin-bottom: 0.5em; }
.ec-provision dl dd {
    font-size: 1em;
    font-weight: normal;
    line-height: 1.8;
    margin: 0; }
.ec-provision > dl {
  margin-top: 3em; }
/*
手順説明

説明画像と説明テキストをセットにした手順説明のスタイリングになります。
*/
.ec-helpProcedureRole {
  background: #f0f0f0; }
.ec-helpProcedureRole:nth-child(n+2) {
    padding-top: 0;
    overflow: hidden; }
.ec-helpProcedureRole h3, .ec-helpProcedureRole h4 {
    margin: 1em 0; }
.ec-helpProcedureRole .ec-helpProcedureRole__content {
    margin: 1em 0; }
.ec-helpProcedureRole .ec-helpProcedureRole__fig {
    margin: 1em 0; }
.ec-helpProcedureRole .ec-helpProcedureRole__fig img {
      width: 100%;
      height: auto;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); }
/*
利用ガイドINDEXページ
*/
.ec-helpIndexRole .ec-helpIndexRole__item h3 {
  border: none;
  background-color: #A9894A;
  color: #fff;
  font-size: 1rem;
  font-weight: 400;
  padding: 0.75em 1em;
  margin: 0; }
.ec-helpIndexRole .ec-helpIndexRole__item ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
  font-size: 1rem; }
.ec-helpIndexRole .ec-helpIndexRole__item ul li a {
    display: block;
    color: inherit;
    padding: .5em .5em;
    transition: .2s; }
.ec-helpIndexRole .ec-helpIndexRole__item ul li a:before {
      font-family: "jeiafont";
      content: "\e91a";
      display: inline-block;
      vertical-align: middle;
      margin-right: 7px;
      font-size: 100%;
      color: #aaa; }
.ec-helpIndexRole .ec-helpIndexRole__item ul li a:hover {
      text-decoration: none;
      background-color: #f0f1f2; }
/*
当サイトについて
*/
.ec-helpMapRole .ec-helpMapRole__map {
  width: 100%;
  padding-top: 460px;
  position: relative; }
.ec-helpMapRole .ec-helpMapRole__map iframe {
    width: 100% !important;
    height: 100% !important;
    position: absolute;
    top: 0;
    left: 0; }
/*
サイトマップ
*/
.ec-sitemapRole ul {
  margin: 0;
  padding: 0;
  list-style-type: none; }
.ec-sitemapRole ul a:visited {
    color: purple; }
.ec-sitemapRole ul a[target=_blank]:after {
    font-family: jeiafont;
    content: "\e934";
    margin-left: .75em;
    color: #666;
    font-size: .9em; }
.ec-sitemapRole ul a p {
    margin: 0; }
.ec-sitemapRole .ec-sitemapRole__parent {
  font-size: 1.06rem;
  border-bottom: solid 1px #D6D6D6; }
.ec-sitemapRole .ec-sitemapRole__parent > li {
    padding: 1em 0; }
.ec-sitemapRole .ec-sitemapRole__child {
  font-size: 1.06rem;
  margin-left: 5rem; }
.ec-sitemapRole .ec-sitemapRole__child > li {
    padding: .5em 0; }
.ec-sitemapRole .ec-sitemapRole__child > li:before {
      content: "ー"; }
.ec-sitemapRole .ec-sitemapRole__child ul {
    font-size: 0.96rem;
    margin-left: 1rem;
    margin-top: .25em; }
.ec-sitemapRole .ec-sitemapRole__child ul li {
      padding: .25em 0; }
.ec-sitemapRole .ec-sitemapRole__child ul li:before {
        content: "・"; }
/*
FAQよくある質問

構成パーツ（コンポーネント）
* FAQ検索ボックス
* FAQカテゴリ一覧
* FAQ質問一覧
* FAQ詳細
* FAQ質問文・回答文アイテム

ページコンテナは一覧ページ・詳細ページとも「.ec-faqRole」（プロジェクト）を用います。
*/
/*
FAQ検索ボックス

FAQをキーワード検索するボックスのコンポーネントスタイリングです。
*/
.ec-faqSearch {
  background-color: #f4f4f5;
  padding: 15px;
  font-size: 1rem; }
.ec-faqSearch .ec-faqSearch__input {
    width: 100%;
    position: relative; }
.ec-faqSearch .ec-faqSearch__input input[type=text] {
      width: 100%;
      height: 100%;
      padding-left: 1em;
      padding-right: 7em; }
.ec-faqSearch .ec-faqSearch__input button {
      position: absolute;
      right: 0;
      top: 0;
      width: 6em;
      height: 100%;
      background-color: #000;
      color: #fff;
      border: none;
      text-align: center;
      letter-spacing: 0.2em;
      cursor: pointer;
      transition: background-color .3s; }
.ec-faqSearch .ec-faqSearch__input button i {
        margin-right: 5px; }
/*
FAQカテゴリ一覧

FAQカテゴリの一覧表示のコンポーネントスタイリングです。
*/
.ec-faqCategory {
  font-size: 0.933rem; }
.ec-faqCategory ul {
    padding: 0;
    margin-left: -5px;
    margin-top: -5px; }
.ec-faqCategory ul li {
      display: inline-block;
      margin: 5px; }
.ec-faqCategory ul li a {
        display: block;
        border: solid 1px #A9894A;
        border-radius: 4px;
        line-height: 1;
        padding: .75em;
        color: #A9894A;
        transition: .3s; }
.ec-faqCategory ul li a:hover {
          text-decoration: none;
          background-color: #A9894A;
          color: #fff; }
/*
FAQ質問一覧

FAQカテゴリごと、またはFAQ検索結果の質問内容一覧のコンポーネントスタイリングです。
*/
.ec-faqList {
  font-size: .96rem; }
.ec-faqList ul {
    margin: 0;
    padding: 0;
    list-style-type: none; }
.ec-faqList ul li {
      margin: 0;
      padding-top: 1em;
      padding-bottom: 1em; }
.ec-faqList ul li a {
        color: inherit; }
/*
FAQ詳細

FAQ詳細ページにおける、Q＆Aのコンポーネントスタイリングです。
*/
.ec-faqDetail {
  font-size: .96rem; }
.ec-faqDetail dl dt, .ec-faqDetail dl dd {
    margin: 0;
    padding-top: 1em;
    padding-bottom: 1em; }
.ec-faqDetail dl dt h1 {
    margin: 0; }
/*
FAQ質問文・回答文アイテム

質問文章・回答文章のコンポーネントスタイリングになります。冒頭に「Q・A」アイコンが付きます。
*/
.ec-faqItem {
  line-height: 1.5;
  position: relative;
  padding-left: 2.5em;
  /*アイコンとテキストとのバランス*/ }
.ec-faqItem h1 {
    font-size: inherit;
    font-weight: 400;
    line-height: inherit; }
.ec-faqItem:before {
    content: "";
    font-family: Palatino, Book Antiqua, Georgia, serif;
    display: block;
    font-size: 1.2em;
    width: 1.5em;
    height: 1.5em;
    line-height: 1.5em;
    text-align: center;
    border-radius: 3px;
    box-sizing: border-box;
    background-color: #666;
    color: #fff;
    position: absolute;
    top: 0;
    left: 0;
    margin-top: 0.85em;
    transform: scale(0.85); }
.ec-faqItem.question:before {
    content: "Q";
    background-color: #A9894A; }
.ec-faqItem.answer {
    line-height: 1.9; }
.ec-faqItem.answer:before {
      content: "A";
      background-color: #A9894A;
      margin-top: 1em; }
/*
FAQページコンテナ

FAQページに関するプロジェクトのスタイリングになります。

FAQ一覧・詳細ページとも、「.ec-faqRole」で囲みます。
各セクションは「& &__section」で囲み、スタイルを統一させます。
*/
.ec-faqRole .ec-heading a {
  color: inherit; }
.ec-faqRole .ec-faqRole__section {
  border-top: solid 1px #ddd; }
.ec-faqRole .ec-faqRole__section.noBorder {
    border-top: none;
    padding-top: 0; }
.ec-faqRole .ec-heading {
  font-size: 1.06rem; }
/*
ブログページ

* ブログ一覧ページ
* ブログ詳細ページ
* ブログテンプレート
* [ブロック]ブログ最新記事 TOPページ配置用
*/
/*
ブログ一覧ページ

ブログ一覧のプロジェクトスタイリングになります。
*/
.ec-blogListRole .ec-blogListRole__listItem {
  font-size: 1rem; }
.ec-blogListRole .ec-blogListRole__listItem .image a {
    display: block;
    display: block;
    overflow: hidden;
    /* HTML構造によってはIE11でちらつく事があるので保険 */ }
.ec-blogListRole .ec-blogListRole__listItem .image a * {
      overflow: hidden; }
.ec-blogListRole .ec-blogListRole__listItem .image a img {
      transition: .6s; }
.ec-blogListRole .ec-blogListRole__listItem .image a:hover img {
      transform: scale(1.1);
      filter: brightness(1.05); }
.ec-blogListRole .ec-blogListRole__listItem .content time {
    display: block;
    font-size: 0.96em;
    color: #A9884A;
    line-height: 1.2;
    margin: .5em 0; }
.ec-blogListRole .ec-blogListRole__listItem .content .tag {
    margin: .75rem 0; }
.ec-blogListRole .ec-blogListRole__listItem .content .tag span {
      display: inline-block;
      font-size: .96rem;
      line-height: 1.2;
      padding: .3em 1em;
      border-radius: 3px; }
.ec-blogListRole .ec-blogListRole__listItem .content h3 {
    font-size: 1.2em;
    font-weight: normal;
    line-height: 1.2;
    margin: .5em 0; }
.ec-blogListRole .ec-blogListRole__listItem .content .comment {
    font-size: 0.96em;
    color: #000;
    line-height: 1.5;
    text-align: justify;
    margin-top: 1em; }
/*
ブログ詳細ページ
*/
.ec-blogDetailRole .ec-blogDetailRole__head {
  line-height: 1.2; }
.ec-blogDetailRole .ec-blogDetailRole__head time {
    display: block;
    font-size: 0.933rem;
    color: #A9894A;
    margin: 0; }
.ec-blogDetailRole .ec-blogDetailRole__head h1 {
    font-family: "Noto Serif JP", serif;
    font-size: 1.7rem;
    font-weight: 500;
    margin: 0.25em 0 0.75em; }
.ec-blogDetailRole .ec-blogDetailRole__head .image img {
    width: 100%;
    height: auto; }
.ec-blogDetailRole .ec-blogDetailRole__head .tag {
    margin: .75rem 0; }
.ec-blogDetailRole .ec-blogDetailRole__head .tag span {
      display: inline-block;
      font-size: .96rem;
      line-height: 1.2;
      padding: .3em 1em;
      border-radius: 3px; }
.ec-blogDetailRole .ec-blogDetailRole__share {
  font-size: 12px;
  color: #777; }
.ec-blogDetailRole .ec-blogDetailRole__share ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
    text-align: center; }
.ec-blogDetailRole .ec-blogDetailRole__share ul li {
      display: inline-block; }
.ec-blogDetailRole .ec-blogDetailRole__share ul li a {
        display: flex;
        justify-content: center;
        align-items: center;
        min-width: 190px;
        height: 35px;
        padding: 0 1em;
        border: solid 1px #ddd;
        color: inherit;
        cursor: pointer;
        transition: .3s; }
.ec-blogDetailRole .ec-blogDetailRole__share ul li a i {
          font-size: 1.3em;
          margin-right: 15px; }
.ec-blogDetailRole .ec-blogDetailRole__share ul li a:hover {
          text-decoration: none; }
.ec-blogDetailRole .ec-blogDetailRole__share ul li a.fb:hover {
          background-color: #3B5999;
          border-color: #3B5999;
          color: #fff; }
.ec-blogDetailRole .ec-blogDetailRole__share ul li a.tw:hover {
          background-color: #000;
          border-color: #000;
          color: #fff; }
.ec-blogDetailRole .ec-blogDetailRole__share ul li a.pi:hover {
          background-color: #cb2027;
          border-color: #cb2027;
          color: #fff; }
.ec-blogDetailRole .ec-blogDetailRole__share ul li:nth-child(n+2) {
        margin-left: 20px; }
.ec-blogDetailRole .ec-blogDetailRole__pager {
  font-family: "Times New Roman";
  font-size: 1rem;
  color: #7A7777;
  background-color: #F9F9F9; }
.ec-blogDetailRole .ec-blogDetailRole__pager ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
    display: flex;
    justify-content: space-between; }
.ec-blogDetailRole .ec-blogDetailRole__pager ul li {
      flex: 1 1 30%; }
.ec-blogDetailRole .ec-blogDetailRole__pager ul li a {
        display: flex;
        justify-content: center;
        align-items: center;
        height: 40px;
        padding: 0 1em;
        color: inherit;
        transition: .3s; }
.ec-blogDetailRole .ec-blogDetailRole__pager ul li a:hover {
          text-decoration: none;
          background-color: #A9894A;
          color: #fff; }
.ec-blogDetailRole .ec-blogDetailRole__pager ul li.prev a {
        justify-content: flex-start; }
.ec-blogDetailRole .ec-blogDetailRole__pager ul li.next a {
        justify-content: flex-end; }
/*
ブログ詳細WYSIWYGテンプレート

ブログ詳細用テンプレートはまず記事スタイル「.ec-article」（_0.3.article.scss）が適用されている中で、テンプレート用スタイリングをまとめます。
*/
.blog_template {
  margin-top: 3rem; }
.blog_template h2, .blog_template h3, .blog_template h4, .blog_template h5, .blog_template h6 {
    font-size: 1.06rem;
    font-weight: 700; }
.blog_template.template_B h2, .blog_template.template_C h2 {
    margin-top: 0; }
.blog_template.template_D h2 {
    margin-top: 0; }
.blog_template.template_D .content p {
    margin: 1em 0; }
.blog_template.template_D .pic {
    margin-top: 1em; }
.blog_template.template_F {
    margin-top: 0; }
/*
[ブロック]ブログ最新記事 TOPページ配置用
*/
.ec-blogNewsPostTop {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px; }
.ec-blogNewsPostTop .ec-blogNewsPostTop__listItem a {
    display: block;
    display: block;
    overflow: hidden;
    /* HTML構造によってはIE11でちらつく事があるので保険 */ }
.ec-blogNewsPostTop .ec-blogNewsPostTop__listItem a * {
      overflow: hidden; }
.ec-blogNewsPostTop .ec-blogNewsPostTop__listItem a img {
      transition: .6s; }
.ec-blogNewsPostTop .ec-blogNewsPostTop__listItem a:hover img {
      transform: scale(1.1);
      filter: brightness(1.05); }
.ec-blogNewsPostTop .ec-blogNewsPostTop__listItem a:hover {
      text-decoration: none; }
.ec-blogNewsPostTop .ec-blogNewsPostTop__listItem .content {
    padding: 1rem 1rem 0; }
.ec-blogNewsPostTop .ec-blogNewsPostTop__listItem .content time {
      display: block;
      font-size: 0.8em;
      line-height: 1.2;
      color: #A9884A;
      margin: 0 0 0.25em; }
.ec-blogNewsPostTop .ec-blogNewsPostTop__listItem .content h3 {
      font-size: 1em;
      font-weight: normal;
      line-height: 1.2;
      color: #333;
      margin: 0; }
.ec-blogNewsPostTop .ec-blogNewsPostTop__listItem .content .list_comment {
      font-size: 0.8em;
      line-height: 1.5;
      color: #666;
      text-align: justify;
      margin-top: 1em; }
/*
ショップインフォメーション

会員登録完了や問い合わせ完了ページ等の下部に表示される店舗情報のスタイリングです。
*/
.ec-shopInformationRole {
  /* ↑コンテナ化させない方向でいきます。完了画面では最後に「HOMEに戻る」ボタンがありこれはプログレスボタンなのでメインコンテナの中に収めておきたいわけですが、
   * デザイン的に、この店舗情報欄は「HOME」ボタンの上に配置されているので、その意味で店舗情報枠もメインコンテナの中に含めざるを得ないという事になります。
   * 店舗情報もプログレスボタン部も全てコンテナ化させればメインコンテナとは分離して記述できますが、プログレスボタン部はショッピングフローやらあちこちに使用され、
   * 機能等によって柔軟に挿入されるべきパーツかなとも思いますので、そういう部分も考慮してコンテナ化させないという方向性でいきたいと思います。
   */ }
.ec-shopInformationRole .ec-shopInformationRole__inner {
    border-top: solid 1px #d6d6d6; }
.ec-shopInformationRole .shop_name {
    font-size: 1.2rem;
    font-weight: 500;
    margin: 1.5em 0 0.5em; }
.ec-shopInformationRole dl {
    padding: .25em 0;
    margin: 0; }
.ec-shopInformationRole dl dt,
    .ec-shopInformationRole dl dd {
      display: inline-block;
      vertical-align: top; }
.ec-shopInformationRole dl dt:after {
      content: "：";
      font-weight: 400; }
.ec-shopInformationRole dl dt i {
      font-size: 1.2em;
      margin-right: 3px; }
.ec-shopInformationRole dl + p {
      display: inline; }
/*
block
MORE INFORMATION
*/
.ec-moreInformationRole {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px; }
.ec-moreInformationRole .ec-secHeading .ec-secHeading__maintitle {
    color: #A9874A; }
.ec-moreInformationRole .ec-secHeading .ec-secHeading__subtitle {
    color: #A9874A;
    font-family: "Noto Sans JP", sans-serif; }
.ec-moreInformationRole .ec-moreInformationRole__list {
    display: flex;
    flex-flow: row wrap;
    max-width: 1320px; }
.ec-moreInformationRole .ec-moreInformationRole__item {
    flex: 0 0 auto;
    border: solid 1px rgba(169, 137, 74, 0.7); }
.ec-moreInformationRole .ec-moreInformationRole__item a {
      display: flex;
      height: 100%;
      padding: 10px;
      color: inherit;
      transition: .3s; }
.ec-moreInformationRole .ec-moreInformationRole__item a:hover {
        text-decoration: none;
        background-color: #f9f7f2; }
.ec-moreInformationRole .ec-moreInformationRole__item a:hover .content .title:after {
          margin-left: .5em; }
.ec-moreInformationRole .ec-moreInformationRole__item .image {
      order: 2;
      flex: 0 0 auto;
      width: 100px; }
.ec-moreInformationRole .ec-moreInformationRole__item .content {
      order: 1;
      flex: 1 1 auto;
      padding: .5em;
      padding-right: 1em; }
.ec-moreInformationRole .ec-moreInformationRole__item .content .title {
        font-size: 1.2rem;
        line-height: 1.2;
        color: #A9894A;
        margin: 0; }
.ec-moreInformationRole .ec-moreInformationRole__item .content .title:after {
          font-family: jeiafont;
          content: "\e91d";
          font-size: 1.2em;
          margin-left: .25em;
          vertical-align: middle;
          transition: .3s; }
.ec-moreInformationRole .ec-moreInformationRole__item .content .text {
        font-size: 0.9rem;
        line-height: 1.6;
        text-align: justify;
        margin-top: 1em; }
/*
事業内容index
*/
.ec-pageServiceList .ec-pageServiceList__item {
  display: block;
  position: relative;
  overflow: hidden; }
.ec-pageServiceList .ec-pageServiceList__item .image img {
    transition: .8s; }
.ec-pageServiceList .ec-pageServiceList__item .content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 1em;
    display: flex;
    flex-flow: column;
    justify-content: flex-end;
    background: linear-gradient(0deg, #000 0%, transparent 30%);
    transition: .8s; }
.ec-pageServiceList .ec-pageServiceList__item .content .title {
      font-family: "Noto Serif JP", serif;
      font-size: 1.28rem;
      line-height: 1.3;
      color: #fff;
      margin: 0; }
.ec-pageServiceList .ec-pageServiceList__item .content .title:after {
        font-family: jeiafont;
        font-size: 0.9em;
        content: "\e902";
        margin-left: .25em;
        transition: .5s; }
.ec-pageServiceList .ec-pageServiceList__item .content .text {
      font-size: .96rem;
      line-height: 1.75;
      color: #FAF8F3;
      margin-top: 1em; }
.ec-pageServiceList .ec-pageServiceList__item:hover {
    text-decoration: none; }
.ec-pageServiceList .ec-pageServiceList__item:hover .image img {
      transform: scale(1.1); }
.ec-pageServiceList .ec-pageServiceList__item:hover .content {
      background-color: rgba(0, 0, 0, 0.3); }
.ec-pageServiceList .ec-pageServiceList__item:hover .content .title:after {
        margin-left: .35em; }
/*
各事業インデックスページ
*/
/*
各事業インデックスコンテンツ１
*/
.ec-serviceIndexContent1 .ec-serviceIndexContent1__item .content .title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.46rem;
  font-weight: 400;
  color: #fff;
  margin: 0 0 1em; }
.ec-serviceIndexContent1 .ec-serviceIndexContent1__item .content .description {
  font-family: "Noto Serif JP", serif;
  font-size: 1.06rem;
  color: #fff;
  line-height: 1.7; }
.ec-serviceIndexContent1 .ec-serviceIndexContent1__item .content .ec-blockDetailBtn--center {
  margin-bottom: 0; }
.ec-serviceIndexContent1 .ec-serviceIndexContent1__item .bgBox {
  width: 100%;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover; }
/*
各事業インデックスコンテンツ2
*/
.ec-serviceIndexContent2 .ec-serviceIndexContent2__wrap {
  display: flex; }
.ec-serviceIndexContent2 .ec-serviceIndexContent2__image {
  flex: 1 1 auto;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover; }
.ec-serviceIndexContent2 .ec-serviceIndexContent2__content {
  flex: 0 0 auto;
  background-color: #000;
  color: #fff; }
.ec-serviceIndexContent2 .ec-serviceIndexContent2__content .title {
    font-family: "Noto Serif JP", serif;
    font-weight: 400;
    line-height: 1.33;
    margin: 0;
    margin-left: 1em;
    color: inherit;
    text-align: justify; }
.ec-serviceIndexContent2 .ec-serviceIndexContent2__content .text {
    font-family: "Noto Serif JP", serif;
    font-size: 1rem;
    line-height: 1.7; }
/*
各事業インデックスコンテンツ3 「私たちの活動（トピックス）」枠
*/
/*
各事業インデックスコンテンツ3 「私たちの活動（トピックス）」枠
私たちの活動 スタイリング
*/
.ec-serviceOurActivity {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px;
  max-width: 1400px; }
.ec-serviceOurActivity .ec-serviceOurActivity__item .image img {
    width: 100% !important;
    height: auto !important; }
.ec-serviceOurActivity .ec-serviceOurActivity__item .content time {
    display: block;
    font-family: "Noto Serif JP", serif;
    font-size: .8rem;
    color: #B8A156;
    margin: 0 0 1em; }
.ec-serviceOurActivity .ec-serviceOurActivity__item .content h3 {
    font-size: 1.2rem;
    line-height: 1.2;
    margin: 0; }
.ec-serviceOurActivity .ec-serviceOurActivity__item .content p {
    font-size: .93rem;
    line-height: 1.6;
    margin: 1em 0 0; }
/*
各事業インデックスコンテンツ3 「私たちの活動」枠
インスタグラム最新記事表示
*/
.ec-serviceInstagramRole {
  /* ul要素 */ }
.ec-serviceInstagramRole .ec-serviceInstagramRole__list {
    /* li要素（記事単体） */ }
.ec-serviceInstagramRole .ec-serviceInstagramRole__list li {
      position: relative;
      /* 画像メディア */
      /* 動画メディア */
      /* ポップアップ */
      /* hoverでポップアップ表示 */ }
.ec-serviceInstagramRole .ec-serviceInstagramRole__list li a {
        display: block; }
.ec-serviceInstagramRole .ec-serviceInstagramRole__list li .pic {
        overflow: hidden; }
.ec-serviceInstagramRole .ec-serviceInstagramRole__list li .pic .image {
          width: 100%;
          height: 0;
          padding-top: 100%;
          background-repeat: no-repeat;
          background-position: center center;
          background-size: cover;
          transition: .6s; }
.ec-serviceInstagramRole .ec-serviceInstagramRole__list li .pic:hover .image {
          transform: scale(1.1);
          filter: brightness(1.05); }
.ec-serviceInstagramRole .ec-serviceInstagramRole__list li video {
        width: 100%;
        height: auto; }
.ec-serviceInstagramRole .ec-serviceInstagramRole__list li .popup {
        position: absolute;
        bottom: calc(100% + 7px);
        left: 50%;
        width: 100%;
        font-size: 13px;
        box-sizing: border-box;
        padding: 1em;
        background-color: #000;
        color: #fff;
        font-size: 13px;
        border-radius: 3px;
        z-index: 9;
        filter: drop-shadow(0 5px 5px rgba(0, 0, 0, 0.3));
        pointer-events: none;
        visibility: hidden;
        opacity: 0;
        transform: translate3d(-50%, 20px, 0);
        transition: .4s;
        /* 記事コメント（キャプション） */
        /* いいね件数 */
        /* ポップアップくちばし */ }
.ec-serviceInstagramRole .ec-serviceInstagramRole__list li .popup .likeCount {
          font-size: 0.9em;
          opacity: 0.75;
          text-align: right;
          margin-top: .5em; }
.ec-serviceInstagramRole .ec-serviceInstagramRole__list li .popup:after {
          content: "";
          display: block;
          width: 0;
          height: 0;
          border: solid 7px transparent;
          border-top-color: #000;
          position: absolute;
          top: 100%;
          left: calc(50% - 7px); }
.ec-serviceInstagramRole .ec-serviceInstagramRole__list li:hover .popup {
        visibility: visible;
        opacity: 1;
        transform: translate3d(-50%, 0, 0); }
/*
各事業インデックスコンテンツ4 「私たちの実績」枠
*/
/*
各事業インデックスコンテンツ4 「私たちの実績」枠
私たちの実績 スタイリング
*/
.ec-serviceOurAchievement .ec-serviceOurAchievement__item {
  display: block;
  position: relative;
  overflow: hidden; }
.ec-serviceOurAchievement .ec-serviceOurAchievement__item .image img {
    transition: .8s; }
.ec-serviceOurAchievement .ec-serviceOurAchievement__item .content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 1em;
    display: flex;
    flex-flow: column;
    justify-content: flex-end;
    background: linear-gradient(0deg, #000 0%, transparent 30%);
    transition: .8s; }
.ec-serviceOurAchievement .ec-serviceOurAchievement__item .content .title {
      font-family: "Noto Serif JP", serif;
      font-size: 1.28rem;
      line-height: 1.3;
      color: #fff;
      margin: 0; }
.ec-serviceOurAchievement .ec-serviceOurAchievement__item .content .title:after {
        font-family: jeiafont;
        font-size: 0.9em;
        content: "\e902";
        margin-left: .25em;
        transition: .5s; }
.ec-serviceOurAchievement .ec-serviceOurAchievement__item .content .text {
      font-size: .96rem;
      line-height: 1.75;
      color: #FAF8F3;
      margin-top: 1em; }
.ec-serviceOurAchievement .ec-serviceOurAchievement__item:hover {
    text-decoration: none; }
.ec-serviceOurAchievement .ec-serviceOurAchievement__item:hover .image img {
      transform: scale(1.1); }
.ec-serviceOurAchievement .ec-serviceOurAchievement__item:hover .content {
      background-color: rgba(0, 0, 0, 0.3); }
.ec-serviceOurAchievement .ec-serviceOurAchievement__item:hover .content .title:after {
        margin-left: .35em; }
.ec-serviceOurAchievement .ec-serviceOurAchievement__item .content {
    padding: 1em;
    text-align: center; }
.ec-serviceOurAchievement .ec-serviceOurAchievement__item .content h3 {
      font-family: "Noto Serif JP", serif;
      font-size: 1.07rem;
      font-weight: 400;
      margin: 0;
      color: #fff; }
.ec-serviceOurAchievement .ec-serviceOurAchievement__item .content h3 a {
        color: inherit; }
.ec-serviceOurAchievement .ec-serviceOurAchievement__item .content h3 a:hover {
          text-decoration: none; }
/*
各事業インデックスコンテンツ5 「製品紹介」「デザイン紹介」枠
*/
/*
各事業インデックスコンテンツ5 「製品紹介」「デザイン紹介」枠
「製品紹介」「デザイン紹介」スライダースタイリング
*/
.ec-serviceOurSolution .slick-slider .slick-arrow {
  color: #A9894A; }
.ec-serviceOurSolution .ec-serviceOurSolution__item .image a {
  display: block;
  overflow: hidden;
  /* HTML構造によってはIE11でちらつく事があるので保険 */ }
.ec-serviceOurSolution .ec-serviceOurSolution__item .image a * {
    overflow: hidden; }
.ec-serviceOurSolution .ec-serviceOurSolution__item .image a img {
    transition: .6s; }
.ec-serviceOurSolution .ec-serviceOurSolution__item .image a:hover img {
    transform: scale(1.1);
    filter: brightness(1.05); }
.ec-serviceOurSolution .ec-serviceOurSolution__item .content {
  padding: 1rem; }
.ec-serviceOurSolution .ec-serviceOurSolution__item .content h3 {
    font-size: 1rem;
    text-align: center;
    margin: 0; }
.ec-serviceOurSolution .ec-serviceOurSolution__item .content .description {
    font-size: .93rem;
    line-height: 1.6;
    margin: 1em 0 0;
    text-align: justify; }
/*
各事業インデックスページ コンテンツボタン

各事業インデックスページ用という前提でコーディングしていますが、もし他のページで使用するなど汎用化する場合はclass名など整理してください。
*/
.ec-serviceContentBtnRole {
  text-align: center; }
.ec-serviceContentBtnRole a {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background-color: #000;
    color: #fff;
    min-width: 320px;
    height: 55px;
    padding: 0 1em;
    font-size: 18px;
    font-weight: 500;
    border-radius: 4px;
    margin: 0 15px;
    transition: .3s; }
.ec-serviceContentBtnRole a:hover {
      text-decoration: none;
      background-color: #A9894A; }
.ec-serviceContentBtnRole a.instagram {
      background: linear-gradient(to right, #075174 0%, #15b6c0 25%, #8ac825 50%, #d4bf28 75%, #8c450f 100%); }
.ec-serviceContentBtnRole a.instagram:hover {
        filter: brightness(1.1); }
/*
各事業インデックスページ バナー
*/
.ec-serviceIndexBanner {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px;
  max-width: 960px; }
.ec-serviceIndexBanner .ec-serviceIndexBanner__item a {
    display: block; }
.ec-serviceIndexBanner .ec-serviceIndexBanner__item a img {
      transition: .3s; }
.ec-serviceIndexBanner .ec-serviceIndexBanner__item a:hover img {
      filter: brightness(1.1); }
/*
実績紹介ページ（カテゴリページ）

※製品紹介、デザイン紹介も同じスタイリングなのでこちらを使用しています。
*/
.ec-pageServiceCategory .ec-pageServiceCategory__head .ec-secHeading.wide .ec-secHeading__subtitle {
  color: #000; }
.ec-pageServiceCategory .ec-pageServiceCategory__head .pageback {
  text-align: center;
  margin-top: 1rem; }
.ec-pageServiceCategory .ec-pageServiceCategory__head .pageback a {
    display: inline-block;
    padding: .75em 1em;
    font-size: 0.96rem;
    font-weight: 700;
    color: #888;
    transition: .3s; }
.ec-pageServiceCategory .ec-pageServiceCategory__head .pageback a:before {
      font-family: jeiafont;
      content: "\e91b";
      font-size: 1.2em;
      display: inline-block;
      vertical-align: middle;
      margin-right: .5em; }
.ec-pageServiceCategory .ec-pageServiceCategory__head .pageback a:hover {
      text-decoration: none;
      background-color: #f9f7f2; }
/*
実績紹介一覧グリッド

陳列レイアウト用のmixinを使用します。（_projects.scss）
@mixin shelfLayout($amount: 5, $gutter_w: 20px, $gutter_h: 20px, $item: li) {}
* $amount: 横に配置する数
* $gutter_W: アイテム間の左右余白
* $gutter_h: アイテム間の上下余白
* $item: 子要素のタグ名称・class名称（デフォルトはli要素）
*/
/*
実績紹介アイテム（商品アイテム）
*/
.ec-serviceItemRole .ec-serviceItemRole__image a {
  display: block;
  display: block;
  overflow: hidden;
  /* HTML構造によってはIE11でちらつく事があるので保険 */ }
.ec-serviceItemRole .ec-serviceItemRole__image a * {
    overflow: hidden; }
.ec-serviceItemRole .ec-serviceItemRole__image a img {
    transition: .6s; }
.ec-serviceItemRole .ec-serviceItemRole__image a:hover img {
    transform: scale(1.1);
    filter: brightness(1.05); }
.ec-serviceItemRole .ec-serviceItemRole__image a img {
    width: 100%;
    height: auto; }
.ec-serviceItemRole .ec-serviceItemRole__content {
  padding: 1rem 1rem 2rem; }
.ec-serviceItemRole .ec-serviceItemRole__title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.2rem;
  line-height: 1.3;
  text-align: center;
  margin: 0;
  margin-bottom: 0.8rem; }
.ec-serviceItemRole .ec-serviceItemRole__tag {
  margin: .75rem 0;
  text-align: center; }
.ec-serviceItemRole .ec-serviceItemRole__tag span {
    display: inline-block;
    font-size: .96rem;
    line-height: 1.2;
    padding: .3em 1em;
    border-radius: 3px; }
.ec-serviceItemRole .ec-serviceItemRole__description {
  font-size: 0.96rem;
  color: #666;
  text-align: justify; }
/*
実績詳細
*/
/*
実績詳細ヘッドスライダー
*/
.ec-serviceHeadSlider .slick-slider .slick-dots {
  padding: 2vw; }
.ec-serviceHeadSlider .slick-slider .slick-dots li {
    width: 9px;
    height: 9px;
    border-radius: 0;
    background-color: #fff; }
.ec-serviceHeadSlider .slick-slider .slick-dots li.slick-active {
      background-color: #D30E29; }
.ec-serviceHeadSlider .slick-slider .slick-dots li + li {
    margin-left: 10px; }
/*
実績詳細
*/
.ec-serviceDetailRole {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px;
  max-width: 1280px; }
.ec-serviceDetailRole .ec-serviceDetailRole__title {
    margin-bottom: 1.5rem;
    line-height: 1.2; }
.ec-serviceDetailRole .ec-serviceDetailRole__title .sub {
      display: block;
      margin-bottom: .5em;
      font-size: 1rem;
      line-height: inherit; }
.ec-serviceDetailRole .ec-serviceDetailRole__title h1 {
      margin: 0;
      font-family: "Noto Serif JP", serif;
      font-size: 2rem;
      line-height: inherit; }
.ec-serviceDetailRole .ec-serviceDetailRole__tag {
    margin: .75rem 0; }
.ec-serviceDetailRole .ec-serviceDetailRole__tag span {
      display: inline-block;
      font-size: .96rem;
      line-height: 1.2;
      padding: .3em 1em;
      border-radius: 3px; }
/*
実績詳細WYSIWYGテンプレート

実績詳細用テンプレートはまず記事スタイル「.ec-article」（_0.3.article.scss）が適用されている中で、テンプレート用スタイリングをまとめます。
*/
.service_detail_template {
  margin-top: 3rem; }
.service_detail_template h2, .service_detail_template h3, .service_detail_template h4, .service_detail_template h5, .service_detail_template h6 {
    font-size: 1.06rem;
    font-weight: 700; }
.service_detail_template.template_head {
    margin-top: 1rem; }
.service_detail_template.template_head .description {
      font-size: 0.96rem;
      line-height: 2;
      text-align: justify;
      margin: 1em 0; }
.service_detail_template.template_head .relatedlink {
      font-size: 0.96rem;
      font-weight: 500;
      margin: 1em 0; }
.service_detail_template.template_B h2, .service_detail_template.template_C h2 {
    margin-top: 0; }
.service_detail_template.template_D h2 {
    margin-top: 0; }
.service_detail_template.template_D .content p {
    margin: 1em 0; }
.service_detail_template.template_D .pic {
    margin-top: 1em; }
.service_detail_template.template_F {
    margin-top: 0; }
/*
事業内容 ノベルティ（工芸品事業）
*/
/*
おすすめの金箔ノベルティ
*/
.ec-noveltyListRole .ec-noveltyListRole__item {
  display: flex;
  flex-flow: column; }
.ec-noveltyListRole .ec-noveltyListRole__item .content {
    flex: 1 1 auto;
    padding: 1.5rem 1rem;
    display: flex;
    flex-flow: column; }
.ec-noveltyListRole .ec-noveltyListRole__item .content .title {
      font-family: "Noto Serif JP", serif;
      font-size: 1.33rem;
      margin: 0 0 .5em; }
.ec-noveltyListRole .ec-noveltyListRole__item .content .description {
      font-size: .93rem;
      line-height: 1.7;
      text-align: justify;
      margin: 1em 0; }
.ec-noveltyListRole .ec-noveltyListRole__item .content .ec-noveltySpec {
      margin: auto 0 0;
      padding-top: 1.5rem; }
/*
ノベルティスペック表
*/
.ec-noveltySpec dl {
  display: table;
  width: 100%;
  font-size: .86rem;
  margin: 0;
  border-bottom: solid 1px #ddd;
  padding: .85em .25em; }
.ec-noveltySpec dl:first-child {
    border-top: solid 1px #ddd; }
.ec-noveltySpec dt {
  display: table-cell;
  font-weight: 500;
  font-size: inherit;
  white-space: nowrap;
  padding-right: 1em; }
.ec-noveltySpec dt:after {
    content: "："; }
.ec-noveltySpec dd {
  display: table-cell;
  font-weight: 400;
  font-size: inherit;
  text-align: right; }
/*
ご注文から納品までの流れ
*/
.ec-noveltyFlowRole {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px;
  max-width: 960px; }
.ec-noveltyFlowRole .ec-heading {
    color: #A9894A; }
.ec-noveltyFlowRole .ec-noveltyFlowRole__item {
    border: solid 1px #A9894A;
    position: relative;
    margin-top: 35px; }
.ec-noveltyFlowRole .ec-noveltyFlowRole__item .title {
      flex: 0 0 auto;
      min-width: 8em;
      font-size: 1.2rem;
      font-weight: 500;
      color: #A9894A;
      margin: 0;
      margin-right: 1em; }
.ec-noveltyFlowRole .ec-noveltyFlowRole__item .text {
      flex: 1 1 auto;
      font-size: .93rem;
      line-height: 1.8; }
.ec-noveltyFlowRole .ec-noveltyFlowRole__item:after {
      content: "";
      display: block;
      width: 0;
      height: 0;
      border: solid 18px transparent;
      border-top-color: #A9884A;
      position: absolute;
      top: 100%;
      left: 50%;
      margin-left: -18px; }
.ec-noveltyFlowRole .ec-noveltyFlowRole__item:last-child:after {
      display: none; }
.ec-noveltyFlowRole .ec-noveltyFlowRole__caution {
    margin-top: 1.5rem; }
/*
実績紹介
performance
*/
/*
実績紹介一覧

マウスオーバーの挙動はmixin「contentOｎImage」と同じ感じですが微細に違いがあると思いましたので、
mixinは使わず独自にスタイリングを施しています。
*/
.ec-pagePerformanceList {
  display: flex;
  flex-flow: row wrap; }
.ec-pagePerformanceList .ec-pagePerformanceList__item {
    flex: 0 0 50%; }
.ec-pagePerformanceList .ec-pagePerformanceList__item a {
      display: block;
      position: relative;
      overflow: hidden;
      color: inherit; }
.ec-pagePerformanceList .ec-pagePerformanceList__item .image img {
      transition: .8s; }
.ec-pagePerformanceList .ec-pagePerformanceList__item .content .title {
      font-size: 1.33rem;
      font-weight: 700;
      line-height: 1.3;
      margin: 0;
      color: inherit; }
.ec-pagePerformanceList .ec-pagePerformanceList__item .content .text {
      font-size: 0.96rem;
      margin-top: 1em; }
.ec-pagePerformanceList .ec-pagePerformanceList__item .content .tag {
      position: absolute; }
.ec-pagePerformanceList .ec-pagePerformanceList__item .content .tag span {
        display: inline-block;
        background-color: #A9894A;
        color: #fff;
        font-size: 0.96rem;
        line-height: 1.2;
        padding: .5em 1em; }
.ec-pagePerformanceList .ec-pagePerformanceList__item:hover {
      text-decoration: none; }
.ec-pagePerformanceList .ec-pagePerformanceList__item:hover .image img {
        transform: scale(1.1); }
.ec-pagePerformanceList .ec-pagePerformanceList__item:hover .content {
        background-color: rgba(0, 0, 0, 0.3); }
/*
箔一の想い
feelings
*/
/*
箔一の想い ページヘッダー
*/
/*
ビッグビジュアル
*/
.ec-pageFeelingsBigVisual {
  width: 100%; }
/*
コンテンツ記事
*/
.ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .subtitle span {
  display: block;
  font-size: .96rem;
  color: #555;
  line-height: 1em;
  border-radius: 1em;
  border: solid 1px #aaa;
  padding: .5em 1em;
  text-align: center; }
.ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  line-height: 1.6;
  margin: .75em 0; }
.ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .description {
  font-family: "Noto Serif JP", serif;
  font-size: 1.06rem;
  line-height: 1.8; }
.ec-pageFeelingsContent .ec-pageFeelingsContent__article .image {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover; }
.ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea .ec-blockDetailBtn, .ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea .ec-blockDetailBtn--center, .ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel, .ec-progressAction .ec-progressAction__actions .ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea .ec-blockBtn--cancel,
.ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action, .ec-progressAction .ec-progressAction__actions .ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea .ec-blockBtn--action {
  margin: 0 auto; }
/*
会社概要
*/
/*
会社概要 INDEXリスト
*/
.ec-pageCompanyIndex {
  margin-top: 0 !important; }
.ec-pageCompanyIndex .ec-pageCompanyIndex__item a {
    display: block;
    color: inherit;
    display: block;
    overflow: hidden;
    /* HTML構造によってはIE11でちらつく事があるので保険 */ }
.ec-pageCompanyIndex .ec-pageCompanyIndex__item a * {
      overflow: hidden; }
.ec-pageCompanyIndex .ec-pageCompanyIndex__item a img {
      transition: .6s; }
.ec-pageCompanyIndex .ec-pageCompanyIndex__item a:hover img {
      transform: scale(1.1);
      filter: brightness(1.05); }
.ec-pageCompanyIndex .ec-pageCompanyIndex__item a:hover {
      text-decoration: none; }
.ec-pageCompanyIndex .ec-pageCompanyIndex__item .content {
    padding: 1rem;
    text-align: center; }
.ec-pageCompanyIndex .ec-pageCompanyIndex__item .content .title {
      font-family: "Noto Serif JP", serif;
      font-size: 1.2rem;
      line-height: 1.2;
      margin: 0; }
.ec-pageCompanyIndex .ec-pageCompanyIndex__item .content .description {
      font-size: 0.96rem;
      margin-top: 1rem;
      text-align: left; }
/*
会社概要 person

創業者の挨拶、社長挨拶の記事コンテンツのスタイリングになります。
*/
.ec-personArticleRole {
  max-width: 1400px; }
.ec-personArticleRole .ec-personArticleRole__article:first-child {
    margin-top: 0; }
.ec-personArticleRole .ec-personArticleRole__article h2 {
    font-size: 1.33rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
    margin-bottom: 1em; }
.ec-personArticleRole .ec-personArticleRole__article h3 {
    font-size: 1.13rem;
    line-height: 1.2;
    border-bottom: solid 1px #D6D6D6;
    margin: 0 0 1em;
    padding-bottom: .5em; }
.ec-personArticleRole .ec-personArticleRole__article p {
    font-size: 0.96rem;
    line-height: 1.6;
    margin: 1em 0; }
.ec-personArticleRole .ec-personArticleRole__banner a {
    transition: .3s; }
.ec-personArticleRole .ec-personArticleRole__banner a:hover {
      filter: brightness(1.1); }
.ec-personArticleRole .ec-personArticleRole__banner a img {
      width: auto;
      max-width: 100%; }
.ec-personArticleRole .shelfLayout-001 .item {
    display: flex; }
.ec-personArticleRole .shelfLayout-001 .item .image {
      flex: 0 0 50%;
      max-width: 200px;
      border: solid 1px #ccc; }
.ec-personArticleRole .shelfLayout-001 .item .image a {
        display: block;
        overflow: hidden;
        /* HTML構造によってはIE11でちらつく事があるので保険 */ }
.ec-personArticleRole .shelfLayout-001 .item .image a * {
          overflow: hidden; }
.ec-personArticleRole .shelfLayout-001 .item .image a img {
          transition: .6s; }
.ec-personArticleRole .shelfLayout-001 .item .image a:hover img {
          transform: scale(1.1);
          filter: brightness(1.05); }
.ec-personArticleRole .shelfLayout-001 .item .content {
      padding: 0 1em; }
.ec-personArticleRole .shelfLayout-001 .item .content .title {
        font-size: 1.1rem;
        line-height: 1.2;
        margin: 0 0 .5em; }
.ec-personArticleRole .shelfLayout-001 .item .content .text {
        font-size: 0.86rem;
        line-height: 1.2;
        color: #555; }
.ec-personArticleRole .shelfLayout-002 .item a {
    display: flex;
    color: inherit; }
.ec-personArticleRole .shelfLayout-002 .item a:hover {
      text-decoration: none; }
.ec-personArticleRole .shelfLayout-002 .item a:hover img {
        filter: brightness(1.1); }
.ec-personArticleRole .shelfLayout-002 .item .image {
    flex: 0 0 80px; }
.ec-personArticleRole .shelfLayout-002 .item .image img {
      transition: .3s; }
.ec-personArticleRole .shelfLayout-002 .item .content {
    display: flex;
    align-items: center;
    padding: 0 1em;
    font-size: 0.86rem;
    line-height: 1.2; }
/*
会社概要 企業理念ページ
*/
.ec-policyArticleRole {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto; }
.ec-policyArticleRole .ec-policyArticleRole__article .title {
    font-size: 1.33rem;
    font-weight: 700;
    line-height: 1.2;
    color: #AB8B4E;
    text-align: center;
    margin: 1em 0;
    overflow: hidden; }
.ec-policyArticleRole .ec-policyArticleRole__article .title span {
      display: inline-block;
      padding: 0 1.5em;
      position: relative; }
.ec-policyArticleRole .ec-policyArticleRole__article .title span:before, .ec-policyArticleRole .ec-policyArticleRole__article .title span:after {
        content: "";
        display: block;
        width: 100vw;
        height: 1px;
        background-color: #A9894A;
        position: absolute;
        top: 50%; }
.ec-policyArticleRole .ec-policyArticleRole__article .title span:before {
        right: 100%; }
.ec-policyArticleRole .ec-policyArticleRole__article .title span:after {
        left: 100%; }
.ec-policyArticleRole .ec-policyArticleRole__policy {
    text-align: center;
    font-family: "Noto Serif JP", serif;
    font-size: 1.2rem; }
.ec-policyArticleRole .ec-policyArticleRole__policy .ec-list-decimal {
      display: inline-block;
      text-align: left;
      margin: 0; }
.ec-policyArticleRole .ec-policyArticleRole__policy .ec-list-decimal dd {
        margin: .25em 0; }
/*
箔一のあゆみ
*/
/*
年表
*/
.ec-historyArticleRole .ec-historyArticleRole__article {
  background-color: transparent;
  padding: 1.5vw 3vw;
  display: flex; }
.ec-historyArticleRole .ec-historyArticleRole__article:nth-child(2n) {
    background-color: #F6F3ED; }
.ec-historyArticleRole .ec-historyArticleRole__chronology {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  font-family: "Noto Serif JP", serif;
  line-height: 1;
  color: #B28500; }
.ec-historyArticleRole .ec-historyArticleRole__history {
  flex: 1 1 auto; }
.ec-historyArticleRole .ec-historyArticleRole__history dl {
    margin: .5em 0;
    font-size: 1.06rem;
    font-weight: 500;
    display: flex;
    cursor: pointer;
    transition: .3s; }
.ec-historyArticleRole .ec-historyArticleRole__history dl:not(is-active):hover {
      margin-left: 5px; }
.ec-historyArticleRole .ec-historyArticleRole__history dl dt {
      margin-right: 1em; }
.ec-historyArticleRole .ec-historyArticleRole__history dl dd {
      /*
        &:hover:after {
          background: #f9f7f2;
        }
        */ }
.ec-historyArticleRole .ec-historyArticleRole__history dl dd:after {
        display: inline-block;
        font-family: jeiafont;
        content: "\e902";
        font-size: 0.68em;
        width: 1.5em;
        height: 1.5em;
        line-height: 1.5em;
        text-align: center;
        border: solid 1px #ccc;
        border-radius: 50%;
        margin-left: .75em;
        transform: translateY(-0.2em);
        transition: .3s; }
.ec-historyArticleRole .ec-historyArticleRole__history dl dd .detail {
        position: fixed;
        top: 50%;
        left: 50%;
        z-index: 1002;
        width: 90vw;
        height: 90vh;
        max-width: 700px;
        max-height: 700px;
        background-color: #fff;
        padding: 2em;
        transform: translate(-50%, -50%);
        border: solid 1px #ccc;
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
        visibility: hidden;
        opacity: 0;
        transition: .3s; }
.ec-historyArticleRole .ec-historyArticleRole__history dl dd .detail .inner {
          width: 100%;
          height: 100%;
          overflow-y: auto; }
.ec-historyArticleRole .ec-historyArticleRole__history dl dd .detail .year {
          font-size: 1rem;
          line-height: 1.2;
          margin: 0 0 .5em; }
.ec-historyArticleRole .ec-historyArticleRole__history dl dd .detail .title {
          font-size: 1.06rem;
          font-weight: 700;
          border-bottom: solid 1px #ccc;
          margin: 0 0 1.5em;
          padding-bottom: .75em; }
.ec-historyArticleRole .ec-historyArticleRole__history dl dd .detail .content {
          font-size: 1rem;
          font-weight: 400; }
.ec-historyArticleRole .ec-historyArticleRole__history dl dd .detail .content h3 {
            font-size: 1.06rem;
            font-weight: 500;
            margin: 1em 0; }
.ec-historyArticleRole .ec-historyArticleRole__history dl dd .detail .content p {
            font-size: 1em;
            margin: 1em 0; }
.ec-historyArticleRole .ec-historyArticleRole__history dl dd .detail .content img {
            width: auto;
            max-width: 100%; }
.ec-historyArticleRole .ec-historyArticleRole__history dl dd .detail:after {
          font-family: jeiafont;
          content: "\e918";
          position: absolute;
          top: 0;
          right: 0;
          transform: translate(50%, -50%);
          width: 2em;
          height: 2em;
          background-color: #fff;
          border: solid 1px #ccc;
          border-radius: 50%;
          box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
          text-align: center;
          line-height: 2em;
          font-size: 16px; }
.ec-historyArticleRole .ec-historyArticleRole__history dl.is-active .detail {
      visibility: visible;
      opacity: 1; }
.ec-historyArticleRole .ec-historyArticleRole__history dl.no_detail {
      pointer-events: none; }
.ec-historyArticleRole .ec-historyArticleRole__history dl.no_detail dd:after {
        display: none; }
.ec-historyArticleRole .ec-historyArticleRole__history .separate {
    display: block;
    width: 100%;
    margin: 5px 0 0;
    padding-top: 5px;
    border-top: solid 1px #ddd; }
/*
企業情報
*/
/*
企業情報コンテンツ
*/
.ec-companyInfoArticleRole .map {
  margin-top: 1em; }
.ec-companyInfoArticleRole .map .map_container {
    width: 100%;
    height: 0;
    padding-top: 35%;
    position: relative; }
.ec-companyInfoArticleRole .map .map_container iframe {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%; }
.ec-companyInfoArticleRole .map .map_link {
    margin-top: 1em;
    font-size: 0.96rem; }
/*
グループ情報
*/
/*
グループ情報コンテンツ
*/
.ec-companyGroupArticleRole .ec-companyGroupArticleRole__row:first-child {
  margin-top: 0; }
.ec-companyGroupArticleRole .ec-companyGroupArticleRole__row h2 {
  font-size: 1.28rem;
  font-weight: 500;
  margin: 0;
  margin-bottom: .75em; }
.ec-companyGroupArticleRole .ec-companyGroupArticleRole__row a {
  color: #A9884A; }
.ec-companyGroupArticleRole .ec-companyGroupArticleRole__row i {
  font-size: 1.5em; }
.ec-companyGroupArticleRole .ec-storeInfo {
  display: flex; }
.ec-companyGroupArticleRole .ec-storeInfo .image {
    flex: 0 0 50%;
    max-width: 565px; }
.ec-companyGroupArticleRole .ec-storeInfo .content {
    flex: 1 1 auto;
    padding-left: 1rem; }
.ec-companyGroupArticleRole .ec-storeInfo .content .title {
      font-size: 1.06rem;
      font-weight: 700;
      line-height: 1.2;
      margin: 0;
      margin-bottom: .5em; }
.ec-companyGroupArticleRole .ec-storeInfo .content .address {
      font-size: 1rem;
      line-height: 1.5; }
.ec-companyGroupArticleRole .ec-storeInfo_v .content .title {
  font-size: 1.06rem;
  font-weight: 700;
  line-height: 1.2;
  margin: .5em 0; }
.ec-companyGroupArticleRole .ec-storeInfo_v .content .address {
  font-size: 1rem;
  line-height: 1.5; }
/*
箔一の取り組み
*/
/*
取り組み一覧（箔一の取り組み Indexページ）

※HTML構造は「実績紹介（performance）」と同じ構造になっています。
少し違いがありますが構造は同じとしましたのでスタイリングも「実績紹介」の「.ec-pagePerformanceList」をベースにしています。

マウスオーバーの挙動はmixin「contentOｎImage」と同じ感じですが微細に違いがあると思いましたので、
mixinは使わず独自にスタイリングを施しています。
*/
.ec-csrIndexList {
  display: flex;
  flex-flow: row wrap; }
.ec-csrIndexList .ec-csrIndexList__item {
    flex: 0 0 50%; }
.ec-csrIndexList .ec-csrIndexList__item a {
      display: block;
      position: relative;
      overflow: hidden;
      color: inherit; }
.ec-csrIndexList .ec-csrIndexList__item .image img {
      transition: .8s; }
.ec-csrIndexList .ec-csrIndexList__item .content {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      color: #fff;
      display: flex;
      flex-flow: column;
      justify-content: flex-end;
      /*
      .text {
        font-size: 0.96rem;
        margin-top: 1em;

        @include media_desktop {
          margin-bottom: 2em;// 右下に事業タグがabsolute配置されるので被らないよう余白を取っておきます
        }
      }
      */ }
.ec-csrIndexList .ec-csrIndexList__item .content .title {
        font-size: 1.06rem;
        font-weight: 700;
        line-height: 1.3;
        margin: 0;
        color: inherit; }
.ec-csrIndexList .ec-csrIndexList__item:hover {
      text-decoration: none; }
.ec-csrIndexList .ec-csrIndexList__item:hover .image img {
        transform: scale(1.1); }
.ec-csrIndexList .ec-csrIndexList__item:hover .content {
        background-color: rgba(0, 0, 0, 0.3); }
/*
箔一の取り組み 町屋再生への取り組み
*/
/*
町屋再生Index 記事
*/
.ec-companyPublicationArticleRole .ec-companyPublicationArticleRole__row h2 {
  font-size: 1.28rem;
  font-weight: 700;
  margin: 0;
  margin-bottom: .75em; }
.ec-companyPublicationArticleRole .ec-companyPublicationArticleRole__row .text {
  font-size: .96rem;
  line-height: 1.8;
  margin: 1em 0; }
/*
町屋再生Index これまでの取り組み
*/
.ec-publicationListRole .ec-publicationListRole__item a {
  display: block;
  overflow: hidden;
  /* HTML構造によってはIE11でちらつく事があるので保険 */
  color: inherit; }
.ec-publicationListRole .ec-publicationListRole__item a * {
    overflow: hidden; }
.ec-publicationListRole .ec-publicationListRole__item a img {
    transition: .6s; }
.ec-publicationListRole .ec-publicationListRole__item a:hover img {
    transform: scale(1.1);
    filter: brightness(1.05); }
.ec-publicationListRole .ec-publicationListRole__item a:hover {
    text-decoration: none; }
.ec-publicationListRole .ec-publicationListRole__item .content {
  padding: 0 1rem;
  text-align: center; }
.ec-publicationListRole .ec-publicationListRole__item .content .title {
    font-family: "Noto Serif JP", serif;
    font-size: 1.1rem;
    line-height: 1.2;
    color: #866C39;
    margin: 0.75em 0; }
.ec-publicationListRole .ec-publicationListRole__item .content .comment {
    font-size: 0.96rem; }
/*
町屋再生Index 街づくりへの想い（対談）
*/
.ec-publicationTalkListRole .ec-publicationTalkListRole__item a {
  display: block;
  overflow: hidden;
  /* HTML構造によってはIE11でちらつく事があるので保険 */
  color: inherit; }
.ec-publicationTalkListRole .ec-publicationTalkListRole__item a * {
    overflow: hidden; }
.ec-publicationTalkListRole .ec-publicationTalkListRole__item a img {
    transition: .6s; }
.ec-publicationTalkListRole .ec-publicationTalkListRole__item a:hover img {
    transform: scale(1.1);
    filter: brightness(1.05); }
.ec-publicationTalkListRole .ec-publicationTalkListRole__item a:hover {
    text-decoration: none; }
.ec-publicationTalkListRole .ec-publicationTalkListRole__item .content {
  padding: 0 1rem; }
.ec-publicationTalkListRole .ec-publicationTalkListRole__item .content .title {
    font-family: "Noto Serif JP", serif;
    font-size: 1.1rem;
    line-height: 1.2;
    margin: 0.75em 0; }
.ec-publicationTalkListRole .ec-publicationTalkListRole__item .content .comment {
    font-size: 0.96rem; }
/*
箔一の取り組み 町屋再生への取り組み 各ページ
*/
/*
ビフォーアフタービュー
*/
.ec-beforeAfterViewRole {
  display: flex;
  max-width: 1048px; }
.ec-beforeAfterViewRole .ec-beforeAfterViewRole__before {
    flex: 0 0 38.16%;
    position: relative; }
.ec-beforeAfterViewRole .ec-beforeAfterViewRole__before:after {
      content: "Before";
      font-size: 1.13rem;
      font-weight: 700;
      line-height: 1;
      padding: .3em 1.5em;
      background-color: #D6D6D6;
      color: #777777;
      position: absolute;
      top: 0;
      left: 0; }
.ec-beforeAfterViewRole .ec-beforeAfterViewRole__after {
    flex: 1 1 auto;
    position: relative; }
.ec-beforeAfterViewRole .ec-beforeAfterViewRole__after:after {
      content: "After";
      font-size: 1.13rem;
      font-weight: 700;
      line-height: 1;
      padding: .3em 1.5em;
      background-color: #A9894A;
      color: #fff;
      position: absolute;
      top: 0;
      left: 0; }
.ec-beforeAfterViewRole .comment {
    font-size: .96rem;
    line-height: 1.6;
    padding: 1em; }
/*
ギャラリーコンテンツ（※金沢しつらえで使用）
*/
.ec-publicGalleryViewRole .ec-publicGalleryViewRole__item {
  max-width: 400px; }
.ec-publicGalleryViewRole .ec-publicGalleryViewRole__item .comment {
    font-size: .96rem;
    line-height: 1.6;
    padding: 1em; }
/*
対談記事
*/
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__header .title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.2rem;
  font-weight: 400;
  margin: 0;
  margin-bottom: .35em; }
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__header .title .prefix {
    font-size: .86rem;
    display: block;
    margin: 0 0 .5em;
    color: #333; }
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__header .title .interlocutor {
    font-size: 2rem; }
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__header .introduction {
  font-size: .96rem;
  line-height: 1.6; }
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__header hr {
  max-width: 380px;
  border-top: solid 1px #6E6E6E;
  margin: 10px 0; }
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__header .listener {
  font-size: .96rem;
  line-height: 1.6; }
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__article h2 {
  font-size: 1.33rem;
  font-weight: 700;
  line-height: 1.5;
  margin: 1em 0; }
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__article p {
  display: flex;
  font-size: .96rem;
  line-height: 2;
  margin: 1em 0; }
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__article p:before {
    flex: 0 0 auto;
    font-size: 1.06rem;
    white-space: nowrap;
    margin-right: .5em; }
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__article .asano:before {
  content: "浅野：";
  color: #937840; }
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__article .nakamura:before {
  content: "中村：";
  color: #B20000; }
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__article .nagase:before {
  content: "長瀬：";
  color: #B20000; }
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__article .hayashi:before {
  content: "林　：";
  color: #B20000; }
.ec-publicTalkArticleRole .ec-publicTalkArticleRole__article .kanaya:before {
  content: "金谷：";
  color: #B20000; }
/*
* 品質・安全への取り組み
* 地域（金沢）への取り組み
* 文化財保全への取り組み
* 産学連携への取り組み」
*/
/*
CSRコンテンツ記事

「品質・安全への取り組み」～「産学連携への取り組み」で使用する記事スタイリングです
*/
.ec-csrArticleRole .ec-csrArticleRole__article.center {
  text-align: center; }
.ec-csrArticleRole .ec-csrArticleRole__article h2 {
  font-size: 1.33rem;
  font-weight: 700;
  line-height: 1.5;
  margin: 0;
  margin-bottom: 1em; }
.ec-csrArticleRole .ec-csrArticleRole__article h2:nth-of-type(n+2) {
    margin-top: 2em; }
.ec-csrArticleRole .ec-csrArticleRole__article h3 {
  font-size: 1.03rem;
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 1em; }
.ec-csrArticleRole .ec-csrArticleRole__article p {
  font-size: 0.96rem;
  line-height: 1.6;
  margin: 1em 0; }
.ec-csrArticleRole .ec-csrArticleRole__article .fig {
  margin: 2em 0; }
.ec-csrArticleRole .ec-csrArticleRole__article .fig img {
    width: auto;
    max-width: 100%; }
/*
CSRコンテンツ 画像付きレイアウト

「品質・安全への取り組み」～「産学連携への取り組み」で使用する画像付き左右2カラムレイアウトのスタイリングです
*/
.ec-csrLayoutWithPic .pic.border img {
  border: solid 1px #999; }
/*
取り組み実績用レイアウト
*/
.ec-csrLayoutPerformance .ec-csrLayoutPerformance__item {
  display: flex;
  flex-flow: column; }
.ec-csrLayoutPerformance .ec-csrLayoutPerformance__item .title {
    font-size: 1.03rem;
    font-weight: 500;
    line-height: 1.2;
    margin: 0 0 .5em; }
.ec-csrLayoutPerformance .ec-csrLayoutPerformance__item .text {
    font-size: 0.96rem;
    line-height: 2; }
.ec-csrLayoutPerformance .ec-csrLayoutPerformance__item .image {
    margin: auto 0 0;
    display: flex;
    margin-left: -10px;
    margin-right: -10px; }
.ec-csrLayoutPerformance .ec-csrLayoutPerformance__item .image .pic {
      flex: 1 1 auto;
      margin: 10px; }
/*
SDGsへの取り組み
*/
/*
SDGｓヘッドコンテンツ
*/
.ec-companySdgsArticleRole .ec-companySdgsArticleRole__goals .image {
  text-align: center; }
.ec-companySdgsArticleRole .ec-companySdgsArticleRole__goals .image img {
    width: auto;
    max-width: 100%; }
.ec-companySdgsArticleRole .ec-companySdgsArticleRole__goals .description {
  font-size: 0.96rem;
  line-height: 1.8;
  text-align: justify; }
.ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box1 img {
  width: auto;
  max-width: 100%; }
.ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 h2 {
  font-family: "Noto Serif JP", serif;
  font-size: 1.63rem;
  font-weight: 400;
  line-height: 1.2;
  margin-top: 0;
  margin-bottom: 1rem; }
.ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 .text {
  font-size: 1.133rem;
  line-height: 2; }
.ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 .torikumi_list a {
  transition: .3s; }
.ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 .torikumi_list a:hover {
    filter: brightness(1.1); }
/*
SDGs記事コンテンツ
*/
.ec-sdgsArticleRole {
  background: linear-gradient(to top, #f1f1f1 0%, rgba(241, 241, 241, 0) 150px); }
.ec-sdgsArticleRole .ec-blockDetailBtn--center {
    margin-bottom: 0 !important; }
.ec-sdgsArticleRole .ec-sdgsArticleRole__head {
    display: flex; }
.ec-sdgsArticleRole .ec-sdgsArticleRole__head .image {
      flex: 0 0 auto;
      width: 12vw;
      max-width: 240px;
      margin-right: 1rem; }
.ec-sdgsArticleRole .ec-sdgsArticleRole__head .content h2 {
      font-family: "Noto Serif JP", serif;
      font-size: 1.63rem;
      font-weight: 400;
      line-height: 1.2;
      margin-top: 0;
      margin-bottom: .5em; }
.ec-sdgsArticleRole .ec-sdgsArticleRole__head .content .description {
      font-size: 1rem;
      line-height: 1.75; }
.ec-sdgsArticleRole .ec-sdgsArticleRole__content .image img {
    width: 100%; }
.ec-sdgsArticleRole .ec-sdgsArticleRole__content .content h3 {
    font-family: "Noto Serif JP", serif;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.2;
    margin-top: 0;
    margin-bottom: 1em; }
.ec-sdgsArticleRole .ec-sdgsArticleRole__content .content h4 {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.2;
    margin-top: 0;
    margin-bottom: 1em; }
.ec-sdgsArticleRole .ec-sdgsArticleRole__content .content .text {
    font-size: 1rem;
    line-height: 2; }
/*
金箔について
*/
/*
金箔について INDEX リスト
*/
.ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .image {
  position: relative; }
.ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .image a {
    display: block;
    overflow: hidden;
    /* HTML構造によってはIE11でちらつく事があるので保険 */ }
.ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .image a * {
      overflow: hidden; }
.ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .image a img {
      transition: .6s; }
.ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .image a:hover img {
      transform: scale(1.1);
      filter: brightness(1.05); }
.ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .image .overtitle {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1em;
    pointer-events: none;
    z-index: 9;
    -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
    font-size: 1.5rem;
    font-family: "Noto Serif JP", serif;
    font-weight: 500;
    color: #fff;
    text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25), 0 0 10px rgba(0, 0, 0, 0.5); }
.ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .content {
  padding: 1.5rem; }
.ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .content .title {
    font-size: 1.06rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 .5em; }
.ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .content .description {
    font-size: 0.96rem;
    line-height: 2; }
/*
金箔について 金箔の製造工程
*/
.ec-goldleafFlow .ec-goldleafFlow__list {
  counter-reset: number; }
.ec-goldleafFlow .ec-goldleafFlow__item {
  counter-increment: number;
  display: flex;
  flex-flow: column; }
.ec-goldleafFlow .ec-goldleafFlow__item .content {
    margin-bottom: 1.5rem; }
.ec-goldleafFlow .ec-goldleafFlow__item .content .title {
      font-size: 1.33rem;
      font-weight: 700;
      line-height: 1.2;
      display: flex;
      align-items: center; }
.ec-goldleafFlow .ec-goldleafFlow__item .content .title:before {
        display: block;
        content: counter(number, decimal-leading-zero);
        font-family: "Noto Serif JP", serif;
        font-size: 1.75em;
        font-weight: 400;
        line-height: 1;
        color: #A9894A;
        margin-right: .5em; }
.ec-goldleafFlow .ec-goldleafFlow__item .content .description {
      font-size: 0.96rem;
      line-height: 1.7;
      text-align: justify; }
.ec-goldleafFlow .ec-goldleafFlow__item .image {
    margin: auto 0 0; }
/*
金箔の二つの製法、「縁付金箔」と「断切金箔について」
*/
.ec-goldleafFlowMethod h2 {
  font-size: 1.33rem;
  font-weight: 400;
  line-height: 1.5;
  padding-bottom: .5em;
  margin-bottom: 1em;
  border-bottom: solid 1px #000; }
.ec-goldleafFlowMethod .ec-goldleafFlowMethod__item {
  display: flex;
  flex-flow: column; }
.ec-goldleafFlowMethod .ec-goldleafFlowMethod__item .title {
    font-size: 1.06rem;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 1em; }
.ec-goldleafFlowMethod .ec-goldleafFlowMethod__item .description {
    font-size: .96rem;
    line-height: 1.7;
    margin-bottom: 1.5rem; }
.ec-goldleafFlowMethod .ec-goldleafFlowMethod__item .image {
    margin: auto 0 0;
    display: flex;
    margin-left: -10px;
    margin-right: -10px; }
.ec-goldleafFlowMethod .ec-goldleafFlowMethod__item .image .pic {
      flex: 1 1 auto;
      margin: 10px; }
/*
金箔について 金箔の歴史
*/
.ec-goldleafHistory .ec-goldleafHistory__article .content .title {
  font-size: 1.33rem;
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 .75em; }
.ec-goldleafHistory .ec-goldleafHistory__article .content .description {
  font-size: 0.96rem;
  line-height: 2;
  text-align: justify; }
.ec-goldleafHistory .ec-goldleafHistory__article .image {
  display: flex; }
.ec-goldleafHistory .ec-goldleafHistory__article .image .pic {
    flex: 1 1 auto; }
.ec-goldleafHistory .ec-goldleafHistory__article .image .pic + .pic {
      margin-left: 20px; }
.ec-goldleafHistory .ec-goldleafHistory__article.rev .content {
  order: 2; }
.ec-goldleafHistory .ec-goldleafHistory__article.rev .image {
  order: 1; }
/*
サポート
*/
.ec-pageSupportIndex {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px;
  max-width: 1280px;
  margin-top: 0 !important; }
.ec-pageSupportIndex .ec-pageSupportIndex__head {
    background-color: #F1ECE2;
    font-size: .96rem;
    color: #39301D;
    padding: 1.5em;
    margin-top: 10px; }
.ec-pageSupportIndex .ec-pageSupportIndex__head .ec-list, .ec-pageSupportIndex .ec-pageSupportIndex__head .ec-article .ec-contentList, .ec-article .ec-pageSupportIndex .ec-pageSupportIndex__head .ec-contentList, .ec-pageSupportIndex .ec-pageSupportIndex__head .ec-list-rice, .ec-pageSupportIndex .ec-pageSupportIndex__head .ec-list-disc, .ec-pageSupportIndex .ec-pageSupportIndex__head .ec-list-decimal, .ec-pageSupportIndex .ec-pageSupportIndex__head .ec-list-decimal_bra, .ec-pageSupportIndex .ec-pageSupportIndex__head .ec-list-decimal_brahalf, .ec-pageSupportIndex .ec-pageSupportIndex__head .ec-list-icon {
      margin: 0; }
.ec-pageSupportIndex .ec-pageSupportIndex__item {
    border: solid 6px #CDBB96; }
.ec-pageSupportIndex .ec-pageSupportIndex__item .title {
      font-family: "Noto Serif JP", serif;
      font-size: 1.6rem;
      font-weight: 400;
      color: #A9864A;
      line-height: 1.2;
      margin: 0;
      text-align: center; }
.ec-pageSupportIndex .ec-pageSupportIndex__item .description {
      font-size: .96rem;
      line-height: 1.6;
      margin: 20px 0; }
.ec-pageSupportIndex .ec-pageSupportIndex__item .bottom {
      margin: auto 0 0;
      padding-top: 10px; }
.ec-pageSupportIndex .ec-pageSupportIndex__item .ec-blockDetailBtn, .ec-pageSupportIndex .ec-pageSupportIndex__item .ec-blockDetailBtn--center, .ec-pageSupportIndex .ec-pageSupportIndex__item .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel, .ec-progressAction .ec-progressAction__actions .ec-pageSupportIndex .ec-pageSupportIndex__item .ec-blockBtn--cancel,
    .ec-pageSupportIndex .ec-pageSupportIndex__item .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action, .ec-progressAction .ec-progressAction__actions .ec-pageSupportIndex .ec-pageSupportIndex__item .ec-blockBtn--action {
      width: 100%;
      margin: 0; }
.ec-pageSupportIndex .ec-pageSupportIndex__item .phone {
      font-family: "Noto Serif JP", serif;
      font-size: 2.5rem;
      color: #A9894A;
      line-height: 1;
      text-align: center; }
.ec-pageSupportIndex .ec-pageSupportIndex__item .phone a {
        color: inherit; }
.ec-pageSupportIndex .ec-pageSupportIndex__item .day {
      font-size: .96rem;
      line-height: 1.2;
      text-align: center;
      margin-top: 1em; }
/*
工房について
*/
/*
工房についてコンテンツ
*/
.ec-pageStudioContent.first {
  margin-top: 0 !important; }
.ec-pageStudioContent .ec-pageStudioContent__head {
  margin: 0 auto;
  box-sizing: content-box;
  width: auto !important;
  max-width: 1280px;
  max-width: 1280px; }
.ec-pageStudioContent .ec-pageStudioContent__number {
  font-family: "Noto Serif JP", serif;
  font-size: 3rem;
  line-height: 1;
  text-align: center;
  margin: 0; }
.ec-pageStudioContent .ec-pageStudioContent__title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.7;
  margin: 1em 0;
  text-align: center; }
.ec-pageStudioContent .ec-pageStudioContent__description {
  margin: 2em auto;
  font-family: "Noto Serif JP", serif;
  font-size: 1rem;
  line-height: 1.8; }
/*
問い合わせ
*/
.ec-pageStudioContact {
  text-align: center;
  background-color: #F9F7F2; }
.ec-pageStudioContact .title {
    font-family: "Noto Serif JP", serif;
    font-size: 1.8rem;
    margin: 0; }
.ec-pageStudioContact p {
    font-size: .93rem;
    margin: 1em 0 0;
    line-height: 1.5;
    margin-bottom: -0.25em; }
.ec-pageStudioContact .ec-blockDetailBtn--center {
    width: 230px; }
@media (min-width: 768px) {
  .ec-progressFlow {
    margin: 40px auto;
    padding: 0;
    list-style: none;
    display: table;
    table-layout: fixed;
    width: 100%;
    max-width: 600px; }
    .ec-progressFlow .ec-progressFlow__item {
      font-family: "Poppins";
      font-size: 1.3rem;
      display: table-cell;
      text-align: center;
      position: relative;
      z-index: 10; }
      .ec-progressFlow .ec-progressFlow__item:after {
        content: "";
        display: block;
        width: 100%;
        height: 2px;
        background-color: #ddd;
        position: absolute;
        top: 1em;
        left: 50%;
        transform: translate(0, -50%);
        z-index: -1; }
      .ec-progressFlow .ec-progressFlow__item:last-child:after {
        display: none; }
    .ec-progressFlow .ec-progressFlow__number {
      background-color: #c8c8c8;
      color: #fff;
      display: inline-block;
      line-height: 2em;
      width: 2em;
      height: 2em;
      border-radius: 50%;
      text-align: center;
      margin-bottom: 0.25em; }
    .ec-progressFlow .ec-progressFlow__label {
      font-family: "Noto Sans JP", sans-serif;
      font-size: 0.8rem;
      padding: 0;
      line-height: 1.2;
      white-space: nowrap; }
    .ec-progressFlow .ec-progressFlow__item.is-current .ec-progressFlow__number {
      background-color: #A9894A; }
    .ec-progressFlow .ec-progressFlow__item.is-current .ec-progressFlow__label {
      color: #A9894A; }
  .ec-progressFlowPicture {
    line-height: 1;
    display: table;
    table-layout: fixed;
    width: 500px; }
    .ec-progressFlowPicture .ec-progressFlowPicture__item {
      display: table-cell;
      text-align: center;
      position: relative;
      z-index: 10; }
      .ec-progressFlowPicture .ec-progressFlowPicture__item:after {
        content: "";
        display: block;
        width: 100%;
        height: 1px;
        background-color: #bbb;
        position: absolute;
        top: 47.5px;
        left: 50%;
        z-index: -1; }
      .ec-progressFlowPicture .ec-progressFlowPicture__item:last-child:after {
        display: none; }
      .ec-progressFlowPicture .ec-progressFlowPicture__item.is-current .ec-progressFlowPicture__number {
        background-color: #888; }
      .ec-progressFlowPicture .ec-progressFlowPicture__item.is-current .ec-progressFlowPicture__label {
        opacity: 1; }
    .ec-progressFlowPicture .ec-progressFlowPicture__number {
      display: inline-block;
      background-color: #c8c8c8;
      color: #fff;
      width: 95px;
      height: 95px;
      text-align: center;
      border-radius: 50%;
      margin-bottom: 0.5em;
      border: solid 5px #fff;
      box-sizing: border-box;
      font-family: "Poppins";
      font-size: 16px;
      padding-top: 14.25px; }
    .ec-progressFlowPicture .ec-progressFlowPicture__image {
      width: 50px;
      position: absolute;
      top: 41.8px;
      left: 50%;
      transform: translate(-50%, 0); }
      .ec-progressFlowPicture .ec-progressFlowPicture__image img {
        width: 100%;
        height: auto; }
    .ec-progressFlowPicture .ec-progressFlowPicture__label {
      font-size: 11px;
      padding: 0;
      white-space: nowrap;
      opacity: .5; }
      .ec-headPromotionRole .slick-slider .slick-arrow {
        top: auto;
        bottom: 1.5vw;
        left: auto;
        right: 10px;
        transform: translate(0, 0);
        opacity: 1; }
        .ec-headPromotionRole .slick-slider .slick-arrow.slick-prev {
          margin-right: 50px; }
        .ec-headPromotionRole .slick-slider .slick-arrow:hover {
          filter: brightness(1.1); }
    .service_detail_template.template_A .wrap {
      display: flex;
      flex-flow: row wrap;
      margin-left: -1px;
      margin-right: -1px;
      margin-top: -2px; }
      .service_detail_template.template_A .wrap .content {
        flex: 0 0 33.33%;
        margin-top: 2px;
        padding: 0 1px; }
        .service_detail_template.template_A .wrap .content h2 {
          margin: 1rem 1.5rem; }
        .service_detail_template.template_A .wrap .content p {
          margin: 1rem 1.5rem; }
    .service_detail_template.template_B, .service_detail_template.template_C {
      display: flex;
      justify-content: space-between; }
      .service_detail_template.template_B .pic, .service_detail_template.template_C .pic {
        flex: 0 0 50%;
        order: 2; }
      .service_detail_template.template_B .content, .service_detail_template.template_C .content {
        flex: 1 1 auto;
        order: 1;
        padding-right: 2em; }
    .service_detail_template.template_C .pic {
      order: 1; }
    .service_detail_template.template_C .content {
      order: 2;
      padding-right: 0;
      padding-left: 2em; }
    .service_detail_template.template_E .wrap {
      display: flex;
      flex-flow: row wrap;
      margin-left: -1px;
      margin-right: -1px;
      margin-top: -2px; }
      .service_detail_template.template_E .wrap .content {
        flex: 0 0 50%;
        margin-top: 2px;
        padding: 0 1px; }
        .service_detail_template.template_E .wrap .content h3 {
          margin: 0 1.5rem; }
        .service_detail_template.template_E .wrap .content p {
          margin: 1rem 1.5rem;
          margin-bottom: 2rem; } }
@media (min-width: 768px) and (max-width: 979px) {
  .ec-shelfGrid {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px; }
    .ec-shelfGrid > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 3);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-shelfGrid > *:nth-child(3n+1) {
        margin-left: 0; } }
@media only screen and (min-width: 768px) and (max-width: 1279px) {
  html {
    font-size: 15px; }
    .ec-debugRole {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-debugRole {
      margin-top: 7.812vw; }
    .ec-pageHeader h1,
    .ec-pageHeader .ec-pageHeader__title {
      margin-left: -3.906vw;
      margin-right: -3.906vw;
      padding: 0.85em 3.906vw;
      font-size: 1.2rem;
      border-bottom: solid 1px #ddd; }
      .ec-pageVisualHeader .ec-pageVisualHeader__inner {
        padding-left: 3.906vw;
        padding-right: 3.906vw; }
      .ec-pageVisualHeader .ec-pageVisualHeader__inner {
        height: 200px; }
        .ec-pageVisualHeader .ec-pageVisualHeader__title h1 {
          font-size: 2rem; }
    .ec-pageVisualHeader.vertical .ec-pageVisualHeader__title {
      text-align: center; }
    .ec-pageVisualHeader.vertical2 .ec-pageVisualHeader__title {
      text-align: center; }
    .ec-pageHeaderIntro .ec-pageHeaderIntro__inner {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-pageHeaderIntro .ec-pageHeaderIntro__inner {
      padding-top: 5.859vw;
      padding-bottom: 5.859vw; }
    .ec-pageHeaderIntro .ec-pageHeaderIntro__content .title {
      font-size: 1.7rem; }
      .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__inner {
        padding-left: 3.906vw;
        padding-right: 3.906vw; }
      .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__inner {
        padding-top: 5.859vw;
        padding-bottom: 5.859vw; }
      .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__content {
        flex: 0 0 55%; }
        .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__content .title {
          font-size: 1.7rem; }
    .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__image {
      flex: 0 0 40%;
      display: flex;
      align-items: center; }
      .ec-secHeading.wide {
        padding-top: 5.859vw;
        padding-bottom: 5.859vw; }
      .ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__title {
        font-size: 2rem; }
      .ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__content .description {
        font-size: 1.06rem;
        line-height: 2;
        height: 25em; }
  .ec-borderedDefs > dl {
    display: table;
    border-bottom: 1px solid #d6d6d6; }
    .ec-borderedDefs > dl:first-child {
      border-top: 1px solid #d6d6d6; }
    .ec-borderedDefs > dl > dt {
      display: table-cell;
      width: 25%;
      vertical-align: top;
      padding: 1.5em 1em; }
    .ec-borderedDefs > dl > dd {
      display: table-cell;
      width: auto;
      vertical-align: middle;
      padding: 1.5em 1.5em; }
    .ec-pageGoBack {
      margin-top: 3.906vw; }
      .ec-floatNavRole .ec-floatNavRole__guide {
        display: none; }
  .ec-off2Grid,
  .ec-off3Grid,
  .ec-off4Grid {
    display: block;
    margin: 0; }
    .ec-off2Grid .ec-off2Grid__cell,
    .ec-off3Grid .ec-off2Grid__cell,
    .ec-off4Grid .ec-off2Grid__cell, .ec-off2Grid
    .ec-off3Grid__cell,
    .ec-off3Grid
    .ec-off3Grid__cell,
    .ec-off4Grid
    .ec-off3Grid__cell, .ec-off2Grid
    .ec-off4Grid__cell,
    .ec-off3Grid
    .ec-off4Grid__cell,
    .ec-off4Grid
    .ec-off4Grid__cell {
      width: 450px;
      margin: 0 auto; }
    .ec-loginRole .ec-loginRole__guest {
      margin-top: 3.906vw;
      padding: 3.906vw; }
    .ec-totalBox {
      padding: 0.5em 1em 1em; }
  .ec-favoriteRole .ec-favoriteRole__itemList {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -20px; }
    .ec-favoriteRole .ec-favoriteRole__itemList > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 60px ) / 4);
      margin-left: 20px;
      margin-top: 20px; }
      .ec-favoriteRole .ec-favoriteRole__itemList > *:nth-child(4n+1) {
        margin-left: 0; }
  .ec-progressAction {
    margin-top: 3.906vw; }
    .ec-progressAction .ec-progressAction__message {
      margin-bottom: 3.906vw; }
      .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel,
      .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action {
        width: 300px;
        margin: 0 10px; }
    .ec-pageTurnNav {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
    .ec-role {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-mypageRole {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
      .ec-pageWithNavRole .ec-pageWithNavRole__left {
        padding: 3.906vw;
        width: 30%;
        height: calc(100vh - 50px);
        position: -webkit-sticky;
        position: sticky;
        top: 50px; }
    .ec-pageWithNavRole .ec-pageWithNavRole__body {
      padding: 3.906vw; }
        .ec-pageWithNavRole .ec-pageWithNavRole__nav ul {
          font-size: 1.06rem; }
    .ec-pageWithNavRole .btnNavToggle {
      top: 50px; }
  .ec-pageWithNavRole.is-navClose .ec-pageWithNavRole__left {
    margin-left: -30%; }
    .ec-pageWithNavVisualHeader .ec-pageWithNavVisualHeader__inner {
      height: 34.6vw;
      padding: 3.906vw; }
    .ec-pageWithNavVisualHeader.founder .ec-pageWithNavVisualHeader__title .title {
      font-size: 1.7rem; }
        .ec-pageWithNavVisualHeader.greeting .ec-pageWithNavVisualHeader__title {
          width: 57%; }
          .ec-pageWithNavVisualHeader.greeting .ec-pageWithNavVisualHeader__title .title {
            font-size: 1.3rem;
            line-height: 1.7; }
      .ec-pageWithNavVisualHeader.vertical .ec-pageWithNavVisualHeader__title .title, .ec-pageWithNavVisualHeader.public .ec-pageWithNavVisualHeader__title .title {
        font-size: 1.73rem; }
      .ec-pageWithNavVisualHeader.public .ec-pageWithNavVisualHeader__inner {
        height: 45vw; }
    .fixBgBox {
      height: 34.6vw;
      top: 50px; }
    .fixBgBox.greeting {
      background-position: left -7vw center; }
      .ec-pageWithNavRole.is-navClose .fixBgBox.greeting {
        background-position: left center; }
    .fixBgBox.public {
      height: 45vw; }
  .ec-pageWithNavVisualHeader {
    margin-top: -34.6vw; }
  .ec-pageWithNavVisualHeader.public {
    margin-top: -45vw; }
      .additional.mobile {
        padding: 1em 3.906vw;
        font-size: .933rem; }
      .additional.desktop {
        display: none; }
    .ec-headerRole {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-headerRole {
      height: 50px;
      padding: 0; }
      .ec-headerRole .ec-headerRole__left {
        flex: 1 1 auto;
        display: flex;
        justify-content: flex-start; }
      .ec-headerRole .ec-headerRole__center {
        display: none; }
      .ec-headerRole .ec-headerRole__right {
        flex: 1 1 auto;
        display: flex;
        justify-content: flex-end; }
    .ec-drawerButton {
      width: 50px;
      height: 50px;
      padding: 12px; }
    .ec-headerTitle {
      height: 100%; }
      .ec-headerTitle a {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        height: 100%; }
        .ec-headerTitle a img {
          height: 45px;
          width: auto; }
        .ec-headerMenu .ec-headerMenu__item > a {
          min-width: 80px; }
    .ec-headerMenu .ec-headerMenu__itemPopup {
      display: none; }
    .ec-drawerRole {
      height: calc(100vh - 50px);
      top: 50px;
      padding: 10px 30px 0; }
    .ec-overlayRole {
      height: calc(100vh - 50px);
      top: 50px; }
  .ec-layoutRole {
    padding-top: 50px; }
      .ec-footerGuide .ec-footerGuide__inner {
        padding-left: 3.906vw;
        padding-right: 3.906vw; }
      .ec-footerGuide .ec-footerGuide__inner {
        padding-top: 5.859vw;
        padding-bottom: 5.859vw; }
      .ec-footerNavi .ec-footerNavi__wrap {
        padding-left: 3.906vw;
        padding-right: 3.906vw; }
      .ec-footerNavi .ec-footerNavi__wrap {
        padding-top: 5.859vw;
        padding-bottom: 5.859vw; }
      .ec-footerNavi .ec-footerNavi__item {
        width: 50%; }
        .ec-footerNavi .ec-footerNavi__item:nth-child(n+3) {
          border-top: solid 1px #d6d6d6;
          margin-top: 1.5rem; }
    .ec-footerTitle {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-footerTitle {
      padding-top: 1.953vw;
      padding-bottom: 1.953vw; }
    .ec-footerTitle .ec-footerTitle__bannerLink {
      margin-left: -10px;
      margin-bottom: 15px; }
      .ec-footerTitle .ec-footerTitle__bannerLink .item {
        display: inline-block;
        width: 220px;
        margin-top: 10px;
        margin-left: 10px; }
      .ec-footerTitle .ec-footerTitle__logo img {
        width: 100px; }
    .ec-footerSocial {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-topicPathRole {
      padding: 8px 10px; }
      .ec-topConceptRole .ec-topConceptRole__inner {
        padding-left: 3.906vw;
        padding-right: 3.906vw; }
      .ec-topConceptRole .ec-topConceptRole__inner {
        padding-top: 5.859vw;
        padding-bottom: 5.859vw; }
    .ec-topServiceRole {
      padding-top: 5.859vw;
      padding-bottom: 5.859vw; }
      .ec-topServiceRole .ec-topServiceRole__head {
        padding-left: 3.906vw;
        padding-right: 3.906vw; }
    .ec-topServiceRole .ec-topServiceRole__list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -1px; }
      .ec-topServiceRole .ec-topServiceRole__list > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 1px ) / 2);
        margin-left: 1px;
        margin-top: 1px; }
        .ec-topServiceRole .ec-topServiceRole__list > *:nth-child(2n+1) {
          margin-left: 0; }
          .ec-topServiceRole .ec-topServiceRole__item .content .text {
            display: none; }
      .ec-topPerformanceRole .ec-topPerformanceRole__content {
        flex-flow: column; }
        .ec-topPerformanceRole .ec-topPerformanceRole__content .content {
          flex-basis: 100%; }
          .ec-topPerformanceRole .ec-topPerformanceRole__content .content .content_head {
            padding: 3.906vw; }
          .ec-topPerformanceRole .ec-topPerformanceRole__content .content .content_body {
            padding: 3.906vw; }
        .ec-topPerformanceRole .ec-topPerformanceRole__content .image {
          height: 0;
          padding-top: 40vw; }
    .ec-newsBlockRole .ec-newsBlockRole__list .slick-slider .slick-arrow {
      font-size: 1rem;
      width: 2em;
      height: 2em;
      background: #a9894a;
      color: #fff;
      opacity: 1; }
    .ec-newsBlockRole .ec-newsBlockRole__list .slick-slider .slick-arrow.slick-prev {
      top: auto;
      bottom: calc(100% + 3.906vw);
      left: auto;
      right: -3.906vw;
      transform: translate(-100%, -7px);
      margin-right: 2px; }
    .ec-newsBlockRole .ec-newsBlockRole__list .slick-slider .slick-arrow.slick-next {
      top: auto;
      bottom: calc(100% + 3.906vw);
      left: auto;
      right: -3.906vw;
      transform: translate(0, -7px); }
    .ec-newsContainerRole .ec-newsContainerRole__block1,
    .ec-newsContainerRole .ec-newsContainerRole__block2,
    .ec-newsContainerRole .ec-newsContainerRole__block3,
    .ec-newsContainerRole .ec-newsContainerRole__block4 {
      padding: 3.906vw; }
      .ec-newsContainerRole .ec-newsContainerRole__block1 .ec-secHeading,
      .ec-newsContainerRole .ec-newsContainerRole__block2 .ec-secHeading,
      .ec-newsContainerRole .ec-newsContainerRole__block3 .ec-secHeading,
      .ec-newsContainerRole .ec-newsContainerRole__block4 .ec-secHeading {
        margin-bottom: 3.906vw; }
        .ec-newsContainerRole .ec-newsContainerRole__block1 .ec-newsBlockRole .ec-newsBlockRole__list,
        .ec-newsContainerRole .ec-newsContainerRole__block2 .ec-newsBlockRole .ec-newsBlockRole__list,
        .ec-newsContainerRole .ec-newsContainerRole__block3 .ec-newsBlockRole .ec-newsBlockRole__list,
        .ec-newsContainerRole .ec-newsContainerRole__block4 .ec-newsBlockRole .ec-newsBlockRole__list {
          padding: 3.906vw; }
  .ec-newsListRole {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
      .ec-newsListRole .ec-newsListRole__item .image {
        width: 130px; }
    .news_template.template_B .content, .news_template.template_C .content {
      margin-top: 1em; }
    .news_template.template_D .content + .content {
      margin-top: 1em; }
    .news_template.template_E .wrap {
      display: flex;
      flex-flow: row wrap;
      margin-left: -10px;
      margin-right: -10px;
      margin-top: -20px; }
      .news_template.template_E .wrap .content {
        flex: 0 0 50%;
        margin-top: 20px;
        padding: 0 10px; }
        .news_template.template_E .wrap .content:nth-child(1) {
          flex-basis: 100%; }
        .news_template.template_E .wrap .content h3 {
          margin: 0; }
        .news_template.template_E .wrap .content p {
          margin: 1rem 0 2rem; }
    .ec-pagerRole {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
  .ec-contactRole, .ec-contactConfirmRole {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
  .ec-contactRole .ec-borderedDefs > dl > dt, .ec-contactConfirmRole .ec-borderedDefs > dl > dt {
    width: 30%;
    vertical-align: middle; }
  .ec-contactCompleteRole {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
    .ec-404Role {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
      .ec-404Role .ec-404Role__title {
        font-size: 4rem; }
      .ec-404Role .ec-404Role__subtitle {
        font-size: 1.5rem; }
    .ec-notFoundRole {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-helpRole section + section {
      margin-top: 40px; }
    .ec-helpProcedureRole {
      margin-left: -3.906vw;
      margin-right: -3.906vw;
      padding: 3.906vw; }
    .ec-helpProcedureRole .ec-helpProcedureRole__item {
      display: flex;
      margin-top: 3.906vw; }
      .ec-helpProcedureRole .ec-helpProcedureRole__content {
        order: 2;
        padding-left: 1em;
        margin: 0; }
      .ec-helpProcedureRole .ec-helpProcedureRole__fig {
        order: 1;
        flex: 0 0 auto;
        width: 400px;
        margin: 0; }
  .ec-helpIndexRole .ec-helpIndexRole__item {
    margin-top: 3.906vw;
    margin-bottom: 3.906vw; }
  .ec-helpMapRole {
    margin-top: 3.906vw; }
        .ec-faqSearch .ec-faqSearch__input input[type=text] {
          padding-right: 9em; }
        .ec-faqSearch .ec-faqSearch__input button {
          width: 8em; }
    .ec-faqRole .ec-faqRole__section {
      margin-top: 3.906vw;
      margin-bottom: 3.906vw;
      padding-top: 3.906vw; }
  .ec-blogListRole .ec-blogListRole__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -30px; }
    .ec-blogListRole .ec-blogListRole__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 15px ) / 2);
      margin-left: 15px;
      margin-top: 30px; }
      .ec-blogListRole .ec-blogListRole__list > *:nth-child(2n+1) {
        margin-left: 0; }
    .ec-blogDetailRole .ec-blogDetailRole__share {
      margin: 3.906vw 0; }
    .ec-blogDetailRole .ec-blogDetailRole__pager {
      margin: 3.906vw 0; }
    .blog_template.template_B .content, .blog_template.template_C .content {
      margin-top: 1em; }
    .blog_template.template_E .wrap {
      display: flex;
      flex-flow: row wrap;
      margin-left: -10px;
      margin-right: -10px;
      margin-top: -20px; }
      .blog_template.template_E .wrap .content {
        flex: 0 0 50%;
        margin-top: 20px;
        padding: 0 10px; }
        .blog_template.template_E .wrap .content:nth-child(1) {
          flex-basis: 100%; }
        .blog_template.template_E .wrap .content h3 {
          margin: 0; }
        .blog_template.template_E .wrap .content p {
          margin: 1rem 0 2rem; }
    .ec-blogNewsPostTop {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-blogNewsPostTop {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
    .ec-blogNewsPostTop .ec-blogNewsPostTop__list .wrap {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: 0; }
      .ec-blogNewsPostTop .ec-blogNewsPostTop__list .wrap > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 2px ) / 3);
        margin-left: 1px;
        margin-top: 0; }
        .ec-blogNewsPostTop .ec-blogNewsPostTop__list .wrap > *:nth-child(3n+1) {
          margin-left: 0; }
    .ec-blogNewsPostTop .ec-blogNewsPostTop__listItem:nth-child(n+4) {
      display: none; }
    .ec-moreInformationRole {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-moreInformationRole {
      padding-top: 5.859vw;
      padding-bottom: 5.859vw; }
      .ec-moreInformationRole .ec-moreInformationRole__item {
        width: calc((100% - 60px) / 2);
        margin: 15px; }
  .ec-pageServiceList .ec-pageServiceList__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -1px; }
    .ec-pageServiceList .ec-pageServiceList__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 1px ) / 2);
      margin-left: 1px;
      margin-top: 1px; }
      .ec-pageServiceList .ec-pageServiceList__list > *:nth-child(2n+1) {
        margin-left: 0; }
        .ec-pageServiceList .ec-pageServiceList__item .content .text {
          display: none; }
  .ec-serviceIndexContent1 .ec-serviceIndexContent1__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px;
    margin-top: 0; }
    .ec-serviceIndexContent1 .ec-serviceIndexContent1__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 2);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-serviceIndexContent1 .ec-serviceIndexContent1__list > *:nth-child(2n+1) {
        margin-left: 0; }
  .ec-serviceIndexContent1 .ec-serviceIndexContent1__item {
    background-color: #ad8d4a; }
  .ec-serviceIndexContent1 .ec-serviceIndexContent1__item .content {
    width: 100%;
    padding: 3.906vw; }
    .ec-serviceIndexContent1 .ec-serviceIndexContent1__item .bgBox {
      aspect-ratio: 950 / 593; }
    .ec-serviceIndexContent2 .ec-serviceIndexContent2__wrap {
      flex-flow: column; }
    .ec-serviceIndexContent2 .ec-serviceIndexContent2__image {
      padding-top: 40vw; }
    .ec-serviceIndexContent2 .ec-serviceIndexContent2__content {
      padding: 3.906vw; }
      .ec-serviceIndexContent2 .ec-serviceIndexContent2__content .title {
        font-size: 1.7rem;
        margin: 0 0 1em;
        text-align: center; }
  .ec-serviceIndexContent3 {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
    .ec-serviceOurActivity {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-serviceOurActivity .ec-serviceOurActivity__list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -30px; }
      .ec-serviceOurActivity .ec-serviceOurActivity__list > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 30px ) / 2);
        margin-left: 30px;
        margin-top: 30px; }
        .ec-serviceOurActivity .ec-serviceOurActivity__list > *:nth-child(2n+1) {
          margin-left: 0; }
    .ec-serviceOurActivity .ec-serviceOurActivity__item .content {
      margin-top: 1rem; }
    .ec-serviceInstagramRole {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
      .ec-serviceInstagramRole .ec-serviceInstagramRole__list {
        margin: 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex-flow: row wrap;
        margin-top: 0px; }
        .ec-serviceInstagramRole .ec-serviceInstagramRole__list > * {
          flex: 0 0 auto;
          width: calc((100% - 1px - 0px ) / 4);
          margin-left: 0px;
          margin-top: 0px; }
          .ec-serviceInstagramRole .ec-serviceInstagramRole__list > *:nth-child(4n+1) {
            margin-left: 0; }
          .ec-serviceInstagramRole .ec-serviceInstagramRole__list li .popup {
            display: none; }
  .ec-serviceIndexContent4 {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
  .ec-serviceOurAchievement .ec-serviceOurAchievement__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px; }
    .ec-serviceOurAchievement .ec-serviceOurAchievement__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 2);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-serviceOurAchievement .ec-serviceOurAchievement__list > *:nth-child(2n+1) {
        margin-left: 0; }
        .ec-serviceOurAchievement .ec-serviceOurAchievement__item .content .text {
          display: none; }
  .ec-serviceIndexContent5 {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
  .ec-serviceOurSolution {
    margin-top: 50px;
    padding-left: 3.906vw;
    padding-right: 3.906vw; }
    .ec-serviceOurSolution .slick-slider .slick-arrow {
      font-size: 1rem;
      width: 2em;
      height: 2em;
      background: #a9894a;
      color: #fff;
      opacity: 1; }
    .ec-serviceOurSolution .slick-slider .slick-arrow.slick-prev {
      top: auto;
      bottom: 100%;
      left: auto;
      right: 0;
      transform: translate(-100%, -7px);
      margin-right: 2px; }
    .ec-serviceOurSolution .slick-slider .slick-arrow.slick-next {
      top: auto;
      bottom: 100%;
      left: auto;
      right: 0;
      transform: translate(0, -7px); }
    .ec-serviceContentBtnRole {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
    .ec-serviceIndexBanner {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-serviceIndexBanner {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
    .ec-serviceDetailRole {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-serviceDetailRole {
      padding-top: 5.859vw;
      padding-bottom: 5.859vw; }
  .ec-noveltyListRole {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
  .ec-noveltyListRole .ec-noveltyListRole__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -10px;
    margin-top: 0; }
    .ec-noveltyListRole .ec-noveltyListRole__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 10px ) / 2);
      margin-left: 10px;
      margin-top: 10px; }
      .ec-noveltyListRole .ec-noveltyListRole__list > *:nth-child(2n+1) {
        margin-left: 0; }
    .ec-noveltyFlowRole {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-noveltyFlowRole {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
      .ec-noveltyFlowRole .ec-noveltyFlowRole__item {
        display: flex;
        align-items: center;
        min-height: 90px;
        border-radius: 45px;
        padding: 0em 30px; }
      .ec-noveltyFlowRole .ec-noveltyFlowRole__caution {
        margin-top: 3.906vw;
        padding: 0 3.906vw; }
      .ec-pagePerformanceList .ec-pagePerformanceList__item .content {
        padding: 3.906vw;
        position: relative; }
        .ec-pagePerformanceList .ec-pagePerformanceList__item .content .tag {
          bottom: 100%;
          right: 0; }
  .ec-pageFeelingsHeader {
    display: flex;
    flex-flow: row wrap;
    padding: 0 3.906vw 3.906vw; }
    .ec-pageFeelingsHeader .ec-pageFeelingsHeader__fig {
      order: 2;
      flex: 0 0 50%;
      display: flex; }
      .ec-pageFeelingsHeader .ec-pageFeelingsHeader__fig .fig {
        flex: 0 0 50%;
        text-align: center; }
        .ec-pageFeelingsHeader .ec-pageFeelingsHeader__fig .fig img {
          width: 120px; }
    .ec-pageFeelingsHeader .ec-pageFeelingsHeader__content {
      order: 1;
      flex: 0 0 100%;
      padding: 7vw 0;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
      display: flex;
      flex-flow: column;
      justify-content: center; }
      .ec-pageFeelingsHeader .ec-pageFeelingsHeader__content .title {
        font-family: "Noto Serif JP", serif;
        font-size: 2rem;
        font-weight: 400;
        line-height: 1.5;
        margin: 0;
        margin-left: 1.5em; }
      .ec-pageFeelingsHeader .ec-pageFeelingsHeader__content .description {
        font-family: "Noto Serif JP", serif;
        font-size: 1.2rem;
        line-height: 2.2; }
        .ec-pageFeelingsHeader .ec-pageFeelingsHeader__content .description span {
          display: block; }
          .ec-pageFeelingsHeader .ec-pageFeelingsHeader__content .description span + br {
            display: none; }
  .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content {
    padding: 3.906vw; }
    .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .subtitle {
      text-align: center; }
      .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .subtitle span {
        display: inline-block; }
    .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .title {
      font-size: 2rem;
      text-align: center;
      margin: 1em 0; }
  .ec-pageFeelingsContent .ec-pageFeelingsContent__article .image {
    height: 0;
    padding-top: 50vw; }
  .ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea {
    margin-top: 3.906vw; }
    .ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea .ec-blockDetailBtn, .ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea .ec-blockDetailBtn--center, .ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel, .ec-progressAction .ec-progressAction__actions .ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea .ec-blockBtn--cancel,
    .ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action, .ec-progressAction .ec-progressAction__actions .ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea .ec-blockBtn--action {
      width: 240px; }
    .ec-pageCompanyIndex {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
    .ec-pageCompanyIndex .ec-pageCompanyIndex__list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -15px; }
      .ec-pageCompanyIndex .ec-pageCompanyIndex__list > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 0px ) / 2);
        margin-left: 0px;
        margin-top: 15px; }
        .ec-pageCompanyIndex .ec-pageCompanyIndex__list > *:nth-child(2n+1) {
          margin-left: 0; }
    .ec-personArticleRole .ec-personArticleRole__article {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
    .ec-personArticleRole .shelfLayout-001 {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -15px; }
      .ec-personArticleRole .shelfLayout-001 > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 30px ) / 3);
        margin-left: 15px;
        margin-top: 15px; }
        .ec-personArticleRole .shelfLayout-001 > *:nth-child(3n+1) {
          margin-left: 0; }
      .ec-personArticleRole .shelfLayout-001 .item {
        display: block; }
        .ec-personArticleRole .shelfLayout-001 .item .content {
          padding: 0;
          margin-top: .5rem; }
    .ec-personArticleRole .shelfLayout-002 {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -15px; }
      .ec-personArticleRole .shelfLayout-002 > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 0px ) / 2);
        margin-left: 0px;
        margin-top: 15px; }
        .ec-personArticleRole .shelfLayout-002 > *:nth-child(2n+1) {
          margin-left: 0; }
    .ec-policyArticleRole .ec-policyArticleRole__article {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
  .ec-historyArticleRole {
    margin-left: -3.906vw;
    margin-right: -3.906vw; }
    .ec-historyArticleRole .ec-historyArticleRole__chronology {
      width: 6em;
      font-size: 1.3rem; }
      .ec-companyInfoArticleRole .map .map_container {
        padding-top: 50vh; }
  .ec-companyGroupArticleRole .ec-companyGroupArticleRole__row {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
  .ec-companyGroupArticleRole .ec-companyGroupArticleRole__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -30px; }
    .ec-companyGroupArticleRole .ec-companyGroupArticleRole__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 20px ) / 2);
      margin-left: 20px;
      margin-top: 30px; }
      .ec-companyGroupArticleRole .ec-companyGroupArticleRole__list > *:nth-child(2n+1) {
        margin-left: 0; }
    .ec-csrIndexList {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
        .ec-csrIndexList .ec-csrIndexList__item .content {
          padding: 3.906vw; }
  .ec-companyPublicationArticleRole .ec-companyPublicationArticleRole__row {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
  .ec-publicationListRole {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -20px; }
    .ec-publicationListRole > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 2);
      margin-left: 0px;
      margin-top: 20px; }
      .ec-publicationListRole > *:nth-child(2n+1) {
        margin-left: 0; }
  .ec-publicationTalkListRole {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -20px; }
    .ec-publicationTalkListRole > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 2);
      margin-left: 0px;
      margin-top: 20px; }
      .ec-publicationTalkListRole > *:nth-child(2n+1) {
        margin-left: 0; }
    .ec-beforeAfterViewRole {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
  .ec-publicGalleryViewRole {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -30px; }
    .ec-publicGalleryViewRole > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 15px ) / 2);
      margin-left: 15px;
      margin-top: 30px; }
      .ec-publicGalleryViewRole > *:nth-child(2n+1) {
        margin-left: 0; }
  .ec-publicTalkArticleRole .ec-publicTalkArticleRole__article {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
  .ec-publicTalkArticleRole .ec-publicTalkArticleRole__article .pic {
    width: 50%;
    margin-bottom: 1em; }
    .ec-publicTalkArticleRole .ec-publicTalkArticleRole__article .pic.left {
      float: left;
      transform: translateX(-3.906vw); }
    .ec-publicTalkArticleRole .ec-publicTalkArticleRole__article .pic.right {
      float: right;
      transform: translateX(3.906vw); }
  .ec-csrArticleRole .ec-csrArticleRole__article {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
  .ec-csrLayoutWithPic:after {
    content: "";
    display: table;
    clear: both; }
  .ec-csrLayoutWithPic .pic {
    width: 50%;
    margin-bottom: 1em; }
    .ec-csrLayoutWithPic .pic.left {
      float: left;
      transform: translateX(-3.906vw); }
    .ec-csrLayoutWithPic .pic.right {
      float: right;
      transform: translateX(3.906vw); }
  .ec-csrLayoutPerformance {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -30px; }
    .ec-csrLayoutPerformance > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 1);
      margin-left: 0px;
      margin-top: 30px; }
      .ec-csrLayoutPerformance > *:nth-child(1n+1) {
        margin-left: 0; }
    .ec-companySdgsArticleRole .ec-companySdgsArticleRole__goals .image {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
  .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
  .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi {
    display: flex;
    max-width: 1120px;
    margin-left: auto;
    margin-right: auto; }
    .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box1 {
      flex: 0 0 auto;
      width: 20%; }
    .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 {
      flex: 1 1 auto;
      margin-left: 2rem; }
  .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 .torikumi_list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -15px;
    margin-top: 3.906vw; }
    .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 .torikumi_list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 30px ) / 3);
      margin-left: 15px;
      margin-top: 15px; }
      .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 .torikumi_list > *:nth-child(3n+1) {
        margin-left: 0; }
    .ec-sdgsArticleRole {
      margin-left: -3.906vw;
      margin-right: -3.906vw;
      padding-left: 3.906vw;
      padding-right: 3.906vw;
      margin-top: 3.906vw;
      padding-bottom: 3.906vw; }
    .ec-sdgsArticleRole .ec-sdgsArticleRole__content .sdgs_article {
      margin-top: 3.906vw; }
      .ec-sdgsArticleRole .ec-sdgsArticleRole__content .sdgs_article .content {
        margin-top: 1.5rem; }
  .ec-pageGoldleafIndex {
    margin-bottom: 3.906vw; }
  .ec-pageGoldleafIndex .ec-pageGoldleafIndex__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px; }
    .ec-pageGoldleafIndex .ec-pageGoldleafIndex__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 2);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-pageGoldleafIndex .ec-pageGoldleafIndex__list > *:nth-child(2n+1) {
        margin-left: 0; }
      .ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .image .overtitle {
        padding: 0; }
  .ec-pageGoldleafIndex .ec-pageGoldleafIndex__item {
    display: flex;
    flex-flow: column; }
    .ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .linkbtn {
      margin: auto 0 0; }
      .ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .linkbtn a {
        margin-top: 0; }
  .ec-goldleafFlow {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
  .ec-goldleafFlowMethod {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
  .ec-goldleafHistory .ec-goldleafHistory__article {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
    .ec-goldleafHistory .ec-goldleafHistory__article .image {
      margin-top: 1.5rem; }
    .ec-pageSupportIndex {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
    .ec-pageSupportIndex {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
      .ec-pageSupportIndex .ec-pageSupportIndex__item {
        margin-top: 10px;
        padding: 20px 20px; }
        .ec-pageSupportIndex .ec-pageSupportIndex__item .ec-blockDetailBtn, .ec-pageSupportIndex .ec-pageSupportIndex__item .ec-blockDetailBtn--center, .ec-pageSupportIndex .ec-pageSupportIndex__item .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel, .ec-progressAction .ec-progressAction__actions .ec-pageSupportIndex .ec-pageSupportIndex__item .ec-blockBtn--cancel,
        .ec-pageSupportIndex .ec-pageSupportIndex__item .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action, .ec-progressAction .ec-progressAction__actions .ec-pageSupportIndex .ec-pageSupportIndex__item .ec-blockBtn--action {
          width: 350px;
          margin: 0 auto; }
  .ec-pageStudioContent {
    margin-top: 5.859vw;
    margin-bottom: 5.859vw; }
    .ec-pageStudioContent .ec-pageStudioContent__head {
      padding-left: 3.906vw;
      padding-right: 3.906vw; }
  .ec-pageStudioContent .ec-pageStudioContent__photo.col3 {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px;
    margin-top: 3.906vw; }
    .ec-pageStudioContent .ec-pageStudioContent__photo.col3 > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 2px ) / 3);
      margin-left: 1px;
      margin-top: 0px; }
      .ec-pageStudioContent .ec-pageStudioContent__photo.col3 > *:nth-child(3n+1) {
        margin-left: 0; }
  .ec-pageStudioContent .ec-pageStudioContent__photo.col4 {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px;
    margin-top: 3.906vw; }
    .ec-pageStudioContent .ec-pageStudioContent__photo.col4 > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 3px ) / 4);
      margin-left: 1px;
      margin-top: 0px; }
      .ec-pageStudioContent .ec-pageStudioContent__photo.col4 > *:nth-child(4n+1) {
        margin-left: 0; }
    .ec-pageStudioContact {
      margin-top: 5.859vw;
      margin-bottom: 5.859vw; }
    .ec-pageStudioContact {
      padding: 3.906vw; }
      .ec-pageStudioContact .ec-blockDetailBtn--center {
        margin-top: 3.906vw;
        margin-bottom: 0; } }
@media only screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1279px) {
    .ec-progressFlowPicture {
      margin: 3.906vw auto; } }
@media (min-width: 980px) and (max-width: 1279px) {
  .ec-shelfGrid {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px; }
    .ec-shelfGrid > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 3);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-shelfGrid > *:nth-child(3n+1) {
        margin-left: 0; } }
@media (min-width: 1280px) {
  .ec-shelfGrid {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px; }
    .ec-shelfGrid > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 4);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-shelfGrid > *:nth-child(4n+1) {
        margin-left: 0; } }
@media (min-width: 1280px) and (max-width: 1500px) {
  .ec-pageFeelingsHeader {
    padding: 7vw 3vw !important; }
  .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content {
    width: 50% !important;
    padding: 5vw 1em !important; } }
@media (min-width: 1280px) and (max-width: 1699px) {
      .additional.mobile {
        font-size: 1rem;
        padding: 1em 40px; }
      .additional.desktop {
        display: none; } }
@media (min-width: 1480px) {
    .ec-footerTitle .ec-footerTitle__bannerLink {
      position: absolute;
      top: 20px;
      right: 100px; } }
@media (min-width: 1500px) {
        .ec-pageWithNavVisualHeader.greeting .ec-pageWithNavVisualHeader__title .title {
          font-size: 30px; } }
@media (min-width: 1700px) {
      .additional.mobile {
        display: none; } }
@media (min-width: 1840px) {
    .ec-newsBlockRole .ec-newsBlockRole__list .slick-slider .slick-arrow.slick-prev {
      right: calc(100% + 40px) !important; }
    .ec-newsBlockRole .ec-newsBlockRole__list .slick-slider .slick-arrow.slick-next {
      left: calc(100% + 40px) !important; } }
@media (max-width: 1279px) {
  #valid_infoarea {
    display: block;
    width: 100%;
    height: auto;
    padding: 10px;
    text-align: center;
    border-radius: 0;
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    transform: translateY(0);
    border: none;
    background-color: #777;
    color: #fff; }
    #valid_infoarea .info_head {
      display: inline-block;
      width: auto;
      padding: .25em .5em; }
    #valid_infoarea .info_body {
      display: inline-block;
      width: auto;
      background-color: transparent;
      margin-left: 0.5em; }
    #valid_infoarea .remain {
      font-size: 1em; }
    #valid_infoarea.is-complete {
      background-color: #369b00;
      color: #fff; }
      #valid_infoarea.is-complete .info_body {
        background-color: transparent; }
          .ec-blogDetailRole .ec-blogDetailRole__share ul li a {
            min-width: auto;
            width: 35px;
            height: 35px;
            border-radius: 50%;
            border: none; }
            .ec-blogDetailRole .ec-blogDetailRole__share ul li a.fb {
              background-color: #3B5999;
              color: #fff; }
            .ec-blogDetailRole .ec-blogDetailRole__share ul li a.tw {
              background-color: #000;
              color: #fff; }
            .ec-blogDetailRole .ec-blogDetailRole__share ul li a.pi {
              background-color: #cb2027;
              color: #fff; }
            .ec-blogDetailRole .ec-blogDetailRole__share ul li a i {
              margin: 0;
              font-size: 18px; }
            .ec-blogDetailRole .ec-blogDetailRole__share ul li a span {
              display: none; } }
@media only screen and (max-width: 1279px) {
        .ec-footerSocial .ec-footerSocial__itemList li a {
          color: #fff; }
        .ec-footerSocial .ec-footerSocial__itemList li.facebook a {
          background-color: #3B5999; }
        .ec-footerSocial .ec-footerSocial__itemList li.twitter a {
          background-color: #000; }
        .ec-footerSocial .ec-footerSocial__itemList li.instagram a {
          background-color: #f00075; } }
@media (max-width: 767px) {
  .ec-shelfGrid {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px; }
    .ec-shelfGrid > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 2);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-shelfGrid > *:nth-child(2n+1) {
        margin-left: 0; } }
@media only screen and (max-width: 767px) {
  html {
    font-size: 3.73333vw; }
  .dl_table.rwd dl {
    margin: 0;
    border: none !important;
    background-color: transparent !important; }
  .dl_table.rwd dt {
    display: block;
    padding: 0.5em;
    margin-bottom: 0.5em;
    background-color: #f0f0f0; }
  .dl_table.rwd dd {
    display: block;
    padding: 0 0 1em; }
    .ec-debugRole {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-debugRole {
      margin-top: 6.25vw; }
      .ec-article ul {
        padding-left: 2rem; }
      .ec-article ol {
        padding-left: 2rem; }
    .ec-pageHeader h1,
    .ec-pageHeader .ec-pageHeader__title {
      margin-left: -6.25vw;
      margin-right: -6.25vw;
      padding: 0.85em 6.25vw;
      font-size: 1.2rem;
      border-bottom: solid 1px #ddd;
      margin-bottom: 1em; }
      .ec-pageVisualHeader .ec-pageVisualHeader__inner {
        padding-left: 6.25vw;
        padding-right: 6.25vw; }
      .ec-pageVisualHeader .ec-pageVisualHeader__inner {
        height: 40vw; }
        .ec-pageVisualHeader .ec-pageVisualHeader__title h1 {
          font-size: 1.7rem; }
        .ec-pageVisualHeader .ec-pageVisualHeader__title .subtitle {
          font-size: 1rem; }
    .ec-pageVisualHeader.vertical .ec-pageVisualHeader__title {
      text-align: center; }
    .ec-pageVisualHeader.vertical2 .ec-pageVisualHeader__title {
      text-align: center; }
    .ec-pageHeaderIntro .ec-pageHeaderIntro__inner {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-pageHeaderIntro .ec-pageHeaderIntro__inner {
      padding-top: 9.375vw;
      padding-bottom: 9.375vw; }
    .ec-pageHeaderIntro .ec-pageHeaderIntro__content .title {
      font-size: 1.7rem; }
      .ec-pageHeaderIntro .ec-pageHeaderIntro__content .title br {
        display: none; }
      .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__inner {
        padding-left: 6.25vw;
        padding-right: 6.25vw; }
      .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__inner {
        padding-top: 9.375vw;
        padding-bottom: 9.375vw; }
      .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__inner {
        display: block; }
        .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__content .title {
          font-size: 1.7rem; }
          .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__content .title br {
            display: none; }
    .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__image {
      text-align: center; }
      .ec-secHeading.wide {
        padding-top: 9.375vw;
        padding-bottom: 9.375vw; }
    .ec-reportHeading {
      text-align: left; }
    .ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__inner {
      padding: 6.25vw;
      padding-top: 0; }
      .ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__title {
        -ms-writing-mode: unset;
            writing-mode: unset;
        height: auto;
        font-size: 1.7rem;
        padding: 2.25em 0; }
      .ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__content {
        -ms-writing-mode: unset;
            writing-mode: unset;
        padding: 0; }
        .ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__content .title {
          font-size: 1.46rem;
          line-height: 1.5;
          margin: 0 0 1em;
          text-align: center; }
      .ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__content .description {
        font-size: 1rem;
        line-height: 2; }
  .ec-borderedDefs > dl {
    padding: 0.5em 0; }
    .ec-borderedDefs > dl > dt {
      display: block;
      padding-bottom: 0.5em;
      border-bottom: 1px solid #d6d6d6; }
    .ec-borderedDefs > dl > dd {
      display: block;
      padding: 1rem 0; }
    .ec-blockDetailBtn, .ec-blockDetailBtn--center, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel,
    .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action {
      width: 100%; }
    .ec-pageGoBack {
      margin-top: 6.25vw;
      padding-left: 6.25vw;
      padding-right: 6.25vw;
      flex-flow: column; }
      .ec-pageGoBack li {
        margin: 0; }
        .ec-pageGoBack li:nth-child(n+2) {
          margin-top: 15px; }
        .ec-pageGoBack li a {
          display: flex;
          width: 100%; }
      .ec-floatNavRole .ec-floatNavRole__guide {
        display: none; }
    .ec-blockGuideBtn {
      font-size: 20px;
      width: 40px;
      height: 40px; }
    .ec-blockTopBtn {
      font-size: 20px;
      width: 40px;
      height: 40px; }
    .ec-label {
      font-weight: 500; }
    .ec-loginRole .ec-loginRole__guest {
      margin-top: 6.25vw;
      padding: 6.25vw; }
    .ec-totalBox {
      padding: 0.5em 1em 1em; }
    .ec-navlistRole {
      position: relative; }
      .ec-navlistRole .ec-navlistRole__navlist {
        display: none; }
      .ec-navlistRole .mypageMenuBtn {
        display: block;
        font-size: 0.8rem;
        position: absolute;
        top: 0;
        right: 0;
        cursor: pointer;
        padding-left: .5em; }
        .ec-navlistRole .mypageMenuBtn i {
          display: inline-block;
          vertical-align: -0.18em;
          font-size: 1.4em;
          margin-right: 3px;
          opacity: 0.6; }
        body.LC_Page_Mypage_RefusalComplete .ec-navlistRole .mypageMenuBtn {
          display: none; }
  .ec-favoriteRole .ec-favoriteRole__itemList {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -20px; }
    .ec-favoriteRole .ec-favoriteRole__itemList > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 10px ) / 2);
      margin-left: 10px;
      margin-top: 20px; }
      .ec-favoriteRole .ec-favoriteRole__itemList > *:nth-child(2n+1) {
        margin-left: 0; }
  .ec-progressFlow {
    margin: 6.25vw 0;
    padding: 0;
    font-size: 0.714rem;
    line-height: 1;
    display: flex;
    height: 3em;
    box-sizing: border-box;
    background-color: #fff;
    border: solid 1px #ddd;
    color: #999; }
    .ec-progressFlow .ec-progressFlow__item {
      flex: 1 1 auto;
      display: flex;
      align-items: center;
      justify-content: center;
      height: 100%;
      position: relative; }
      .ec-progressFlow .ec-progressFlow__item:nth-child(n+2) {
        padding-left: 0.5em; }
      .ec-progressFlow .ec-progressFlow__item:after {
        content: "";
        border-top: solid 1.5em transparent;
        border-bottom: solid 1.5em transparent;
        border-left: solid 0.5em #fff;
        position: absolute;
        top: 0;
        left: 100%;
        margin-left: -1px;
        z-index: 2; }
      .ec-progressFlow .ec-progressFlow__item:before {
        content: "";
        border-top: solid 1.5em transparent;
        border-bottom: solid 1.5em transparent;
        border-left: solid 0.5em #ddd;
        position: absolute;
        top: 0;
        left: 100%;
        margin-left: 0;
        z-index: 1; }
      .ec-progressFlow .ec-progressFlow__item:last-child:before, .ec-progressFlow .ec-progressFlow__item:last-child:after {
        display: none; }
    .ec-progressFlow .ec-progressFlow__number {
      display: none; }
    .ec-progressFlow .ec-progressFlow__image {
      display: none; }
    .ec-progressFlow .ec-progressFlow__item.is-current {
      background-color: #A9894A;
      color: #fff; }
      .ec-progressFlow .ec-progressFlow__item.is-current:after {
        border-left-color: #A9894A; }
  .ec-progressFlowPicture {
    margin: 6.25vw 0;
    padding: 0;
    font-size: 0.714rem;
    line-height: 1;
    display: flex;
    height: 3em;
    box-sizing: border-box;
    background-color: #fff;
    border: solid 1px #ddd;
    color: #999; }
    .ec-progressFlowPicture .ec-progressFlowPicture__item {
      flex: 1 1 auto;
      display: flex;
      align-items: center;
      justify-content: center;
      height: 100%;
      position: relative; }
      .ec-progressFlowPicture .ec-progressFlowPicture__item:nth-child(n+2) {
        padding-left: 0.5em; }
      .ec-progressFlowPicture .ec-progressFlowPicture__item:after {
        content: "";
        border-top: solid 1.5em transparent;
        border-bottom: solid 1.5em transparent;
        border-left: solid 0.5em #fff;
        position: absolute;
        top: 0;
        left: 100%;
        margin-left: -1px;
        z-index: 2; }
      .ec-progressFlowPicture .ec-progressFlowPicture__item:before {
        content: "";
        border-top: solid 1.5em transparent;
        border-bottom: solid 1.5em transparent;
        border-left: solid 0.5em #ddd;
        position: absolute;
        top: 0;
        left: 100%;
        margin-left: 0;
        z-index: 1; }
      .ec-progressFlowPicture .ec-progressFlowPicture__item:last-child:before, .ec-progressFlowPicture .ec-progressFlowPicture__item:last-child:after {
        display: none; }
    .ec-progressFlowPicture .ec-progressFlowPicture__number {
      display: none; }
    .ec-progressFlowPicture .ec-progressFlowPicture__image {
      display: none; }
    .ec-progressFlowPicture .ec-progressFlowPicture__item.is-current {
      background-color: #A9894A;
      color: #fff; }
      .ec-progressFlowPicture .ec-progressFlowPicture__item.is-current:after {
        border-left-color: #A9894A; }
  .ec-progressAction {
    margin-top: 6.25vw; }
    .ec-progressAction .ec-progressAction__message {
      margin-bottom: 6.25vw; }
    .ec-progressAction .ec-progressAction__actions {
      display: block; }
      .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel,
      .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action {
        margin: 1em 0; }
    .ec-pageTurnNav {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
    .ec-role {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-mypageRole {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-pageWithNavRole {
      flex-flow: row wrap; }
      .ec-pageWithNavRole .ec-pageWithNavRole__left {
        width: 100%;
        padding: 6.25vw; }
    .ec-pageWithNavRole .ec-pageWithNavRole__body {
      /*
      width: 100%;
      padding-left: $padding-sphone;
      padding-right: $padding-sphone;
      */
      padding: 6.25vw; }
        .ec-pageWithNavRole .ec-pageWithNavRole__nav ul {
          display: block;
          font-size: 1rem; }
    .ec-pageWithNavRole .btnNavToggle {
      top: 45px;
      left: auto;
      right: 0;
      transform: rotate(90deg); }
    .ec-pageWithNavRole.is-navClose .btnNavToggle {
      -webkit-animation: none;
              animation: none; }
    .ec-pageWithNavVisualHeader .ec-pageWithNavVisualHeader__inner {
      height: 50vw;
      padding: 6.25vw; }
    .ec-pageWithNavVisualHeader.founder .ec-pageWithNavVisualHeader__title .title {
      font-size: 1.2rem; }
        .ec-pageWithNavVisualHeader.greeting .ec-pageWithNavVisualHeader__title {
          width: 54%; }
          .ec-pageWithNavVisualHeader.greeting .ec-pageWithNavVisualHeader__title .title {
            font-size: 1.1rem;
            line-height: 1.5; }
            .ec-pageWithNavVisualHeader.greeting .ec-pageWithNavVisualHeader__title .title br {
              display: none; }
      .ec-pageWithNavVisualHeader.vertical .ec-pageWithNavVisualHeader__title .title, .ec-pageWithNavVisualHeader.public .ec-pageWithNavVisualHeader__title .title {
        font-size: 1.57rem; }
      .ec-pageWithNavVisualHeader.public .ec-pageWithNavVisualHeader__inner {
        height: 60vw; }
    .fixBgBox {
      height: 50vw;
      top: 45px; }
    .fixBgBox.greeting {
      background-position: left -10vw center; }
    .fixBgBox.public {
      height: 60vw; }
  .ec-pageWithNavVisualHeader {
    margin-top: -50vw; }
  .ec-pageWithNavVisualHeader.public {
    margin-top: -60vw; }
      .additional.mobile {
        padding: 1em 6.25vw;
        font-size: .875rem; }
      .additional.desktop {
        display: none; }
    .ec-headerRole {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-headerRole {
      height: 45px;
      padding: 0; }
      .ec-headerRole .ec-headerRole__left {
        flex: 1 1 auto;
        display: flex;
        justify-content: flex-start; }
      .ec-headerRole .ec-headerRole__center {
        display: none; }
      .ec-headerRole .ec-headerRole__right {
        flex: 1 1 auto;
        display: flex;
        justify-content: flex-end; }
    .ec-drawerButton {
      width: 45px;
      height: 45px;
      padding: 10px; }
    .ec-headerTitle {
      height: 100%; }
      .ec-headerTitle a {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        height: 100%; }
        .ec-headerTitle a img {
          height: 35px;
          width: auto; }
      .ec-headerMenu .ec-headerMenu__item.hidden_mobile {
        display: none; }
    .ec-headerMenu .ec-headerMenu__itemPopup {
      display: none; }
    .ec-drawerRole {
      height: calc(100vh - 45px);
      top: 45px;
      padding: 5px 20px 0; }
    .ec-overlayRole {
      height: calc(100vh - 45px);
      top: 45px; }
  .ec-layoutRole {
    padding-top: 45px; }
      .ec-footerGuide .ec-footerGuide__inner {
        padding-left: 6.25vw;
        padding-right: 6.25vw; }
      .ec-footerGuide .ec-footerGuide__inner {
        padding-top: 9.375vw;
        padding-bottom: 9.375vw; }
      .ec-footerNavi .ec-footerNavi__wrap {
        padding-left: 6.25vw;
        padding-right: 6.25vw; }
      .ec-footerNavi .ec-footerNavi__wrap {
        padding-top: 9.375vw;
        padding-bottom: 9.375vw; }
      .ec-footerNavi .ec-footerNavi__item {
        width: 50%; }
        .ec-footerNavi .ec-footerNavi__item:nth-child(n+3) {
          border-top: solid 1px #d6d6d6;
          margin-top: 1.5rem; }
    .ec-footerTitle {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-footerTitle {
      padding-top: 3.125vw;
      padding-bottom: 3.125vw; }
    .ec-footerTitle .ec-footerTitle__bannerLink {
      margin: 10px 0; }
      .ec-footerTitle .ec-footerTitle__bannerLink .item {
        display: block;
        width: 200px;
        margin: 0 auto; }
        .ec-footerTitle .ec-footerTitle__bannerLink .item + .item {
          margin-top: 10px; }
    .ec-footerSocial {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-topicPathRole {
      padding: 8px 10px; }
    .slick-slider .slick-dots,
    .slick-dotsOuter .slick-dots {
      display: none !important; }
      .ec-headPromotionRole .slick-slider .slick-arrow {
        opacity: .5; }
      .ec-headPromotionRole .soundBtn {
        top: 10px;
        right: 10px;
        left: auto;
        bottom: auto; }
        .ec-headPromotionRole .mediaCaption.is-active .inner {
          -webkit-animation: viewCaptionSp .5s forwards 1s;
                  animation: viewCaptionSp .5s forwards 1s; }
      .ec-headPromotionRole .mediaCaption {
        top: auto;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100%;
        max-width: 100%;
        transform: translate(0, 0);
        font-size: 0.9rem;
        transition: transform 0.5s;
        /* キャプション折り畳みボタン */
        /* キャプション折り畳み状態 */ }
        .ec-headPromotionRole .mediaCaption .text_big {
          font-size: 1.2em; }
        .ec-headPromotionRole .mediaCaption .linkBtn {
          position: absolute;
          top: 0;
          right: 0;
          margin: 0; }
        .ec-headPromotionRole .mediaCaption .closeBtn {
          display: block;
          position: absolute;
          top: 0;
          left: 50%;
          font-size: 18px;
          line-height: 1.5;
          width: 1.5em;
          height: 1.5em;
          text-align: center;
          color: #000;
          margin-left: -0.75em;
          pointer-events: auto; }
          .ec-headPromotionRole .mediaCaption .closeBtn:before {
            font-family: 'jeiafont';
            content: "\e902";
            display: block;
            width: 100%;
            height: 100%;
            background-color: transparent;
            transform: rotate(90deg); }
        .ec-headPromotionRole .mediaCaption.is-close {
          transform: translate3d(0, 100%, 0);
          overflow: visible; }
          .ec-headPromotionRole .mediaCaption.is-close .closeBtn {
            transform: translate3d(0, -100%, 0); }
            .ec-headPromotionRole .mediaCaption.is-close .closeBtn:before {
              transform: rotate(-90deg);
              background-color: rgba(255, 255, 255, 0.75);
              border-radius: 0 5px 5px 0; }
      .ec-topConceptRole .ec-topConceptRole__inner {
        padding-left: 6.25vw;
        padding-right: 6.25vw; }
      .ec-topConceptRole .ec-topConceptRole__inner {
        padding-top: 9.375vw;
        padding-bottom: 9.375vw; }
      .ec-topConceptRole .ec-topConceptRole__verticalBox {
        -ms-writing-mode: initial;
            writing-mode: initial; }
      .ec-topConceptRole .ec-topConceptRole__catch {
        margin: 0 0 1em;
        text-align: center; }
      .ec-topConceptRole .ec-topConceptRole__catchtext {
        text-align: center; }
      .ec-topConceptRole .ec-blockDetailBtn--center {
        width: 100%; }
    .ec-topServiceRole {
      padding-top: 9.375vw;
      padding-bottom: 9.375vw; }
      .ec-topServiceRole .ec-topServiceRole__head {
        padding-left: 6.25vw;
        padding-right: 6.25vw; }
    .ec-topServiceRole .ec-topServiceRole__list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -1px; }
      .ec-topServiceRole .ec-topServiceRole__list > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 1px ) / 2);
        margin-left: 1px;
        margin-top: 1px; }
        .ec-topServiceRole .ec-topServiceRole__list > *:nth-child(2n+1) {
          margin-left: 0; }
          .ec-topServiceRole .ec-topServiceRole__item .content .text {
            display: none; }
      .ec-topPerformanceRole .ec-topPerformanceRole__content {
        flex-flow: column; }
        .ec-topPerformanceRole .ec-topPerformanceRole__content .content {
          flex-basis: 100%; }
          .ec-topPerformanceRole .ec-topPerformanceRole__content .content .content_head {
            padding: 6.25vw; }
          .ec-topPerformanceRole .ec-topPerformanceRole__content .content .content_body {
            padding: 6.25vw; }
        .ec-topPerformanceRole .ec-topPerformanceRole__content .image {
          height: 0;
          padding-top: 70vw; }
    .ec-newsBlockRole .ec-newsBlockRole__list .slick-slider .slick-arrow {
      font-size: 1rem;
      width: 2em;
      height: 2em;
      background: #a9894a;
      color: #fff;
      opacity: 1; }
    .ec-newsBlockRole .ec-newsBlockRole__list .slick-slider .slick-arrow.slick-prev {
      top: auto;
      bottom: 100%;
      left: auto;
      right: 0;
      transform: translate(-100%, -5px);
      margin-right: 2px; }
    .ec-newsBlockRole .ec-newsBlockRole__list .slick-slider .slick-arrow.slick-next {
      top: auto;
      bottom: 100%;
      left: auto;
      right: 0;
      transform: translate(0, -5px); }
    .ec-newsContainerRole .ec-newsContainerRole__block1,
    .ec-newsContainerRole .ec-newsContainerRole__block2,
    .ec-newsContainerRole .ec-newsContainerRole__block3,
    .ec-newsContainerRole .ec-newsContainerRole__block4 {
      padding: 6.25vw; }
      .ec-newsContainerRole .ec-newsContainerRole__block1 .ec-secHeading,
      .ec-newsContainerRole .ec-newsContainerRole__block2 .ec-secHeading,
      .ec-newsContainerRole .ec-newsContainerRole__block3 .ec-secHeading,
      .ec-newsContainerRole .ec-newsContainerRole__block4 .ec-secHeading {
        margin-bottom: 6.25vw; }
        .ec-newsContainerRole .ec-newsContainerRole__block1 .ec-newsBlockRole .ec-newsBlockRole__list,
        .ec-newsContainerRole .ec-newsContainerRole__block2 .ec-newsBlockRole .ec-newsBlockRole__list,
        .ec-newsContainerRole .ec-newsContainerRole__block3 .ec-newsBlockRole .ec-newsBlockRole__list,
        .ec-newsContainerRole .ec-newsContainerRole__block4 .ec-newsBlockRole .ec-newsBlockRole__list {
          border: none;
          padding: 0; }
  .ec-newsListRole {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
      .ec-newsListRole .ec-newsListRole__item .image {
        width: 25vw; }
        .ec-newsDetailRole .ec-newsDetailRole__print a {
          width: 100%;
          max-width: 300px; }
    .news_template.template_B .content, .news_template.template_C .content {
      margin-top: 1em; }
    .news_template.template_D .content + .content {
      margin-top: 1em; }
    .news_template.template_E .content p {
      margin-bottom: 1rem; }
    .news_template.template_E .content + .content {
      margin-top: 1em; }
    .ec-pagerRole {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
  .ec-contactRole, .ec-contactConfirmRole {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
  .ec-contactRole .ec-progressAction, .ec-contactConfirmRole .ec-progressAction {
    margin: 0; }
  .ec-contactCompleteRole {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
    .ec-404Role {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
      .ec-404Role .ec-404Role__description {
        text-align: left; }
    .ec-notFoundRole {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-helpRole section + section {
      margin-top: 6.25vw; }
    .ec-helpProcedureRole {
      margin-left: -6.25vw;
      margin-right: -6.25vw;
      padding: 6.25vw; }
      .ec-helpIndexRole .ec-helpIndexRole__item ul li a {
        padding: .75em; }
    .ec-helpIndexRole .ec-helpIndexRole__item ul li + li {
      border-top: dotted 1px #d6d6d6; }
  .ec-helpMapRole {
    margin-top: 6.25vw; }
    .ec-faqRole .ec-faqRole__section {
      margin-top: 6.25vw;
      margin-bottom: 6.25vw;
      padding-top: 6.25vw; }
    .ec-blogListRole .ec-blogListRole__listItem {
      margin-top: 6.25vw; }
    .ec-blogDetailRole .ec-blogDetailRole__share {
      margin: 6.25vw 0; }
    .ec-blogDetailRole .ec-blogDetailRole__pager {
      margin: 6.25vw 0; }
    .blog_template.template_B .content, .blog_template.template_C .content {
      margin-top: 1em; }
    .blog_template.template_E .content p {
      margin-bottom: 1rem; }
    .blog_template.template_E .content + .content {
      margin-top: 1em; }
    .ec-blogNewsPostTop {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-blogNewsPostTop {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
    .ec-blogNewsPostTop .ec-blogNewsPostTop__list .wrap {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: 0; }
      .ec-blogNewsPostTop .ec-blogNewsPostTop__list .wrap > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 2px ) / 3);
        margin-left: 1px;
        margin-top: 0; }
        .ec-blogNewsPostTop .ec-blogNewsPostTop__list .wrap > *:nth-child(3n+1) {
          margin-left: 0; }
    .ec-blogNewsPostTop .ec-blogNewsPostTop__listItem:nth-child(n+4) {
      display: none; }
      .ec-blogNewsPostTop .ec-blogNewsPostTop__listItem .content {
        padding: .75rem .5rem 0; }
        .ec-blogNewsPostTop .ec-blogNewsPostTop__listItem .content .list_comment {
          display: none; }
    .ec-moreInformationRole {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-moreInformationRole {
      padding-top: 9.375vw;
      padding-bottom: 9.375vw; }
      .ec-moreInformationRole .ec-moreInformationRole__item {
        width: 100%;
        margin: 10px 0; }
  .ec-pageServiceList .ec-pageServiceList__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -1px; }
    .ec-pageServiceList .ec-pageServiceList__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 1px ) / 2);
      margin-left: 1px;
      margin-top: 1px; }
      .ec-pageServiceList .ec-pageServiceList__list > *:nth-child(2n+1) {
        margin-left: 0; }
        .ec-pageServiceList .ec-pageServiceList__item .content .text {
          display: none; }
  .ec-serviceIndexContent1 .ec-serviceIndexContent1__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px;
    margin-top: 0; }
    .ec-serviceIndexContent1 .ec-serviceIndexContent1__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 1);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-serviceIndexContent1 .ec-serviceIndexContent1__list > *:nth-child(1n+1) {
        margin-left: 0; }
  .ec-serviceIndexContent1 .ec-serviceIndexContent1__item {
    background-color: #ad8d4a; }
  .ec-serviceIndexContent1 .ec-serviceIndexContent1__item .content {
    width: 100%;
    padding: 6.25vw; }
    .ec-serviceIndexContent1 .ec-serviceIndexContent1__item .bgBox {
      aspect-ratio: 950 / 593; }
    .ec-serviceIndexContent2 .ec-serviceIndexContent2__wrap {
      flex-flow: column; }
    .ec-serviceIndexContent2 .ec-serviceIndexContent2__image {
      padding-top: 40vw; }
    .ec-serviceIndexContent2 .ec-serviceIndexContent2__content {
      padding: 6.25vw; }
      .ec-serviceIndexContent2 .ec-serviceIndexContent2__content .title {
        font-size: 1.5rem;
        margin: 0 0 1em; }
        .ec-serviceIndexContent2 .ec-serviceIndexContent2__content .title br {
          display: none; }
  .ec-serviceIndexContent3 {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
    .ec-serviceOurActivity {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-serviceOurActivity .ec-serviceOurActivity__list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -20px; }
      .ec-serviceOurActivity .ec-serviceOurActivity__list > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 0px ) / 1);
        margin-left: 0px;
        margin-top: 20px; }
        .ec-serviceOurActivity .ec-serviceOurActivity__list > *:nth-child(1n+1) {
          margin-left: 0; }
    .ec-serviceOurActivity .ec-serviceOurActivity__item .content {
      margin-top: 1rem; }
    .ec-serviceInstagramRole {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
      .ec-serviceInstagramRole .ec-serviceInstagramRole__list {
        margin: 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex-flow: row wrap;
        margin-top: 0px; }
        .ec-serviceInstagramRole .ec-serviceInstagramRole__list > * {
          flex: 0 0 auto;
          width: calc((100% - 1px - 0px ) / 2);
          margin-left: 0px;
          margin-top: 0px; }
          .ec-serviceInstagramRole .ec-serviceInstagramRole__list > *:nth-child(2n+1) {
            margin-left: 0; }
          .ec-serviceInstagramRole .ec-serviceInstagramRole__list li .popup {
            display: none; }
  .ec-serviceIndexContent4 {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
  .ec-serviceOurAchievement .ec-serviceOurAchievement__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px; }
    .ec-serviceOurAchievement .ec-serviceOurAchievement__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 2);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-serviceOurAchievement .ec-serviceOurAchievement__list > *:nth-child(2n+1) {
        margin-left: 0; }
        .ec-serviceOurAchievement .ec-serviceOurAchievement__item .content .text {
          display: none; }
  .ec-serviceIndexContent5 {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
  .ec-serviceOurSolution {
    margin-top: 40px;
    padding-left: 6.25vw;
    padding-right: 6.25vw; }
    .ec-serviceOurSolution .slick-slider .slick-arrow {
      font-size: 1rem;
      width: 2em;
      height: 2em;
      background: #a9894a;
      color: #fff;
      opacity: 1; }
    .ec-serviceOurSolution .slick-slider .slick-arrow.slick-prev {
      top: auto;
      bottom: 100%;
      left: auto;
      right: 0;
      transform: translate(-100%, -5px);
      margin-right: 2px; }
    .ec-serviceOurSolution .slick-slider .slick-arrow.slick-next {
      top: auto;
      bottom: 100%;
      left: auto;
      right: 0;
      transform: translate(0, -5px); }
    .ec-serviceContentBtnRole {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
    .ec-serviceContentBtnRole {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
      .ec-serviceContentBtnRole a {
        display: flex;
        margin: 0;
        width: 100%;
        min-width: auto; }
        .ec-serviceContentBtnRole a:nth-child(n+2) {
          margin-top: 1em; }
    .ec-serviceIndexBanner {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-serviceIndexBanner {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
    .ec-serviceDetailRole {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-serviceDetailRole {
      padding-top: 9.375vw;
      padding-bottom: 9.375vw; }
    .service_detail_template.template_A .content h2 {
      margin-top: 1rem; }
    .service_detail_template.template_A .content + .content {
      margin-top: 1em; }
    .service_detail_template.template_B .content, .service_detail_template.template_C .content {
      margin-top: 1em; }
    .service_detail_template.template_E .content p {
      margin-bottom: 1rem; }
    .service_detail_template.template_E .content + .content {
      margin-top: 1em; }
  .ec-noveltyListRole {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
  .ec-noveltyListRole .ec-noveltyListRole__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -10px;
    margin-top: 0; }
    .ec-noveltyListRole .ec-noveltyListRole__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 1);
      margin-left: 10px;
      margin-top: 10px; }
      .ec-noveltyListRole .ec-noveltyListRole__list > *:nth-child(1n+1) {
        margin-left: 0; }
        .ec-noveltyListRole .ec-noveltyListRole__item .content .ec-noveltySpec {
          padding-top: 0;
          margin-top: 1rem; }
    .ec-noveltyFlowRole {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-noveltyFlowRole {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
      .ec-noveltyFlowRole .ec-noveltyFlowRole__item {
        padding: 1rem;
        border-radius: 1rem; }
        .ec-noveltyFlowRole .ec-noveltyFlowRole__item .title {
          margin-bottom: .5em; }
      .ec-pagePerformanceList .ec-pagePerformanceList__item {
        flex-basis: 100%; }
      .ec-pagePerformanceList .ec-pagePerformanceList__item .content {
        padding: 6.25vw;
        position: relative; }
        .ec-pagePerformanceList .ec-pagePerformanceList__item .content .tag {
          bottom: 100%;
          right: 0; }
  .ec-pageFeelingsHeader {
    display: flex;
    flex-flow: row wrap; }
    .ec-pageFeelingsHeader .ec-pageFeelingsHeader__fig {
      order: 2;
      flex: 0 0 50%;
      display: flex; }
      .ec-pageFeelingsHeader .ec-pageFeelingsHeader__fig .fig {
        flex: 0 0 50%; }
    .ec-pageFeelingsHeader .ec-pageFeelingsHeader__content {
      order: 1;
      flex: 0 0 100%;
      padding: 6.25vw; }
      .ec-pageFeelingsHeader .ec-pageFeelingsHeader__content .title {
        font-family: "Noto Serif JP", serif;
        font-size: 1.7rem;
        font-weight: 400;
        line-height: 1.5;
        text-align: center;
        margin: 0;
        margin-bottom: 6.25vw; }
      .ec-pageFeelingsHeader .ec-pageFeelingsHeader__content .description {
        font-family: "Noto Serif JP", serif;
        font-size: 1.06rem;
        line-height: 1.8; }
  .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content {
    padding: 6.25vw; }
    .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .title {
      text-align: center;
      margin: 1em 0; }
  .ec-pageFeelingsContent .ec-pageFeelingsContent__article .image {
    height: 0;
    padding-top: 50vw; }
  .ec-pageFeelingsContent .ec-pageFeelingsContent__article .btnarea {
    margin-top: 6.25vw; }
    .ec-pageCompanyIndex {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
    .ec-pageCompanyIndex .ec-pageCompanyIndex__list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: 0px; }
      .ec-pageCompanyIndex .ec-pageCompanyIndex__list > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 0px ) / 2);
        margin-left: 0px;
        margin-top: 0px; }
        .ec-pageCompanyIndex .ec-pageCompanyIndex__list > *:nth-child(2n+1) {
          margin-left: 0; }
    .ec-personArticleRole .ec-personArticleRole__article {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
    .ec-personArticleRole .shelfLayout-001 {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -15px; }
      .ec-personArticleRole .shelfLayout-001 > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 0px ) / 1);
        margin-left: 0px;
        margin-top: 15px; }
        .ec-personArticleRole .shelfLayout-001 > *:nth-child(1n+1) {
          margin-left: 0; }
        .ec-personArticleRole .shelfLayout-001 .item .content {
          padding: 0;
          margin-left: 1em; }
    .ec-personArticleRole .shelfLayout-002 {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -15px; }
      .ec-personArticleRole .shelfLayout-002 > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 0px ) / 2);
        margin-left: 0px;
        margin-top: 15px; }
        .ec-personArticleRole .shelfLayout-002 > *:nth-child(2n+1) {
          margin-left: 0; }
    .ec-policyArticleRole .ec-policyArticleRole__article {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
  .ec-historyArticleRole {
    margin-left: -6.25vw;
    margin-right: -6.25vw; }
    .ec-historyArticleRole .ec-historyArticleRole__article {
      display: block;
      padding: 6.25vw; }
    .ec-historyArticleRole .ec-historyArticleRole__chronology {
      width: 100%;
      display: block;
      padding: 0;
      margin-bottom: 6.25vw;
      text-align: center;
      font-size: 1.3rem; }
      .ec-companyInfoArticleRole .map .map_container {
        padding-top: 50vh; }
  .ec-companyGroupArticleRole .ec-companyGroupArticleRole__row {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
  .ec-companyGroupArticleRole .ec-companyGroupArticleRole__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -20px; }
    .ec-companyGroupArticleRole .ec-companyGroupArticleRole__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 10px ) / 2);
      margin-left: 10px;
      margin-top: 20px; }
      .ec-companyGroupArticleRole .ec-companyGroupArticleRole__list > *:nth-child(2n+1) {
        margin-left: 0; }
    .ec-csrIndexList {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
      .ec-csrIndexList .ec-csrIndexList__item {
        flex-basis: 100%; }
        .ec-csrIndexList .ec-csrIndexList__item .content {
          padding: 6.25vw; }
  .ec-companyPublicationArticleRole .ec-companyPublicationArticleRole__row {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
  .ec-publicationListRole {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -15px; }
    .ec-publicationListRole > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 2);
      margin-left: 0px;
      margin-top: 15px; }
      .ec-publicationListRole > *:nth-child(2n+1) {
        margin-left: 0; }
  .ec-publicationTalkListRole {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -15px; }
    .ec-publicationTalkListRole > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 1);
      margin-left: 0px;
      margin-top: 15px; }
      .ec-publicationTalkListRole > *:nth-child(1n+1) {
        margin-left: 0; }
    .ec-publicationTalkListRole .ec-publicationTalkListRole__item .content {
      padding: 0; }
    .ec-beforeAfterViewRole {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
    .ec-beforeAfterViewRole {
      display: block; }
  .ec-publicTalkArticleRole {
    margin-top: 6.25vw; }
  .ec-publicTalkArticleRole .ec-publicTalkArticleRole__article {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
  .ec-csrArticleRole .ec-csrArticleRole__article {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
  .ec-csrLayoutWithPic {
    display: flex;
    flex-flow: column; }
  .ec-csrLayoutWithPic .content {
    order: 1; }
  .ec-csrLayoutWithPic .pic {
    order: 2;
    margin-top: 1em; }
  .ec-csrLayoutPerformance {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -20px; }
    .ec-csrLayoutPerformance > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 1);
      margin-left: 0px;
      margin-top: 20px; }
      .ec-csrLayoutPerformance > *:nth-child(1n+1) {
        margin-left: 0; }
      .ec-csrLayoutPerformance .ec-csrLayoutPerformance__item .image {
        margin-left: -5px;
        margin-right: -5px; }
        .ec-csrLayoutPerformance .ec-csrLayoutPerformance__item .image .pic {
          margin: 10px 5px; }
    .ec-companySdgsArticleRole .ec-companySdgsArticleRole__goals .image {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
  .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
  .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box1 {
    width: 110px;
    margin: 0 auto; }
  .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 {
    margin-top: 1rem; }
  .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 .torikumi_list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px;
    margin-top: 6.25vw; }
    .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 .torikumi_list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 3);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 .torikumi_list > *:nth-child(3n+1) {
        margin-left: 0; }
    .ec-sdgsArticleRole {
      margin-left: -6.25vw;
      margin-right: -6.25vw;
      padding-left: 6.25vw;
      padding-right: 6.25vw;
      margin-top: 6.25vw;
      padding-bottom: 6.25vw; }
    .ec-sdgsArticleRole .ec-sdgsArticleRole__content .sdgs_article {
      margin-top: 6.25vw; }
      .ec-sdgsArticleRole .ec-sdgsArticleRole__content .sdgs_article .content {
        margin-top: 1.5rem; }
  .ec-pageGoldleafIndex {
    margin-bottom: 6.25vw; }
  .ec-pageGoldleafIndex .ec-pageGoldleafIndex__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px; }
    .ec-pageGoldleafIndex .ec-pageGoldleafIndex__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 1);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-pageGoldleafIndex .ec-pageGoldleafIndex__list > *:nth-child(1n+1) {
        margin-left: 0; }
      .ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .image .overtitle {
        padding: 0; }
  .ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .linkbtn {
    padding: 0 6.25vw;
    margin-top: -6.25vw; }
  .ec-goldleafFlow {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
  .ec-goldleafFlowMethod {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
      .ec-goldleafFlowMethod .ec-goldleafFlowMethod__item .image {
        margin-left: -5px;
        margin-right: -5px; }
        .ec-goldleafFlowMethod .ec-goldleafFlowMethod__item .image .pic {
          margin: 5px; }
  .ec-goldleafHistory .ec-goldleafHistory__article {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
    .ec-goldleafHistory .ec-goldleafHistory__article .image {
      margin-top: 1rem; }
    .ec-pageSupportIndex {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
    .ec-pageSupportIndex {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
      .ec-pageSupportIndex .ec-pageSupportIndex__item {
        margin-top: 10px;
        padding: 20px 20px; }
  .ec-pageStudioContent {
    margin-top: 9.375vw;
    margin-bottom: 9.375vw; }
    .ec-pageStudioContent .ec-pageStudioContent__head {
      padding-left: 6.25vw;
      padding-right: 6.25vw; }
  .ec-pageStudioContent .ec-pageStudioContent__photo.col3 {
    display: flex;
    flex-flow: row wrap;
    margin-top: 6.25vw; }
    .ec-pageStudioContent .ec-pageStudioContent__photo.col3 .image {
      flex: 0 0 auto;
      width: calc(50% - 1px); }
      .ec-pageStudioContent .ec-pageStudioContent__photo.col3 .image:nth-child(1) {
        width: 100%;
        margin-bottom: 1px; }
      .ec-pageStudioContent .ec-pageStudioContent__photo.col3 .image:nth-child(3) {
        margin-left: 1px; }
  .ec-pageStudioContent .ec-pageStudioContent__photo.col4 {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -1px;
    margin-top: 6.25vw; }
    .ec-pageStudioContent .ec-pageStudioContent__photo.col4 > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 1px ) / 2);
      margin-left: 1px;
      margin-top: 1px; }
      .ec-pageStudioContent .ec-pageStudioContent__photo.col4 > *:nth-child(2n+1) {
        margin-left: 0; }
    .ec-pageStudioContact {
      margin-top: 9.375vw;
      margin-bottom: 9.375vw; }
    .ec-pageStudioContact {
      padding: 6.25vw; }
      .ec-pageStudioContact .title {
        font-size: 1.6rem; }
      .ec-pageStudioContact p {
        text-align: left; }
      .ec-pageStudioContact .ec-blockDetailBtn--center {
        margin-top: 6.25vw;
        margin-bottom: 0;
        width: 100%; } }
@media print {
  .ec-layoutRole__header,
  .ec-layoutRole__contentBottom,
  .ec-layoutRole__footer,
  .ec-overlayRole,
  .ec-drawerRole,
  .ec-floatNavRole,
  .ec-pageWithNavRole__left,
  .btnNavToggle {
    display: none !important; }
  .ec-layoutRole,
  .ec-pageWithNavRole__body {
    padding: 0 !important; }
  .ec-newsDetailRole__print,
  .ec-newsDetailRole__share {
    display: none !important; } }
@media print and (min-width: 768px), screen and (min-width: 768px) and (min-width: 1280px) {
    .ec-progressFlowPicture {
      margin: 0 auto 40px; } }
@media print, screen and (min-width: 1280px) {
  html {
    font-size: 15px; }
    .ec-debugRole {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-debugRole,
      .ec-layoutRole__mainBetweenColumn .ec-debugRole {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-debugRole {
      margin-top: 80px; }
      .ec-article .ec-speclist {
        display: flex;
        flex-flow: row wrap;
        justify-content: space-between; }
        .ec-article .ec-speclist dl {
          flex: 0 0 49%;
          padding: 1.5em; }
          .ec-article .ec-speclist dl:nth-child(-n+2) {
            border-top: solid 1px #ccc; }
    .ec-pageHeader h1,
    .ec-pageHeader .ec-pageHeader__title {
      padding: 0.75em 0.75em;
      font-size: 1.3em; }
      .ec-pageVisualHeader .ec-pageVisualHeader__inner {
        /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
        padding-left: 40px;
        padding-right: 40px;
        /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
        .ec-layoutRole__mainWithColumn .ec-pageVisualHeader .ec-pageVisualHeader__inner,
        .ec-layoutRole__mainBetweenColumn .ec-pageVisualHeader .ec-pageVisualHeader__inner {
          max-width: auto;
          padding-left: 0;
          padding-right: 0; }
      .ec-pageVisualHeader .ec-pageVisualHeader__inner {
        height: 300px; }
        .ec-pageVisualHeader .ec-pageVisualHeader__title h1 {
          font-size: 2.53rem; }
    .ec-pageVisualHeader.vertical .ec-pageVisualHeader__inner {
      height: 436px; }
    .ec-pageVisualHeader.vertical .ec-pageVisualHeader__title {
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%; }
      .ec-pageVisualHeader.vertical .ec-pageVisualHeader__title h1 {
        font-size: 2rem; }
    .ec-pageVisualHeader.vertical2 .ec-pageVisualHeader__title {
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%; }
      .ec-pageVisualHeader.vertical2 .ec-pageVisualHeader__title h1 {
        font-size: 2rem; }
    .ec-pageHeaderIntro .ec-pageHeaderIntro__inner {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-pageHeaderIntro .ec-pageHeaderIntro__inner,
      .ec-layoutRole__mainBetweenColumn .ec-pageHeaderIntro .ec-pageHeaderIntro__inner {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-pageHeaderIntro .ec-pageHeaderIntro__inner {
      padding-top: 60px;
      padding-bottom: 60px; }
    .ec-pageHeaderIntro .ec-pageHeaderIntro__content .title {
      font-size: 2rem; }
    .ec-pageHeaderIntro .ec-pageHeaderIntro__content .description {
      text-align: center; }
      .ec-pageHeaderIntro .ec-pageHeaderIntro__content .description.left {
        text-align: justify; }
      .ec-pageHeaderIntro .ec-pageHeaderIntro__content .description .subtitle {
        margin-top: 3em; }
    .ec-pageHeaderIntro.large .ec-pageHeaderIntro__content .title {
      font-size: 3.13rem; }
      .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__inner {
        /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
        padding-left: 40px;
        padding-right: 40px;
        /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
        .ec-layoutRole__mainWithColumn .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__inner,
        .ec-layoutRole__mainBetweenColumn .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__inner {
          max-width: auto;
          padding-left: 0;
          padding-right: 0; }
      .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__inner {
        padding-top: 60px;
        padding-bottom: 60px; }
      .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__content {
        flex: 0 0 70%;
        max-width: 780px; }
        .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__content .title {
          font-size: 2rem; }
        .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__content .description {
          margin-top: 3em; }
    .ec-pageHeaderIntro2 .ec-pageHeaderIntro2__image {
      flex: 0 0 30%;
      max-width: 380px;
      display: flex;
      align-items: center; }
      .ec-secHeading .ec-secHeading__maintitle {
        font-size: 2rem; }
      .ec-secHeading.wide {
        padding-top: 60px;
        padding-bottom: 60px; }
      .ec-secHeading.wide {
        padding-top: 80px;
        padding-bottom: 80px; }
    .ec-leftHeading {
      margin-bottom: 40px; }
      .ec-leftHeading .ec-leftHeading__maintitle {
        font-size: 2rem; }
      .ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__title {
        font-size: 2.33rem; }
      .ec-pageVisualHeaderLarge .ec-pageVisualHeaderLarge__content .description {
        font-size: 1.06rem;
        line-height: 2.5;
        height: 23em; }
    .ec-reportDescription {
      text-align: center; }
    .ec-secHeadDescription {
      font-size: 1.06rem; }
  .ec-borderedDefs > dl {
    display: table;
    border-bottom: 1px solid #d6d6d6; }
    .ec-borderedDefs > dl:first-child {
      border-top: 1px solid #d6d6d6; }
    .ec-borderedDefs > dl > dt {
      display: table-cell;
      width: 15%;
      vertical-align: top;
      padding: 1.75em 1em; }
    .ec-borderedDefs > dl > dd {
      display: table-cell;
      width: auto;
      vertical-align: middle;
      padding: 1.75em 1.5em; }
    .ec-blockDetailBtn, .ec-blockDetailBtn--center, .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel,
    .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action {
      margin-top: 47px;
      margin-bottom: 47px; }
    .ec-pageGoBack {
      margin-top: 40px; }
    .ec-floatNavRole {
      right: 20px;
      bottom: 20px; }
    .ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input {
      font-size: 1rem; }
    .ec-input textarea, .ec-halfInput textarea, .ec-numberInput textarea, .ec-zipInput textarea, .ec-telInput textarea {
      font-size: 1rem; }
      .ec-select select, .ec-birth select {
        font-size: 1rem; }
    .ec-select__delivery {
      display: inline-block; }
    .ec-select__time {
      display: inline-block;
      margin-left: 1rem; }
    .ec-variableForm {
      margin: 40px 0; }
    .ec-grid2 {
      display: flex;
      justify-content: center; }
      .ec-grid2 .ec-grid2__cell {
        width: 50%; }
      .ec-grid2 .ec-grid2__cell2 {
        width: 100%; }
    .ec-grid3 {
      display: flex;
      justify-content: center; }
      .ec-grid3 .ec-grid3__cell {
        width: 33.33333%; }
      .ec-grid3 .ec-grid3__cell2 {
        width: 66.66667%; }
      .ec-grid3 .ec-grid3__cell3 {
        width: 100%; }
    .ec-grid4 {
      display: flex;
      justify-content: center; }
      .ec-grid4 .ec-grid4__cell {
        width: 25%; }
    .ec-grid6 {
      display: flex;
      justify-content: center; }
      .ec-grid6 .ec-grid6__cell {
        width: 16.66667%; }
      .ec-grid6 .ec-grid6__cell2 {
        width: 33.33333%; }
      .ec-grid6 .ec-grid6__cell3 {
        width: 50%; }
    .ec-off2Grid {
      display: flex;
      justify-content: center; }
      .ec-off2Grid .ec-off2Grid__cell {
        min-height: 1px; }
    .ec-off3Grid {
      display: flex;
      justify-content: center; }
      .ec-off3Grid .ec-off3Grid__cell {
        min-height: 1px; }
    .ec-off4Grid {
      display: flex;
      justify-content: center; }
      .ec-off4Grid .ec-off4Grid__cell {
        min-height: 1px; }
  .ec-loginRole {
    display: flex; }
    .ec-loginRole .ec-loginRole__login {
      flex: 0 0 auto;
      width: 60%;
      margin-right: 40px; }
    .ec-loginRole .ec-loginRole__guest {
      flex: 1 1 auto;
      width: auto;
      padding: 2em; }
    .ec-loginRole .ec-loginRole__input dl {
      display: table;
      width: 100%; }
      .ec-loginRole .ec-loginRole__input dl dt {
        display: table-cell;
        vertical-align: middle;
        width: 9em;
        padding: .25em 0;
        white-space: nowrap; }
        .ec-loginRole .ec-loginRole__input dl dt.dt_empty {
          display: table-cell; }
      .ec-loginRole .ec-loginRole__input dl dd {
        display: table-cell;
        padding: .25em 0; }
    .ec-pager {
      margin: 40px 0; }
    .ec-welcomeMsg {
      margin-bottom: 60px; }
  .ec-favoriteRole .ec-favoriteRole__itemList {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -20px; }
    .ec-favoriteRole .ec-favoriteRole__itemList > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 120px ) / 5);
      margin-left: 30px;
      margin-top: 20px; }
      .ec-favoriteRole .ec-favoriteRole__itemList > *:nth-child(5n+1) {
        margin-left: 0; }
  .ec-progressAction {
    margin-top: 40px; }
    .ec-progressAction .ec-progressAction__message {
      margin-bottom: 40px; }
      .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel,
      .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action {
        width: 350px;
        margin: 0 10px; }
    .ec-pageTurnNav {
      margin-top: 60px;
      margin-bottom: 60px; }
      .ec-pageTurnNav .ec-pageTurnNav__prev a,
      .ec-pageTurnNav .ec-pageTurnNav__next a {
        min-width: 168px;
        text-align: center; }
    .ec-role {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-role,
      .ec-layoutRole__mainBetweenColumn .ec-role {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-mypageRole {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-mypageRole,
      .ec-layoutRole__mainBetweenColumn .ec-mypageRole {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
      .ec-pageWithNavRole .ec-pageWithNavRole__left {
        padding: 40px;
        padding-top: 90px;
        width: 25%;
        height: calc(100vh - 150px);
        position: -webkit-sticky;
        position: sticky;
        top: 0; }
    .ec-pageWithNavRole .ec-pageWithNavRole__body {
      padding: 40px;
      padding-top: 90px;
      padding-bottom: 100px; }
    .ec-pageWithNavRole .ec-pageWithNavRole__head + .ec-pageWithNavRole__body {
      padding-top: 60px; }
    .ec-pageWithNavRole .btnNavToggle {
      top: 100px; }
      body.scrolled .ec-pageWithNavRole .btnNavToggle {
        top: 50px; }
  .ec-pageWithNavRole.is-navClose .ec-pageWithNavRole__left {
    margin-left: -25%; }
    .ec-pageWithNavVisualHeader .ec-pageWithNavVisualHeader__inner {
      height: 26vw;
      padding: 6vw; }
        .ec-pageWithNavVisualHeader .ec-pageWithNavVisualHeader__title .person {
          margin-top: 2rem; }
          .ec-pageWithNavVisualHeader .ec-pageWithNavVisualHeader__title .person .name {
            font-size: 1.66rem; }
    .ec-pageWithNavVisualHeader.founder .ec-pageWithNavVisualHeader__title .title {
      font-size: 2.33rem;
      line-height: 1.63; }
        .ec-pageWithNavVisualHeader.greeting .ec-pageWithNavVisualHeader__title .title {
          font-size: 2vw;
          line-height: 1.63; }
    .ec-pageWithNavVisualHeader.vertical .ec-pageWithNavVisualHeader__inner, .ec-pageWithNavVisualHeader.public .ec-pageWithNavVisualHeader__inner {
      padding: 1em; }
      .ec-pageWithNavVisualHeader.vertical .ec-pageWithNavVisualHeader__title, .ec-pageWithNavVisualHeader.public .ec-pageWithNavVisualHeader__title {
        -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
        display: flex;
        flex-flow: column;
        justify-content: center;
        align-items: center;
        width: 100%; }
      .ec-pageWithNavVisualHeader.vertical .ec-pageWithNavVisualHeader__title .title, .ec-pageWithNavVisualHeader.public .ec-pageWithNavVisualHeader__title .title {
        font-size: 2rem; }
      .ec-pageWithNavVisualHeader.public .ec-pageWithNavVisualHeader__inner {
        height: 45vw; }
      .ec-pageWithNavVisualHeader.public .ec-pageWithNavVisualHeader__comment {
        text-align: right; }
    .fixBgBox {
      height: 26vw;
      top: 100px; }
      body.scrolled .fixBgBox {
        top: 50px; }
    .fixBgBox.public {
      height: 45vw; }
  .ec-pageWithNavVisualHeader {
    margin-top: -26vw; }
  .ec-pageWithNavVisualHeader.public {
    margin-top: -45vw; }
    .ec-headerRole {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-headerRole,
      .ec-layoutRole__mainBetweenColumn .ec-headerRole {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-headerRole {
      height: 100px;
      padding: 0;
      /* 各ボタンなど改行されないよう幅調整をしてください
     * __leftと__rightの幅の大きさは同じ割合にしてください（ロゴのセンタリングのため）
     * うまく収まりがつかない場合はロゴのサイズや各ボタンの調整が必要になります
     */ }
      .ec-headerRole .ec-headerRole__left {
        flex: 1 1 25%;
        display: flex;
        justify-content: flex-start;
        align-items: center; }
      .ec-headerRole .ec-headerRole__center {
        flex: 1 1 50%;
        display: flex;
        justify-content: center;
        align-items: center; }
      .ec-headerRole .ec-headerRole__right {
        flex: 1 1 25%;
        display: flex;
        justify-content: flex-end;
        align-items: center; }
    .ec-drawerButton {
      display: none; }
    .ec-headerTitle {
      height: 100%; }
      .ec-headerTitle a {
        display: flex;
        height: 100%;
        justify-content: flex-start;
        align-items: center;
        margin-left: 15px; }
        .ec-headerTitle a img {
          width: auto;
          height: 100%;
          max-height: 100px; }
        .ec-headerMenu .ec-headerMenu__item > a {
          min-width: 100px; }
        .ec-headerMenu .ec-headerMenu__item.menu_lang a {
          font-size: 1.33rem; }
          .ec-headerMenu .ec-headerMenu__item.menu_lang a i {
            display: block; }
        .ec-headerMenu .ec-headerMenu__item.menu_contact a {
          font-size: 1.2rem; }
          .ec-headerMenu .ec-headerMenu__item.menu_contact a i {
            display: block; }
    .ec-drawerRole {
      display: none; }
    .ec-overlayRole {
      display: none; }
  .ec-layoutRole {
    padding-top: 100px; }
    .ec-layoutRole .ec-headerRole {
      transition: .3s; }
      body.scrolled .ec-layoutRole .ec-headerRole {
        height: 50px; }
      .ec-footerGuide .ec-footerGuide__inner {
        /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
        padding-left: 40px;
        padding-right: 40px;
        /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
        .ec-layoutRole__mainWithColumn .ec-footerGuide .ec-footerGuide__inner,
        .ec-layoutRole__mainBetweenColumn .ec-footerGuide .ec-footerGuide__inner {
          max-width: auto;
          padding-left: 0;
          padding-right: 0; }
      .ec-footerGuide .ec-footerGuide__inner {
        padding-top: 60px;
        padding-bottom: 60px; }
      .ec-footerGuide .ec-footerGuide__inner {
        padding-top: 40px;
        padding-bottom: 40px; }
      .ec-footerNavi .ec-footerNavi__wrap {
        /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
        padding-left: 40px;
        padding-right: 40px;
        /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
        .ec-layoutRole__mainWithColumn .ec-footerNavi .ec-footerNavi__wrap,
        .ec-layoutRole__mainBetweenColumn .ec-footerNavi .ec-footerNavi__wrap {
          max-width: auto;
          padding-left: 0;
          padding-right: 0; }
      .ec-footerNavi .ec-footerNavi__wrap {
        padding-top: 60px;
        padding-bottom: 60px; }
        .ec-footerNavi .ec-footerNavi__item h3 {
          background: transparent; }
          .ec-footerNavi .ec-footerNavi__item h3 a {
            padding: .5em 0; }
    .ec-footerTitle {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-footerTitle,
      .ec-layoutRole__mainBetweenColumn .ec-footerTitle {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-footerTitle {
      padding-top: 20px;
      padding-bottom: 20px; }
    .ec-footerTitle .ec-footerTitle__bannerLink {
      margin-top: -15px;
      margin-left: -15px;
      margin-bottom: 15px; }
      .ec-footerTitle .ec-footerTitle__bannerLink .item {
        display: inline-block;
        width: 250px;
        margin-top: 15px;
        margin-left: 15px; }
      .ec-footerTitle .ec-footerTitle__logo img {
        width: 120px; }
    .ec-footerSocial {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-footerSocial,
      .ec-layoutRole__mainBetweenColumn .ec-footerSocial {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-footerSocial {
      margin-top: 7px;
      margin-bottom: 20px; }
        .ec-footerSocial .ec-footerSocial__itemList li a {
          color: #fff;
          transition: .2s; }
        .ec-footerSocial .ec-footerSocial__itemList li.facebook a:hover {
          background-color: #3B5999; }
        .ec-footerSocial .ec-footerSocial__itemList li.twitter a:hover {
          background-color: #000; }
        .ec-footerSocial .ec-footerSocial__itemList li.instagram a:hover {
          background-color: #f00075; }
    .ec-topicPathRole {
      padding: 1em 40px;
      font-size: 14px; }
  .slickGutter .slick-list {
    margin-left: -20px;
    -webkit-clip-path: inset(0 0 0 20px);
            clip-path: inset(0 0 0 20px); }
    .slickGutter .slick-list .slick-slide {
      margin-left: 20px; }
      .ec-topConceptRole .ec-topConceptRole__inner {
        /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
        padding-left: 40px;
        padding-right: 40px;
        /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
        .ec-layoutRole__mainWithColumn .ec-topConceptRole .ec-topConceptRole__inner,
        .ec-layoutRole__mainBetweenColumn .ec-topConceptRole .ec-topConceptRole__inner {
          max-width: auto;
          padding-left: 0;
          padding-right: 0; }
      .ec-topConceptRole .ec-topConceptRole__inner {
        padding-top: 60px;
        padding-bottom: 60px; }
      .ec-topConceptRole .ec-topConceptRole__inner {
        padding: 4.5vw; }
    .ec-topConceptImageRole {
      height: 580px; }
    .ec-topServiceRole {
      padding-top: 60px;
      padding-bottom: 60px; }
      .ec-topServiceRole .ec-topServiceRole__head {
        /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
        padding-left: 40px;
        padding-right: 40px;
        /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
        .ec-layoutRole__mainWithColumn .ec-topServiceRole .ec-topServiceRole__head,
        .ec-layoutRole__mainBetweenColumn .ec-topServiceRole .ec-topServiceRole__head {
          max-width: auto;
          padding-left: 0;
          padding-right: 0; }
    .ec-topServiceRole .ec-topServiceRole__list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -1px; }
      .ec-topServiceRole .ec-topServiceRole__list > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 2px ) / 3);
        margin-left: 1px;
        margin-top: 1px; }
        .ec-topServiceRole .ec-topServiceRole__list > *:nth-child(3n+1) {
          margin-left: 0; }
        .ec-topServiceRole .ec-topServiceRole__item .content {
          padding: 1.75em 1.25em; }
          .ec-topServiceRole .ec-topServiceRole__item .content .title {
            font-size: 1.66rem; }
            .ec-topPerformanceRole .ec-topPerformanceRole__content .content .content_body .title {
              font-size: 2.33rem; }
        .ec-topPerformanceRole .ec-topPerformanceRole__content .image {
          overflow: hidden; }
          .ec-topPerformanceRole .ec-topPerformanceRole__content .image .bg_box {
            transition: .8s; }
          .ec-topPerformanceRole .ec-topPerformanceRole__content .image:hover .bg_box {
            transform: scale(1.1); }
      .ec-topPerformanceRole .ec-topPerformanceRole__content:nth-child(2n) .content {
        order: 2; }
      .ec-topPerformanceRole .ec-topPerformanceRole__content:nth-child(2n) .image {
        order: 1; }
  .ec-newsBlockRole .ec-newsBlockRole__list .slickGutter .slick-list {
    margin-left: -30px;
    -webkit-clip-path: inset(0 0 0 30px);
            clip-path: inset(0 0 0 30px); }
    .ec-newsBlockRole .ec-newsBlockRole__list .slickGutter .slick-list .slick-slide {
      margin-left: 30px; }
    .ec-newsBlockRole .ec-newsBlockRole__list .slick-slider .slick-arrow.slick-prev {
      left: auto;
      right: 100%; }
    .ec-newsBlockRole .ec-newsBlockRole__list .slick-slider .slick-arrow.slick-next {
      right: auto;
      left: 100%; }
    .ec-newsContainerRole .ec-newsContainerRole__block1,
    .ec-newsContainerRole .ec-newsContainerRole__block2,
    .ec-newsContainerRole .ec-newsContainerRole__block3,
    .ec-newsContainerRole .ec-newsContainerRole__block4 {
      padding: 40px; }
      .ec-newsContainerRole .ec-newsContainerRole__block1 .ec-secHeading,
      .ec-newsContainerRole .ec-newsContainerRole__block2 .ec-secHeading,
      .ec-newsContainerRole .ec-newsContainerRole__block3 .ec-secHeading,
      .ec-newsContainerRole .ec-newsContainerRole__block4 .ec-secHeading {
        margin-bottom: 40px; }
      .ec-newsContainerRole .ec-newsContainerRole__block1 {
        flex: 0 0 50%; }
      .ec-newsContainerRole .ec-newsContainerRole__block2 {
        flex: 0 0 50%; }
      .ec-newsContainerRole .ec-newsContainerRole__block3 {
        flex: 0 0 50%;
        background-color: #FBF9F4; }
      .ec-newsContainerRole .ec-newsContainerRole__block4 {
        flex: 0 0 50%;
        background-color: #F6F3EC; }
  .ec-newsListRole {
    margin-top: 60px;
    margin-bottom: 60px; }
      .ec-newsListRole .ec-newsListRole__item .image {
        width: 176px; }
        .ec-newsListRole .ec-newsListRole__item .content .comment {
          font-size: 1.2rem; }
      .ec-newsDetailRole .ec-newsDetailRole__head .title {
        font-size: 1.66rem; }
      .ec-newsDetailRole .ec-newsDetailRole__print {
        margin-top: 80px; }
    .news_template {
      margin-top: 60px; }
      .news_template h2, .news_template h3, .news_template h4, .news_template h5, .news_template h6 {
        font-size: 1.33rem; }
    .news_template.template_B, .news_template.template_C {
      display: flex;
      justify-content: space-between; }
      .news_template.template_B .pic, .news_template.template_C .pic {
        flex: 0 0 50%;
        max-width: 485px;
        order: 2; }
      .news_template.template_B .content, .news_template.template_C .content {
        flex: 1 1 auto;
        order: 1;
        padding-right: 2em; }
    .news_template.template_C .pic {
      order: 1; }
    .news_template.template_C .content {
      order: 2;
      padding-right: 0;
      padding-left: 2em; }
    .news_template.template_D .wrap {
      display: flex;
      flex-flow: row wrap;
      margin-left: -15px;
      margin-right: -15px;
      margin-top: -30px; }
      .news_template.template_D .wrap .content {
        flex: 0 0 50%;
        margin-top: 30px;
        padding: 0 15px; }
        .news_template.template_D .wrap .content h2 {
          margin-top: 0; }
        .news_template.template_D .wrap .content p {
          margin: 1rem 0 2rem; }
    .news_template.template_E .wrap {
      display: flex;
      flex-flow: row wrap;
      margin-left: -10px;
      margin-right: -10px;
      margin-top: -20px; }
      .news_template.template_E .wrap .content {
        flex: 0 0 33.3%;
        margin-top: 20px;
        padding: 0 10px; }
        .news_template.template_E .wrap .content h3 {
          margin: 0; }
        .news_template.template_E .wrap .content p {
          margin: 1rem 0 2rem; }
    .ec-pagerRole {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-pagerRole,
      .ec-layoutRole__mainBetweenColumn .ec-pagerRole {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
  .ec-contactRole, .ec-contactConfirmRole {
    margin-top: 60px;
    margin-bottom: 60px; }
  .ec-contactRole .ec-borderedDefs > dl > dt, .ec-contactConfirmRole .ec-borderedDefs > dl > dt {
    width: 200px;
    vertical-align: middle; }
  .ec-contactCompleteRole {
    margin-top: 60px;
    margin-bottom: 60px; }
    .ec-404Role {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-404Role,
      .ec-layoutRole__mainBetweenColumn .ec-404Role {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-404Role {
      padding-top: 10vw;
      padding-bottom: 5vw; }
      .ec-404Role .ec-404Role__title {
        font-size: 6.4rem; }
      .ec-404Role .ec-404Role__subtitle {
        font-size: 1.93rem; }
      .ec-404Role .ec-404Role__topBtn {
        font-size: 1.46rem;
        height: 66px; }
      .ec-404Role .ec-404Role__logo {
        width: 120px; }
    .ec-notFoundRole {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-notFoundRole,
      .ec-layoutRole__mainBetweenColumn .ec-notFoundRole {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-helpRole {
      font-size: 14px; }
    .ec-helpRole section + section {
      margin-top: 60px; }
    .ec-provision dl {
      font-size: 14px; }
    .ec-helpProcedureRole {
      padding: 40px; }
    .ec-helpProcedureRole .ec-helpProcedureRole__item {
      display: flex;
      margin-top: 40px; }
      .ec-helpProcedureRole .ec-helpProcedureRole__content {
        order: 2;
        padding-left: 1.5em;
        margin: 0; }
      .ec-helpProcedureRole .ec-helpProcedureRole__fig {
        order: 1;
        flex: 0 0 auto;
        width: 450px;
        margin: 0; }
  .ec-helpIndexRole .ec-helpIndexRole__grid {
    display: flex;
    justify-content: space-between;
    margin-top: -30px; }
  .ec-helpIndexRole .ec-helpIndexRole__gridCell {
    flex: 0 0 auto;
    width: 48%; }
  .ec-helpIndexRole .ec-helpIndexRole__item {
    margin-top: 40px; }
  .ec-helpMapRole {
    margin-top: 80px; }
    .ec-faqSearch {
      padding: 24px; }
        .ec-faqSearch .ec-faqSearch__input input[type=text] {
          padding-right: 13em; }
        .ec-faqSearch .ec-faqSearch__input button {
          width: 12em; }
    .ec-faqRole .ec-faqRole__section {
      margin-top: 30px;
      margin-bottom: 30px;
      padding-top: 30px; }
      .ec-faqRole .ec-faqRole__section.noBorder {
        margin-top: 50px; }
  .ec-blogListRole .ec-blogListRole__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -50px; }
    .ec-blogListRole .ec-blogListRole__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 35px ) / 2);
      margin-left: 35px;
      margin-top: 50px; }
      .ec-blogListRole .ec-blogListRole__list > *:nth-child(2n+1) {
        margin-left: 0; }
      .ec-blogDetailRole .ec-blogDetailRole__head h1 {
        font-size: 2rem; }
    .ec-blogDetailRole .ec-blogDetailRole__share {
      margin: 40px 0; }
    .ec-blogDetailRole .ec-blogDetailRole__pager {
      margin: 40px 0; }
    .blog_template {
      margin-top: 60px; }
      .blog_template h2, .blog_template h3, .blog_template h4, .blog_template h5, .blog_template h6 {
        font-size: 1.33rem; }
    .blog_template.template_B, .blog_template.template_C {
      display: flex;
      justify-content: space-between; }
      .blog_template.template_B .pic, .blog_template.template_C .pic {
        flex: 0 0 50%;
        max-width: 500px;
        order: 2; }
      .blog_template.template_B .content, .blog_template.template_C .content {
        flex: 1 1 auto;
        order: 1;
        padding-right: 2em; }
    .blog_template.template_C .pic {
      order: 1; }
    .blog_template.template_C .content {
      order: 2;
      padding-right: 0;
      padding-left: 2em; }
      .blog_template.template_D .pic {
        margin-top: 2em; }
    .blog_template.template_E .wrap {
      display: flex;
      flex-flow: row wrap;
      margin-left: -10px;
      margin-right: -10px;
      margin-top: -20px; }
      .blog_template.template_E .wrap .content {
        flex: 0 0 33.3%;
        margin-top: 20px;
        padding: 0 10px; }
        .blog_template.template_E .wrap .content h3 {
          margin: 0; }
        .blog_template.template_E .wrap .content p {
          margin: 1rem 0 2rem; }
    .ec-blogNewsPostTop {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-blogNewsPostTop,
      .ec-layoutRole__mainBetweenColumn .ec-blogNewsPostTop {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-blogNewsPostTop {
      margin-top: 60px;
      margin-bottom: 60px; }
    .ec-blogNewsPostTop {
      max-width: 100%;
      padding-left: 0;
      padding-right: 0; }
    .ec-blogNewsPostTop .ec-blogNewsPostTop__list .wrap {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: 0; }
      .ec-blogNewsPostTop .ec-blogNewsPostTop__list .wrap > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 4px ) / 5);
        margin-left: 1px;
        margin-top: 0; }
        .ec-blogNewsPostTop .ec-blogNewsPostTop__list .wrap > *:nth-child(5n+1) {
          margin-left: 0; }
        .ec-blogNewsPostTop .ec-blogNewsPostTop__listItem .content h3 {
          font-size: 1.2em; }
    .ec-moreInformationRole {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-moreInformationRole,
      .ec-layoutRole__mainBetweenColumn .ec-moreInformationRole {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-moreInformationRole {
      padding-top: 60px;
      padding-bottom: 60px; }
      .ec-moreInformationRole .ec-secHeading .ec-secHeading__maintitle {
        font-size: 2.66rem; }
      .ec-moreInformationRole .ec-secHeading .ec-secHeading__subtitle {
        font-size: 1.33rem; }
      .ec-moreInformationRole .ec-moreInformationRole__item {
        width: calc((100% - 120px) / 3);
        margin: 20px; }
  .ec-pageServiceList .ec-pageServiceList__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -1px; }
    .ec-pageServiceList .ec-pageServiceList__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 2px ) / 3);
      margin-left: 1px;
      margin-top: 1px; }
      .ec-pageServiceList .ec-pageServiceList__list > *:nth-child(3n+1) {
        margin-left: 0; }
      .ec-pageServiceList .ec-pageServiceList__item .content {
        padding: 1.75em 1.25em; }
        .ec-pageServiceList .ec-pageServiceList__item .content .title {
          font-size: 1.66rem; }
  .ec-serviceIndexContent1 .ec-serviceIndexContent1__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -20px;
    margin-top: 0; }
    .ec-serviceIndexContent1 .ec-serviceIndexContent1__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 20px ) / 2);
      margin-left: 20px;
      margin-top: 20px; }
      .ec-serviceIndexContent1 .ec-serviceIndexContent1__list > *:nth-child(2n+1) {
        margin-left: 0; }
  .ec-serviceIndexContent1 .ec-serviceIndexContent1__item {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    min-height: 593px;
    position: relative; }
  .ec-serviceIndexContent1 .ec-serviceIndexContent1__item .content {
    flex: 0 0 auto;
    background-color: rgba(169, 137, 74, 0.9);
    display: flex;
    flex-flow: column;
    justify-content: center;
    width: 435px;
    min-height: 500px;
    padding: 7.5rem 3.5rem; }
    .ec-serviceIndexContent1 .ec-serviceIndexContent1__item .content .title {
      margin-bottom: 1.25em; }
    .ec-serviceIndexContent1 .ec-serviceIndexContent1__item .content .description {
      line-height: 2; }
    .ec-serviceIndexContent1 .ec-serviceIndexContent1__item .bgBox {
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      z-index: -1; }
  .ec-serviceIndexContent2 {
    margin-top: 20px; }
    .ec-serviceIndexContent2 .ec-serviceIndexContent2__content {
      display: flex;
      flex-flow: column;
      align-items: center;
      padding: 4vw;
      width: 600px; }
    .ec-serviceIndexContent2 .ec-serviceIndexContent2__content .verticalBox {
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl; }
      .ec-serviceIndexContent2 .ec-serviceIndexContent2__content .title {
        font-size: 2rem; }
      .ec-serviceIndexContent2 .ec-serviceIndexContent2__content .text {
        line-height: 2.5;
        height: 30em; }
    .ec-serviceIndexContent2 .ec-serviceIndexContent2__content .btnBox {
      margin: 30px 0 0; }
      .ec-serviceIndexContent2 .ec-serviceIndexContent2__content .btnBox .ec-blockDetailBtn--center {
        margin: 0; }
  .ec-serviceIndexContent3 {
    margin-top: 60px;
    margin-bottom: 60px; }
  .ec-serviceIndexContent3 {
    margin-top: 90px; }
    .ec-serviceOurActivity {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-serviceOurActivity,
      .ec-layoutRole__mainBetweenColumn .ec-serviceOurActivity {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-serviceOurActivity .ec-serviceOurActivity__list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -100px;
      margin-top: -80px; }
      .ec-serviceOurActivity .ec-serviceOurActivity__list > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 60px ) / 2);
        margin-left: 60px;
        margin-top: 100px; }
        .ec-serviceOurActivity .ec-serviceOurActivity__list > *:nth-child(2n+1) {
          margin-left: 0; }
    .ec-serviceOurActivity .ec-serviceOurActivity__item {
      display: flex;
      justify-content: space-between; }
      .ec-serviceOurActivity .ec-serviceOurActivity__item .image {
        flex: 0 0 auto;
        width: 47%; }
        .ec-serviceOurActivity .ec-serviceOurActivity__item .image a {
          display: block;
          overflow: hidden;
          /* HTML構造によってはIE11でちらつく事があるので保険 */ }
          .ec-serviceOurActivity .ec-serviceOurActivity__item .image a * {
            overflow: hidden; }
          .ec-serviceOurActivity .ec-serviceOurActivity__item .image a img {
            transition: .6s; }
          .ec-serviceOurActivity .ec-serviceOurActivity__item .image a:hover img {
            transform: scale(1.1);
            filter: brightness(1.05); }
      .ec-serviceOurActivity .ec-serviceOurActivity__item .content {
        flex: 0 0 auto;
        width: 47%; }
      .ec-serviceOurActivity .ec-serviceOurActivity__item:nth-child(3) .image, .ec-serviceOurActivity .ec-serviceOurActivity__item:nth-child(4) .image {
        order: 2; }
      .ec-serviceOurActivity .ec-serviceOurActivity__item:nth-child(3) .content, .ec-serviceOurActivity .ec-serviceOurActivity__item:nth-child(4) .content {
        order: 1; }
    .ec-serviceInstagramRole {
      margin-top: 60px;
      margin-bottom: 60px; }
    .ec-serviceInstagramRole {
      margin-top: 100px; }
      .ec-serviceInstagramRole .ec-serviceInstagramRole__list {
        margin: 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex-flow: row wrap;
        margin-top: 0px; }
        .ec-serviceInstagramRole .ec-serviceInstagramRole__list > * {
          flex: 0 0 auto;
          width: calc((100% - 1px - 0px ) / 8);
          margin-left: 0px;
          margin-top: 0px; }
          .ec-serviceInstagramRole .ec-serviceInstagramRole__list > *:nth-child(8n+1) {
            margin-left: 0; }
  .ec-serviceIndexContent4 {
    margin-top: 60px;
    margin-bottom: 60px; }
  .ec-serviceIndexContent4 {
    margin-top: 90px; }
  .ec-serviceOurAchievement .ec-serviceOurAchievement__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px;
    margin-top: 60px; }
    .ec-serviceOurAchievement .ec-serviceOurAchievement__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 3);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-serviceOurAchievement .ec-serviceOurAchievement__list > *:nth-child(3n+1) {
        margin-left: 0; }
      .ec-serviceOurAchievement .ec-serviceOurAchievement__item .content {
        padding: 1.75em 1.25em; }
        .ec-serviceOurAchievement .ec-serviceOurAchievement__item .content .title {
          font-size: 1.66rem; }
        .ec-serviceOurAchievement .ec-serviceOurAchievement__item .content h3 {
          font-size: 1.33rem; }
  .ec-serviceIndexContent5 {
    margin-top: 60px;
    margin-bottom: 60px; }
  .ec-serviceIndexContent5 {
    margin-top: 90px; }
  .ec-serviceOurSolution {
    margin-top: 60px;
    padding-left: 70px;
    padding-right: 70px; }
  .ec-serviceOurSolution .slickGutter .slick-list {
    margin-left: -40px;
    -webkit-clip-path: inset(0 0 0 40px);
            clip-path: inset(0 0 0 40px); }
    .ec-serviceOurSolution .slickGutter .slick-list .slick-slide {
      margin-left: 40px; }
    .ec-serviceOurSolution .slick-slider .slick-arrow.slick-prev {
      transform: translate(-100%, -50%); }
    .ec-serviceOurSolution .slick-slider .slick-arrow.slick-next {
      transform: translate(100%, -50%); }
    .ec-serviceOurSolution .ec-serviceOurSolution__item .content {
      padding: 1.25rem 1rem 1rem; }
      .ec-serviceOurSolution .ec-serviceOurSolution__item .content h3 {
        font-size: 1.06rem; }
    .ec-serviceContentBtnRole {
      margin-top: 60px;
      margin-bottom: 60px; }
    .ec-serviceIndexBanner {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-serviceIndexBanner,
      .ec-layoutRole__mainBetweenColumn .ec-serviceIndexBanner {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-serviceIndexBanner {
      margin-top: 60px;
      margin-bottom: 60px; }
    .ec-serviceIndexBanner {
      margin-top: 100px; }
  .ec-pageServiceCategory .ec-pageServiceCategory__head .ec-secHeading.wide {
    padding-bottom: 25px; }
    .ec-pageServiceCategory .ec-pageServiceCategory__head .pageback {
      margin-top: 25px; }
    .ec-serviceItemRole .ec-serviceItemRole__content {
      padding: 1rem 40px 40px; }
    .ec-serviceItemRole .ec-serviceItemRole__title {
      font-size: 1.33rem;
      margin-bottom: 0.67rem; }
    .ec-serviceDetailRole {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-serviceDetailRole,
      .ec-layoutRole__mainBetweenColumn .ec-serviceDetailRole {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-serviceDetailRole {
      padding-top: 60px;
      padding-bottom: 60px; }
    .ec-serviceDetailRole {
      padding-top: 40px; }
      .ec-serviceDetailRole .ec-serviceDetailRole__title {
        margin-bottom: 40px; }
        .ec-serviceDetailRole .ec-serviceDetailRole__title .sub {
          display: inline-block;
          vertical-align: bottom;
          margin: 0;
          font-size: 1.06rem; }
        .ec-serviceDetailRole .ec-serviceDetailRole__title h1 {
          display: inline-block;
          vertical-align: bottom;
          margin-left: 1em;
          margin-bottom: -0.1em; }
    .service_detail_template {
      margin-top: 100px; }
      .service_detail_template.template_head + .service_detail_template {
        margin-top: 1em; }
        .service_detail_template.template_head .relatedlink {
          margin: 40px 0; }
      .service_detail_template.template_D .pic {
        margin-top: 2em; }
  .ec-noveltyListRole {
    margin-top: 60px;
    margin-bottom: 60px; }
  .ec-noveltyListRole .ec-noveltyListRole__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -15px;
    margin-top: 0; }
    .ec-noveltyListRole .ec-noveltyListRole__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 30px ) / 3);
      margin-left: 15px;
      margin-top: 15px; }
      .ec-noveltyListRole .ec-noveltyListRole__list > *:nth-child(3n+1) {
        margin-left: 0; }
    .ec-noveltyFlowRole {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-noveltyFlowRole,
      .ec-layoutRole__mainBetweenColumn .ec-noveltyFlowRole {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-noveltyFlowRole {
      margin-top: 60px;
      margin-bottom: 60px; }
    .ec-noveltyFlowRole {
      margin-top: 120px;
      margin-bottom: 120px; }
      .ec-noveltyFlowRole .ec-noveltyFlowRole__item {
        display: flex;
        align-items: center;
        min-height: 90px;
        border-radius: 45px;
        padding: 0em 30px; }
        .ec-noveltyFlowRole .ec-noveltyFlowRole__item .title {
          font-size: 1.33rem; }
      .ec-noveltyFlowRole .ec-noveltyFlowRole__caution {
        margin-top: 40px;
        padding: 0 40px; }
      .ec-pagePerformanceList .ec-pagePerformanceList__item .content {
        padding: 1.75em 1.25em;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        color: #fff;
        display: flex;
        flex-flow: column;
        justify-content: flex-end;
        background: linear-gradient(0deg, #000 0%, transparent 30%);
        transition: .8s; }
        .ec-pagePerformanceList .ec-pagePerformanceList__item .content .text {
          margin-bottom: 2em; }
        .ec-pagePerformanceList .ec-pagePerformanceList__item .content .tag {
          bottom: 0;
          right: 0; }
          .ec-pagePerformanceList .ec-pagePerformanceList__item .content .tag span {
            font-size: 1.06rem;
            min-width: 150px;
            text-align: center; }
  .ec-pageFeelingsHeader {
    display: flex;
    padding: 7vw 7vw;
    overflow: hidden; }
    .ec-pageFeelingsHeader .ec-pageFeelingsHeader__fig {
      flex: 1 1 auto;
      position: relative; }
      .ec-pageFeelingsHeader .ec-pageFeelingsHeader__fig .fig {
        position: absolute;
        opacity: 0; }
        .ec-pageFeelingsHeader .ec-pageFeelingsHeader__fig .fig img {
          width: auto; }
        .ec-pageFeelingsHeader .ec-pageFeelingsHeader__fig .fig.fig_1 {
          top: 0;
          left: 0;
          -webkit-animation: animeFeelingsFig1 2s forwards;
                  animation: animeFeelingsFig1 2s forwards; }
  @-webkit-keyframes animeFeelingsFig1 {
    0% {
      transform: translate3d(-20%, 20%, 0);
      opacity: 0; }
    100% {
      transform: translate3d(0, 0, 0);
      opacity: 1; } }
  @keyframes animeFeelingsFig1 {
    0% {
      transform: translate3d(-20%, 20%, 0);
      opacity: 0; }
    100% {
      transform: translate3d(0, 0, 0);
      opacity: 1; } }
        .ec-pageFeelingsHeader .ec-pageFeelingsHeader__fig .fig.fig_2 {
          right: 5vw;
          bottom: 3vw;
          -webkit-animation: animeFeelingsFig2 3s forwards;
                  animation: animeFeelingsFig2 3s forwards; }
  @-webkit-keyframes animeFeelingsFig2 {
    0% {
      transform: translate3d(-20%, -20%, 0);
      opacity: 0; }
    100% {
      transform: translate3d(0, 0, 0);
      opacity: 1; } }
  @keyframes animeFeelingsFig2 {
    0% {
      transform: translate3d(-20%, -20%, 0);
      opacity: 0; }
    100% {
      transform: translate3d(0, 0, 0);
      opacity: 1; } }
        .ec-pageFeelingsHeader .ec-pageFeelingsHeader__fig .fig.fig_3 {
          top: 0;
          right: 0;
          -webkit-animation: animeFeelingsFig3 3s forwards;
                  animation: animeFeelingsFig3 3s forwards; }
  @-webkit-keyframes animeFeelingsFig3 {
    0% {
      transform: translate3d(20%, 20%, 0);
      opacity: 0; }
    100% {
      transform: translate3d(0, 0, 0);
      opacity: 1; } }
  @keyframes animeFeelingsFig3 {
    0% {
      transform: translate3d(20%, 20%, 0);
      opacity: 0; }
    100% {
      transform: translate3d(0, 0, 0);
      opacity: 1; } }
        .ec-pageFeelingsHeader .ec-pageFeelingsHeader__fig .fig.fig_4 {
          left: 5vw;
          bottom: 3vw;
          -webkit-animation: animeFeelingsFig4 2s forwards;
                  animation: animeFeelingsFig4 2s forwards; }
  @-webkit-keyframes animeFeelingsFig4 {
    0% {
      transform: translate3d(20%, -20%, 0);
      opacity: 0; }
    100% {
      transform: translate3d(0, 0, 0);
      opacity: 1; } }
  @keyframes animeFeelingsFig4 {
    0% {
      transform: translate3d(20%, -20%, 0);
      opacity: 0; }
    100% {
      transform: translate3d(0, 0, 0);
      opacity: 1; } }
    .ec-pageFeelingsHeader .ec-pageFeelingsHeader__content {
      flex: 0 0 auto;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
      display: flex;
      flex-flow: column;
      justify-content: center; }
      .ec-pageFeelingsHeader .ec-pageFeelingsHeader__content .title {
        font-family: "Noto Serif JP", serif;
        font-size: 50px;
        font-weight: 400;
        line-height: 1.5;
        margin: 0;
        margin-left: 1.5em; }
      .ec-pageFeelingsHeader .ec-pageFeelingsHeader__content .description {
        font-family: "Noto Serif JP", serif;
        font-size: 22px;
        line-height: 2.2;
        -webkit-animation: animeFeelingsDescription 2s forwards;
                animation: animeFeelingsDescription 2s forwards; }
        .ec-pageFeelingsHeader .ec-pageFeelingsHeader__content .description span {
          display: block; }
          .ec-pageFeelingsHeader .ec-pageFeelingsHeader__content .description span + br {
            display: none; }
  @-webkit-keyframes animeFeelingsDescription {
    0% {
      transform: translate3d(0, 3em, 0);
      opacity: 0; }
    100% {
      transform: translate3d(0, 0, 0);
      opacity: 1; } }
  @keyframes animeFeelingsDescription {
    0% {
      transform: translate3d(0, 3em, 0);
      opacity: 0; }
    100% {
      transform: translate3d(0, 0, 0);
      opacity: 1; } }
  .ec-pageFeelingsContent .ec-pageFeelingsContent__article {
    display: flex; }
    .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content {
      flex: 0 0 auto;
      padding: 5vw;
      padding-bottom: 4vw;
      width: 860px; }
      .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .box {
        width: 100%;
        -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
        display: flex;
        flex-flow: column;
        justify-content: center; }
        .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .box .subtitle span {
          display: inline-block;
          font-size: 1rem;
          padding: 1em .5em; }
        .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .box .title {
          font-size: 2.3rem;
          margin: 0;
          margin-right: .75em;
          margin-left: 1em; }
        .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .box .description {
          font-size: 1.13rem;
          line-height: 2;
          height: 25em; }
      .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .btnarea {
        margin-top: 3vw; }
        .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .btnarea .ec-blockDetailBtn, .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .btnarea .ec-blockDetailBtn--center, .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .btnarea .ec-progressAction .ec-progressAction__actions .ec-blockBtn--cancel, .ec-progressAction .ec-progressAction__actions .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .btnarea .ec-blockBtn--cancel,
        .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .btnarea .ec-progressAction .ec-progressAction__actions .ec-blockBtn--action, .ec-progressAction .ec-progressAction__actions .ec-pageFeelingsContent .ec-pageFeelingsContent__article .content .btnarea .ec-blockBtn--action {
          width: 250px; }
    .ec-pageFeelingsContent .ec-pageFeelingsContent__article .image {
      flex: 1 1 auto; }
    .ec-pageFeelingsContent .ec-pageFeelingsContent__article.rev .content {
      order: 2; }
    .ec-pageFeelingsContent .ec-pageFeelingsContent__article.rev .image {
      order: 1; }
    .ec-pageCompanyIndex {
      margin-top: 60px;
      margin-bottom: 60px; }
    .ec-pageCompanyIndex .ec-pageCompanyIndex__list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -20px; }
      .ec-pageCompanyIndex .ec-pageCompanyIndex__list > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 0px ) / 3);
        margin-left: 0px;
        margin-top: 20px; }
        .ec-pageCompanyIndex .ec-pageCompanyIndex__list > *:nth-child(3n+1) {
          margin-left: 0; }
        .ec-pageCompanyIndex .ec-pageCompanyIndex__item .content .title {
          font-size: 1.46rem; }
    .ec-personArticleRole .ec-personArticleRole__article {
      margin-top: 60px;
      margin-bottom: 60px; }
      .ec-personArticleRole .ec-personArticleRole__article:first-child {
        margin-top: 60px; }
    .ec-personArticleRole .shelfLayout-001 {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -20px; }
      .ec-personArticleRole .shelfLayout-001 > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 0px ) / 3);
        margin-left: 0px;
        margin-top: 20px; }
        .ec-personArticleRole .shelfLayout-001 > *:nth-child(3n+1) {
          margin-left: 0; }
          .ec-personArticleRole .shelfLayout-001 .item .content .title {
            font-size: 1.13rem;
            margin: .5em 0; }
    .ec-personArticleRole .shelfLayout-002 {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -15px; }
      .ec-personArticleRole .shelfLayout-002 > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 0px ) / 4);
        margin-left: 0px;
        margin-top: 15px; }
        .ec-personArticleRole .shelfLayout-002 > *:nth-child(4n+1) {
          margin-left: 0; }
  .ec-companyPolicyRole .ec-pageHeaderIntro .description {
    margin-top: 80px; }
    .ec-policyArticleRole .ec-policyArticleRole__article {
      margin-top: 60px;
      margin-bottom: 60px; }
    .ec-policyArticleRole .ec-policyArticleRole__article {
      margin-top: 90px;
      margin-bottom: 140px; }
      .ec-policyArticleRole .ec-policyArticleRole__article .title {
        margin: 50px 0 40px; }
  .ec-historyArticleRole {
    margin-left: -40px;
    margin-right: -40px; }
    .ec-historyArticleRole .ec-historyArticleRole__chronology {
      width: 35%;
      font-size: 1.73rem; }
  .ec-companyInfoArticleRole {
    margin-top: 40px;
    font-size: 1.06rem; }
  .ec-companyGroupArticleRole .ec-companyGroupArticleRole__row {
    margin-top: 60px;
    margin-bottom: 60px; }
    .ec-companyGroupArticleRole .ec-companyGroupArticleRole__row h2 {
      font-size: 1.33rem; }
      .ec-companyGroupArticleRole .ec-storeInfo .content {
        padding-left: 30px; }
        .ec-companyGroupArticleRole .ec-storeInfo .content .title {
          font-size: 1.06rem;
          margin-bottom: 1em; }
        .ec-companyGroupArticleRole .ec-storeInfo .content .address {
          font-size: 1.06rem;
          line-height: 2.2; }
  .ec-companyGroupArticleRole .ec-companyGroupArticleRole__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -40px; }
    .ec-companyGroupArticleRole .ec-companyGroupArticleRole__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 48px ) / 3);
      margin-left: 24px;
      margin-top: 40px; }
      .ec-companyGroupArticleRole .ec-companyGroupArticleRole__list > *:nth-child(3n+1) {
        margin-left: 0; }
    .ec-companyGroupArticleRole .ec-storeInfo_v .content .title {
      font-size: 1.06rem;
      margin: 1em 0 .75em; }
    .ec-companyGroupArticleRole .ec-storeInfo_v .content .address {
      font-size: 1.06rem;
      line-height: 1.6; }
    .ec-csrIndexList {
      margin-top: 60px;
      margin-bottom: 60px; }
    .ec-csrIndexList {
      margin-left: -40px;
      margin-right: -40px; }
        .ec-csrIndexList .ec-csrIndexList__item .content {
          padding: 40px;
          transition: .8s; }
          .ec-csrIndexList .ec-csrIndexList__item .content .title {
            font-size: 1.33rem; }
  .ec-companyPublicationArticleRole .ec-companyPublicationArticleRole__row {
    margin-top: 60px;
    margin-bottom: 60px; }
  .ec-companyPublicationArticleRole .ec-companyPublicationArticleRole__row {
    margin-top: 100px; }
    .ec-companyPublicationArticleRole .ec-companyPublicationArticleRole__row h2 {
      font-size: 1.33rem; }
  .ec-publicationListRole {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -30px;
    margin-left: -40px;
    margin-right: -40px; }
    .ec-publicationListRole > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 3);
      margin-left: 0px;
      margin-top: 30px; }
      .ec-publicationListRole > *:nth-child(3n+1) {
        margin-left: 0; }
      .ec-publicationListRole .ec-publicationListRole__item .content .title {
        font-size: 1.33rem; }
  .ec-publicationTalkListRole {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px;
    margin-left: -40px;
    margin-right: -40px; }
    .ec-publicationTalkListRole > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 2);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-publicationTalkListRole > *:nth-child(2n+1) {
        margin-left: 0; }
  .ec-publicationTalkListRole .ec-publicationTalkListRole__item {
    position: relative; }
    .ec-publicationTalkListRole .ec-publicationTalkListRole__item .content {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      background-color: rgba(0, 0, 0, 0.6);
      padding: 30px; }
      .ec-publicationTalkListRole .ec-publicationTalkListRole__item .content .title {
        font-size: 1.53rem;
        color: #fff;
        margin-top: 0; }
      .ec-publicationTalkListRole .ec-publicationTalkListRole__item .content .comment {
        font-size: 1rem;
        color: #fff; }
    .ec-beforeAfterViewRole {
      margin-top: 60px;
      margin-bottom: 60px; }
    .ec-beforeAfterViewRole {
      margin-top: 90px; }
  .ec-publicGalleryViewRole {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -30px;
    margin-top: 20px; }
    .ec-publicGalleryViewRole > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 60px ) / 3);
      margin-left: 30px;
      margin-top: 30px; }
      .ec-publicGalleryViewRole > *:nth-child(3n+1) {
        margin-left: 0; }
    .ec-publicTalkArticleRole .ec-publicTalkArticleRole__header .title {
      font-size: 1.66rem; }
      .ec-publicTalkArticleRole .ec-publicTalkArticleRole__header .title .interlocutor {
        font-size: 2.26rem; }
  .ec-publicTalkArticleRole .ec-publicTalkArticleRole__article {
    margin-top: 60px;
    margin-bottom: 60px; }
  .ec-publicTalkArticleRole .ec-publicTalkArticleRole__article {
    margin-top: 90px; }
  .ec-publicTalkArticleRole .ec-publicTalkArticleRole__article .pic {
    width: 500px;
    margin-bottom: 1em; }
    .ec-publicTalkArticleRole .ec-publicTalkArticleRole__article .pic.left {
      float: left;
      transform: translateX(-40px); }
    .ec-publicTalkArticleRole .ec-publicTalkArticleRole__article .pic.right {
      float: right;
      transform: translateX(40px); }
  .ec-csrArticleRole .ec-csrArticleRole__article {
    margin-top: 60px;
    margin-bottom: 60px; }
  .ec-csrArticleRole .ec-csrArticleRole__article {
    margin-top: 90px; }
    .ec-csrArticleRole .ec-csrArticleRole__article .fig {
      margin-top: 40px;
      margin-bottom: 40px; }
  .ec-csrLayoutWithPic {
    display: flex; }
  .ec-csrLayoutWithPic .content {
    flex: 1 1 auto; }
  .ec-csrLayoutWithPic .pic {
    flex: 0 0 auto; }
    .ec-csrLayoutWithPic .pic.left {
      order: -1;
      transform: translateX(-40px); }
    .ec-csrLayoutWithPic .pic.right {
      order: 2;
      transform: translateX(40px); }
  .ec-csrLayoutPerformance {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -60px; }
    .ec-csrLayoutPerformance > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 50px ) / 2);
      margin-left: 50px;
      margin-top: 60px; }
      .ec-csrLayoutPerformance > *:nth-child(2n+1) {
        margin-left: 0; }
    .ec-companySdgsArticleRole .ec-companySdgsArticleRole__goals .image {
      margin-top: 60px;
      margin-bottom: 60px; }
    .ec-companySdgsArticleRole .ec-companySdgsArticleRole__goals .description {
      max-width: 65em;
      margin-left: auto;
      margin-right: auto; }
  .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi {
    margin-top: 60px;
    margin-bottom: 60px; }
  .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi {
    margin-top: 200px;
    margin-bottom: 100px;
    display: flex;
    max-width: 1120px;
    margin-left: auto;
    margin-right: auto; }
    .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box1 {
      flex: 0 0 auto;
      width: 170px; }
    .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 {
      flex: 1 1 auto;
      margin-left: 60px; }
    .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 h2 {
      font-size: 2.66rem; }
  .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 .torikumi_list {
    max-width: 750px;
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px;
    margin-top: 60px; }
    .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 .torikumi_list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 150px ) / 6);
      margin-left: 30px;
      margin-top: 0px; }
      .ec-companySdgsArticleRole .ec-companySdgsArticleRole__torikumi .box2 .torikumi_list > *:nth-child(6n+1) {
        margin-left: 0; }
    .ec-sdgsArticleRole {
      margin-left: -40px;
      margin-right: -40px;
      padding-left: 40px;
      padding-right: 40px;
      margin-top: 180px;
      padding-bottom: 100px; }
        .ec-sdgsArticleRole .ec-sdgsArticleRole__head .image {
          margin-right: 95px; }
        .ec-sdgsArticleRole .ec-sdgsArticleRole__head .content h2 {
          font-size: 2.666rem;
          margin-top: 1em;
          margin-bottom: 1em; }
        .ec-sdgsArticleRole .ec-sdgsArticleRole__head .content .description {
          font-size: 1.2rem; }
    .ec-sdgsArticleRole .ec-sdgsArticleRole__content .sdgs_article {
      margin-top: 95px;
      display: flex; }
      .ec-sdgsArticleRole .ec-sdgsArticleRole__content .sdgs_article .image {
        flex: 0 0 auto;
        width: 483px;
        margin-right: 80px; }
      .ec-sdgsArticleRole .ec-sdgsArticleRole__content .sdgs_article .content {
        flex: 1 1 auto; }
      .ec-sdgsArticleRole .ec-sdgsArticleRole__content .sdgs_article:nth-child(odd) .image {
        order: 2;
        margin-right: 0;
        margin-left: 80px; }
      .ec-sdgsArticleRole .ec-sdgsArticleRole__content .sdgs_article:nth-child(odd) .content {
        order: 1; }
      .ec-sdgsArticleRole .ec-sdgsArticleRole__content .content h3 {
        font-size: 2rem; }
      .ec-sdgsArticleRole .ec-sdgsArticleRole__content .content h4 {
        font-size: 1.2rem; }
      .ec-sdgsArticleRole .ec-sdgsArticleRole__content .content .text {
        font-size: 1.2rem; }
  .ec-pageGoldleafIndex {
    margin-bottom: 60px; }
  .ec-pageGoldleafIndex .ec-pageGoldleafIndex__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px; }
    .ec-pageGoldleafIndex .ec-pageGoldleafIndex__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 0px ) / 2);
      margin-left: 0px;
      margin-top: 0px; }
      .ec-pageGoldleafIndex .ec-pageGoldleafIndex__list > *:nth-child(2n+1) {
        margin-left: 0; }
      .ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .image .overtitle {
        font-size: 2rem; }
  .ec-pageGoldleafIndex .ec-pageGoldleafIndex__item .linkbtn {
    display: none; }
  .ec-goldleafFlow {
    margin-top: 60px;
    margin-bottom: 60px; }
    .ec-goldleafFlow .ec-goldleafFlow__list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: -40px; }
      .ec-goldleafFlow .ec-goldleafFlow__list > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 40px ) / 2);
        margin-left: 40px;
        margin-top: 40px; }
        .ec-goldleafFlow .ec-goldleafFlow__list > *:nth-child(2n+1) {
          margin-left: 0; }
  .ec-goldleafFlowMethod {
    margin-top: 60px;
    margin-bottom: 60px; }
  .ec-goldleafFlowMethod {
    margin-top: 90px; }
  .ec-goldleafFlowMethod .ec-goldleafFlowMethod__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: -40px; }
    .ec-goldleafFlowMethod .ec-goldleafFlowMethod__list > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 40px ) / 2);
      margin-left: 40px;
      margin-top: 40px; }
      .ec-goldleafFlowMethod .ec-goldleafFlowMethod__list > *:nth-child(2n+1) {
        margin-left: 0; }
  .ec-goldleafHistory .ec-goldleafHistory__article {
    margin-top: 60px;
    margin-bottom: 60px; }
  .ec-goldleafHistory .ec-goldleafHistory__article {
    margin-top: 80px;
    display: flex; }
  .ec-goldleafHistory .ec-goldleafHistory__article .content {
    flex: 0 0 auto;
    width: 50%;
    padding-right: 40px; }
    .ec-goldleafHistory .ec-goldleafHistory__article .image {
      flex: 0 0 auto;
      width: 50%; }
        .ec-goldleafHistory .ec-goldleafHistory__article .image .pic + .pic {
          margin-left: 30px; }
    .ec-goldleafHistory .ec-goldleafHistory__article.rev .content {
      padding-right: 0;
      padding-left: 40px; }
    .ec-pageSupportIndex {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-pageSupportIndex,
      .ec-layoutRole__mainBetweenColumn .ec-pageSupportIndex {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-pageSupportIndex {
      margin-top: 60px;
      margin-bottom: 60px; }
    .ec-pageSupportIndex {
      margin-bottom: 100px; }
    .ec-pageSupportIndex .ec-pageSupportIndex__list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-flow: row wrap;
      margin-top: 0px;
      margin-top: 5px; }
      .ec-pageSupportIndex .ec-pageSupportIndex__list > * {
        flex: 0 0 auto;
        width: calc((100% - 1px - 10px ) / 3);
        margin-left: 5px;
        margin-top: 0px; }
        .ec-pageSupportIndex .ec-pageSupportIndex__list > *:nth-child(3n+1) {
          margin-left: 0; }
      .ec-pageSupportIndex .ec-pageSupportIndex__item {
        display: flex;
        flex-flow: column;
        padding: 25px 20px; }
        .ec-pageSupportIndex .ec-pageSupportIndex__item .phone {
          font-size: 3.2rem; }
  .ec-pageStudioContent {
    margin-top: 60px;
    margin-bottom: 60px; }
  .ec-pageStudioContent {
    margin-top: 80px; }
    .ec-pageStudioContent .ec-pageStudioContent__head {
      /* 1カラムレイアウト時はコンテナ自身に左右余白を持たせる */
      padding-left: 40px;
      padding-right: 40px;
      /* 2～3カラムレイアウト自はコンテナ自体に左右余白は持たせません。
     * 親フレームである「.ec-layoutRole__contents」が余白を持つようにしています（_11.1.role.scss）。
     * 余談的な補足となりますが、1カラムの場合に「.ec-layoutRole__contents」にmax-widthを定義せずコンテナ側にmax-widthを持たせるようにしているのは、
     * コンテナによっては背景色をブラウザいっぱいに敷くデザインにも対応させるためにそうしてあります。
     * 2～3カラムではそういうコンテナはありえませんのでコンテナのmax-widthや余白はリセットさせておきます。
    */ }
      .ec-layoutRole__mainWithColumn .ec-pageStudioContent .ec-pageStudioContent__head,
      .ec-layoutRole__mainBetweenColumn .ec-pageStudioContent .ec-pageStudioContent__head {
        max-width: auto;
        padding-left: 0;
        padding-right: 0; }
    .ec-pageStudioContent .ec-pageStudioContent__number {
      font-size: 3.73rem;
      margin-bottom: .75em; }
    .ec-pageStudioContent .ec-pageStudioContent__title {
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
      display: flex;
      align-items: center;
      width: 100%;
      text-align: left; }
  .ec-pageStudioContent .ec-pageStudioContent__photo.col3 {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px;
    margin-top: 60px; }
    .ec-pageStudioContent .ec-pageStudioContent__photo.col3 > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 2px ) / 3);
      margin-left: 1px;
      margin-top: 0px; }
      .ec-pageStudioContent .ec-pageStudioContent__photo.col3 > *:nth-child(3n+1) {
        margin-left: 0; }
  .ec-pageStudioContent .ec-pageStudioContent__photo.col4 {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-flow: row wrap;
    margin-top: 0px;
    margin-top: 60px; }
    .ec-pageStudioContent .ec-pageStudioContent__photo.col4 > * {
      flex: 0 0 auto;
      width: calc((100% - 1px - 3px ) / 4);
      margin-left: 1px;
      margin-top: 0px; }
      .ec-pageStudioContent .ec-pageStudioContent__photo.col4 > *:nth-child(4n+1) {
        margin-left: 0; }
    .ec-pageStudioContact {
      margin-top: 60px;
      margin-bottom: 60px; }
    .ec-pageStudioContact {
      max-width: 960px;
      margin: 130px auto;
      padding: 40px; }
      .ec-pageStudioContact .ec-blockDetailBtn--center {
        margin-top: 40px;
        margin-bottom: 0; } }
@media print, screen and (min-width: 1280px) and (min-width: 1280px) {
    .ec-off2Grid .ec-off2Grid__cell {
      width: 66.66667%; }
    .ec-off3Grid .ec-off3Grid__cell {
      width: 50%; }
    .ec-off4Grid .ec-off4Grid__cell {
      width: 33.33333%; } }
/*# sourceMappingURL=style.css.map */
