From 590546d102bdc64c75108efe97fca02b504e322c Mon Sep 17 00:00:00 2001 From: Kiyoshi Yamamura Date: Tue, 11 Sep 2018 17:38:04 +0900 Subject: [PATCH 001/170] =?UTF-8?q?=E5=90=8C=E4=B8=80=E3=83=95=E3=82=A9?= =?UTF-8?q?=E3=83=BC=E3=83=A0=E5=88=A9=E7=94=A8=E6=99=82=E3=81=ABhtml?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E3=81=AEid=E3=81=8C=E8=A2=AB=E3=82=8B?= =?UTF-8?q?=E6=99=82=E3=81=8C=E3=81=82=E3=82=8B=E3=81=9F=E3=82=81=E3=80=81?= =?UTF-8?q?=E8=A2=AB=E3=82=8B=E3=83=95=E3=82=A9=E3=83=BC=E3=83=A0=E9=A0=85?= =?UTF-8?q?=E7=9B=AE=E3=81=AFid=E5=B1=9E=E6=80=A7=E3=82=92=E5=87=BA?= =?UTF-8?q?=E5=8A=9B=E3=81=97=E3=81=AA=E3=81=84=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Resource/template/default/Block/search_product.twig | 8 +++++--- .../Resource/template/default/Form/form_div_layout.twig | 8 ++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Eccube/Resource/template/default/Block/search_product.twig b/src/Eccube/Resource/template/default/Block/search_product.twig index bb3c7bac900..a33cb874e2d 100644 --- a/src/Eccube/Resource/template/default/Block/search_product.twig +++ b/src/Eccube/Resource/template/default/Block/search_product.twig @@ -8,16 +8,18 @@ http://www.lockon.co.jp/ For the full copyright and license information, please view the LICENSE file that was distributed with this source code. #} +{% form_theme form 'Form/form_div_layout.twig' %} +
-
+
- {{ form_widget(form.name, {'attr': { 'placeholder' : 'common.search_keyword' }} ) }} + {{ form_widget(form.name, {'id': null, 'attr': { 'placeholder' : 'common.search_keyword' }} ) }}
diff --git a/src/Eccube/Service/CartService.php b/src/Eccube/Service/CartService.php index 19375be6718..1d8d19e73cf 100644 --- a/src/Eccube/Service/CartService.php +++ b/src/Eccube/Service/CartService.php @@ -133,7 +133,7 @@ public function __construct( */ public function getCarts($empty_delete = false) { - if (!empty($this->carts)) { + if (null !== $this->carts) { if ($empty_delete) { $cartKeys = []; foreach (array_keys($this->carts) as $index) { @@ -181,6 +181,10 @@ public function getSessionCarts() { $cartKeys = $this->session->get('cart_keys', []); + if (empty($cartKeys)) { + return []; + } + return $this->cartRepository->findBy(['cart_key' => $cartKeys], ['id' => 'DESC']); } From 4dea64d787f9b96eb98dc691f5a62ea6893acdba Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Thu, 13 Sep 2018 17:15:28 +0900 Subject: [PATCH 019/170] =?UTF-8?q?=E3=82=AB=E3=83=BC=E3=83=88=E3=83=96?= =?UTF-8?q?=E3=83=AD=E3=83=83=E3=82=AF=E3=81=AE=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Twig/Extension/CartServiceExtension.php | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/Eccube/Twig/Extension/CartServiceExtension.php diff --git a/src/Eccube/Twig/Extension/CartServiceExtension.php b/src/Eccube/Twig/Extension/CartServiceExtension.php new file mode 100644 index 00000000000..66a790e7a57 --- /dev/null +++ b/src/Eccube/Twig/Extension/CartServiceExtension.php @@ -0,0 +1,65 @@ +cartService = $cartService; + } + + public function getFunctions() + { + return [ + new \Twig_Function('get_cart', [$this, 'get_cart'], ['is_safe' => ['all']]), + new \Twig_Function('get_all_carts', [$this, 'get_all_carts'], ['is_safe' => ['all']]), + new \Twig_Function('get_carts_total_price', [$this, 'get_carts_total_price'], ['is_safe' => ['all']]), + new \Twig_Function('get_carts_total_quantity', [$this, 'get_carts_total_quantity'], ['is_safe' => ['all']]), + ]; + } + + public function get_cart() + { + return $this->cartService->getCart(); + } + + public function get_all_carts() + { + return $this->cartService->getCarts(); + } + + public function get_carts_total_price() + { + $Carts = $this->cartService->getCarts(); + $totalPrice = array_reduce($Carts, function ($total, Cart $Cart) { + $total += $Cart->getTotalPrice(); + + return $total; + }, 0); + + return $totalPrice; + } + + public function get_carts_total_quantity() + { + $Carts = $this->cartService->getCarts(); + $totalQuantity = array_reduce($Carts, function ($total, Cart $Cart) { + $total += $Cart->getTotalQuantity(); + + return $total; + }, 0); + + return $totalQuantity; + } +} \ No newline at end of file From 6612838db11cdcde3a984ea9e9077de8fdf370d9 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Fri, 14 Sep 2018 11:14:25 +0900 Subject: [PATCH 020/170] =?UTF-8?q?=E3=83=AC=E3=82=A4=E3=82=A2=E3=82=A6?= =?UTF-8?q?=E3=83=88=E3=81=AE=E3=82=AD=E3=83=A3=E3=83=83=E3=82=B7=E3=83=A5?= =?UTF-8?q?=E3=82=92=E6=9C=89=E5=8A=B9=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EventListener/TwigInitializeListener.php | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/src/Eccube/EventListener/TwigInitializeListener.php b/src/Eccube/EventListener/TwigInitializeListener.php index c313225df0d..0b54e675b00 100644 --- a/src/Eccube/EventListener/TwigInitializeListener.php +++ b/src/Eccube/EventListener/TwigInitializeListener.php @@ -193,12 +193,7 @@ public function setFrontVariables(GetResponseEvent $event) // URLからPageを取得 /** @var Page $Page */ - $Page = $this->pageRepository->findOneBy(['url' => $route]); - - // 該当するPageがない場合は空のページをセット - if (!$Page) { - $Page = $this->pageRepository->newPage(); - } + $Page = $this->pageRepository->getPageByRoute($route); /** @var PageLayout[] $PageLayouts */ $PageLayouts = $Page->getPageLayouts(); @@ -227,22 +222,21 @@ public function setFrontVariables(GetResponseEvent $event) if ($request->get('preview')) { $is_admin = $request->getSession()->has('_security_admin'); if ($is_admin) { - $Page->getPageLayouts()->clear(); - $PageLayouts = $this->pageLayoutRepository->findBy(['layout_id' => 0]); - foreach ($PageLayouts as $PageLayout) { - $Page->addPageLayout($PageLayout); - } + $Layout = $this->layoutRepository->get(Layout::DEFAULT_LAYOUT_PREVIEW_PAGE); - $Layout->getBlockPositions()->clear(); - $BlockPositions = $this->blockPositionRepository->findBy(['layout_id' => 0]); - foreach ($BlockPositions as $BlockPosition) { - $Layout->addBlockPosition($BlockPosition); - } + $this->twig->addGlobal('Layout', $Layout); + $this->twig->addGlobal('Page', $Page); + $this->twig->addGlobal('title', $Page->getName()); + + return; } } - // Layoutのデータがない場合は空のLayoutをセット - if (!$Layout) { + if ($Layout) { + // lazy loadを制御するため, Layoutを取得しなおす. + $Layout = $this->layoutRepository->get($Layout->getId()); + } else { + // Layoutのデータがない場合は空のLayoutをセット $Layout = new Layout(); } From d38629d446c80e461a115cb37a42a8643286bf13 Mon Sep 17 00:00:00 2001 From: ryo-endo Date: Fri, 14 Sep 2018 11:41:02 +0900 Subject: [PATCH 021/170] =?UTF-8?q?=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7?= =?UTF-8?q?=E3=83=B3=E7=95=AA=E5=8F=B74.0.0-RC1=E3=81=AB=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Common/Constant.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Common/Constant.php b/src/Eccube/Common/Constant.php index ad527eda091..c64f52c6d60 100644 --- a/src/Eccube/Common/Constant.php +++ b/src/Eccube/Common/Constant.php @@ -18,7 +18,7 @@ class Constant /** * EC-CUBE VERSION. */ - const VERSION = '4.0-beta'; + const VERSION = '4.0.0-RC1'; /** * Enable value. From 386547b3d01fdea98e739576916e27b335b8f5de Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Fri, 14 Sep 2018 12:41:17 +0900 Subject: [PATCH 022/170] =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=83=E3=82=B7?= =?UTF-8?q?=E3=83=A5=E3=81=AE=E5=89=8A=E9=99=A4=E6=BC=8F=E3=82=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/Admin/Product/CategoryController.php | 4 +++- src/Eccube/Controller/Admin/Product/CsvImportController.php | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Controller/Admin/Product/CategoryController.php b/src/Eccube/Controller/Admin/Product/CategoryController.php index 50d883eaa75..edbc439306c 100644 --- a/src/Eccube/Controller/Admin/Product/CategoryController.php +++ b/src/Eccube/Controller/Admin/Product/CategoryController.php @@ -252,7 +252,7 @@ public function delete(Request $request, $id, CacheUtil $cacheUtil) /** * @Route("/%eccube_admin_route%/product/category/sort_no/move", name="admin_product_category_sort_no_move", methods={"POST"}) */ - public function moveSortNo(Request $request) + public function moveSortNo(Request $request, CacheUtil $cacheUtil) { if (!$request->isXmlHttpRequest()) { throw new BadRequestHttpException(); @@ -269,6 +269,8 @@ public function moveSortNo(Request $request) } $this->entityManager->flush(); + $cacheUtil->clearDoctrineCache(); + return new Response('Successful'); } } diff --git a/src/Eccube/Controller/Admin/Product/CsvImportController.php b/src/Eccube/Controller/Admin/Product/CsvImportController.php index 43ad009d94c..c10a6cc283f 100644 --- a/src/Eccube/Controller/Admin/Product/CsvImportController.php +++ b/src/Eccube/Controller/Admin/Product/CsvImportController.php @@ -34,6 +34,7 @@ use Eccube\Repository\ProductRepository; use Eccube\Repository\TagRepository; use Eccube\Service\CsvImportService; +use Eccube\Util\CacheUtil; use Eccube\Util\StringUtil; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Component\Filesystem\Filesystem; @@ -537,7 +538,7 @@ public function csvProduct(Request $request) * @Route("/%eccube_admin_route%/product/category_csv_upload", name="admin_product_category_csv_import") * @Template("@admin/Product/csv_category.twig") */ - public function csvCategory(Request $request) + public function csvCategory(Request $request, CacheUtil $cacheUtil) { $form = $this->formFactory->createBuilder(CsvImportType::class)->getForm(); @@ -682,6 +683,8 @@ public function csvCategory(Request $request) log_info('カテゴリCSV登録完了'); $message = 'admin.common.csv_upload_complete'; $this->session->getFlashBag()->add('eccube.admin.success', $message); + + $cacheUtil->clearDoctrineCache(); } } } From d0ed80dfe0536a035dc9064dfe672456fca82290 Mon Sep 17 00:00:00 2001 From: ryo-endo Date: Fri, 14 Sep 2018 15:26:56 +0900 Subject: [PATCH 023/170] =?UTF-8?q?=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7?= =?UTF-8?q?=E3=83=B3=E7=95=AA=E5=8F=B74.0.0-RC=E3=81=AB=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Common/Constant.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Common/Constant.php b/src/Eccube/Common/Constant.php index c64f52c6d60..54243499b2e 100644 --- a/src/Eccube/Common/Constant.php +++ b/src/Eccube/Common/Constant.php @@ -18,7 +18,7 @@ class Constant /** * EC-CUBE VERSION. */ - const VERSION = '4.0.0-RC1'; + const VERSION = '4.0.0-RC'; /** * Enable value. From 80dba0988e7b2c4d8ba7b7f178d6b215704d4fdd Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Fri, 14 Sep 2018 16:02:03 +0900 Subject: [PATCH 024/170] =?UTF-8?q?fix=20=E5=87=BA=E8=8D=B7=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E3=83=A1=E3=83=BC=E3=83=AB=E3=81=AE=E6=B3=A8=E6=96=87?= =?UTF-8?q?=E8=80=85=E6=83=85=E5=A0=B1=E3=81=8C=E9=85=8D=E9=80=81=E5=85=88?= =?UTF-8?q?=E6=83=85=E5=A0=B1=E3=81=A8=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=9F=E3=81=AE=E3=81=A7=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../default/Mail/shipping_notify.html.twig | 14 +++++++------- .../template/default/Mail/shipping_notify.twig | 14 +++++++------- src/Eccube/Service/MailService.php | 1 + 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/Eccube/Resource/template/default/Mail/shipping_notify.html.twig b/src/Eccube/Resource/template/default/Mail/shipping_notify.html.twig index 57d962a87fa..66c6e337c88 100644 --- a/src/Eccube/Resource/template/default/Mail/shipping_notify.html.twig +++ b/src/Eccube/Resource/template/default/Mail/shipping_notify.html.twig @@ -54,14 +54,14 @@ file that was distributed with this source code.
 ご注文者情報

- お名前:{{ Shipping.name01 }} {{ Shipping.name02 }} 様
- お名前(カナ):{{ Shipping.kana01 }} {{ Shipping.kana02 }} 様
- {% if Shipping.company_name %} - 会社名:{{ Shipping.company_name }}
+ お名前:{{ Order.name01 }} {{ Order.name02 }} 様
+ お名前(カナ):{{ Order.kana01 }} {{ Order.kana02 }} 様
+ {% if Order.company_name %} + 会社名:{{ Order.company_name }}
{% endif %} - 郵便番号:〒{{ Shipping.postal_code }}
- 住所:{{ Shipping.Pref.name }}{{ Shipping.addr01 }}{{ Shipping.addr02 }}
- 電話番号:{{ Shipping.phone_number }}
+ 郵便番号:〒{{ Order.postal_code }}
+ 住所:{{ Order.Pref.name }}{{ Order.addr01 }}{{ Order.addr02 }}
+ 電話番号:{{ Order.phone_number }}


 配送情報
diff --git a/src/Eccube/Resource/template/default/Mail/shipping_notify.twig b/src/Eccube/Resource/template/default/Mail/shipping_notify.twig index d69afef5db2..5ae707bd30c 100644 --- a/src/Eccube/Resource/template/default/Mail/shipping_notify.twig +++ b/src/Eccube/Resource/template/default/Mail/shipping_notify.twig @@ -36,14 +36,14 @@ file that was distributed with this source code. ************************************************  ご注文者情報 ************************************************ -お名前:{{ Shipping.name01 }} {{ Shipping.name02 }} 様 -お名前(カナ):{{ Shipping.kana01 }} {{ Shipping.kana02 }} 様 -{% if Shipping.company_name %} -会社名:{{ Shipping.company_name }} +お名前:{{ Order.name01 }} {{ Order.name02 }} 様 +お名前(カナ):{{ Order.kana01 }} {{ Order.kana02 }} 様 +{% if Order.company_name %} +会社名:{{ Order.company_name }} {% endif %} -郵便番号:〒{{ Shipping.postal_code }} -住所:{{ Shipping.Pref.name }}{{ Shipping.addr01 }}{{ Shipping.addr02 }} -電話番号:{{ Shipping.phone_number }} +郵便番号:〒{{ Order.postal_code }} +住所:{{ Order.Pref.name }}{{ Order.addr01 }}{{ Order.addr02 }} +電話番号:{{ Order.phone_number }} ************************************************  配送情報 diff --git a/src/Eccube/Service/MailService.php b/src/Eccube/Service/MailService.php index 49b757034b7..697f768f30f 100644 --- a/src/Eccube/Service/MailService.php +++ b/src/Eccube/Service/MailService.php @@ -719,6 +719,7 @@ public function getShippingNotifyMailBody(Shipping $Shipping, Order $Order, $tem return $this->twig->render($fileName, [ 'Shipping' => $Shipping, 'ShippingItems' => $ShippingItems, + 'Order' => $Order, ]); } From 746cb7c91873e63d9b6aecf31f368e84780cd3d3 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Fri, 14 Sep 2018 16:38:50 +0900 Subject: [PATCH 025/170] =?UTF-8?q?fix=20=E3=83=97=E3=83=AC=E3=83=93?= =?UTF-8?q?=E3=83=A5=E3=83=BC=E7=94=A8=E3=81=AE=E3=83=AC=E3=82=A4=E3=82=A2?= =?UTF-8?q?=E3=82=A6=E3=83=88=E3=81=8C=E3=83=9A=E3=83=BC=E3=82=B8=E7=B7=A8?= =?UTF-8?q?=E9=9B=86=E7=94=BB=E9=9D=A2=E3=81=A7=E9=81=B8=E6=8A=9E=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E3=81=A8=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=97=E3=81=BE?= =?UTF-8?q?=E3=81=A3=E3=81=A6=E3=81=84=E3=81=9F=E3=81=AE=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=20=E3=81=A4=E3=81=84=E3=81=A7=E3=81=AB=E3=83=9E?= =?UTF-8?q?=E3=82=B8=E3=83=83=E3=82=AF=E3=83=8A=E3=83=B3=E3=83=90=E3=83=BC?= =?UTF-8?q?=E3=82=92=E5=AE=9A=E6=95=B0=E3=81=AB=E7=BD=AE=E3=81=8D=E6=8F=9B?= =?UTF-8?q?=E3=81=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/Admin/Content/LayoutController.php | 3 ++- src/Eccube/Form/Type/Admin/MainEditType.php | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Eccube/Controller/Admin/Content/LayoutController.php b/src/Eccube/Controller/Admin/Content/LayoutController.php index 31e0e11fe78..edc50e879c8 100644 --- a/src/Eccube/Controller/Admin/Content/LayoutController.php +++ b/src/Eccube/Controller/Admin/Content/LayoutController.php @@ -106,9 +106,10 @@ public function __construct(BlockRepository $blockRepository, BlockPositionRepos public function index() { $qb = $this->layoutRepository->createQueryBuilder('l'); - $Layouts = $qb->where('l.id != 0') + $Layouts = $qb->where('l.id != :DefaultLayoutPreviewPage') ->orderBy('l.DeviceType', 'DESC') ->addOrderBy('l.id', 'ASC') + ->setParameter('DefaultLayoutPreviewPage', Layout::DEFAULT_LAYOUT_PREVIEW_PAGE) ->getQuery() ->getResult(); diff --git a/src/Eccube/Form/Type/Admin/MainEditType.php b/src/Eccube/Form/Type/Admin/MainEditType.php index 7bb2a36e84c..4bafb15a976 100644 --- a/src/Eccube/Form/Type/Admin/MainEditType.php +++ b/src/Eccube/Form/Type/Admin/MainEditType.php @@ -162,8 +162,10 @@ public function buildForm(FormBuilderInterface $builder, array $options) $DeviceType = $this->deviceTypeRepository->find(DeviceType::DEVICE_TYPE_PC); return $er->createQueryBuilder('l') - ->where('l.DeviceType = :DeviceType') + ->where('l.id != :DefaultLayoutPreviewPage') + ->andWhere('l.DeviceType = :DeviceType') ->setParameter('DeviceType', $DeviceType) + ->setParameter('DefaultLayoutPreviewPage', Layout::DEFAULT_LAYOUT_PREVIEW_PAGE) ->orderBy('l.id', 'DESC'); }, ]) @@ -176,8 +178,10 @@ public function buildForm(FormBuilderInterface $builder, array $options) $DeviceType = $this->deviceTypeRepository->find(DeviceType::DEVICE_TYPE_MB); return $er->createQueryBuilder('l') - ->where('l.DeviceType = :DeviceType') + ->where('l.id != :DefaultLayoutPreviewPage') + ->andWhere('l.DeviceType = :DeviceType') ->setParameter('DeviceType', $DeviceType) + ->setParameter('DefaultLayoutPreviewPage', Layout::DEFAULT_LAYOUT_PREVIEW_PAGE) ->orderBy('l.id', 'DESC'); }, ]) From 5d64a98f7d6087c52852f6861e8886448cdd8520 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Fri, 14 Sep 2018 17:13:45 +0900 Subject: [PATCH 026/170] =?UTF-8?q?feat=20=E6=96=B0=E7=9D=80=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E3=81=AE=E6=97=A5=E4=BB=98=E3=81=A8=E6=96=87=E8=A8=80?= =?UTF-8?q?=E3=82=92=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/doctrine/import_csv/dtb_news.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Resource/doctrine/import_csv/dtb_news.csv b/src/Eccube/Resource/doctrine/import_csv/dtb_news.csv index fc8ccb6cc18..e7fe804fd80 100644 --- a/src/Eccube/Resource/doctrine/import_csv/dtb_news.csv +++ b/src/Eccube/Resource/doctrine/import_csv/dtb_news.csv @@ -1,2 +1,2 @@ id,creator_id,publish_date,title,description,url,link_method,create_date,update_date,visible,discriminator_type -"1",,"2017-03-07 10:14:52","サイトオープンいたしました!","一人暮らしからオフィスなどさまざまなシーンで あなたの生活をサポートするグッズをご家庭へお届けします!",,"1","2017-03-07 10:14:52","2017-03-07 10:14:52","1","news" +"1",,"2018-09-01 09:00:00","サイトオープンいたしました!","旬の色どりスイーツとこだわりのジェラートをお届けします。",,"1","2018-09-01 09:00:00","2018-09-01 09:00:00","1","news" From 452d3943bfedfd955157ac1463317d9ad02b49e0 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Wed, 12 Sep 2018 19:08:32 +0900 Subject: [PATCH 027/170] =?UTF-8?q?=E6=97=A2=E3=81=AB=E7=84=A1=E5=8A=B9?= =?UTF-8?q?=E5=8C=96=E3=81=97=E3=81=A6=E3=81=84=E3=82=8B=E5=A0=B4=E5=90=88?= =?UTF-8?q?=E3=81=AE=E3=82=A8=E3=83=A9=E3=83=BC=E3=83=A1=E3=83=83=E3=82=BB?= =?UTF-8?q?=E3=83=BC=E3=82=B8=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_support/Page/Admin/PluginManagePage.php | 5 ++- codeception/acceptance/EA10PluginCest.php | 45 ++++++++++++++----- .../Admin/Store/PluginController.php | 2 +- src/Eccube/Resource/locale/messages.ja.yaml | 1 + 4 files changed, 40 insertions(+), 13 deletions(-) diff --git a/codeception/_support/Page/Admin/PluginManagePage.php b/codeception/_support/Page/Admin/PluginManagePage.php index bc75f68652c..4f8a41ca11a 100644 --- a/codeception/_support/Page/Admin/PluginManagePage.php +++ b/codeception/_support/Page/Admin/PluginManagePage.php @@ -45,12 +45,13 @@ public function ストアプラグイン_有効化($pluginCode, $message = '有 /** * @param $pluginCode * + * @param string $message * @return PluginManagePage */ - public function ストアプラグイン_無効化($pluginCode) + public function ストアプラグイン_無効化($pluginCode, $message = '無効にしました。') { $this->ストアプラグイン_ボタンクリック($pluginCode, '無効化'); - $this->tester->see('無効にしました。', self::完了メーッセージ); + $this->tester->see($message, self::完了メーッセージ); return $this; } diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index 1cb1a274abd..774f45187e5 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -46,16 +46,6 @@ public function _before(\AcceptanceTester $I) FileSystem::doEmptyDir('repos'); } - public function install_enable_enable(\AcceptanceTester $I) - { - Horizon_Store::start($I) - ->インストール() - ->新しいタブで開く() - ->有効化() - ->前のタブに戻る() - ->既に有効なものを有効化(); - } - public function install_enable_disable_enable_disable_remove_store(\AcceptanceTester $I) { Horizon_Store::start($I) @@ -174,6 +164,27 @@ public function install_update_enable_disable_remove_store(\AcceptanceTester $I) ->削除(); } + public function install_enable_enable(\AcceptanceTester $I) + { + Horizon_Store::start($I) + ->インストール() + ->新しいタブで開く() + ->有効化() + ->前のタブに戻る() + ->既に有効なものを有効化(); + } + + public function install_disable_disable(\AcceptanceTester $I) + { + Horizon_Store::start($I) + ->インストール() + ->有効化() + ->新しいタブで開く() + ->無効化() + ->前のタブに戻る() + ->既に無効なものを無効化(); + } + public function install_assets_local(\AcceptanceTester $I) { $this->publishPlugin('Assets-1.0.0.tgz'); @@ -401,6 +412,20 @@ public function 無効化() return $this; } + public function 既に無効なものを無効化() + { + $this->ManagePage->ストアプラグイン_無効化('Horizon', '「ホライゾン」は既に無効です。'); + + $this->I->assertTrue($this->tableExists('dtb_dash'), 'テーブルがある'); + $this->I->assertTrue($this->columnExists('dtb_cart', 'is_horizon'), 'カラムがある'); + + $this->em->refresh($this->Plugin); + $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); + $this->I->assertFalse($this->Plugin->isEnabled(), '無効化されている'); + + return $this; + } + public function 削除() { $this->ManagePage->ストアプラグイン_削除('Horizon'); diff --git a/src/Eccube/Controller/Admin/Store/PluginController.php b/src/Eccube/Controller/Admin/Store/PluginController.php index db7ec79204b..fc94724527d 100644 --- a/src/Eccube/Controller/Admin/Store/PluginController.php +++ b/src/Eccube/Controller/Admin/Store/PluginController.php @@ -359,7 +359,7 @@ public function disable(Request $request, Plugin $Plugin, CacheUtil $cacheUtil) if ($request->isXmlHttpRequest()) { return $this->json(['success' => true, 'log' => $log]); } else { - $this->addError('admin.plugin.already.disable', 'admin'); + $this->addError(trans('admin.store.plugin.already.disabled', ['%plugin_name%' => $Plugin->getName()]), 'admin'); return $this->redirectToRoute('admin_store_plugin'); } diff --git a/src/Eccube/Resource/locale/messages.ja.yaml b/src/Eccube/Resource/locale/messages.ja.yaml index 427f1c65f18..e05ad9cbb95 100644 --- a/src/Eccube/Resource/locale/messages.ja.yaml +++ b/src/Eccube/Resource/locale/messages.ja.yaml @@ -1244,6 +1244,7 @@ admin.store.plugin.install.failed: プラグインのインストールに失敗 admin.store.plugin.enable.complete: 「%plugin_name%」を有効にしました。 admin.store.plugin.already.enabled: 「%plugin_name%」は既に有効です。 admin.store.plugin.disable.complete: 「%plugin_name%」を無効にしました。 +admin.store.plugin.already.disabled: 「%plugin_name%」は既に無効です。 admin.store.plugin.uninstall.complete: プラグインを削除しました。 admin.store.plugin.update.complete: 「%plugin_name%」をアップデートしました。 admin.store.plugin.update.failed: 「%plugin_name%」のアップデートに失敗しました。 From 733e018ff71c733642aab9610ca1b1e5e67e93f2 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Wed, 12 Sep 2018 20:06:32 +0900 Subject: [PATCH 028/170] =?UTF-8?q?=E5=88=A4=E5=AE=9A=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/acceptance/EA10PluginCest.php | 24 +++++++++++------------ 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index 774f45187e5..00c08089571 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -336,6 +336,8 @@ class Horizon_Store extends Abstract_Plugin private $initialized = false; + private $enabled = false; + public static function start(AcceptanceTester $I) { return new Horizon_Store($I); @@ -378,6 +380,7 @@ public function 有効化() $this->I->assertTrue($this->Plugin->isEnabled(), '有効化されている'); $this->initialized = true; + $this->enabled = true; return $this; } @@ -393,6 +396,7 @@ public function 既に有効なものを有効化() $this->I->assertTrue($this->Plugin->isEnabled(), '有効化されている'); $this->initialized = true; + $this->enabled = true; return $this; @@ -409,6 +413,8 @@ public function 無効化() $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertFalse($this->Plugin->isEnabled(), '無効化されている'); + $this->enabled = false; + return $this; } @@ -423,6 +429,8 @@ public function 既に無効なものを無効化() $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertFalse($this->Plugin->isEnabled(), '無効化されている'); + $this->enabled = false; + return $this; } @@ -449,13 +457,8 @@ public function アップデート() $this->em->refresh($this->Plugin); - if ($this->initialized) { - $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); - $this->I->assertTrue($this->Plugin->isEnabled(), '有効化されている'); - } else { - $this->I->assertFalse($this->Plugin->isInitialized(), '初期化されていない'); - $this->I->assertFalse($this->Plugin->isEnabled(), '無効化されている'); - } + $this->I->assertEquals($this->initialized, $this->Plugin->isInitialized(), '初期化'); + $this->I->assertEquals($this->enabled, $this->Plugin->isEnabled(), '有効/無効'); return $this; } @@ -555,12 +558,7 @@ public function アップデート() $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); - - if ($this->enabled) { - $this->I->assertTrue($this->Plugin->isEnabled(), '有効化されている'); - } else { - $this->I->assertFalse($this->Plugin->isEnabled(), '無効化されている'); - } + $this->I->assertEquals($this->enabled, $this->Plugin->isEnabled(), '有効/無効'); return $this; } From acca543388f785342e216f03d1657a0bfaa0966f Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Wed, 12 Sep 2018 20:15:19 +0900 Subject: [PATCH 029/170] =?UTF-8?q?=E3=82=A2=E3=82=BB=E3=83=83=E3=83=88?= =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=82=B1=E3=83=BC=E3=82=B9=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/acceptance/EA10PluginCest.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index 00c08089571..e1e981d5984 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -248,10 +248,6 @@ public function install_assets_store(\AcceptanceTester $I) $I->assertFileExists($assetsPath); $I->assertFileExists($updatedPath); - $ManagePage->ストアプラグイン_無効化('Assets'); - $I->assertFileExists($assetsPath); - $I->assertFileExists($updatedPath); - $ManagePage->ストアプラグイン_削除('Assets'); $I->assertFileNotExists($assetsPath); $I->assertFileNotExists($updatedPath); From f4c0b6b6ab72ee4485f5ef28d73aa36b7eec06c5 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Wed, 12 Sep 2018 20:26:00 +0900 Subject: [PATCH 030/170] =?UTF-8?q?=E7=8B=AC=E8=87=AA=E3=83=97=E3=83=A9?= =?UTF-8?q?=E3=82=B0=E3=82=A4=E3=83=B3=E3=83=86=E3=82=B9=E3=83=88=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/acceptance/EA10PluginCest.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index e1e981d5984..48d20288389 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -529,6 +529,8 @@ public function 無効化() $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertFalse($this->Plugin->isEnabled(), '無効化されている'); + $this->enabled = false; + return $this; } From ab655447c0a9ea6adb77cee9b5eeb9dd6369956d Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Wed, 12 Sep 2018 20:48:20 +0900 Subject: [PATCH 031/170] =?UTF-8?q?=E3=83=AA=E3=83=95=E3=82=A1=E3=82=AF?= =?UTF-8?q?=E3=82=BF=E3=83=AA=E3=83=B3=E3=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/acceptance/EA10PluginCest.php | 164 +++++++++++++++------- 1 file changed, 110 insertions(+), 54 deletions(-) diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index 48d20288389..aa5f3fe62c9 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -286,6 +286,11 @@ abstract class Abstract_Plugin /** @var EccubeConfig */ protected $config; + + protected $table; + + protected $column; + /** * Abstract_Plugin constructor. */ @@ -298,14 +303,38 @@ public function __construct(\AcceptanceTester $I) $this->config = Fixtures::get('config'); } - protected function tableExists($tableName) + protected function tableExists() { - return $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '${tableName}';")->fetch()['count'] > 0; + if ($this->table) { + $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '".$this->table."';")->fetch()['count'] > 0; + $this->I->assertTrue($exists, 'テーブルがあるはず'); + } } - protected function columnExists($tableName, $columnName) + protected function tableNotExists() { - return $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '${tableName}' AND column_name = '${columnName}';")->fetch()['count'] == 1; + if ($this->table) { + $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '".$this->table."';")->fetch()['count'] > 0; + $this->I->assertFalse($exists, 'テーブルがないはず'); + } + } + + protected function columnExists() + { + if ($this->column) { + list($tableName, $columnName) = explode('.', $this->column); + $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '${tableName}' AND column_name = '${columnName}';")->fetch()['count'] == 1; + $this->I->assertTrue($exists, 'カラムがあるはず'); + } + } + + protected function columnNotExists() + { + if ($this->column) { + list($tableName, $columnName) = explode('.', $this->column); + $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '${tableName}' AND column_name = '${columnName}';")->fetch()['count'] == 1; + $this->I->assertFalse($exists, 'カラムがないはず'); + } } public function 新しいタブで開く() @@ -322,7 +351,7 @@ public function 前のタブに戻る() } } -class Horizon_Store extends Abstract_Plugin +class Store_Plugin extends Abstract_Plugin { /** @var PluginManagePage */ private $ManagePage; @@ -334,30 +363,28 @@ class Horizon_Store extends Abstract_Plugin private $enabled = false; - public static function start(AcceptanceTester $I) - { - return new Horizon_Store($I); - } + private $code; - public function __construct(AcceptanceTester $I) + public function __construct(AcceptanceTester $I, $code) { parent::__construct($I); + $this->code = $code; } public function インストール() { - $this->publishPlugin('Horizon-1.0.0.tgz'); + $this->publishPlugin($this->code.'-1.0.0.tgz'); /* * インストール */ $this->ManagePage = PluginSearchPage::go($this->I) - ->入手する('Horizon') + ->入手する($this->code) ->インストール(); - $this->I->assertFalse($this->tableExists('dtb_dash'), 'テーブルがない'); - $this->I->assertFalse($this->columnExists('dtb_cart', 'is_horizon'), 'カラムがない'); + $this->tableNotExists(); + $this->columnNotExists(); - $this->Plugin = $this->pluginRepository->findByCode('Horizon'); + $this->Plugin = $this->pluginRepository->findByCode($this->code); $this->I->assertFalse($this->Plugin->isInitialized(), '初期化されていない'); $this->I->assertFalse($this->Plugin->isEnabled(), '有効化されていない'); @@ -366,10 +393,10 @@ public function インストール() public function 有効化() { - $this->ManagePage->ストアプラグイン_有効化('Horizon'); + $this->ManagePage->ストアプラグイン_有効化($this->code); - $this->I->assertTrue($this->tableExists('dtb_dash'), 'テーブルがある'); - $this->I->assertTrue($this->columnExists('dtb_cart', 'is_horizon'), 'カラムがある'); + $this->tableExists(); + $this->columnExists(); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); @@ -382,10 +409,10 @@ public function 有効化() public function 既に有効なものを有効化() { - $this->ManagePage->ストアプラグイン_有効化('Horizon', '「ホライゾン」は既に有効です。'); + $this->ManagePage->ストアプラグイン_有効化($this->code, '既に有効です。'); - $this->I->assertTrue($this->tableExists('dtb_dash'), 'テーブルがある'); - $this->I->assertTrue($this->columnExists('dtb_cart', 'is_horizon'), 'カラムがある'); + $this->tableExists(); + $this->columnExists(); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); @@ -400,10 +427,10 @@ public function 既に有効なものを有効化() public function 無効化() { - $this->ManagePage->ストアプラグイン_無効化('Horizon'); + $this->ManagePage->ストアプラグイン_無効化($this->code); - $this->I->assertTrue($this->tableExists('dtb_dash'), 'テーブルがある'); - $this->I->assertTrue($this->columnExists('dtb_cart', 'is_horizon'), 'カラムがある'); + $this->tableExists(); + $this->columnExists(); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); @@ -416,10 +443,10 @@ public function 無効化() public function 既に無効なものを無効化() { - $this->ManagePage->ストアプラグイン_無効化('Horizon', '「ホライゾン」は既に無効です。'); + $this->ManagePage->ストアプラグイン_無効化($this->code, '既に無効です。'); - $this->I->assertTrue($this->tableExists('dtb_dash'), 'テーブルがある'); - $this->I->assertTrue($this->columnExists('dtb_cart', 'is_horizon'), 'カラムがある'); + $this->tableExists(); + $this->columnExists(); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); @@ -432,13 +459,13 @@ public function 既に無効なものを無効化() public function 削除() { - $this->ManagePage->ストアプラグイン_削除('Horizon'); + $this->ManagePage->ストアプラグイン_削除($this->code); - $this->I->assertFalse($this->tableExists('dtb_dash'), 'テーブルが消えている'); - $this->I->assertFalse($this->columnExists('dtb_cart', 'is_horizon'), 'カラムが消えている'); + $this->tableNotExists(); + $this->columnNotExists(); $this->em->refresh($this->Plugin); - $this->Plugin = $this->pluginRepository->findByCode('Horizon'); + $this->Plugin = $this->pluginRepository->findByCode($this->code); $this->I->assertNull($this->Plugin, '削除されている'); return $this; @@ -446,10 +473,10 @@ public function 削除() public function アップデート() { - $this->publishPlugin('Horizon-1.0.1.tgz'); + $this->publishPlugin($this->code.'-1.0.1.tgz'); $this->I->reloadPage(); - $this->ManagePage->ストアプラグイン_アップデート('Horizon')->アップデート(); + $this->ManagePage->ストアプラグイン_アップデート($this->code)->アップデート(); $this->em->refresh($this->Plugin); @@ -466,7 +493,7 @@ private function publishPlugin($fileName) } } -class Horizon_Local extends Abstract_Plugin +class Local_Plugin extends Abstract_Plugin { /** @var PluginManagePage */ private $ManagePage; @@ -476,27 +503,26 @@ class Horizon_Local extends Abstract_Plugin private $enabled = false; - public static function start(AcceptanceTester $I) - { - return new Horizon_Local($I); - } + /** @var string */ + private $code; - public function __construct(AcceptanceTester $I) + public function __construct(AcceptanceTester $I, $code) { parent::__construct($I); + $this->code = $code; } public function インストール() { $this->ManagePage = PluginLocalInstallPage::go($this->I) - ->アップロード('plugins/Horizon-1.0.0.tgz'); + ->アップロード('plugins/'.$this->code.'-1.0.0.tgz'); $this->I->see('プラグインをインストールしました。', PluginManagePage::完了メーッセージ); - $this->I->assertTrue($this->tableExists('dtb_dash'), 'テーブルがある'); - $this->I->assertTrue($this->columnExists('dtb_cart', 'is_horizon'), 'カラムがある'); + $this->tableExists(); + $this->columnExists(); - $this->Plugin = $this->pluginRepository->findByCode('Horizon'); + $this->Plugin = $this->pluginRepository->findByCode($this->code); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されていない'); $this->I->assertFalse($this->Plugin->isEnabled(), '有効化されていない'); @@ -505,10 +531,10 @@ public function インストール() public function 有効化() { - $this->ManagePage->独自プラグイン_有効化('Horizon'); + $this->ManagePage->独自プラグイン_有効化($this->code); - $this->I->assertTrue($this->tableExists('dtb_dash'), 'テーブルがある'); - $this->I->assertTrue($this->columnExists('dtb_cart', 'is_horizon'), 'カラムがある'); + $this->tableExists(); + $this->columnExists(); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); @@ -520,10 +546,10 @@ public function 有効化() public function 無効化() { - $this->ManagePage->独自プラグイン_無効化('Horizon'); + $this->ManagePage->独自プラグイン_無効化($this->code); - $this->I->assertTrue($this->tableExists('dtb_dash'), 'テーブルがある'); - $this->I->assertTrue($this->columnExists('dtb_cart', 'is_horizon'), 'カラムがある'); + $this->tableExists(); + $this->columnExists(); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); @@ -536,15 +562,15 @@ public function 無効化() public function 削除() { - $this->ManagePage->独自プラグイン_削除('Horizon'); + $this->ManagePage->独自プラグイン_削除($this->code); $this->I->see('プラグインを削除しました。', PluginManagePage::完了メーッセージ); - $this->I->assertFalse($this->tableExists('dtb_dash'), 'テーブルが削除されている'); - $this->I->assertFalse($this->columnExists('dtb_cart', 'is_horizon'), 'カラムが削除されている'); + $this->tableNotExists(); + $this->columnNotExists(); $this->em->refresh($this->Plugin); - $this->Plugin = $this->pluginRepository->findByCode('Horizon'); + $this->Plugin = $this->pluginRepository->findByCode($this->code); $this->I->assertNull($this->Plugin, '削除されている'); return $this; @@ -552,7 +578,7 @@ public function 削除() public function アップデート() { - $this->ManagePage->独自プラグイン_アップデート('Horizon', 'plugins/Horizon-1.0.1.tgz'); + $this->ManagePage->独自プラグイン_アップデート($this->code, 'plugins/'.$this->code.'-1.0.1.tgz'); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); @@ -560,4 +586,34 @@ public function アップデート() return $this; } +} + +class Horizon_Local extends Local_Plugin +{ + public function __construct(AcceptanceTester $I) + { + parent::__construct($I, 'Horizon'); + $this->table = 'dtb_dash'; + $this->column = 'dtb_cart.is_horizon'; + } + + public static function start(AcceptanceTester $I) + { + return new self($I); + } +} + +class Horizon_Store extends Store_Plugin +{ + public function __construct(AcceptanceTester $I) + { + parent::__construct($I, 'Horizon'); + $this->table = 'dtb_dash'; + $this->column = 'dtb_cart.is_horizon'; + } + + public static function start(AcceptanceTester $I) + { + return new self($I); + } } \ No newline at end of file From 94319e8eb3e02ebeb1651e63d8da7fefa9e6e261 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Wed, 12 Sep 2018 21:20:47 +0900 Subject: [PATCH 032/170] =?UTF-8?q?=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=81=AE=E3=82=A4=E3=83=B3=E3=82=B9=E3=83=88=E3=83=BC?= =?UTF-8?q?=E3=83=AB=E9=A0=86=E3=81=AB=E3=82=88=E3=81=A3=E3=81=A6=E6=8B=A1?= =?UTF-8?q?=E5=BC=B5=E3=82=AB=E3=83=A9=E3=83=A0=E3=81=8C=E6=B6=88=E3=81=88?= =?UTF-8?q?=E3=82=8B=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 187 +++++++++-------- codeception/_data/plugins/Boomerang-1.0.0.tgz | Bin 0 -> 1110 bytes codeception/acceptance/EA10PluginCest.php | 189 ++++++++++++++---- src/Eccube/Service/PluginService.php | 2 +- 4 files changed, 261 insertions(+), 117 deletions(-) create mode 100644 codeception/_data/plugins/Boomerang-1.0.0.tgz diff --git a/.travis.yml b/.travis.yml index e42cdf1c508..ae22e062321 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,11 +21,11 @@ cache: php: - 7.1 - - 7.2 +# - 7.2 env: - - DATABASE_URL=mysql://root:@localhost/cube4_dev DATABASE_SERVER_VERSION=5 - - DATABASE_URL=postgres://postgres:password@localhost/cube4_dev DATABASE_SERVER_VERSION=9 +# - DATABASE_URL=mysql://root:@localhost/cube4_dev DATABASE_SERVER_VERSION=5 +# - DATABASE_URL=postgres://postgres:password@localhost/cube4_dev DATABASE_SERVER_VERSION=9 - DATABASE_URL=sqlite:///%kernel.project_dir%/var/eccube.db DATABASE_SERVER_VERSION=3 COVERAGE=1 matrix: @@ -95,138 +95,167 @@ jobs: - *eccube_setup env: GROUP=admin01 APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 script: ./codeception.sh -g ${GROUP} - - <<: *e2e_test - env: GROUP=admin02 APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 - - <<: *e2e_test - env: GROUP=admin03 APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 - - <<: *e2e_test - env: GROUP=front APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 +# - <<: *e2e_test +# env: GROUP=admin02 APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 +# - <<: *e2e_test +# env: GROUP=admin03 APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 +# - <<: *e2e_test +# env: GROUP=front APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 - <<: *e2e_test env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 script: - *package_api_setup - | psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_store - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_local - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_remove_local + ./codeception.sh EA10PluginCest:test_install_enable_disable_enable_disable_remove_store - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_remove_store + ./codeception.sh EA10PluginCest:test_install_enable_disable_enable_disable_remove_local - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_update_remove_store + ./codeception.sh EA10PluginCest:test_install_remove_local - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_update_remove_local + ./codeception.sh EA10PluginCest:test_install_remove_store - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_enable_disable_update_enable_disable_remove_local + ./codeception.sh EA10PluginCest:test_install_update_remove_store - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_enable_disable_update_enable_disable_remove_store + ./codeception.sh EA10PluginCest:test_install_update_remove_local + - <<: *e2e_test + env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 + script: + - *package_api_setup - | - ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_enable_update_disable_remove_store + ./codeception.sh EA10PluginCest:test_install_enable_disable_update_enable_disable_remove_local - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_enable_update_disable_remove_local + ./codeception.sh EA10PluginCest:test_install_enable_disable_update_enable_disable_remove_store - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_update_enable_disable_remove_local + ./codeception.sh EA10PluginCest:test_install_enable_update_disable_remove_store - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_update_enable_disable_remove_store + ./codeception.sh EA10PluginCest:test_install_enable_update_disable_remove_local - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_assets_local + ./codeception.sh EA10PluginCest:test_install_update_enable_disable_remove_local - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_assets_store - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test', php_path = '$(which php)';" - ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_store + ./codeception.sh EA10PluginCest:test_install_update_enable_disable_remove_store - <<: *e2e_test - env: APP_ENV=codeception DATABASE_URL=mysql://root:@localhost/eccube_db DATABASE_SERVER_VERSION=5 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 + env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 script: - *package_api_setup - | - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_store - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_local - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_remove_local - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_remove_store - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_update_remove_store - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_update_remove_local - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_enable_disable_update_enable_disable_remove_local - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_enable_disable_update_enable_disable_remove_store + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_enable_enable - | ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_enable_update_disable_remove_store + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_disable_disable - | ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_enable_update_disable_remove_local + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_assets_local - | ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_update_enable_disable_remove_local + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_assets_store - | ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_update_enable_disable_remove_store + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_extend_same_table_store - | ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_assets_local + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_extend_same_table_local + - <<: *e2e_test + env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 + script: + - *package_api_setup - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:install_assets_store + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_extend_same_table_crossed_local - | ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test', php_path = '$(which php)';" + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test', php_path = '$(which php)';" ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_store +# - <<: *e2e_test +# env: APP_ENV=codeception DATABASE_URL=mysql://root:@localhost/eccube_db DATABASE_SERVER_VERSION=5 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 +# script: +# - *package_api_setup +# - | +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_store +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_local +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_remove_local +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_remove_store +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_update_remove_store +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_update_remove_local +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_enable_disable_update_enable_disable_remove_local +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_enable_disable_update_enable_disable_remove_store +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_enable_update_disable_remove_store +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_enable_update_disable_remove_local +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_update_enable_disable_remove_local +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_update_enable_disable_remove_store +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_assets_local +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:install_assets_store +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test', php_path = '$(which php)';" +# ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_store # - stage: Code Coverage # if: type != pull_request diff --git a/codeception/_data/plugins/Boomerang-1.0.0.tgz b/codeception/_data/plugins/Boomerang-1.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..417e40546b295998889072adb5ebc3f1eb046343 GIT binary patch literal 1110 zcmV-c1gZNUiwFQ-0-0L?1MOMOZsRr(_E}HRBO&Y|2@;v4DAL~4=q6bMF_6U?yWIi> z3))Gmj*SWeBF6 zd7~hfXYx2WOO}oM`BW+YU-ZoWDYP16A0I@Z#OpN}AvVRV#tbUZAod2TK^&V4$0iJ0 zbzFBCGi;39TOx)rx45tgw+ST%ts{9`N^M~g>OiAT4d$Su*8bkRgTvMjP0I}x3=Q<{ zb+98WCTx+KV59di@aRXYr_LLM!=a%R8`PO}dpc;;IAw&_g+mQen+UY;>9dAyJhfN< zKggrLy3#c!@&5^afAj0BKjz~NkL zan=BTaK`S=|CEW@{im1{r_BHBz-Q+F8Yi_o@;?=jx;afJ$|VzRTzgEtJ5*D#Vup{DC5UDess8l07uaD}*e5i1=*8^%?)whXj|Ud>51%wlrh-${?0 zxd|hyMx35JbaMucO9KHiJt;ufxeQS^2z({=P2byhZ#oBopA7UyYJS7?qT}wwY;zmM zqakz_v!EReQ-h<%rP)(`nfS5!vM>EeU2PUBtJ!mybbZf7FK%nwHLkwU6f`CNeB<9p zEl*VVsA=E<{4X%KQ~oEMm;ApD+{^zI+m;Y@xTD|2|8>G^Y?1$qiEsscApf(H|JR4r zMg0`_@IQs9pN)S4!+FX7>%hJIKTG_Dbgvr$XS?yt>DkQ&z8?+xfd+aH2E#xr9d}-< zq0&92-BC+_RBl!^90WR+o>pN?$13c@!my6(%P2xKI+04thhBu1u2>Wb1!MOUohe72 zhCTKD4H<@VgkHFT?t3TOXmQO=i7e0#Jzr=yiyf^NKt zh=nbD=lK7==9RJ36-vvlubzP?nwcR_=ZKycJrhs7&MkR5S0uxpjGu!iK4gYGp(FJ3 z$rK+Zwyeb+)7#9n{&&-a9YGQBF$(mfa?HK;zvJZm4|P8vz5g>>e*aku7V3W}@&_}Y zaabM7c*k)lWs6sULdxs3E;6ZHHW#*-+7Gw|z?|CRXPxpEumY?u>ZiEx{U7D?@$U#s z%KCpDxHQw!-+XB*cPFdxtNYVeXl74EZs=w2&0xs*`nU1*-{b4w$Jc+3um1x1xeB9P zmUGp%nZ9((w57^+hFP@^-J$v^@j{SXP8Z6BI|c8l5T^YCN-SnxZJSW{hcX@R2EA0_ c)T*m5^;KMn5+zEMD6uyD1G;8+F90Y20HsPaKL7v# literal 0 HcmV?d00001 diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index aa5f3fe62c9..f7722ee3cb8 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -46,7 +46,7 @@ public function _before(\AcceptanceTester $I) FileSystem::doEmptyDir('repos'); } - public function install_enable_disable_enable_disable_remove_store(\AcceptanceTester $I) + public function test_install_enable_disable_enable_disable_remove_store(\AcceptanceTester $I) { Horizon_Store::start($I) ->インストール() @@ -57,7 +57,7 @@ public function install_enable_disable_enable_disable_remove_store(\AcceptanceTe ->削除(); } - public function install_enable_disable_enable_disable_remove_local(\AcceptanceTester $I) + public function test_install_enable_disable_enable_disable_remove_local(\AcceptanceTester $I) { Horizon_Local::start($I) ->インストール() @@ -68,21 +68,20 @@ public function install_enable_disable_enable_disable_remove_local(\AcceptanceTe ->削除(); } - public function install_remove_local(\AcceptanceTester $I) + public function test_install_remove_local(\AcceptanceTester $I) { Horizon_Local::start($I) ->インストール() ->削除(); } - public function install_remove_store(\AcceptanceTester $I) + public function test_install_remove_store(\AcceptanceTester $I) { Horizon_Store::start($I) - ->インストール() - ->削除(); + ->インストール(); } - public function install_update_remove_store(\AcceptanceTester $I) + public function test_install_update_remove_store(\AcceptanceTester $I) { Horizon_Store::start($I) ->インストール() @@ -92,7 +91,7 @@ public function install_update_remove_store(\AcceptanceTester $I) - public function install_update_remove_local(\AcceptanceTester $I) + public function test_install_update_remove_local(\AcceptanceTester $I) { Horizon_Local::start($I) ->インストール() @@ -100,7 +99,7 @@ public function install_update_remove_local(\AcceptanceTester $I) ->削除(); } - public function install_enable_disable_update_enable_disable_remove_local(\AcceptanceTester $I) + public function test_install_enable_disable_update_enable_disable_remove_local(\AcceptanceTester $I) { Horizon_Local::start($I) ->インストール() @@ -112,7 +111,7 @@ public function install_enable_disable_update_enable_disable_remove_local(\Accep ->削除(); } - public function install_enable_disable_update_enable_disable_remove_store(\AcceptanceTester $I) + public function test_install_enable_disable_update_enable_disable_remove_store(\AcceptanceTester $I) { Horizon_Store::start($I) ->インストール() @@ -124,7 +123,7 @@ public function install_enable_disable_update_enable_disable_remove_store(\Accep ->削除(); } - public function install_enable_update_disable_remove_store(\AcceptanceTester $I) + public function test_install_enable_update_disable_remove_store(\AcceptanceTester $I) { Horizon_Store::start($I) ->インストール() @@ -134,7 +133,7 @@ public function install_enable_update_disable_remove_store(\AcceptanceTester $I) ->削除(); } - public function install_enable_update_disable_remove_local(\AcceptanceTester $I) + public function test_install_enable_update_disable_remove_local(\AcceptanceTester $I) { Horizon_Local::start($I) ->インストール() @@ -144,7 +143,7 @@ public function install_enable_update_disable_remove_local(\AcceptanceTester $I) ->削除(); } - public function install_update_enable_disable_remove_local(\AcceptanceTester $I) + public function test_install_update_enable_disable_remove_local(\AcceptanceTester $I) { Horizon_Local::start($I) ->インストール() @@ -154,7 +153,7 @@ public function install_update_enable_disable_remove_local(\AcceptanceTester $I) ->削除(); } - public function install_update_enable_disable_remove_store(\AcceptanceTester $I) + public function test_install_update_enable_disable_remove_store(\AcceptanceTester $I) { Horizon_Store::start($I) ->インストール() @@ -164,7 +163,7 @@ public function install_update_enable_disable_remove_store(\AcceptanceTester $I) ->削除(); } - public function install_enable_enable(\AcceptanceTester $I) + public function test_install_enable_enable(\AcceptanceTester $I) { Horizon_Store::start($I) ->インストール() @@ -174,7 +173,7 @@ public function install_enable_enable(\AcceptanceTester $I) ->既に有効なものを有効化(); } - public function install_disable_disable(\AcceptanceTester $I) + public function test_install_disable_disable(\AcceptanceTester $I) { Horizon_Store::start($I) ->インストール() @@ -185,7 +184,7 @@ public function install_disable_disable(\AcceptanceTester $I) ->既に無効なものを無効化(); } - public function install_assets_local(\AcceptanceTester $I) + public function test_install_assets_local(\AcceptanceTester $I) { $this->publishPlugin('Assets-1.0.0.tgz'); @@ -216,7 +215,7 @@ public function install_assets_local(\AcceptanceTester $I) $I->assertFileNotExists($updatedPath); } - public function install_assets_store(\AcceptanceTester $I) + public function test_install_assets_store(\AcceptanceTester $I) { // 最初のバージョンを作成 $this->publishPlugin('Assets-1.0.0.tgz'); @@ -253,19 +252,45 @@ public function install_assets_store(\AcceptanceTester $I) $I->assertFileNotExists($updatedPath); } - private function publishPlugin($fileName) + public function test_extend_same_table_store(\AcceptanceTester $I) { - copy(codecept_data_dir().'/'.'plugins/'.$fileName, codecept_root_dir().'/repos/'.$fileName); + $Horizon = Horizon_Store::start($I); + $Boomerang = Boomerang_Store::start($I); + + $Horizon->インストール()->有効化(); + $Boomerang->インストール()->有効化(); + + $Horizon->tableExists(); + $Horizon->columnExists(); } - private function tableExists($tableName) + public function test_extend_same_table_local(\AcceptanceTester $I) { - return $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '${tableName}';")->fetch()['count'] > 0; + $Horizon = Horizon_Local::start($I); + $Boomerang = Boomerang_Local::start($I); + + $Horizon->インストール()->有効化(); + $Boomerang->インストール()->有効化(); + + $Horizon->tableExists(); + $Horizon->columnExists(); } - private function columnExists($tableName, $columnName) + public function test_extend_same_table_crossed_local(\AcceptanceTester $I) { - return $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '${tableName}' AND column_name = '${columnName}';")->fetch()['count'] == 1; + $Horizon = Horizon_Local::start($I); + $Boomerang = Boomerang_Local::start($I); + + $Horizon->インストール()->有効化()->無効化(); + $Boomerang->インストール()->有効化(); + + $Horizon->tableExists(); + $Horizon->columnExists(); + } + + private function publishPlugin($fileName) + { + copy(codecept_data_dir().'/'.'plugins/'.$fileName, codecept_root_dir().'/repos/'.$fileName); } } @@ -291,9 +316,10 @@ abstract class Abstract_Plugin protected $column; - /** - * Abstract_Plugin constructor. - */ + protected $traitTarget; + + protected $trait; + public function __construct(\AcceptanceTester $I) { $this->I = $I; @@ -303,37 +329,56 @@ public function __construct(\AcceptanceTester $I) $this->config = Fixtures::get('config'); } - protected function tableExists() + public function tableExists() { if ($this->table) { $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '".$this->table."';")->fetch()['count'] > 0; - $this->I->assertTrue($exists, 'テーブルがあるはず'); + $this->I->assertTrue($exists, 'テーブルがあるはず '.$this->table); } } - protected function tableNotExists() + public function tableNotExists() { if ($this->table) { $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '".$this->table."';")->fetch()['count'] > 0; - $this->I->assertFalse($exists, 'テーブルがないはず'); + $this->I->assertFalse($exists, 'テーブルがないはず '.$this->table); } } - protected function columnExists() + public function columnExists() { if ($this->column) { list($tableName, $columnName) = explode('.', $this->column); $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '${tableName}' AND column_name = '${columnName}';")->fetch()['count'] == 1; - $this->I->assertTrue($exists, 'カラムがあるはず'); + $this->I->assertTrue($exists, 'カラムがあるはず '.$this->column); } } - protected function columnNotExists() + public function columnNotExists() { if ($this->column) { list($tableName, $columnName) = explode('.', $this->column); $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '${tableName}' AND column_name = '${columnName}';")->fetch()['count'] == 1; - $this->I->assertFalse($exists, 'カラムがないはず'); + $this->I->assertFalse($exists, 'カラムがないはず '.$this->column); + } + } + + public function traitExists() + { + if ($this->trait) { + $this->I->assertContains($this->trait, file_get_contents($this->config['kernel.project_dir'].'/app/proxy/entity/'.$this->traitTarget.'.php'), 'Traitがあるはず'); + } + } + + public function traitNotExists() + { + if ($this->trait) { + $file = $this->config['kernel.project_dir'].'/app/proxy/entity/'.$this->traitTarget.'.php'; + if (file_exists($file)) { + $this->I->assertNotContains($this->trait, file_get_contents($file), 'Traitがないはず'); + } else { + $this->I->assertTrue(true, 'Traitがないはず'); + } } } @@ -369,11 +414,11 @@ public function __construct(AcceptanceTester $I, $code) { parent::__construct($I); $this->code = $code; + $this->publishPlugin($this->code.'-1.0.0.tgz'); } public function インストール() { - $this->publishPlugin($this->code.'-1.0.0.tgz'); /* * インストール */ @@ -384,6 +429,8 @@ public function インストール() $this->tableNotExists(); $this->columnNotExists(); + $this->traitNotExists(); + $this->Plugin = $this->pluginRepository->findByCode($this->code); $this->I->assertFalse($this->Plugin->isInitialized(), '初期化されていない'); $this->I->assertFalse($this->Plugin->isEnabled(), '有効化されていない'); @@ -398,6 +445,8 @@ public function 有効化() $this->tableExists(); $this->columnExists(); + $this->traitExists(); + $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertTrue($this->Plugin->isEnabled(), '有効化されている'); @@ -414,6 +463,8 @@ public function 既に有効なものを有効化() $this->tableExists(); $this->columnExists(); + $this->traitExists(); + $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertTrue($this->Plugin->isEnabled(), '有効化されている'); @@ -432,6 +483,8 @@ public function 無効化() $this->tableExists(); $this->columnExists(); + $this->traitNotExists(); + $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertFalse($this->Plugin->isEnabled(), '無効化されている'); @@ -448,6 +501,8 @@ public function 既に無効なものを無効化() $this->tableExists(); $this->columnExists(); + $this->traitNotExists(); + $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertFalse($this->Plugin->isEnabled(), '無効化されている'); @@ -464,6 +519,8 @@ public function 削除() $this->tableNotExists(); $this->columnNotExists(); + $this->traitNotExists(); + $this->em->refresh($this->Plugin); $this->Plugin = $this->pluginRepository->findByCode($this->code); $this->I->assertNull($this->Plugin, '削除されている'); @@ -478,8 +535,17 @@ public function アップデート() $this->I->reloadPage(); $this->ManagePage->ストアプラグイン_アップデート($this->code)->アップデート(); - $this->em->refresh($this->Plugin); + if ($this->initialized) { + $this->tableExists(); + $this->columnExists(); + $this->traitExists(); + } else { + $this->tableNotExists(); + $this->columnNotExists(); + $this->traitNotExists(); + } + $this->em->refresh($this->Plugin); $this->I->assertEquals($this->initialized, $this->Plugin->isInitialized(), '初期化'); $this->I->assertEquals($this->enabled, $this->Plugin->isEnabled(), '有効/無効'); @@ -522,6 +588,8 @@ public function インストール() $this->tableExists(); $this->columnExists(); + $this->traitNotExists(); + $this->Plugin = $this->pluginRepository->findByCode($this->code); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されていない'); $this->I->assertFalse($this->Plugin->isEnabled(), '有効化されていない'); @@ -536,6 +604,8 @@ public function 有効化() $this->tableExists(); $this->columnExists(); + $this->traitExists(); + $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertTrue($this->Plugin->isEnabled(), '有効化されている'); @@ -551,6 +621,8 @@ public function 無効化() $this->tableExists(); $this->columnExists(); + $this->traitNotExists(); + $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertFalse($this->Plugin->isEnabled(), '無効化されている'); @@ -569,6 +641,8 @@ public function 削除() $this->tableNotExists(); $this->columnNotExists(); + $this->traitNotExists(); + $this->em->refresh($this->Plugin); $this->Plugin = $this->pluginRepository->findByCode($this->code); $this->I->assertNull($this->Plugin, '削除されている'); @@ -580,6 +654,11 @@ public function アップデート() { $this->ManagePage->独自プラグイン_アップデート($this->code, 'plugins/'.$this->code.'-1.0.1.tgz'); + $this->tableExists(); + $this->columnExists(); + + $this->traitExists(); + $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertEquals($this->enabled, $this->Plugin->isEnabled(), '有効/無効'); @@ -595,6 +674,8 @@ public function __construct(AcceptanceTester $I) parent::__construct($I, 'Horizon'); $this->table = 'dtb_dash'; $this->column = 'dtb_cart.is_horizon'; + $this->trait = '\Plugin\Horizon\Entity\CartTrait'; + $this->traitTarget = 'Cart'; } public static function start(AcceptanceTester $I) @@ -610,6 +691,40 @@ public function __construct(AcceptanceTester $I) parent::__construct($I, 'Horizon'); $this->table = 'dtb_dash'; $this->column = 'dtb_cart.is_horizon'; + $this->trait = '\Plugin\Horizon\Entity\CartTrait'; + $this->traitTarget = 'Cart'; + } + + public static function start(AcceptanceTester $I) + { + return new self($I); + } +} + +class Boomerang_Store extends Store_Plugin +{ + public function __construct(AcceptanceTester $I) + { + parent::__construct($I, 'Boomerang'); + $this->column = 'dtb_cart.is_boomerang'; + $this->trait = '\Plugin\Boomerang\Entity\CartTrait'; + $this->traitTarget = 'Cart'; + } + + public static function start(AcceptanceTester $I) + { + return new self($I); + } +} + +class Boomerang_Local extends Local_Plugin +{ + public function __construct(AcceptanceTester $I) + { + parent::__construct($I, 'Boomerang'); + $this->column = 'dtb_cart.is_boomerang'; + $this->trait = '\Plugin\Boomerang\Entity\CartTrait'; + $this->traitTarget = 'Cart'; } public static function start(AcceptanceTester $I) diff --git a/src/Eccube/Service/PluginService.php b/src/Eccube/Service/PluginService.php index 98a575b8388..bcc9b80ad47 100644 --- a/src/Eccube/Service/PluginService.php +++ b/src/Eccube/Service/PluginService.php @@ -588,7 +588,7 @@ private function regenerateProxy(Plugin $plugin, $temporary, $outputDir = null) $enabledPluginCodes = array_map( function ($p) { return $p->getCode(); }, - $this->pluginRepository->findAllEnabled() + $temporary ? $this->pluginRepository->findAll() : $this->pluginRepository->findAllEnabled() ); $excludes = []; From 4a8a9f34e0a297643e639f235c2f0cc3fcc342de Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 13 Sep 2018 10:11:46 +0900 Subject: [PATCH 033/170] =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=82=B3?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=81=AE=E3=83=AA=E3=83=95=E3=82=A1=E3=82=AF?= =?UTF-8?q?=E3=82=BF=E3=83=AA=E3=83=B3=E3=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/acceptance/EA10PluginCest.php | 123 ++++++++++------------ 1 file changed, 57 insertions(+), 66 deletions(-) diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index f7722ee3cb8..e82b5031219 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -262,6 +262,14 @@ public function test_extend_same_table_store(\AcceptanceTester $I) $Horizon->tableExists(); $Horizon->columnExists(); + + $Horizon->無効化()->削除(); + + $Boomerang->tableExists(); + $Boomerang->columnExists(); + $Boomerang->traitExists(); + + $Boomerang->無効化()->削除(); } public function test_extend_same_table_local(\AcceptanceTester $I) @@ -311,6 +319,11 @@ abstract class Abstract_Plugin /** @var EccubeConfig */ protected $config; + protected $initialized = false; + + protected $enabled = false; + + protected $removed = false; protected $table; @@ -394,6 +407,23 @@ public function 前のタブに戻る() $this->I->switchToPreviousTab(); return $this; } + + public function 検証() + { + if ($this->initialized) { + $this->tableExists(); + $this->columnExists(); + } else { + $this->tableNotExists(); + $this->columnNotExists(); + } + + if ($this->enabled) { + $this->traitExists(); + } else { + $this->traitNotExists(); + } + } } class Store_Plugin extends Abstract_Plugin @@ -404,10 +434,6 @@ class Store_Plugin extends Abstract_Plugin /** @var Plugin */ private $Plugin; - private $initialized = false; - - private $enabled = false; - private $code; public function __construct(AcceptanceTester $I, $code) @@ -426,10 +452,7 @@ public function インストール() ->入手する($this->code) ->インストール(); - $this->tableNotExists(); - $this->columnNotExists(); - - $this->traitNotExists(); + $this->検証(); $this->Plugin = $this->pluginRepository->findByCode($this->code); $this->I->assertFalse($this->Plugin->isInitialized(), '初期化されていない'); @@ -442,17 +465,14 @@ public function 有効化() { $this->ManagePage->ストアプラグイン_有効化($this->code); - $this->tableExists(); - $this->columnExists(); + $this->initialized = true; + $this->enabled = true; - $this->traitExists(); + $this->検証(); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertTrue($this->Plugin->isEnabled(), '有効化されている'); - - $this->initialized = true; - $this->enabled = true; return $this; } @@ -460,18 +480,15 @@ public function 既に有効なものを有効化() { $this->ManagePage->ストアプラグイン_有効化($this->code, '既に有効です。'); - $this->tableExists(); - $this->columnExists(); + $this->initialized = true; + $this->enabled = true; - $this->traitExists(); + $this->検証(); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertTrue($this->Plugin->isEnabled(), '有効化されている'); - $this->initialized = true; - $this->enabled = true; - return $this; } @@ -480,17 +497,14 @@ public function 無効化() { $this->ManagePage->ストアプラグイン_無効化($this->code); - $this->tableExists(); - $this->columnExists(); + $this->enabled = false; - $this->traitNotExists(); + $this->検証(); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertFalse($this->Plugin->isEnabled(), '無効化されている'); - $this->enabled = false; - return $this; } @@ -498,17 +512,14 @@ public function 既に無効なものを無効化() { $this->ManagePage->ストアプラグイン_無効化($this->code, '既に無効です。'); - $this->tableExists(); - $this->columnExists(); + $this->enabled = false; - $this->traitNotExists(); + $this->検証(); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertFalse($this->Plugin->isEnabled(), '無効化されている'); - $this->enabled = false; - return $this; } @@ -516,10 +527,10 @@ public function 削除() { $this->ManagePage->ストアプラグイン_削除($this->code); - $this->tableNotExists(); - $this->columnNotExists(); + $this->initialized = false; + $this->enabled = false; - $this->traitNotExists(); + $this->検証(); $this->em->refresh($this->Plugin); $this->Plugin = $this->pluginRepository->findByCode($this->code); @@ -535,15 +546,7 @@ public function アップデート() $this->I->reloadPage(); $this->ManagePage->ストアプラグイン_アップデート($this->code)->アップデート(); - if ($this->initialized) { - $this->tableExists(); - $this->columnExists(); - $this->traitExists(); - } else { - $this->tableNotExists(); - $this->columnNotExists(); - $this->traitNotExists(); - } + $this->検証(); $this->em->refresh($this->Plugin); $this->I->assertEquals($this->initialized, $this->Plugin->isInitialized(), '初期化'); @@ -567,8 +570,6 @@ class Local_Plugin extends Abstract_Plugin /** @var Plugin */ private $Plugin; - private $enabled = false; - /** @var string */ private $code; @@ -583,12 +584,11 @@ public function インストール() $this->ManagePage = PluginLocalInstallPage::go($this->I) ->アップロード('plugins/'.$this->code.'-1.0.0.tgz'); - $this->I->see('プラグインをインストールしました。', PluginManagePage::完了メーッセージ); + $this->initialized = true; - $this->tableExists(); - $this->columnExists(); + $this->I->see('プラグインをインストールしました。', PluginManagePage::完了メーッセージ); - $this->traitNotExists(); + $this->検証(); $this->Plugin = $this->pluginRepository->findByCode($this->code); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されていない'); @@ -601,16 +601,13 @@ public function 有効化() { $this->ManagePage->独自プラグイン_有効化($this->code); - $this->tableExists(); - $this->columnExists(); + $this->enabled = true; - $this->traitExists(); + $this->検証(); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertTrue($this->Plugin->isEnabled(), '有効化されている'); - - $this->enabled = true; return $this; } @@ -618,17 +615,14 @@ public function 無効化() { $this->ManagePage->独自プラグイン_無効化($this->code); - $this->tableExists(); - $this->columnExists(); + $this->enabled = false; - $this->traitNotExists(); + $this->検証(); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertFalse($this->Plugin->isEnabled(), '無効化されている'); - $this->enabled = false; - return $this; } @@ -636,12 +630,12 @@ public function 削除() { $this->ManagePage->独自プラグイン_削除($this->code); - $this->I->see('プラグインを削除しました。', PluginManagePage::完了メーッセージ); + $this->initialized = false; + $this->enabled = false; - $this->tableNotExists(); - $this->columnNotExists(); + $this->I->see('プラグインを削除しました。', PluginManagePage::完了メーッセージ); - $this->traitNotExists(); + $this->検証(); $this->em->refresh($this->Plugin); $this->Plugin = $this->pluginRepository->findByCode($this->code); @@ -654,10 +648,7 @@ public function アップデート() { $this->ManagePage->独自プラグイン_アップデート($this->code, 'plugins/'.$this->code.'-1.0.1.tgz'); - $this->tableExists(); - $this->columnExists(); - - $this->traitExists(); + $this->検証(); $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); From 229f0f5ac2d4ae34579b692565aa6a1ca9529512 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 13 Sep 2018 11:08:11 +0900 Subject: [PATCH 034/170] =?UTF-8?q?=E3=82=AA=E3=83=BC=E3=83=8A=E3=83=BC?= =?UTF-8?q?=E3=82=BA=E3=82=B9=E3=83=88=E3=82=A2=E8=A8=AD=E5=AE=9A=E6=99=82?= =?UTF-8?q?=E3=81=AB=E3=82=AD=E3=83=A3=E3=83=83=E3=82=B7=E3=83=A5=E3=82=92?= =?UTF-8?q?=E3=82=AF=E3=83=AA=E3=82=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/Admin/Store/PluginController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Eccube/Controller/Admin/Store/PluginController.php b/src/Eccube/Controller/Admin/Store/PluginController.php index fc94724527d..fc76ec3f781 100644 --- a/src/Eccube/Controller/Admin/Store/PluginController.php +++ b/src/Eccube/Controller/Admin/Store/PluginController.php @@ -490,7 +490,7 @@ public function install(Request $request) * * @return array */ - public function authenticationSetting(Request $request) + public function authenticationSetting(Request $request, CacheUtil $cacheUtil) { $builder = $this->formFactory ->createBuilder(AuthenticationType::class, $this->BaseInfo); @@ -507,6 +507,7 @@ public function authenticationSetting(Request $request) // composerの認証を更新 $this->composerService->configureRepository($this->BaseInfo); + $cacheUtil->clearCache(); $this->addSuccess('admin.common.save_complete', 'admin'); } From b4f133d2a8987ac145dec6fc47a0e25cefe2e70d Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 13 Sep 2018 15:41:48 +0900 Subject: [PATCH 035/170] =?UTF-8?q?=E3=83=A2=E3=83=BC=E3=83=80=E3=83=AB?= =?UTF-8?q?=E3=83=A1=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8=E3=82=92=E7=A2=BA?= =?UTF-8?q?=E8=AA=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/_support/Page/Admin/PluginManagePage.php | 1 + codeception/_support/Page/Admin/PluginStoreInstallPage.php | 1 + codeception/_support/Page/Admin/PluginStoreUpgradePage.php | 1 + 3 files changed, 3 insertions(+) diff --git a/codeception/_support/Page/Admin/PluginManagePage.php b/codeception/_support/Page/Admin/PluginManagePage.php index 4f8a41ca11a..a1bf6fc0de2 100644 --- a/codeception/_support/Page/Admin/PluginManagePage.php +++ b/codeception/_support/Page/Admin/PluginManagePage.php @@ -68,6 +68,7 @@ public function ストアプラグイン_削除($pluginCode) $this->tester->waitForElementVisible(['id' => 'officialPluginDeleteButton']); $this->tester->click(['id' => 'officialPluginDeleteButton']); $this->tester->waitForElementVisible(['css' => '#officialPluginDeleteModal > div > div > div.modal-footer > button:nth-child(3)'], 30); + $this->tester->see('削除が完了しました。', ['css' => '#officialPluginDeleteModal > div > div > div.modal-body.text-left > p']); $this->tester->click(['css' => '#officialPluginDeleteModal > div > div > div.modal-footer > button:nth-child(3)']); return $this; diff --git a/codeception/_support/Page/Admin/PluginStoreInstallPage.php b/codeception/_support/Page/Admin/PluginStoreInstallPage.php index 3146f68f8ea..b193a2ffd9d 100644 --- a/codeception/_support/Page/Admin/PluginStoreInstallPage.php +++ b/codeception/_support/Page/Admin/PluginStoreInstallPage.php @@ -38,6 +38,7 @@ public function インストール() $this->tester->waitForElementVisible(['id' => 'installBtn']); $this->tester->click(['id' => 'installBtn']); $this->tester->waitForElementVisible(['css' => '#installModal > div > div > div.modal-footer > a'], 30); + $this->tester->see('インストールが完了しました。', ['css' => '#installModal > div > div > div.modal-body > p']); $this->tester->click(['css' => '#installModal > div > div > div.modal-footer > a']); return PluginManagePage::at($this->tester); diff --git a/codeception/_support/Page/Admin/PluginStoreUpgradePage.php b/codeception/_support/Page/Admin/PluginStoreUpgradePage.php index 3402a3f7d87..5567e3d9615 100644 --- a/codeception/_support/Page/Admin/PluginStoreUpgradePage.php +++ b/codeception/_support/Page/Admin/PluginStoreUpgradePage.php @@ -38,6 +38,7 @@ public function アップデート() $this->tester->waitForElementVisible(['id' => 'installBtn']); $this->tester->click(['id' => 'installBtn']); $this->tester->waitForElementVisible(['css' => '#installModal > div > div > div.modal-footer > a'], 30); + $this->tester->see('インストールが完了しました。', ['css' => '#installModal > div > div > div.modal-body > p']); $this->tester->click(['css' => '#installModal > div > div > div.modal-footer > a']); return PluginManagePage::at($this->tester); From 29d82064c7e74c2e93823289a158ecfbb42c4188 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 13 Sep 2018 15:52:30 +0900 Subject: [PATCH 036/170] =?UTF-8?q?=E3=82=A2=E3=83=83=E3=83=97=E3=83=87?= =?UTF-8?q?=E3=83=BC=E3=83=88=E6=99=82=E3=81=AB=E5=88=9D=E6=9C=9F=E5=8C=96?= =?UTF-8?q?=E3=81=95=E3=82=8C=E3=81=A6=E3=81=84=E3=81=AA=E3=81=91=E3=82=8C?= =?UTF-8?q?=E3=81=B0=E5=88=9D=E6=9C=9F=E5=8C=96=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/Admin/Store/OwnerStoreController.php | 10 ++++++++++ src/Eccube/Service/PluginService.php | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Eccube/Controller/Admin/Store/OwnerStoreController.php b/src/Eccube/Controller/Admin/Store/OwnerStoreController.php index 81ffce09b71..cf36b3cec4d 100644 --- a/src/Eccube/Controller/Admin/Store/OwnerStoreController.php +++ b/src/Eccube/Controller/Admin/Store/OwnerStoreController.php @@ -26,6 +26,7 @@ use Eccube\Service\PluginApiService; use Eccube\Service\PluginService; use Eccube\Service\SystemService; +use Eccube\Util\CacheUtil; use Eccube\Util\FormUtil; use Knp\Component\Pager\Paginator; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; @@ -371,6 +372,15 @@ public function apiSchemaUpdate(Request $request) ob_start(); $this->pluginService->generateProxyAndUpdateSchema($Plugin, $config); + + // 初期化されていなければインストール処理を実行する + if (!$Plugin->isInitialized()) { + $this->pluginService->callPluginManagerMethod($config, 'install'); + $Plugin->setInitialized(true); + $this->entityManager->persist($Plugin); + $this->entityManager->flush(); + } + $log = ob_get_clean(); ob_end_flush(); diff --git a/src/Eccube/Service/PluginService.php b/src/Eccube/Service/PluginService.php index bcc9b80ad47..872ba83964f 100644 --- a/src/Eccube/Service/PluginService.php +++ b/src/Eccube/Service/PluginService.php @@ -716,7 +716,10 @@ public function updatePlugin(Plugin $plugin, $meta) ->setName($meta['name']); $em->persist($plugin); - $this->callPluginManagerMethod($meta, 'update'); + + if ($plugin->isInitialized()) { + $this->callPluginManagerMethod($meta, 'update'); + } $this->copyAssets($plugin->getCode()); $em->flush(); $em->getConnection()->commit(); From 361143c7fe41413693b20a9f5233be2e2b05a01f Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 13 Sep 2018 15:53:19 +0900 Subject: [PATCH 037/170] =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=82=B1?= =?UTF-8?q?=E3=83=BC=E3=82=B9=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 38 ++++++++++------- codeception/_data/plugins/Horizon-1.0.0.tgz | Bin 2399 -> 2356 bytes codeception/_data/plugins/Horizon-1.0.1.tgz | Bin 2444 -> 2377 bytes codeception/acceptance/EA10PluginCest.php | 45 +++++++++++++------- 4 files changed, 53 insertions(+), 30 deletions(-) diff --git a/.travis.yml b/.travis.yml index ae22e062321..5919f72635c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -106,6 +106,14 @@ jobs: script: - *package_api_setup - | + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_enable_disable_remove_store + - | + ./codeception.sh --reset + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_enable_disable_remove_local + - | + ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_install_enable_disable_enable_disable_remove_store - | @@ -120,19 +128,19 @@ jobs: ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_install_remove_store + - <<: *e2e_test + env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 + script: + - *package_api_setup - | - ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_install_update_remove_store - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_install_update_remove_local - - <<: *e2e_test - env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 - script: - - *package_api_setup - | + ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_install_enable_disable_update_enable_disable_remove_local - | @@ -147,19 +155,19 @@ jobs: ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_install_enable_update_disable_remove_local + - <<: *e2e_test + env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 + script: + - *package_api_setup - | - ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_install_update_enable_disable_remove_local - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_install_update_enable_disable_remove_store - - <<: *e2e_test - env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 - script: - - *package_api_setup - | + ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_install_enable_enable - | @@ -174,19 +182,19 @@ jobs: ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_install_assets_store + - <<: *e2e_test + env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 + script: + - *package_api_setup - | - ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_extend_same_table_store - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_extend_same_table_local - - <<: *e2e_test - env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 - script: - - *package_api_setup - | + ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_extend_same_table_crossed_local - | diff --git a/codeception/_data/plugins/Horizon-1.0.0.tgz b/codeception/_data/plugins/Horizon-1.0.0.tgz index 433a529edb73f7f9be9305dcf510dc7767a0d989..4bb2f740cae2c41d3e0fbf0aba976dfc39a5a597 100644 GIT binary patch literal 2356 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 a1{q|KK?WIQkU<7dfd2yz<(y{#PyhgF>bIf* literal 2399 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 literal 2444 zcmV;733K)ziwFQXt(RK>1MM7ba^lL-`KuG;=Y(>V@fHSY^aUpDdl<88Dqh=#ab9i3 zDVLB2n6(%Yeb`I3oO(ZUlw2Se$vJY2^hg4MfVJ@&yxFI&TFFxP^z`&}_q2M3y)ZtX z5W^yFsmXlmk9RfzqA2RRj&}4AlDilK))gelvZCr(gF6x>RZ^85^m!A)q#^Kp!v#@p z>Dcj&TjR#L4W7d%8VZ`;|4%^DP@h^g8N)1yWlfND6u`40N$^T3D}pSdp-+dTCaJOp zpi62|mjNwRR4m{MG8eHJ<`RcZjag(x){0nDWl6`1DqtC1HcncnABz^bt4SJ|1jeF( z)yZqhoLX7K82*WxDoEuCg4vYa))e8jb@wAc8pke)|B|RmQdwSD0Q530R?4`7%UH*2E&$rX0w84zz_&x}{~Pf71SbCf>(0{n z59xxI&i}wzc96IcX;SbT_y0fs1hX!b-U#Ro>I|rddekNe?jytXk<&xX#zEuis0nyZ z(r`v&m-YvK-rPqR26})+@XOQl#-Gm5P~*H5vv$;82J9^ zuvEIgzc1R3dF!yE=@dVWN-;W=VdOe}*BEj!dM+Wzb9(;0;gTvEI{`8chFoG%&v$7z z@IhK18O$m7(GAV$BmIw$8> z9aKO2h<>TJ+x4@~$0`u}0|&6=jzp~JaAZ^94C8VQ=8r*k&f!C|-8g|J^`q8ltMieM z;9aY8*1Wt#@6Ow(jxOr$POEWsT5qF^tM9Gw9iYpAbC6}RfQ}r`=cFI%2#HvdqytG7^#Z!Otn*Qo z1c4bt;*EI23p?mjc75Ww^zRP4j-qZ=5CoVwbnKWg$&6f|w?ABeFh(N^qX0vMM<4;& z^M5dH!}D&)XD|mZzqgdzHILzY`}^pNfB;Hw-h_7;S418^OchGE-X!@TwK^E8nP@-7)U9)&K( z4X&_SE~TmV6d!6Ud7KWU6y8I1BTf=NMjD;dYTWmo;eucKGwZ>5GPeb?Uzg4%dI2)ql4GYp?(1N~Ks<6iJj+ ztS;1lW2~;J6=`t;Fv7}ZRhP@_)qf#v$P$1}z~;O@fk)PV6)Sqm|23><>;G2Zk@dg2 zq(T*~;IYY6XA^_CZN1Bj5T-w8TM^;v%GFZ*%6d&ieK{WX90tjRGaNaLF#r0Pj0m#` zGsi9ViI`!I(r}n>fbedM`NZwPAYoKdg=bDeM0m1dd1$Hpaas~*2)%%X%n@Z^KenCc z71S}>H67NY{Q_F-GsH#j_Gb!8#2h#%_vY!4D_)#j+%(Tmt0^9>ND>t54oO9^D6OP^ zUXQbNq9`q!GX}Iv<{oG2J1I{|F5SE$^ zVPWO<^{u8E3bIk7`HC7W>U}4AIF2NFEky()%kaMkJzRx?Y+Mbm9YY{;oP0fuBos-! zI0M3UVn)K_@vyN#yUJ47_p{_&O=S7u7oBO>^Jxg$wdS8^J5Qk&d!OfZco^m+OO`U; zbeU-r0p?xEV-WI_AuSM1FtL+6exUC`#d;)z|(`ovSZUBf4)j__lb zU|toH`cE>|FWtxE=f4-u|A|_*|Fac%?*0$VRk@ta^_-vrF~{|kG40*}=HF;?}I|BIR~XZ8PWKz9B+ zJO7=X|K9fb@7ay4xuZ2R8(x!LsPv}SV_RsGO|c`FT77ao-MVX&J~yWE;x1UKrj_0X zOHeEJz;13#hXHM1`uT-k(5@T5+E1OOh6qELe|R|Cd`eshrJApaJqQo49WH-3NRob& zZ=yo1E`IVH_M&~PbN&}A8n6E-x|-$x+ko}+|B6`DR8i3@6^s}2{}3z5nj)3M{~f?s z(pId9c)jz#8!o&q$yX0>H zbpi7w=`}(g#QTZFg=YT{fsK-TDC8g`aScvxIu>U*5%D3*2QtVYgA6jrAcG9nh5rG% KNh3A@Pyhg&g5q)j diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index e82b5031219..ad3ef90a5a1 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -46,6 +46,24 @@ public function _before(\AcceptanceTester $I) FileSystem::doEmptyDir('repos'); } + public function test_install_enable_disable_remove_store(\AcceptanceTester $I) + { + Horizon_Store::start($I) + ->インストール() + ->有効化() + ->無効化() + ->削除(); + } + + public function test_install_enable_disable_remove_local(\AcceptanceTester $I) + { + Horizon_Store::start($I) + ->インストール() + ->有効化() + ->無効化() + ->削除(); + } + public function test_install_enable_disable_enable_disable_remove_store(\AcceptanceTester $I) { Horizon_Store::start($I) @@ -78,7 +96,8 @@ public function test_install_remove_local(\AcceptanceTester $I) public function test_install_remove_store(\AcceptanceTester $I) { Horizon_Store::start($I) - ->インストール(); + ->インストール() + ->削除(); } public function test_install_update_remove_store(\AcceptanceTester $I) @@ -260,16 +279,8 @@ public function test_extend_same_table_store(\AcceptanceTester $I) $Horizon->インストール()->有効化(); $Boomerang->インストール()->有効化(); - $Horizon->tableExists(); - $Horizon->columnExists(); - - $Horizon->無効化()->削除(); - - $Boomerang->tableExists(); - $Boomerang->columnExists(); - $Boomerang->traitExists(); - - $Boomerang->無効化()->削除(); + $Horizon->検証()->無効化()->削除(); + $Boomerang->検証()->無効化()->削除(); } public function test_extend_same_table_local(\AcceptanceTester $I) @@ -280,8 +291,8 @@ public function test_extend_same_table_local(\AcceptanceTester $I) $Horizon->インストール()->有効化(); $Boomerang->インストール()->有効化(); - $Horizon->tableExists(); - $Horizon->columnExists(); + $Horizon->検証()->無効化()->削除(); + $Boomerang->検証()->無効化()->削除(); } public function test_extend_same_table_crossed_local(\AcceptanceTester $I) @@ -292,8 +303,8 @@ public function test_extend_same_table_crossed_local(\AcceptanceTester $I) $Horizon->インストール()->有効化()->無効化(); $Boomerang->インストール()->有効化(); - $Horizon->tableExists(); - $Horizon->columnExists(); + $Horizon->検証()->削除(); + $Boomerang->検証()->無効化()->削除(); } private function publishPlugin($fileName) @@ -423,6 +434,8 @@ public function 検証() } else { $this->traitNotExists(); } + + return $this; } } @@ -546,6 +559,8 @@ public function アップデート() $this->I->reloadPage(); $this->ManagePage->ストアプラグイン_アップデート($this->code)->アップデート(); + $this->initialized = true; + $this->検証(); $this->em->refresh($this->Plugin); From 913a0c42f310b30edf2141cf2eb29be92c7745a0 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 13 Sep 2018 16:51:35 +0900 Subject: [PATCH 038/170] =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=83=E3=82=B7?= =?UTF-8?q?=E3=83=A5=E5=88=B6=E5=BE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Store/OwnerStoreController.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Eccube/Controller/Admin/Store/OwnerStoreController.php b/src/Eccube/Controller/Admin/Store/OwnerStoreController.php index cf36b3cec4d..032e1ebae79 100644 --- a/src/Eccube/Controller/Admin/Store/OwnerStoreController.php +++ b/src/Eccube/Controller/Admin/Store/OwnerStoreController.php @@ -69,6 +69,9 @@ class OwnerStoreController extends AbstractController /** @var BaseInfo */ private $BaseInfo; + /** @var CacheUtil */ + private $cacheUtil; + /** * OwnerStoreController constructor. * @@ -79,6 +82,7 @@ class OwnerStoreController extends AbstractController * @param SystemService $systemService * @param PluginApiService $pluginApiService * @param BaseInfoRepository $baseInfoRepository + * @param CacheUtil $cacheUtil * * @throws \Doctrine\ORM\NoResultException * @throws \Doctrine\ORM\NonUniqueResultException @@ -90,13 +94,15 @@ public function __construct( ComposerServiceInterface $composerService, SystemService $systemService, PluginApiService $pluginApiService, - BaseInfoRepository $baseInfoRepository + BaseInfoRepository $baseInfoRepository, + CacheUtil $cacheUtil ) { $this->pluginRepository = $pluginRepository; $this->pluginService = $pluginService; $this->systemService = $systemService; $this->pluginApiService = $pluginApiService; $this->BaseInfo = $baseInfoRepository->get(); + $this->cacheUtil = $cacheUtil; // TODO: Check the flow of the composer service below $memoryLimit = $this->systemService->getMemoryLimit(); @@ -270,6 +276,7 @@ public function apiInstall(Request $request) log_error($e); } + $this->cacheUtil->clearCache(); return $this->json(['success' => false, 'log' => $log], 500); } @@ -306,8 +313,10 @@ public function apiUninstall(Plugin $Plugin) $pluginCode = $Plugin->getCode(); $packageName = self::$vendorName.'/'.$pluginCode; + try { $log = $this->composerService->execRemove($packageName); + $this->cacheUtil->clearCache(); return $this->json(['success' => false, 'log' => $log]); } catch (\Exception $e) { @@ -337,6 +346,7 @@ public function apiUpgrade(Request $request) try { $log = $this->composerService->execRequire('ec-cube/'.$pluginCode.':'.$version); + $this->cacheUtil->clearCache(); return $this->json(['success' => true, 'log' => $log]); } catch (\Exception $e) { $log = $e->getMessage(); @@ -384,6 +394,7 @@ public function apiSchemaUpdate(Request $request) $log = ob_get_clean(); ob_end_flush(); + $this->cacheUtil->clearCache(); return $this->json(['success' => true, 'log' => $log]); } catch (\Exception $e) { $log = $e->getMessage(); @@ -421,6 +432,7 @@ public function apiUpdate(Request $request) $log = ob_get_clean(); ob_end_flush(); + $this->cacheUtil->clearCache(); return $this->json(['success' => true, 'log' => $log]); } catch (\Exception $e) { $log = $e->getMessage(); From 933fbf54cb7560bc6396fa4c90d3977e4e57a5af Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 13 Sep 2018 17:13:11 +0900 Subject: [PATCH 039/170] =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=82=B1?= =?UTF-8?q?=E3=83=BC=E3=82=B9=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 4 ++++ codeception/acceptance/EA10PluginCest.php | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/.travis.yml b/.travis.yml index 5919f72635c..31cb1d12355 100644 --- a/.travis.yml +++ b/.travis.yml @@ -193,6 +193,10 @@ jobs: ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_extend_same_table_local + - | + ./codeception.sh --reset + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_extend_same_table_crossed_store - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index ad3ef90a5a1..b99408f6041 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -295,6 +295,18 @@ public function test_extend_same_table_local(\AcceptanceTester $I) $Boomerang->検証()->無効化()->削除(); } + public function test_extend_same_table_crossed_store(\AcceptanceTester $I) + { + $Horizon = Horizon_Store::start($I); + $Boomerang = Boomerang_Store::start($I); + + $Horizon->インストール()->有効化()->無効化(); + $Boomerang->インストール()->有効化(); + + $Horizon->検証()->削除(); + $Boomerang->検証()->無効化()->削除(); + } + public function test_extend_same_table_crossed_local(\AcceptanceTester $I) { $Horizon = Horizon_Local::start($I); From 7c0663f2e9156a4f119184f27ca94032b4f7faf2 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 13 Sep 2018 17:35:58 +0900 Subject: [PATCH 040/170] =?UTF-8?q?=E3=83=AA=E3=83=95=E3=82=A1=E3=82=AF?= =?UTF-8?q?=E3=82=BF=E3=83=AA=E3=83=B3=E3=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/acceptance/EA10PluginCest.php | 66 +++++++++++------------ 1 file changed, 30 insertions(+), 36 deletions(-) diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index b99408f6041..dabf202263c 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -348,13 +348,11 @@ abstract class Abstract_Plugin protected $removed = false; - protected $table; + protected $tables = []; - protected $column; + protected $columns = []; - protected $traitTarget; - - protected $trait; + protected $traits = []; public function __construct(\AcceptanceTester $I) { @@ -367,51 +365,51 @@ public function __construct(\AcceptanceTester $I) public function tableExists() { - if ($this->table) { - $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '".$this->table."';")->fetch()['count'] > 0; - $this->I->assertTrue($exists, 'テーブルがあるはず '.$this->table); + foreach ($this->tables as $table) { + $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '".$table."';")->fetch()['count'] > 0; + $this->I->assertTrue($exists, 'テーブルがあるはず '.$table); } } public function tableNotExists() { - if ($this->table) { - $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '".$this->table."';")->fetch()['count'] > 0; - $this->I->assertFalse($exists, 'テーブルがないはず '.$this->table); + foreach ($this->tables as $table) { + $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '".$table."';")->fetch()['count'] > 0; + $this->I->assertFalse($exists, 'テーブルがないはず '.$table); } } public function columnExists() { - if ($this->column) { - list($tableName, $columnName) = explode('.', $this->column); + foreach ($this->columns as $column) { + list($tableName, $columnName) = explode('.', $column); $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '${tableName}' AND column_name = '${columnName}';")->fetch()['count'] == 1; - $this->I->assertTrue($exists, 'カラムがあるはず '.$this->column); + $this->I->assertTrue($exists, 'カラムがあるはず '.$column); } } public function columnNotExists() { - if ($this->column) { - list($tableName, $columnName) = explode('.', $this->column); + foreach ($this->columns as $column) { + list($tableName, $columnName) = explode('.', $column); $exists = $this->conn->executeQuery("SELECT count(*) AS count FROM information_schema.columns WHERE table_name = '${tableName}' AND column_name = '${columnName}';")->fetch()['count'] == 1; - $this->I->assertFalse($exists, 'カラムがないはず '.$this->column); + $this->I->assertFalse($exists, 'カラムがないはず '.$column); } } public function traitExists() { - if ($this->trait) { - $this->I->assertContains($this->trait, file_get_contents($this->config['kernel.project_dir'].'/app/proxy/entity/'.$this->traitTarget.'.php'), 'Traitがあるはず'); + foreach ($this->traits as $trait => $target) { + $this->I->assertContains($trait, file_get_contents($this->config['kernel.project_dir'].'/app/proxy/entity/'.$target.'.php'), 'Traitがあるはず '.$trait); } } public function traitNotExists() { - if ($this->trait) { - $file = $this->config['kernel.project_dir'].'/app/proxy/entity/'.$this->traitTarget.'.php'; + foreach ($this->traits as $trait => $target) { + $file = $this->config['kernel.project_dir'].'/app/proxy/entity/'.$target.'.php'; if (file_exists($file)) { - $this->I->assertNotContains($this->trait, file_get_contents($file), 'Traitがないはず'); + $this->I->assertNotContains($trait, file_get_contents($file), 'Traitがないはず '.$trait); } else { $this->I->assertTrue(true, 'Traitがないはず'); } @@ -690,10 +688,9 @@ class Horizon_Local extends Local_Plugin public function __construct(AcceptanceTester $I) { parent::__construct($I, 'Horizon'); - $this->table = 'dtb_dash'; - $this->column = 'dtb_cart.is_horizon'; - $this->trait = '\Plugin\Horizon\Entity\CartTrait'; - $this->traitTarget = 'Cart'; + $this->tables[] = 'dtb_dash'; + $this->columns[] = 'dtb_cart.is_horizon'; + $this->traits['\Plugin\Horizon\Entity\CartTrait'] = 'Cart'; } public static function start(AcceptanceTester $I) @@ -707,10 +704,9 @@ class Horizon_Store extends Store_Plugin public function __construct(AcceptanceTester $I) { parent::__construct($I, 'Horizon'); - $this->table = 'dtb_dash'; - $this->column = 'dtb_cart.is_horizon'; - $this->trait = '\Plugin\Horizon\Entity\CartTrait'; - $this->traitTarget = 'Cart'; + $this->tables[] = 'dtb_dash'; + $this->columns[] = 'dtb_cart.is_horizon'; + $this->traits['\Plugin\Horizon\Entity\CartTrait'] = 'Cart'; } public static function start(AcceptanceTester $I) @@ -724,9 +720,8 @@ class Boomerang_Store extends Store_Plugin public function __construct(AcceptanceTester $I) { parent::__construct($I, 'Boomerang'); - $this->column = 'dtb_cart.is_boomerang'; - $this->trait = '\Plugin\Boomerang\Entity\CartTrait'; - $this->traitTarget = 'Cart'; + $this->columns[] = 'dtb_cart.is_boomerang'; + $this->traits['\Plugin\Boomerang\Entity\CartTrait'] = 'Cart'; } public static function start(AcceptanceTester $I) @@ -740,9 +735,8 @@ class Boomerang_Local extends Local_Plugin public function __construct(AcceptanceTester $I) { parent::__construct($I, 'Boomerang'); - $this->column = 'dtb_cart.is_boomerang'; - $this->trait = '\Plugin\Boomerang\Entity\CartTrait'; - $this->traitTarget = 'Cart'; + $this->columns[] = 'dtb_cart.is_boomerang'; + $this->traits['\Plugin\Boomerang\Entity\CartTrait'] = 'Cart'; } public static function start(AcceptanceTester $I) From c3aa73ffad2102effcee0d39fc2460565f561bca Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 13 Sep 2018 20:32:07 +0900 Subject: [PATCH 041/170] =?UTF-8?q?=E4=BE=9D=E5=AD=98=E3=83=97=E3=83=A9?= =?UTF-8?q?=E3=82=B0=E3=82=A4=E3=83=B3=E3=81=AE=E3=83=86=E3=82=B9=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/acceptance/EA10PluginCest.php | 64 +++++++++++++++++++++-- 1 file changed, 60 insertions(+), 4 deletions(-) diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index dabf202263c..da033301f7c 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -319,6 +319,27 @@ public function test_extend_same_table_crossed_local(\AcceptanceTester $I) $Boomerang->検証()->無効化()->削除(); } + public function test_dependency_each_install_plugin(\AcceptanceTester $I) + { + Horizon_Store::start($I) + ->インストール(); + +// Emperor_Store::start($I) +// ->インストール(); + } + + public function test_dependency_plugin(\AcceptanceTester $I) + { + $Emperor = Emperor_Store::start($I) + ->インストール() + ->依存より先に有効化(); + + Horizon_Store::start($I, $Emperor) + ->有効化(); + + $Emperor->有効化(); + } + private function publishPlugin($fileName) { copy(codecept_data_dir().'/'.'plugins/'.$fileName, codecept_root_dir().'/repos/'.$fileName); @@ -452,12 +473,12 @@ public function 検証() class Store_Plugin extends Abstract_Plugin { /** @var PluginManagePage */ - private $ManagePage; + protected $ManagePage; /** @var Plugin */ - private $Plugin; + protected $Plugin; - private $code; + protected $code; public function __construct(AcceptanceTester $I, $code) { @@ -580,7 +601,7 @@ public function アップデート() return $this; } - private function publishPlugin($fileName) + protected function publishPlugin($fileName) { $published = copy(codecept_data_dir().'/'.'plugins/'.$fileName, codecept_root_dir().'/repos/'.$fileName); $this->I->assertTrue($published, "公開できた ${fileName}"); @@ -709,10 +730,45 @@ public function __construct(AcceptanceTester $I) $this->traits['\Plugin\Horizon\Entity\CartTrait'] = 'Cart'; } + public static function start(AcceptanceTester $I, Store_Plugin $dependency = null) + { + $result = new self($I); + if ($dependency) { + $result->ManagePage = $dependency->ManagePage; + } + return $result; + } +} + +class Emperor_Store extends Store_Plugin +{ + public function __construct(AcceptanceTester $I) + { + parent::__construct($I, 'Emperor'); + $this->publishPlugin('Horizon-1.0.0.tgz'); + $this->tables[] = 'dtb_foo'; + $this->columns[] = 'dtb_cart.foo_id'; + $this->columns[] = 'dtb_dash.is_emperor'; + $this->traits['\Plugin\Emperor\Entity\CartTrait'] = 'Cart'; + $this->traits['\Plugin\Emperor\Entity\DashTrait'] = 'Dash'; + } + public static function start(AcceptanceTester $I) { return new self($I); } + + public function 依存より先に有効化() + { + $this->ManagePage->ストアプラグイン_有効化($this->code, '「ホライゾン」を先に有効化してください。'); + + $this->検証(); + + $this->em->refresh($this->Plugin); + $this->I->assertFalse($this->Plugin->isInitialized(), '初期化されていないはず'); + $this->I->assertFalse($this->Plugin->isEnabled(), '有効化されていないはず'); + return $this; + } } class Boomerang_Store extends Store_Plugin From 0668352bca3d7ce06798d600f1229ba4020e0927 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 13 Sep 2018 20:46:26 +0900 Subject: [PATCH 042/170] =?UTF-8?q?=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=AE=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/_data/plugins/Boomerang-1.0.0.tgz | Bin 1110 -> 1976 bytes codeception/_data/plugins/Emperor-1.0.0.tgz | Bin 2524 -> 2395 bytes codeception/_data/plugins/Horizon-1.0.0.tgz | Bin 2356 -> 2443 bytes codeception/_data/plugins/Horizon-1.0.1.tgz | Bin 2377 -> 2482 bytes codeception/acceptance/EA10PluginCest.php | 5 +++++ 5 files changed, 5 insertions(+) diff --git a/codeception/_data/plugins/Boomerang-1.0.0.tgz b/codeception/_data/plugins/Boomerang-1.0.0.tgz index 417e40546b295998889072adb5ebc3f1eb046343..3cf4c13d5506e5ccb47a990737cb208d556fbcfd 100644 GIT binary patch literal 1976 zcmV;p2S@lHiwFQ@R+?J?1MOSgZsWKWPH*)Dy<~*})*fVJ>fdr|bQ8zj@z$FJ8P5U> z7%*gswl$F{RX@oXL5jWDN9hanMfx0lj2`{ivMqZOXJcpD;dfz0JV)dq#Y27PkhwBH zzbB?mf?AtKPBc5(12D$As-h!3MRCPBWDtt7tZ0fVi?WKasER5+LZA0x%sS#QG6OK> z#+iAMd1DT|oA^2PWL-gv>;DKu4UHYUDN9(=ab4p?9mR03h$0jzb%m2Lnnuo)G(}a` z>WV01L(nusQdKOcQtOLSb44m@f}&w8DRpdcN*#4OXQ$V#_nn{Hf)xT>nM*JgoV@rfK>S!Y^&eCVb=m z|L4EJ3+Fg$PD$vS7C~2TJa%aR%=4xsFzL9T&5#q0i$j9imK6_4|CCY~tc0%R;`Zl= z&=BrHulDvWhu)&^*CZ7_e>f}eCsU5Ef@Y12l9`7VbCA2|5Fo850n~MC259JcE-~q% z?DG1je#>*?DXk>tH+d%<4CiL^$0(ZlP?$dj_nw~^95(NHn~coZjrhjMbVKq`&8w`X zS3e%Qj)mSV*9N`XWYL)!tXT7tNoPIpl9CF{sWFMNo;LX{W7>!3`RYmyKY9+$`V>~~ z=aK|#(!9q*GZ;8F^erGG5)f(;JCk2z17a7|Z|Nn}aKb&XmGoOhiT}ZzeCcn%F8nX! z|Dev||AXL}@xN{;x~z-a;(t+5C2W-A|Lj>^uWN?76aSM$#{c$$-2eCB^#vZ`e-hS8 z`9D>Z82>v2GX7Uf8C!4SglOcr1i{q@Hiogj|!G2eDZ6#_^)1o zq6tBx7^<-5Z6K4{2v`d6M=*(wykMGg&ST^QrGv6thuo#lbvv#0#fQYm%>HO%M(EBA zk?n+0;0)u4*yzrQCLn>ng)03jd*V z@k6&g=$)Q*+iSY#PG|+r)S+hN1uOi~UX~0J!o1+k$+)F7+9h-xO`4LbuGaeA47<*V zSToBdEz@;}rgalmR&}z@Rs!OCp#x3KTFKySAjH=TjbvnsJARe5renLH-8n&C9=|1W z?$BtdY(-p-9PCBE;W08M!AiUkLjW_T#O51O5HI3|<+ov%ihdvzx(4&^XVZ;I1%?xD z#t;m2&f6EgPVX0fxtiMI??w1w=RwD|{$(%d$z4o-pYU?GSd%<`l9oQOXyN|}1@X^( z5<*xLrvHnQfoJ4@fsQi%e+WD`|En6BXq5SXD%C}d>${VX#RIK@taFehY6ptqLtZmk}7_fO-CM`0r{Bv9wjvDpA(-@ zn^0@kp`VDAW{q1OjZEOtK?mqoFoK4mos8YB)QL!vKDI-&vBf-5oRgGMOw-DN`N2DN z-HI6m<_x{DJUVj5$Ee(9D$B~MOKg%@6A$rkpAKHQdVe)&Uv^K{>gZ&apv7n+QNRM; zs{i~pAGnP}L1-FDy#7eEQ$t>FARyBDN=D*5v*h)LBKBcHWRP5d7!!b3YrT4$G2V9i@{-E&j{Lk9@ zFNumQv-STFc<%ZSi?}Kqo7aDk>UCT`{+*|P49Tc##*XX1&eA`7!IJ;Ku-6xO?ED{0 zwKf08D#k4Ta|p2g-^ccU3!gaQR&rrWdzSO;)Us}(`Gwuz)oj^W;Mil*Uu-X5lW}7C ztehTO@zPRytPpLJsH4ubpaU{Hf6*1MF|)Xs{3q2O(joDWOSL4is? zma(lRzauO8C1Uz(q$M(_-;yBARI}9eF`phOODa$5e&?rj2#N#p_t*(Qa$mHY3E$;u za1y{{|A0yag?~8af#(EfqMmRzkSrVN*nC68_<=DF1_lNO1_lNO1_lNO1_lO(4froF K677uuPyhg z3))Gmj*SWeBF6 zd7~hfXYx2WOO}oM`BW+YU-ZoWDYP16A0I@Z#OpN}AvVRV#tbUZAod2TK^&V4$0iJ0 zbzFBCGi;39TOx)rx45tgw+ST%ts{9`N^M~g>OiAT4d$Su*8bkRgTvMjP0I}x3=Q<{ zb+98WCTx+KV59di@aRXYr_LLM!=a%R8`PO}dpc;;IAw&_g+mQen+UY;>9dAyJhfN< zKggrLy3#c!@&5^afAj0BKjz~NkL zan=BTaK`S=|CEW@{im1{r_BHBz-Q+F8Yi_o@;?=jx;afJ$|VzRTzgEtJ5*D#Vup{DC5UDess8l07uaD}*e5i1=*8^%?)whXj|Ud>51%wlrh-${?0 zxd|hyMx35JbaMucO9KHiJt;ufxeQS^2z({=P2byhZ#oBopA7UyYJS7?qT}wwY;zmM zqakz_v!EReQ-h<%rP)(`nfS5!vM>EeU2PUBtJ!mybbZf7FK%nwHLkwU6f`CNeB<9p zEl*VVsA=E<{4X%KQ~oEMm;ApD+{^zI+m;Y@xTD|2|8>G^Y?1$qiEsscApf(H|JR4r zMg0`_@IQs9pN)S4!+FX7>%hJIKTG_Dbgvr$XS?yt>DkQ&z8?+xfd+aH2E#xr9d}-< zq0&92-BC+_RBl!^90WR+o>pN?$13c@!my6(%P2xKI+04thhBu1u2>Wb1!MOUohe72 zhCTKD4H<@VgkHFT?t3TOXmQO=i7e0#Jzr=yiyf^NKt zh=nbD=lK7==9RJ36-vvlubzP?nwcR_=ZKycJrhs7&MkR5S0uxpjGu!iK4gYGp(FJ3 z$rK+Zwyeb+)7#9n{&&-a9YGQBF$(mfa?HK;zvJZm4|P8vz5g>>e*aku7V3W}@&_}Y zaabM7c*k)lWs6sULdxs3E;6ZHHW#*-+7Gw|z?|CRXPxpEumY?u>ZiEx{U7D?@$U#s z%KCpDxHQw!-+XB*cPFdxtNYVeXl74EZs=w2&0xs*`nU1*-{b4w$Jc+3um1x1xeB9P zmUGp%nZ9((w57^+hFP@^-J$v^@j{SXP8Z6BI|c8l5T^YCN-SnxZJSW{hcX@R2EA0_ c)T*m5^;KMn5+zEMD6uyD1G;8+F90Y20HsPaKL7v# diff --git a/codeception/_data/plugins/Emperor-1.0.0.tgz b/codeception/_data/plugins/Emperor-1.0.0.tgz index c7350ded36097892f5eda10fd2cb8ba5cd67ed34..57ef98da3739fdb8f5c5302d90e9befa931597c9 100644 GIT binary patch literal 2395 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 N{SS9_nqL4=002!R(24*6 literal 2524 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 a1{q|KK?WIQkU<7dfd2yz<(y{#PyhgF>bIf* diff --git a/codeception/_data/plugins/Horizon-1.0.1.tgz b/codeception/_data/plugins/Horizon-1.0.1.tgz index 745cc34d01d240739563a749134519ed8aeec4c0..0633c80942df961ca3cd7dd13b96fc71de6f2fa5 100644 GIT binary patch literal 2482 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 literal 2377 zcmV-P3AXkhiwFP>2AW#{1MM5zZrjSyebpEAaVi+F9LN&yq^v6ED6$d@b!JoQHl&f1p3o@91ZAmZU^oW6QCWG~pPKM9%E&?Ci|!?Ckp7{B%rA zn|S3W3urLf*#HQFpsOnE=nV()ce+vNoUp zX_~eJ!bYT-gP+|0|NINidanE`2d|*hr#^J4Ljb>rrWb(Qg=XWRarvf+cuvxAha->n z`a!|k2MGsyAPMM~CufbnoSj1BtW-Sd9F?H%IMC)~KD3EXygOo-5)Slp-n0s-*`J|7H!cz1dU?+7EF>A-n-<4_Aus707hcykkb=P&&} zvEgPEwRp>AxJYDxw=Ocqu;#KV5Q=yY?uh5(Gf136(oMp%2(AYOGvJbY;0}4aeH3>D zjv1s)ODl$-j?xCoBF24ph$HGFOB~}pMNQuj2z}BGog!y}#PD0Ib9{E$f%@qO_^sY< z*H1eisz@C4UBr?*60@R%p+k`~j>|JyFhbcmhxg5P;~1ON-?UCzoez8jZ(E(y=EViP zJ!?Z9&g<iFY^TK0_Tot5jcR0kaLh_p$KnWKj5VA>i~izisFGN3wjYQFY0_$ zQFe9gdi3uuyNaW3HJ8ib#KDnk;UqJ1b=H1=_1+u~DUJdS5g(BRWiR~6a!lX9CZEt8 z{KDQ+ZdW{p@9poy=NurEU%iUHaa=KZ@-%+=EAOmh-Z-Sd#jNG+;O5#!7Ww@dk`_Y? zr-8{V(isg&A%D?2eRtBlM(a3f&e0xG-}2~yGBa?!hU%NsrCdP zX)Ar445S==N9qPn5-#TiZcF=$G(`?F<-^18_cBzd< z_NDQ~6ZGUE^3Nws?h0vm>uU7&A@`6acpHa>{a*vu{f=kS;N{Z6_4j|eCTI1(t-y2l zf10Qm@eXg<{!i2Nil8su{~4Mn>7pT5*4+PT+5T@6kof-wygr3T_J4wc$hrEDE=bw_ zZyONr|DKSk@X-2sxwTcqdYl5H$MfKg7Y0wE*E7Gm>0}p3i+gQlB{xr)^h{GQxtZBQhk+ zCd?YO*hgYTIZDH2fr-L(SQ z@Cxb(b}g56X|D*2eMY$W-TqWTiCBFX@~@r_`O^9E`E~Q`q&ml=6-xq%?m#RFC2=M7 z*Y$|WS)7&4*aGa5na8Q}&K#yTrHzBvJrWf5?8L-Mt~V&f)YpTUd~biMLbaPDX2^q) z`=~}&*sm_24_;FnNrYt>ZtRHLOEk4N&3#7BgV#e|p7(>oxbbvPbEI7-L{a7lA972r zhOnsc`t6OT840o#oB3)JSgCl*>;kug!^6m{iy(ek`!@Bz6ZId(lKf=)4~MoHd=Kis zj0E{nwa?*O25Jn?$6t=sDMcETPmyq)z?|}UJT@=Tt};;e{VeO3V_AMwGtJIGx1?$-Zhxy4!B8venx{X;Lj6b1 zg2qcg>h+tu1HS(KZ&lRQ?Ed#QU~2wn?|`R>udWKNef}?rny6**e;e@Z_^)WHB(FOE zuW*nSR{&YW6+qV%RZ_GySAa@(0_Z_rIqPvSzNBt>LKQH+G~tFNY1*5ht2*WAR8tB vP|RaS;+dS>a&68q6_MKcLs1YOvcw>R3^K?dgA6jr;EC`*fVH%n08jt`1A)o_ diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index da033301f7c..9ae53231427 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -711,6 +711,7 @@ public function __construct(AcceptanceTester $I) parent::__construct($I, 'Horizon'); $this->tables[] = 'dtb_dash'; $this->columns[] = 'dtb_cart.is_horizon'; + $this->columns[] = 'dtb_cart.dash_id'; $this->traits['\Plugin\Horizon\Entity\CartTrait'] = 'Cart'; } @@ -727,6 +728,7 @@ public function __construct(AcceptanceTester $I) parent::__construct($I, 'Horizon'); $this->tables[] = 'dtb_dash'; $this->columns[] = 'dtb_cart.is_horizon'; + $this->columns[] = 'dtb_cart.dash_id'; $this->traits['\Plugin\Horizon\Entity\CartTrait'] = 'Cart'; } @@ -776,7 +778,9 @@ class Boomerang_Store extends Store_Plugin public function __construct(AcceptanceTester $I) { parent::__construct($I, 'Boomerang'); + $this->tables[] = 'dtb_bar'; $this->columns[] = 'dtb_cart.is_boomerang'; + $this->columns[] = 'dtb_cart.bar_id'; $this->traits['\Plugin\Boomerang\Entity\CartTrait'] = 'Cart'; } @@ -791,6 +795,7 @@ class Boomerang_Local extends Local_Plugin public function __construct(AcceptanceTester $I) { parent::__construct($I, 'Boomerang'); + $this->tables[] = 'dtb_bar'; $this->columns[] = 'dtb_cart.is_boomerang'; $this->traits['\Plugin\Boomerang\Entity\CartTrait'] = 'Cart'; } From 1cbe19851cb9c46c318388c28ad8f45618d6eaae Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 13 Sep 2018 21:25:15 +0900 Subject: [PATCH 043/170] =?UTF-8?q?=E3=82=A8=E3=83=A9=E3=83=BC=E7=99=BA?= =?UTF-8?q?=E7=94=9F=E6=99=82=E3=81=AB=E3=83=AD=E3=82=B0=E3=81=AE=E5=8F=96?= =?UTF-8?q?=E5=BE=97=E6=BC=8F=E3=82=8C=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Store/PluginController.php | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/Eccube/Controller/Admin/Store/PluginController.php b/src/Eccube/Controller/Admin/Store/PluginController.php index fc76ec3f781..c8b10eb7a6e 100644 --- a/src/Eccube/Controller/Admin/Store/PluginController.php +++ b/src/Eccube/Controller/Admin/Store/PluginController.php @@ -294,15 +294,19 @@ public function enable(Plugin $Plugin, CacheUtil $cacheUtil, Request $request) } } - ob_start(); - if (!$Plugin->isInitialized()) { - $this->pluginService->installWithCode($Plugin->getCode()); - } + try { + ob_start(); + + if (!$Plugin->isInitialized()) { + $this->pluginService->installWithCode($Plugin->getCode()); + } - $this->pluginService->enable($Plugin); - $log = ob_get_clean(); - ob_end_flush(); + $this->pluginService->enable($Plugin); + } finally { + $log = ob_get_clean(); + ob_end_flush(); + } } $cacheUtil->clearCache(); @@ -351,10 +355,13 @@ public function disable(Request $request, Plugin $Plugin, CacheUtil $cacheUtil) } } - ob_start(); - $this->pluginService->disable($Plugin); - $log = ob_get_clean(); - ob_end_flush(); + try { + ob_start(); + $this->pluginService->disable($Plugin); + } finally { + $log = ob_get_clean(); + ob_end_flush(); + } } else { if ($request->isXmlHttpRequest()) { return $this->json(['success' => true, 'log' => $log]); From 1163c172d35934ed52848fe49a05bdcf0d61f349 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 13 Sep 2018 21:56:54 +0900 Subject: [PATCH 044/170] =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=83=E3=82=B7?= =?UTF-8?q?=E3=83=A5=E3=82=92=E7=A2=BA=E5=AE=9F=E3=81=AB=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Store/OwnerStoreController.php | 16 ++++++++++------ .../Controller/Admin/Store/PluginController.php | 12 ++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/Eccube/Controller/Admin/Store/OwnerStoreController.php b/src/Eccube/Controller/Admin/Store/OwnerStoreController.php index 032e1ebae79..eacc2838eea 100644 --- a/src/Eccube/Controller/Admin/Store/OwnerStoreController.php +++ b/src/Eccube/Controller/Admin/Store/OwnerStoreController.php @@ -264,6 +264,8 @@ public function apiInstall(Request $request) { $this->isTokenValid(); + $this->cacheUtil->clearCache(); + $pluginCode = $request->get('pluginCode'); $log = null; @@ -276,7 +278,6 @@ public function apiInstall(Request $request) log_error($e); } - $this->cacheUtil->clearCache(); return $this->json(['success' => false, 'log' => $log], 500); } @@ -293,6 +294,8 @@ public function apiUninstall(Plugin $Plugin) { $this->isTokenValid(); + $this->cacheUtil->clearCache(); + if ($Plugin->isEnabled()) { return $this->json(['success' => false, 'message' => trans('admin.plugin.uninstall.error.not_disable')], 400); } @@ -316,7 +319,6 @@ public function apiUninstall(Plugin $Plugin) try { $log = $this->composerService->execRemove($packageName); - $this->cacheUtil->clearCache(); return $this->json(['success' => false, 'log' => $log]); } catch (\Exception $e) { @@ -339,14 +341,14 @@ public function apiUpgrade(Request $request) { $this->isTokenValid(); + $this->cacheUtil->clearCache(); + $pluginCode = $request->get('pluginCode'); $version = $request->get('version'); $log = null; try { $log = $this->composerService->execRequire('ec-cube/'.$pluginCode.':'.$version); - - $this->cacheUtil->clearCache(); return $this->json(['success' => true, 'log' => $log]); } catch (\Exception $e) { $log = $e->getMessage(); @@ -369,6 +371,8 @@ public function apiSchemaUpdate(Request $request) { $this->isTokenValid(); + $this->cacheUtil->clearCache(); + $pluginCode = $request->get('pluginCode'); try { @@ -394,7 +398,6 @@ public function apiSchemaUpdate(Request $request) $log = ob_get_clean(); ob_end_flush(); - $this->cacheUtil->clearCache(); return $this->json(['success' => true, 'log' => $log]); } catch (\Exception $e) { $log = $e->getMessage(); @@ -417,6 +420,8 @@ public function apiUpdate(Request $request) { $this->isTokenValid(); + $this->cacheUtil->clearCache(); + $pluginCode = $request->get('pluginCode'); $log = null; @@ -432,7 +437,6 @@ public function apiUpdate(Request $request) $log = ob_get_clean(); ob_end_flush(); - $this->cacheUtil->clearCache(); return $this->json(['success' => true, 'log' => $log]); } catch (\Exception $e) { $log = $e->getMessage(); diff --git a/src/Eccube/Controller/Admin/Store/PluginController.php b/src/Eccube/Controller/Admin/Store/PluginController.php index c8b10eb7a6e..7793784ae86 100644 --- a/src/Eccube/Controller/Admin/Store/PluginController.php +++ b/src/Eccube/Controller/Admin/Store/PluginController.php @@ -258,6 +258,8 @@ public function enable(Plugin $Plugin, CacheUtil $cacheUtil, Request $request) { $this->isTokenValid(); + $cacheUtil->clearCache(); + $log = null; if ($Plugin->isEnabled()) { @@ -309,8 +311,6 @@ public function enable(Plugin $Plugin, CacheUtil $cacheUtil, Request $request) } } - $cacheUtil->clearCache(); - if ($request->isXmlHttpRequest()) { return $this->json(['success' => true, 'log' => $log]); } else { @@ -335,6 +335,8 @@ public function disable(Request $request, Plugin $Plugin, CacheUtil $cacheUtil) { $this->isTokenValid(); + $cacheUtil->clearCache(); + $log = null; if ($Plugin->isEnabled()) { $dependents = $this->pluginService->findDependentPluginNeedDisable($Plugin->getCode()); @@ -372,8 +374,6 @@ public function disable(Request $request, Plugin $Plugin, CacheUtil $cacheUtil) } } - $cacheUtil->clearCache(); - if ($request->isXmlHttpRequest()) { return $this->json(['success' => true, 'log' => $log]); } else { @@ -499,6 +499,7 @@ public function install(Request $request) */ public function authenticationSetting(Request $request, CacheUtil $cacheUtil) { + $builder = $this->formFactory ->createBuilder(AuthenticationType::class, $this->BaseInfo); @@ -513,9 +514,8 @@ public function authenticationSetting(Request $request, CacheUtil $cacheUtil) // composerの認証を更新 $this->composerService->configureRepository($this->BaseInfo); - - $cacheUtil->clearCache(); $this->addSuccess('admin.common.save_complete', 'admin'); + $cacheUtil->clearCache(); } return [ From 5ea13a2eb05bc20c2a8aeec46a9bfe26efcbff40 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 13 Sep 2018 21:57:22 +0900 Subject: [PATCH 045/170] =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 8 ++++++++ codeception/acceptance/EA10PluginCest.php | 9 ++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 31cb1d12355..0c2ea465d80 100644 --- a/.travis.yml +++ b/.travis.yml @@ -201,6 +201,14 @@ jobs: ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_extend_same_table_crossed_local + - | + ./codeception.sh --reset + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_dependency_each_install_plugin + - | + ./codeception.sh --reset + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_dependency_plugin - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test', php_path = '$(which php)';" diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index 9ae53231427..78fa2da4193 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -322,10 +322,10 @@ public function test_extend_same_table_crossed_local(\AcceptanceTester $I) public function test_dependency_each_install_plugin(\AcceptanceTester $I) { Horizon_Store::start($I) - ->インストール(); + ->インストール()->有効化(); -// Emperor_Store::start($I) -// ->インストール(); + Emperor_Store::start($I) + ->インストール()->有効化(); } public function test_dependency_plugin(\AcceptanceTester $I) @@ -737,6 +737,7 @@ public static function start(AcceptanceTester $I, Store_Plugin $dependency = nul $result = new self($I); if ($dependency) { $result->ManagePage = $dependency->ManagePage; + $result->Plugin = $result->pluginRepository->findByCode($result->code); } return $result; } @@ -750,9 +751,7 @@ public function __construct(AcceptanceTester $I) $this->publishPlugin('Horizon-1.0.0.tgz'); $this->tables[] = 'dtb_foo'; $this->columns[] = 'dtb_cart.foo_id'; - $this->columns[] = 'dtb_dash.is_emperor'; $this->traits['\Plugin\Emperor\Entity\CartTrait'] = 'Cart'; - $this->traits['\Plugin\Emperor\Entity\DashTrait'] = 'Dash'; } public static function start(AcceptanceTester $I) From 1f999629d6f7db2f95211b81d34d00e1722aab08 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Fri, 14 Sep 2018 09:39:56 +0900 Subject: [PATCH 046/170] =?UTF-8?q?=E4=BE=9D=E5=AD=98=E3=83=97=E3=83=A9?= =?UTF-8?q?=E3=82=B0=E3=82=A4=E3=83=B3=E3=81=AE=E3=82=A2=E3=83=83=E3=83=97?= =?UTF-8?q?=E3=83=87=E3=83=BC=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/_data/plugins/Emperor-1.0.1.tgz | Bin 2541 -> 2424 bytes .../_support/Page/Admin/PluginManagePage.php | 6 +- .../_support/Page/Admin/PluginSearchPage.php | 2 +- .../Page/Admin/PluginStoreInstallPage.php | 2 +- codeception/acceptance/EA10PluginCest.php | 108 +++++++++++++++--- 5 files changed, 96 insertions(+), 22 deletions(-) diff --git a/codeception/_data/plugins/Emperor-1.0.1.tgz b/codeception/_data/plugins/Emperor-1.0.1.tgz index 51bed3bec37df5019c840a090ca0c1e27cc6e422..39a55a2de686a365bb69065a6e99a0e2050d1410 100644 GIT binary patch literal 2424 zcmV-;35WI{iwFR=JDXbo1MOSga^lJnc5ZosTz06fGTy>M{{j>C9E{mD32VDBKBuWHP|_;z5q1c)6>&4J@fTwIMY8J z6Wt_UrA-4XnC@(Vc%IiZ4R*AM(r-Q?Nl`$MBw1A@MO7r=1w~M$9r&~fV-_j&1KmSY zuC1vP=-2v{a~(cLPuvx_`~E*6L4}cJHYAZ3HNL7A1PwxbmIVQeedc$fs%gfs+2 zQft^XLEyw%O%Mf55*XL`Dp#N5iXtazIMRwBs|C3V-OgdN*E;U}(&h}0psYjhxNu- zZfCzhile@=(KcrB{~P}P<3E4?7yJIhfB*d-KBa~DmnB}=0cE3BCG>;Ge=`1OciTWq z_X4r+=~lqGWA{ngK!2#Ryn6i?waogDg1o>YJ752|LF=#oyv$W)71vpmSYH1Zx%x6! z5G7s`XqL=N7OFYNBjORzaP$+~xfwp0U19I7<6n(|eTEcIC3JCS_ zxgLofIY!`Flw6+n-e11gUDu)`(0#y1)Kq!>x&W`?=Y^`JVxm1RzhqOgxQCLJLck^_ zq;s_Jxd2F!B1Wi;wRB2J-@%U(j_8O4v7Scp-X2{Z>K@acss0zoqAkY`C)6)}o^fE2 zS7NSe6bHI@Wtqh?cw|UCLJeZZ{F8`{tUKjjX1^-Yw;K*@%Yav?pLp;E{U7%s7XPxOi7v|IbF zi^DeZnMliVr=B$$2PI<nDZhL~KU zVH^bRL8Wqgd&}95aqUpfaJY|dC1FQ4xSlie^a(R#=n(?GGYoEZkJMr6gkb0tcU{x+ z5n~L(0Idx`r)I_Rn1YF8TEi(T3n}hr5R3@~#GCl6Gwk8r$pyS4lz6%gXYpR#wG6}{ zgjGkB5^d1_n3yn_Mm63t8_p9O;H`s-Bk)rPVj5s%K`yx=u_|lg+7@cYet9|#rf56U@V?z^9b=W|VW->ae_%a$ z+v%UQ&(GoQX%Cuk*6j5=t&4862WJ<(v(xi72XIc9S&ueLo`VGMWHi(7O26QlR&VA$H*$x6t)=d;n9a#r!2#8qAaO+t(Ujk=&SXuRS zWXsT@23H2927Q7~Vz8Kj<9#>}nFdMX%W&xU0TX@S1mHzM5cUO$*UE5l-sB?K`mLz? z>u?!uFa61|b>F`tpKv<(rQMZ?c6V#e={L z$t-Eej)l2Y6o!`JjNJ{8Td>CQQ(>ZFN^f7jeSv8fr-?JRVGI4@^t$*?Gd~+As z=Qj-P3Ts&HdQ|%5`4gibgwn(>4wm;i)p2G%DHvQo|IW`@_y2kRw|RQt{I`A& zLXFW@GG*%7bK#_JbHIRz5zNi4Sa2nBjoIhZ$ZG)i2ae~8+VA=??Dm*RX(=3a>Rk77%HEcb`5i8Y8%h^IMX14s!W5ly=*j&6DgV{{^y33c(cj7~jIe@d+tIWB@)Ae_tv+9)GvSX*x z0%!k?Wg=HtEM=Gt%XjC7c6YTGU3S#$2PIbfYtFVqf1DM{4`Y7El%D^j=b=yC2LHhQ z?|a_=^Gg2ye=GFZ^B+Z)mhOM2=RYzpOI3CG{+}Rll2{e_8p^JD{-Z6O|48|&^!=1Z z{pRj~^K0DyPTv0unwsDL-UemHf9?)gTK@fqf@`1ui-Iik`TD;Ndi45VQ`w#D75BeX zwWwnp=X&Ra(VaWu17{}E=`x;na!>HOYh85)`}Nq zS67BZQ8qM!(o!Sv%1eqCPup;PAv8ER$X34-E<<|Sm!3jB_geXTq!jcU?42vF)!awl zp-hpVL;49nboERQVsQHedWwE+Q21 qbS7muCexEzW|_qUf#<*EkRYd=a>^;EoN~%(UHTutAT!JWPyhh+u;-fq literal 2541 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ストアプラグイン_ボタンクリック($pluginCode, '削除'); $this->tester->waitForElementVisible(['id' => 'officialPluginDeleteButton']); $this->tester->click(['id' => 'officialPluginDeleteButton']); $this->tester->waitForElementVisible(['css' => '#officialPluginDeleteModal > div > div > div.modal-footer > button:nth-child(3)'], 30); - $this->tester->see('削除が完了しました。', ['css' => '#officialPluginDeleteModal > div > div > div.modal-body.text-left > p']); + $this->tester->see($message, ['css' => '#officialPluginDeleteModal > div > div > div.modal-body.text-left > p']); $this->tester->click(['css' => '#officialPluginDeleteModal > div > div > div.modal-footer > button:nth-child(3)']); return $this; @@ -80,6 +81,7 @@ public function ストアプラグイン_削除($pluginCode) */ public function ストアプラグイン_アップデート($pluginCode) { + echo $this->tester->grabTextFrom(['xpath' => '//*[@id="page_admin_store_plugin"]']); $this->tester->click(['xpath' => $this->ストアプラグイン_セレクタ($pluginCode).'/../../td[5]/a']); return PluginStoreUpgradePage::at($this->tester); } diff --git a/codeception/_support/Page/Admin/PluginSearchPage.php b/codeception/_support/Page/Admin/PluginSearchPage.php index 93238b6e4c5..a51ec3bc28a 100644 --- a/codeception/_support/Page/Admin/PluginSearchPage.php +++ b/codeception/_support/Page/Admin/PluginSearchPage.php @@ -34,7 +34,7 @@ public static function go($I) */ public function 入手する($pluginCode) { - $this->tester->click(['xpath' => '//*[@id="plugin-list"]//a[@data-code="'.$pluginCode.'"]/parent::node()/parent::node()/div[3]/form/a[contains(text(), "入手する")]']); + $this->tester->click(['xpath' => '//*[@id="plugin-list"]//a[@data-code="'.$pluginCode.'"]/../../div[3]/form/a[contains(text(), "入手する")]']); return PluginStoreInstallPage::at($this->tester); } diff --git a/codeception/_support/Page/Admin/PluginStoreInstallPage.php b/codeception/_support/Page/Admin/PluginStoreInstallPage.php index b193a2ffd9d..bfabd41450e 100644 --- a/codeception/_support/Page/Admin/PluginStoreInstallPage.php +++ b/codeception/_support/Page/Admin/PluginStoreInstallPage.php @@ -37,7 +37,7 @@ public function インストール() $this->tester->click(['css' => '#plugin-list > div.card-body > div:nth-child(2) > div > button.btn.btn-primary']); $this->tester->waitForElementVisible(['id' => 'installBtn']); $this->tester->click(['id' => 'installBtn']); - $this->tester->waitForElementVisible(['css' => '#installModal > div > div > div.modal-footer > a'], 30); + $this->tester->waitForElementVisible(['css' => '#installModal > div > div > div.modal-footer > a'], 60); $this->tester->see('インストールが完了しました。', ['css' => '#installModal > div > div > div.modal-body > p']); $this->tester->click(['css' => '#installModal > div > div > div.modal-footer > a']); diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index 78fa2da4193..357e732af88 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -321,23 +321,50 @@ public function test_extend_same_table_crossed_local(\AcceptanceTester $I) public function test_dependency_each_install_plugin(\AcceptanceTester $I) { - Horizon_Store::start($I) - ->インストール()->有効化(); + $Horizon = Horizon_Store::start($I); + $Emperor = Emperor_Store::start($I); - Emperor_Store::start($I) - ->インストール()->有効化(); + $Horizon->インストール()->有効化(); + $Emperor->インストール()->有効化(); } public function test_dependency_plugin(\AcceptanceTester $I) { - $Emperor = Emperor_Store::start($I) - ->インストール() + $Horizon = Horizon_Store::start($I); + $Emperor = Emperor_Store::start($I, $Horizon); + + $Emperor->インストール() ->依存より先に有効化(); - Horizon_Store::start($I, $Emperor) - ->有効化(); + $Horizon->有効化(); $Emperor->有効化(); + + $Horizon->依存されているのが有効なのに無効化(); + $Emperor->無効化(); + $Horizon->無効化(); + + $Horizon->依存されているのが削除されていないのに削除(); + $Emperor->削除(); + $Horizon->削除(); + } + + public function test_dependency_plugin_update(\AcceptanceTester $I) + { + $Horizon = Horizon_Store::start($I); + $Emperor = Emperor_Store::start($I, $Horizon); + + $Emperor->インストール(); + + $Horizon->検証() + ->有効化(); + + $Emperor + ->有効化() + ->無効化() + ->アップデート(); + + $Horizon->検証(); } private function publishPlugin($fileName) @@ -480,11 +507,19 @@ class Store_Plugin extends Abstract_Plugin protected $code; - public function __construct(AcceptanceTester $I, $code) + /** @var Store_Plugin */ + protected $dependency; + + public function __construct(AcceptanceTester $I, $code, Store_Plugin $dependency = null) { parent::__construct($I); $this->code = $code; $this->publishPlugin($this->code.'-1.0.0.tgz'); + if ($dependency) { + $this->dependency = $dependency; + $this->ManagePage = $dependency->ManagePage; + $this->Plugin = $this->pluginRepository->findByCode($code); + } } public function インストール() @@ -502,6 +537,11 @@ public function インストール() $this->I->assertFalse($this->Plugin->isInitialized(), '初期化されていない'); $this->I->assertFalse($this->Plugin->isEnabled(), '有効化されていない'); + if ($this->dependency) { + $this->dependency->ManagePage = $this->ManagePage; + $this->dependency->Plugin = $this->pluginRepository->findByCode($this->dependency->code); + } + return $this; } @@ -517,6 +557,7 @@ public function 有効化() $this->em->refresh($this->Plugin); $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されている'); $this->I->assertTrue($this->Plugin->isEnabled(), '有効化されている'); + return $this; } @@ -732,33 +773,64 @@ public function __construct(AcceptanceTester $I) $this->traits['\Plugin\Horizon\Entity\CartTrait'] = 'Cart'; } - public static function start(AcceptanceTester $I, Store_Plugin $dependency = null) + public static function start(AcceptanceTester $I) { $result = new self($I); - if ($dependency) { - $result->ManagePage = $dependency->ManagePage; - $result->Plugin = $result->pluginRepository->findByCode($result->code); - } return $result; } + + public function 依存されているのが有効なのに無効化() + { + $this->ManagePage->ストアプラグイン_無効化($this->code, '「ホライゾン」を無効にする前に、「エンペラー」を無効にしてください。'); + + $this->検証(); + + $this->em->refresh($this->Plugin); + $this->I->assertTrue($this->Plugin->isInitialized(), '初期化されているはず'); + $this->I->assertTrue($this->Plugin->isEnabled(), '有効化されているはず'); + return $this; + } + + public function 依存されているのが削除されていないのに削除() + { + $this->ManagePage->ストアプラグイン_削除($this->code, '「エンペラー」が「ホライゾン」に依存しているため削除できません。'); + + $this->検証(); + + $this->em->refresh($this->Plugin); + $this->Plugin = $this->pluginRepository->findByCode($this->code); + $this->I->assertNotNull($this->Plugin, '削除されていない'); + + return $this; + } + } class Emperor_Store extends Store_Plugin { - public function __construct(AcceptanceTester $I) + public function __construct(AcceptanceTester $I, Store_Plugin $dependency = null) { - parent::__construct($I, 'Emperor'); + parent::__construct($I, 'Emperor', $dependency); $this->publishPlugin('Horizon-1.0.0.tgz'); $this->tables[] = 'dtb_foo'; $this->columns[] = 'dtb_cart.foo_id'; $this->traits['\Plugin\Emperor\Entity\CartTrait'] = 'Cart'; } - public static function start(AcceptanceTester $I) + public static function start(AcceptanceTester $I, Store_Plugin $dependency = null) { - return new self($I); + return new self($I, $dependency); } + public function アップデート() + { + $this->tables = ['dtb_bar']; + $this->columns = ['dtb_cart.bar_id']; + $this->traits['\Plugin\Emperor\Entity\Cart2Trait'] = 'Cart'; + return parent::アップデート(); + } + + public function 依存より先に有効化() { $this->ManagePage->ストアプラグイン_有効化($this->code, '「ホライゾン」を先に有効化してください。'); From 1b620d1ff4315b11477d9cc5c56c507a785c3089 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Fri, 14 Sep 2018 15:23:22 +0900 Subject: [PATCH 047/170] =?UTF-8?q?=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E5=89=8A=E9=99=A4=E6=99=82=E3=81=AB=E7=84=A1=E5=8A=B9?= =?UTF-8?q?=E5=8C=96=E3=81=95=E3=82=8C=E3=81=9F=E3=83=97=E3=83=A9=E3=82=B0?= =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=81=AE=E3=82=B9=E3=82=AD=E3=83=BC=E3=83=9E?= =?UTF-8?q?=E3=81=8C=E6=B6=88=E3=81=88=E3=82=8B=E5=95=8F=E9=A1=8C=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 204 ++++++++++++------ codeception/acceptance/EA10PluginCest.php | 24 +++ .../admin/Store/plugin_table_official.twig | 7 +- src/Eccube/Service/PluginService.php | 34 +-- 4 files changed, 184 insertions(+), 85 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0c2ea465d80..8dc2d8311ea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -189,10 +189,18 @@ jobs: - | psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_extend_same_table_store + - | + ./codeception.sh --reset + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_extend_same_table_disabled_remove_store - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_extend_same_table_local + - | + ./codeception.sh --reset + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_extend_same_table_disabled_remove_local - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" @@ -201,81 +209,149 @@ jobs: ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_extend_same_table_crossed_local + - <<: *e2e_test + env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 + script: + - *package_api_setup - | - ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_dependency_each_install_plugin - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_dependency_plugin + - | + ./codeception.sh --reset + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_dependency_plugin_update - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test', php_path = '$(which php)';" ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_store -# - <<: *e2e_test -# env: APP_ENV=codeception DATABASE_URL=mysql://root:@localhost/eccube_db DATABASE_SERVER_VERSION=5 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 -# script: -# - *package_api_setup -# - | -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_store -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_local -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_remove_local -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_remove_store -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_update_remove_store -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_update_remove_local -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_enable_disable_update_enable_disable_remove_local -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_enable_disable_update_enable_disable_remove_store -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_enable_update_disable_remove_store -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_enable_update_disable_remove_local -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_update_enable_disable_remove_local -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_update_enable_disable_remove_store -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_assets_local -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:install_assets_store -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test', php_path = '$(which php)';" -# ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_store + - <<: *e2e_test + env: APP_ENV=codeception DATABASE_URL=mysql://root:@localhost/eccube_db DATABASE_SERVER_VERSION=5 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 + script: + - *package_api_setup + - | + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_enable_disable_remove_store + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_enable_disable_remove_local + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_enable_disable_enable_disable_remove_store + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_enable_disable_enable_disable_remove_local + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_remove_local + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_remove_store + - <<: *e2e_test + env: APP_ENV=codeception DATABASE_URL=mysql://root:@localhost/eccube_db DATABASE_SERVER_VERSION=5 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 + script: + - *package_api_setup + - | + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_update_remove_store + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_update_remove_local + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_enable_disable_update_enable_disable_remove_local + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_enable_disable_update_enable_disable_remove_store + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_enable_update_disable_remove_store + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_enable_update_disable_remove_local + - <<: *e2e_test + env: APP_ENV=codeception DATABASE_URL=mysql://root:@localhost/eccube_db DATABASE_SERVER_VERSION=5 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 + script: + - *package_api_setup + - | + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_update_enable_disable_remove_local + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_update_enable_disable_remove_store + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_enable_enable + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_disable_disable + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_assets_local + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_assets_store + - <<: *e2e_test + env: APP_ENV=codeception DATABASE_URL=mysql://root:@localhost/eccube_db DATABASE_SERVER_VERSION=5 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 + script: + - *package_api_setup + - | + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_extend_same_table_store + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_extend_same_table_disabled_remove_store + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_extend_same_table_local + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_extend_same_table_disabled_remove_local + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_extend_same_table_crossed_store + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_extend_same_table_crossed_local + - <<: *e2e_test + env: APP_ENV=codeception DATABASE_URL=mysql://root:@localhost/eccube_db DATABASE_SERVER_VERSION=5 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 + script: + - *package_api_setup + - | + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_dependency_each_install_plugin + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_dependency_plugin + - | + ./codeception.sh --reset + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_dependency_plugin_update + # - stage: Code Coverage # if: type != pull_request diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index 357e732af88..a350f491635 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -283,6 +283,18 @@ public function test_extend_same_table_store(\AcceptanceTester $I) $Boomerang->検証()->無効化()->削除(); } + public function test_extend_same_table_disabled_remove_store(\AcceptanceTester $I) + { + $Horizon = Horizon_Store::start($I); + $Boomerang = Boomerang_Store::start($I); + + $Horizon->インストール()->有効化()->無効化(); + $Boomerang->インストール()->有効化()->無効化(); + + $Horizon->検証()->削除(); + $Boomerang->検証()->削除(); + } + public function test_extend_same_table_local(\AcceptanceTester $I) { $Horizon = Horizon_Local::start($I); @@ -295,6 +307,18 @@ public function test_extend_same_table_local(\AcceptanceTester $I) $Boomerang->検証()->無効化()->削除(); } + public function test_extend_same_table_disabled_remove_local(\AcceptanceTester $I) + { + $Horizon = Horizon_Local::start($I); + $Boomerang = Boomerang_Local::start($I); + + $Horizon->インストール()->有効化()->無効化(); + $Boomerang->インストール()->有効化()->無効化(); + + $Horizon->検証()->削除(); + $Boomerang->検証()->削除(); + } + public function test_extend_same_table_crossed_store(\AcceptanceTester $I) { $Horizon = Horizon_Store::start($I); diff --git a/src/Eccube/Resource/template/admin/Store/plugin_table_official.twig b/src/Eccube/Resource/template/admin/Store/plugin_table_official.twig index 205cbe4d7a5..e0c99729b48 100644 --- a/src/Eccube/Resource/template/admin/Store/plugin_table_official.twig +++ b/src/Eccube/Resource/template/admin/Store/plugin_table_official.twig @@ -20,11 +20,7 @@ $(function() { var footer = $('div.modal-footer', modal).hide(); var message = $('div.modal-body p', modal).text('「' + currentPlugin.name + ' (' + currentPlugin.version + ')」を削除中。この処理には数分かかる場合があります。画面をリロードせずにこのままお待ち下さい。') var progress = $('div.progress', modal).show(); - var url = '{{ url('admin_store_plugin_api_uninstall', {id:0}) }}'.replace( - /(.*\/)(0)(\/.*)/, - function(all, pre, id, rest) { return pre + currentPlugin.id + rest } - ); - $.ajax({url: url, type: 'delete'}).then( + $.ajax({url: currentPlugin['deleteUrl'], type: 'delete'}).then( function(data) { message.text('削除が完了しました。'); $('#deleteLog').text(data.log); @@ -115,6 +111,7 @@ $(function() { data-toggle="modal" data-target="#officialPluginDeleteModal" data-id="{{ Plugin.id }}" + data-delete-url="{{ url('admin_store_plugin_api_uninstall', { id: Plugin.id }) }}" data-name="{{ Plugin.name }}" data-version="{{ Plugin.version }}" class="btn btn-ec-actionIcon"> diff --git a/src/Eccube/Service/PluginService.php b/src/Eccube/Service/PluginService.php index 872ba83964f..5f4d7c8daee 100644 --- a/src/Eccube/Service/PluginService.php +++ b/src/Eccube/Service/PluginService.php @@ -272,7 +272,7 @@ public function postInstall($config, $source) } } - public function generateProxyAndUpdateSchema(Plugin $plugin, $config) + public function generateProxyAndUpdateSchema(Plugin $plugin, $config, $uninstall = false) { if ($plugin->isEnabled()) { $generatedFiles = $this->regenerateProxy($plugin, false); @@ -284,19 +284,21 @@ public function generateProxyAndUpdateSchema(Plugin $plugin, $config) @mkdir($tmpProxyOutputDir); try { - // プラグインmetadata定義を追加 - $entityDir = $this->eccubeConfig['plugin_realdir'].'/'.$plugin->getCode().'/Entity'; - if (file_exists($entityDir)) { - $ormConfig = $this->entityManager->getConfiguration(); - $chain = $ormConfig->getMetadataDriverImpl(); - $driver = $ormConfig->newDefaultAnnotationDriver([$entityDir], false); - $namespace = 'Plugin\\'.$config['code'].'\\Entity'; - $chain->addDriver($driver, $namespace); - $ormConfig->addEntityNamespace($plugin->getCode(), $namespace); + if (!$uninstall) { + // プラグインmetadata定義を追加 + $entityDir = $this->eccubeConfig['plugin_realdir'].'/'.$plugin->getCode().'/Entity'; + if (file_exists($entityDir)) { + $ormConfig = $this->entityManager->getConfiguration(); + $chain = $ormConfig->getMetadataDriverImpl(); + $driver = $ormConfig->newDefaultAnnotationDriver([$entityDir], false); + $namespace = 'Plugin\\'.$config['code'].'\\Entity'; + $chain->addDriver($driver, $namespace); + $ormConfig->addEntityNamespace($plugin->getCode(), $namespace); + } } // 一時的に利用するProxyを生成してからスキーマを更新する - $generatedFiles = $this->regenerateProxy($plugin, true, $tmpProxyOutputDir); + $generatedFiles = $this->regenerateProxy($plugin, true, $tmpProxyOutputDir, $uninstall); $this->schemaService->updateSchema($generatedFiles, $tmpProxyOutputDir); } finally { foreach (glob("${tmpProxyOutputDir}/*") as $f) { @@ -537,8 +539,7 @@ public function uninstall(Plugin $plugin, $force = true) $this->unregisterPlugin($plugin); // スキーマを更新する - //FIXME: Update schema before no affect - $this->schemaService->updateSchema([], $this->projectRoot.'/app/proxy/entity'); + $this->generateProxyAndUpdateSchema($plugin, $config, true); // プラグインのネームスペースに含まれるEntityのテーブルを削除する $namespace = 'Plugin\\'.$plugin->getCode().'\\Entity'; @@ -576,10 +577,11 @@ public function disable(Plugin $plugin) * @param Plugin $plugin プラグイン * @param boolean $temporary プラグインが無効状態でも一時的に生成するかどうか * @param string|null $outputDir 出力先 + * @param bool $uninstall プラグイン削除の場合はtrue * * @return array 生成されたファイルのパス */ - private function regenerateProxy(Plugin $plugin, $temporary, $outputDir = null) + private function regenerateProxy(Plugin $plugin, $temporary, $outputDir = null, $uninstall = false) { if (is_null($outputDir)) { $outputDir = $this->projectRoot.'/app/proxy/entity'; @@ -592,11 +594,11 @@ function ($p) { return $p->getCode(); }, ); $excludes = []; - if ($temporary || $plugin->isEnabled()) { + if (!$uninstall && ($temporary || $plugin->isEnabled())) { $enabledPluginCodes[] = $plugin->getCode(); } else { $index = array_search($plugin->getCode(), $enabledPluginCodes); - if ($index >= 0) { + if ($index !== false && $index >= 0) { array_splice($enabledPluginCodes, $index, 1); $excludes = [$this->projectRoot.'/app/Plugin/'.$plugin->getCode().'/Entity']; } From 8fffb223ff81497b57183b1ba30b797dfee4c42f Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Fri, 14 Sep 2018 15:43:35 +0900 Subject: [PATCH 048/170] =?UTF-8?q?=E3=82=B9=E3=83=88=E3=82=A2=E8=A8=AD?= =?UTF-8?q?=E5=AE=9A=E7=94=BB=E9=9D=A2=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Store/PluginController.php | 2 ++ .../admin/Store/authentication_setting.twig | 26 +++++-------------- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/src/Eccube/Controller/Admin/Store/PluginController.php b/src/Eccube/Controller/Admin/Store/PluginController.php index 7793784ae86..400a61b4efa 100644 --- a/src/Eccube/Controller/Admin/Store/PluginController.php +++ b/src/Eccube/Controller/Admin/Store/PluginController.php @@ -516,6 +516,8 @@ public function authenticationSetting(Request $request, CacheUtil $cacheUtil) $this->composerService->configureRepository($this->BaseInfo); $this->addSuccess('admin.common.save_complete', 'admin'); $cacheUtil->clearCache(); + + return $this->redirectToRoute('admin_store_authentication_setting'); } return [ diff --git a/src/Eccube/Resource/template/admin/Store/authentication_setting.twig b/src/Eccube/Resource/template/admin/Store/authentication_setting.twig index 4bfea78fab8..e76e7dfb9ff 100644 --- a/src/Eccube/Resource/template/admin/Store/authentication_setting.twig +++ b/src/Eccube/Resource/template/admin/Store/authentication_setting.twig @@ -34,6 +34,10 @@ file that was distributed with this source code. $('#captcha_image').attr('src', "{{ eccube_config.eccube_package_api_url }}/captcha" + '?' + new Date().getTime()) } + $('#captcha').on('show.bs.modal', function() { + refreshCaptchaImage(); + }); + $('#generate_key').on('click', function() { $.ajax({ type: 'POST', @@ -98,25 +102,6 @@ file that was distributed with this source code.
-
-
-
{{'admin.store.setting.php_path_setting'|trans}}
-
-
-
-
-
- {{ form.php_path.vars.label|trans }} - -
-
-
- {{ form_widget(form.php_path) }} -
-
-
-
- @@ -152,7 +137,8 @@ file that was distributed with this source code.
From a7e128990595270a659cd64f4f2ebde13d306662 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Fri, 14 Sep 2018 16:08:02 +0900 Subject: [PATCH 050/170] =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=83=E3=82=B7?= =?UTF-8?q?=E3=83=A5=E3=81=AE=E3=82=AF=E3=83=AA=E3=82=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Util/CacheUtil.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Eccube/Util/CacheUtil.php b/src/Eccube/Util/CacheUtil.php index 41900b003c0..ad7dec21cec 100644 --- a/src/Eccube/Util/CacheUtil.php +++ b/src/Eccube/Util/CacheUtil.php @@ -82,6 +82,19 @@ public function forceClearCache(PostResponseEvent $event) $console->run($input, $output); + if (function_exists('opcache_reset')) { + opcache_reset(); + } + + if (function_exists('apc_clear_cache')) { + apc_clear_cache('user'); + apc_clear_cache(); + } + + if (function_exists('wincache_ucache_clear')) { + wincache_ucache_clear(); + } + return $output->fetch(); } From 55dc2b24625ecdffde91fedad565f8a15aa5e821 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Fri, 14 Sep 2018 16:36:46 +0900 Subject: [PATCH 051/170] =?UTF-8?q?=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=82=A2=E3=83=83=E3=83=97=E3=83=87=E3=83=BC=E3=83=88?= =?UTF-8?q?=E6=99=82=E3=81=AB=E3=82=BF=E3=82=A4=E3=83=A0=E3=82=A2=E3=82=A6?= =?UTF-8?q?=E3=83=88=E3=81=97=E3=81=A6=E3=81=97=E3=81=BE=E3=81=86=E3=81=AE?= =?UTF-8?q?=E3=81=A7=E5=BB=B6=E9=95=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/_support/Page/Admin/PluginStoreUpgradePage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codeception/_support/Page/Admin/PluginStoreUpgradePage.php b/codeception/_support/Page/Admin/PluginStoreUpgradePage.php index 5567e3d9615..db334d2f568 100644 --- a/codeception/_support/Page/Admin/PluginStoreUpgradePage.php +++ b/codeception/_support/Page/Admin/PluginStoreUpgradePage.php @@ -37,7 +37,7 @@ public function アップデート() $this->tester->click(['css' => '#plugin-list > div.card-body > div:nth-child(2) > div > button.btn.btn-primary']); $this->tester->waitForElementVisible(['id' => 'installBtn']); $this->tester->click(['id' => 'installBtn']); - $this->tester->waitForElementVisible(['css' => '#installModal > div > div > div.modal-footer > a'], 30); + $this->tester->waitForElementVisible(['css' => '#installModal > div > div > div.modal-footer > a'], 60); $this->tester->see('インストールが完了しました。', ['css' => '#installModal > div > div > div.modal-body > p']); $this->tester->click(['css' => '#installModal > div > div > div.modal-footer > a']); From f22d9930c1ed8dbcaf5ada1ae3189d27c18aa6a1 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Fri, 14 Sep 2018 18:07:38 +0900 Subject: [PATCH 052/170] =?UTF-8?q?travis=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=82=B1=E3=83=BC=E3=82=B9=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8dc2d8311ea..b784ca9ff41 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,11 +21,11 @@ cache: php: - 7.1 -# - 7.2 + - 7.2 env: -# - DATABASE_URL=mysql://root:@localhost/cube4_dev DATABASE_SERVER_VERSION=5 -# - DATABASE_URL=postgres://postgres:password@localhost/cube4_dev DATABASE_SERVER_VERSION=9 + - DATABASE_URL=mysql://root:@localhost/cube4_dev DATABASE_SERVER_VERSION=5 + - DATABASE_URL=postgres://postgres:password@localhost/cube4_dev DATABASE_SERVER_VERSION=9 - DATABASE_URL=sqlite:///%kernel.project_dir%/var/eccube.db DATABASE_SERVER_VERSION=3 COVERAGE=1 matrix: @@ -95,12 +95,12 @@ jobs: - *eccube_setup env: GROUP=admin01 APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 script: ./codeception.sh -g ${GROUP} -# - <<: *e2e_test -# env: GROUP=admin02 APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 -# - <<: *e2e_test -# env: GROUP=admin03 APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 -# - <<: *e2e_test -# env: GROUP=front APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 + - <<: *e2e_test + env: GROUP=admin02 APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 + - <<: *e2e_test + env: GROUP=admin03 APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 + - <<: *e2e_test + env: GROUP=front APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 - <<: *e2e_test env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 script: @@ -347,11 +347,14 @@ jobs: ./codeception.sh --reset mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_dependency_plugin +# - | +# ./codeception.sh --reset +# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" +# ./codeception.sh EA10PluginCest:test_dependency_plugin_update - | ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_dependency_plugin_update - + mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test', php_path = '$(which php)';" + ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_store # - stage: Code Coverage # if: type != pull_request From 944ee4d26254eacf30398adcb97ee50cf6c2aedf Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Fri, 14 Sep 2018 18:25:27 +0900 Subject: [PATCH 053/170] testdox --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index b784ca9ff41..320217cf3e7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -57,9 +57,9 @@ install: - *eccube_setup script: - - ./bin/phpunit --exclude-group cache-clear,cache-clear-install - - ./bin/phpunit --group cache-clear - - ./bin/phpunit --group cache-clear-install + - ./bin/phpunit --exclude-group cache-clear,cache-clear-install --testdox + - ./bin/phpunit --group cache-clear --testdox + - ./bin/phpunit --group cache-clear-install --testdox jobs: fast_finish: true From c0b0023d0cad387c669556047e9cd8f21fbf7ed4 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Fri, 14 Sep 2018 18:47:32 +0900 Subject: [PATCH 054/170] Add @group cache-clear --- tests/Eccube/Tests/Web/Admin/Store/PluginControllerTest.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/Eccube/Tests/Web/Admin/Store/PluginControllerTest.php b/tests/Eccube/Tests/Web/Admin/Store/PluginControllerTest.php index 2209470308d..eed36decce0 100644 --- a/tests/Eccube/Tests/Web/Admin/Store/PluginControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Store/PluginControllerTest.php @@ -16,6 +16,9 @@ use Eccube\Repository\BaseInfoRepository; use Eccube\Tests\Web\Admin\AbstractAdminWebTestCase; +/** + * @group cache-clear + */ class PluginControllerTest extends AbstractAdminWebTestCase { public function testRoutingAuthentication() From 8baca9bde1d7edb44dab2afb885d843bd1427906 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Fri, 14 Sep 2018 19:12:14 +0900 Subject: [PATCH 055/170] remove --testdox --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 320217cf3e7..b784ca9ff41 100644 --- a/.travis.yml +++ b/.travis.yml @@ -57,9 +57,9 @@ install: - *eccube_setup script: - - ./bin/phpunit --exclude-group cache-clear,cache-clear-install --testdox - - ./bin/phpunit --group cache-clear --testdox - - ./bin/phpunit --group cache-clear-install --testdox + - ./bin/phpunit --exclude-group cache-clear,cache-clear-install + - ./bin/phpunit --group cache-clear + - ./bin/phpunit --group cache-clear-install jobs: fast_finish: true From e2594854c22e281d56ec790fa59a76ee82316c43 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Fri, 14 Sep 2018 19:39:05 +0900 Subject: [PATCH 056/170] =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=81=8C?= =?UTF-8?q?=E9=80=A3=E7=B6=9A=E3=81=97=E3=81=A6=E5=AE=9F=E8=A1=8C=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=82=8B=E3=81=9F=E3=82=81=E3=83=A1=E3=82=BD=E3=83=83?= =?UTF-8?q?=E3=83=89=E5=90=8D=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 4 ++-- codeception/acceptance/EA10PluginCest.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index b784ca9ff41..ec1a5a62c81 100644 --- a/.travis.yml +++ b/.travis.yml @@ -219,7 +219,7 @@ jobs: - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_dependency_plugin + ./codeception.sh EA10PluginCest:test_dependency_plugin_install - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" @@ -346,7 +346,7 @@ jobs: - | ./codeception.sh --reset mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_dependency_plugin + ./codeception.sh EA10PluginCest:test_dependency_plugin_install # - | # ./codeception.sh --reset # mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index a350f491635..cfead83e8b7 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -352,7 +352,7 @@ public function test_dependency_each_install_plugin(\AcceptanceTester $I) $Emperor->インストール()->有効化(); } - public function test_dependency_plugin(\AcceptanceTester $I) + public function test_dependency_plugin_install(\AcceptanceTester $I) { $Horizon = Horizon_Store::start($I); $Emperor = Emperor_Store::start($I, $Horizon); From eb558a8c7780cd1a153a642dbfb354af0809e9f0 Mon Sep 17 00:00:00 2001 From: Hideki Okajima Date: Fri, 14 Sep 2018 21:41:34 +0900 Subject: [PATCH 057/170] =?UTF-8?q?Revert=20"=E3=83=90=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E3=83=A7=E3=83=B3=E7=95=AA=E5=8F=B74.0.0-RC=E3=81=AB=E6=9B=B4?= =?UTF-8?q?=E6=96=B0"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Common/Constant.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Common/Constant.php b/src/Eccube/Common/Constant.php index 54243499b2e..ad527eda091 100644 --- a/src/Eccube/Common/Constant.php +++ b/src/Eccube/Common/Constant.php @@ -18,7 +18,7 @@ class Constant /** * EC-CUBE VERSION. */ - const VERSION = '4.0.0-RC'; + const VERSION = '4.0-beta'; /** * Enable value. From 3c539535a6c6571400d3aab683e1d2a1f1f9fa90 Mon Sep 17 00:00:00 2001 From: Kiyoshi Yamamura Date: Wed, 19 Sep 2018 10:02:56 +0900 Subject: [PATCH 058/170] =?UTF-8?q?=E3=83=AD=E3=82=B0=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E5=A4=B1=E6=95=97=E6=99=82=E3=81=AEfailure=E7=94=A8=E3=82=AF?= =?UTF-8?q?=E3=83=A9=E3=82=B9=E3=81=AE=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config/eccube/packages/security.yaml | 1 + app/config/eccube/services.yaml | 3 + .../EccubeAuthenticationFailureHandler.php | 67 +++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php diff --git a/app/config/eccube/packages/security.yaml b/app/config/eccube/packages/security.yaml index 21d5a5fd4eb..ae8f2094f03 100644 --- a/app/config/eccube/packages/security.yaml +++ b/app/config/eccube/packages/security.yaml @@ -52,6 +52,7 @@ security: username_parameter: 'login_email' password_parameter: 'login_pass' use_forward: true + failure_handler: eccube.security.failure_handler logout: path: logout target: homepage diff --git a/app/config/eccube/services.yaml b/app/config/eccube/services.yaml index 088488f8066..2b7bbe6416b 100644 --- a/app/config/eccube/services.yaml +++ b/app/config/eccube/services.yaml @@ -90,6 +90,9 @@ services: tags: - { name: 'data_collector', template: '@toolbar/eccube.html.twig', id: 'eccube_core', priority: -512 } + eccube.security.failure_handler: + class: Eccube\Security\Http\Authentication\EccubeAuthenticationFailureHandler + # Autowiring can't guess the constructor arguments that are not type-hinted with # classes (e.g. container parameters) so you must define those arguments explicitly # Eccube\Command\ListUsersCommand: diff --git a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php new file mode 100644 index 00000000000..61023873c04 --- /dev/null +++ b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php @@ -0,0 +1,67 @@ +options['failure_path_parameter'])) { + if (preg_match('/^https?:\\\\/i', $failureUrl)) { + $this->options['failure_path'] = '/'; + } else { + $this->options['failure_path'] = $failureUrl; + } + } + + if (null === $this->options['failure_path']) { + $this->options['failure_path'] = $this->options['login_path']; + } + + if ($this->options['failure_forward']) { + if (null !== $this->logger) { + $this->logger->debug('Authentication failure, forward triggered.', array('failure_path' => $this->options['failure_path'])); + } + + $subRequest = $this->httpUtils->createRequest($request, $this->options['failure_path']); + $subRequest->attributes->set(Security::AUTHENTICATION_ERROR, $exception); + + return $this->httpKernel->handle($subRequest, HttpKernelInterface::SUB_REQUEST); + } + + if (null !== $this->logger) { + $this->logger->debug('Authentication failure, redirect triggered.', array('failure_path' => $this->options['failure_path'])); + } + + $request->getSession()->set(Security::AUTHENTICATION_ERROR, $exception); + + + return $this->httpUtils->createRedirectResponse($request, $this->options['failure_path']); + } + +} From 2051c88fb2bbb9776d8c5419d1add8d2bf8ac851 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Wed, 19 Sep 2018 11:17:36 +0900 Subject: [PATCH 059/170] =?UTF-8?q?=E8=B3=BC=E5=85=A5=E5=87=A6=E7=90=86?= =?UTF-8?q?=E6=99=82=E3=81=AB=E5=9C=A8=E5=BA=AB=E6=95=B0=E3=82=92=E3=83=AD?= =?UTF-8?q?=E3=83=83=E3=82=AF=E3=81=97=E3=81=A6=E3=81=84=E3=81=9F=E3=81=8C?= =?UTF-8?q?=E3=80=81=E3=83=AD=E3=83=83=E3=82=AF=E5=89=8D=E3=81=AE=E6=95=B0?= =?UTF-8?q?=E3=82=92=E4=BD=BF=E7=94=A8=E3=81=97=E3=81=A6=E3=81=84=E3=81=9F?= =?UTF-8?q?=E3=81=AE=E3=81=A7=E3=83=AD=E3=83=83=E3=82=AF=E5=BE=8C=E3=81=AB?= =?UTF-8?q?=E5=86=8D=E8=AA=AD=E8=BE=BC=E3=81=99=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/PurchaseFlow/Processor/StockReduceProcessor.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Eccube/Service/PurchaseFlow/Processor/StockReduceProcessor.php b/src/Eccube/Service/PurchaseFlow/Processor/StockReduceProcessor.php index 4ff348f2a8f..83472f06f84 100644 --- a/src/Eccube/Service/PurchaseFlow/Processor/StockReduceProcessor.php +++ b/src/Eccube/Service/PurchaseFlow/Processor/StockReduceProcessor.php @@ -85,6 +85,7 @@ private function eachProductOrderItems(ItemHolderInterface $itemHolder, callable $productStock = $item->getProductClass()->getProductStock(); // 在庫に対してロックを実行 $this->entityManager->lock($productStock, LockMode::PESSIMISTIC_WRITE); + $this->entityManager->refresh($productStock); $stock = $callback($productStock->getStock(), $item->getQuantity()); $productStock->setStock($stock); $item->getProductClass()->setStock($stock); From 5e4e895b87edff8f340632bebf80332b9337d1d1 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Wed, 19 Sep 2018 14:10:02 +0900 Subject: [PATCH 060/170] =?UTF-8?q?doctrine=E3=82=AD=E3=83=A3=E3=83=83?= =?UTF-8?q?=E3=82=B7=E3=83=A5=E3=82=92=E5=89=8A=E9=99=A4=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/acceptance/EF01TopCest.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/codeception/acceptance/EF01TopCest.php b/codeception/acceptance/EF01TopCest.php index 81f0ab4e4a0..f5c113343f1 100644 --- a/codeception/acceptance/EF01TopCest.php +++ b/codeception/acceptance/EF01TopCest.php @@ -29,6 +29,17 @@ public function _after(\AcceptanceTester $I) { } + private function clearDoctrineCache() + { + // APP_ENV=prodで実行した際は, 直接データを投入しても反映されないため, + // キャッシュを削除して表示できるようにする + $fs = new Symfony\Component\Filesystem\Filesystem(); + $cacheDir = __DIR__.'/../../var/cache/prod/pools'; + if ($fs->exists($cacheDir)) { + $fs->remove($cacheDir); + } + } + public function topページ_初期表示(\AcceptanceTester $I) { $I->wantTo('EF0101-UC01-T01 TOPページ 初期表示'); @@ -53,6 +64,8 @@ public function topページ_初期表示(\AcceptanceTester $I) $News1 = $createNews($minus1, 'タイトル1', 'コメント1'); $News2 = $createNews($minus2, 'タイトル2', 'コメント2'); + $this->clearDoctrineCache(); + $I->reloadPage(); $findNews = Fixtures::get('findNews'); @@ -79,6 +92,8 @@ public function topページ_新着情報(\AcceptanceTester $I) $createNews = Fixtures::get('createNews'); $News = $createNews(new \DateTime(), 'タイトル1', 'コメント1', 'https://www.ec-cube.net'); + $this->clearDoctrineCache(); + $topPage = TopPage::go($I); // 各新着情報の箇所を押下する From ce88d86010a33da584843d47090d8a9fae625638 Mon Sep 17 00:00:00 2001 From: Kiyoshi Yamamura Date: Wed, 19 Sep 2018 14:28:37 +0900 Subject: [PATCH 061/170] =?UTF-8?q?=E3=83=AD=E3=82=B0=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E3=80=81=E5=A4=B1=E6=95=97=E6=99=82=E3=81=AE?= =?UTF-8?q?success=E3=80=81failure=E3=82=AF=E3=83=A9=E3=82=B9=E3=81=AE?= =?UTF-8?q?=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config/eccube/packages/security.yaml | 1 + app/config/eccube/services.yaml | 3 + .../EccubeAuthenticationFailureHandler.php | 5 +- .../EccubeAuthenticationSuccessHandler.php | 62 +++++++++++++++++++ 4 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php diff --git a/app/config/eccube/packages/security.yaml b/app/config/eccube/packages/security.yaml index ae8f2094f03..5345b2a6ddc 100644 --- a/app/config/eccube/packages/security.yaml +++ b/app/config/eccube/packages/security.yaml @@ -52,6 +52,7 @@ security: username_parameter: 'login_email' password_parameter: 'login_pass' use_forward: true + success_handler: eccube.security.success_handler failure_handler: eccube.security.failure_handler logout: path: logout diff --git a/app/config/eccube/services.yaml b/app/config/eccube/services.yaml index 2b7bbe6416b..692ede8ea5a 100644 --- a/app/config/eccube/services.yaml +++ b/app/config/eccube/services.yaml @@ -90,6 +90,9 @@ services: tags: - { name: 'data_collector', template: '@toolbar/eccube.html.twig', id: 'eccube_core', priority: -512 } + eccube.security.success_handler: + class: Eccube\Security\Http\Authentication\EccubeAuthenticationSuccessHandler + eccube.security.failure_handler: class: Eccube\Security\Http\Authentication\EccubeAuthenticationFailureHandler diff --git a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php index 61023873c04..c7d7a677307 100644 --- a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php +++ b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php @@ -24,10 +24,7 @@ class EccubeAuthenticationFailureHandler extends DefaultAuthenticationFailureHan { /** - * @param Request $request - * @param AuthenticationException $exception - * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response - * @throws \Exception + * {@inheritdoc} */ public function onAuthenticationFailure(Request $request, AuthenticationException $exception) { diff --git a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php new file mode 100644 index 00000000000..fd528c3a8f7 --- /dev/null +++ b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php @@ -0,0 +1,62 @@ +options['always_use_default_target_path']) { + return $this->options['default_target_path']; + } + + if ($targetUrl = ParameterBagUtils::getRequestParameterValue($request, $this->options['target_path_parameter'])) { + if (preg_match('/^https?:\\\\/i', $targetUrl)) { + $targetUrl = '/'; + } + + return $targetUrl; + } + + if (null !== $this->providerKey && $targetUrl = $this->getTargetPath($request->getSession(), $this->providerKey)) { + $this->removeTargetPath($request->getSession(), $this->providerKey); + + return $targetUrl; + } + + if ($this->options['use_referer'] && $targetUrl = $request->headers->get('Referer')) { + if (false !== $pos = strpos($targetUrl, '?')) { + $targetUrl = substr($targetUrl, 0, $pos); + } + if ($targetUrl && $targetUrl !== $this->httpUtils->generateUri($request, $this->options['login_path'])) { + return $targetUrl; + } + } + + return $this->options['default_target_path']; + } + +} From ec2895892f527b14f89f45ec09d3e0b4fb6a1333 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Wed, 19 Sep 2018 15:00:05 +0900 Subject: [PATCH 062/170] =?UTF-8?q?Isolation=20level=E3=81=8C=E7=92=B0?= =?UTF-8?q?=E5=A2=83=E4=BE=9D=E5=AD=98=E3=81=A8=E3=81=AA=E3=81=A3=E3=81=A6?= =?UTF-8?q?=E3=81=8A=E3=82=8A=E3=80=81=E8=A4=87=E6=95=B0=E5=90=8C=E6=99=82?= =?UTF-8?q?=E8=B3=BC=E5=85=A5=E6=99=82=E3=81=AE=E5=9C=A8=E5=BA=AB=E3=81=AE?= =?UTF-8?q?=E5=88=B6=E5=BE=A1=E3=81=8C=E3=81=A7=E3=81=8D=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=AA=E3=81=8B=E3=81=A3=E3=81=9F=E3=81=AE=E3=81=A7=E3=80=81?= =?UTF-8?q?=E3=83=88=E3=83=A9=E3=83=B3=E3=82=B6=E3=82=AF=E3=82=B7=E3=83=A7?= =?UTF-8?q?=E3=83=B3=E9=96=8B=E5=A7=8B=E6=99=82=E3=81=ABREAD=5FCOMMITTED?= =?UTF-8?q?=E3=82=92=E6=98=8E=E7=A4=BA=E7=9A=84=E3=81=AB=E6=8C=87=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/EventListener/TransactionListener.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Eccube/EventListener/TransactionListener.php b/src/Eccube/EventListener/TransactionListener.php index 75532cef4d3..db7126cd61c 100644 --- a/src/Eccube/EventListener/TransactionListener.php +++ b/src/Eccube/EventListener/TransactionListener.php @@ -14,6 +14,7 @@ namespace Eccube\EventListener; use Doctrine\Dbal\Connection; +use Doctrine\DBAL\TransactionIsolationLevel; use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -80,6 +81,7 @@ public function onKernelRequest(GetResponseEvent $event) $Connection->connect(); } $Connection->setAutoCommit(false); + $Connection->setTransactionIsolation(TransactionIsolationLevel::READ_COMMITTED); $this->em->beginTransaction(); log_debug('Begin Transaction.'); } From 6721450d7c69fcd886f9dde3536ed425e212f39a Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Wed, 19 Sep 2018 16:37:07 +0900 Subject: [PATCH 063/170] =?UTF-8?q?=E8=A6=8F=E6=A0=BC=E3=81=AE=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E3=82=92=E4=B8=80=E6=B0=97=E3=81=AB=E5=8F=96=E5=BE=97?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/ProductController.php | 8 ++++- src/Eccube/Repository/ProductRepository.php | 34 +++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/Eccube/Controller/ProductController.php b/src/Eccube/Controller/ProductController.php index 4a3dbdcc501..948e5ca4410 100644 --- a/src/Eccube/Controller/ProductController.php +++ b/src/Eccube/Controller/ProductController.php @@ -164,6 +164,12 @@ public function index(Request $request, Paginator $paginator) !empty($searchData['disp_number']) ? $searchData['disp_number']->getId() : $this->productListMaxRepository->findOneBy([], ['sort_no' => 'ASC'])->getId() ); + $ids = []; + foreach ($pagination as $Product) { + $ids[] = $Product->getId(); + } + $ProductsAndClassCategories = $this->productRepository->findProductsWithSortedClassCategories($ids, 'p.id'); + // addCart form $forms = []; foreach ($pagination as $Product) { @@ -173,7 +179,7 @@ public function index(Request $request, Paginator $paginator) AddCartType::class, null, [ - 'product' => $this->productRepository->findWithSortedClassCategories($Product->getId()), + 'product' => $ProductsAndClassCategories[$Product->getId()], 'allow_extra_fields' => true, ] ); diff --git a/src/Eccube/Repository/ProductRepository.php b/src/Eccube/Repository/ProductRepository.php index b79c5046114..ed6513831a1 100644 --- a/src/Eccube/Repository/ProductRepository.php +++ b/src/Eccube/Repository/ProductRepository.php @@ -13,6 +13,7 @@ namespace Eccube\Repository; +use Doctrine\Common\Collections\ArrayCollection; use Eccube\Common\EccubeConfig; use Eccube\Doctrine\Query\Queries; use Eccube\Entity\Product; @@ -85,6 +86,39 @@ public function findWithSortedClassCategories($productId) return $product; } + /** + * Find the Products with sorted ClassCategories. + * + * @param array $ids Product in ids + * @param string $indexBy The index for the from. + * + * @return ArrayCollection + */ + public function findProductsWithSortedClassCategories(array $ids, $indexBy = null) + { + $qb = $this->createQueryBuilder('p', $indexBy); + $qb->addSelect(['pc', 'cc1', 'cc2', 'pi', 'pt', 'tr', 'ps']) + ->innerJoin('p.ProductClasses', 'pc') + // XXX Joined 'TaxRule' and 'ProductStock' to prevent lazy loading + ->leftJoin('pc.TaxRule', 'tr') + ->innerJoin('pc.ProductStock', 'ps') + ->leftJoin('pc.ClassCategory1', 'cc1') + ->leftJoin('pc.ClassCategory2', 'cc2') + ->leftJoin('p.ProductImage', 'pi') + ->leftJoin('p.ProductTag', 'pt') + ->where($qb->expr()->in('p.id', $ids)) + ->andWhere('pc.visible = :visible') + ->setParameter('visible', true) + ->orderBy('cc1.sort_no', 'DESC') + ->addOrderBy('cc2.sort_no', 'DESC'); + + $products = $qb + ->getQuery() + ->getResult(); + + return $products; + } + /** * get query builder. * From a8a88627fcefd98aedd265d7ec6de54dbc1ff58c Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Wed, 19 Sep 2018 18:36:37 +0900 Subject: [PATCH 064/170] =?UTF-8?q?=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=82=A4=E3=83=B3=E3=82=B9=E3=83=88=E3=83=BC=E3=83=AB?= =?UTF-8?q?=E6=99=82=E3=81=AE=E3=82=A8=E3=83=A9=E3=83=BC=E5=87=A6=E7=90=86?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composer.json | 2 +- composer.lock | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index 5d2099071b3..f4cf224d54e 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,7 @@ "doctrine/lexer": "^1.0", "doctrine/migrations": "^1.8", "doctrine/orm": "^2.6", - "ec-cube/plugin-installer": "~0.0.4", + "ec-cube/plugin-installer": "~0.0.6", "egulias/email-validator": "^2.1", "friendsofphp/php-cs-fixer": "^2.10", "guzzlehttp/guzzle": "^6.3", diff --git a/composer.lock b/composer.lock index 17e5f13bad3..910452c7cbc 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "be9b818e31e4a5a8103c8c6adeb5ad3c", + "content-hash": "e867176693ba830891afc916449023df", "packages": [ { "name": "composer/ca-bundle", @@ -1646,16 +1646,16 @@ }, { "name": "ec-cube/plugin-installer", - "version": "0.0.5", + "version": "0.0.6", "source": { "type": "git", "url": "https://github.com/EC-CUBE/eccube-plugin-installer.git", - "reference": "e44bf4412d67424440469493d4c9af108b56027e" + "reference": "3d93bd691c03d22977d971c27160f426ed27b2c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/EC-CUBE/eccube-plugin-installer/zipball/e44bf4412d67424440469493d4c9af108b56027e", - "reference": "e44bf4412d67424440469493d4c9af108b56027e", + "url": "https://api.github.com/repos/EC-CUBE/eccube-plugin-installer/zipball/3d93bd691c03d22977d971c27160f426ed27b2c8", + "reference": "3d93bd691c03d22977d971c27160f426ed27b2c8", "shasum": "" }, "require": { @@ -1675,7 +1675,7 @@ "MIT" ], "description": "EC-CUBE plugin installer.", - "time": "2018-08-31T00:29:56+00:00" + "time": "2018-09-19T09:30:27+00:00" }, { "name": "egulias/email-validator", @@ -5020,6 +5020,7 @@ ], "description": "Enforces Long Term Supported versions of Symfony components", "homepage": "https://symfony.com", + "abandoned": "symfony/flex", "time": "2017-10-19T02:02:36+00:00" }, { From 99f351884455af73dbb620a9a6ebe7846fade9ef Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Wed, 19 Sep 2018 19:12:42 +0900 Subject: [PATCH 065/170] =?UTF-8?q?$ids=20=E3=81=8C=E7=A9=BA=E3=81=AE?= =?UTF-8?q?=E5=A0=B4=E5=90=88=E3=81=AB=E3=82=A8=E3=83=A9=E3=83=BC=E3=81=AB?= =?UTF-8?q?=E3=81=AA=E3=82=8B=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Repository/ProductRepository.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Eccube/Repository/ProductRepository.php b/src/Eccube/Repository/ProductRepository.php index ed6513831a1..a475830dee2 100644 --- a/src/Eccube/Repository/ProductRepository.php +++ b/src/Eccube/Repository/ProductRepository.php @@ -92,10 +92,13 @@ public function findWithSortedClassCategories($productId) * @param array $ids Product in ids * @param string $indexBy The index for the from. * - * @return ArrayCollection + * @return ArrayCollection|array */ public function findProductsWithSortedClassCategories(array $ids, $indexBy = null) { + if (count($ids) < 1) { + return []; + } $qb = $this->createQueryBuilder('p', $indexBy); $qb->addSelect(['pc', 'cc1', 'cc2', 'pi', 'pt', 'tr', 'ps']) ->innerJoin('p.ProductClasses', 'pc') From 4f304b112c68ca4b54366ba453db822c29fa202a Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Thu, 20 Sep 2018 09:29:39 +0900 Subject: [PATCH 066/170] =?UTF-8?q?scrutinizer=E3=81=AE=E6=8C=87=E6=91=98?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/ProductController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Eccube/Controller/ProductController.php b/src/Eccube/Controller/ProductController.php index 948e5ca4410..78d30861c94 100644 --- a/src/Eccube/Controller/ProductController.php +++ b/src/Eccube/Controller/ProductController.php @@ -29,6 +29,7 @@ use Eccube\Service\CartService; use Eccube\Service\PurchaseFlow\PurchaseContext; use Eccube\Service\PurchaseFlow\PurchaseFlow; +use Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination; use Knp\Component\Pager\Paginator; use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; @@ -158,6 +159,7 @@ public function index(Request $request, Paginator $paginator) $this->eventDispatcher->dispatch(EccubeEvents::FRONT_PRODUCT_INDEX_SEARCH, $event); $searchData = $event->getArgument('searchData'); + /** @var SlidingPagination $pagination */ $pagination = $paginator->paginate( $qb, !empty($searchData['pageno']) ? $searchData['pageno'] : 1, From 3df009b090d1c1c24272745b9aa000292ca518ea Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Thu, 20 Sep 2018 11:02:46 +0900 Subject: [PATCH 067/170] =?UTF-8?q?feat=20=E3=83=AA=E3=83=B3=E3=82=AF?= =?UTF-8?q?=E5=9E=8B=E6=B1=BA=E6=B8=88=E3=81=A7rollback=E5=AE=9F=E8=A1=8C?= =?UTF-8?q?=E3=83=AA=E3=82=AF=E3=82=A8=E3=82=B9=E3=83=88=E3=81=A7=E4=B8=8D?= =?UTF-8?q?=E6=AD=A3=E3=81=AAOrder=E6=83=85=E5=A0=B1=E3=81=A7=E5=87=A6?= =?UTF-8?q?=E7=90=86=E3=81=8C=E9=80=B2=E3=81=BE=E3=81=AA=E3=81=84=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=ABpre=5Forder=5Fid=E3=81=A7=E3=83=81=E3=82=A7?= =?UTF-8?q?=E3=83=83=E3=82=AF=E3=81=99=E3=82=8B=E5=87=A6=E7=90=86=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config/eccube/packages/purchaseflow.yaml | 1 + .../Processor/PreOrderIdValidator.php | 98 +++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 src/Eccube/Service/PurchaseFlow/Processor/PreOrderIdValidator.php diff --git a/app/config/eccube/packages/purchaseflow.yaml b/app/config/eccube/packages/purchaseflow.yaml index ffb6b6668e8..a4a621afaed 100644 --- a/app/config/eccube/packages/purchaseflow.yaml +++ b/app/config/eccube/packages/purchaseflow.yaml @@ -101,6 +101,7 @@ services: class: Doctrine\Common\Collections\ArrayCollection arguments: - # + - '@Eccube\Service\PurchaseFlow\Processor\PreOrderIdValidator' - '@Eccube\Service\PurchaseFlow\Processor\PointProcessor' - '@Eccube\Service\PurchaseFlow\Processor\StockReduceProcessor' - '@Eccube\Service\PurchaseFlow\Processor\CustomerPurchaseInfoProcessor' diff --git a/src/Eccube/Service/PurchaseFlow/Processor/PreOrderIdValidator.php b/src/Eccube/Service/PurchaseFlow/Processor/PreOrderIdValidator.php new file mode 100644 index 00000000000..e564ed0ee29 --- /dev/null +++ b/src/Eccube/Service/PurchaseFlow/Processor/PreOrderIdValidator.php @@ -0,0 +1,98 @@ +cartService = $cartService; + } + + /** + * 受注の仮確定処理を行います。 + * + * @param ItemHolderInterface $target + * @param PurchaseContext $context + * + * @throws PurchaseException + */ + public function prepare(ItemHolderInterface $target, PurchaseContext $context) + { + // 処理なし + } + + /** + * 受注の確定処理を行います。 + * + * @param ItemHolderInterface $target + * @param PurchaseContext $context + * + * @throws PurchaseException + */ + public function commit(ItemHolderInterface $target, PurchaseContext $context) + { + // 処理なし + } + + /** + * 仮確定した受注データの取り消し処理を行います。 + * + * 別のorder_idが渡されてきた場合に処理が継続されないようにするため、 + * orderのpre_order_idがsessionのpre_order_idと一致するか確認する + * + * @param ItemHolderInterface $itemHolder + * @param PurchaseContext $context + */ + public function rollback(ItemHolderInterface $itemHolder, PurchaseContext $context) + { + // $itemHolderが受注の場合のみチェック + if (!$itemHolder instanceof Order) { + return; + } + + $Cart = $this->cartService->getCart(); + + // CartがなければBad Requestエラー + if (!$Cart) { + throw new BadRequestHttpException(); + } + + $cartPreOrderId = $this->cartService->getCart()->getPreOrderId(); + $orderPreOrderId = $itemHolder->getPreOrderId(); + + // orderのpre_order_idがsessionのpre_order_idが一致していなければBad Requestエラー + if ($cartPreOrderId != $orderPreOrderId) { + throw new BadRequestHttpException(); + } + } +} From 177c78490a40708e798e90b8308b80817115bb73 Mon Sep 17 00:00:00 2001 From: Tao Sasaki Date: Thu, 20 Sep 2018 03:48:57 +0000 Subject: [PATCH 068/170] =?UTF-8?q?=E3=83=9A=E3=83=BC=E3=82=B8=E3=83=88?= =?UTF-8?q?=E3=83=83=E3=83=97=E3=81=B8=E3=82=92=E8=A8=80=E8=AA=9E=E3=83=95?= =?UTF-8?q?=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=B8=E5=88=87=E3=82=8A=E5=87=BA?= =?UTF-8?q?=E3=81=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../default/assets/scss/component/_2.3.otherbutton.scss | 4 ---- src/Eccube/Resource/locale/messages.ja.yaml | 1 + src/Eccube/Resource/template/default/default_frame.twig | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/html/template/default/assets/scss/component/_2.3.otherbutton.scss b/html/template/default/assets/scss/component/_2.3.otherbutton.scss index 73ea7ee21f4..efb4a7ccab8 100644 --- a/html/template/default/assets/scss/component/_2.3.otherbutton.scss +++ b/html/template/default/assets/scss/component/_2.3.otherbutton.scss @@ -45,8 +45,4 @@ Styleguide 2.3.1 right:30px; bottom: 30px; } - - &:after{ - content: "ページトップへ"; - } } \ No newline at end of file diff --git a/src/Eccube/Resource/locale/messages.ja.yaml b/src/Eccube/Resource/locale/messages.ja.yaml index ac5fed7554a..e9b52488f18 100644 --- a/src/Eccube/Resource/locale/messages.ja.yaml +++ b/src/Eccube/Resource/locale/messages.ja.yaml @@ -74,6 +74,7 @@ common.customer_address_count_is_over: お届け先登録の上限の%eccube_del common.search_keyword: キーワードを入力 common.customer_already_exists: このメールアドレスは利用できません common.member_already_exists: 既に利用されているログインIDです +common.pagetop: ページトップへ #==================================================================================== # フロント画面 diff --git a/src/Eccube/Resource/template/default/default_frame.twig b/src/Eccube/Resource/template/default/default_frame.twig index 0a9f639407b..7409406305f 100644 --- a/src/Eccube/Resource/template/default/default_frame.twig +++ b/src/Eccube/Resource/template/default/default_frame.twig @@ -139,7 +139,7 @@ file that was distributed with this source code. {{ include('block.twig', {'Blocks': Layout.Drawer}) }} {% endif %}
-
+
{{'common.pagetop'|trans}}
From 83d971284a83e07959028c1bc0a2f91eef04e4dd Mon Sep 17 00:00:00 2001 From: Tao Sasaki Date: Thu, 20 Sep 2018 04:22:22 +0000 Subject: [PATCH 069/170] =?UTF-8?q?js=E5=86=85=E3=81=AE=E6=97=A5=E6=9C=AC?= =?UTF-8?q?=E8=AA=9E=E3=83=86=E3=82=AD=E3=82=B9=E3=83=88=E3=82=92=E8=A8=80?= =?UTF-8?q?=E8=AA=9E=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=B8=E5=88=87?= =?UTF-8?q?=E3=82=8A=E5=87=BA=E3=81=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/template/default/assets/js/function.js | 2 +- src/Eccube/Resource/template/default/default_frame.twig | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/html/template/default/assets/js/function.js b/html/template/default/assets/js/function.js index c0239301b62..2948c2aac40 100644 --- a/html/template/default/assets/js/function.js +++ b/html/template/default/assets/js/function.js @@ -197,7 +197,7 @@ $(function() { var $this = $(this); var data = $this.data(); if (data.confirm != false) { - if (!confirm(data.message ? data.message : '削除してもよろしいですか?')) { + if (!confirm(data.message ? data.message : eccube_lang.delete_confirm_message )) { return false; } } diff --git a/src/Eccube/Resource/template/default/default_frame.twig b/src/Eccube/Resource/template/default/default_frame.twig index 0a9f639407b..84a062d841d 100644 --- a/src/Eccube/Resource/template/default/default_frame.twig +++ b/src/Eccube/Resource/template/default/default_frame.twig @@ -142,6 +142,7 @@ file that was distributed with this source code.
+ {% block javascript %}{% endblock %} From ffc169df0677efb570e46802264122f59bdfac88 Mon Sep 17 00:00:00 2001 From: Tao Sasaki Date: Thu, 20 Sep 2018 04:23:09 +0000 Subject: [PATCH 070/170] =?UTF-8?q?js=E7=94=A8=E8=A8=80=E8=AA=9E=E3=83=95?= =?UTF-8?q?=E3=82=A1=E3=82=A4=E3=83=AB=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/template/default/assets/js/lang/ja.js | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 html/template/default/assets/js/lang/ja.js diff --git a/html/template/default/assets/js/lang/ja.js b/html/template/default/assets/js/lang/ja.js new file mode 100644 index 00000000000..8af4ccc7544 --- /dev/null +++ b/html/template/default/assets/js/lang/ja.js @@ -0,0 +1,3 @@ +var eccube_lang = { + "delete_confirm_message":'削除してもよろしいですか?' +} \ No newline at end of file From 491a13c502beaefa7e3fdec45ac72dd211dc8bc0 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Thu, 20 Sep 2018 13:38:16 +0900 Subject: [PATCH 071/170] =?UTF-8?q?=E5=AE=9F=E8=A1=8C=E5=BE=8C=E3=81=AE?= =?UTF-8?q?=E3=83=AC=E3=82=B9=E3=83=9D=E3=83=B3=E3=82=B9=E3=81=AB=E5=AF=BE?= =?UTF-8?q?=E3=81=97=E3=81=A6=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EccubeAuthenticationFailureHandler.php | 38 +++------------- .../EccubeAuthenticationSuccessHandler.php | 43 ++++--------------- 2 files changed, 13 insertions(+), 68 deletions(-) diff --git a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php index c7d7a677307..8662a386139 100644 --- a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php +++ b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php @@ -14,51 +14,23 @@ namespace Eccube\Security\Http\Authentication; use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpKernel\HttpKernelInterface; use Symfony\Component\Security\Core\Exception\AuthenticationException; -use Symfony\Component\Security\Core\Security; use Symfony\Component\Security\Http\Authentication\DefaultAuthenticationFailureHandler; -use Symfony\Component\Security\Http\ParameterBagUtils; class EccubeAuthenticationFailureHandler extends DefaultAuthenticationFailureHandler { - /** * {@inheritdoc} */ public function onAuthenticationFailure(Request $request, AuthenticationException $exception) { - if ($failureUrl = ParameterBagUtils::getRequestParameterValue($request, $this->options['failure_path_parameter'])) { - if (preg_match('/^https?:\\\\/i', $failureUrl)) { - $this->options['failure_path'] = '/'; - } else { - $this->options['failure_path'] = $failureUrl; - } - } - - if (null === $this->options['failure_path']) { - $this->options['failure_path'] = $this->options['login_path']; + $response = parent::onAuthenticationFailure($request, $exception); + $location = $response->headers->get('location'); + if (null !== $location && preg_match('/^https?:\\\\/i', $location)) { + $response->headers->set('location', $request->getUriForPath('/')); } - if ($this->options['failure_forward']) { - if (null !== $this->logger) { - $this->logger->debug('Authentication failure, forward triggered.', array('failure_path' => $this->options['failure_path'])); - } - - $subRequest = $this->httpUtils->createRequest($request, $this->options['failure_path']); - $subRequest->attributes->set(Security::AUTHENTICATION_ERROR, $exception); - - return $this->httpKernel->handle($subRequest, HttpKernelInterface::SUB_REQUEST); - } - - if (null !== $this->logger) { - $this->logger->debug('Authentication failure, redirect triggered.', array('failure_path' => $this->options['failure_path'])); - } - - $request->getSession()->set(Security::AUTHENTICATION_ERROR, $exception); - - - return $this->httpUtils->createRedirectResponse($request, $this->options['failure_path']); + return $response; } } diff --git a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php index fd528c3a8f7..76c5c68dd9a 100644 --- a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php +++ b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php @@ -14,49 +14,22 @@ namespace Eccube\Security\Http\Authentication; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Http\Authentication\DefaultAuthenticationSuccessHandler; -use Symfony\Component\Security\Http\ParameterBagUtils; -use Symfony\Component\Security\Http\Util\TargetPathTrait; class EccubeAuthenticationSuccessHandler extends DefaultAuthenticationSuccessHandler { - use TargetPathTrait; - /** - * Builds the target URL according to the defined options. - * - * @return string + * {@inheritdoc} */ - protected function determineTargetUrl(Request $request) + public function onAuthenticationSuccess(Request $request, TokenInterface $token) { - if ($this->options['always_use_default_target_path']) { - return $this->options['default_target_path']; - } - - if ($targetUrl = ParameterBagUtils::getRequestParameterValue($request, $this->options['target_path_parameter'])) { - if (preg_match('/^https?:\\\\/i', $targetUrl)) { - $targetUrl = '/'; - } - - return $targetUrl; - } - - if (null !== $this->providerKey && $targetUrl = $this->getTargetPath($request->getSession(), $this->providerKey)) { - $this->removeTargetPath($request->getSession(), $this->providerKey); - - return $targetUrl; + $response = parent::onAuthenticationSuccess($request, $token); + $location = $response->headers->get('location'); + if (null !== $location && preg_match('/^https?:\\\\/i', $location)) { + $response->headers->set('location', $request->getUriForPath('/')); } - if ($this->options['use_referer'] && $targetUrl = $request->headers->get('Referer')) { - if (false !== $pos = strpos($targetUrl, '?')) { - $targetUrl = substr($targetUrl, 0, $pos); - } - if ($targetUrl && $targetUrl !== $this->httpUtils->generateUri($request, $this->options['login_path'])) { - return $targetUrl; - } - } - - return $this->options['default_target_path']; + return $response; } - } From 75b0d61d1b0ead889ae8b6e0c2dd784ed9b8dae1 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Thu, 20 Sep 2018 13:50:16 +0900 Subject: [PATCH 072/170] =?UTF-8?q?fix=20scss=E3=82=92build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/template/default/assets/css/maps/style.css.map | 2 +- html/template/default/assets/css/style.css | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/html/template/default/assets/css/maps/style.css.map b/html/template/default/assets/css/maps/style.css.map index 73bee62b3f9..f21223fd7a5 100644 --- a/html/template/default/assets/css/maps/style.css.map +++ b/html/template/default/assets/css/maps/style.css.map @@ -1 +1 @@ -{"version":3,"sources":["style.css","node_modules/normalize.css/normalize.css","style.scss","mixins/_media.scss","component/_1.1.heading.scss","mixins/_variables.scss","component/_1.2.typo.scss","component/_1.3.list.scss","component/_2.1.buttonsize.scss","mixins/_btn.scss","../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_buttons.scss","../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_variables.scss","../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_tab-focus.scss","../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss","../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_opacity.scss","","component/_2.2.closebutton.scss","component/_2.3.otherbutton.scss","component/_3.1.inputText.scss","mixins/_forms.scss","../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_forms.scss","mixins/_projects.scss","component/_3.2.inputMisc.scss","component/_3.3.form.scss","component/_4.1.icon.scss","component/_5.1.grid.scss","component/_5.2.layout.scss","component/_6.1.login.scss","component/_7.1.itembanner.scss","component/_7.2.search.scss","mixins/_animation.scss","component/_7.3.cart.scss","mixins/_clearfix.scss","component/_8.1.info.scss","component/_9.1.mypage.scss","project/_11.1.role.scss","project/_11.2.header.scss","project/_11.3.footer.scss","project/_12.1.slider.scss","project/_12.2.eyecatch.scss","project/_12.3.button.scss","project/_12.4.heading.scss","project/_12.5.topics.scss","project/_12.6.newItem.scss","project/_12.7.category.scss","project/_12.8.news.scss","project/_13.1.searchnav.scss","project/_13.2.shelf.scss","project/_13.3.pager.scss","project/_13.4.cartModal.scss","project/_14.1.product.scss","project/_15.1.cart.scss","project/_15.2.order.scss","project/_16.1.history.scss","project/_16.2.historyDetail.scss","project/_17.1.address.scss","project/_18.1.password.scss","project/_19.1.register.scss","project/_19.2.contact.scss","project/_19.3.customer.scss","project/_20.1.404.scss","project/_21.1.withdraw.scss","project/_22.1.editComplete.scss"],"names":[],"mappings":"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,aAAY,EACb;;AAGD;;;;;;;;;;;;;;;EP9BA,2CAA0C;EAC1C,qBAAoB,EOiCnB;;AAqDD;EAhDA,eAAc;EACd,YAAW;EACX,aRsKyF;EQrKzF,kBR+C8B;EQ9C9B,gBRE4B;EQD5B,qBRamC;EQZnC,eRtCiD;EQuCjD,uBRwImC;EQvInC,uBAAsB;EACtB,uBR6ImC;EQ5InC,mBRsD6B;EQrD7B,yBAAwB;ENahB,iBMZgB;ENkIhB,yEMjIsE;EAqC5E,mBAAkB,EACnB;ECxCD;IACE,sBTsJoC;ISrJpC,WAAU;IPWJ,mFOduD,EAK9D;EP0CD;IACE,YF2GiC;IE1GjC,WAAU;IExGd,mEAAA,EFyGG;EACD;IAA0B,YFwGS,EExGQ;EKxE7C;ILyEkC,YFuGG,EEvGc;EMxCjD;IACE,UAAS;IACT,8BAA6B,EAC9B;EDpCH;;;;;;;;IC8CI,0BRjE+C;IQkE/C,WAAU;IJjFd,mEAAA,EIkFG;EAED;;;;;;;;IAEE,oBRiJwC,EQhJzC;;ADrDH;ECWE,eAAc;EACd,YAAW;EACX,aRsKyF;EQrKzF,kBR+C8B;EQ9C9B,gBRE4B;EQD5B,qBRamC;EQZnC,eRtCiD;EQuCjD,uBRwImC;EQvInC,uBAAsB;EACtB,uBR6ImC;EQ5InC,mBRsD6B;EQrD7B,yBAAwB;ENahB,iBMZgB;ENkIhB,yEMjIsE;EAyC5E,mBAAkB,EACnB;EC5CD;IACE,sBTsJoC;ISrJpC,WAAU;IPWJ,mFOduD,EAK9D;EP0CD;IACE,YF2GiC;IE1GjC,WAAU;IExGd,mEAAA,EFyGG;EACD;IAA0B,YFwGS,EExGQ;EKxE7C;ILyEkC,YFuGG,EEvGc;EMxCjD;IACE,UAAS;IACT,8BAA6B,EAC9B;EDpCH;;;;;;;;IC8CI,0BRjE+C;IQkE/C,WAAU;IJjFd,mEAAA,EIkFG;EDhDH;;;;;;;;ICoDI,oBRiJwC,EQhJzC;;AAcD;EAxDA,eAAc;EACd,YAAW;EACX,aRsKyF;EQrKzF,kBR+C8B;EQ9C9B,gBRE4B;EQD5B,qBRamC;EQZnC,eRtCiD;EQuCjD,uBRwImC;EQvInC,uBAAsB;EACtB,uBR6ImC;EQ5InC,mBRsD6B;EQrD7B,yBAAwB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","file":"../style.css","sourcesContent":["@charset \"UTF-8\";\n@import url(/node_modules/normalize.css/normalize.css);\nbody {\n font-family: Roboto, \"游ゴシック\", YuGothic, \"Yu Gothic\", \"ヒラギノ角ゴ ProN W3\", \"Hiragino Kaku Gothic ProN\", Arial, \"メイリオ\", Meiryo, sans-serif;\n color: #525263;\n transition: z-index 0ms 5.28455ms;\n background: #f6f6f6;\n margin: 0; }\n\na {\n text-decoration: none; }\n\npre {\n background-color: transparent;\n border: none;\n padding: 16px 0; }\n\np {\n -webkit-margin-before: 0;\n -webkit-margin-after: 0; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n見出し\n\nページ内で見出しとして機能する要素のスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 1.1\n*/\n/*\n見出し\n\n商品紹介等で利用される、一般的な見出しのスタイルです。\n\nex [商品詳細ページ 商品見出し部分](http://demo3.ec-cube.net/products/detail/27)\n\nMarkup:\n.ec-headingTitle マトリョーシカ\n\nStyleguide 1.1.1\n*/\n.ec-headingTitle {\n margin: 0 0 8px;\n font-size: 32px;\n font-weight: normal;\n color: #525263; }\n\n/*\nページヘッダ\n\n各種ページで用いられるページヘッダのデザインです。\n\nex [利用規約ページ ページヘッダ部](http://demo3.ec-cube.net/help/agreement)\n\nMarkup:\n.ec-pageHeader\n h1 利用規約\n\nStyleguide 1.1.2\n*/\n.ec-pageHeader h1 {\n margin: 0 0 8px;\n border-bottom: 1px dotted #ccc;\n border-top: 1px solid #ccc;\n padding: 8px 0 12px;\n font-size: 16px;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-pageHeader h1 {\n border-top: none;\n border-bottom: 1px solid #ccc;\n margin: 10px 16px 48px;\n padding: 8px;\n font-size: 32px;\n font-weight: bold; } }\n\n/*\nサブ見出し\n\n利用規約など、文字主体のページで用いられるサブ見出しです。\n\nex [利用規約ページ サブ見出し部分](http://demo3.ec-cube.net/help/agreement)\n\nMarkup:\n.ec-heading 第1条 (会員)\n\nStyleguide 1.1.3\n*/\n.ec-heading {\n margin: 24px 0; }\n\n/*\nサブ見出し(太字)\n\n文字主体のページで用いられるサブ見出しの太字のスタイルです。\n\nex [プライバシーポリシー サブ見出し部分](http://demo3.ec-cube.net/help/privacy)\n\nMarkup:\n.ec-heading-bold 個人情報の定義\n\nStyleguide 1.1.4\n*/\n.ec-heading-bold {\n margin: 16px 0;\n font-size: 16px;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-heading-bold {\n font-size: 18px; } }\n\n/*\n背景付き見出し\n\nマイページ注文履歴等で用いられる背景付きの見出しです。\n\nex [ご注文履歴詳細 背景付き見出し部分](http://demo3.ec-cube.net/mypage/history/1063)\n\nMarkup:\n.ec-rectHeading\n h2 配送情報\n.ec-rectHeading\n h2 お支払について\n\nStyleguide 1.1.5\n*/\n.ec-rectHeading h1, .ec-rectHeading h2, .ec-rectHeading h3,\n.ec-rectHeading h4, .ec-rectHeading h5, .ec-rectHeading h6 {\n background: #F3F3F3;\n padding: 8px 12px;\n font-size: 20px;\n font-weight: bold; }\n\n/*\nメッセージ見出し\n\nユーザが行った操作に対する、完了報告やエラー表示のページで使用される見出しのスタイルです。\n\nex [注文完了 ログイン後、カートに商品を入れ注文完了まで行う](http://demo3.ec-cube.net/shopping/)\n\nMarkup:\n.ec-reportHeading\n h2 ご注文ありがとうございました\n\nStyleguide 1.1.6\n*/\n.ec-reportHeading {\n width: 100%;\n border-top: 1px dotted #ccc;\n margin: 20px 0 30px;\n padding: 0;\n text-align: center;\n font-size: 24px;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-reportHeading {\n border-top: 0;\n font-size: 32px; } }\n .ec-reportHeading h1, .ec-reportHeading h2, .ec-reportHeading h3,\n .ec-reportHeading h4, .ec-reportHeading h5, .ec-reportHeading h6, .ec-reportHeading p {\n font-weight: bold;\n font-size: 24px; }\n @media only screen and (min-width: 768px) {\n .ec-reportHeading h1, .ec-reportHeading h2, .ec-reportHeading h3,\n .ec-reportHeading h4, .ec-reportHeading h5, .ec-reportHeading h6, .ec-reportHeading p {\n font-size: 32px; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n文字装飾\n\n文字装飾をするためのスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 1.2\n*/\n/*\nテキストリンク\n\nテキストリンクのスタイルです。\n\nMarkup:\na(href=\"#\").ec-link さくらのクラウド\n\nStyleguide 1.2.1\n*/\n.ec-link {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer; }\n .ec-link:hover {\n color: #33A8D0;\n text-decoration: none; }\n\n/*\nテキスト(太字)\n\nテキストを太くするためのスタイルです。\n\nMarkup:\np.ec-font-bold この季節にぴったりな商品をご用意しました\n\nStyleguide 1.2.2\n*/\n.ec-font-bold {\n font-weight: bold; }\n\n/*\nテキスト(グレー)\n\nテキストをグレーにするためのスタイルです。\n\nMarkup:\np.ec-color-grey 青色が美しい職人が仕上げた吹きガラス\n\nStyleguide 1.2.3\n*/\n.ec-color-grey {\n color: #9a947e; }\n\n/*\nテキスト(赤)\n\nテキストを赤にするためのスタイルです。\n\nMarkup:\np.ec-color-red ¥ 2,728 税込\np.ec-color-accent ¥ 2,728 税込\n\nStyleguide 1.2.4\n*/\n.ec-color-red {\n color: #DE5D50; }\n\n.ec-color-accent {\n color: #DE5D50; }\n\n/*\nフォントサイズ\n\nフォントサイズを指定するためのスタイルです。\n\nMarkup:\n.ec-font-size-1 さわやかな日差しが過ごしやすい季節\n.ec-font-size-2 さわやかな日差しが過ごしやすい季節\n.ec-font-size-3 さわやかな日差しが過ごしやすい季節\n.ec-font-size-4 さわやかな日差しが過ごしやすい季節\n.ec-font-size-5 さわやかな日差しが過ごしやすい季節\n.ec-font-size-6 さわやかな日差しが過ごしやすい季節\n\n\nStyleguide 1.2.5\n*/\n.ec-font-size-1 {\n font-size: 12px; }\n\n.ec-font-size-2 {\n font-size: 14px; }\n\n.ec-font-size-3 {\n font-size: 16px; }\n\n.ec-font-size-4 {\n font-size: 20px; }\n\n.ec-font-size-5 {\n font-size: 32px; }\n\n.ec-font-size-6 {\n font-size: 40px; }\n\n/*\nテキスト水平位置\n\nテキストをセンタリングするためのスタイルです。\n\nMarkup:\np.ec-text-ac さわやかな日差しが過ごしやすい季節\n\nStyleguide 1.2.6\n*/\n.ec-text-ac {\n text-align: center; }\n\n/*\n価格テキスト\n\n価格を表示するテキストです。\n\n価格文字にスペースを取るほか、税込み等の表示を小さくする効果もあります。\n\nspanを用いたインライン要素として利用します。\n\nMarkup:\ndiv(style=\"color:#DE5D50;font-size:28px\")\n span.ec-price\n span.ec-price__unit ¥\n span.ec-price__price 1,280\n span.ec-price__tax 税込\n\nStyleguide 1.2.7\n*/\n.ec-price .ec-price__unit {\n font-size: 18px;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-price .ec-price__unit {\n font-size: 1em; } }\n\n.ec-price .ec-price__price {\n display: inline-block;\n padding: 0 .3em;\n font-size: 18px;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-price .ec-price__price {\n font-size: 1em; } }\n\n.ec-price .ec-price__tax {\n font-size: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-price .ec-price__tax {\n font-size: 0.57em; } }\n\n/*\nテキストの位置\n\nテキストや、入れ子にしたインライン要素を\n「左揃え」「中央揃え」「右揃え」に設定することができます。\n\nMarkup:\nh3 左揃え\np.text-left\n | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Incidunt praesentium repellat sapiente suscipit, unde veniam! Doloribus error, expedita id impedit iusto qui sint totam? Aspernatur error facere possimus quam quos?\nbr\nh3 中央揃え\np.text-center\n | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Incidunt praesentium repellat sapiente suscipit, unde veniam! Doloribus error, expedita id impedit iusto qui sint totam? Aspernatur error facere possimus quam quos?\nbr\nh3 右揃え\np.text-right\n | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Incidunt praesentium repellat sapiente suscipit, unde veniam! Doloribus error, expedita id impedit iusto qui sint totam? Aspernatur error facere possimus quam quos?\n\nStyleguide 1.2.8\n*/\n.text-left {\n text-align: left; }\n\n.text-center {\n text-align: center; }\n\n.text-right {\n text-align: right; }\n\n/*\nメッセージテキスト\n\nユーザが行った操作に対する、完了報告やエラー表示のページで使用されるテキストのスタイルです。\n\nex [注文完了 (ログイン後、カートに商品を入れ注文完了まで行う)](http://demo3.ec-cube.net/shopping/)\n\nMarkup:\n.ec-reportHeading\n h2 ご注文ありがとうございました\np.ec-reportDescription\n | ただいま、ご注文の確認メールをお送りさせていただきました。\n br\n | 万一、ご確認メールが届かない場合は、トラブルの可能性もありますので大変お手数ではございますがもう一度お問い合わせいただくか、お電話にてお問い合わせくださいませ。\n br\n | 今後ともご愛顧賜りますようよろしくお願い申し上げます。\n\n\nStyleguide 1.2.9\n*/\n.ec-reportDescription {\n margin-bottom: 32px;\n text-align: center;\n font-size: 16px;\n line-height: 1.4; }\n\n/*\nテキスト下部のスペース\n\nテキストの下に余白を追加することができます。 .ec-para-normalで16pxの余白をつけることができます。\n\nMarkup:\np.ec-para-normal 万一、ご確認メールが届かない場合は、トラブルの可能性もありますので大変お手数ではございますがもう一度お問い合わせいただくか、お電話にてお問い合わせくださいませ。\np.ec-para-normal 万一、ご確認メールが届かない場合は、トラブルの可能性もありますので大変お手数ではございますがもう一度お問い合わせいただくか、お電話にてお問い合わせくださいませ。\n\nStyleguide 1.2.10\n*/\n.ec-para-normal {\n margin-bottom: 16px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nリスト\n\nシンプルなリストを構成するためのスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 1.3\n*/\n/*\n水平定義リスト\n\nシンプルな定義リストのスタイルを定義します。\n\ndl要素を用いてコーディングします。\n\nex [当サイトについて 水平定義リスト部分](http://demo3.ec-cube.net/help/about)\n\nMarkup:\ndl.ec-definitions\n dt 店名\n dd EC-CUBE3 DEMO SHOP\ndl.ec-definitions\n dt 会社名\n dd EC-CUBE3\ndl.ec-definitions--soft\n dt 所在地\n dd 〒 550-0001\n\nStyleguide 1.3.1\n*/\n.ec-definitions, .ec-definitions--soft {\n margin: 5px 0;\n display: block; }\n .ec-definitions dt, .ec-definitions--soft dt, .ec-definitions dd, .ec-definitions--soft dd {\n display: inline-block;\n margin: 0; }\n .ec-definitions dt, .ec-definitions--soft dt {\n font-weight: bold; }\n\n.ec-definitions--soft dt {\n font-weight: normal; }\n\n/*\n下線つき定義リスト\n\n線が添えられた定義リストのスタイルを定義します。\n\ndl要素を用いてコーディングします。\n\nex [当サイトについて 下線つき定義リスト](http://demo3.ec-cube.net/help/about)\n\nMarkup:\n.ec-borderedDefs\n dl\n dt 店名\n dd EC-CUBE3 DEMO SHOP\n dl\n dt 会社名\n dd EC-CUBE3\n dl\n dt 所在地\n dd 〒550 - 0001\n\nStyleguide 1.3.2\n*/\n.ec-borderedDefs {\n width: 100%;\n border-top: 1px dotted #ccc;\n margin-bottom: 16px; }\n .ec-borderedDefs dl {\n display: flex;\n border-bottom: 1px dotted #ccc;\n margin: 0;\n padding: 10px 0 0;\n flex-wrap: wrap; }\n @media only screen and (min-width: 768px) {\n .ec-borderedDefs dl {\n flex-wrap: nowrap;\n padding: 15px 0 4px; } }\n .ec-borderedDefs dt, .ec-borderedDefs dd {\n padding: 0; }\n .ec-borderedDefs dt {\n font-weight: normal;\n width: 100%;\n padding-top: 0; }\n @media only screen and (min-width: 768px) {\n .ec-borderedDefs dt {\n padding-top: 14px;\n width: 30%; } }\n .ec-borderedDefs dd {\n padding: 0;\n width: 100%;\n line-height: 2.5; }\n @media only screen and (min-width: 768px) {\n .ec-borderedDefs dd {\n width: 70%;\n line-height: 3; } }\n .ec-borderedDefs p {\n line-height: 1.4; }\n\n.ec-list-chilled {\n display: table-row;\n border: 0 none;\n padding: 8px 0; }\n .ec-list-chilled dt, .ec-list-chilled dd {\n display: table-cell;\n border-bottom: 1px dotted #ccc;\n padding: 0; }\n @media only screen and (min-width: 768px) {\n .ec-list-chilled dt, .ec-list-chilled dd {\n padding: 16px 0; } }\n .ec-list-chilled dt {\n width: 30%; }\n .ec-list-chilled dd {\n padding: 0; }\n @media only screen and (min-width: 768px) {\n .ec-list-chilled dd {\n padding: 16px; } }\n\n/*\nボーダーリスト\n\n線が添えられたリストを表示します。\n\nex [当サイトについて ボーダーリスト](http://demo3.ec-cube.net/help/about)\n\nMarkup:\nul.ec-borderedList\n li: p lorem\n li: p lorem\n li: p lorem\n\n\nStyleguide 1.3.3\n*/\n.ec-borderedList {\n width: 100%;\n border-top: 0;\n list-style: none;\n padding: 0; }\n @media only screen and (min-width: 768px) {\n .ec-borderedList {\n border-top: 1px dotted #ccc; } }\n .ec-borderedList li {\n border-bottom: 1px dotted #ccc; }\n\n.ec-list-chilled {\n display: table-row;\n border: 0 none;\n padding: 8px 0; }\n .ec-list-chilled dt, .ec-list-chilled dd {\n display: table-cell;\n border-bottom: 1px dotted #ccc;\n padding: 16px 0; }\n .ec-list-chilled dt {\n width: 30%; }\n .ec-list-chilled dd {\n padding: 16px; }\n\n/*\nボタンサイズ\n\nボタンサイズを変更するスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 2.1\n*/\n/*\n通常ボタン\n\nインラインの要素としてボタンを定義出来ます。\n\nex [トップページ ボタン部分](http://demo3.ec-cube.net/)\n\nMarkup:\n.ec-inlineBtn 住所検索\n.ec-inlineBtn--primary もっと見る\n.ec-inlineBtn--action カートに入れる\n.ec-inlineBtn--cancel キャンセル\n\nStyleguide 2.1.1\n*/\n.ec-inlineBtn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #525263;\n background-color: #F5F7F8;\n border-color: #ccc; }\n .ec-inlineBtn:focus, .ec-inlineBtn.focus, .ec-inlineBtn:active:focus, .ec-inlineBtn:active.focus, .ec-inlineBtn.active:focus, .ec-inlineBtn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-inlineBtn:hover, .ec-inlineBtn:focus, .ec-inlineBtn.focus {\n color: #525263;\n text-decoration: none; }\n .ec-inlineBtn:active, .ec-inlineBtn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-inlineBtn.disabled, .ec-inlineBtn[disabled],\n fieldset[disabled] .ec-inlineBtn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-inlineBtn:focus, .ec-inlineBtn.focus {\n color: #525263;\n background-color: #d7dfe3;\n border-color: #8c8c8c; }\n .ec-inlineBtn:hover {\n color: #525263;\n background-color: #d7dfe3;\n border-color: #adadad; }\n .ec-inlineBtn:active, .ec-inlineBtn.active,\n .open > .ec-inlineBtn.dropdown-toggle {\n color: #525263;\n background-color: #d7dfe3;\n border-color: #adadad; }\n .ec-inlineBtn:active:hover, .ec-inlineBtn:active:focus, .ec-inlineBtn:active.focus, .ec-inlineBtn.active:hover, .ec-inlineBtn.active:focus, .ec-inlineBtn.active.focus,\n .open > .ec-inlineBtn.dropdown-toggle:hover,\n .open > .ec-inlineBtn.dropdown-toggle:focus,\n .open > .ec-inlineBtn.dropdown-toggle.focus {\n color: #525263;\n background-color: #c2ced4;\n border-color: #8c8c8c; }\n .ec-inlineBtn:active, .ec-inlineBtn.active,\n .open > .ec-inlineBtn.dropdown-toggle {\n background-image: none; }\n .ec-inlineBtn.disabled:hover, .ec-inlineBtn.disabled:focus, .ec-inlineBtn.disabled.focus, .ec-inlineBtn[disabled]:hover, .ec-inlineBtn[disabled]:focus, .ec-inlineBtn[disabled].focus,\n fieldset[disabled] .ec-inlineBtn:hover,\n fieldset[disabled] .ec-inlineBtn:focus,\n fieldset[disabled] .ec-inlineBtn.focus {\n background-color: #F5F7F8;\n border-color: #ccc; }\n .ec-inlineBtn .badge {\n color: #F5F7F8;\n background-color: #525263; }\n .ec-inlineBtn .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n.ec-inlineBtn--primary {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #fff;\n background-color: #5CB1B1;\n border-color: #5CB1B1; }\n .ec-inlineBtn--primary:focus, .ec-inlineBtn--primary.focus, .ec-inlineBtn--primary:active:focus, .ec-inlineBtn--primary:active.focus, .ec-inlineBtn--primary.active:focus, .ec-inlineBtn--primary.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-inlineBtn--primary:hover, .ec-inlineBtn--primary:focus, .ec-inlineBtn--primary.focus {\n color: #525263;\n text-decoration: none; }\n .ec-inlineBtn--primary:active, .ec-inlineBtn--primary.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-inlineBtn--primary.disabled, .ec-inlineBtn--primary[disabled],\n fieldset[disabled] .ec-inlineBtn--primary {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-inlineBtn--primary:focus, .ec-inlineBtn--primary.focus {\n color: #fff;\n background-color: #479393;\n border-color: #2e6060; }\n .ec-inlineBtn--primary:hover {\n color: #fff;\n background-color: #479393;\n border-color: #438d8d; }\n .ec-inlineBtn--primary:active, .ec-inlineBtn--primary.active,\n .open > .ec-inlineBtn--primary.dropdown-toggle {\n color: #fff;\n background-color: #479393;\n border-color: #438d8d; }\n .ec-inlineBtn--primary:active:hover, .ec-inlineBtn--primary:active:focus, .ec-inlineBtn--primary:active.focus, .ec-inlineBtn--primary.active:hover, .ec-inlineBtn--primary.active:focus, .ec-inlineBtn--primary.active.focus,\n .open > .ec-inlineBtn--primary.dropdown-toggle:hover,\n .open > .ec-inlineBtn--primary.dropdown-toggle:focus,\n .open > .ec-inlineBtn--primary.dropdown-toggle.focus {\n color: #fff;\n background-color: #3b7b7b;\n border-color: #2e6060; }\n .ec-inlineBtn--primary:active, .ec-inlineBtn--primary.active,\n .open > .ec-inlineBtn--primary.dropdown-toggle {\n background-image: none; }\n .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,\n fieldset[disabled] .ec-inlineBtn--primary:hover,\n fieldset[disabled] .ec-inlineBtn--primary:focus,\n fieldset[disabled] .ec-inlineBtn--primary.focus {\n background-color: #5CB1B1;\n border-color: #5CB1B1; }\n .ec-inlineBtn--primary .badge {\n color: #5CB1B1;\n background-color: #fff; }\n .ec-inlineBtn--primary .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n.ec-inlineBtn--action {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #fff;\n background-color: #DE5D50;\n border-color: #DE5D50; }\n .ec-inlineBtn--action:focus, .ec-inlineBtn--action.focus, .ec-inlineBtn--action:active:focus, .ec-inlineBtn--action:active.focus, .ec-inlineBtn--action.active:focus, .ec-inlineBtn--action.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-inlineBtn--action:hover, .ec-inlineBtn--action:focus, .ec-inlineBtn--action.focus {\n color: #525263;\n text-decoration: none; }\n .ec-inlineBtn--action:active, .ec-inlineBtn--action.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-inlineBtn--action.disabled, .ec-inlineBtn--action[disabled],\n fieldset[disabled] .ec-inlineBtn--action {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-inlineBtn--action:focus, .ec-inlineBtn--action.focus {\n color: #fff;\n background-color: #d33828;\n border-color: #93271c; }\n .ec-inlineBtn--action:hover {\n color: #fff;\n background-color: #d33828;\n border-color: #cb3526; }\n .ec-inlineBtn--action:active, .ec-inlineBtn--action.active,\n .open > .ec-inlineBtn--action.dropdown-toggle {\n color: #fff;\n background-color: #d33828;\n border-color: #cb3526; }\n .ec-inlineBtn--action:active:hover, .ec-inlineBtn--action:active:focus, .ec-inlineBtn--action:active.focus, .ec-inlineBtn--action.active:hover, .ec-inlineBtn--action.active:focus, .ec-inlineBtn--action.active.focus,\n .open > .ec-inlineBtn--action.dropdown-toggle:hover,\n .open > .ec-inlineBtn--action.dropdown-toggle:focus,\n .open > .ec-inlineBtn--action.dropdown-toggle.focus {\n color: #fff;\n background-color: #b53022;\n border-color: #93271c; }\n .ec-inlineBtn--action:active, .ec-inlineBtn--action.active,\n .open > .ec-inlineBtn--action.dropdown-toggle {\n background-image: none; }\n .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,\n fieldset[disabled] .ec-inlineBtn--action:hover,\n fieldset[disabled] .ec-inlineBtn--action:focus,\n fieldset[disabled] .ec-inlineBtn--action.focus {\n background-color: #DE5D50;\n border-color: #DE5D50; }\n .ec-inlineBtn--action .badge {\n color: #DE5D50;\n background-color: #fff; }\n .ec-inlineBtn--action .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n.ec-inlineBtn--cancel {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #fff;\n background-color: #525263;\n border-color: #525263; }\n .ec-inlineBtn--cancel:focus, .ec-inlineBtn--cancel.focus, .ec-inlineBtn--cancel:active:focus, .ec-inlineBtn--cancel:active.focus, .ec-inlineBtn--cancel.active:focus, .ec-inlineBtn--cancel.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-inlineBtn--cancel:hover, .ec-inlineBtn--cancel:focus, .ec-inlineBtn--cancel.focus {\n color: #525263;\n text-decoration: none; }\n .ec-inlineBtn--cancel:active, .ec-inlineBtn--cancel.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-inlineBtn--cancel.disabled, .ec-inlineBtn--cancel[disabled],\n fieldset[disabled] .ec-inlineBtn--cancel {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-inlineBtn--cancel:focus, .ec-inlineBtn--cancel.focus {\n color: #fff;\n background-color: #3b3b47;\n border-color: #18181d; }\n .ec-inlineBtn--cancel:hover {\n color: #fff;\n background-color: #3b3b47;\n border-color: #363642; }\n .ec-inlineBtn--cancel:active, .ec-inlineBtn--cancel.active,\n .open > .ec-inlineBtn--cancel.dropdown-toggle {\n color: #fff;\n background-color: #3b3b47;\n border-color: #363642; }\n .ec-inlineBtn--cancel:active:hover, .ec-inlineBtn--cancel:active:focus, .ec-inlineBtn--cancel:active.focus, .ec-inlineBtn--cancel.active:hover, .ec-inlineBtn--cancel.active:focus, .ec-inlineBtn--cancel.active.focus,\n .open > .ec-inlineBtn--cancel.dropdown-toggle:hover,\n .open > .ec-inlineBtn--cancel.dropdown-toggle:focus,\n .open > .ec-inlineBtn--cancel.dropdown-toggle.focus {\n color: #fff;\n background-color: #2b2b34;\n border-color: #18181d; }\n .ec-inlineBtn--cancel:active, .ec-inlineBtn--cancel.active,\n .open > .ec-inlineBtn--cancel.dropdown-toggle {\n background-image: none; }\n .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,\n fieldset[disabled] .ec-inlineBtn--cancel:hover,\n fieldset[disabled] .ec-inlineBtn--cancel:focus,\n fieldset[disabled] .ec-inlineBtn--cancel.focus {\n background-color: #525263;\n border-color: #525263; }\n .ec-inlineBtn--cancel .badge {\n color: #525263;\n background-color: #fff; }\n .ec-inlineBtn--cancel .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n/*\nブロックボタン(全幅)\n\nボタンサイズは em で指定するため、テキストサイズの変更でボタンサイズを変更できます。\n\nex [商品詳細ページ カートボタン部分](http://demo3.ec-cube.net/products/detail/30)\n\nMarkup:\np: .ec-blockBtn 住所検索\np: .ec-blockBtn--primary もっと見る\np: .ec-blockBtn--action カートに入れる\np: .ec-blockBtn--cancel キャンセル\n\nStyleguide 2.1.2\n*/\n.ec-blockBtn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #525263;\n background-color: #F5F7F8;\n border-color: #ccc;\n display: block;\n width: 100%;\n height: 56px;\n line-height: 56px;\n padding-top: 0;\n padding-bottom: 0; }\n .ec-blockBtn:focus, .ec-blockBtn.focus, .ec-blockBtn:active:focus, .ec-blockBtn:active.focus, .ec-blockBtn.active:focus, .ec-blockBtn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-blockBtn:hover, .ec-blockBtn:focus, .ec-blockBtn.focus {\n color: #525263;\n text-decoration: none; }\n .ec-blockBtn:active, .ec-blockBtn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-blockBtn.disabled, .ec-blockBtn[disabled],\n fieldset[disabled] .ec-blockBtn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-blockBtn:focus, .ec-blockBtn.focus {\n color: #525263;\n background-color: #d7dfe3;\n border-color: #8c8c8c; }\n .ec-blockBtn:hover {\n color: #525263;\n background-color: #d7dfe3;\n border-color: #adadad; }\n .ec-blockBtn:active, .ec-blockBtn.active,\n .open > .ec-blockBtn.dropdown-toggle {\n color: #525263;\n background-color: #d7dfe3;\n border-color: #adadad; }\n .ec-blockBtn:active:hover, .ec-blockBtn:active:focus, .ec-blockBtn:active.focus, .ec-blockBtn.active:hover, .ec-blockBtn.active:focus, .ec-blockBtn.active.focus,\n .open > .ec-blockBtn.dropdown-toggle:hover,\n .open > .ec-blockBtn.dropdown-toggle:focus,\n .open > .ec-blockBtn.dropdown-toggle.focus {\n color: #525263;\n background-color: #c2ced4;\n border-color: #8c8c8c; }\n .ec-blockBtn:active, .ec-blockBtn.active,\n .open > .ec-blockBtn.dropdown-toggle {\n background-image: none; }\n .ec-blockBtn.disabled:hover, .ec-blockBtn.disabled:focus, .ec-blockBtn.disabled.focus, .ec-blockBtn[disabled]:hover, .ec-blockBtn[disabled]:focus, .ec-blockBtn[disabled].focus,\n fieldset[disabled] .ec-blockBtn:hover,\n fieldset[disabled] .ec-blockBtn:focus,\n fieldset[disabled] .ec-blockBtn.focus {\n background-color: #F5F7F8;\n border-color: #ccc; }\n .ec-blockBtn .badge {\n color: #F5F7F8;\n background-color: #525263; }\n .ec-blockBtn .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n.ec-blockBtn--primary {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #fff;\n background-color: #5CB1B1;\n border-color: #5CB1B1;\n display: block;\n width: 100%;\n height: 56px;\n line-height: 56px;\n padding-top: 0;\n padding-bottom: 0; }\n .ec-blockBtn--primary:focus, .ec-blockBtn--primary.focus, .ec-blockBtn--primary:active:focus, .ec-blockBtn--primary:active.focus, .ec-blockBtn--primary.active:focus, .ec-blockBtn--primary.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-blockBtn--primary:hover, .ec-blockBtn--primary:focus, .ec-blockBtn--primary.focus {\n color: #525263;\n text-decoration: none; }\n .ec-blockBtn--primary:active, .ec-blockBtn--primary.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-blockBtn--primary.disabled, .ec-blockBtn--primary[disabled],\n fieldset[disabled] .ec-blockBtn--primary {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-blockBtn--primary:focus, .ec-blockBtn--primary.focus {\n color: #fff;\n background-color: #479393;\n border-color: #2e6060; }\n .ec-blockBtn--primary:hover {\n color: #fff;\n background-color: #479393;\n border-color: #438d8d; }\n .ec-blockBtn--primary:active, .ec-blockBtn--primary.active,\n .open > .ec-blockBtn--primary.dropdown-toggle {\n color: #fff;\n background-color: #479393;\n border-color: #438d8d; }\n .ec-blockBtn--primary:active:hover, .ec-blockBtn--primary:active:focus, .ec-blockBtn--primary:active.focus, .ec-blockBtn--primary.active:hover, .ec-blockBtn--primary.active:focus, .ec-blockBtn--primary.active.focus,\n .open > .ec-blockBtn--primary.dropdown-toggle:hover,\n .open > .ec-blockBtn--primary.dropdown-toggle:focus,\n .open > .ec-blockBtn--primary.dropdown-toggle.focus {\n color: #fff;\n background-color: #3b7b7b;\n border-color: #2e6060; }\n .ec-blockBtn--primary:active, .ec-blockBtn--primary.active,\n .open > .ec-blockBtn--primary.dropdown-toggle {\n background-image: none; }\n .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,\n fieldset[disabled] .ec-blockBtn--primary:hover,\n fieldset[disabled] .ec-blockBtn--primary:focus,\n fieldset[disabled] .ec-blockBtn--primary.focus {\n background-color: #5CB1B1;\n border-color: #5CB1B1; }\n .ec-blockBtn--primary .badge {\n color: #5CB1B1;\n background-color: #fff; }\n .ec-blockBtn--primary .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n.ec-blockBtn--action {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #fff;\n background-color: #DE5D50;\n border-color: #DE5D50;\n display: block;\n width: 100%;\n height: 56px;\n line-height: 56px;\n padding-top: 0;\n padding-bottom: 0; }\n .ec-blockBtn--action:focus, .ec-blockBtn--action.focus, .ec-blockBtn--action:active:focus, .ec-blockBtn--action:active.focus, .ec-blockBtn--action.active:focus, .ec-blockBtn--action.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-blockBtn--action:hover, .ec-blockBtn--action:focus, .ec-blockBtn--action.focus {\n color: #525263;\n text-decoration: none; }\n .ec-blockBtn--action:active, .ec-blockBtn--action.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-blockBtn--action.disabled, .ec-blockBtn--action[disabled],\n fieldset[disabled] .ec-blockBtn--action {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-blockBtn--action:focus, .ec-blockBtn--action.focus {\n color: #fff;\n background-color: #d33828;\n border-color: #93271c; }\n .ec-blockBtn--action:hover {\n color: #fff;\n background-color: #d33828;\n border-color: #cb3526; }\n .ec-blockBtn--action:active, .ec-blockBtn--action.active,\n .open > .ec-blockBtn--action.dropdown-toggle {\n color: #fff;\n background-color: #d33828;\n border-color: #cb3526; }\n .ec-blockBtn--action:active:hover, .ec-blockBtn--action:active:focus, .ec-blockBtn--action:active.focus, .ec-blockBtn--action.active:hover, .ec-blockBtn--action.active:focus, .ec-blockBtn--action.active.focus,\n .open > .ec-blockBtn--action.dropdown-toggle:hover,\n .open > .ec-blockBtn--action.dropdown-toggle:focus,\n .open > .ec-blockBtn--action.dropdown-toggle.focus {\n color: #fff;\n background-color: #b53022;\n border-color: #93271c; }\n .ec-blockBtn--action:active, .ec-blockBtn--action.active,\n .open > .ec-blockBtn--action.dropdown-toggle {\n background-image: none; }\n .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,\n fieldset[disabled] .ec-blockBtn--action:hover,\n fieldset[disabled] .ec-blockBtn--action:focus,\n fieldset[disabled] .ec-blockBtn--action.focus {\n background-color: #DE5D50;\n border-color: #DE5D50; }\n .ec-blockBtn--action .badge {\n color: #DE5D50;\n background-color: #fff; }\n .ec-blockBtn--action .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n.ec-blockBtn--cancel {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #fff;\n background-color: #525263;\n border-color: #525263;\n display: block;\n width: 100%;\n height: 56px;\n line-height: 56px;\n padding-top: 0;\n padding-bottom: 0; }\n .ec-blockBtn--cancel:focus, .ec-blockBtn--cancel.focus, .ec-blockBtn--cancel:active:focus, .ec-blockBtn--cancel:active.focus, .ec-blockBtn--cancel.active:focus, .ec-blockBtn--cancel.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-blockBtn--cancel:hover, .ec-blockBtn--cancel:focus, .ec-blockBtn--cancel.focus {\n color: #525263;\n text-decoration: none; }\n .ec-blockBtn--cancel:active, .ec-blockBtn--cancel.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-blockBtn--cancel.disabled, .ec-blockBtn--cancel[disabled],\n fieldset[disabled] .ec-blockBtn--cancel {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-blockBtn--cancel:focus, .ec-blockBtn--cancel.focus {\n color: #fff;\n background-color: #3b3b47;\n border-color: #18181d; }\n .ec-blockBtn--cancel:hover {\n color: #fff;\n background-color: #3b3b47;\n border-color: #363642; }\n .ec-blockBtn--cancel:active, .ec-blockBtn--cancel.active,\n .open > .ec-blockBtn--cancel.dropdown-toggle {\n color: #fff;\n background-color: #3b3b47;\n border-color: #363642; }\n .ec-blockBtn--cancel:active:hover, .ec-blockBtn--cancel:active:focus, .ec-blockBtn--cancel:active.focus, .ec-blockBtn--cancel.active:hover, .ec-blockBtn--cancel.active:focus, .ec-blockBtn--cancel.active.focus,\n .open > .ec-blockBtn--cancel.dropdown-toggle:hover,\n .open > .ec-blockBtn--cancel.dropdown-toggle:focus,\n .open > .ec-blockBtn--cancel.dropdown-toggle.focus {\n color: #fff;\n background-color: #2b2b34;\n border-color: #18181d; }\n .ec-blockBtn--cancel:active, .ec-blockBtn--cancel.active,\n .open > .ec-blockBtn--cancel.dropdown-toggle {\n background-image: none; }\n .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,\n fieldset[disabled] .ec-blockBtn--cancel:hover,\n fieldset[disabled] .ec-blockBtn--cancel:focus,\n fieldset[disabled] .ec-blockBtn--cancel.focus {\n background-color: #525263;\n border-color: #525263; }\n .ec-blockBtn--cancel .badge {\n color: #525263;\n background-color: #fff; }\n .ec-blockBtn--cancel .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n/*\nアイコンボタン\n\nSVGアイコンを用いたアイコンボタンです。\n\nsg-wrapper:\n
\n \n\nStyleguide 2.2\n*/\n/*\nアイコンボタン\n\n閉じるなどSVGアイコンを用いたボタン装飾で利用します。\n\nex [ログイン画面 ☓ボタン部分](http://demo3.ec-cube.net/mypage/login)\n\nMarkup:\na.ec-closeBtn\n .ec-icon\n img(src='/moc/icon/cross.svg', alt='close')\n\nStyleguide 2.2.1\n*/\n.ec-closeBtn {\n cursor: pointer; }\n .ec-closeBtn .ec-icon img {\n display: inline-block;\n margin-right: 5px;\n width: 1em;\n height: 1em;\n position: relative;\n top: -1px;\n vertical-align: middle; }\n\n/*\nアイコンボタン(○)\n\n閉じるなどSVGアイコンを用いたボタン装飾で利用します。\n\nex [ログイン画面 ☓ボタン部分](http://demo3.ec-cube.net/mypage/login)\n\n\n\nex [お届け先編集画面 ☓ボタン部分](http://demo3.ec-cube.net/mypage/delivery)\n\nMarkup:\na.ec-closeBtn--circle\n .ec-icon\n img(src='/moc/icon/cross-white.svg', alt='close')\n\nStyleguide 2.2.2\n*/\n.ec-closeBtn--circle {\n display: block;\n border: 0 none;\n padding: 0;\n margin: 0;\n text-shadow: none;\n box-shadow: none;\n border-radius: 50%;\n background: #B8BEC4;\n cursor: pointer;\n width: 40px;\n min-width: 40px;\n max-width: 40px;\n height: 40px;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center; }\n .ec-closeBtn--circle .ec-icon img {\n display: block;\n margin-top: -.5em;\n margin-left: -.5em;\n width: 1em;\n height: 1em;\n position: absolute;\n top: 50%;\n left: 50%; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nその他のボタン\n\n通常のボタンや、アイコンボタン以外のボタンを定義します。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 2.3\n*/\n/*\nページトップボタン\n\nページトップボタンを表示します\n\nex [商品詳細ページ カートボタン部分](http://demo3.ec-cube.net/products/detail/30)\n\nMarkup:\n.ec-blockTopBtn\n\nStyleguide 2.3.1\n*/\n.ec-blockTopBtn {\n display: none;\n position: fixed;\n width: 120px;\n height: 40px;\n right: 0;\n bottom: 10px;\n cursor: pointer;\n color: #FFFFFF;\n text-align: center;\n line-height: 40px;\n opacity: 0.8;\n background-color: #9da3a9; }\n @media only screen and (min-width: 768px) {\n .ec-blockTopBtn {\n right: 30px;\n bottom: 30px; } }\n .ec-blockTopBtn:after {\n content: \"ページトップへ\"; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nフォーム部品(テキスト)\n\nテキストや数値の入力項目に関する要素を定義します。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 3.1\n*/\n/*\nフォーム\n\n`.ec-input` 要素は全ての入力項目に関する標準的なコンポーネントクラスです。\n\n\nex [会員情報編集画面 フォーム部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\np.ec-input\n input(type=\"number\")\np.ec-input\n textarea(rows=\"6\")\n\nStyleguide 3.1.1\n*/\n.ec-input input[type=\"search\"], .ec-halfInput input[type=\"search\"], .ec-numberInput input[type=\"search\"], .ec-zipInput input[type=\"search\"], .ec-telInput input[type=\"search\"], .ec-select input[type=\"search\"], .ec-birth input[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n\n.ec-input input[type=\"radio\"], .ec-halfInput input[type=\"radio\"], .ec-numberInput input[type=\"radio\"], .ec-zipInput input[type=\"radio\"], .ec-telInput input[type=\"radio\"], .ec-select input[type=\"radio\"], .ec-birth input[type=\"radio\"],\n.ec-input input[type=\"checkbox\"],\n.ec-halfInput input[type=\"checkbox\"],\n.ec-numberInput input[type=\"checkbox\"],\n.ec-zipInput input[type=\"checkbox\"],\n.ec-telInput input[type=\"checkbox\"],\n.ec-select input[type=\"checkbox\"],\n.ec-birth input[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal; }\n\n.ec-input input[type=\"file\"], .ec-halfInput input[type=\"file\"], .ec-numberInput input[type=\"file\"], .ec-zipInput input[type=\"file\"], .ec-telInput input[type=\"file\"], .ec-select input[type=\"file\"], .ec-birth input[type=\"file\"] {\n display: block; }\n\n.ec-input input[type=\"range\"], .ec-halfInput input[type=\"range\"], .ec-numberInput input[type=\"range\"], .ec-zipInput input[type=\"range\"], .ec-telInput input[type=\"range\"], .ec-select input[type=\"range\"], .ec-birth input[type=\"range\"] {\n display: block;\n width: 100%; }\n\n.ec-input select[multiple], .ec-halfInput select[multiple], .ec-numberInput select[multiple], .ec-zipInput select[multiple], .ec-telInput select[multiple], .ec-select select[multiple], .ec-birth select[multiple],\n.ec-input select[size],\n.ec-halfInput select[size],\n.ec-numberInput select[size],\n.ec-zipInput select[size],\n.ec-telInput select[size],\n.ec-select select[size],\n.ec-birth select[size] {\n height: auto; }\n\n.ec-input input[type=\"file\"]:focus, .ec-halfInput input[type=\"file\"]:focus, .ec-numberInput input[type=\"file\"]:focus, .ec-zipInput input[type=\"file\"]:focus, .ec-telInput input[type=\"file\"]:focus, .ec-select input[type=\"file\"]:focus, .ec-birth input[type=\"file\"]:focus,\n.ec-input input[type=\"radio\"]:focus,\n.ec-halfInput input[type=\"radio\"]:focus,\n.ec-numberInput input[type=\"radio\"]:focus,\n.ec-zipInput input[type=\"radio\"]:focus,\n.ec-telInput input[type=\"radio\"]:focus,\n.ec-select input[type=\"radio\"]:focus,\n.ec-birth input[type=\"radio\"]:focus,\n.ec-input input[type=\"checkbox\"]:focus,\n.ec-halfInput input[type=\"checkbox\"]:focus,\n.ec-numberInput input[type=\"checkbox\"]:focus,\n.ec-zipInput input[type=\"checkbox\"]:focus,\n.ec-telInput input[type=\"checkbox\"]:focus,\n.ec-select input[type=\"checkbox\"]:focus,\n.ec-birth input[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n\n.ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input, .ec-select input, .ec-birth input {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-appearance: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n border-radius: 3px; }\n .ec-input input:focus, .ec-halfInput input:focus, .ec-numberInput input:focus, .ec-zipInput input:focus, .ec-telInput input:focus, .ec-select input:focus, .ec-birth input:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\n .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, .ec-select input::-moz-placeholder, .ec-birth input::-moz-placeholder {\n color: #999;\n opacity: 1; }\n .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, .ec-select input:-ms-input-placeholder, .ec-birth input:-ms-input-placeholder {\n color: #999; }\n .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, .ec-select input::-webkit-input-placeholder, .ec-birth input::-webkit-input-placeholder {\n color: #999; }\n .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, .ec-select input::-ms-expand, .ec-birth input::-ms-expand {\n border: 0;\n background-color: transparent; }\n .ec-input input[disabled], .ec-halfInput input[disabled], .ec-numberInput input[disabled], .ec-zipInput input[disabled], .ec-telInput input[disabled], .ec-select input[disabled], .ec-birth input[disabled], .ec-input input[readonly], .ec-halfInput input[readonly], .ec-numberInput input[readonly], .ec-zipInput input[readonly], .ec-telInput input[readonly], .ec-select input[readonly], .ec-birth input[readonly],\n fieldset[disabled] .ec-input input,\n fieldset[disabled] .ec-halfInput input,\n fieldset[disabled] .ec-numberInput input,\n fieldset[disabled] .ec-zipInput input,\n fieldset[disabled] .ec-telInput input,\n fieldset[disabled] .ec-select input,\n fieldset[disabled] .ec-birth input {\n background-color: #eeeeee;\n opacity: 1; }\n .ec-input input[disabled], .ec-halfInput input[disabled], .ec-numberInput input[disabled], .ec-zipInput input[disabled], .ec-telInput input[disabled], .ec-select input[disabled], .ec-birth input[disabled],\n fieldset[disabled] .ec-input input,\n fieldset[disabled] .ec-halfInput input,\n fieldset[disabled] .ec-numberInput input,\n fieldset[disabled] .ec-zipInput input,\n fieldset[disabled] .ec-telInput input,\n fieldset[disabled] .ec-select input,\n fieldset[disabled] .ec-birth input {\n cursor: not-allowed; }\n\n.ec-input select, .ec-halfInput select, .ec-numberInput select, .ec-zipInput select, .ec-telInput select, .ec-select select, .ec-birth select {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-appearance: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n border-radius: 3px; }\n .ec-input select:focus, .ec-halfInput select:focus, .ec-numberInput select:focus, .ec-zipInput select:focus, .ec-telInput select:focus, .ec-select select:focus, .ec-birth select:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\n .ec-input select::-moz-placeholder, .ec-halfInput select::-moz-placeholder, .ec-numberInput select::-moz-placeholder, .ec-zipInput select::-moz-placeholder, .ec-telInput select::-moz-placeholder, .ec-select select::-moz-placeholder, .ec-birth select::-moz-placeholder {\n color: #999;\n opacity: 1; }\n .ec-input select:-ms-input-placeholder, .ec-halfInput select:-ms-input-placeholder, .ec-numberInput select:-ms-input-placeholder, .ec-zipInput select:-ms-input-placeholder, .ec-telInput select:-ms-input-placeholder, .ec-select select:-ms-input-placeholder, .ec-birth select:-ms-input-placeholder {\n color: #999; }\n .ec-input select::-webkit-input-placeholder, .ec-halfInput select::-webkit-input-placeholder, .ec-numberInput select::-webkit-input-placeholder, .ec-zipInput select::-webkit-input-placeholder, .ec-telInput select::-webkit-input-placeholder, .ec-select select::-webkit-input-placeholder, .ec-birth select::-webkit-input-placeholder {\n color: #999; }\n .ec-input select::-ms-expand, .ec-halfInput select::-ms-expand, .ec-numberInput select::-ms-expand, .ec-zipInput select::-ms-expand, .ec-telInput select::-ms-expand, .ec-select select::-ms-expand, .ec-birth select::-ms-expand {\n border: 0;\n background-color: transparent; }\n .ec-input select[disabled], .ec-halfInput select[disabled], .ec-numberInput select[disabled], .ec-zipInput select[disabled], .ec-telInput select[disabled], .ec-select select[disabled], .ec-birth select[disabled], .ec-input select[readonly], .ec-halfInput select[readonly], .ec-numberInput select[readonly], .ec-zipInput select[readonly], .ec-telInput select[readonly], .ec-select select[readonly], .ec-birth select[readonly],\n fieldset[disabled] .ec-input select,\n fieldset[disabled] .ec-halfInput select,\n fieldset[disabled] .ec-numberInput select,\n fieldset[disabled] .ec-zipInput select,\n fieldset[disabled] .ec-telInput select,\n fieldset[disabled] .ec-select select,\n fieldset[disabled] .ec-birth select {\n background-color: #eeeeee;\n opacity: 1; }\n .ec-input select[disabled], .ec-halfInput select[disabled], .ec-numberInput select[disabled], .ec-zipInput select[disabled], .ec-telInput select[disabled], .ec-select select[disabled], .ec-birth select[disabled],\n fieldset[disabled] .ec-input select,\n fieldset[disabled] .ec-halfInput select,\n fieldset[disabled] .ec-numberInput select,\n fieldset[disabled] .ec-zipInput select,\n fieldset[disabled] .ec-telInput select,\n fieldset[disabled] .ec-select select,\n fieldset[disabled] .ec-birth select {\n cursor: not-allowed; }\n\n.ec-input textarea, .ec-halfInput textarea, .ec-numberInput textarea, .ec-zipInput textarea, .ec-telInput textarea, .ec-select textarea, .ec-birth textarea {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-appearance: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n border-radius: 3px; }\n .ec-input textarea:focus, .ec-halfInput textarea:focus, .ec-numberInput textarea:focus, .ec-zipInput textarea:focus, .ec-telInput textarea:focus, .ec-select textarea:focus, .ec-birth textarea:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\n .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, .ec-select textarea::-moz-placeholder, .ec-birth textarea::-moz-placeholder {\n color: #999;\n opacity: 1; }\n .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, .ec-select textarea:-ms-input-placeholder, .ec-birth textarea:-ms-input-placeholder {\n color: #999; }\n .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, .ec-select textarea::-webkit-input-placeholder, .ec-birth textarea::-webkit-input-placeholder {\n color: #999; }\n .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, .ec-select textarea::-ms-expand, .ec-birth textarea::-ms-expand {\n border: 0;\n background-color: transparent; }\n .ec-input textarea[disabled], .ec-halfInput textarea[disabled], .ec-numberInput textarea[disabled], .ec-zipInput textarea[disabled], .ec-telInput textarea[disabled], .ec-select textarea[disabled], .ec-birth textarea[disabled], .ec-input textarea[readonly], .ec-halfInput textarea[readonly], .ec-numberInput textarea[readonly], .ec-zipInput textarea[readonly], .ec-telInput textarea[readonly], .ec-select textarea[readonly], .ec-birth textarea[readonly],\n fieldset[disabled] .ec-input textarea,\n fieldset[disabled] .ec-halfInput textarea,\n fieldset[disabled] .ec-numberInput textarea,\n fieldset[disabled] .ec-zipInput textarea,\n fieldset[disabled] .ec-telInput textarea,\n fieldset[disabled] .ec-select textarea,\n fieldset[disabled] .ec-birth textarea {\n background-color: #eeeeee;\n opacity: 1; }\n .ec-input textarea[disabled], .ec-halfInput textarea[disabled], .ec-numberInput textarea[disabled], .ec-zipInput textarea[disabled], .ec-telInput textarea[disabled], .ec-select textarea[disabled], .ec-birth textarea[disabled],\n fieldset[disabled] .ec-input textarea,\n fieldset[disabled] .ec-halfInput textarea,\n fieldset[disabled] .ec-numberInput textarea,\n fieldset[disabled] .ec-zipInput textarea,\n fieldset[disabled] .ec-telInput textarea,\n fieldset[disabled] .ec-select textarea,\n fieldset[disabled] .ec-birth textarea {\n cursor: not-allowed; }\n\n.ec-input input:focus, .ec-halfInput input:focus, .ec-numberInput input:focus, .ec-zipInput input:focus, .ec-telInput input:focus, .ec-select input:focus, .ec-birth input:focus, .ec-input textarea:focus, .ec-halfInput textarea:focus, .ec-numberInput textarea:focus, .ec-zipInput textarea:focus, .ec-telInput textarea:focus, .ec-select textarea:focus, .ec-birth textarea:focus {\n box-shadow: none;\n border-color: #3c8dbc; }\n\n.ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input, .ec-select input, .ec-birth input {\n height: 40px;\n margin-bottom: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input, .ec-select input, .ec-birth input {\n margin-bottom: 16px; } }\n\n.ec-input textarea, .ec-halfInput textarea, .ec-numberInput textarea, .ec-zipInput textarea, .ec-telInput textarea, .ec-select textarea, .ec-birth textarea {\n height: auto;\n min-height: 100px; }\n\n.ec-input p, .ec-halfInput p, .ec-numberInput p, .ec-zipInput p, .ec-telInput p, .ec-select p, .ec-birth p {\n line-height: 1.4; }\n\n.ec-input .ec-errorMessage, .ec-halfInput .ec-errorMessage, .ec-numberInput .ec-errorMessage, .ec-zipInput .ec-errorMessage, .ec-telInput .ec-errorMessage, .ec-select .ec-errorMessage, .ec-birth .ec-errorMessage {\n margin-bottom: 25px;\n font-size: 12px;\n font-weight: bold;\n color: #DE5D50; }\n\n.error.ec-input input, .error.ec-halfInput input, .error.ec-numberInput input, .error.ec-zipInput input, .error.ec-telInput input, .error.ec-select input, .error.ec-birth input, .error.ec-input select, .error.ec-halfInput select, .error.ec-numberInput select, .error.ec-zipInput select, .error.ec-telInput select, .error.ec-select select, .error.ec-birth select {\n margin-bottom: 5px;\n border-color: #CF3F34;\n background: #FDF1F0; }\n\n.ec-checkbox .ec-errorMessage {\n margin-bottom: 25px;\n font-size: 12px;\n font-weight: bold;\n color: #DE5D50; }\n\n.error.ec-checkbox input, .error.ec-checkbox label {\n border-color: #CF3F34;\n background: #FDF1F0; }\n\n/*\nフォーム(text2つ)\n\n姓名など2つ入力させたい入力項目で使用します。\n\n入力フォームを半分で用意したいときにも利用可能です。\n\nex [会員情報編集画面 フォーム部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\np.ec-halfInput\n input(type=\"text\")\n input(type=\"text\")\np.ec-halfInput\n input(type=\"text\")\n\nStyleguide 3.1.2\n*/\n.ec-halfInput input[type='text'] {\n display: inline-block;\n width: 47%;\n margin-left: 2%; }\n @media only screen and (min-width: 768px) {\n .ec-halfInput input[type='text'] {\n margin-left: 15px;\n width: 45%; } }\n\n.ec-halfInput input[type='text']:first-child {\n margin-left: 0; }\n\n/*\n数量ボタン\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [商品詳細画面 数量ボタン部分](http://demo3.ec-cube.net/products/detail/27)\n\nMarkup:\n.ec-numberInput\n span 数量\n input(type=\"number\",value=\"0\")\n\nStyleguide 3.1.3\n*/\n.ec-numberInput input[type='number'] {\n display: inline-block;\n width: auto;\n max-width: 100px;\n text-align: right; }\n\n/*\n郵便番号フォーム\n\n数量を表示するための小さなコンポーネントです。\n\n内部に input 要素を配置してコーディングします。\n\nex [会員情報編集画面 郵便番号部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\n.ec-zipInput\n span 〒\n input(type=\"text\")\n.ec-zipInputHelp\n a(href=\"http://www.post.japanpost.jp/zipcode/\" target=\"_blank\")\n .ec-zipInputHelp__icon\n .ec-icon\n img(src='/moc/icon/question-white.svg', alt='')\n span 郵便番号検索\n.ec-zipAuto\n a.ec-inlineBtn 郵便番号から自動入力\n\nStyleguide 3.1.4\n*/\n.ec-zipInput {\n display: inline-block; }\n .ec-zipInput input {\n display: inline-block;\n text-align: left;\n width: auto;\n max-width: 8em;\n font-size: 16px; }\n .ec-zipInput span {\n display: inline-block;\n padding: 0 5px 0 3px;\n margin-left: 5px; }\n\n.ec-zipInputHelp {\n display: inline-block;\n margin-left: 10px;\n margin-bottom: 16px;\n vertical-align: baseline;\n line-height: 0; }\n .ec-zipInputHelp .ec-zipInputHelp__icon {\n display: inline-block;\n margin-top: -10px;\n width: 20px;\n height: 20px;\n background: #525263;\n border-radius: 50%;\n font-size: 13px;\n position: relative;\n top: -6px; }\n .ec-zipInputHelp .ec-zipInputHelp__icon .ec-icon img {\n width: 1em;\n height: 1em;\n position: relative;\n left: 3px;\n top: 3px; }\n .ec-zipInputHelp span {\n margin-left: 8px;\n display: inline-block;\n color: #0092C4;\n vertical-align: 3px; }\n\n.ec-zipAuto {\n margin-bottom: 16px; }\n .ec-zipAuto .ec-inlineBtn {\n font-weight: normal; }\n\n/*\n電話番号ボタン\n\n数量を表示するための小さなコンポーネントです。\n\n内部に input 要素を配置してコーディングします。\n\nex [会員情報編集画面 電話番号部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\n.ec-telInput\n input(type=\"text\")\n\nStyleguide 3.1.5\n*/\n.ec-telInput input {\n max-width: 10em;\n text-align: left; }\n\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nフォーム部品(テキスト)\n\nテキストや数値の入力項目に関する要素を定義します。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 3.1\n*/\n/*\nフォーム\n\n`.ec-input` 要素は全ての入力項目に関する標準的なコンポーネントクラスです。\n\n\nex [会員情報編集画面 フォーム部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\np.ec-input\n input(type=\"number\")\np.ec-input\n textarea(rows=\"6\")\n\nStyleguide 3.1.1\n*/\n.ec-input input[type=\"search\"], .ec-halfInput input[type=\"search\"], .ec-numberInput input[type=\"search\"], .ec-zipInput input[type=\"search\"], .ec-telInput input[type=\"search\"], .ec-select input[type=\"search\"], .ec-birth input[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n\n.ec-input input[type=\"radio\"], .ec-halfInput input[type=\"radio\"], .ec-numberInput input[type=\"radio\"], .ec-zipInput input[type=\"radio\"], .ec-telInput input[type=\"radio\"], .ec-select input[type=\"radio\"], .ec-birth input[type=\"radio\"],\n.ec-input input[type=\"checkbox\"],\n.ec-halfInput input[type=\"checkbox\"],\n.ec-numberInput input[type=\"checkbox\"],\n.ec-zipInput input[type=\"checkbox\"],\n.ec-telInput input[type=\"checkbox\"],\n.ec-select input[type=\"checkbox\"],\n.ec-birth input[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal; }\n\n.ec-input input[type=\"file\"], .ec-halfInput input[type=\"file\"], .ec-numberInput input[type=\"file\"], .ec-zipInput input[type=\"file\"], .ec-telInput input[type=\"file\"], .ec-select input[type=\"file\"], .ec-birth input[type=\"file\"] {\n display: block; }\n\n.ec-input input[type=\"range\"], .ec-halfInput input[type=\"range\"], .ec-numberInput input[type=\"range\"], .ec-zipInput input[type=\"range\"], .ec-telInput input[type=\"range\"], .ec-select input[type=\"range\"], .ec-birth input[type=\"range\"] {\n display: block;\n width: 100%; }\n\n.ec-input select[multiple], .ec-halfInput select[multiple], .ec-numberInput select[multiple], .ec-zipInput select[multiple], .ec-telInput select[multiple], .ec-select select[multiple], .ec-birth select[multiple],\n.ec-input select[size],\n.ec-halfInput select[size],\n.ec-numberInput select[size],\n.ec-zipInput select[size],\n.ec-telInput select[size],\n.ec-select select[size],\n.ec-birth select[size] {\n height: auto; }\n\n.ec-input input[type=\"file\"]:focus, .ec-halfInput input[type=\"file\"]:focus, .ec-numberInput input[type=\"file\"]:focus, .ec-zipInput input[type=\"file\"]:focus, .ec-telInput input[type=\"file\"]:focus, .ec-select input[type=\"file\"]:focus, .ec-birth input[type=\"file\"]:focus,\n.ec-input input[type=\"radio\"]:focus,\n.ec-halfInput input[type=\"radio\"]:focus,\n.ec-numberInput input[type=\"radio\"]:focus,\n.ec-zipInput input[type=\"radio\"]:focus,\n.ec-telInput input[type=\"radio\"]:focus,\n.ec-select input[type=\"radio\"]:focus,\n.ec-birth input[type=\"radio\"]:focus,\n.ec-input input[type=\"checkbox\"]:focus,\n.ec-halfInput input[type=\"checkbox\"]:focus,\n.ec-numberInput input[type=\"checkbox\"]:focus,\n.ec-zipInput input[type=\"checkbox\"]:focus,\n.ec-telInput input[type=\"checkbox\"]:focus,\n.ec-select input[type=\"checkbox\"]:focus,\n.ec-birth input[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n\n.ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input, .ec-select input, .ec-birth input {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-appearance: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n border-radius: 3px; }\n .ec-input input:focus, .ec-halfInput input:focus, .ec-numberInput input:focus, .ec-zipInput input:focus, .ec-telInput input:focus, .ec-select input:focus, .ec-birth input:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\n .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, .ec-select input::-moz-placeholder, .ec-birth input::-moz-placeholder {\n color: #999;\n opacity: 1; }\n .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, .ec-select input:-ms-input-placeholder, .ec-birth input:-ms-input-placeholder {\n color: #999; }\n .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, .ec-select input::-webkit-input-placeholder, .ec-birth input::-webkit-input-placeholder {\n color: #999; }\n .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, .ec-select input::-ms-expand, .ec-birth input::-ms-expand {\n border: 0;\n background-color: transparent; }\n .ec-input input[disabled], .ec-halfInput input[disabled], .ec-numberInput input[disabled], .ec-zipInput input[disabled], .ec-telInput input[disabled], .ec-select input[disabled], .ec-birth input[disabled], .ec-input input[readonly], .ec-halfInput input[readonly], .ec-numberInput input[readonly], .ec-zipInput input[readonly], .ec-telInput input[readonly], .ec-select input[readonly], .ec-birth input[readonly],\n fieldset[disabled] .ec-input input,\n fieldset[disabled] .ec-halfInput input,\n fieldset[disabled] .ec-numberInput input,\n fieldset[disabled] .ec-zipInput input,\n fieldset[disabled] .ec-telInput input,\n fieldset[disabled] .ec-select input,\n fieldset[disabled] .ec-birth input {\n background-color: #eeeeee;\n opacity: 1; }\n .ec-input input[disabled], .ec-halfInput input[disabled], .ec-numberInput input[disabled], .ec-zipInput input[disabled], .ec-telInput input[disabled], .ec-select input[disabled], .ec-birth input[disabled],\n fieldset[disabled] .ec-input input,\n fieldset[disabled] .ec-halfInput input,\n fieldset[disabled] .ec-numberInput input,\n fieldset[disabled] .ec-zipInput input,\n fieldset[disabled] .ec-telInput input,\n fieldset[disabled] .ec-select input,\n fieldset[disabled] .ec-birth input {\n cursor: not-allowed; }\n\n.ec-input select, .ec-halfInput select, .ec-numberInput select, .ec-zipInput select, .ec-telInput select, .ec-select select, .ec-birth select {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-appearance: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n border-radius: 3px; }\n .ec-input select:focus, .ec-halfInput select:focus, .ec-numberInput select:focus, .ec-zipInput select:focus, .ec-telInput select:focus, .ec-select select:focus, .ec-birth select:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\n .ec-input select::-moz-placeholder, .ec-halfInput select::-moz-placeholder, .ec-numberInput select::-moz-placeholder, .ec-zipInput select::-moz-placeholder, .ec-telInput select::-moz-placeholder, .ec-select select::-moz-placeholder, .ec-birth select::-moz-placeholder {\n color: #999;\n opacity: 1; }\n .ec-input select:-ms-input-placeholder, .ec-halfInput select:-ms-input-placeholder, .ec-numberInput select:-ms-input-placeholder, .ec-zipInput select:-ms-input-placeholder, .ec-telInput select:-ms-input-placeholder, .ec-select select:-ms-input-placeholder, .ec-birth select:-ms-input-placeholder {\n color: #999; }\n .ec-input select::-webkit-input-placeholder, .ec-halfInput select::-webkit-input-placeholder, .ec-numberInput select::-webkit-input-placeholder, .ec-zipInput select::-webkit-input-placeholder, .ec-telInput select::-webkit-input-placeholder, .ec-select select::-webkit-input-placeholder, .ec-birth select::-webkit-input-placeholder {\n color: #999; }\n .ec-input select::-ms-expand, .ec-halfInput select::-ms-expand, .ec-numberInput select::-ms-expand, .ec-zipInput select::-ms-expand, .ec-telInput select::-ms-expand, .ec-select select::-ms-expand, .ec-birth select::-ms-expand {\n border: 0;\n background-color: transparent; }\n .ec-input select[disabled], .ec-halfInput select[disabled], .ec-numberInput select[disabled], .ec-zipInput select[disabled], .ec-telInput select[disabled], .ec-select select[disabled], .ec-birth select[disabled], .ec-input select[readonly], .ec-halfInput select[readonly], .ec-numberInput select[readonly], .ec-zipInput select[readonly], .ec-telInput select[readonly], .ec-select select[readonly], .ec-birth select[readonly],\n fieldset[disabled] .ec-input select,\n fieldset[disabled] .ec-halfInput select,\n fieldset[disabled] .ec-numberInput select,\n fieldset[disabled] .ec-zipInput select,\n fieldset[disabled] .ec-telInput select,\n fieldset[disabled] .ec-select select,\n fieldset[disabled] .ec-birth select {\n background-color: #eeeeee;\n opacity: 1; }\n .ec-input select[disabled], .ec-halfInput select[disabled], .ec-numberInput select[disabled], .ec-zipInput select[disabled], .ec-telInput select[disabled], .ec-select select[disabled], .ec-birth select[disabled],\n fieldset[disabled] .ec-input select,\n fieldset[disabled] .ec-halfInput select,\n fieldset[disabled] .ec-numberInput select,\n fieldset[disabled] .ec-zipInput select,\n fieldset[disabled] .ec-telInput select,\n fieldset[disabled] .ec-select select,\n fieldset[disabled] .ec-birth select {\n cursor: not-allowed; }\n\n.ec-input textarea, .ec-halfInput textarea, .ec-numberInput textarea, .ec-zipInput textarea, .ec-telInput textarea, .ec-select textarea, .ec-birth textarea {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-appearance: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n border-radius: 3px; }\n .ec-input textarea:focus, .ec-halfInput textarea:focus, .ec-numberInput textarea:focus, .ec-zipInput textarea:focus, .ec-telInput textarea:focus, .ec-select textarea:focus, .ec-birth textarea:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\n .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, .ec-select textarea::-moz-placeholder, .ec-birth textarea::-moz-placeholder {\n color: #999;\n opacity: 1; }\n .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, .ec-select textarea:-ms-input-placeholder, .ec-birth textarea:-ms-input-placeholder {\n color: #999; }\n .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, .ec-select textarea::-webkit-input-placeholder, .ec-birth textarea::-webkit-input-placeholder {\n color: #999; }\n .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, .ec-select textarea::-ms-expand, .ec-birth textarea::-ms-expand {\n border: 0;\n background-color: transparent; }\n .ec-input textarea[disabled], .ec-halfInput textarea[disabled], .ec-numberInput textarea[disabled], .ec-zipInput textarea[disabled], .ec-telInput textarea[disabled], .ec-select textarea[disabled], .ec-birth textarea[disabled], .ec-input textarea[readonly], .ec-halfInput textarea[readonly], .ec-numberInput textarea[readonly], .ec-zipInput textarea[readonly], .ec-telInput textarea[readonly], .ec-select textarea[readonly], .ec-birth textarea[readonly],\n fieldset[disabled] .ec-input textarea,\n fieldset[disabled] .ec-halfInput textarea,\n fieldset[disabled] .ec-numberInput textarea,\n fieldset[disabled] .ec-zipInput textarea,\n fieldset[disabled] .ec-telInput textarea,\n fieldset[disabled] .ec-select textarea,\n fieldset[disabled] .ec-birth textarea {\n background-color: #eeeeee;\n opacity: 1; }\n .ec-input textarea[disabled], .ec-halfInput textarea[disabled], .ec-numberInput textarea[disabled], .ec-zipInput textarea[disabled], .ec-telInput textarea[disabled], .ec-select textarea[disabled], .ec-birth textarea[disabled],\n fieldset[disabled] .ec-input textarea,\n fieldset[disabled] .ec-halfInput textarea,\n fieldset[disabled] .ec-numberInput textarea,\n fieldset[disabled] .ec-zipInput textarea,\n fieldset[disabled] .ec-telInput textarea,\n fieldset[disabled] .ec-select textarea,\n fieldset[disabled] .ec-birth textarea {\n cursor: not-allowed; }\n\n.ec-input input:focus, .ec-halfInput input:focus, .ec-numberInput input:focus, .ec-zipInput input:focus, .ec-telInput input:focus, .ec-select input:focus, .ec-birth input:focus, .ec-input textarea:focus, .ec-halfInput textarea:focus, .ec-numberInput textarea:focus, .ec-zipInput textarea:focus, .ec-telInput textarea:focus, .ec-select textarea:focus, .ec-birth textarea:focus {\n box-shadow: none;\n border-color: #3c8dbc; }\n\n.ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input, .ec-select input, .ec-birth input {\n height: 40px;\n margin-bottom: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input, .ec-select input, .ec-birth input {\n margin-bottom: 16px; } }\n\n.ec-input textarea, .ec-halfInput textarea, .ec-numberInput textarea, .ec-zipInput textarea, .ec-telInput textarea, .ec-select textarea, .ec-birth textarea {\n height: auto;\n min-height: 100px; }\n\n.ec-input p, .ec-halfInput p, .ec-numberInput p, .ec-zipInput p, .ec-telInput p, .ec-select p, .ec-birth p {\n line-height: 1.4; }\n\n.ec-input .ec-errorMessage, .ec-halfInput .ec-errorMessage, .ec-numberInput .ec-errorMessage, .ec-zipInput .ec-errorMessage, .ec-telInput .ec-errorMessage, .ec-select .ec-errorMessage, .ec-birth .ec-errorMessage {\n margin-bottom: 25px;\n font-size: 12px;\n font-weight: bold;\n color: #DE5D50; }\n\n.error.ec-input input, .error.ec-halfInput input, .error.ec-numberInput input, .error.ec-zipInput input, .error.ec-telInput input, .error.ec-select input, .error.ec-birth input, .error.ec-input select, .error.ec-halfInput select, .error.ec-numberInput select, .error.ec-zipInput select, .error.ec-telInput select, .error.ec-select select, .error.ec-birth select {\n margin-bottom: 5px;\n border-color: #CF3F34;\n background: #FDF1F0; }\n\n.ec-checkbox .ec-errorMessage {\n margin-bottom: 25px;\n font-size: 12px;\n font-weight: bold;\n color: #DE5D50; }\n\n.error.ec-checkbox input, .error.ec-checkbox label {\n border-color: #CF3F34;\n background: #FDF1F0; }\n\n/*\nフォーム(text2つ)\n\n姓名など2つ入力させたい入力項目で使用します。\n\n入力フォームを半分で用意したいときにも利用可能です。\n\nex [会員情報編集画面 フォーム部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\np.ec-halfInput\n input(type=\"text\")\n input(type=\"text\")\np.ec-halfInput\n input(type=\"text\")\n\nStyleguide 3.1.2\n*/\n.ec-halfInput input[type='text'] {\n display: inline-block;\n width: 47%;\n margin-left: 2%; }\n @media only screen and (min-width: 768px) {\n .ec-halfInput input[type='text'] {\n margin-left: 15px;\n width: 45%; } }\n\n.ec-halfInput input[type='text']:first-child {\n margin-left: 0; }\n\n/*\n数量ボタン\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [商品詳細画面 数量ボタン部分](http://demo3.ec-cube.net/products/detail/27)\n\nMarkup:\n.ec-numberInput\n span 数量\n input(type=\"number\",value=\"0\")\n\nStyleguide 3.1.3\n*/\n.ec-numberInput input[type='number'] {\n display: inline-block;\n width: auto;\n max-width: 100px;\n text-align: right; }\n\n/*\n郵便番号フォーム\n\n数量を表示するための小さなコンポーネントです。\n\n内部に input 要素を配置してコーディングします。\n\nex [会員情報編集画面 郵便番号部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\n.ec-zipInput\n span 〒\n input(type=\"text\")\n.ec-zipInputHelp\n a(href=\"http://www.post.japanpost.jp/zipcode/\" target=\"_blank\")\n .ec-zipInputHelp__icon\n .ec-icon\n img(src='/moc/icon/question-white.svg', alt='')\n span 郵便番号検索\n.ec-zipAuto\n a.ec-inlineBtn 郵便番号から自動入力\n\nStyleguide 3.1.4\n*/\n.ec-zipInput {\n display: inline-block; }\n .ec-zipInput input {\n display: inline-block;\n text-align: left;\n width: auto;\n max-width: 8em;\n font-size: 16px; }\n .ec-zipInput span {\n display: inline-block;\n padding: 0 5px 0 3px;\n margin-left: 5px; }\n\n.ec-zipInputHelp {\n display: inline-block;\n margin-left: 10px;\n margin-bottom: 16px;\n vertical-align: baseline;\n line-height: 0; }\n .ec-zipInputHelp .ec-zipInputHelp__icon {\n display: inline-block;\n margin-top: -10px;\n width: 20px;\n height: 20px;\n background: #525263;\n border-radius: 50%;\n font-size: 13px;\n position: relative;\n top: -6px; }\n .ec-zipInputHelp .ec-zipInputHelp__icon .ec-icon img {\n width: 1em;\n height: 1em;\n position: relative;\n left: 3px;\n top: 3px; }\n .ec-zipInputHelp span {\n margin-left: 8px;\n display: inline-block;\n color: #0092C4;\n vertical-align: 3px; }\n\n.ec-zipAuto {\n margin-bottom: 16px; }\n .ec-zipAuto .ec-inlineBtn {\n font-weight: normal; }\n\n/*\n電話番号ボタン\n\n数量を表示するための小さなコンポーネントです。\n\n内部に input 要素を配置してコーディングします。\n\nex [会員情報編集画面 電話番号部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\n.ec-telInput\n input(type=\"text\")\n\nStyleguide 3.1.5\n*/\n.ec-telInput input {\n max-width: 10em;\n text-align: left; }\n\n/*\nフォーム部品(その他)\n\nフォーム部品でテキストの入力以外の動作要素を定義します。\n\nsg-wrapper:\n
\n \n\nStyleguide 3.2\n*/\n/*\nラジオ(水平)\n\n水平に並ぶラジオボタンフィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nex [新規会員登録画面 性別選択部分](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-radio\n label\n input(type=\"radio\")\n span 男性\n label\n input(type=\"radio\")\n span 女性\n\nStyleguide 3.2.2\n*/\n.ec-radio label {\n margin-right: 20px; }\n\n.ec-radio input {\n margin-right: 10px;\n margin-bottom: 10px; }\n\n.ec-radio span {\n font-weight: normal; }\n\n/*\nラジオ(垂直)\n\n垂直に並ぶラジオボタンフィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nex [購入画面 お支払方法](http://demo3.ec-cube.net/shopping)\n\nMarkup:\n.ec-blockRadio\n label\n input(type=\"radio\")\n span 郵便振替\n label\n input(type=\"radio\")\n span 現金書留\n label\n input(type=\"radio\")\n span 銀行振込\n label\n input(type=\"radio\")\n span 代金引換\n\nStyleguide 3.2.3\n*/\n.ec-blockRadio label {\n display: block; }\n\n.ec-blockRadio span {\n padding-left: 10px;\n font-weight: normal; }\n\n/*\nセレクトボックス\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [新規会員登録画面 都道府県選択部分](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-select\n select\n option 都道府県を選択\n option 北海道\n option 青森県\n option 岩手県\n option ...\n.ec-select\n select\n option 選択して下さい\n option 公務員\n option コンサルタント\n option コンピュータ関連技術職\n option コンピュータ関連以外の技術職\n option ...\n\nStyleguide 3.2.4\n*/\n.ec-selects {\n margin-bottom: 20px;\n border-bottom: 1px dotted #ccc; }\n\n.ec-select {\n margin-bottom: 16px; }\n .ec-select select {\n display: inline-block;\n width: auto;\n background-color: #f8f8f8;\n -webkit-appearance: menulist;\n -moz-appearance: menulist; }\n .ec-select select:focus {\n box-shadow: none; }\n .ec-select label {\n margin-right: 10px;\n font-weight: bold; }\n .ec-select label:nth-child(3) {\n margin-left: 10px;\n font-weight: bold; }\n\n.ec-select__delivery {\n display: block;\n margin-right: 16px; }\n @media only screen and (min-width: 768px) {\n .ec-select__delivery {\n display: inline-block; } }\n\n.ec-select__time {\n display: block; }\n @media only screen and (min-width: 768px) {\n .ec-select__time {\n display: inline-block; } }\n\n/*\n生年月日選択\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [新規会員登録画面 生年月日選択部分](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-birth\n select\n option ----\n option 1960\n option 1961\n option 1962\n option ...\n span /\n select\n option --\n option 01\n option 02\n option 03\n option ...\n span /\n select\n option --\n option 01\n option 02\n option 03\n option ...\n\nStyleguide 3.2.5\n*/\n.ec-birth select {\n display: inline-block;\n width: auto;\n margin: 0 0 10px;\n background-color: #f8f8f8;\n -webkit-appearance: menulist;\n -moz-appearance: menulist; }\n .ec-birth select:focus {\n box-shadow: none; }\n @media only screen and (min-width: 768px) {\n .ec-birth select {\n margin: 0 8px 10px; } }\n\n.ec-birth span {\n margin-left: 5px; }\n\n/*\nチェックボックス (水平)\n\n水平に並ぶチェックボックス フィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nex [新規会員登録画面 利用規約](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-checkbox\n label\n input(type=\"checkbox\")\n span 利用規約に同意する\n\nStyleguide 3.2.6\n*/\n.ec-checkbox label {\n display: inline-block; }\n\n.ec-checkbox input {\n margin-bottom: 10px; }\n\n.ec-checkbox span {\n font-weight: normal; }\n\n/*\nチェックボックス (垂直)\n\n垂直に並ぶチェックボックス フィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nMarkup:\n.ec-blockCheckbox\n label\n input(type=\"checkbox\")\n span 利用規約に同意する\n\nStyleguide 3.2.7\n*/\n.ec-blockCheckbox label {\n display: block; }\n\n.ec-blockCheckbox span {\n font-weight: normal; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nフォームラベル\n\nフォームのラベルに関する要素を定義します。\n\nsg-wrapper:\n
\n
\n
\n
\n \n
\n
\n
\n
\n\nStyleguide 3.3\n*/\n/*\nラベル\n\nフォーム要素で利用するラベル要素です。\n\nex [お問い合わせページ ラベル部分](http://demo3.ec-cube.net/contact)\n\nMarkup:\n.ec-borderedDefs\n dl\n dt\n label.ec-label お名前\n dd\n .ec-input\n input(type=\"text\")\n\nStyleguide 3.3.1\n*/\n.ec-label {\n display: inline-block;\n font-weight: bold;\n margin-bottom: 5px; }\n\n/*\n必須ラベル\n\n必須文字を表示するラベル要素です。\n\nex [お問い合わせページ 必須ラベル部分](http://demo3.ec-cube.net/contact)\n\n\nMarkup:\n.ec-borderedDefs\n dl\n dt\n label.ec-label お名前\n span.ec-required 必須\n dd\n .ec-input\n input(type=\"text\")\n\nStyleguide 3.3.2\n*/\n.ec-required {\n display: inline-block;\n margin-left: .8em;\n vertical-align: 2px;\n color: #DE5D50;\n font-size: 12px;\n font-weight: normal; }\n @media only screen and (min-width: 768px) {\n .ec-required {\n margin-left: 1em; } }\n\n/*\nアイコン\n\nデフォルトテンプレートのアイコンは`.ec-icon`>`img`タグで使用することができます\n\nsg-wrapper:\n
\n \n\nMarkup:\ninclude /assets/tmpl/elements/4.1.icon.pug\ndiv(style=\"background-color: rgba(130,130,130,.15); padding: 20px;\")\n +icon-all\n\nStyleguide 4.1\n*/\n.ec-icon img {\n max-width: 80px;\n max-height: 80px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nグリッド\n\n画面を12分割し、グリッドレイアウトに対応するためのスタイルです。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 5.1\n*/\n/*\n2分割グリッド\n\n画面 2分割の グリッドです。\nBootstrap の col-sm-6 相当のグリッドを提供します。\n\nMarkup:\n.ec-grid2\n .ec-grid2__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid2__cell\n .ec-grid2__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid2__cell\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 5.1.1\n*/\n.ec-grid2 {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-grid2 {\n display: flex; } }\n .ec-grid2 .ec-grid2__cell {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid2 .ec-grid2__cell {\n width: 50%; } }\n .ec-grid2 .ec-grid2__cell2 {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid2 .ec-grid2__cell2 {\n width: 100%; } }\n\n/*\n3分割グリッド\n\n画面 3分割の グリッドです。\n\n\nMarkup:\n.ec-grid3\n .ec-grid3__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid3__cell\n .ec-grid3__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid3__cell\n .ec-grid3__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid3__cell\n\nStyleguide 5.1.2\n*/\n.ec-grid3 {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-grid3 {\n display: flex; } }\n .ec-grid3 .ec-grid3__cell {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid3 .ec-grid3__cell {\n width: 33.33333%; } }\n .ec-grid3 .ec-grid3__cell2 {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid3 .ec-grid3__cell2 {\n width: 66.66667%; } }\n .ec-grid3 .ec-grid3__cell3 {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid3 .ec-grid3__cell3 {\n width: 100%; } }\n\n/*\n4分割グリッド\n\n画面 4分割の グリッドです。\n\n\nMarkup:\n.ec-grid4\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n\nStyleguide 5.1.3\n*/\n.ec-grid4 {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-grid4 {\n display: flex; } }\n .ec-grid4 .ec-grid4__cell {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid4 .ec-grid4__cell {\n width: 25%; } }\n\n/*\n6分割グリッド\n\n2つにまとめた cell2 や 3つをまとめた cell3 タグも使用可能です。\n\n\nMarkup:\n.ec-grid6\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n.ec-grid6\n .ec-grid6__cell2(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell2\n .ec-grid6__cell2(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell2\n .ec-grid6__cell2(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell2\n.ec-grid6\n .ec-grid6__cell3(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell3\n .ec-grid6__cell3(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell3\n\nStyleguide 5.1.4\n*/\n.ec-grid6 {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-grid6 {\n display: flex; } }\n .ec-grid6 .ec-grid6__cell {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid6 .ec-grid6__cell {\n width: 16.66667%; } }\n .ec-grid6 .ec-grid6__cell2 {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid6 .ec-grid6__cell2 {\n width: 33.33333%; } }\n .ec-grid6 .ec-grid6__cell3 {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid6 .ec-grid6__cell3 {\n width: 50%; } }\n\n/*\n中央寄せグリッド 10/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の10グリッドです\n\nex [ご利用規約ページ 本文](http://demo3.ec-cube.net/help/agreement)\n\nMarkup:\n.ec-off1Grid\n .ec-off1Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\nStyleguide 5.1.5\n*/\n.ec-off1Grid {\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off1Grid {\n display: block;\n margin: 0; } }\n @media only screen and (min-width: 768px) and (min-width: 768px) {\n .ec-off1Grid {\n display: flex; } }\n .ec-off1Grid .ec-off1Grid__cell {\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off1Grid .ec-off1Grid__cell {\n position: relative;\n min-height: 1px;\n margin-left: 8.33333%; } }\n @media only screen and (min-width: 768px) and (min-width: 768px) {\n .ec-off1Grid .ec-off1Grid__cell {\n width: 83.33333%; } }\n\n/*\n中央寄せグリッド 8/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の8グリッドです\n\n\nMarkup:\n.ec-off2Grid\n .ec-off2Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\nStyleguide 5.1.6\n*/\n.ec-off2Grid {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off2Grid {\n display: flex; } }\n .ec-off2Grid .ec-off2Grid__cell {\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off2Grid .ec-off2Grid__cell {\n position: relative;\n min-height: 1px;\n margin-left: 16.66667%; } }\n @media only screen and (min-width: 768px) and (min-width: 768px) {\n .ec-off2Grid .ec-off2Grid__cell {\n width: 66.66667%; } }\n\n/*\n中央寄せグリッド 6/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の6グリッドです\n\n\nMarkup:\n.ec-off3Grid\n .ec-off3Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\nStyleguide 5.1.7\n*/\n.ec-off3Grid {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off3Grid {\n display: flex; } }\n .ec-off3Grid .ec-off3Grid__cell {\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off3Grid .ec-off3Grid__cell {\n position: relative;\n min-height: 1px;\n margin-left: 25%; } }\n @media only screen and (min-width: 768px) and (min-width: 768px) {\n .ec-off3Grid .ec-off3Grid__cell {\n width: 50%; } }\n\n/*\n中央寄せグリッド 4/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の4グリッドです\n\n\nMarkup:\n.ec-off4Grid\n .ec-off4Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\n\nStyleguide 5.1.8\n*/\n.ec-off4Grid {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off4Grid {\n display: flex; } }\n .ec-off4Grid .ec-off4Grid__cell {\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off4Grid .ec-off4Grid__cell {\n position: relative;\n min-height: 1px;\n margin-left: 33.33333%; } }\n @media only screen and (min-width: 768px) and (min-width: 768px) {\n .ec-off4Grid .ec-off4Grid__cell {\n width: 33.33333%; } }\n\n/*\nグリッドオプション\n\nグリッドのセルに対して「左寄せ」「中央寄せ」「右寄せ」のオプションを付与することができます。\n\nsg-wrapper:\n
\n \n\nStyleguide 5.1.9\n*/\n/*\nグリッドセルの左寄せ\n\n.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。\n\nMarkup:\n.ec-grid4.ec-grid--left\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n\nStyleguide 5.1.10\n*/\n.ec-grid--left {\n justify-content: flex-start; }\n\n/*\nグリッドセルの右寄せ\n\n.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。\n\nMarkup:\n.ec-grid4.ec-grid--right\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n\nStyleguide 5.1.11\n*/\n.ec-grid--right {\n justify-content: flex-end; }\n\n/*\nグリッドセルの中央寄せ\n\n.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。\n\nMarkup:\n.ec-grid4.ec-grid--center\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n\nStyleguide 5.1.12\n*/\n.ec-grid--center {\n justify-content: center; }\n\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nレイアウト\n\n様々なレイアウトを変更する為のスタイル群です。\n\nStyleguide 5.2\n*/\n/*\n画像レイアウト\n\n画像とテキストを水平に並べるレイアウトです。\n\n画像は20%で表示されます。\n\nex [注文履歴 ログイン後→注文履歴ボタンを押下](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-imageGrid\n .ec-imageGrid__img: img(src=\"http://demo3.ec-cube.net/upload/save_image/0701113537_559351f959620.jpeg\")\n .ec-imageGrid__content\n p.ec-font-bold ホーローマグ\n p ¥ 1,728 x 1\n\nsg-wrapper:\n
\n \n\n\nStyleguide 5.2.1\n*/\n.ec-imageGrid {\n display: table;\n border-top: 1px dotted #ccc;\n width: 100%; }\n .ec-imageGrid .ec-imageGrid__img {\n display: table-cell;\n padding: 10px;\n width: 100px; }\n @media only screen and (min-width: 768px) {\n .ec-imageGrid .ec-imageGrid__img {\n padding: 10px;\n width: 130px; } }\n .ec-imageGrid .ec-imageGrid__img img {\n width: 100%; }\n .ec-imageGrid .ec-imageGrid__content {\n vertical-align: middle;\n display: table-cell; }\n .ec-imageGrid .ec-imageGrid__content span {\n margin-left: 10px; }\n .ec-imageGrid .ec-imageGrid__content p {\n margin-bottom: 0; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\nログイン\n\n主にログインフォームのスタイルを表示します。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 6.1\n*/\n/*\nログインフォーム\n\nログインフォームを表示します。\n\nex [ログイン画面](http://demo3.ec-cube.net/mypage/login)\n\nMarkup:\ninclude /assets/tmpl/elements/6.3.login.pug\n+ec-login\n\n\nStyleguide 6.1.1\n*/\n.ec-login {\n margin: 0 0 20px;\n padding: 30px 13% 20px;\n height: auto;\n background: #F3F4F4;\n box-sizing: border-box; }\n @media only screen and (min-width: 768px) {\n .ec-login {\n margin: 0 16px;\n padding: 30px 13% 60px; } }\n .ec-login .ec-login__icon {\n text-align: center; }\n .ec-login .ec-icon {\n margin-bottom: 10px; }\n .ec-login .ec-icon img {\n width: 90px;\n height: 90px;\n display: inline-block; }\n .ec-login .ec-login__input {\n margin-bottom: 40px; }\n .ec-login .ec-login__input .ec-checkbox span {\n margin-left: 5px;\n font-weight: normal; }\n .ec-login .ec-login__actions {\n color: #fff; }\n .ec-login .ec-login__actions a {\n color: inherit;\n text-decoration: none; }\n .ec-login .ec-login__actions a:hover {\n text-decoration: none; }\n .ec-login .ec-login__link {\n margin-top: 5px;\n margin-left: 0; }\n @media only screen and (min-width: 768px) {\n .ec-login .ec-login__link {\n margin-left: 20px; } }\n .ec-login .ec-errorMessage {\n color: #DE5D50;\n margin-bottom: 20px; }\n\n/*\nゲスト購入\n\nゲスト購入ボタンとそのフォームを表示します。\n\nex [ゲスト購入画面](http://demo3.ec-cube.net/shopping/login)\n\nMarkup:\ninclude /assets/tmpl/elements/6.3.login.pug\n+ec-guest\nhoge\n\nStyleguide 6.1.2\n*/\n.ec-guest {\n display: table;\n margin: 0;\n padding: 13%;\n height: auto;\n box-sizing: border-box;\n background: #F3F4F4; }\n @media only screen and (min-width: 768px) {\n .ec-guest {\n height: 100%;\n margin: 0 16px; } }\n .ec-guest .ec-guest__inner {\n display: table-cell;\n vertical-align: middle;\n text-align: center; }\n .ec-guest .ec-guest__inner p {\n margin-bottom: 16px; }\n .ec-guest .ec-guest__actions {\n display: block;\n vertical-align: middle;\n text-align: center;\n color: #fff; }\n .ec-guest .ec-guest__actions a {\n color: inherit;\n text-decoration: none; }\n .ec-guest .ec-guest__actions a:hover {\n text-decoration: none; }\n .ec-guest .ec-guest__icon {\n font-size: 70px;\n text-align: center; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\n商品掲載\n\nトップページに商品掲載するスタイルガイド群です。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 7.1\n*/\n/*\n商品アイテム(商品紹介B)\n\n3項目横並びの商品アイテムを表示します。\n必要に応じて商品詳細や、キャッチコピーなどを添えることが出来ます。\n\nex [トップページ 商品紹介部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/7.1.itembanner.pug\n+ec-displayB\n\nStyleguide 7.1.1\n*/\n.ec-displayB {\n margin-bottom: 24px;\n display: flex;\n justify-content: space-between;\n flex-direction: column; }\n @media only screen and (min-width: 768px) {\n .ec-displayB {\n flex-direction: row; } }\n .ec-displayB .ec-displayB__cell {\n width: 100%;\n margin-bottom: 16px; }\n .ec-displayB .ec-displayB__cell a {\n color: inherit;\n text-decoration: none; }\n .ec-displayB .ec-displayB__cell a:hover {\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-displayB .ec-displayB__cell {\n width: 31.4466%;\n margin-bottom: 0; } }\n .ec-displayB .ec-displayB__cell:hover {\n text-decoration: none; }\n .ec-displayB .ec-displayB__cell:hover img {\n opacity: .8; }\n .ec-displayB .ec-displayB__cell:hover a {\n text-decoration: none; }\n .ec-displayB .ec-displayB__img {\n margin-bottom: 15px; }\n .ec-displayB .ec-displayB__catch {\n margin-bottom: 15px;\n text-decoration: none;\n font-weight: bold;\n color: #9a947e; }\n .ec-displayB .ec-displayB__comment {\n margin-bottom: 14px;\n text-decoration: none;\n color: #525263;\n font-size: 14px; }\n .ec-displayB .ec-displayB__link {\n text-decoration: none;\n font-weight: bold;\n color: #9a947e; }\n\n/*\n商品アイテム(商品紹介C)\n\n4項目横並びの商品アイテムを表示します。\n\nex [トップページ 商品紹介部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/7.1.itembanner.pug\n+ec-displayC\np hoge\n\nStyleguide 7.1.2\n*/\n.ec-displayC {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n margin-bottom: 24px; }\n .ec-displayC .ec-displayC__cell {\n width: 47%; }\n .ec-displayC .ec-displayC__cell a {\n color: inherit;\n text-decoration: none; }\n .ec-displayC .ec-displayC__cell a:hover {\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-displayC .ec-displayC__cell {\n width: 22.8775%; } }\n .ec-displayC .ec-displayC__cell:hover a {\n text-decoration: none; }\n .ec-displayC .ec-displayC__cell:hover img {\n opacity: .8; }\n .ec-displayC .ec-displayC__img {\n display: block;\n width: 100%;\n margin-bottom: 15px; }\n .ec-displayC .ec-displayC__catch {\n display: block;\n width: 100%;\n font-weight: bold;\n color: #9a947e; }\n .ec-displayC .ec-displayC__title {\n display: block;\n width: 100%;\n color: #525263; }\n .ec-displayC .ec-displayC__price {\n display: block;\n width: 100%;\n font-weight: bold;\n color: #525263; }\n .ec-displayC .ec-displayC__price--sp {\n display: block;\n width: 100%;\n font-weight: bold;\n color: #DE5D50; }\n\n/*\n商品アイテム(商品紹介D)\n\n6項目横並びの商品アイテムを表示します。\n\nex [トップページ 商品紹介部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/7.1.itembanner.pug\n+ec-displayD\n\nStyleguide 7.1.3\n*/\n.ec-displayD {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap-reverse; }\n @media only screen and (min-width: 768px) {\n .ec-displayD {\n box-sizing: border-box;\n flex-wrap: nowrap; } }\n .ec-displayD .ec-displayD__cell {\n width: 30%;\n margin-bottom: 8px; }\n .ec-displayD .ec-displayD__cell a {\n color: inherit;\n text-decoration: none; }\n .ec-displayD .ec-displayD__cell a:hover {\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-displayD .ec-displayD__cell {\n width: 14.3083%;\n margin-bottom: 16px; } }\n .ec-displayD .ec-displayD__cell:hover {\n text-decoration: none; }\n .ec-displayD .ec-displayD__cell:hover img {\n opacity: .8; }\n .ec-displayD .ec-displayD__img {\n display: block;\n width: 100%; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\n検索・一覧表示\n\n検索欄や、一覧表示に使用するスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 7.2\n*/\n/*\nトピックパス\n\n検索結果で表示されるトピックパスのスタイルです。\n\nex [商品一覧ページ 横並びリスト部分](http://demo3.ec-cube.net/products/list?category_id=&name=)\n\nMarkup:\ninclude /assets/tmpl/elements/7.2.search.pug\n+ec-topicpath\n\nStyleguide 7.2.1\n*/\n.ec-topicpath {\n letter-spacing: -.4em;\n -webkit-margin-before: 0;\n -webkit-margin-after: 0;\n -webkit-margin-start: 0;\n -webkit-margin-end: 0;\n -webkit-padding-start: 0;\n border-top: 1px solid #ccc;\n border-bottom: 1px dotted #ccc;\n padding: 10px;\n list-style: none;\n overflow: hidden;\n font-size: 12px;\n color: #0092C4; }\n @media only screen and (min-width: 768px) {\n .ec-topicpath {\n padding: 30px 0 10px;\n border: 0;\n font-size: 16px; } }\n .ec-topicpath .ec-topicpath__item a {\n color: inherit;\n text-decoration: none; }\n .ec-topicpath .ec-topicpath__item a:hover {\n text-decoration: none; }\n .ec-topicpath .ec-topicpath__divider {\n color: #000; }\n .ec-topicpath .ec-topicpath__item,\n .ec-topicpath .ec-topicpath__divider,\n .ec-topicpath .ec-topicpath__item--active {\n display: inline-block;\n min-width: 16px;\n text-align: center;\n position: relative;\n letter-spacing: normal; }\n .ec-topicpath .ec-topicpath__item--active {\n font-weight: bold; }\n .ec-topicpath .ec-topicpath__item--active a {\n color: inherit;\n text-decoration: none; }\n .ec-topicpath .ec-topicpath__item--active a:hover {\n text-decoration: none; }\n\n/*\nページャ\n\n検索結果で表示される商品一覧のスタイルです。\n\nex [商品一覧ページ ページャ部分](http://demo3.ec-cube.net/products/list?category_id=&name=)\n\nMarkup:\ninclude /assets/tmpl/elements/7.2.search.pug\n+ec-pager\n\nStyleguide 7.2.2\n*/\n.ec-pager {\n list-style: none;\n list-style-type: none;\n margin: 0 auto;\n padding: 1em 0;\n text-align: center; }\n .ec-pager .ec-pager__item,\n .ec-pager .ec-pager__item--active {\n display: inline-block;\n min-width: 29px;\n padding: 0 3px 0 2px;\n text-align: center;\n position: relative; }\n .ec-pager .ec-pager__item a,\n .ec-pager .ec-pager__item--active a {\n color: inherit;\n text-decoration: none; }\n .ec-pager .ec-pager__item a:hover,\n .ec-pager .ec-pager__item--active a:hover {\n text-decoration: none; }\n .ec-pager .ec-pager__item a,\n .ec-pager .ec-pager__item--active a {\n color: inherit;\n display: block;\n line-height: 1.8;\n padding: 5px 1em;\n text-decoration: none; }\n .ec-pager .ec-pager__item a:hover,\n .ec-pager .ec-pager__item--active a:hover {\n color: inherit; }\n .ec-pager .ec-pager__item--active {\n background: #F3F3F3; }\n .ec-pager .ec-pager__item:hover {\n background: #F3F3F3; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n visibility: hidden; }\n 100% {\n opacity: 1;\n visibility: visible; } }\n\n@keyframes fadeOut {\n 0% {\n opacity: 1;\n visibility: visible; }\n 100% {\n opacity: 0;\n visibility: hidden; } }\n\n.bg-load-overlay {\n background: rgba(255, 255, 255, 0.4);\n box-sizing: border-box;\n position: fixed;\n display: flex;\n flex-flow: column nowrap;\n align-items: center;\n justify-content: space-around;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 2147483647;\n opacity: 1; }\n\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\nカート\n\nショッピングカートに関するスタイルです。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 7.3\n*/\n/*\nカートヘッダ\n\n購入完了までの手順や、現在の状態を表示します。\n\nul 要素を用いたリスト要素としてマークアップします。\n\nex [カートページ ヘッダ部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/7.3.cart.pug\n+ec-progress\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 7.3.1\n*/\n.ec-progress {\n margin: 0 auto;\n padding: 8px 0 16px;\n display: table;\n table-layout: fixed;\n width: 100%;\n max-width: 600px;\n list-style: none; }\n @media only screen and (min-width: 768px) {\n .ec-progress {\n margin-bottom: 30px;\n padding: 0; } }\n .ec-progress .ec-progress__item {\n display: table-cell;\n position: relative;\n font-size: 14px;\n text-align: center;\n font-weight: bold;\n z-index: 10; }\n .ec-progress .ec-progress__item:after {\n content: '';\n position: absolute;\n display: block;\n background: #525263;\n width: 100%;\n height: 0.25em;\n top: 1.25em;\n left: 50%;\n margin-left: 1.5em\\9;\n z-index: -1; }\n .ec-progress .ec-progress__item:last-child:after {\n display: none; }\n .ec-progress .ec-progress__number {\n line-height: 30px;\n width: 30px;\n height: 30px;\n margin-bottom: 5px;\n font-size: 12px;\n background: #525263;\n color: #fff;\n top: 0;\n left: 18px;\n display: inline-block;\n text-align: center;\n vertical-align: middle;\n border-radius: 50%; }\n @media only screen and (min-width: 768px) {\n .ec-progress .ec-progress__number {\n line-height: 42px;\n width: 42px;\n height: 42px;\n font-size: 20px; } }\n .ec-progress .ec-progress__label {\n font-size: 12px; }\n .ec-progress .is-complete .ec-progress__number {\n background: #5CB1B1; }\n .ec-progress .is-complete .ec-progress__label {\n color: #5CB1B1; }\n\n/*\nカートナビゲーション\n\nカートナビゲーションを表示します。 カートに追加された商品の個数も表示します。\n\nex [カートページ ナビゲーション部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\n+ec-headerCart\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 7.3.5\n*/\n@media only screen and (min-width: 768px) {\n .ec-cartNaviWrap {\n position: relative; } }\n\n.ec-cartNavi {\n display: inline-block;\n padding: 10px 0 0 20px;\n width: auto;\n color: black;\n background: transparent; }\n @media only screen and (min-width: 768px) {\n .ec-cartNavi {\n display: flex;\n justify-content: space-between;\n border-radius: 99999px;\n box-sizing: border-box;\n padding: 12px 17px 10px;\n width: auto;\n min-width: 140px;\n height: 44px;\n white-space: nowrap;\n cursor: pointer;\n background: #F8F8F8; } }\n .ec-cartNavi .ec-cartNavi__icon {\n display: inline-block;\n font-size: 20px;\n display: inline-block;\n opacity: 1;\n visibility: visible;\n animation: fadeIn 200ms linear 0s;\n position: relative; }\n .ec-cartNavi .ec-cartNavi__badge {\n display: inline-block;\n border-radius: 99999px;\n box-sizing: border-box;\n padding: 5px;\n height: 17px;\n font-size: 10px;\n line-height: 0.7;\n vertical-align: top;\n color: #fff;\n text-align: left;\n white-space: nowrap;\n background-color: #DE5D50;\n position: absolute;\n left: 60%;\n top: -10px; }\n @media only screen and (min-width: 768px) {\n .ec-cartNavi .ec-cartNavi__badge {\n display: inline-block;\n min-width: 17px;\n position: relative;\n left: 0;\n top: 0; } }\n .ec-cartNavi .ec-cartNavi__price {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-cartNavi .ec-cartNavi__price {\n display: inline-block;\n font-size: 14px;\n font-weight: normal;\n vertical-align: middle; } }\n\n.ec-cartNavi.is-active .ec-cartNavi__icon:before {\n content: \"\\f00d\";\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900; }\n\n.ec-cartNavi.is-active .ec-cartNavi__badge {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-cartNavi.is-active .ec-cartNavi__badge {\n display: none; } }\n\n/*\nカートナビゲーションのポップアップ(商品詳細)\n\nカートナビゲーションのポップアップを表示します。カートに追加された商品の詳細が表示されます。\n\nex [カートページ ナビゲーション部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ndiv(style=\"height:350px;\")\n // 上記のdivはスタイルガイド都合上、高さをもたせるため設置(mocでは不要)\n .is_active\n .ec-cartNavi\n .ec-cartNavi__icon\n img(src='/moc/icon/cart-dark.svg', alt='close')\n .ec-cartNavi__iconClose\n img(src='/moc/icon/cross-dark.svg', alt='close')\n .ec-cartNavi__badge 1\n .ec-cartNavi__label\n | 合計\n .ec-cartNavi__price ¥1920\n +b.ec-cartNaviIsset\n +e.cart\n +e.cartImage\n img(src='http://demo3.ec-cube.net/upload/save_image/0701104933_5593472d8d179.jpeg')\n +e.cartContent\n +e.cartContentTitle ミニテーブル\n +e.cartContentPrice ¥ 12,960\n +e.cartContentTax 税込\n +e.cartContentNumber 数量:1\n +e.action\n a.ec-blockBtn--action(href=\"/moc/guest/cart1\") カートへ進む\n a.ec-blockBtn.ec-cartNavi--cancel キャンセル\n\nStyleguide 7.3.6\n*/\n.ec-cartNaviIsset {\n display: none;\n width: 100%;\n text-align: center;\n background: #f8f8f8;\n box-sizing: border-box;\n padding: 16px;\n z-index: 20;\n position: absolute;\n right: 0; }\n @media only screen and (min-width: 768px) {\n .ec-cartNaviIsset {\n margin-top: 10px;\n min-width: 256px;\n max-width: 256px; }\n .ec-cartNaviIsset::before {\n display: inline-block;\n content: \"\";\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0 8.5px 10px 8.5px;\n border-color: transparent transparent #f8f8f8 transparent;\n position: absolute;\n top: -9px; } }\n .ec-cartNaviIsset .ec-cartNaviIsset__cart {\n border-bottom: 1px solid #E8E8E8;\n margin-bottom: 16px;\n padding-bottom: 32px; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cart:after {\n content: \" \";\n display: table; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cart:after {\n clear: both; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartImage {\n float: left;\n width: 45%; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartImage img {\n width: 100%; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartContent {\n float: right;\n width: 55%;\n padding-left: 16px;\n text-align: left;\n box-sizing: border-box; }\n .ec-cartNaviIsset .ec-cartNaviIsset__action .ec-blockBtn--action {\n color: #fff;\n margin-bottom: 8px; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartContentTitle {\n margin-bottom: 8px; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartContentPrice {\n font-weight: bold; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartContentTax {\n display: inline-block;\n font-size: 12px;\n font-weight: normal;\n margin-left: 2px; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartContentNumber {\n font-size: 14px; }\n\n.ec-cartNaviIsset.is-active {\n display: block; }\n\n/*\nカートナビゲーションのポップアップ(商品なし)\n\nカートナビゲーションのポップアップを表示します。商品が登録されていない場合の表示です。\n\nex [カートページ ナビゲーション部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ndiv(style=\"height:170px;\")\n // 上記のdivはスタイルガイド都合上、高さをもたせるため設置(mocでは不要)\n .is_active\n .ec-cartNavi\n .ec-cartNavi__icon\n img(src='/moc/icon/cart-dark.svg', alt='cart')\n .ec-cartNavi__iconClose\n img(src='/moc/icon/cross-dark.svg', alt='close')\n .ec-cartNavi__badge 1\n .ec-cartNavi__label\n | 合計\n .ec-cartNavi__price ¥1920\n .ec-cartNaviNull\n .ec-cartNaviNull__message\n p 現在カート内に\n br\n | 商品がございません。\n //+b.ec-cartNaviIsset\n // +e.cart\n // +e.cartImage\n // img(src='http://demo3.ec-cube.net/upload/save_image/0701104933_5593472d8d179.jpeg')\n // +e.cartContent\n // +e.cartContentTitle ミニテーブル\n // +e.cartContentPrice ¥ 12,960\n // +e.cartContentTax 税込\n // +e.cartContentNumber 数量:1\n // +e.action\n // a.ec-blockBtn--action(href=\"/moc/guest/cart1\") カートへ進む\n // a.ec-blockBtn キャンセル\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 7.3.7\n*/\n.ec-cartNaviNull {\n display: none;\n width: 100%;\n text-align: center;\n background: #f8f8f8;\n box-sizing: border-box;\n padding: 16px;\n z-index: 3;\n position: absolute;\n right: 0; }\n @media only screen and (min-width: 768px) {\n .ec-cartNaviNull {\n margin-top: 10px;\n min-width: 256px;\n max-width: 256px; }\n .ec-cartNaviNull::before {\n display: inline-block;\n content: \"\";\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0 8.5px 10px 8.5px;\n border-color: transparent transparent #f8f8f8 transparent;\n position: absolute;\n top: -9px; } }\n .ec-cartNaviNull .ec-cartNaviNull__message {\n border: 1px solid #D9D9D9;\n padding: 16px 0;\n font-size: 16px;\n font-weight: bold;\n color: #fff;\n background-color: #F99; }\n .ec-cartNaviNull .ec-cartNaviNull__message p {\n margin: 0; }\n\n.ec-cartNaviNull.is-active {\n display: block; }\n\n/*\n総計\n\n会計時の合計金額、総計を表示します。\n\nex [カートページ 統計部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/7.3.cart.pug\n+ec-totalBox\n\nStyleguide 7.3.8\n*/\n.ec-totalBox {\n background: #F3F3F3;\n padding: 16px;\n margin-bottom: 16px; }\n .ec-totalBox .ec-totalBox__spec {\n position: relative;\n margin-bottom: 8px; }\n .ec-totalBox .ec-totalBox__spec dt {\n font-weight: normal;\n position: relative;\n top: 0;\n left: 0;\n text-align: left; }\n .ec-totalBox .ec-totalBox__spec dd {\n position: absolute;\n top: 0;\n right: 0;\n text-align: right; }\n .ec-totalBox .ec-totalBox__spec .ec-totalBox .ec-totalBox__spec__specTotal {\n color: #DE5D50; }\n .ec-totalBox .ec-totalBox__total {\n border-top: 1px dotted #ccc;\n padding: 8px 0;\n text-align: right;\n font-size: 14px;\n font-weight: bold; }\n .ec-totalBox .ec-totalBox__price {\n margin-left: 16px;\n font-size: 16px;\n font-weight: bold;\n color: #DE5D50; }\n @media only screen and (min-width: 768px) {\n .ec-totalBox .ec-totalBox__price {\n font-size: 24px; } }\n .ec-totalBox .ec-totalBox__taxLabel {\n margin-left: 8px;\n color: #DE5D50;\n font-size: 12px; }\n @media only screen and (min-width: 768px) {\n .ec-totalBox .ec-totalBox__taxLabel {\n font-size: 14px; } }\n .ec-totalBox .ec-totalBox__btn {\n color: #fff; }\n .ec-totalBox .ec-totalBox__btn a {\n color: inherit;\n text-decoration: none; }\n .ec-totalBox .ec-totalBox__btn a:hover {\n text-decoration: none; }\n .ec-totalBox .ec-totalBox__btn .ec-blockBtn--action {\n font-size: 16px;\n font-weight: bold; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nお知らせ\n\n新着情報やバナーなどの掲載項目を紹介していきます。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 8.1\n*/\n/*\n新着情報\n\n新着情報の掲載をします。\n\nex [トップページ 新着情報部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/8.1.info.pug\n+ec-news\n\nStyleguide 8.1.1\n*/\n.ec-news {\n margin-bottom: 16px;\n background: #F8F8F8; }\n @media only screen and (min-width: 768px) {\n .ec-news {\n margin-right: 3%; } }\n @media only screen and (min-width: 768px) {\n .ec-news {\n margin-bottom: 32px; } }\n .ec-news .ec-news__title {\n font-weight: bold;\n padding: 8px;\n font-size: 16px;\n text-align: center; }\n @media only screen and (min-width: 768px) {\n .ec-news .ec-news__title {\n padding: 16px;\n text-align: left;\n font-size: 24px; } }\n .ec-news .ec-news__items {\n padding: 0;\n list-style: none;\n border-top: 1px dotted #ccc; }\n\n/*\n折りたたみ項目\n\n折りたたみ項目を掲載します。\n\nex [トップページ 折りたたみ項目部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/8.1.info.pug\n+b.ec-news\n +e.title 新着情報\n +e.UL.items\n +e.LI.item\n +b.ec-newsline.is_active\n +e.info\n +e.date 2016/09/29\n +e.comment サイトオープンしました\n +e.close\n a.ec-closeBtn--circle\n span.ec-closeBtn--circle__icon\n .ec-icon\n img(src='/moc/icon/angle-down-white.svg', alt='')\n +e.description 一人暮らしからオフィスなどさまざまなシーンで あなたの生活をサポートするグッズをご家庭へお届けします!\n\nStyleguide 8.1.2\n*/\n.ec-newsline {\n display: flex;\n flex-wrap: wrap;\n overflow: hidden;\n padding: 0 16px; }\n .ec-newsline .ec-newsline__info {\n width: 100%;\n padding: 16px 0; }\n .ec-newsline .ec-newsline__info:after {\n content: \" \";\n display: table; }\n .ec-newsline .ec-newsline__info:after {\n clear: both; }\n .ec-newsline .ec-newsline__date {\n display: inline-block;\n margin-right: 10px;\n float: left; }\n .ec-newsline .ec-newsline__comment {\n display: inline-block;\n float: left; }\n .ec-newsline .ec-newsline__close {\n float: right;\n display: inline-block;\n text-align: right; }\n .ec-newsline .ec-newsline__close .ec-closeBtn--circle {\n display: inline-block;\n width: 25px;\n height: 25px;\n min-width: 25px;\n min-height: 25px; }\n .ec-newsline .ec-newsline__description {\n width: 100%;\n height: 0;\n transition: all .2s ease-out; }\n .ec-newsline.is_active .ec-newsline__description {\n height: auto;\n transition: all .2s ease-out;\n padding-bottom: 16px; }\n .ec-newsline.is_active .ec-icon img {\n transform: rotateX(180deg); }\n\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nマイページ\n\nマイページで利用するためのスタイルガイド群です。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 9.1\n*/\n/*\nマイページ\n\nマイページで表示するメニューリストです。\n\nul を利用したリスト要素で記述します。\n\nex [マイページ メニューリスト部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-navlist\n\nStyleguide 9.1.1\n*/\n.ec-navlistRole .ec-navlistRole__navlist {\n display: flex;\n flex-wrap: wrap;\n border-color: #D0D0D0;\n border-style: solid;\n border-width: 1px 0 0 1px;\n margin-bottom: 32px;\n padding: 0;\n list-style: none; }\n .ec-navlistRole .ec-navlistRole__navlist a {\n color: inherit;\n text-decoration: none; }\n .ec-navlistRole .ec-navlistRole__navlist a:hover {\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-navlistRole .ec-navlistRole__navlist {\n flex-wrap: nowrap; } }\n\n.ec-navlistRole .ec-navlistRole__item {\n width: 50%;\n border-color: #D0D0D0;\n border-style: solid;\n border-width: 0 1px 1px 0;\n text-align: center;\n font-weight: bold; }\n .ec-navlistRole .ec-navlistRole__item a {\n padding: 16px;\n width: 100%;\n display: inline-block; }\n .ec-navlistRole .ec-navlistRole__item a:hover {\n background: #f5f7f8; }\n\n.ec-navlistRole .active a {\n color: #DE5D50; }\n\n/*\nマイページ(お気に入り機能無効)\n\nマイページで表示するメニューリストです。\n\nul を利用したリスト要素で記述します。\n\nex [マイページ メニューリスト部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-navlist_noFavorite\n\nStyleguide 9.1.2\n*/\n/*\nWelcome メッセージ\n\nマイページで表示するログイン名の表示コンポーネントです。\n\nex [マイページ メニューリスト下部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-welcomeMsg\n\nStyleguide 9.1.3\n*/\n.ec-welcomeMsg {\n margin-right: auto;\n margin-left: auto;\n padding-left: 16px;\n padding-right: 16px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n margin: 1em 0;\n padding-bottom: 32px;\n text-align: center;\n border-bottom: 1px dotted #ccc; }\n .ec-welcomeMsg:after {\n content: \" \";\n display: table; }\n .ec-welcomeMsg:after {\n clear: both; }\n .ec-welcomeMsg textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-welcomeMsg img {\n max-width: 100%; }\n .ec-welcomeMsg html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-welcomeMsg *,\n .ec-welcomeMsg *::before,\n .ec-welcomeMsg *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-welcomeMsg img {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-welcomeMsg {\n padding-left: 26px;\n padding-right: 26px; } }\n\n/*\nお気に入り一覧\n\nお気に入り一覧で表示するアイテムの表示コンポーネントです。\n\nex [マイページ お気に入り一覧](http://demo3.ec-cube.net/mypage/favorite)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-favorite\n\nStyleguide 9.1.4\n*/\n.ec-favoriteRole .ec-favoriteRole__header {\n margin-bottom: 16px; }\n\n.ec-favoriteRole .ec-favoriteRole__itemList {\n display: flex;\n flex-wrap: wrap;\n padding: 0;\n list-style: none; }\n .ec-favoriteRole .ec-favoriteRole__itemList a {\n color: inherit;\n text-decoration: none; }\n .ec-favoriteRole .ec-favoriteRole__itemList a:hover {\n text-decoration: none; }\n\n.ec-favoriteRole .ec-favoriteRole__item {\n margin-bottom: 8px;\n width: 47.5%;\n position: relative;\n box-sizing: border-box;\n padding: 10px; }\n .ec-favoriteRole .ec-favoriteRole__item-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center; }\n @media only screen and (min-width: 768px) {\n .ec-favoriteRole .ec-favoriteRole__item-image {\n height: 250px; } }\n .ec-favoriteRole .ec-favoriteRole__item img {\n width: auto;\n max-height: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-favoriteRole .ec-favoriteRole__item {\n width: 25%; } }\n .ec-favoriteRole .ec-favoriteRole__item .ec-closeBtn--circle {\n position: absolute;\n right: 10px;\n top: 10px; }\n .ec-favoriteRole .ec-favoriteRole__item .ec-closeBtn--circle .ec-icon img {\n width: 1em;\n height: 1em; }\n\n.ec-favoriteRole .ec-favoriteRole__itemThumb {\n display: block;\n height: auto;\n margin-bottom: 8px; }\n\n.ec-favoriteRole .ec-favoriteRole__itemTitle {\n margin-bottom: 2px; }\n\n.ec-favoriteRole .ec-favoriteRole__itemPrice {\n font-weight: bold;\n margin-bottom: 0; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n標準セクション\n\n通常のコンテナブロックです。\n\nex [商品詳細ページ コンテナ](http://demo3.ec-cube.net/products/detail/33)\n\nMarkup:\ninclude /assets/tmpl/elements/11.1.role.pug\n+ec-roleRole\n\nStyleguide 11.1\n*/\n.ec-role {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-role:after {\n content: \" \";\n display: table; }\n .ec-role:after {\n clear: both; }\n .ec-role textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-role img {\n max-width: 100%; }\n .ec-role html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-role *,\n .ec-role *::before,\n .ec-role *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-role img {\n width: 100%; }\n\n/*\nマイページセクション\n\nマイページ専用のコンテナブロックです。\n\nex [マイページ コンテナ](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/11.1.role.pug\n+ec-mypageRole\n\nStyleguide 11.1.2\n*/\n.ec-mypageRole {\n margin-right: auto;\n margin-left: auto;\n padding-left: 16px;\n padding-right: 16px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%; }\n .ec-mypageRole:after {\n content: \" \";\n display: table; }\n .ec-mypageRole:after {\n clear: both; }\n .ec-mypageRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-mypageRole img {\n max-width: 100%; }\n .ec-mypageRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-mypageRole *,\n .ec-mypageRole *::before,\n .ec-mypageRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-mypageRole img {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-mypageRole {\n padding-left: 26px;\n padding-right: 26px; } }\n @media only screen and (min-width: 768px) {\n .ec-mypageRole .ec-pageHeader h1 {\n margin: 10px 0 48px;\n padding: 8px 0 18px; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n visibility: hidden; }\n 100% {\n opacity: 1;\n visibility: visible; } }\n\n@keyframes fadeOut {\n 0% {\n opacity: 1;\n visibility: visible; }\n 100% {\n opacity: 0;\n visibility: hidden; } }\n\n.bg-load-overlay {\n background: rgba(255, 255, 255, 0.4);\n box-sizing: border-box;\n position: fixed;\n display: flex;\n flex-flow: column nowrap;\n align-items: center;\n justify-content: space-around;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 2147483647;\n opacity: 1; }\n\n/*\nヘッダー\n\nヘッダー用のプロジェクトコンポーネントを提供します。\n\nex [トップページ ヘッダー](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\ninclude /assets/tmpl/elements/11.4.categoryNavi.pug\n+b.ec-layoutRole\n +e.header\n +ec-headerRole\n +ec-headerNaviRole\n +ec-categoryNaviRole\n\nStyleguide 11.2\n*/\n.ec-layoutRole {\n width: 100%;\n transition: transform 0.3s;\n background: #fff; }\n .ec-layoutRole .ec-layoutRole__contentTop {\n padding: 0; }\n .ec-layoutRole .ec-layoutRole__contents {\n margin-right: auto;\n margin-left: auto;\n width: 100%;\n max-width: 1150px;\n display: flex;\n flex-wrap: nowrap; }\n .ec-layoutRole .ec-layoutRole__main {\n width: 100%; }\n .ec-layoutRole .ec-layoutRole__mainWithColumn {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-layoutRole .ec-layoutRole__mainWithColumn {\n width: 75%; } }\n .ec-layoutRole .ec-layoutRole__mainBetweenColumn {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-layoutRole .ec-layoutRole__mainBetweenColumn {\n width: 50%; } }\n .ec-layoutRole .ec-layoutRole__left,\n .ec-layoutRole .ec-layoutRole__right {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-layoutRole .ec-layoutRole__left,\n .ec-layoutRole .ec-layoutRole__right {\n display: block;\n width: 25%; } }\n\n.ec-headerRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n padding-top: 15px;\n position: relative;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n width: auto; }\n .ec-headerRole:after {\n content: \" \";\n display: table; }\n .ec-headerRole:after {\n clear: both; }\n .ec-headerRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-headerRole img {\n max-width: 100%; }\n .ec-headerRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-headerRole *,\n .ec-headerRole *::before,\n .ec-headerRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-headerRole img {\n width: 100%; }\n .ec-headerRole:after {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-headerRole:after {\n content: \" \";\n display: table; }\n .ec-headerRole:after {\n clear: both; } }\n .ec-headerRole::before {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-headerRole {\n width: 100%; }\n .ec-headerRole:after {\n content: \" \";\n display: table; }\n .ec-headerRole:after {\n clear: both; } }\n .ec-headerRole .ec-headerRole__title {\n width: 100%; }\n .ec-headerRole .ec-headerRole__navSP {\n display: block;\n position: absolute;\n top: 15px;\n width: 27%;\n right: 0;\n text-align: right; }\n @media only screen and (min-width: 768px) {\n .ec-headerRole .ec-headerRole__navSP {\n display: none; } }\n\n.ec-headerNaviRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-top: 15px; }\n .ec-headerNaviRole:after {\n content: \" \";\n display: table; }\n .ec-headerNaviRole:after {\n clear: both; }\n .ec-headerNaviRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-headerNaviRole img {\n max-width: 100%; }\n .ec-headerNaviRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-headerNaviRole *,\n .ec-headerNaviRole *::before,\n .ec-headerNaviRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-headerNaviRole img {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-headerNaviRole {\n padding-bottom: 40px; } }\n .ec-headerNaviRole .ec-headerNaviRole__left {\n width: calc(100% / 3); }\n .ec-headerNaviRole .ec-headerNaviRole__search {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-headerNaviRole .ec-headerNaviRole__search {\n display: inline-block;\n margin-top: 10px; }\n .ec-headerNaviRole .ec-headerNaviRole__search a {\n color: inherit;\n text-decoration: none; }\n .ec-headerNaviRole .ec-headerNaviRole__search a:hover {\n text-decoration: none; } }\n .ec-headerNaviRole .ec-headerNaviRole__navSP {\n display: block; }\n @media only screen and (min-width: 768px) {\n .ec-headerNaviRole .ec-headerNaviRole__navSP {\n display: none; }\n .ec-headerNaviRole .ec-headerNaviRole__navSP a {\n color: inherit;\n text-decoration: none; }\n .ec-headerNaviRole .ec-headerNaviRole__navSP a:hover {\n text-decoration: none; } }\n .ec-headerNaviRole .ec-headerNaviRole__right {\n width: calc(100% * 2 / 3);\n display: flex;\n justify-content: flex-end;\n align-items: center; }\n .ec-headerNaviRole .ec-headerNaviRole__nav {\n display: inline-block; }\n .ec-headerNaviRole .ec-headerNaviRole__nav a {\n color: inherit;\n text-decoration: none; }\n .ec-headerNaviRole .ec-headerNaviRole__nav a:hover {\n text-decoration: none; }\n .ec-headerNaviRole .ec-headerNaviRole__cart {\n display: inline-block; }\n .ec-headerNaviRole .ec-headerNaviRole__cart a {\n color: inherit;\n text-decoration: none; }\n .ec-headerNaviRole .ec-headerNaviRole__cart a:hover {\n text-decoration: none; }\n\n.ec-headerNavSP {\n display: block;\n border-radius: 50%;\n box-sizing: border-box;\n padding: 10px;\n width: 40px;\n height: 40px;\n font-size: 18px;\n text-align: center;\n color: black;\n background: white;\n position: fixed;\n top: 10px;\n left: 10px;\n z-index: 1000; }\n .ec-headerNavSP .fas {\n vertical-align: top; }\n @media only screen and (min-width: 768px) {\n .ec-headerNavSP {\n display: none; } }\n\n.ec-headerNavSP.is-active {\n display: none; }\n\n/*\nヘッダー:タイトル\n\nヘッダー内で使用されるタイトルコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\n+ec-headerTitle\n\nStyleguide 11.2.1\n*/\n.ec-headerTitle {\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%; }\n .ec-headerTitle textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-headerTitle img {\n max-width: 100%; }\n .ec-headerTitle html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-headerTitle *,\n .ec-headerTitle *::before,\n .ec-headerTitle *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-headerTitle img {\n width: 100%; }\n .ec-headerTitle .ec-headerTitle__title {\n text-align: center; }\n .ec-headerTitle .ec-headerTitle__title h1 {\n margin: 0;\n padding: 0; }\n .ec-headerTitle .ec-headerTitle__title a {\n display: inline-block;\n margin-bottom: 30px;\n text-decoration: none;\n font-size: 20px;\n font-weight: bold;\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-headerTitle .ec-headerTitle__title a {\n font-size: 40px; } }\n .ec-headerTitle .ec-headerTitle__title a:hover {\n opacity: .8; }\n .ec-headerTitle .ec-headerTitle__subtitle {\n font-size: 10px;\n text-align: center; }\n @media only screen and (min-width: 768px) {\n .ec-headerTitle .ec-headerTitle__subtitle {\n font-size: 16px;\n margin-bottom: 10px; } }\n .ec-headerTitle .ec-headerTitle__subtitle a {\n display: inline-block;\n color: #0092C4;\n text-decoration: none;\n cursor: pointer; }\n\n/*\nヘッダー:ユーザナビゲーション\n\nヘッダー内でユーザに関与するナビゲーションコンポーネントです。\n

\n`.ec-headerNaviRole`>`.ec-headerNaviRole__nav`内に記述すると2カラム上の右側に配置することができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\n+ec-headerNav\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.2.3\n*/\n.ec-headerNav {\n text-align: right; }\n .ec-headerNav .ec-headerNav__item {\n margin-left: 0;\n display: inline-block;\n font-size: 28px; }\n .ec-headerNav .ec-headerNav__itemIcon {\n display: inline-block;\n margin-right: 10px;\n margin-left: 10px;\n font-size: 18px;\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-headerNav .ec-headerNav__itemIcon {\n margin-right: 0;\n font-size: 20px; } }\n .ec-headerNav .ec-headerNav__itemLink {\n display: none;\n margin-right: 5px;\n font-size: 14px;\n vertical-align: middle;\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-headerNav .ec-headerNav__itemLink {\n display: inline-block; } }\n\n/*\nヘッダー:検索ボックス\n\nヘッダー内で使用される商品検索コンポーネントです。\n

\n`.ec-headerNaviRole`>`.ec-headerNaviRole__search`内に記述すると2カラム上の右側に配置することができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\n+ec-headerSearch\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.2.4\n*/\n.ec-headerSearch:after {\n content: \" \";\n display: table; }\n\n.ec-headerSearch:after {\n clear: both; }\n\n.ec-headerSearch .ec-headerSearch__category {\n float: none; }\n @media only screen and (min-width: 768px) {\n .ec-headerSearch .ec-headerSearch__category {\n float: left;\n width: 43%; } }\n .ec-headerSearch .ec-headerSearch__category .ec-select {\n overflow: hidden;\n width: 100%;\n margin: 0;\n text-align: center; }\n .ec-headerSearch .ec-headerSearch__category .ec-select select {\n width: 100%;\n cursor: pointer;\n padding: 8px 24px 8px 8px;\n text-indent: 0.01px;\n text-overflow: ellipsis;\n border: none;\n outline: none;\n background: transparent;\n background-image: none;\n box-shadow: none;\n appearance: none;\n color: #fff; }\n @media only screen and (min-width: 768px) {\n .ec-headerSearch .ec-headerSearch__category .ec-select select {\n max-width: 165px;\n height: 36px; } }\n .ec-headerSearch .ec-headerSearch__category .ec-select select option {\n color: #000; }\n .ec-headerSearch .ec-headerSearch__category .ec-select select::-ms-expand {\n display: none; }\n .ec-headerSearch .ec-headerSearch__category .ec-select.ec-select_search {\n position: relative;\n border: 0;\n background: #000;\n color: #fff;\n border-top-right-radius: 10px;\n border-top-left-radius: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-headerSearch .ec-headerSearch__category .ec-select.ec-select_search {\n border-top-right-radius: inherit;\n border-top-left-radius: 50px;\n border-bottom-left-radius: 50px; } }\n .ec-headerSearch .ec-headerSearch__category .ec-select.ec-select_search::before {\n position: absolute;\n top: 0.8em;\n right: 0.4em;\n width: 0;\n height: 0;\n padding: 0;\n content: '';\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid #fff;\n pointer-events: none; }\n\n.ec-headerSearch .ec-headerSearch__keyword {\n position: relative;\n color: #525263;\n border: 1px solid #ccc;\n background-color: #f6f6f6;\n border-bottom-right-radius: 10px;\n border-bottom-left-radius: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-headerSearch .ec-headerSearch__keyword {\n float: right;\n width: 57%;\n border-bottom-left-radius: inherit;\n border-top-right-radius: 50px;\n border-bottom-right-radius: 50px; } }\n .ec-headerSearch .ec-headerSearch__keyword input[type=\"search\"] {\n width: 100%;\n height: 34px;\n font-size: 1.2rem;\n border: 0 none;\n padding: 0.5em 50px 0.5em 1em;\n box-shadow: none;\n background: none;\n box-sizing: border-box;\n margin-bottom: 0; }\n .ec-headerSearch .ec-headerSearch__keyword .ec-icon {\n width: 22px;\n height: 22px; }\n\n.ec-headerSearch .ec-headerSearch__keywordBtn {\n border: 0;\n background: none;\n position: absolute;\n right: 5px;\n top: 50%;\n transform: translateY(-55%);\n display: block;\n white-space: nowrap;\n z-index: 1; }\n\n/*\nヘッダー:カテゴリナビ\n\nヘッダー内で使用されている商品のカテゴリ一覧として使用します。\n`li`の中に`ul > li`要素を入れることで、階層を深くする事ができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.4.categoryNavi.pug\n+ec-itemNav\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 11.2.5\n*/\n.ec-categoryNaviRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n display: none; }\n .ec-categoryNaviRole:after {\n content: \" \";\n display: table; }\n .ec-categoryNaviRole:after {\n clear: both; }\n .ec-categoryNaviRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-categoryNaviRole img {\n max-width: 100%; }\n .ec-categoryNaviRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-categoryNaviRole *,\n .ec-categoryNaviRole *::before,\n .ec-categoryNaviRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-categoryNaviRole img {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-categoryNaviRole {\n display: block;\n width: 100%; }\n .ec-categoryNaviRole a {\n color: inherit;\n text-decoration: none; }\n .ec-categoryNaviRole a:hover {\n text-decoration: none; } }\n\n.ec-itemNav {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n text-align: center; }\n\n.ec-itemNav__nav {\n display: block;\n margin: 0 auto;\n padding: 0;\n width: auto;\n height: auto;\n list-style-type: none;\n text-align: center;\n vertical-align: bottom; }\n @media only screen and (min-width: 768px) {\n .ec-itemNav__nav {\n display: inline-block; } }\n\n.ec-itemNav__nav li {\n float: none;\n margin: 0;\n padding: 0;\n width: 100%;\n text-align: center;\n position: relative; }\n @media only screen and (min-width: 768px) {\n .ec-itemNav__nav li {\n float: left;\n width: auto; } }\n\n.ec-itemNav__nav li a {\n display: block;\n border-bottom: 1px solid #E8E8E8;\n margin: 0;\n padding: 16px;\n height: 55px;\n color: #2e3233;\n font-size: 16px;\n font-weight: bold;\n line-height: 20px;\n text-decoration: none;\n text-align: left;\n background: #fff;\n border-bottom: 1px solid #E8E8E8; }\n @media only screen and (min-width: 768px) {\n .ec-itemNav__nav li a {\n text-align: center;\n border-bottom: none; } }\n\n.ec-itemNav__nav li ul {\n display: none;\n z-index: 0;\n margin: 0;\n padding: 0;\n min-width: 200px;\n list-style: none;\n position: static;\n top: 100%;\n left: 0; }\n @media only screen and (min-width: 768px) {\n .ec-itemNav__nav li ul {\n display: block;\n z-index: 100;\n position: absolute; } }\n\n.ec-itemNav__nav li ul li {\n overflow: hidden;\n width: 100%;\n height: auto;\n transition: .3s; }\n @media only screen and (min-width: 768px) {\n .ec-itemNav__nav li ul li {\n overflow: hidden;\n height: 0; } }\n\n.ec-itemNav__nav li ul li a {\n border-bottom: 1px solid #E8E8E8;\n padding: 16px;\n font-size: 16px;\n font-weight: bold;\n color: white;\n text-align: left;\n background: black; }\n\n.ec-itemNav__nav > li:hover > a {\n background: #fafafa; }\n\n.ec-itemNav__nav > li:hover li:hover > a {\n background: #333; }\n\n@media only screen and (min-width: 768px) {\n .ec-itemNav__nav > li:hover > ul > li {\n overflow: visible;\n height: 55px; } }\n\n.ec-itemNav__nav li ul li ul {\n top: 0;\n left: 100%;\n width: auto; }\n\n@media only screen and (min-width: 768px) {\n .ec-itemNav__nav li ul li ul:before {\n content: \"\\f054\";\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900;\n font-size: 12px;\n color: white;\n position: absolute;\n top: 19px;\n right: auto;\n left: -20px; } }\n\n@media only screen and (min-width: 768px) {\n .ec-itemNav__nav li ul li:hover > ul > li {\n overflow: visible;\n height: 55px;\n width: auto; } }\n\n.ec-itemNav__nav li ul li ul li a {\n background: #7D7D7D; }\n\n.ec-itemNav__nav li:hover ul li ul li a:hover {\n background: #333; }\n\n/*\nヘッダー:SPヘッダー\n\nSP時のみ出現するヘッダーに関係するコンポーネントです。
\nex [トップページ](http://demo3.ec-cube.net/)画面サイズが768px以下に該当。
\n
\n`.ec-drawerRole`:SPのドロワー内の要素をwrapするコンポーネントです。
\n`.ec-headerSearch`、`.ec-headerNav`、`.ec-itemNav`は`.ec-drawerRole`の子要素にある場合、ドロワーに適したスタイルに変化します。

\n`.ec-overlayRole`:SPのドロワー出現時にz-indexがドロワー以下の要素に半透明の黒背景をかぶせるコンポーネントです。
\n\nStyleguide 11.2.6\n*/\n.ec-drawerRole {\n overflow-y: scroll;\n background: black;\n width: 260px;\n height: 100vh;\n transform: translateX(-300px);\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n transition: z-index 0ms 1ms; }\n @media only screen and (min-width: 768px) {\n .ec-drawerRole {\n display: none; } }\n .ec-drawerRole .ec-headerSearchArea {\n padding: 20px 10px;\n width: 100%;\n background: #F8F8F8; }\n .ec-drawerRole .ec-headerSearch {\n padding: 16px 8px 26px;\n background: #EBEBEB;\n color: #636378; }\n .ec-drawerRole .ec-headerSearch select {\n width: 100% !important; }\n .ec-drawerRole .ec-headerCategoryArea .ec-headerCategoryArea__heading {\n border-top: 1px solid #CCCCCC;\n border-bottom: 1px solid #CCCCCC;\n padding: 1em 10px;\n font-size: 16px;\n font-weight: bold;\n color: black;\n background: #F8F8F8; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav li a {\n border-bottom: 1px solid #ccc;\n border-bottom: 1px solid #ccc;\n color: black;\n font-weight: normal;\n background: #f8f8f8; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav li ul li a {\n border-bottom: 1px solid #ccc;\n padding-left: 20px;\n font-weight: normal;\n background: white; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav > li:hover > a {\n background: #f8f8f8; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav > li:hover li:hover > a {\n background: white; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav li ul li ul li a {\n padding-left: 40px;\n color: black;\n background: white; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav li:hover ul li ul li a:hover {\n background: white; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav li ul li ul li ul li a {\n padding-left: 60px;\n font-weight: normal; }\n .ec-drawerRole .ec-headerLinkArea {\n background: black; }\n .ec-drawerRole .ec-headerLinkArea .ec-headerLink__list {\n border-top: 1px solid #ccc; }\n .ec-drawerRole .ec-headerLinkArea .ec-headerLink__item {\n display: block;\n border-bottom: 1px solid #ccc;\n padding: 15px 20px;\n font-size: 16px;\n font-weight: bold;\n color: white; }\n .ec-drawerRole .ec-headerLinkArea .ec-headerLink__icon {\n display: inline-block;\n width: 28px;\n font-size: 17px; }\n\n.ec-drawerRoleClose {\n display: none;\n border-radius: 50%;\n box-sizing: border-box;\n padding: 10px;\n width: 40px;\n height: 40px;\n font-size: 18px;\n text-align: center;\n color: black;\n background: white;\n position: fixed;\n top: 10px;\n left: 270px;\n z-index: 1000; }\n .ec-drawerRoleClose .fas {\n vertical-align: top; }\n @media only screen and (min-width: 768px) {\n .ec-drawerRoleClose {\n display: none; } }\n\n.ec-drawerRole.is_active {\n display: block;\n transform: translateX(0);\n transition: all .3s;\n z-index: 100000; }\n @media only screen and (min-width: 768px) {\n .ec-drawerRole.is_active {\n display: none; } }\n\n.ec-drawerRoleClose.is_active {\n display: inline-block;\n transition: all .3s; }\n @media only screen and (min-width: 768px) {\n .ec-drawerRoleClose.is_active {\n display: none; } }\n\n.ec-overlayRole {\n position: fixed;\n width: 100%;\n height: 100vh;\n top: 0;\n left: 0;\n opacity: 0;\n background: transparent;\n transform: translateX(0);\n transition: all .3s;\n visibility: hidden; }\n @media only screen and (min-width: 768px) {\n .ec-overlayRole {\n display: none; } }\n\n.have_curtain .ec-overlayRole {\n display: block;\n opacity: 1;\n background: rgba(0, 0, 0, 0.5);\n visibility: visible; }\n @media only screen and (min-width: 768px) {\n .have_curtain .ec-overlayRole {\n display: none; } }\n\n/*\nヘッダー:test\n\ntest\n\nMarkup:\nspan.ec-itemAccordionParent test1\nul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test2\n ul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test3\n ul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test4\n\nStyleguide 11.2.7\n*/\n.ec-itemNavAccordion {\n display: none; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\nフッター\n\n全ページで使用されるフッターのプロジェクトコンポーネントです。\n\nex [トップページ フッター](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerRole\n\nStyleguide 11.3\n*/\n.ec-footerRole {\n border-top: 1px solid #7d7d7d;\n margin-top: 30px;\n background: black; }\n @media only screen and (min-width: 768px) {\n .ec-footerRole {\n padding-top: 40px;\n margin-top: 100px; } }\n @media only screen and (min-width: 768px) {\n .ec-footerRole .ec-footerRole__inner {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-footerRole .ec-footerRole__inner:after {\n content: \" \";\n display: table; }\n .ec-footerRole .ec-footerRole__inner:after {\n clear: both; }\n .ec-footerRole .ec-footerRole__inner textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-footerRole .ec-footerRole__inner img {\n max-width: 100%; }\n .ec-footerRole .ec-footerRole__inner html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-footerRole .ec-footerRole__inner *,\n .ec-footerRole .ec-footerRole__inner *::before,\n .ec-footerRole .ec-footerRole__inner *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-footerRole .ec-footerRole__inner img {\n width: 100%; } }\n\n/*\nフッターナビ\n\nフッタープロジェクトで使用するナビゲーション用のコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerNav\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.3.1\n*/\n.ec-footerNavi {\n padding: 0;\n color: white;\n list-style: none;\n text-align: center; }\n .ec-footerNavi .ec-footerNavi__link {\n display: block; }\n @media only screen and (min-width: 768px) {\n .ec-footerNavi .ec-footerNavi__link {\n display: inline-block; } }\n .ec-footerNavi .ec-footerNavi__link a {\n display: block;\n border-bottom: 1px solid #7d7d7d;\n padding: 15px 0;\n font-size: 14px;\n color: inherit;\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-footerNavi .ec-footerNavi__link a {\n display: inline-block;\n border-bottom: none;\n margin: 0 10px;\n padding: 0;\n text-decoration: underline; } }\n .ec-footerNavi .ec-footerNavi__link:hover a {\n opacity: .8;\n text-decoration: none; }\n\n/*\nフッタータイトル\n\nフッタープロジェクトで使用するタイトル用のコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerTitle\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.3.2\n*/\n.ec-footerTitle {\n padding: 40px 0 60px;\n text-align: center;\n color: white; }\n @media only screen and (min-width: 768px) {\n .ec-footerTitle {\n padding: 50px 0 80px; } }\n .ec-footerTitle .ec-footerTitle__logo {\n display: block;\n margin-bottom: 10px;\n font-weight: bold; }\n .ec-footerTitle .ec-footerTitle__logo a {\n color: inherit;\n text-decoration: none; }\n .ec-footerTitle .ec-footerTitle__logo a:hover {\n text-decoration: none; }\n .ec-footerTitle .ec-footerTitle__logo a {\n font-size: 22px;\n color: inherit; }\n @media only screen and (min-width: 768px) {\n .ec-footerTitle .ec-footerTitle__logo a {\n font-size: 24px; } }\n .ec-footerTitle .ec-footerTitle__logo:hover a {\n opacity: .8;\n text-decoration: none; }\n .ec-footerTitle .ec-footerTitle__copyright {\n font-size: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-footerTitle .ec-footerTitle__copyright {\n font-size: 12px; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nトップページ\n\nトップページ スライド部に関する Project コンポーネントを定義します。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/12.1.slider.pug\n+ec-sliderRole\n\nStyleguide 12.1\n*/\n.ec-sliderRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n margin-bottom: 24px; }\n .ec-sliderRole:after {\n content: \" \";\n display: table; }\n .ec-sliderRole:after {\n clear: both; }\n .ec-sliderRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-sliderRole img {\n max-width: 100%; }\n .ec-sliderRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-sliderRole *,\n .ec-sliderRole *::before,\n .ec-sliderRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-sliderRole img {\n width: 100%; }\n .ec-sliderRole ul {\n padding: 0;\n list-style: none; }\n\n.ec-sliderItemRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n margin-bottom: 24px; }\n .ec-sliderItemRole:after {\n content: \" \";\n display: table; }\n .ec-sliderItemRole:after {\n clear: both; }\n .ec-sliderItemRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-sliderItemRole img {\n max-width: 100%; }\n .ec-sliderItemRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-sliderItemRole *,\n .ec-sliderItemRole *::before,\n .ec-sliderItemRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-sliderItemRole img {\n width: 100%; }\n .ec-sliderItemRole ul {\n padding: 0;\n list-style: none; }\n .ec-sliderItemRole .item_nav {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-sliderItemRole .item_nav {\n display: flex;\n justify-content: flex-start;\n flex-wrap: wrap;\n margin-bottom: 0; } }\n .ec-sliderItemRole .slideThumb {\n margin-bottom: 25px;\n width: 33%;\n opacity: .8;\n cursor: pointer; }\n .ec-sliderItemRole .slideThumb:focus {\n outline: none; }\n .ec-sliderItemRole .slideThumb:hover {\n opacity: 1; }\n .ec-sliderItemRole .slideThumb img {\n width: 80%; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nアイキャッチ\n\nトップページ アイキャッチ部に関する Project コンポーネントを定義します。\n\nex [トップページスライダー直下 アイキャッチ部](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/12.2.eyecatch.pug\n+ec-eyecatchRole\n\nStyleguide 12.2\n*/\n.ec-eyecatchRole {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 40px; }\n @media only screen and (min-width: 768px) {\n .ec-eyecatchRole {\n flex-wrap: nowrap; } }\n .ec-eyecatchRole .ec-eyecatchRole__image {\n display: block;\n margin-bottom: 40px;\n width: 100%;\n height: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-eyecatchRole .ec-eyecatchRole__image {\n order: 2; } }\n .ec-eyecatchRole .ec-eyecatchRole__intro {\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-eyecatchRole .ec-eyecatchRole__intro {\n padding-right: 5%;\n order: 1; } }\n .ec-eyecatchRole .ec-eyecatchRole__introEnTitle {\n margin-bottom: .8em;\n font-size: 16px;\n font-weight: normal; }\n @media only screen and (min-width: 768px) {\n .ec-eyecatchRole .ec-eyecatchRole__introEnTitle {\n margin-top: 45px; } }\n .ec-eyecatchRole .ec-eyecatchRole__introTitle {\n margin-bottom: .8em;\n font-size: 24px;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-eyecatchRole .ec-eyecatchRole__introTitle {\n margin-bottom: 1em;\n font-size: 26px; } }\n .ec-eyecatchRole .ec-eyecatchRole__introDescriptiron {\n margin-bottom: 20px;\n font-size: 16px;\n line-height: 2; }\n @media only screen and (min-width: 768px) {\n .ec-eyecatchRole .ec-eyecatchRole__introDescriptiron {\n margin-bottom: 30px; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nボタン\n\nトップページで使用されているボタンのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.3\n*/\n/*\n通常ボタン\n\nインラインの要素としてボタンを定義出来ます。\n\nMarkup:\n.ec-inlineBtn--top more\n\nStyleguide 12.3.1\n*/\n.ec-inlineBtn--top {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: white;\n background-color: black;\n border-color: black; }\n .ec-inlineBtn--top:focus, .ec-inlineBtn--top.focus, .ec-inlineBtn--top:active:focus, .ec-inlineBtn--top:active.focus, .ec-inlineBtn--top.active:focus, .ec-inlineBtn--top.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-inlineBtn--top:hover, .ec-inlineBtn--top:focus, .ec-inlineBtn--top.focus {\n color: #525263;\n text-decoration: none; }\n .ec-inlineBtn--top:active, .ec-inlineBtn--top.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-inlineBtn--top.disabled, .ec-inlineBtn--top[disabled],\n fieldset[disabled] .ec-inlineBtn--top {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-inlineBtn--top:focus, .ec-inlineBtn--top.focus {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-inlineBtn--top:hover {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-inlineBtn--top:active, .ec-inlineBtn--top.active,\n .open > .ec-inlineBtn--top.dropdown-toggle {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-inlineBtn--top:active:hover, .ec-inlineBtn--top:active:focus, .ec-inlineBtn--top:active.focus, .ec-inlineBtn--top.active:hover, .ec-inlineBtn--top.active:focus, .ec-inlineBtn--top.active.focus,\n .open > .ec-inlineBtn--top.dropdown-toggle:hover,\n .open > .ec-inlineBtn--top.dropdown-toggle:focus,\n .open > .ec-inlineBtn--top.dropdown-toggle.focus {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-inlineBtn--top:active, .ec-inlineBtn--top.active,\n .open > .ec-inlineBtn--top.dropdown-toggle {\n background-image: none; }\n .ec-inlineBtn--top.disabled:hover, .ec-inlineBtn--top.disabled:focus, .ec-inlineBtn--top.disabled.focus, .ec-inlineBtn--top[disabled]:hover, .ec-inlineBtn--top[disabled]:focus, .ec-inlineBtn--top[disabled].focus,\n fieldset[disabled] .ec-inlineBtn--top:hover,\n fieldset[disabled] .ec-inlineBtn--top:focus,\n fieldset[disabled] .ec-inlineBtn--top.focus {\n background-color: black;\n border-color: black; }\n .ec-inlineBtn--top .badge {\n color: black;\n background-color: white; }\n .ec-inlineBtn--top .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n/*\nロングボタン(全幅)\n\nロングタイプのボタンです。\n\nMarkup:\n.ec-blockBtn--top 商品一覧へ\n\nStyleguide 2.1.2\n*/\n.ec-blockBtn--top {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: white;\n background-color: black;\n border-color: black;\n display: block;\n height: 56px;\n line-height: 56px;\n padding-top: 0;\n padding-bottom: 0; }\n .ec-blockBtn--top:focus, .ec-blockBtn--top.focus, .ec-blockBtn--top:active:focus, .ec-blockBtn--top:active.focus, .ec-blockBtn--top.active:focus, .ec-blockBtn--top.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-blockBtn--top:hover, .ec-blockBtn--top:focus, .ec-blockBtn--top.focus {\n color: #525263;\n text-decoration: none; }\n .ec-blockBtn--top:active, .ec-blockBtn--top.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-blockBtn--top.disabled, .ec-blockBtn--top[disabled],\n fieldset[disabled] .ec-blockBtn--top {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-blockBtn--top:focus, .ec-blockBtn--top.focus {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-blockBtn--top:hover {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-blockBtn--top:active, .ec-blockBtn--top.active,\n .open > .ec-blockBtn--top.dropdown-toggle {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-blockBtn--top:active:hover, .ec-blockBtn--top:active:focus, .ec-blockBtn--top:active.focus, .ec-blockBtn--top.active:hover, .ec-blockBtn--top.active:focus, .ec-blockBtn--top.active.focus,\n .open > .ec-blockBtn--top.dropdown-toggle:hover,\n .open > .ec-blockBtn--top.dropdown-toggle:focus,\n .open > .ec-blockBtn--top.dropdown-toggle.focus {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-blockBtn--top:active, .ec-blockBtn--top.active,\n .open > .ec-blockBtn--top.dropdown-toggle {\n background-image: none; }\n .ec-blockBtn--top.disabled:hover, .ec-blockBtn--top.disabled:focus, .ec-blockBtn--top.disabled.focus, .ec-blockBtn--top[disabled]:hover, .ec-blockBtn--top[disabled]:focus, .ec-blockBtn--top[disabled].focus,\n fieldset[disabled] .ec-blockBtn--top:hover,\n fieldset[disabled] .ec-blockBtn--top:focus,\n fieldset[disabled] .ec-blockBtn--top.focus {\n background-color: black;\n border-color: black; }\n .ec-blockBtn--top .badge {\n color: black;\n background-color: white; }\n .ec-blockBtn--top .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n @media only screen and (min-width: 768px) {\n .ec-blockBtn--top {\n max-width: 260px; } }\n\n/*\n見出し\n\nトップページで使用されている見出しのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.4\n*/\n/*\n横並び見出し\n\n横並びの見出しです。\n\nMarkup:\n.ec-secHeading\n span.ec-secHeading__en TOPIC\n span.ec-secHeading__line |\n span.ec-secHeading__ja 特集\n\nStyleguide 12.4.1\n*/\n.ec-secHeading {\n margin-bottom: 15px;\n color: black; }\n .ec-secHeading .ec-secHeading__en {\n font-size: 18px;\n font-weight: bold;\n letter-spacing: .2em; }\n .ec-secHeading .ec-secHeading__line {\n display: inline-block;\n margin: 0 20px;\n width: 1px;\n height: 14px;\n background: black; }\n .ec-secHeading .ec-secHeading__ja {\n font-size: 12px;\n font-weight: normal;\n letter-spacing: .15em;\n vertical-align: 2px; }\n\n/*\n縦並び見出し\n\n縦並びの見出しです。\n\nMarkup:\n.ec-secHeading--tandem\n span.ec-secHeading__en TOPIC\n span.ec-secHeading__line |\n span.ec-secHeading__ja 特集\n\nStyleguide 12.4.2\n*/\n.ec-secHeading--tandem {\n margin-bottom: 15px;\n color: black;\n text-align: center; }\n .ec-secHeading--tandem .ec-secHeading__en {\n display: block;\n font-size: 18px;\n font-weight: bold;\n letter-spacing: .2em; }\n .ec-secHeading--tandem .ec-secHeading__line {\n display: block;\n margin: 13px auto;\n width: 20px;\n height: 1px;\n background: black; }\n .ec-secHeading--tandem .ec-secHeading__ja {\n display: block;\n margin-bottom: 30px;\n font-size: 12px;\n font-weight: normal;\n letter-spacing: .15em;\n vertical-align: 2px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nトピック(アイテム2列)\n\nトップページで使用されているトピックのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.5.1\n*/\n.ec-topicRole {\n padding: 40px 0;\n background: #F8F8F8; }\n @media only screen and (min-width: 768px) {\n .ec-topicRole {\n padding: 60px 0; } }\n .ec-topicRole .ec-topicRole__list {\n display: flex;\n flex-wrap: wrap; }\n @media only screen and (min-width: 768px) {\n .ec-topicRole .ec-topicRole__list {\n flex-wrap: nowrap; } }\n .ec-topicRole .ec-topicRole__listItem {\n margin-bottom: 20px;\n width: 100%;\n height: auto; }\n @media only screen and (min-width: 768px) {\n .ec-topicRole .ec-topicRole__listItem {\n width: calc(100% / 2); }\n .ec-topicRole .ec-topicRole__listItem:not(:last-of-type) {\n margin-right: 30px; } }\n .ec-topicRole .ec-topicRole__listItemTitle {\n margin-top: .5em;\n font-size: 14px;\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-topicRole .ec-topicRole__listItemTitle {\n margin-top: 1em; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nカテゴリ(アイテム4列 スマホの時は2列)\n\nトップページで使用されているアイテムリストのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.6.1\n*/\n.ec-newItemRole {\n padding: 40px 0; }\n @media only screen and (min-width: 768px) {\n .ec-newItemRole {\n padding: 60px 0; } }\n .ec-newItemRole .ec-newItemRole__list {\n display: flex;\n flex-wrap: wrap; }\n @media only screen and (min-width: 768px) {\n .ec-newItemRole .ec-newItemRole__list {\n flex-wrap: nowrap; } }\n .ec-newItemRole .ec-newItemRole__listItem {\n margin-bottom: 4%;\n width: 48%;\n height: auto; }\n @media only screen and (min-width: 768px) {\n .ec-newItemRole .ec-newItemRole__listItem {\n margin-bottom: 15px;\n width: calc(100% / 4); }\n .ec-newItemRole .ec-newItemRole__listItem:not(:last-of-type) {\n margin-right: 30px; } }\n .ec-newItemRole .ec-newItemRole__listItem:nth-child(odd) {\n margin-right: 4%; }\n @media only screen and (min-width: 768px) {\n .ec-newItemRole .ec-newItemRole__listItem:nth-child(odd) {\n margin-right: 30px; } }\n .ec-newItemRole .ec-newItemRole__listItemHeading {\n margin-top: calc(45% - 20px); }\n .ec-newItemRole .ec-newItemRole__listItemTitle {\n margin: 8px 0;\n font-size: 14px;\n font-weight: bold;\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-newItemRole .ec-newItemRole__listItemTitle {\n margin: 20px 0 10px; } }\n .ec-newItemRole .ec-newItemRole__listItemPrice {\n font-size: 12px;\n color: black; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nカテゴリ(アイテム3列)\n\nトップページで使用されているカテゴリのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.7.1\n*/\n.ec-categoryRole {\n padding: 40px 0;\n color: black;\n background: #F8F8F8; }\n @media only screen and (min-width: 768px) {\n .ec-categoryRole {\n padding: 60px 0; } }\n .ec-categoryRole .ec-categoryRole__list {\n display: flex;\n flex-wrap: wrap; }\n @media only screen and (min-width: 768px) {\n .ec-categoryRole .ec-categoryRole__list {\n flex-wrap: nowrap; } }\n .ec-categoryRole .ec-categoryRole__listItem {\n margin-bottom: 20px;\n width: 100%;\n height: auto; }\n @media only screen and (min-width: 768px) {\n .ec-categoryRole .ec-categoryRole__listItem {\n width: calc(100% / 3); }\n .ec-categoryRole .ec-categoryRole__listItem:not(:last-of-type) {\n margin-right: 30px; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n見出し\n\nトップページで使用されている新着情報のスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.8.1\n*/\n.ec-newsRole {\n padding: 40px 0 0; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole {\n padding: 60px 0 0; } }\n .ec-newsRole .ec-newsRole__news {\n box-sizing: border-box; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__news {\n border: 16px solid #F8F8F8;\n padding: 20px 30px; } }\n .ec-newsRole .ec-newsRole__newsItem {\n width: 100%; }\n .ec-newsRole .ec-newsRole__newsItem:not(:last-of-type) {\n border-bottom: 1px solid #ccc; }\n .ec-newsRole .ec-newsRole__newsItem:last-of-type {\n margin-bottom: 20px; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsItem:last-of-type {\n margin-bottom: 0; } }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsItem {\n padding: 20px 0; } }\n .ec-newsRole .ec-newsRole__newsHeading {\n cursor: pointer; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsHeading {\n display: flex; } }\n .ec-newsRole .ec-newsRole__newsDate {\n display: block;\n margin: 15px 0 5px;\n font-size: 12px;\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsDate {\n display: inline-block;\n margin: 0;\n min-width: 120px;\n font-size: 14px; } }\n .ec-newsRole .ec-newsRole__newsColumn {\n display: flex; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsColumn {\n display: inline-flex;\n min-width: calc(100% - 120px); } }\n .ec-newsRole .ec-newsRole__newsTitle {\n display: inline-block;\n margin-bottom: 10px;\n width: 90%;\n font-size: 14px;\n font-weight: bold;\n color: #7D7D7D;\n line-height: 1.6; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsTitle {\n margin-bottom: 0;\n line-height: 1.8; } }\n .ec-newsRole .ec-newsRole__newsClose {\n display: inline-block;\n width: 10%;\n position: relative; }\n .ec-newsRole .ec-newsRole__newsCloseBtn {\n display: inline-block;\n margin-left: auto;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n color: white;\n text-align: center;\n background: black;\n cursor: pointer;\n position: absolute;\n right: 5px; }\n .ec-newsRole .ec-newsRole__newsDescription {\n display: none;\n margin: 0 0 10px;\n font-size: 14px;\n line-height: 1.4;\n overflow: hidden; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsDescription {\n margin: 20px 0 0;\n line-height: 1.8; } }\n .ec-newsRole .ec-newsRole__newsDescription a {\n color: #0092C4; }\n .ec-newsRole__newsItem.is_active .ec-newsRole__newsDescription {\n margin: 0 0 10px; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole__newsItem.is_active .ec-newsRole__newsDescription {\n margin: 20px 0 0; } }\n .ec-newsRole__newsItem.is_active .ec-newsRole__newsCloseBtn i {\n display: inline-block;\n transform: rotateX(180deg) translateY(2px); }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n検索ラベル\n\n商品一覧 ヘッダー部 に関する Project コンポーネントを定義します。\n\nex [商品一覧 ヘッダー部](http://demo3.ec-cube.net/products/list)\n\nMarkup:\ninclude /assets/tmpl/elements/13.1.searchnav.pug\n+ec-searchnavRole__topicpath\n+ec-searchnavRole__info\n\nStyleguide 13.1\n\n*/\n.ec-searchnavRole {\n margin-bottom: 0;\n padding: 0; }\n @media only screen and (min-width: 768px) {\n .ec-searchnavRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-searchnavRole:after {\n content: \" \";\n display: table; }\n .ec-searchnavRole:after {\n clear: both; }\n .ec-searchnavRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-searchnavRole img {\n max-width: 100%; }\n .ec-searchnavRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-searchnavRole *,\n .ec-searchnavRole *::before,\n .ec-searchnavRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-searchnavRole img {\n width: 100%; } }\n .ec-searchnavRole .ec-searchnavRole__infos {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n display: flex;\n border-top: 0;\n margin-bottom: 16px;\n padding-top: 5px;\n flex-direction: column; }\n .ec-searchnavRole .ec-searchnavRole__infos:after {\n content: \" \";\n display: table; }\n .ec-searchnavRole .ec-searchnavRole__infos:after {\n clear: both; }\n .ec-searchnavRole .ec-searchnavRole__infos textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-searchnavRole .ec-searchnavRole__infos img {\n max-width: 100%; }\n .ec-searchnavRole .ec-searchnavRole__infos html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-searchnavRole .ec-searchnavRole__infos *,\n .ec-searchnavRole .ec-searchnavRole__infos *::before,\n .ec-searchnavRole .ec-searchnavRole__infos *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-searchnavRole .ec-searchnavRole__infos img {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-searchnavRole .ec-searchnavRole__infos {\n padding-left: 0;\n padding-right: 0;\n border-top: 1px solid #ccc;\n padding-top: 16px;\n flex-direction: row; } }\n .ec-searchnavRole .ec-searchnavRole__counter {\n margin-bottom: 16px;\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-searchnavRole .ec-searchnavRole__counter {\n margin-bottom: 0;\n width: 50%; } }\n .ec-searchnavRole .ec-searchnavRole__actions {\n text-align: right;\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-searchnavRole .ec-searchnavRole__actions {\n width: 50%; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\n商品一覧\n\n商品一覧 に関する Project コンポーネントを定義します。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGrid\n\nStyleguide 13.2\n\n*/\n.ec-shelfRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-shelfRole:after {\n content: \" \";\n display: table; }\n .ec-shelfRole:after {\n clear: both; }\n .ec-shelfRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-shelfRole img {\n max-width: 100%; }\n .ec-shelfRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-shelfRole *,\n .ec-shelfRole *::before,\n .ec-shelfRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-shelfRole img {\n width: 100%; }\n\n/*\n商品一覧グリッド\n\n商品一覧 で使用するグリッドコンポーネントです。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGrid\n\nStyleguide 13.2.1\n\n*/\n.ec-shelfGrid {\n display: flex;\n margin-left: 0;\n margin-right: 0;\n flex-wrap: wrap;\n padding: 0;\n list-style: none; }\n .ec-shelfGrid a {\n color: inherit;\n text-decoration: none; }\n .ec-shelfGrid a:hover {\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGrid {\n margin-left: -16px;\n margin-right: -16px; } }\n .ec-shelfGrid .ec-shelfGrid__item {\n margin-bottom: 36px;\n width: 50%;\n display: flex;\n flex-direction: column; }\n .ec-shelfGrid .ec-shelfGrid__item-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGrid .ec-shelfGrid__item-image {\n height: 250px; } }\n .ec-shelfGrid .ec-shelfGrid__item img {\n width: auto;\n max-height: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGrid .ec-shelfGrid__item {\n padding: 0 16px;\n width: 25%; } }\n .ec-shelfGrid .ec-shelfGrid__item .ec-productRole__btn {\n margin-top: auto;\n margin-bottom: 15px; }\n .ec-shelfGrid .ec-shelfGrid__item:nth-child(odd) {\n padding-right: 8px; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGrid .ec-shelfGrid__item:nth-child(odd) {\n padding: 0 16px; } }\n .ec-shelfGrid .ec-shelfGrid__item:nth-child(even) {\n padding-left: 8px; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGrid .ec-shelfGrid__item:nth-child(even) {\n padding: 0 16px; } }\n .ec-shelfGrid .ec-shelfGrid__title {\n margin-bottom: 7px; }\n .ec-shelfGrid .ec-shelfGrid__plice {\n font-weight: bold; }\n\n/*\n13.2.2 商品一覧グリッド(中央寄せ)\n\n商品一覧 で使用するグリッドコンポーネントです。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n商品のあまりはセンタリングされ、中央に表示されます。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGridCenter\n\nStyleguide 13.2.2\n\n*/\n.ec-shelfGridCenter {\n display: flex;\n margin-left: 0;\n margin-right: 0;\n flex-wrap: wrap;\n padding: 0;\n list-style: none;\n justify-content: center; }\n .ec-shelfGridCenter a {\n color: inherit;\n text-decoration: none; }\n .ec-shelfGridCenter a:hover {\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGridCenter {\n margin-left: -16px;\n margin-right: -16px; } }\n .ec-shelfGridCenter .ec-shelfGridCenter__item {\n margin-bottom: 36px;\n width: 50%; }\n .ec-shelfGridCenter .ec-shelfGridCenter__item-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGridCenter .ec-shelfGridCenter__item-image {\n height: 250px; } }\n .ec-shelfGridCenter .ec-shelfGridCenter__item img {\n width: auto;\n max-height: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGridCenter .ec-shelfGridCenter__item {\n padding: 0 16px;\n width: 25%; } }\n .ec-shelfGridCenter .ec-shelfGridCenter__item .ec-productRole__btn {\n margin-top: auto;\n padding-top: 1em; }\n .ec-shelfGridCenter .ec-shelfGridCenter__item:nth-child(odd) {\n padding-right: 8px; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGridCenter .ec-shelfGridCenter__item:nth-child(odd) {\n padding: 0 16px; } }\n .ec-shelfGridCenter .ec-shelfGridCenter__item:nth-child(even) {\n padding-left: 8px; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGridCenter .ec-shelfGridCenter__item:nth-child(even) {\n padding: 0 16px; } }\n .ec-shelfGridCenter .ec-shelfGridCenter__title {\n margin-bottom: 7px; }\n .ec-shelfGridCenter .ec-shelfGridCenter__plice {\n font-weight: bold; }\n\n/*\n商品一覧フッター\n\n商品一覧 フッター に関する Project コンポーネントを定義します。\n\nex [商品一覧 ページャ部](http://demo3.ec-cube.net/products/list)\n\nMarkup:\ninclude /assets/tmpl/elements/13.3.pager.pug\n+ec-pagerRole\n\nStyleguide 13.3\n\n*/\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nカート追加モーダル\n\nカート追加モーダルに関する Project コンポーネントを定義します。\n\nex [商品一覧、商品詳細](http://demo3.ec-cube.net/products/list)\n\n+ec-modal\n\nStyleguide 13.4\n\n*/\n.ec-modal .checkbox {\n display: none; }\n\n.ec-modal .ec-modal-overlay {\n opacity: 0;\n transition: all 0.3s ease;\n width: 100%;\n height: 100%;\n position: fixed;\n top: 0;\n left: 0;\n z-index: -100;\n transform: scale(1);\n display: flex;\n background-color: rgba(0, 0, 0, 0.3); }\n\n.ec-modal .ec-modal-wrap {\n background-color: #fff;\n border: 1px solid #333;\n width: 90%;\n margin: 20px;\n padding: 40px 5px;\n border-radius: 2px;\n transition: all 0.5s ease;\n -ms-flex-item-align: center;\n align-self: center; }\n .ec-modal .ec-modal-wrap .ec-modal-box {\n text-align: center; }\n .ec-modal .ec-modal-wrap .ec-modal-box div {\n margin-top: 20px; }\n @media only screen and (min-width: 768px) {\n .ec-modal .ec-modal-wrap {\n padding: 40px 10px;\n width: 50%;\n margin: 20px auto; } }\n .ec-modal .ec-modal-wrap.small {\n width: 30%; }\n .ec-modal .ec-modal-wrap.full {\n width: 100%;\n height: 100%; }\n\n.ec-modal .ec-modal-overlay .ec-modal-close {\n position: absolute;\n right: 20px;\n top: 10px;\n font-size: 20px;\n height: 30px;\n width: 20px; }\n .ec-modal .ec-modal-overlay .ec-modal-close:hover {\n cursor: pointer;\n color: #4b5361; }\n\n.ec-modal .ec-modal-overlay-close {\n width: 100%;\n height: 100%;\n position: fixed;\n left: 0;\n top: 0;\n z-index: -100; }\n\n.ec-modal input:checked ~ .ec-modal-overlay-close {\n z-index: 9998; }\n\n.ec-modal input:checked ~ .ec-modal-overlay {\n transform: scale(1);\n opacity: 1;\n z-index: 9997;\n overflow: auto; }\n\n.ec-modal input:checked ~ .ec-modal-overlay .ec-modal-wrap {\n transform: translateY(0);\n z-index: 9999; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n商品詳細\n\n商品詳細ページに関する Project コンポーネントを定義します。\n\nex [商品詳細ページ](http://demo3.ec-cube.net/products/detail/18)\n\n\nMarkup:\ninclude /assets/tmpl/elements/14.1.product.pug\n+ec-productSimpleRole\n\nStyleguide 14.1\n*/\n.ec-productRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-productRole:after {\n content: \" \";\n display: table; }\n .ec-productRole:after {\n clear: both; }\n .ec-productRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-productRole img {\n max-width: 100%; }\n .ec-productRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-productRole *,\n .ec-productRole *::before,\n .ec-productRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-productRole img {\n width: 100%; }\n .ec-productRole .ec-productRole__img {\n margin-right: 0;\n margin-bottom: 20px; }\n @media only screen and (min-width: 768px) {\n .ec-productRole .ec-productRole__img {\n margin-right: 16px;\n margin-bottom: 0; } }\n .ec-productRole .ec-productRole__profile {\n margin-left: 0; }\n @media only screen and (min-width: 768px) {\n .ec-productRole .ec-productRole__profile {\n margin-left: 16px; } }\n .ec-productRole .ec-productRole__title .ec-headingTitle {\n font-size: 20px; }\n @media only screen and (min-width: 768px) {\n .ec-productRole .ec-productRole__title .ec-headingTitle {\n font-size: 32px; } }\n .ec-productRole .ec-productRole__tags {\n margin-top: 16px;\n padding: 0;\n padding-bottom: 16px;\n border-bottom: 1px dotted #ccc; }\n .ec-productRole .ec-productRole__tag {\n display: inline-block;\n padding: 2px 5px;\n list-style: none;\n font-size: 80%;\n color: #525263;\n border: solid 1px #D7DADD;\n border-radius: 3px;\n background-color: #F5F7F8; }\n .ec-productRole .ec-productRole__priceRegular {\n padding-top: 14px; }\n .ec-productRole .ec-productRole__priceRegularTax {\n margin-left: 5px;\n font-size: 12px; }\n .ec-productRole .ec-productRole__price {\n color: #DE5D50;\n font-size: 28px;\n padding: 0;\n border-bottom: 0; }\n @media only screen and (min-width: 768px) {\n .ec-productRole .ec-productRole__price {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc; } }\n .ec-productRole .ec-productRole__code {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc; }\n .ec-productRole .ec-productRole__category {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc; }\n .ec-productRole .ec-productRole__category a {\n color: #33A8D0; }\n .ec-productRole .ec-productRole__category ul {\n list-style: none;\n padding: 0;\n margin: 0; }\n .ec-productRole .ec-productRole__actions {\n padding: 14px 0; }\n .ec-productRole .ec-productRole__actions .ec-select select {\n height: 40px;\n max-width: 100%;\n min-width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-productRole .ec-productRole__actions .ec-select select {\n min-width: 350px;\n max-width: 350px; } }\n .ec-productRole .ec-productRole__btn {\n width: 100%;\n margin-bottom: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-productRole .ec-productRole__btn {\n width: 60%;\n margin-bottom: 16px;\n min-width: 350px; } }\n .ec-productRole .ec-productRole__description {\n margin-bottom: 16px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\nカート\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [カートページ](http://demo3.ec-cube.net/shopping)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n+ec-cartRole\n\nStyleguide 15.1\n\n*/\n.ec-cartRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end; }\n .ec-cartRole:after {\n content: \" \";\n display: table; }\n .ec-cartRole:after {\n clear: both; }\n .ec-cartRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-cartRole img {\n max-width: 100%; }\n .ec-cartRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-cartRole *,\n .ec-cartRole *::before,\n .ec-cartRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-cartRole img {\n width: 100%; }\n .ec-cartRole::before {\n display: none; }\n .ec-cartRole .ec-cartRole__progress {\n width: 100%;\n text-align: center; }\n .ec-cartRole .ec-cartRole__error {\n width: 100%;\n text-align: center; }\n .ec-cartRole .ec-cartRole__error .ec-alert-warning {\n max-width: 80%;\n display: inline-block; }\n .ec-cartRole .ec-cartRole__totalText {\n margin-bottom: 0;\n padding: 16px 0 6px;\n width: 100%;\n text-align: center;\n font-weight: normal; }\n @media only screen and (min-width: 768px) {\n .ec-cartRole .ec-cartRole__totalText {\n margin-bottom: 30px;\n padding: 0; } }\n .ec-cartRole .ec-cartRole__cart {\n margin: 0;\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-cartRole .ec-cartRole__cart {\n margin: 0 10%; } }\n .ec-cartRole .ec-cartRole__actions {\n text-align: right;\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-cartRole .ec-cartRole__actions {\n width: 20%;\n margin-right: 10%; } }\n .ec-cartRole .ec-cartRole__total {\n padding: 15px 0 30px;\n font-weight: bold;\n font-size: 16px; }\n .ec-cartRole .ec-cartRole__totalAmount {\n margin-left: 30px;\n color: #de5d50;\n font-size: 16px; }\n @media only screen and (min-width: 768px) {\n .ec-cartRole .ec-cartRole__totalAmount {\n font-size: 24px; } }\n .ec-cartRole .ec-blockBtn--action {\n margin-bottom: 10px; }\n\n/*\nカート商品表示枠(テーブルヘッダ)\n\nカート内の商品をを表示するテーブル枠です。\n\nex [カートページ テーブル部分(カート内に商品がある状態でアクセス)](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n+ec-cartTable\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 15.1.2\n*/\n.ec-cartTable {\n display: table;\n border-top: 1px dotted #ccc;\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-cartTable {\n border-top: none; } }\n\n/*\nカート商品表示枠(テーブルヘッダ)\n\nカート内の商品を表示するテーブルのヘッダです。\nスマホでは非表示となります。\n\nex [カートページ カートテーブルヘッダ部分(カート内に商品がある状態でアクセス)](http://demo3.ec-cube.net/cart)\n\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartHeader\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 15.1.3\n*/\n.ec-cartHeader {\n display: none;\n width: 100%;\n background: #F4F3F0; }\n @media only screen and (min-width: 768px) {\n .ec-cartHeader {\n display: table-row; } }\n .ec-cartHeader .ec-cartHeader__label {\n display: table-cell;\n padding: 16px;\n text-align: center;\n background: #F4F3F0;\n overflow-x: hidden;\n font-weight: bold; }\n\n.ec-cartCompleteRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-cartCompleteRole:after {\n content: \" \";\n display: table; }\n .ec-cartCompleteRole:after {\n clear: both; }\n .ec-cartCompleteRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-cartCompleteRole img {\n max-width: 100%; }\n .ec-cartCompleteRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-cartCompleteRole *,\n .ec-cartCompleteRole *::before,\n .ec-cartCompleteRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-cartCompleteRole img {\n width: 100%; }\n\n/*\nカート内商品\n\nカート内のアイテムを表示するテーブル行です。\nスマホでは非表示となります。\n\nex [カートページ テーブル部分](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartRow\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 15.1.4\n*/\n.ec-cartRow {\n display: table-row; }\n .ec-cartRow .ec-cartRow__delColumn {\n border-bottom: 1px dotted #ccc;\n text-align: center;\n display: table-cell;\n width: 14%;\n vertical-align: middle; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__delColumn {\n width: 8.3333333%; } }\n .ec-cartRow .ec-cartRow__delColumn .ec-icon img {\n width: 1.5em;\n height: 1.5em; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__delColumn .ec-icon img {\n width: 1em;\n height: 1em; } }\n .ec-cartRow .ec-cartRow__contentColumn {\n border-bottom: 1px dotted #ccc;\n padding: 10px 0;\n display: table; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__contentColumn {\n display: table-cell; } }\n .ec-cartRow .ec-cartRow__img {\n display: table-cell;\n width: 40%;\n vertical-align: middle;\n padding-right: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__img {\n display: inline-block;\n min-width: 80px;\n max-width: 100px;\n padding-right: 0; } }\n .ec-cartRow .ec-cartRow__summary {\n display: table-cell;\n margin-left: 5px;\n font-weight: bold;\n vertical-align: middle;\n width: 46%; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__summary {\n display: inline-block;\n margin-left: 20px;\n vertical-align: middle; } }\n .ec-cartRow .ec-cartRow__summary .ec-cartRow__name {\n margin-bottom: 5px; }\n .ec-cartRow .ec-cartRow__summary .ec-cartRow__sutbtotalSP {\n display: block;\n font-weight: normal; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__summary .ec-cartRow__sutbtotalSP {\n display: none; } }\n .ec-cartRow .ec-cartRow__amountColumn {\n display: table-cell;\n border-bottom: 1px dotted #ccc;\n vertical-align: middle;\n text-align: center;\n width: 20%; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__amountColumn {\n width: 16.66666667%; } }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amount {\n display: none;\n margin-bottom: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amount {\n display: block; } }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountSP {\n display: block;\n margin-bottom: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountSP {\n display: none; } }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountUpDown {\n display: flex;\n justify-content: center; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountUpDown {\n display: block; } }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountUpButton {\n margin: 0 2px;\n display: inline-block;\n border: 2px solid #c9c9c9;\n border-radius: 50%;\n width: 30px;\n min-width: 30px;\n max-width: 30px;\n height: 30px;\n cursor: pointer;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center;\n background: #fff; }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountUpButton .ec-cartRow__amountUpButton__icon img {\n display: block;\n margin-left: -0.4em;\n width: .8em;\n height: .8em;\n position: absolute;\n top: 28%;\n left: 50%; }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountDownButton, .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountDownButtonDisabled {\n margin: 0 2px;\n display: inline-block;\n border: 2px solid #c9c9c9;\n border-radius: 50%;\n width: 30px;\n min-width: 30px;\n max-width: 30px;\n height: 30px;\n cursor: pointer;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center;\n background: #fff; }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountDownButton .ec-cartRow__amountDownButton__icon img, .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountDownButtonDisabled .ec-cartRow__amountDownButton__icon img {\n display: block;\n margin-left: -0.4em;\n width: .8em;\n height: .8em;\n position: absolute;\n top: 28%;\n left: 50%; }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountDownButtonDisabled {\n cursor: default; }\n .ec-cartRow .ec-cartRow__subtotalColumn {\n display: none;\n border-bottom: 1px dotted #ccc;\n text-align: right;\n width: 16.66666667%; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__subtotalColumn {\n display: table-cell; } }\n\n/*\nカート内商品(商品が1の場合)\n\n商品が1の場合はカート商品を減らす「-」ボタンの無効化状態になります。\n\nex [カートページ テーブル部分](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartRowOnly\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 15.1.5\n*/\n.ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountDownButtonDisabled {\n cursor: default; }\n\n/*\nアラート\n\nカート内の商品に問題があることを示す警告メッセージです。\n\nex [マイページ カート](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartRole\n .ec-cartRole__cart\n +ec-alert-warning\n\nStyleguide 15.1.6\n*/\n.ec-alert-warning {\n width: 100%;\n padding: 10px;\n text-align: center;\n background: #F99;\n margin-bottom: 20px; }\n .ec-alert-warning .ec-alert-warning__icon {\n display: inline-block;\n margin-right: 1rem;\n width: 20px;\n height: 20px;\n color: #fff;\n fill: #fff;\n vertical-align: top; }\n .ec-alert-warning .ec-alert-warning__text {\n display: inline-block;\n font-size: 16px;\n font-weight: bold;\n color: #fff;\n position: relative; }\n\n/*\nアラート(空)\n\nカートが空であることを示す警告メッセージです。\n\nex [マイページ カート](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-off3Grid\n .ec-off3Grid__cell\n +ec-alert-warningEnpty\n\nStyleguide 15.1.7\n*/\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\n注文内容確認\n\nカート内 注文内容確認に関する Project コンポーネントを定義します。\n\nex [マイページ 注文詳細](http://demo3.ec-cube.net/shopping)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderRole\n\nStyleguide 15.2\n*/\n.ec-orderRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n display: flex;\n flex-direction: column;\n margin-top: 0; }\n .ec-orderRole:after {\n content: \" \";\n display: table; }\n .ec-orderRole:after {\n clear: both; }\n .ec-orderRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-orderRole img {\n max-width: 100%; }\n .ec-orderRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-orderRole *,\n .ec-orderRole *::before,\n .ec-orderRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-orderRole img {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-orderRole {\n margin-top: 20px;\n flex-direction: row; } }\n .ec-orderRole .ec-inlineBtn {\n font-weight: normal; }\n .ec-orderRole .ec-orderRole__detail {\n padding: 0;\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-orderRole .ec-orderRole__detail {\n padding: 0 16px;\n width: 66.66666%; } }\n .ec-orderRole .ec-orderRole__summary {\n width: 100%; }\n .ec-orderRole .ec-orderRole__summary .ec-inlineBtn {\n display: inline-block; }\n @media only screen and (min-width: 768px) {\n .ec-orderRole .ec-orderRole__summary {\n width: 33.33333%;\n padding: 0 16px; }\n .ec-orderRole .ec-orderRole__summary .ec-inlineBtn {\n display: none; } }\n .ec-orderRole .ec-borderedList {\n margin-bottom: 20px;\n border-top: 1px dotted #ccc; }\n @media only screen and (min-width: 768px) {\n .ec-orderRole .ec-borderedList {\n border-top: none; } }\n\n/*\n注文履歴詳細 オーダ情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ オーダ情報](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderInfo\n\nStyleguide 15.2.1\n*/\n.ec-orderOrder {\n margin-bottom: 30px; }\n .ec-orderOrder .ec-orderOrder__items {\n border-bottom: 1px dotted #ccc;\n border-top: 1px dotted #ccc; }\n\n/*\n注文履歴詳細 お客様情報\n\nマイページ 注文詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ オーダ情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderAccount\n\nStyleguide 15.2.2\n*/\n.ec-orderAccount {\n margin-bottom: 30px; }\n .ec-orderAccount p {\n margin-bottom: 0; }\n .ec-orderAccount:after {\n content: \" \";\n display: table; }\n .ec-orderAccount:after {\n clear: both; }\n .ec-orderAccount .ec-orderAccount__change {\n display: inline-block;\n margin-left: 10px;\n float: right; }\n .ec-orderAccount .ec-orderAccount__account {\n margin-bottom: 16px; }\n\n/*\n注文詳細 配送情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 配送情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderDelivery\n\nStyleguide 15.2.3\n*/\n.ec-orderDelivery .ec-orderDelivery__title {\n padding: 16px 0 17px;\n font-weight: bold;\n font-size: 18px;\n position: relative; }\n\n.ec-orderDelivery .ec-orderDelivery__change {\n display: inline-block;\n position: absolute;\n right: 0;\n top: 0; }\n\n.ec-orderDelivery .ec-orderDelivery__items {\n border-bottom: 1px dotted #ccc;\n border-top: 1px dotted #ccc; }\n\n.ec-orderDelivery .ec-orderDelivery__address {\n margin: 10px 0 18px; }\n .ec-orderDelivery .ec-orderDelivery__address p {\n margin: 0; }\n\n/*\n注文履歴詳細 支払情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 支払情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-orderRole\n .ec-orderPayment\n .ec-rectHeading\n h2 お支払方法\n p 支払方法: 郵便振替\n\nStyleguide 15.2.4\n*/\n/*\n注文履歴詳細 お問い合わせ\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ お問い合わせ(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-orderRole\n .ec-orderConfirm\n .ec-rectHeading\n h2 お問い合わせ\n p 記載なし\n\nStyleguide 15.2.5\n*/\n.ec-orderConfirm {\n margin-bottom: 20px; }\n @media only screen and (min-width: 768px) {\n .ec-orderConfirm {\n margin-bottom: 0; } }\n .ec-orderConfirm .ec-input textarea, .ec-orderConfirm .ec-halfInput textarea, .ec-orderConfirm .ec-numberInput textarea, .ec-orderConfirm .ec-zipInput textarea, .ec-orderConfirm .ec-telInput textarea, .ec-orderConfirm .ec-select textarea, .ec-orderConfirm .ec-birth textarea {\n height: 96px; }\n\n/*\nお届け先の複数指定\n\nお届け先の複数指定に関するコンポーネントを定義します。\n\nex [マイページ お届け先の複数指定](http://demo3.ec-cube.net/shopping/shipping_multiple)\n(商品購入画面 → 「お届け先を追加する」を押下)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderAddAddress\n\nStyleguide 15.2.6\n*/\n.ec-AddAddress {\n padding: 0 10px; }\n @media only screen and (min-width: 768px) {\n .ec-AddAddress {\n margin: 0 10%; } }\n .ec-AddAddress .ec-AddAddress__info {\n margin-bottom: 32px;\n text-align: center;\n font-size: 16px; }\n .ec-AddAddress .ec-AddAddress__add {\n border-top: 1px solid #f4f4f4;\n padding-top: 20px;\n margin-bottom: 20px; }\n .ec-AddAddress .ec-AddAddress__item {\n display: table;\n padding: 16px;\n background: #f4f4f4;\n margin-bottom: 16px; }\n .ec-AddAddress .ec-AddAddress__itemThumb {\n display: table-cell;\n min-width: 160px;\n width: 20%; }\n .ec-AddAddress .ec-AddAddress__itemThumb img {\n width: 100%; }\n .ec-AddAddress .ec-AddAddress__itemtContent {\n display: table-cell;\n vertical-align: middle;\n padding-left: 16px;\n font-size: 16px; }\n .ec-AddAddress .ec-AddAddress__itemtTitle {\n font-weight: bold;\n margin-bottom: 10px; }\n .ec-AddAddress .ec-AddAddress__itemtSize {\n margin-bottom: 10px; }\n .ec-AddAddress .ec-AddAddress__select {\n margin-bottom: 5px; }\n .ec-AddAddress .ec-AddAddress__selectAddress {\n display: inline-block; }\n .ec-AddAddress .ec-AddAddress__selectAddress label {\n font-size: 16px;\n font-weight: normal; }\n .ec-AddAddress .ec-AddAddress__selectAddress select {\n min-width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-AddAddress .ec-AddAddress__selectAddress select {\n min-width: 350px; } }\n .ec-AddAddress .ec-AddAddress__selectNumber {\n display: inline-block;\n margin-left: 30px; }\n .ec-AddAddress .ec-AddAddress__selectNumber label {\n font-size: 16px;\n font-weight: normal; }\n .ec-AddAddress .ec-AddAddress__selectNumber input {\n display: inline-block;\n margin-left: 10px;\n width: 80px; }\n .ec-AddAddress .ec-AddAddress__actions .ec-blockBtn--action {\n margin-bottom: 8px; }\n .ec-AddAddress .ec-AddAddress__new {\n margin-bottom: 20px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\n注文履歴一覧\n\nマイページ 注文履歴部に関する Project コンポーネントを定義します。\n\nex [マイページ 注文履歴一覧](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyRole\n\nStyleguide 16.1\n*/\n.ec-historyRole .ec-historyRole__contents {\n padding-top: 1em;\n padding-bottom: 16px;\n border-top: 1px solid #ccc;\n display: flex;\n flex-direction: column;\n color: #525263; }\n @media only screen and (min-width: 768px) {\n .ec-historyRole .ec-historyRole__contents {\n flex-direction: row; } }\n\n.ec-historyRole .ec-historyRole__header {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-historyRole .ec-historyRole__header {\n width: 33.3333%; } }\n\n.ec-historyRole .ec-historyRole__detail {\n border-top: 1px dotted #ccc;\n width: 100%; }\n .ec-historyRole .ec-historyRole__detail .ec-imageGrid:nth-of-type(1) {\n border-top: none; }\n .ec-historyRole .ec-historyRole__detail .ec-historyRole__detailTitle {\n margin-bottom: 8px;\n font-size: 1.6rem;\n font-weight: bold; }\n .ec-historyRole .ec-historyRole__detail .ec-historyRole__detailPrice {\n margin-bottom: 8px;\n font-size: 1.6rem;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-historyRole .ec-historyRole__detail {\n width: 66.6666%;\n border-top: none; } }\n\n/*\n注文履歴一覧 規格\n\nマイページ 注文履歴内アイテムの規格を定義します。\n\nex [マイページ 注文履歴一覧](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyRole-option\n\nStyleguide 16.1.1\n*/\n.ec-historyRole .ec-historyRole__detail .ec-historyRole__detailOption {\n display: inline-block;\n margin-bottom: 8px;\n margin-right: .5rem;\n font-size: 1.6rem; }\n\n.ec-historyRole .ec-historyRole__detail .ec-historyRole__detailOption::after {\n display: inline-block;\n padding-left: .5rem;\n content: \"/\";\n font-weight: bold; }\n\n/*\n注文履歴一覧ヘッダ\n\n注文履歴一覧で使用するヘッダのコンポーネントを定義します。\n\nex [マイページ 注文履歴一覧ヘッダ](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyHeader\np hofe\n\nStyleguide 16.1.2\n*/\n.ec-historyListHeader .ec-historyListHeader__date {\n font-weight: bold;\n font-size: 16px; }\n @media only screen and (min-width: 768px) {\n .ec-historyListHeader .ec-historyListHeader__date {\n font-weight: bold;\n font-size: 20px; } }\n\n.ec-historyListHeader .ec-historyListHeader__action {\n margin: 16px 0; }\n .ec-historyListHeader .ec-historyListHeader__action a {\n font-size: 12px;\n font-weight: normal; }\n @media only screen and (min-width: 768px) {\n .ec-historyListHeader .ec-historyListHeader__action a {\n font-size: 14px; } }\n\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n注文履歴詳細\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 注文詳細](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailRole\n\nStyleguide 16.2\n*/\n/*\n注文履歴詳細 メール履歴\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ メール履歴](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailMail\n\nStyleguide 16.2.5\n*/\n.ec-orderMails .ec-orderMails__item {\n padding-bottom: 10px;\n border-bottom: 1px dotted #ccc; }\n\n.ec-orderMails .ec-orderMails__time {\n margin: 0; }\n\n.ec-orderMails .ec-orderMails__body {\n display: none; }\n\n/*\n注文履歴詳細 メール履歴個別\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ メール履歴個別](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailMailHistory\n\nStyleguide 16.2.6\n*/\n.ec-orderMail {\n padding-bottom: 10px;\n border-bottom: 1px dotted #ccc;\n margin-bottom: 16px; }\n .ec-orderMail .ec-orderMail__time {\n margin: 0; }\n .ec-orderMail .ec-orderMail__body {\n display: none; }\n .ec-orderMail .ec-orderMail__time {\n margin-bottom: 4px; }\n .ec-orderMail .ec-orderMail__link {\n margin-bottom: 4px; }\n .ec-orderMail .ec-orderMail__link a {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer; }\n .ec-orderMail .ec-orderMail__link a:hover {\n color: #33A8D0; }\n .ec-orderMail .ec-orderMail__close a {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer; }\n .ec-orderMail .ec-orderMail__close a:hover {\n color: #33A8D0; }\n\n/*\n住所一覧\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [マイページ内 お届け先編集](http://demo3.ec-cube.net/mypage/delivery)\n\nMarkup:\ninclude /assets/tmpl/elements/17.1.address.pug\n+ec-addressList\n+ec-addressRole\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 17.1\n\n*/\n.ec-addressRole .ec-addressRole__item {\n border-top: 1px dotted #ccc; }\n\n.ec-addressRole .ec-addressRole__actions {\n margin-top: 32px;\n padding-bottom: 20px;\n border-bottom: 1px dotted #ccc; }\n\n.ec-addressList .ec-addressList__item {\n display: table;\n width: 100%;\n position: relative;\n border-bottom: 1px dotted #ccc; }\n\n.ec-addressList .ec-addressList__remove {\n vertical-align: middle;\n padding: 16px;\n text-align: center; }\n .ec-addressList .ec-addressList__remove .ec-icon img {\n width: 1em;\n height: 1em; }\n\n.ec-addressList .ec-addressList__address {\n display: table-cell;\n vertical-align: middle;\n padding: 16px;\n margin-right: 4em;\n width: 80%; }\n\n.ec-addressList .ec-addressList__action {\n position: relative;\n vertical-align: middle;\n text-align: right;\n top: 27px;\n padding-right: 10px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nパスワードリセット\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [パスワードリセット画面](http://demo3.ec-cube.net/forgot)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/18.1.password.pug\n+ec-passwordRole\n\nStyleguide 18.1\n\n*/\n.ec-forgotRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-forgotRole:after {\n content: \" \";\n display: table; }\n .ec-forgotRole:after {\n clear: both; }\n .ec-forgotRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-forgotRole img {\n max-width: 100%; }\n .ec-forgotRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-forgotRole *,\n .ec-forgotRole *::before,\n .ec-forgotRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-forgotRole img {\n width: 100%; }\n .ec-forgotRole .ec-forgotRole__intro {\n font-size: 16px; }\n .ec-forgotRole .ec-forgotRole__form {\n margin-bottom: 16px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n会員登録\n\n新規会員登録 に関する Project コンポーネントを定義します。\n\nex [新規会員登録画面 会員登録](http://demo3.ec-cube.net/entry)\n\nMarkup:\ninclude /assets/tmpl/elements/19.1.register.pug\n+ec-registerRole\n\nStyleguide 19.1\n\n*/\n.ec-registerRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-registerRole:after {\n content: \" \";\n display: table; }\n .ec-registerRole:after {\n clear: both; }\n .ec-registerRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-registerRole img {\n max-width: 100%; }\n .ec-registerRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-registerRole *,\n .ec-registerRole *::before,\n .ec-registerRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-registerRole img {\n width: 100%; }\n .ec-registerRole .ec-registerRole__actions {\n padding-top: 20px;\n text-align: center; }\n @media only screen and (min-width: 768px) {\n .ec-registerRole .ec-registerRole__actions {\n text-align: left; } }\n .ec-registerRole .ec-registerRole__actions p {\n margin-bottom: 16px; }\n .ec-registerRole .ec-blockBtn--action {\n margin-bottom: 16px; }\n\n.ec-registerCompleteRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-registerCompleteRole:after {\n content: \" \";\n display: table; }\n .ec-registerCompleteRole:after {\n clear: both; }\n .ec-registerCompleteRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-registerCompleteRole img {\n max-width: 100%; }\n .ec-registerCompleteRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-registerCompleteRole *,\n .ec-registerCompleteRole *::before,\n .ec-registerCompleteRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-registerCompleteRole img {\n width: 100%; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nお問い合わせ\n\nお問い合わせ に関する Project コンポーネントを定義します。\n\nex [お問い合わせ](http://demo3.ec-cube.net/contact)\n\nMarkup:\ninclude /assets/tmpl/elements/19.2.contact.pug\n+ec-contactRole\n\nStyleguide 19.2\n\n*/\n.ec-contactRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-contactRole:after {\n content: \" \";\n display: table; }\n .ec-contactRole:after {\n clear: both; }\n .ec-contactRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-contactRole img {\n max-width: 100%; }\n .ec-contactRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-contactRole *,\n .ec-contactRole *::before,\n .ec-contactRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-contactRole img {\n width: 100%; }\n .ec-contactRole .ec-contactRole__actions {\n padding-top: 20px; }\n .ec-contactRole p {\n margin: 16px 0; }\n\n.ec-contactConfirmRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-contactConfirmRole:after {\n content: \" \";\n display: table; }\n .ec-contactConfirmRole:after {\n clear: both; }\n .ec-contactConfirmRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-contactConfirmRole img {\n max-width: 100%; }\n .ec-contactConfirmRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-contactConfirmRole *,\n .ec-contactConfirmRole *::before,\n .ec-contactConfirmRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-contactConfirmRole img {\n width: 100%; }\n .ec-contactConfirmRole .ec-contactConfirmRole__actions {\n padding-top: 20px; }\n .ec-contactConfirmRole .ec-blockBtn--action {\n margin-bottom: 16px; }\n\n.ec-contactCompleteRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-contactCompleteRole:after {\n content: \" \";\n display: table; }\n .ec-contactCompleteRole:after {\n clear: both; }\n .ec-contactCompleteRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-contactCompleteRole img {\n max-width: 100%; }\n .ec-contactCompleteRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-contactCompleteRole *,\n .ec-contactCompleteRole *::before,\n .ec-contactCompleteRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-contactCompleteRole img {\n width: 100%; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nお客様情報の入力\n\nログインせずゲストとして商品を購入する際の、お客様情報の入力 に関する Project コンポーネントを定義します。\n\nex [カートSTEP2 お客様情報の入力(ゲスト購入)](http://demo3.ec-cube.net/shopping/nonmember)\n\nMarkup:\ninclude /assets/tmpl/elements/19.3.customer.pug\n+ec-customerRole\nhoge\n\nStyleguide 19.3\n\n*/\n.ec-customerRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-customerRole:after {\n content: \" \";\n display: table; }\n .ec-customerRole:after {\n clear: both; }\n .ec-customerRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-customerRole img {\n max-width: 100%; }\n .ec-customerRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-customerRole *,\n .ec-customerRole *::before,\n .ec-customerRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-customerRole img {\n width: 100%; }\n .ec-customerRole .ec-customerRole__actions {\n padding-top: 20px; }\n .ec-customerRole .ec-blockBtn--action {\n margin-bottom: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-customerRole .ec-blockBtn--action {\n margin-bottom: 16px; } }\n\n.ec-contactConfirmRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-contactConfirmRole:after {\n content: \" \";\n display: table; }\n .ec-contactConfirmRole:after {\n clear: both; }\n .ec-contactConfirmRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-contactConfirmRole img {\n max-width: 100%; }\n .ec-contactConfirmRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-contactConfirmRole *,\n .ec-contactConfirmRole *::before,\n .ec-contactConfirmRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-contactConfirmRole img {\n width: 100%; }\n .ec-contactConfirmRole .ec-contactConfirmRole__actions {\n padding-top: 20px; }\n .ec-contactConfirmRole .ec-blockBtn--action {\n margin-bottom: 16px; }\n\n.ec-contactCompleteRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-contactCompleteRole:after {\n content: \" \";\n display: table; }\n .ec-contactCompleteRole:after {\n clear: both; }\n .ec-contactCompleteRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-contactCompleteRole img {\n max-width: 100%; }\n .ec-contactCompleteRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-contactCompleteRole *,\n .ec-contactCompleteRole *::before,\n .ec-contactCompleteRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-contactCompleteRole img {\n width: 100%; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n visibility: hidden; }\n 100% {\n opacity: 1;\n visibility: visible; } }\n\n@keyframes fadeOut {\n 0% {\n opacity: 1;\n visibility: visible; }\n 100% {\n opacity: 0;\n visibility: hidden; } }\n\n.bg-load-overlay {\n background: rgba(255, 255, 255, 0.4);\n box-sizing: border-box;\n position: fixed;\n display: flex;\n flex-flow: column nowrap;\n align-items: center;\n justify-content: space-around;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 2147483647;\n opacity: 1; }\n\n/*\n404ページ\n\n404 エラー画面で使用するページコンポーネントです。\n\nex [404エラー画面](http://demo3.ec-cube.net/404)\n\nMarkup:\ninclude /assets/tmpl/elements/20.1.404.pug\n+ec-404Role\n\nStyleguide 20.1\n\n*/\n.ec-404Role {\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n height: 100vh;\n background-color: #f2f2f2;\n text-align: center;\n box-sizing: border-box; }\n .ec-404Role textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-404Role img {\n max-width: 100%; }\n .ec-404Role html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-404Role *,\n .ec-404Role *::before,\n .ec-404Role *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-404Role img {\n width: 100%; }\n .ec-404Role .ec-404Role__icon img {\n width: 1em;\n height: 1em; }\n .ec-404Role .ec-404Role__title {\n font-weight: bold;\n font-size: 25px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n退会手続き\n\n退会手続きで使用するページコンポーネントです。\n\nex [退会手続き](http://demo3.ec-cube.net/mypage/withdraw)\n\nMarkup:\ninclude /assets/tmpl/elements/21.1.withdraw.pug\n+ec-withdrawRole\n\nStyleguide 21.1\n\n*/\n.ec-withdrawRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n text-align: center;\n padding: 0 16px; }\n .ec-withdrawRole:after {\n content: \" \";\n display: table; }\n .ec-withdrawRole:after {\n clear: both; }\n .ec-withdrawRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-withdrawRole img {\n max-width: 100%; }\n .ec-withdrawRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-withdrawRole *,\n .ec-withdrawRole *::before,\n .ec-withdrawRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-withdrawRole img {\n width: 100%; }\n .ec-withdrawRole .ec-withdrawRole__title {\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px; }\n .ec-withdrawRole .ec-withdrawRole__description {\n margin-bottom: 32px;\n font-size: 16px; }\n .ec-withdrawRole .ec-icon img {\n width: 100px;\n height: 100px; }\n\n/*\n退会手続き実行確認\n\n退会手続き実行確認で使用するページコンポーネントです。\n\nex [退会手続き 退会手続きへボタン→押下](http://demo3.ec-cube.net/mypage/withdraw)\n\nMarkup:\ninclude /assets/tmpl/elements/21.1.withdraw.pug\n+ec-withdrawConfirm\n\nStyleguide 21.1.2\n\n*/\n.ec-withdrawConfirmRole .ec-withdrawConfirmRole__cancel {\n margin-bottom: 20px; }\n\n.ec-withdrawConfirmRole .ec-withdrawConfirmRole__title {\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px; }\n\n.ec-withdrawConfirmRole .ec-withdrawConfirmRole__description {\n margin-bottom: 32px;\n font-size: 16px; }\n\n.ec-withdrawConfirmRole .ec-icon img {\n width: 100px;\n height: 100px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n会員情報編集完了\n\n会員情報編集完了で使用するページコンポーネントです。\n\nex [会員情報編集完了](http://demo3.ec-cube.net/mypage/change_complete)\n\nMarkup:\ninclude /assets/tmpl/elements/22.1.editComplete.pug\n+ec-userEditCompleteRole\n\nStyleguide 22.1\n\n*/\n.ec-userEditCompleteRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n text-align: center;\n padding: 0 16px; }\n .ec-userEditCompleteRole:after {\n content: \" \";\n display: table; }\n .ec-userEditCompleteRole:after {\n clear: both; }\n .ec-userEditCompleteRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-userEditCompleteRole img {\n max-width: 100%; }\n .ec-userEditCompleteRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-userEditCompleteRole *,\n .ec-userEditCompleteRole *::before,\n .ec-userEditCompleteRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-userEditCompleteRole img {\n width: 100%; }\n .ec-userEditCompleteRole .ec-userEditCompleteRole__title {\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px; }\n @media only screen and (min-width: 768px) {\n .ec-userEditCompleteRole .ec-userEditCompleteRole__title {\n font-size: 32px; } }\n .ec-userEditCompleteRole .ec-userEditCompleteRole__description {\n margin-bottom: 32px;\n font-size: 16px; }\n","/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */\n\n/**\n * 1. Change the default font family in all browsers (opinionated).\n * 2. Correct the line height in all browsers.\n * 3. Prevent adjustments of font size after orientation changes in\n * IE on Windows Phone and in iOS.\n */\n\n/* Document\n ========================================================================== */\n\nhtml {\n font-family: sans-serif; /* 1 */\n line-height: 1.15; /* 2 */\n -ms-text-size-adjust: 100%; /* 3 */\n -webkit-text-size-adjust: 100%; /* 3 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers (opinionated).\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Add the correct display in IE 9-.\n */\n\narticle,\naside,\nfooter,\nheader,\nnav,\nsection {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Add the correct display in IE 9-.\n * 1. Add the correct display in IE.\n */\n\nfigcaption,\nfigure,\nmain { /* 1 */\n display: block;\n}\n\n/**\n * Add the correct margin in IE 8.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * 1. Remove the gray background on active links in IE 10.\n * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.\n */\n\na {\n background-color: transparent; /* 1 */\n -webkit-text-decoration-skip: objects; /* 2 */\n}\n\n/**\n * Remove the outline on focused links when they are also active or hovered\n * in all browsers (opinionated).\n */\n\na:active,\na:hover {\n outline-width: 0;\n}\n\n/**\n * 1. Remove the bottom border in Firefox 39-.\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Prevent the duplicate application of `bolder` by the next rule in Safari 6.\n */\n\nb,\nstrong {\n font-weight: inherit;\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font style in Android 4.3-.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Add the correct background and color in IE 9-.\n */\n\nmark {\n background-color: #ff0;\n color: #000;\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Add the correct display in IE 9-.\n */\n\naudio,\nvideo {\n display: inline-block;\n}\n\n/**\n * Add the correct display in iOS 4-7.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Remove the border on images inside links in IE 10-.\n */\n\nimg {\n border-style: none;\n}\n\n/**\n * Hide the overflow in IE.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers (opinionated).\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: sans-serif; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n * controls in Android 4.\n * 2. Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\nhtml [type=\"button\"], /* 1 */\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Change the border, margin, and padding in all browsers (opinionated).\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * 1. Add the correct display in IE 9-.\n * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Remove the default vertical scrollbar in IE.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10-.\n * 2. Remove the padding in IE 10-.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in IE 9-.\n * 1. Add the correct display in Edge, IE, and Firefox.\n */\n\ndetails, /* 1 */\nmenu {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Scripting\n ========================================================================== */\n\n/**\n * Add the correct display in IE 9-.\n */\n\ncanvas {\n display: inline-block;\n}\n\n/**\n * Add the correct display in IE.\n */\n\ntemplate {\n display: none;\n}\n\n/* Hidden\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10-.\n */\n\n[hidden] {\n display: none;\n}\n","@import \"/node_modules/normalize.css/normalize.css\";\n\nbody {\n font-family: Roboto, \"游ゴシック\", YuGothic, \"Yu Gothic\", \"ヒラギノ角ゴ ProN W3\", \"Hiragino Kaku Gothic ProN\", Arial, \"メイリオ\", Meiryo, sans-serif;\n color:#525263;\n transition: z-index 0ms 5.28455ms;\n background: #f6f6f6;\n margin: 0;\n}\na {\n text-decoration: none;\n}\n\npre {\n background-color: transparent;\n border: none;\n padding: 16px 0;\n}\np {\n -webkit-margin-before: 0;\n -webkit-margin-after: 0;\n}\n@import \"component/1.1.heading\";\n@import \"component/1.2.typo\";\n@import \"component/1.3.list\";\n@import \"component/2.1.buttonsize\";\n@import \"component/2.2.closebutton.scss\";\n@import \"component/2.3.otherbutton\";\n@import \"component/3.1.inputText\";\n@import \"component/3.2.inputMisc\";\n@import \"component/3.3.form\";\n@import \"component/4.1.icon\";\n@import \"component/5.1.grid\";\n@import \"component/5.2.layout\";\n@import \"component/6.1.login\";\n@import \"component/7.1.itembanner\";\n@import \"component/7.2.search\";\n@import \"component/7.3.cart\";\n@import \"component/8.1.info\";\n@import \"component/8.2.banner\";\n@import \"component/9.1.mypage\";\n@import \"project/11.1.role\";\n@import \"project/11.2.header\";\n@import \"project/11.3.footer\";\n@import \"project/12.1.slider\";\n@import \"project/12.2.eyecatch\";\n@import \"project/12.3.button\";\n@import \"project/12.4.heading\";\n@import \"project/12.5.topics\";\n@import \"project/12.6.newItem\";\n@import \"project/12.7.category\";\n@import \"project/12.8.news\";\n@import \"project/13.1.searchnav\";\n@import \"project/13.2.shelf\";\n@import \"project/13.3.pager\";\n@import \"project/13.4.cartModal\";\n@import \"project/14.1.product\";\n@import \"project/15.1.cart\";\n@import \"project/15.2.order\";\n@import \"project/16.1.history\";\n@import \"project/16.2.historyDetail\";\n@import \"project/17.1.address\";\n@import \"project/18.1.password\";\n@import \"project/19.1.register\";\n@import \"project/19.2.contact\";\n@import \"project/19.3.customer\";\n@import \"project/20.1.404\";\n@import \"project/21.1.withdraw\";\n@import \"project/22.1.editComplete\";","@import \"./variables\";\n@import \"./clearfix\";\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n\n\n\n//@mixin media_tablet(){\n// @media only screen and (min-width: 768px) {\n// @content;\n// }\n//}\n\n@mixin media_desktop(){\n @media only screen and (min-width: 768px) {\n @content;\n }\n}\n\n//@mixin media_desktop2(){\n// @media only screen and (min-width: 768px) {\n// @content;\n// }\n//}\n//\n//@mixin media_desktop3(){\n// @media only screen and (min-width: 768px) {\n// @content;\n// }\n//}\n\n\n@mixin container(){\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n @include clearfix;\n @include commonStyle();\n width: 100%;\n max-width: 1130px;\n\n //@media (min-width: $desktop) {\n // width: 720 + 30px;\n //}\n //@media (min-width: $desktop2) {\n // width: 940 + 30px;\n //}\n //@media (min-width: $desktop3) {\n // width: 1140 + 30px;\n //}\n}\n@mixin mypageContainer(){\n margin-right: auto;\n margin-left: auto;\n padding-left: 16px;\n padding-right: 16px;\n box-sizing: border-box;\n @include clearfix;\n @include commonStyle();\n width: 100%;\n //max-width: 1130px;\n @include media_desktop {\n padding-left: 26px;\n padding-right: 26px;\n }\n}\n\n@mixin commonStyle(){\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n\n //a {\n //color: #0092C4;\n //color: #A092C4;\n //text-decoration: none;\n //cursor: pointer;\n //}\n //a:hover,\n //a:focus,\n //a:active { color: #33A8D0;text-decoration: none; outline: none;}\n\n\n textarea { /* for chrome fontsize bug */\n font-family: sans-serif;\n }\n\n //ul, ol {\n // list-style: none;\n // margin: 0; padding: 0;\n //}\n //dl, dt, dd, li{\n // margin: 0; padding: 0;\n //}\n img {\n max-width: 100%;\n }\n\n html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n *,\n *::before,\n *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n img{\n width: 100%;\n }\n\n\n}\n","@import \"../mixins/media\";\n@import \"../mixins/variables\";\n/*\n見出し\n\nページ内で見出しとして機能する要素のスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 1.1\n*/\n\n/*\n見出し\n\n商品紹介等で利用される、一般的な見出しのスタイルです。\n\nex [商品詳細ページ 商品見出し部分](http://demo3.ec-cube.net/products/detail/27)\n\nMarkup:\n.ec-headingTitle マトリョーシカ\n\nStyleguide 1.1.1\n*/\n.ec-headingTitle{\n margin: 0 0 8px;\n font-size: 32px;\n font-weight: normal;\n color: #525263;\n}\n\n/*\nページヘッダ\n\n各種ページで用いられるページヘッダのデザインです。\n\nex [利用規約ページ ページヘッダ部](http://demo3.ec-cube.net/help/agreement)\n\nMarkup:\n.ec-pageHeader\n h1 利用規約\n\nStyleguide 1.1.2\n*/\n.ec-pageHeader h1{\n margin: 0 0 8px;\n border-bottom: 1px dotted #ccc;\n border-top: 1px solid #ccc;\n padding: 8px 0 12px;\n font-size: 16px;\n font-weight: bold;\n @include media_desktop {\n border-top: none;\n border-bottom: 1px solid #ccc;\n margin: 10px 16px 48px;\n padding: 8px;\n font-size: 32px;\n font-weight: bold;\n }\n}\n\n\n/*\nサブ見出し\n\n利用規約など、文字主体のページで用いられるサブ見出しです。\n\nex [利用規約ページ サブ見出し部分](http://demo3.ec-cube.net/help/agreement)\n\nMarkup:\n.ec-heading 第1条 (会員)\n\nStyleguide 1.1.3\n*/\n\n.ec-heading{\n margin: 24px 0;\n}\n\n\n\n/*\nサブ見出し(太字)\n\n文字主体のページで用いられるサブ見出しの太字のスタイルです。\n\nex [プライバシーポリシー サブ見出し部分](http://demo3.ec-cube.net/help/privacy)\n\nMarkup:\n.ec-heading-bold 個人情報の定義\n\nStyleguide 1.1.4\n*/\n\n.ec-heading-bold {\n margin: 16px 0;\n font-size: 16px;\n font-weight: bold;\n @include media_desktop {\n font-size: 18px;\n }\n}\n\n/*\n背景付き見出し\n\nマイページ注文履歴等で用いられる背景付きの見出しです。\n\nex [ご注文履歴詳細 背景付き見出し部分](http://demo3.ec-cube.net/mypage/history/1063)\n\nMarkup:\n.ec-rectHeading\n h2 配送情報\n.ec-rectHeading\n h2 お支払について\n\nStyleguide 1.1.5\n*/\n.ec-rectHeading{\n h1, h2, h3,\n h4, h5, h6{\n background: $clrGray;\n padding: 8px 12px;\n font-size: 20px;\n font-weight: bold;\n }\n\n}\n\n\n/*\nメッセージ見出し\n\nユーザが行った操作に対する、完了報告やエラー表示のページで使用される見出しのスタイルです。\n\nex [注文完了 ログイン後、カートに商品を入れ注文完了まで行う](http://demo3.ec-cube.net/shopping/)\n\nMarkup:\n.ec-reportHeading\n h2 ご注文ありがとうございました\n\nStyleguide 1.1.6\n*/\n.ec-reportHeading{\n width: 100%;\n border-top: 1px dotted #ccc;\n margin: 20px 0 30px;\n padding: 0;\n text-align: center;\n font-size: 24px;\n font-weight: bold;\n @include media_desktop {\n border-top: 0;\n font-size: 32px;\n }\n h1, h2, h3,\n h4, h5, h6,p {\n font-weight: bold;\n font-size: 24px;\n @include media_desktop {\n font-size: 32px;\n }\n }\n}\n\n","\n// MediaQuery\n$tablet: 480px;\n$desktop: 768px;\n$desktop2: 992px;\n$desktop3: 1200px;\n\n$font-size: 16px;\n\n$clrRed: #DE5D50;\n$clrRich: #9a947e;\n$clrGray: #F3F3F3;\n$clrRightGray: #B8BEC4;\n$clrExtraGray: #636378;\n$clrDarkGray:#525263;\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/variables\";\n","@import \"../mixins/media\";\n/*\n文字装飾\n\n文字装飾をするためのスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 1.2\n*/\n\n/*\nテキストリンク\n\nテキストリンクのスタイルです。\n\nMarkup:\na(href=\"#\").ec-link さくらのクラウド\n\nStyleguide 1.2.1\n*/\n.ec-link {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer;\n &:hover {\n color: #33A8D0;\n text-decoration: none;\n }\n}\n\n/*\nテキスト(太字)\n\nテキストを太くするためのスタイルです。\n\nMarkup:\np.ec-font-bold この季節にぴったりな商品をご用意しました\n\nStyleguide 1.2.2\n*/\n\n.ec-font-bold {\n font-weight: bold;\n}\n\n/*\nテキスト(グレー)\n\nテキストをグレーにするためのスタイルです。\n\nMarkup:\np.ec-color-grey 青色が美しい職人が仕上げた吹きガラス\n\nStyleguide 1.2.3\n*/\n\n.ec-color-grey {\n color: #9a947e;\n}\n\n/*\nテキスト(赤)\n\nテキストを赤にするためのスタイルです。\n\nMarkup:\np.ec-color-red ¥ 2,728 税込\np.ec-color-accent ¥ 2,728 税込\n\nStyleguide 1.2.4\n*/\n\n.ec-color-red {\n color: #DE5D50;\n}\n\n.ec-color-accent {\n color: #DE5D50;\n}\n\n/*\nフォントサイズ\n\nフォントサイズを指定するためのスタイルです。\n\nMarkup:\n.ec-font-size-1 さわやかな日差しが過ごしやすい季節\n.ec-font-size-2 さわやかな日差しが過ごしやすい季節\n.ec-font-size-3 さわやかな日差しが過ごしやすい季節\n.ec-font-size-4 さわやかな日差しが過ごしやすい季節\n.ec-font-size-5 さわやかな日差しが過ごしやすい季節\n.ec-font-size-6 さわやかな日差しが過ごしやすい季節\n\n\nStyleguide 1.2.5\n*/\n\n.ec-font-size-1 {\n font-size: 12px;\n}\n\n.ec-font-size-2 {\n font-size: 14px;\n}\n\n.ec-font-size-3 {\n font-size: 16px;\n}\n\n.ec-font-size-4 {\n font-size: 20px;\n}\n\n.ec-font-size-5 {\n font-size: 32px;\n}\n\n.ec-font-size-6 {\n font-size: 40px;\n}\n\n/*\nテキスト水平位置\n\nテキストをセンタリングするためのスタイルです。\n\nMarkup:\np.ec-text-ac さわやかな日差しが過ごしやすい季節\n\nStyleguide 1.2.6\n*/\n\n.ec-text-ac {\n text-align: center;\n}\n\n/*\n価格テキスト\n\n価格を表示するテキストです。\n\n価格文字にスペースを取るほか、税込み等の表示を小さくする効果もあります。\n\nspanを用いたインライン要素として利用します。\n\nMarkup:\ndiv(style=\"color:#DE5D50;font-size:28px\")\n span.ec-price\n span.ec-price__unit ¥\n span.ec-price__price 1,280\n span.ec-price__tax 税込\n\nStyleguide 1.2.7\n*/\n.ec-price {\n & &__unit {\n font-size: 18px;\n font-weight: bold;\n @include media_desktop{\n font-size: 1em;\n }\n }\n & &__price {\n display: inline-block;\n padding: 0 .3em;\n font-size: 18px;\n font-weight: bold;\n @include media_desktop{\n font-size: 1em;\n }\n }\n & &__tax {\n font-size: 10px;\n @include media_desktop{\n font-size: 0.57em;\n }\n }\n\n}\n\n/*\nテキストの位置\n\nテキストや、入れ子にしたインライン要素を\n「左揃え」「中央揃え」「右揃え」に設定することができます。\n\nMarkup:\nh3 左揃え\np.text-left\n | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Incidunt praesentium repellat sapiente suscipit, unde veniam! Doloribus error, expedita id impedit iusto qui sint totam? Aspernatur error facere possimus quam quos?\nbr\nh3 中央揃え\np.text-center\n | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Incidunt praesentium repellat sapiente suscipit, unde veniam! Doloribus error, expedita id impedit iusto qui sint totam? Aspernatur error facere possimus quam quos?\nbr\nh3 右揃え\np.text-right\n | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Incidunt praesentium repellat sapiente suscipit, unde veniam! Doloribus error, expedita id impedit iusto qui sint totam? Aspernatur error facere possimus quam quos?\n\nStyleguide 1.2.8\n*/\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.text-right {\n text-align: right;\n}\n\n/*\nメッセージテキスト\n\nユーザが行った操作に対する、完了報告やエラー表示のページで使用されるテキストのスタイルです。\n\nex [注文完了 (ログイン後、カートに商品を入れ注文完了まで行う)](http://demo3.ec-cube.net/shopping/)\n\nMarkup:\n.ec-reportHeading\n h2 ご注文ありがとうございました\np.ec-reportDescription\n | ただいま、ご注文の確認メールをお送りさせていただきました。\n br\n | 万一、ご確認メールが届かない場合は、トラブルの可能性もありますので大変お手数ではございますがもう一度お問い合わせいただくか、お電話にてお問い合わせくださいませ。\n br\n | 今後ともご愛顧賜りますようよろしくお願い申し上げます。\n\n\nStyleguide 1.2.9\n*/\n.ec-reportDescription {\n margin-bottom: 32px;\n text-align: center;\n font-size: 16px;\n line-height: 1.4;\n}\n\n/*\nテキスト下部のスペース\n\nテキストの下に余白を追加することができます。 .ec-para-normalで16pxの余白をつけることができます。\n\nMarkup:\np.ec-para-normal 万一、ご確認メールが届かない場合は、トラブルの可能性もありますので大変お手数ではございますがもう一度お問い合わせいただくか、お電話にてお問い合わせくださいませ。\np.ec-para-normal 万一、ご確認メールが届かない場合は、トラブルの可能性もありますので大変お手数ではございますがもう一度お問い合わせいただくか、お電話にてお問い合わせくださいませ。\n\nStyleguide 1.2.10\n*/\n.ec-para-normal {\n margin-bottom: 16px;\n}","@import \"../mixins/media\";\n\n/*\nリスト\n\nシンプルなリストを構成するためのスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 1.3\n*/\n\n/*\n水平定義リスト\n\nシンプルな定義リストのスタイルを定義します。\n\ndl要素を用いてコーディングします。\n\nex [当サイトについて 水平定義リスト部分](http://demo3.ec-cube.net/help/about)\n\nMarkup:\ndl.ec-definitions\n dt 店名\n dd EC-CUBE3 DEMO SHOP\ndl.ec-definitions\n dt 会社名\n dd EC-CUBE3\ndl.ec-definitions--soft\n dt 所在地\n dd 〒 550-0001\n\nStyleguide 1.3.1\n*/\n.ec-definitions {\n margin: 5px 0;\n display: block;\n & dt, dd {\n display: inline-block;\n margin: 0;\n }\n & dt {\n font-weight: bold;\n }\n}\n\n.ec-definitions--soft {\n @extend .ec-definitions;\n & dt {\n font-weight: normal;\n }\n}\n\n/*\n下線つき定義リスト\n\n線が添えられた定義リストのスタイルを定義します。\n\ndl要素を用いてコーディングします。\n\nex [当サイトについて 下線つき定義リスト](http://demo3.ec-cube.net/help/about)\n\nMarkup:\n.ec-borderedDefs\n dl\n dt 店名\n dd EC-CUBE3 DEMO SHOP\n dl\n dt 会社名\n dd EC-CUBE3\n dl\n dt 所在地\n dd 〒550 - 0001\n\nStyleguide 1.3.2\n*/\n\n.ec-borderedDefs {\n width: 100%;\n border-top: 1px dotted #ccc;\n margin-bottom:16px;\n dl {\n display: flex;\n border-bottom: 1px dotted #ccc;\n margin: 0;\n padding: 10px 0 0;\n flex-wrap: wrap;\n @include media_desktop {\n flex-wrap: nowrap;\n padding: 15px 0 4px;\n }\n }\n dt, dd {\n padding: 0;\n }\n\n dt {\n font-weight: normal;\n width: 100%;\n padding-top: 0;\n @include media_desktop {\n padding-top: 14px;\n width: 30%;\n }\n }\n\n dd {\n padding: 0;\n width: 100%;\n line-height: 2.5;\n @include media_desktop {\n width: 70%;\n //padding: 18px 16px;\n line-height: 3;\n }\n }\n p {\n line-height: 1.4;\n }\n}\n\n.ec-list-chilled {\n display: table-row;\n border: 0 none;\n padding: 8px 0;\n\n dt, dd {\n display: table-cell;\n border-bottom: 1px dotted #ccc;\n padding: 0;\n @include media_desktop {\n padding: 16px 0;\n }\n }\n\n dt {\n width: 30%;\n }\n\n dd {\n padding: 0;\n @include media_desktop {\n padding: 16px;\n }\n }\n}\n\n/*\nボーダーリスト\n\n線が添えられたリストを表示します。\n\nex [当サイトについて ボーダーリスト](http://demo3.ec-cube.net/help/about)\n\nMarkup:\nul.ec-borderedList\n li: p lorem\n li: p lorem\n li: p lorem\n\n\nStyleguide 1.3.3\n*/\n\n.ec-borderedList {\n width: 100%;\n border-top: 0;\n list-style: none;\n padding: 0;\n @include media_desktop {\n border-top: 1px dotted #ccc;\n }\n li {\n border-bottom: 1px dotted #ccc;\n }\n}\n\n.ec-list-chilled {\n display: table-row;\n border: 0 none;\n padding: 8px 0;\n\n dt, dd {\n display: table-cell;\n border-bottom: 1px dotted #ccc;\n padding: 16px 0;\n }\n\n dt {\n width: 30%;\n }\n\n dd {\n padding: 16px;\n }\n}\n","@import \"../mixins/btn\";\n/*\nボタンサイズ\n\nボタンサイズを変更するスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 2.1\n*/\n\n/*\n通常ボタン\n\nインラインの要素としてボタンを定義出来ます。\n\nex [トップページ ボタン部分](http://demo3.ec-cube.net/)\n\nMarkup:\n.ec-inlineBtn 住所検索\n.ec-inlineBtn--primary もっと見る\n.ec-inlineBtn--action カートに入れる\n.ec-inlineBtn--cancel キャンセル\n\nStyleguide 2.1.1\n*/\n.ec-inlineBtn{\n @include btn-default;\n}\n.ec-inlineBtn--primary{\n @include btn-primary\n}\n.ec-inlineBtn--action{\n @include btn-action\n}\n.ec-inlineBtn--cancel{\n @include btn-cancel\n}\n\n/*\nブロックボタン(全幅)\n\nボタンサイズは em で指定するため、テキストサイズの変更でボタンサイズを変更できます。\n\nex [商品詳細ページ カートボタン部分](http://demo3.ec-cube.net/products/detail/30)\n\nMarkup:\np: .ec-blockBtn 住所検索\np: .ec-blockBtn--primary もっと見る\np: .ec-blockBtn--action カートに入れる\np: .ec-blockBtn--cancel キャンセル\n\nStyleguide 2.1.2\n*/\n.ec-blockBtn{\n @include blockBtn-default;\n}\n.ec-blockBtn--primary{\n @include blockBtn-primary\n}\n.ec-blockBtn--action{\n @include blockBtn-action\n}\n.ec-blockBtn--cancel{\n @include blockBtn-cancel\n}","@import \"../mixins/variables\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/buttons\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/tab-focus\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/opacity\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/vendor-prefixes\";\n\n$padding-base-vertical: 6px !default;\n\n\n$btn-primary-bg: #5CB1B1;\n$btn-primary-color: #fff;\n$btn-action-bg: #DE5D50;\n$btn-action-color: #fff;\n$btn-cancel-bg: #525263;\n$btn-cancel-color: #fff;\n$btn-default-bg: #F5F7F8;\n$btn-default-color: #525263;\n\n$btn-border-radius-base: 0px;\n\n\n@mixin _btn($color, $background, $border){\n display: inline-block;\n margin-bottom: 0; // For input.btn\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n white-space: nowrap;\n @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base);\n @include user-select(none);\n padding: 10px 16px;\n text-decoration: none;\n\n &,\n &:active,\n &.active {\n &:focus,\n &.focus {\n @include tab-focus;\n }\n }\n\n &:hover,\n &:focus,\n &.focus {\n color: $btn-default-color;\n text-decoration: none;\n }\n\n &:active,\n &.active {\n outline: 0;\n background-image: none;\n @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n cursor: $cursor-disabled;\n @include opacity(.65);\n @include box-shadow(none);\n }\n\n @include button-variant($color, $background, $border);\n // [converter] extracted a& to a.btn\n\n .ec-icon img {\n width: 1em;\n vertical-align: text-bottom;\n }\n}\n\n@mixin btn-default(){\n @include _btn($btn-default-color, $btn-default-bg, $btn-default-border)\n}\n@mixin btn-action(){\n @include _btn($btn-action-color, $btn-action-bg, $btn-action-bg)\n}\n@mixin btn-cancel(){\n @include _btn($btn-cancel-color, $btn-cancel-bg, $btn-cancel-bg)\n}\n@mixin btn-primary(){\n @include _btn($btn-primary-color, $btn-primary-bg, $btn-primary-bg)\n}\n\n@mixin blockBtn-default(){\n @include _btn($btn-default-color, $btn-default-bg, $btn-default-border);\n display: block;\n width: 100%;\n height:56px;\n line-height:56px;\n padding-top: 0;\n padding-bottom: 0;\n}\n@mixin blockBtn-action(){\n @include _btn($btn-action-color, $btn-action-bg, $btn-action-bg);\n display: block;\n width: 100%;\n height:56px;\n line-height:56px;\n padding-top: 0;\n padding-bottom: 0;\n}\n@mixin blockBtn-cancel(){\n @include _btn($btn-cancel-color, $btn-cancel-bg, $btn-cancel-bg);\n display: block;\n width: 100%;\n height:56px;\n line-height:56px;\n padding-top: 0;\n padding-bottom: 0;\n}\n@mixin blockBtn-primary(){\n @include _btn($btn-primary-color, $btn-primary-bg, $btn-primary-bg);\n display: block;\n width: 100%;\n height:56px;\n line-height:56px;\n padding-top: 0;\n padding-bottom: 0;\n}\n\n// User select\n// For selecting text on the page\n\n@mixin user-select($select) {\n -webkit-user-select: $select;\n -moz-user-select: $select;\n -ms-user-select: $select; // IE10+\n user-select: $select;\n}\n\n\n\n\n@mixin linkBtn{\n &.disabled,\n fieldset[disabled] & {\n pointer-events: none; // Future-proof disabling of clicks on `` elements\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($color, $background, $border) {\n color: $color;\n background-color: $background;\n border-color: $border;\n\n &:focus,\n &.focus {\n color: $color;\n background-color: darken($background, 10%);\n border-color: darken($border, 25%);\n }\n &:hover {\n color: $color;\n background-color: darken($background, 10%);\n border-color: darken($border, 12%);\n }\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n color: $color;\n background-color: darken($background, 10%);\n border-color: darken($border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: $color;\n background-color: darken($background, 17%);\n border-color: darken($border, 25%);\n }\n }\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: $background;\n border-color: $border;\n }\n }\n\n .badge {\n color: $background;\n background-color: $color;\n }\n}\n\n// Button sizes\n@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {\n padding: $padding-vertical $padding-horizontal;\n font-size: $font-size;\n line-height: $line-height;\n border-radius: $border-radius;\n}\n","$bootstrap-sass-asset-helper: false !default;\n//\n// Variables\n// --------------------------------------------------\n\n\n//== Colors\n//\n//## Gray and brand colors for use across Bootstrap.\n\n$gray-base: #000 !default;\n$gray-darker: lighten($gray-base, 13.5%) !default; // #222\n$gray-dark: lighten($gray-base, 20%) !default; // #333\n$gray: lighten($gray-base, 33.5%) !default; // #555\n$gray-light: lighten($gray-base, 46.7%) !default; // #777\n$gray-lighter: lighten($gray-base, 93.5%) !default; // #eee\n\n$brand-primary: darken(#428bca, 6.5%) !default; // #337ab7\n$brand-success: #5cb85c !default;\n$brand-info: #5bc0de !default;\n$brand-warning: #f0ad4e !default;\n$brand-danger: #d9534f !default;\n\n\n//== Scaffolding\n//\n//## Settings for some of the most global styles.\n\n//** Background color for ``.\n$body-bg: #fff !default;\n//** Global text color on ``.\n$text-color: $gray-dark !default;\n\n//** Global textual link color.\n$link-color: $brand-primary !default;\n//** Link hover color set via `darken()` function.\n$link-hover-color: darken($link-color, 15%) !default;\n//** Link hover decoration.\n$link-hover-decoration: underline !default;\n\n\n//== Typography\n//\n//## Font, line-height, and color for body text, headings, and more.\n\n$font-family-sans-serif: \"Helvetica Neue\", Helvetica, Arial, sans-serif !default;\n$font-family-serif: Georgia, \"Times New Roman\", Times, serif !default;\n//** Default monospace fonts for ``, ``, and `
`.\n$font-family-monospace:   Menlo, Monaco, Consolas, \"Courier New\", monospace !default;\n$font-family-base:        $font-family-sans-serif !default;\n\n$font-size-base:          14px !default;\n$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px\n$font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px\n\n$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px\n$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px\n$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px\n$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px\n$font-size-h5:            $font-size-base !default;\n$font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px\n\n//** Unit-less `line-height` for use in components like buttons.\n$line-height-base:        1.428571429 !default; // 20/14\n//** Computed \"line-height\" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.\n$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px\n\n//** By default, this inherits from the ``.\n$headings-font-family:    inherit !default;\n$headings-font-weight:    500 !default;\n$headings-line-height:    1.1 !default;\n$headings-color:          inherit !default;\n\n\n//== Iconography\n//\n//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.\n\n//** Load fonts from this directory.\n\n// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.\n// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.\n$icon-font-path: if($bootstrap-sass-asset-helper, \"bootstrap/\", \"../fonts/bootstrap/\") !default;\n\n//** File name for all font files.\n$icon-font-name:          \"glyphicons-halflings-regular\" !default;\n//** Element ID within SVG icon file.\n$icon-font-svg-id:        \"glyphicons_halflingsregular\" !default;\n\n\n//== Components\n//\n//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).\n\n$padding-base-vertical:     6px !default;\n$padding-base-horizontal:   12px !default;\n\n$padding-large-vertical:    10px !default;\n$padding-large-horizontal:  16px !default;\n\n$padding-small-vertical:    5px !default;\n$padding-small-horizontal:  10px !default;\n\n$padding-xs-vertical:       1px !default;\n$padding-xs-horizontal:     5px !default;\n\n$line-height-large:         1.3333333 !default; // extra decimals for Win 8.1 Chrome\n$line-height-small:         1.5 !default;\n\n$border-radius-base:        4px !default;\n$border-radius-large:       6px !default;\n$border-radius-small:       3px !default;\n\n//** Global color for active items (e.g., navs or dropdowns).\n$component-active-color:    #fff !default;\n//** Global background color for active items (e.g., navs or dropdowns).\n$component-active-bg:       $brand-primary !default;\n\n//** Width of the `border` for generating carets that indicate dropdowns.\n$caret-width-base:          4px !default;\n//** Carets increase slightly in size for larger components.\n$caret-width-large:         5px !default;\n\n\n//== Tables\n//\n//## Customizes the `.table` component with basic values, each used across all table variations.\n\n//** Padding for ``s and ``s.\n$table-cell-padding:            8px !default;\n//** Padding for cells in `.table-condensed`.\n$table-condensed-cell-padding:  5px !default;\n\n//** Default background color used for all tables.\n$table-bg:                      transparent !default;\n//** Background color used for `.table-striped`.\n$table-bg-accent:               #f9f9f9 !default;\n//** Background color used for `.table-hover`.\n$table-bg-hover:                #f5f5f5 !default;\n$table-bg-active:               $table-bg-hover !default;\n\n//** Border color for table and cell borders.\n$table-border-color:            #ddd !default;\n\n\n//== Buttons\n//\n//## For each of Bootstrap's buttons, define text, background and border color.\n\n$btn-font-weight:                normal !default;\n\n$btn-default-color:              #333 !default;\n$btn-default-bg:                 #fff !default;\n$btn-default-border:             #ccc !default;\n\n$btn-primary-color:              #fff !default;\n$btn-primary-bg:                 $brand-primary !default;\n$btn-primary-border:             darken($btn-primary-bg, 5%) !default;\n\n$btn-success-color:              #fff !default;\n$btn-success-bg:                 $brand-success !default;\n$btn-success-border:             darken($btn-success-bg, 5%) !default;\n\n$btn-info-color:                 #fff !default;\n$btn-info-bg:                    $brand-info !default;\n$btn-info-border:                darken($btn-info-bg, 5%) !default;\n\n$btn-warning-color:              #fff !default;\n$btn-warning-bg:                 $brand-warning !default;\n$btn-warning-border:             darken($btn-warning-bg, 5%) !default;\n\n$btn-danger-color:               #fff !default;\n$btn-danger-bg:                  $brand-danger !default;\n$btn-danger-border:              darken($btn-danger-bg, 5%) !default;\n\n$btn-link-disabled-color:        $gray-light !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius-base:         $border-radius-base !default;\n$btn-border-radius-large:        $border-radius-large !default;\n$btn-border-radius-small:        $border-radius-small !default;\n\n\n//== Forms\n//\n//##\n\n//** `` background color\n$input-bg:                       #fff !default;\n//** `` background color\n$input-bg-disabled:              $gray-lighter !default;\n\n//** Text color for ``s\n$input-color:                    $gray !default;\n//** `` border color\n$input-border:                   #ccc !default;\n\n// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4\n//** Default `.form-control` border radius\n// This has no effect on ``s in CSS.\n$input-border-radius:            $border-radius-base !default;\n//** Large `.form-control` border radius\n$input-border-radius-large:      $border-radius-large !default;\n//** Small `.form-control` border radius\n$input-border-radius-small:      $border-radius-small !default;\n\n//** Border color for inputs on focus\n$input-border-focus:             #66afe9 !default;\n\n//** Placeholder text color\n$input-color-placeholder:        #999 !default;\n\n//** Default `.form-control` height\n$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;\n//** Large `.form-control` height\n$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;\n//** Small `.form-control` height\n$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;\n\n//** `.form-group` margin\n$form-group-margin-bottom:       15px !default;\n\n$legend-color:                   $gray-dark !default;\n$legend-border-color:            #e5e5e5 !default;\n\n//** Background color for textual input addons\n$input-group-addon-bg:           $gray-lighter !default;\n//** Border color for textual input addons\n$input-group-addon-border-color: $input-border !default;\n\n//** Disabled cursor for form controls and buttons.\n$cursor-disabled:                not-allowed !default;\n\n\n//== Dropdowns\n//\n//## Dropdown menu container and contents.\n\n//** Background for the dropdown menu.\n$dropdown-bg:                    #fff !default;\n//** Dropdown menu `border-color`.\n$dropdown-border:                rgba(0,0,0,.15) !default;\n//** Dropdown menu `border-color` **for IE8**.\n$dropdown-fallback-border:       #ccc !default;\n//** Divider color for between dropdown items.\n$dropdown-divider-bg:            #e5e5e5 !default;\n\n//** Dropdown link text color.\n$dropdown-link-color:            $gray-dark !default;\n//** Hover color for dropdown links.\n$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;\n//** Hover background for dropdown links.\n$dropdown-link-hover-bg:         #f5f5f5 !default;\n\n//** Active dropdown menu item text color.\n$dropdown-link-active-color:     $component-active-color !default;\n//** Active dropdown menu item background color.\n$dropdown-link-active-bg:        $component-active-bg !default;\n\n//** Disabled dropdown menu item background color.\n$dropdown-link-disabled-color:   $gray-light !default;\n\n//** Text color for headers within dropdown menus.\n$dropdown-header-color:          $gray-light !default;\n\n//** Deprecated `$dropdown-caret-color` as of v3.1.0\n$dropdown-caret-color:           #000 !default;\n\n\n//-- Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n//\n// Note: These variables are not generated into the Customizer.\n\n$zindex-navbar:            1000 !default;\n$zindex-dropdown:          1000 !default;\n$zindex-popover:           1060 !default;\n$zindex-tooltip:           1070 !default;\n$zindex-navbar-fixed:      1030 !default;\n$zindex-modal-background:  1040 !default;\n$zindex-modal:             1050 !default;\n\n\n//== Media queries breakpoints\n//\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n// Extra small screen / phone\n//** Deprecated `$screen-xs` as of v3.0.1\n$screen-xs:                  480px !default;\n//** Deprecated `$screen-xs-min` as of v3.2.0\n$screen-xs-min:              $screen-xs !default;\n//** Deprecated `$screen-phone` as of v3.0.1\n$screen-phone:               $screen-xs-min !default;\n\n// Small screen / tablet\n//** Deprecated `$screen-sm` as of v3.0.1\n$screen-sm:                  768px !default;\n$screen-sm-min:              $screen-sm !default;\n//** Deprecated `$screen-tablet` as of v3.0.1\n$screen-tablet:              $screen-sm-min !default;\n\n// Medium screen / desktop\n//** Deprecated `$screen-md` as of v3.0.1\n$screen-md:                  992px !default;\n$screen-md-min:              $screen-md !default;\n//** Deprecated `$screen-desktop` as of v3.0.1\n$screen-desktop:             $screen-md-min !default;\n\n// Large screen / wide desktop\n//** Deprecated `$screen-lg` as of v3.0.1\n$screen-lg:                  1200px !default;\n$screen-lg-min:              $screen-lg !default;\n//** Deprecated `$screen-lg-desktop` as of v3.0.1\n$screen-lg-desktop:          $screen-lg-min !default;\n\n// So media queries don't overlap when required, provide a maximum\n$screen-xs-max:              ($screen-sm-min - 1) !default;\n$screen-sm-max:              ($screen-md-min - 1) !default;\n$screen-md-max:              ($screen-lg-min - 1) !default;\n\n\n//== Grid system\n//\n//## Define your custom responsive grid.\n\n//** Number of columns in the grid.\n$grid-columns:              12 !default;\n//** Padding between columns. Gets divided in half for the left and right.\n$grid-gutter-width:         30px !default;\n// Navbar collapse\n//** Point at which the navbar becomes uncollapsed.\n$grid-float-breakpoint:     $screen-sm-min !default;\n//** Point at which the navbar begins collapsing.\n$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;\n\n\n//== Container sizes\n//\n//## Define the maximum width of `.container` for different screen sizes.\n\n// Small screen / tablet\n$container-tablet:             (720px + $grid-gutter-width) !default;\n//** For `$screen-sm-min` and up.\n$container-sm:                 $container-tablet !default;\n\n// Medium screen / desktop\n$container-desktop:            (940px + $grid-gutter-width) !default;\n//** For `$screen-md-min` and up.\n$container-md:                 $container-desktop !default;\n\n// Large screen / wide desktop\n$container-large-desktop:      (1140px + $grid-gutter-width) !default;\n//** For `$screen-lg-min` and up.\n$container-lg:                 $container-large-desktop !default;\n\n\n//== Navbar\n//\n//##\n\n// Basics of a navbar\n$navbar-height:                    50px !default;\n$navbar-margin-bottom:             $line-height-computed !default;\n$navbar-border-radius:             $border-radius-base !default;\n$navbar-padding-horizontal:        floor(($grid-gutter-width / 2)) !default;\n$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2) !default;\n$navbar-collapse-max-height:       340px !default;\n\n$navbar-default-color:             #777 !default;\n$navbar-default-bg:                #f8f8f8 !default;\n$navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;\n\n// Navbar links\n$navbar-default-link-color:                #777 !default;\n$navbar-default-link-hover-color:          #333 !default;\n$navbar-default-link-hover-bg:             transparent !default;\n$navbar-default-link-active-color:         #555 !default;\n$navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;\n$navbar-default-link-disabled-color:       #ccc !default;\n$navbar-default-link-disabled-bg:          transparent !default;\n\n// Navbar brand label\n$navbar-default-brand-color:               $navbar-default-link-color !default;\n$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;\n$navbar-default-brand-hover-bg:            transparent !default;\n\n// Navbar toggle\n$navbar-default-toggle-hover-bg:           #ddd !default;\n$navbar-default-toggle-icon-bar-bg:        #888 !default;\n$navbar-default-toggle-border-color:       #ddd !default;\n\n\n//=== Inverted navbar\n// Reset inverted navbar basics\n$navbar-inverse-color:                      lighten($gray-light, 15%) !default;\n$navbar-inverse-bg:                         #222 !default;\n$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;\n\n// Inverted navbar links\n$navbar-inverse-link-color:                 lighten($gray-light, 15%) !default;\n$navbar-inverse-link-hover-color:           #fff !default;\n$navbar-inverse-link-hover-bg:              transparent !default;\n$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;\n$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;\n$navbar-inverse-link-disabled-color:        #444 !default;\n$navbar-inverse-link-disabled-bg:           transparent !default;\n\n// Inverted navbar brand label\n$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;\n$navbar-inverse-brand-hover-color:          #fff !default;\n$navbar-inverse-brand-hover-bg:             transparent !default;\n\n// Inverted navbar toggle\n$navbar-inverse-toggle-hover-bg:            #333 !default;\n$navbar-inverse-toggle-icon-bar-bg:         #fff !default;\n$navbar-inverse-toggle-border-color:        #333 !default;\n\n\n//== Navs\n//\n//##\n\n//=== Shared nav styles\n$nav-link-padding:                          10px 15px !default;\n$nav-link-hover-bg:                         $gray-lighter !default;\n\n$nav-disabled-link-color:                   $gray-light !default;\n$nav-disabled-link-hover-color:             $gray-light !default;\n\n//== Tabs\n$nav-tabs-border-color:                     #ddd !default;\n\n$nav-tabs-link-hover-border-color:          $gray-lighter !default;\n\n$nav-tabs-active-link-hover-bg:             $body-bg !default;\n$nav-tabs-active-link-hover-color:          $gray !default;\n$nav-tabs-active-link-hover-border-color:   #ddd !default;\n\n$nav-tabs-justified-link-border-color:            #ddd !default;\n$nav-tabs-justified-active-link-border-color:     $body-bg !default;\n\n//== Pills\n$nav-pills-border-radius:                   $border-radius-base !default;\n$nav-pills-active-link-hover-bg:            $component-active-bg !default;\n$nav-pills-active-link-hover-color:         $component-active-color !default;\n\n\n//== Pagination\n//\n//##\n\n$pagination-color:                     $link-color !default;\n$pagination-bg:                        #fff !default;\n$pagination-border:                    #ddd !default;\n\n$pagination-hover-color:               $link-hover-color !default;\n$pagination-hover-bg:                  $gray-lighter !default;\n$pagination-hover-border:              #ddd !default;\n\n$pagination-active-color:              #fff !default;\n$pagination-active-bg:                 $brand-primary !default;\n$pagination-active-border:             $brand-primary !default;\n\n$pagination-disabled-color:            $gray-light !default;\n$pagination-disabled-bg:               #fff !default;\n$pagination-disabled-border:           #ddd !default;\n\n\n//== Pager\n//\n//##\n\n$pager-bg:                             $pagination-bg !default;\n$pager-border:                         $pagination-border !default;\n$pager-border-radius:                  15px !default;\n\n$pager-hover-bg:                       $pagination-hover-bg !default;\n\n$pager-active-bg:                      $pagination-active-bg !default;\n$pager-active-color:                   $pagination-active-color !default;\n\n$pager-disabled-color:                 $pagination-disabled-color !default;\n\n\n//== Jumbotron\n//\n//##\n\n$jumbotron-padding:              30px !default;\n$jumbotron-color:                inherit !default;\n$jumbotron-bg:                   $gray-lighter !default;\n$jumbotron-heading-color:        inherit !default;\n$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;\n$jumbotron-heading-font-size:    ceil(($font-size-base * 4.5)) !default;\n\n\n//== Form states and alerts\n//\n//## Define colors for form feedback states and, by default, alerts.\n\n$state-success-text:             #3c763d !default;\n$state-success-bg:               #dff0d8 !default;\n$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;\n\n$state-info-text:                #31708f !default;\n$state-info-bg:                  #d9edf7 !default;\n$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;\n\n$state-warning-text:             #8a6d3b !default;\n$state-warning-bg:               #fcf8e3 !default;\n$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;\n\n$state-danger-text:              #a94442 !default;\n$state-danger-bg:                #f2dede !default;\n$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;\n\n\n//== Tooltips\n//\n//##\n\n//** Tooltip max width\n$tooltip-max-width:           200px !default;\n//** Tooltip text color\n$tooltip-color:               #fff !default;\n//** Tooltip background color\n$tooltip-bg:                  #000 !default;\n$tooltip-opacity:             .9 !default;\n\n//** Tooltip arrow width\n$tooltip-arrow-width:         5px !default;\n//** Tooltip arrow color\n$tooltip-arrow-color:         $tooltip-bg !default;\n\n\n//== Popovers\n//\n//##\n\n//** Popover body background color\n$popover-bg:                          #fff !default;\n//** Popover maximum width\n$popover-max-width:                   276px !default;\n//** Popover border color\n$popover-border-color:                rgba(0,0,0,.2) !default;\n//** Popover fallback border color\n$popover-fallback-border-color:       #ccc !default;\n\n//** Popover title background color\n$popover-title-bg:                    darken($popover-bg, 3%) !default;\n\n//** Popover arrow width\n$popover-arrow-width:                 10px !default;\n//** Popover arrow color\n$popover-arrow-color:                 $popover-bg !default;\n\n//** Popover outer arrow width\n$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;\n//** Popover outer arrow color\n$popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;\n//** Popover outer arrow fallback color\n$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;\n\n\n//== Labels\n//\n//##\n\n//** Default label background color\n$label-default-bg:            $gray-light !default;\n//** Primary label background color\n$label-primary-bg:            $brand-primary !default;\n//** Success label background color\n$label-success-bg:            $brand-success !default;\n//** Info label background color\n$label-info-bg:               $brand-info !default;\n//** Warning label background color\n$label-warning-bg:            $brand-warning !default;\n//** Danger label background color\n$label-danger-bg:             $brand-danger !default;\n\n//** Default label text color\n$label-color:                 #fff !default;\n//** Default text color of a linked label\n$label-link-hover-color:      #fff !default;\n\n\n//== Modals\n//\n//##\n\n//** Padding applied to the modal body\n$modal-inner-padding:         15px !default;\n\n//** Padding applied to the modal title\n$modal-title-padding:         15px !default;\n//** Modal title line-height\n$modal-title-line-height:     $line-height-base !default;\n\n//** Background color of modal content area\n$modal-content-bg:                             #fff !default;\n//** Modal content border color\n$modal-content-border-color:                   rgba(0,0,0,.2) !default;\n//** Modal content border color **for IE8**\n$modal-content-fallback-border-color:          #999 !default;\n\n//** Modal backdrop background color\n$modal-backdrop-bg:           #000 !default;\n//** Modal backdrop opacity\n$modal-backdrop-opacity:      .5 !default;\n//** Modal header border color\n$modal-header-border-color:   #e5e5e5 !default;\n//** Modal footer border color\n$modal-footer-border-color:   $modal-header-border-color !default;\n\n$modal-lg:                    900px !default;\n$modal-md:                    600px !default;\n$modal-sm:                    300px !default;\n\n\n//== Alerts\n//\n//## Define alert colors, border radius, and padding.\n\n$alert-padding:               15px !default;\n$alert-border-radius:         $border-radius-base !default;\n$alert-link-font-weight:      bold !default;\n\n$alert-success-bg:            $state-success-bg !default;\n$alert-success-text:          $state-success-text !default;\n$alert-success-border:        $state-success-border !default;\n\n$alert-info-bg:               $state-info-bg !default;\n$alert-info-text:             $state-info-text !default;\n$alert-info-border:           $state-info-border !default;\n\n$alert-warning-bg:            $state-warning-bg !default;\n$alert-warning-text:          $state-warning-text !default;\n$alert-warning-border:        $state-warning-border !default;\n\n$alert-danger-bg:             $state-danger-bg !default;\n$alert-danger-text:           $state-danger-text !default;\n$alert-danger-border:         $state-danger-border !default;\n\n\n//== Progress bars\n//\n//##\n\n//** Background color of the whole progress component\n$progress-bg:                 #f5f5f5 !default;\n//** Progress bar text color\n$progress-bar-color:          #fff !default;\n//** Variable for setting rounded corners on progress bar.\n$progress-border-radius:      $border-radius-base !default;\n\n//** Default progress bar color\n$progress-bar-bg:             $brand-primary !default;\n//** Success progress bar color\n$progress-bar-success-bg:     $brand-success !default;\n//** Warning progress bar color\n$progress-bar-warning-bg:     $brand-warning !default;\n//** Danger progress bar color\n$progress-bar-danger-bg:      $brand-danger !default;\n//** Info progress bar color\n$progress-bar-info-bg:        $brand-info !default;\n\n\n//== List group\n//\n//##\n\n//** Background color on `.list-group-item`\n$list-group-bg:                 #fff !default;\n//** `.list-group-item` border color\n$list-group-border:             #ddd !default;\n//** List group border radius\n$list-group-border-radius:      $border-radius-base !default;\n\n//** Background color of single list items on hover\n$list-group-hover-bg:           #f5f5f5 !default;\n//** Text color of active list items\n$list-group-active-color:       $component-active-color !default;\n//** Background color of active list items\n$list-group-active-bg:          $component-active-bg !default;\n//** Border color of active list elements\n$list-group-active-border:      $list-group-active-bg !default;\n//** Text color for content within active list items\n$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;\n\n//** Text color of disabled list items\n$list-group-disabled-color:      $gray-light !default;\n//** Background color of disabled list items\n$list-group-disabled-bg:         $gray-lighter !default;\n//** Text color for content within disabled list items\n$list-group-disabled-text-color: $list-group-disabled-color !default;\n\n$list-group-link-color:         #555 !default;\n$list-group-link-hover-color:   $list-group-link-color !default;\n$list-group-link-heading-color: #333 !default;\n\n\n//== Panels\n//\n//##\n\n$panel-bg:                    #fff !default;\n$panel-body-padding:          15px !default;\n$panel-heading-padding:       10px 15px !default;\n$panel-footer-padding:        $panel-heading-padding !default;\n$panel-border-radius:         $border-radius-base !default;\n\n//** Border color for elements within panels\n$panel-inner-border:          #ddd !default;\n$panel-footer-bg:             #f5f5f5 !default;\n\n$panel-default-text:          $gray-dark !default;\n$panel-default-border:        #ddd !default;\n$panel-default-heading-bg:    #f5f5f5 !default;\n\n$panel-primary-text:          #fff !default;\n$panel-primary-border:        $brand-primary !default;\n$panel-primary-heading-bg:    $brand-primary !default;\n\n$panel-success-text:          $state-success-text !default;\n$panel-success-border:        $state-success-border !default;\n$panel-success-heading-bg:    $state-success-bg !default;\n\n$panel-info-text:             $state-info-text !default;\n$panel-info-border:           $state-info-border !default;\n$panel-info-heading-bg:       $state-info-bg !default;\n\n$panel-warning-text:          $state-warning-text !default;\n$panel-warning-border:        $state-warning-border !default;\n$panel-warning-heading-bg:    $state-warning-bg !default;\n\n$panel-danger-text:           $state-danger-text !default;\n$panel-danger-border:         $state-danger-border !default;\n$panel-danger-heading-bg:     $state-danger-bg !default;\n\n\n//== Thumbnails\n//\n//##\n\n//** Padding around the thumbnail image\n$thumbnail-padding:           4px !default;\n//** Thumbnail background color\n$thumbnail-bg:                $body-bg !default;\n//** Thumbnail border color\n$thumbnail-border:            #ddd !default;\n//** Thumbnail border radius\n$thumbnail-border-radius:     $border-radius-base !default;\n\n//** Custom text color for thumbnail captions\n$thumbnail-caption-color:     $text-color !default;\n//** Padding around the thumbnail caption\n$thumbnail-caption-padding:   9px !default;\n\n\n//== Wells\n//\n//##\n\n$well-bg:                     #f5f5f5 !default;\n$well-border:                 darken($well-bg, 7%) !default;\n\n\n//== Badges\n//\n//##\n\n$badge-color:                 #fff !default;\n//** Linked badge text color on hover\n$badge-link-hover-color:      #fff !default;\n$badge-bg:                    $gray-light !default;\n\n//** Badge text color in active nav link\n$badge-active-color:          $link-color !default;\n//** Badge background color in active nav link\n$badge-active-bg:             #fff !default;\n\n$badge-font-weight:           bold !default;\n$badge-line-height:           1 !default;\n$badge-border-radius:         10px !default;\n\n\n//== Breadcrumbs\n//\n//##\n\n$breadcrumb-padding-vertical:   8px !default;\n$breadcrumb-padding-horizontal: 15px !default;\n//** Breadcrumb background color\n$breadcrumb-bg:                 #f5f5f5 !default;\n//** Breadcrumb text color\n$breadcrumb-color:              #ccc !default;\n//** Text color of current page in the breadcrumb\n$breadcrumb-active-color:       $gray-light !default;\n//** Textual separator for between breadcrumb elements\n$breadcrumb-separator:          \"/\" !default;\n\n\n//== Carousel\n//\n//##\n\n$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;\n\n$carousel-control-color:                      #fff !default;\n$carousel-control-width:                      15% !default;\n$carousel-control-opacity:                    .5 !default;\n$carousel-control-font-size:                  20px !default;\n\n$carousel-indicator-active-bg:                #fff !default;\n$carousel-indicator-border-color:             #fff !default;\n\n$carousel-caption-color:                      #fff !default;\n\n\n//== Close\n//\n//##\n\n$close-font-weight:           bold !default;\n$close-color:                 #000 !default;\n$close-text-shadow:           0 1px 0 #fff !default;\n\n\n//== Code\n//\n//##\n\n$code-color:                  #c7254e !default;\n$code-bg:                     #f9f2f4 !default;\n\n$kbd-color:                   #fff !default;\n$kbd-bg:                      #333 !default;\n\n$pre-bg:                      #f5f5f5 !default;\n$pre-color:                   $gray-dark !default;\n$pre-border-color:            #ccc !default;\n$pre-scrollable-max-height:   340px !default;\n\n\n//== Type\n//\n//##\n\n//** Horizontal offset for forms and lists.\n$component-offset-horizontal: 180px !default;\n//** Text muted color\n$text-muted:                  $gray-light !default;\n//** Abbreviations and acronyms border color\n$abbr-border-color:           $gray-light !default;\n//** Headings small color\n$headings-small-color:        $gray-light !default;\n//** Blockquote small color\n$blockquote-small-color:      $gray-light !default;\n//** Blockquote font size\n$blockquote-font-size:        ($font-size-base * 1.25) !default;\n//** Blockquote border color\n$blockquote-border-color:     $gray-lighter !default;\n//** Page header border color\n$page-header-border-color:    $gray-lighter !default;\n//** Width of horizontal description list titles\n$dl-horizontal-offset:        $component-offset-horizontal !default;\n//** Point at which .dl-horizontal becomes horizontal\n$dl-horizontal-breakpoint:    $grid-float-breakpoint !default;\n//** Horizontal line color.\n$hr-border:                   $gray-lighter !default;\n","// WebKit-style focus\n\n@mixin tab-focus() {\n  // WebKit-specific. Other browsers will keep their default outline style.\n  // (Initially tried to also force default via `outline: initial`,\n  // but that seems to erroneously remove the outline in Firefox altogether.)\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n@mixin animation($animation) {\n  -webkit-animation: $animation;\n       -o-animation: $animation;\n          animation: $animation;\n}\n@mixin animation-name($name) {\n  -webkit-animation-name: $name;\n          animation-name: $name;\n}\n@mixin animation-duration($duration) {\n  -webkit-animation-duration: $duration;\n          animation-duration: $duration;\n}\n@mixin animation-timing-function($timing-function) {\n  -webkit-animation-timing-function: $timing-function;\n          animation-timing-function: $timing-function;\n}\n@mixin animation-delay($delay) {\n  -webkit-animation-delay: $delay;\n          animation-delay: $delay;\n}\n@mixin animation-iteration-count($iteration-count) {\n  -webkit-animation-iteration-count: $iteration-count;\n          animation-iteration-count: $iteration-count;\n}\n@mixin animation-direction($direction) {\n  -webkit-animation-direction: $direction;\n          animation-direction: $direction;\n}\n@mixin animation-fill-mode($fill-mode) {\n  -webkit-animation-fill-mode: $fill-mode;\n          animation-fill-mode: $fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n@mixin backface-visibility($visibility) {\n  -webkit-backface-visibility: $visibility;\n     -moz-backface-visibility: $visibility;\n          backface-visibility: $visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n@mixin box-shadow($shadow...) {\n  -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1\n          box-shadow: $shadow;\n}\n\n// Box sizing\n@mixin box-sizing($boxmodel) {\n  -webkit-box-sizing: $boxmodel;\n     -moz-box-sizing: $boxmodel;\n          box-sizing: $boxmodel;\n}\n\n// CSS3 Content Columns\n@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {\n  -webkit-column-count: $column-count;\n     -moz-column-count: $column-count;\n          column-count: $column-count;\n  -webkit-column-gap: $column-gap;\n     -moz-column-gap: $column-gap;\n          column-gap: $column-gap;\n}\n\n// Optional hyphenation\n@mixin hyphens($mode: auto) {\n  word-wrap: break-word;\n  -webkit-hyphens: $mode;\n     -moz-hyphens: $mode;\n      -ms-hyphens: $mode; // IE10+\n       -o-hyphens: $mode;\n          hyphens: $mode;\n}\n\n// Placeholder text\n@mixin placeholder($color: $input-color-placeholder) {\n  // Firefox\n  &::-moz-placeholder {\n    color: $color;\n    opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n  }\n  &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+\n  &::-webkit-input-placeholder  { color: $color; } // Safari and Chrome\n}\n\n// Transformations\n@mixin scale($ratio...) {\n  -webkit-transform: scale($ratio);\n      -ms-transform: scale($ratio); // IE9 only\n       -o-transform: scale($ratio);\n          transform: scale($ratio);\n}\n\n@mixin scaleX($ratio) {\n  -webkit-transform: scaleX($ratio);\n      -ms-transform: scaleX($ratio); // IE9 only\n       -o-transform: scaleX($ratio);\n          transform: scaleX($ratio);\n}\n@mixin scaleY($ratio) {\n  -webkit-transform: scaleY($ratio);\n      -ms-transform: scaleY($ratio); // IE9 only\n       -o-transform: scaleY($ratio);\n          transform: scaleY($ratio);\n}\n@mixin skew($x, $y) {\n  -webkit-transform: skewX($x) skewY($y);\n      -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n       -o-transform: skewX($x) skewY($y);\n          transform: skewX($x) skewY($y);\n}\n@mixin translate($x, $y) {\n  -webkit-transform: translate($x, $y);\n      -ms-transform: translate($x, $y); // IE9 only\n       -o-transform: translate($x, $y);\n          transform: translate($x, $y);\n}\n@mixin translate3d($x, $y, $z) {\n  -webkit-transform: translate3d($x, $y, $z);\n          transform: translate3d($x, $y, $z);\n}\n@mixin rotate($degrees) {\n  -webkit-transform: rotate($degrees);\n      -ms-transform: rotate($degrees); // IE9 only\n       -o-transform: rotate($degrees);\n          transform: rotate($degrees);\n}\n@mixin rotateX($degrees) {\n  -webkit-transform: rotateX($degrees);\n      -ms-transform: rotateX($degrees); // IE9 only\n       -o-transform: rotateX($degrees);\n          transform: rotateX($degrees);\n}\n@mixin rotateY($degrees) {\n  -webkit-transform: rotateY($degrees);\n      -ms-transform: rotateY($degrees); // IE9 only\n       -o-transform: rotateY($degrees);\n          transform: rotateY($degrees);\n}\n@mixin perspective($perspective) {\n  -webkit-perspective: $perspective;\n     -moz-perspective: $perspective;\n          perspective: $perspective;\n}\n@mixin perspective-origin($perspective) {\n  -webkit-perspective-origin: $perspective;\n     -moz-perspective-origin: $perspective;\n          perspective-origin: $perspective;\n}\n@mixin transform-origin($origin) {\n  -webkit-transform-origin: $origin;\n     -moz-transform-origin: $origin;\n      -ms-transform-origin: $origin; // IE9 only\n          transform-origin: $origin;\n}\n\n\n// Transitions\n\n@mixin transition($transition...) {\n  -webkit-transition: $transition;\n       -o-transition: $transition;\n          transition: $transition;\n}\n@mixin transition-property($transition-property...) {\n  -webkit-transition-property: $transition-property;\n          transition-property: $transition-property;\n}\n@mixin transition-delay($transition-delay) {\n  -webkit-transition-delay: $transition-delay;\n          transition-delay: $transition-delay;\n}\n@mixin transition-duration($transition-duration...) {\n  -webkit-transition-duration: $transition-duration;\n          transition-duration: $transition-duration;\n}\n@mixin transition-timing-function($timing-function) {\n  -webkit-transition-timing-function: $timing-function;\n          transition-timing-function: $timing-function;\n}\n@mixin transition-transform($transition...) {\n  -webkit-transition: -webkit-transform $transition;\n     -moz-transition: -moz-transform $transition;\n       -o-transition: -o-transform $transition;\n          transition: transform $transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n@mixin user-select($select) {\n  -webkit-user-select: $select;\n     -moz-user-select: $select;\n      -ms-user-select: $select; // IE10+\n          user-select: $select;\n}\n","// Opacity\n\n@mixin opacity($opacity) {\n  opacity: $opacity;\n  // IE8 filter\n  $opacity-ie: ($opacity * 100);\n  filter: alpha(opacity=$opacity-ie);\n}\n",null,"@import \"../mixins/variables\";\n/*\nアイコンボタン\n\nSVGアイコンを用いたアイコンボタンです。\n\nsg-wrapper:\n
\n \n\nStyleguide 2.2\n*/\n\n/*\nアイコンボタン\n\n閉じるなどSVGアイコンを用いたボタン装飾で利用します。\n\nex [ログイン画面 ☓ボタン部分](http://demo3.ec-cube.net/mypage/login)\n\nMarkup:\na.ec-closeBtn\n .ec-icon\n img(src='/moc/icon/cross.svg', alt='close')\n\nStyleguide 2.2.1\n*/\n.ec-closeBtn{\n cursor: pointer;\n .ec-icon {\n img {\n //overflow: hidden;\n display: inline-block;\n margin-right: 5px;\n width: 1em;\n height: 1em;\n position: relative;\n top: -1px;\n vertical-align: middle;\n }\n }\n}\n\n/*\nアイコンボタン(○)\n\n閉じるなどSVGアイコンを用いたボタン装飾で利用します。\n\nex [ログイン画面 ☓ボタン部分](http://demo3.ec-cube.net/mypage/login)\n\n\n\nex [お届け先編集画面 ☓ボタン部分](http://demo3.ec-cube.net/mypage/delivery)\n\nMarkup:\na.ec-closeBtn--circle\n .ec-icon\n img(src='/moc/icon/cross-white.svg', alt='close')\n\nStyleguide 2.2.2\n*/\n\n.ec-closeBtn--circle{\n display: block;\n border: 0 none;\n padding: 0;\n margin: 0;\n text-shadow: none;\n box-shadow: none;\n border-radius: 50%;\n background: #B8BEC4;\n cursor: pointer;\n width: 40px;\n min-width: 40px;\n max-width: 40px;\n height: 40px;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center;\n\n .ec-icon img{\n display: block;\n margin-top: -.5em;\n margin-left: -.5em;\n width: 1em;\n height: 1em;\n position: absolute;\n top: 50%;\n left: 50%;\n }\n}","@import \"../mixins/variables\";\n@import \"../mixins/media\";\n@import \"../mixins/btn\";\n\n/*\nその他のボタン\n\n通常のボタンや、アイコンボタン以外のボタンを定義します。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 2.3\n*/\n\n\n/*\nページトップボタン\n\nページトップボタンを表示します\n\nex [商品詳細ページ カートボタン部分](http://demo3.ec-cube.net/products/detail/30)\n\nMarkup:\n.ec-blockTopBtn\n\nStyleguide 2.3.1\n*/\n.ec-blockTopBtn{\n display: none;\n position: fixed;\n width:120px;\n height: 40px;\n right: 0;\n bottom: 10px;\n cursor: pointer;\n color: #FFFFFF;\n text-align: center;\n line-height: 40px;\n opacity: 0.8;\n background-color: #9da3a9;\n @include media_desktop {\n right:30px;\n bottom: 30px;\n }\n\n &:after{\n content: \"ページトップへ\";\n }\n}","@import \"../mixins/variables\";\n@import \"../mixins/forms\";\n@import \"../mixins/media\";\n/*\nフォーム部品(テキスト)\n\nテキストや数値の入力項目に関する要素を定義します。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 3.1\n*/\n\n\n\n/*\nフォーム\n\n`.ec-input` 要素は全ての入力項目に関する標準的なコンポーネントクラスです。\n\n\nex [会員情報編集画面 フォーム部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\np.ec-input\n input(type=\"number\")\np.ec-input\n textarea(rows=\"6\")\n\nStyleguide 3.1.1\n*/\n.ec-input{\n @include forms-reset;\n @include form-controls;\n input{\n height: 40px;\n margin-bottom: 10px;\n @include media_desktop {\n margin-bottom: 16px;\n }\n }\n textarea {\n height: auto;\n min-height: 100px;\n }\n p {\n line-height: 1.4;\n }\n .ec-errorMessage {\n margin-bottom: 25px;\n font-size: 12px;\n font-weight: bold;\n color: $clrRed;\n }\n}\n.error.ec-input {\n input,select{\n margin-bottom: 5px;\n border-color: #CF3F34;\n background: #FDF1F0;\n }\n}\n\n.ec-checkbox{\n .ec-errorMessage {\n margin-bottom: 25px;\n font-size: 12px;\n font-weight: bold;\n color: $clrRed;\n }\n}\n.error.ec-checkbox {\n input, label{\n border-color: #CF3F34;\n background: #FDF1F0;\n }\n}\n\n/*\nフォーム(text2つ)\n\n姓名など2つ入力させたい入力項目で使用します。\n\n入力フォームを半分で用意したいときにも利用可能です。\n\nex [会員情報編集画面 フォーム部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\np.ec-halfInput\n input(type=\"text\")\n input(type=\"text\")\np.ec-halfInput\n input(type=\"text\")\n\nStyleguide 3.1.2\n*/\n.ec-halfInput{\n @extend .ec-input;\n input[type='text']{\n display: inline-block;\n width: 47%;\n margin-left: 2%;\n @include media_desktop {\n margin-left: 15px;\n width: 45%;\n }\n }\n input[type='text']:first-child{\n margin-left: 0;\n }\n}\n\n/*\n数量ボタン\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [商品詳細画面 数量ボタン部分](http://demo3.ec-cube.net/products/detail/27)\n\nMarkup:\n.ec-numberInput\n span 数量\n input(type=\"number\",value=\"0\")\n\nStyleguide 3.1.3\n*/\n.ec-numberInput{\n @extend .ec-input;\n input[type='number']{\n display: inline-block;\n width: auto;\n max-width: 100px;\n text-align: right;\n }\n}\n/*\n郵便番号フォーム\n\n数量を表示するための小さなコンポーネントです。\n\n内部に input 要素を配置してコーディングします。\n\nex [会員情報編集画面 郵便番号部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\n.ec-zipInput\n span 〒\n input(type=\"text\")\n.ec-zipInputHelp\n a(href=\"http://www.post.japanpost.jp/zipcode/\" target=\"_blank\")\n .ec-zipInputHelp__icon\n .ec-icon\n img(src='/moc/icon/question-white.svg', alt='')\n span 郵便番号検索\n.ec-zipAuto\n a.ec-inlineBtn 郵便番号から自動入力\n\nStyleguide 3.1.4\n*/\n.ec-zipInput{\n @extend .ec-input;\n display: inline-block;\n input{\n display: inline-block;\n text-align: left;\n width: auto;\n max-width: 8em;\n font-size: 16px;\n }\n span{\n display: inline-block;\n padding: 0 5px 0 3px;\n margin-left:5px;\n }\n}\n.ec-zipInputHelp {\n display: inline-block;\n margin-left: 10px;\n margin-bottom: 16px;\n vertical-align: baseline;\n line-height: 0;\n .ec-zipInputHelp__icon {\n display: inline-block;\n margin-top: -10px;\n width:20px;\n height:20px;\n background: #525263;\n border-radius: 50%;\n font-size: 13px;\n position: relative;\n top: -6px;\n .ec-icon img{\n width: 1em;\n height: 1em;\n position: relative;\n left: 3px;\n top: 3px;\n }\n }\n span {\n margin-left: 8px;\n display: inline-block;\n color: #0092C4;\n vertical-align: 3px;\n }\n}\n.ec-zipAuto {\n margin-bottom: 16px;\n .ec-inlineBtn {\n font-weight: normal;\n }\n}\n/*\n電話番号ボタン\n\n数量を表示するための小さなコンポーネントです。\n\n内部に input 要素を配置してコーディングします。\n\nex [会員情報編集画面 電話番号部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\n.ec-telInput\n input(type=\"text\")\n\nStyleguide 3.1.5\n*/\n.ec-telInput{\n @extend .ec-input;\n input {\n max-width: 10em;\n text-align: left;\n }\n}\n\n","@import \"./variables\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/forms\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/tab-focus\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/vendor-prefixes\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/tab-focus\";\n\n@mixin forms-reset{\n input[type=\"search\"] {\n @include box-sizing(border-box);\n }\n\n // Position radios and checkboxes better\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n }\n\n input[type=\"file\"] {\n display: block;\n }\n\n // Make range inputs behave like textual form controls\n input[type=\"range\"] {\n display: block;\n width: 100%;\n }\n\n // Make multiple select elements height not fixed\n select[multiple],\n select[size] {\n height: auto;\n }\n\n // Focus for file, radio, and checkbox\n input[type=\"file\"]:focus,\n input[type=\"radio\"]:focus,\n input[type=\"checkbox\"]:focus {\n @include tab-focus;\n }\n\n}\n\n@mixin _form-control{\n display: block;\n width: 100%;\n height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: $padding-base-vertical $padding-base-horizontal;\n font-size: $font-size-base;\n line-height: $line-height-base;\n color: $input-color;\n background-color: $input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid $input-border;\n border-radius: $input-border-radius; // Note: This has no effect on s in CSS.\n -webkit-appearance: none;\n @include box-shadow(none);\n @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus;\n\n // Placeholder\n @include placeholder;\n\n // Unstyle the caret on ``\n// element gets special love because it's special, and that's a fact!\n// [converter] $parent hack\n@mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {\n #{$parent} {\n height: $input-height;\n padding: $padding-vertical $padding-horizontal;\n font-size: $font-size;\n line-height: $line-height;\n border-radius: $border-radius;\n }\n\n select#{$parent} {\n height: $input-height;\n line-height: $input-height;\n }\n\n textarea#{$parent},\n select[multiple]#{$parent} {\n height: auto;\n }\n}\n","/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n\n@mixin borderTop(){\n border-top: 1px dotted #ccc;\n}\n\n@mixin borderBottom(){\n border-bottom: 1px dotted #ccc;\n}\n\n@mixin reset_link(){\n a{\n color: inherit;\n text-decoration: none;\n }\n a:hover{\n text-decoration: none;\n }\n}\n\n","@import \"../mixins/projects\";\n@import \"../mixins/forms\";\n@import \"./3.1.inputText\";\n/*\nフォーム部品(その他)\n\nフォーム部品でテキストの入力以外の動作要素を定義します。\n\nsg-wrapper:\n
\n \n\nStyleguide 3.2\n*/\n\n/*\nラジオ(水平)\n\n水平に並ぶラジオボタンフィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nex [新規会員登録画面 性別選択部分](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-radio\n label\n input(type=\"radio\")\n span 男性\n label\n input(type=\"radio\")\n span 女性\n\nStyleguide 3.2.2\n*/\n.ec-radio{\n label{\n margin-right:20px;\n }\n input{\n margin-right: 10px;\n margin-bottom: 10px;\n }\n span{\n font-weight: normal;\n }\n\n}\n\n/*\nラジオ(垂直)\n\n垂直に並ぶラジオボタンフィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nex [購入画面 お支払方法](http://demo3.ec-cube.net/shopping)\n\nMarkup:\n.ec-blockRadio\n label\n input(type=\"radio\")\n span 郵便振替\n label\n input(type=\"radio\")\n span 現金書留\n label\n input(type=\"radio\")\n span 銀行振込\n label\n input(type=\"radio\")\n span 代金引換\n\nStyleguide 3.2.3\n*/\n.ec-blockRadio{\n label{\n display: block;\n }\n span {\n padding-left: 10px;\n font-weight: normal;\n }\n}\n/*\nセレクトボックス\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [新規会員登録画面 都道府県選択部分](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-select\n select\n option 都道府県を選択\n option 北海道\n option 青森県\n option 岩手県\n option ...\n.ec-select\n select\n option 選択して下さい\n option 公務員\n option コンサルタント\n option コンピュータ関連技術職\n option コンピュータ関連以外の技術職\n option ...\n\nStyleguide 3.2.4\n*/\n.ec-selects {\n margin-bottom: 20px;\n @include borderBottom;\n}\n.ec-select{\n @extend .ec-input;\n margin-bottom: 16px;\n select{\n display: inline-block;\n width: auto;\n background-color: rgb(248, 248, 248);\n -webkit-appearance: menulist;\n -moz-appearance: menulist;\n &:focus {\n box-shadow: none;\n }\n }\n label{\n margin-right: 10px;\n font-weight: bold;\n }\n label:nth-child(3){\n margin-left: 10px;\n font-weight: bold;\n }\n}\n.ec-select__delivery {\n display: block;\n margin-right: 16px;\n @include media_desktop {\n display: inline-block;\n }\n}\n.ec-select__time {\n display: block;\n @include media_desktop {\n display: inline-block;\n }\n}\n\n/*\n生年月日選択\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [新規会員登録画面 生年月日選択部分](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-birth\n select\n option ----\n option 1960\n option 1961\n option 1962\n option ...\n span /\n select\n option --\n option 01\n option 02\n option 03\n option ...\n span /\n select\n option --\n option 01\n option 02\n option 03\n option ...\n\nStyleguide 3.2.5\n*/\n.ec-birth{\n @extend .ec-input;\n select{\n display: inline-block;\n width: auto;\n margin: 0 0 10px;\n background-color: rgb(248, 248, 248);\n -webkit-appearance: menulist;\n -moz-appearance: menulist;\n &:focus {\n box-shadow: none;\n }\n @include media_desktop{\n margin: 0 8px 10px;\n }\n }\n span{\n margin-left:5px;\n }\n}\n\n/*\nチェックボックス (水平)\n\n水平に並ぶチェックボックス フィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nex [新規会員登録画面 利用規約](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-checkbox\n label\n input(type=\"checkbox\")\n span 利用規約に同意する\n\nStyleguide 3.2.6\n*/\n.ec-checkbox{\n label{\n display: inline-block;\n }\n input{\n margin-bottom: 10px;\n }\n span{\n font-weight: normal;\n }\n\n}\n\n/*\nチェックボックス (垂直)\n\n垂直に並ぶチェックボックス フィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nMarkup:\n.ec-blockCheckbox\n label\n input(type=\"checkbox\")\n span 利用規約に同意する\n\nStyleguide 3.2.7\n*/\n.ec-blockCheckbox{\n label{\n display: block;\n }\n span {\n font-weight: normal;\n }\n}","@import \"../mixins/media\";\n/*\nフォームラベル\n\nフォームのラベルに関する要素を定義します。\n\nsg-wrapper:\n
\n
\n
\n
\n \n
\n
\n
\n
\n\nStyleguide 3.3\n*/\n\n/*\nラベル\n\nフォーム要素で利用するラベル要素です。\n\nex [お問い合わせページ ラベル部分](http://demo3.ec-cube.net/contact)\n\nMarkup:\n.ec-borderedDefs\n dl\n dt\n label.ec-label お名前\n dd\n .ec-input\n input(type=\"text\")\n\nStyleguide 3.3.1\n*/\n.ec-label{\n display: inline-block;\n font-weight: bold;\n margin-bottom: 5px;\n}\n\n/*\n必須ラベル\n\n必須文字を表示するラベル要素です。\n\nex [お問い合わせページ 必須ラベル部分](http://demo3.ec-cube.net/contact)\n\n\nMarkup:\n.ec-borderedDefs\n dl\n dt\n label.ec-label お名前\n span.ec-required 必須\n dd\n .ec-input\n input(type=\"text\")\n\nStyleguide 3.3.2\n*/\n\n.ec-required{\n display: inline-block;\n margin-left: .8em;\n vertical-align: 2px;\n color: #DE5D50;\n font-size: 12px;\n font-weight: normal;\n @include media_desktop {\n margin-left: 1em;\n }\n}","@import \"../mixins/variables\";\n/*\nアイコン\n\nデフォルトテンプレートのアイコンは`.ec-icon`>`img`タグで使用することができます\n\nsg-wrapper:\n
\n \n\nMarkup:\ninclude /assets/tmpl/elements/4.1.icon.pug\ndiv(style=\"background-color: rgba(130,130,130,.15); padding: 20px;\")\n +icon-all\n\nStyleguide 4.1\n*/\n.ec-icon img {\n max-width: 80px;\n max-height: 80px;\n}\n","@import \"../mixins/variables\";\n@import \"../mixins/clearfix\";\n@import \"../mixins/media\";\n\n@mixin row{\n display: block;\n margin: 0;\n @include media_desktop {\n display: flex;\n }\n}\n\n@mixin makeSmColumn($columns){\n position: relative;\n min-height: 1px;\n\n @media (min-width: $desktop) {\n width: percentage(($columns/ 12));\n }\n @include media_desktop{\n }\n\n}\n\n/*\nグリッド\n\n画面を12分割し、グリッドレイアウトに対応するためのスタイルです。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 5.1\n*/\n\n/*\n2分割グリッド\n\n画面 2分割の グリッドです。\nBootstrap の col-sm-6 相当のグリッドを提供します。\n\nMarkup:\n.ec-grid2\n .ec-grid2__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid2__cell\n .ec-grid2__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid2__cell\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 5.1.1\n*/\n.ec-grid2{\n @include row;\n & &__cell{\n @include makeSmColumn(6);\n }\n & &__cell2{\n @include makeSmColumn(12);\n }\n}\n/*\n3分割グリッド\n\n画面 3分割の グリッドです。\n\n\nMarkup:\n.ec-grid3\n .ec-grid3__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid3__cell\n .ec-grid3__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid3__cell\n .ec-grid3__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid3__cell\n\nStyleguide 5.1.2\n*/\n.ec-grid3{\n @include row;\n & &__cell{\n @include makeSmColumn(4);\n }\n & &__cell2 {\n @include makeSmColumn(8);\n }\n & &__cell3 {\n @include makeSmColumn(12);\n }\n}\n\n/*\n4分割グリッド\n\n画面 4分割の グリッドです。\n\n\nMarkup:\n.ec-grid4\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n\nStyleguide 5.1.3\n*/\n.ec-grid4{\n @include row;\n & &__cell{\n @include makeSmColumn(3);\n }\n}\n\n/*\n6分割グリッド\n\n2つにまとめた cell2 や 3つをまとめた cell3 タグも使用可能です。\n\n\nMarkup:\n.ec-grid6\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n.ec-grid6\n .ec-grid6__cell2(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell2\n .ec-grid6__cell2(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell2\n .ec-grid6__cell2(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell2\n.ec-grid6\n .ec-grid6__cell3(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell3\n .ec-grid6__cell3(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell3\n\nStyleguide 5.1.4\n*/\n.ec-grid6{\n @include row;\n & &__cell{\n @include makeSmColumn(2);\n }\n & &__cell2{\n @include makeSmColumn(4);\n }\n & &__cell3{\n @include makeSmColumn(6);\n }\n}\n\n/*\n中央寄せグリッド 10/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の10グリッドです\n\nex [ご利用規約ページ 本文](http://demo3.ec-cube.net/help/agreement)\n\nMarkup:\n.ec-off1Grid\n .ec-off1Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\nStyleguide 5.1.5\n*/\n.ec-off1Grid{\n margin: 0;\n @include media_desktop {\n @include row;\n }\n & &__cell{\n margin: 0;\n @include media_desktop {\n @include makeSmColumn(10);\n margin-left: percentage((1 / 12));\n }\n }\n}\n\n\n/*\n中央寄せグリッド 8/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の8グリッドです\n\n\nMarkup:\n.ec-off2Grid\n .ec-off2Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\nStyleguide 5.1.6\n*/\n.ec-off2Grid{\n @include row;\n & &__cell{\n margin: 0;\n @include media_desktop {\n @include makeSmColumn(8);\n margin-left: percentage((2 / 12));\n }\n }\n}\n/*\n中央寄せグリッド 6/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の6グリッドです\n\n\nMarkup:\n.ec-off3Grid\n .ec-off3Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\nStyleguide 5.1.7\n*/\n.ec-off3Grid{\n @include row;\n & &__cell{\n margin: 0;\n @include media_desktop {\n @include makeSmColumn(6);\n margin-left: percentage((3 / 12));\n }\n }\n}\n/*\n中央寄せグリッド 4/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の4グリッドです\n\n\nMarkup:\n.ec-off4Grid\n .ec-off4Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\n\nStyleguide 5.1.8\n*/\n.ec-off4Grid{\n @include row;\n & &__cell{\n margin: 0;\n @include media_desktop {\n @include makeSmColumn(4);\n margin-left: percentage((4 / 12));\n }\n }\n}\n\n/*\nグリッドオプション\n\nグリッドのセルに対して「左寄せ」「中央寄せ」「右寄せ」のオプションを付与することができます。\n\nsg-wrapper:\n
\n \n\nStyleguide 5.1.9\n*/\n\n/*\nグリッドセルの左寄せ\n\n.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。\n\nMarkup:\n.ec-grid4.ec-grid--left\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n\nStyleguide 5.1.10\n*/\n.ec-grid--left {\n justify-content: flex-start;\n}\n/*\nグリッドセルの右寄せ\n\n.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。\n\nMarkup:\n.ec-grid4.ec-grid--right\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n\nStyleguide 5.1.11\n*/\n.ec-grid--right {\n justify-content: flex-end;\n}\n/*\nグリッドセルの中央寄せ\n\n.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。\n\nMarkup:\n.ec-grid4.ec-grid--center\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n\nStyleguide 5.1.12\n*/\n.ec-grid--center {\n justify-content: center\n}","@import \"../mixins/variables\";\n@import \"../mixins/projects\";\n@import \"../mixins/clearfix\";\n@import \"../mixins/media\";\n\n@mixin row{\n margin-left: ceil((30px / -2));\n margin-right: floor((30px / -2));\n @include clearfix\n}\n\n@mixin makeSmColumn($columns){\n position: relative;\n min-height: 1px;\n padding-left: (30px / 2);\n padding-right: (30px / 2);\n\n @media (min-width: $desktop) {\n float: left;\n width: percentage(($columns/ 12));\n }\n}\n\n/*\nレイアウト\n\n様々なレイアウトを変更する為のスタイル群です。\n\nStyleguide 5.2\n*/\n\n/*\n画像レイアウト\n\n画像とテキストを水平に並べるレイアウトです。\n\n画像は20%で表示されます。\n\nex [注文履歴 ログイン後→注文履歴ボタンを押下](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-imageGrid\n .ec-imageGrid__img: img(src=\"http://demo3.ec-cube.net/upload/save_image/0701113537_559351f959620.jpeg\")\n .ec-imageGrid__content\n p.ec-font-bold ホーローマグ\n p ¥ 1,728 x 1\n\nsg-wrapper:\n
\n \n\n\nStyleguide 5.2.1\n*/\n.ec-imageGrid{\n display: table;\n @include borderTop;\n width: 100%;\n\n & &__img{\n display: table-cell;\n padding: 10px;\n width: 100px;\n\n @include media_desktop {\n padding: 10px;\n width: 130px;\n }\n\n img{\n width: 100%;\n }\n }\n & &__content{\n vertical-align: middle;\n display: table-cell;\n span {\n margin-left: 10px;\n }\n p {\n margin-bottom: 0;\n }\n }\n}\n\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n/*\nログイン\n\n主にログインフォームのスタイルを表示します。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 6.1\n*/\n\n/*\nログインフォーム\n\nログインフォームを表示します。\n\nex [ログイン画面](http://demo3.ec-cube.net/mypage/login)\n\nMarkup:\ninclude /assets/tmpl/elements/6.3.login.pug\n+ec-login\n\n\nStyleguide 6.1.1\n*/\n.ec-login{\n margin: 0 0 20px;\n padding: 30px 13% 20px;\n height: auto;\n background: #F3F4F4;\n box-sizing: border-box;\n @include media_desktop {\n margin: 0 16px;\n padding: 30px 13% 60px;\n }\n & &__icon {\n text-align: center;\n }\n .ec-icon{\n margin-bottom: 10px;\n img {\n width: 90px;\n height: 90px;\n display: inline-block;\n }\n }\n & &__input {\n margin-bottom: 40px;\n .ec-checkbox {\n span {\n margin-left: 5px;\n font-weight:normal;\n }\n }\n }\n & &__actions {\n color: #fff;\n @include reset_link();\n }\n & &__link {\n margin-top: 5px;\n margin-left: 0;\n @include media_desktop {\n margin-left: 20px;\n }\n }\n .ec-errorMessage {\n color: $clrRed;\n margin-bottom: 20px;\n }\n}\n\n/*\nゲスト購入\n\nゲスト購入ボタンとそのフォームを表示します。\n\nex [ゲスト購入画面](http://demo3.ec-cube.net/shopping/login)\n\nMarkup:\ninclude /assets/tmpl/elements/6.3.login.pug\n+ec-guest\nhoge\n\nStyleguide 6.1.2\n*/\n.ec-guest{\n display: table;\n margin: 0;\n padding: 13%;\n height: auto;\n box-sizing: border-box;\n background: #F3F4F4;\n\n @include media_desktop {\n height: 100%;\n margin: 0 16px;\n }\n & &__inner{\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n p {\n margin-bottom: 16px;\n }\n }\n & &__actions {\n display: block;\n vertical-align: middle;\n text-align: center;\n color: #fff;\n @include reset_link();\n }\n & &__icon{\n font-size: 70px;\n text-align: center;\n }\n}\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n/*\n商品掲載\n\nトップページに商品掲載するスタイルガイド群です。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 7.1\n*/\n\n/*\n商品アイテム(商品紹介B)\n\n3項目横並びの商品アイテムを表示します。\n必要に応じて商品詳細や、キャッチコピーなどを添えることが出来ます。\n\nex [トップページ 商品紹介部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/7.1.itembanner.pug\n+ec-displayB\n\nStyleguide 7.1.1\n*/\n.ec-displayB{\n margin-bottom: 24px;\n display: flex;\n justify-content: space-between;\n flex-direction:column;\n @include media_desktop {\n flex-direction:row;\n }\n & &__cell {\n width: 100%;\n margin-bottom: 16px;\n @include reset_link();\n @include media_desktop {\n width: 31.4466%;\n margin-bottom: 0;\n }\n &:hover {\n text-decoration: none;\n img{\n opacity: .8;\n }\n a {\n text-decoration: none;\n }\n }\n }\n & &__img {\n margin-bottom: 15px;\n }\n\n & &__catch{\n margin-bottom: 15px;\n text-decoration: none;\n font-weight: bold;\n color: #9a947e;\n }\n & &__comment {\n margin-bottom: 14px;\n text-decoration: none;\n color: #525263;\n font-size: 14px;\n }\n & &__link{\n text-decoration: none;\n font-weight: bold;\n color: #9a947e;\n }\n\n}\n\n/*\n商品アイテム(商品紹介C)\n\n4項目横並びの商品アイテムを表示します。\n\nex [トップページ 商品紹介部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/7.1.itembanner.pug\n+ec-displayC\np hoge\n\nStyleguide 7.1.2\n*/\n\n.ec-displayC{\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n margin-bottom: 24px;\n & &__cell{\n width: 47%;\n @include reset_link();\n @include media_desktop(){\n width: 22.8775%;\n }\n &:hover {\n a {\n text-decoration: none;\n }\n img{\n opacity: .8;\n }\n }\n }\n & &__img{\n display: block;\n width: 100%;\n margin-bottom: 15px;\n }\n & &__catch{\n display: block;\n width: 100%;\n font-weight: bold;\n color: #9a947e;\n }\n & &__title{\n display: block;\n width: 100%;\n color: #525263;\n }\n & &__price{\n display: block;\n width: 100%;\n font-weight: bold;\n color: #525263;\n }\n & &__price--sp{\n display: block;\n width: 100%;\n font-weight: bold;\n color: #DE5D50;\n }\n}\n\n\n/*\n商品アイテム(商品紹介D)\n\n6項目横並びの商品アイテムを表示します。\n\nex [トップページ 商品紹介部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/7.1.itembanner.pug\n+ec-displayD\n\nStyleguide 7.1.3\n*/\n\n.ec-displayD {\n display:flex;\n justify-content:space-between;\n flex-wrap:wrap-reverse;\n @include media_desktop(){\n box-sizing: border-box;\n flex-wrap:nowrap;\n }\n\n & &__cell{\n width: 30%;\n margin-bottom: 8px;\n @include reset_link();\n @include media_desktop(){\n width: 14.3083%;\n margin-bottom: 16px;\n }\n &:hover {\n text-decoration: none;\n img{\n opacity: .8;\n }\n }\n }\n & &__img{\n display: block;\n width: 100%;\n }\n}\n","@import \"../mixins/media\";\n@import \"../mixins/variables\";\n@import \"../mixins/projects\";\n\n@mixin pager(){\n}\n/*\n検索・一覧表示\n\n検索欄や、一覧表示に使用するスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 7.2\n*/\n\n/*\nトピックパス\n\n検索結果で表示されるトピックパスのスタイルです。\n\nex [商品一覧ページ 横並びリスト部分](http://demo3.ec-cube.net/products/list?category_id=&name=)\n\nMarkup:\ninclude /assets/tmpl/elements/7.2.search.pug\n+ec-topicpath\n\nStyleguide 7.2.1\n*/\n.ec-topicpath{\n letter-spacing: -.4em;\n -webkit-margin-before: 0;\n -webkit-margin-after: 0;\n -webkit-margin-start: 0;\n -webkit-margin-end: 0;\n -webkit-padding-start: 0;\n border-top: 1px solid #ccc;\n border-bottom: 1px dotted #ccc;\n padding: 10px;\n list-style: none;\n overflow: hidden;\n font-size: 12px;\n color: #0092C4;\n @include media_desktop {\n padding: 30px 0 10px;\n border: 0;\n font-size: 16px;\n }\n\n & &__item {\n @include reset_link();\n }\n & &__divider{\n color: #000;\n }\n & &__item,\n & &__divider,\n & &__item--active{\n display: inline-block;\n min-width: 16px;\n text-align: center;\n position: relative;\n letter-spacing: normal;\n }\n & &__item--active{\n font-weight: bold;\n @include reset_link();\n }\n}\n\n/*\nページャ\n\n検索結果で表示される商品一覧のスタイルです。\n\nex [商品一覧ページ ページャ部分](http://demo3.ec-cube.net/products/list?category_id=&name=)\n\nMarkup:\ninclude /assets/tmpl/elements/7.2.search.pug\n+ec-pager\n\nStyleguide 7.2.2\n*/\n.ec-pager{\n list-style: none;\n list-style-type: none;\n margin: 0 auto;\n padding: 1em 0;\n text-align: center;\n & &__item,\n & &__item--active{\n display: inline-block;\n min-width: 29px;\n padding: 0 3px 0 2px;\n text-align: center;\n position: relative;\n @include reset_link();\n a{\n color: inherit;\n display: block;\n line-height: 1.8;\n padding: 5px 1em;\n text-decoration: none;\n }\n a:hover{\n color: inherit;\n }\n }\n & &__item--active {\n background: $clrGray;\n }\n & &__item:hover{\n background: $clrGray;\n }\n\n}","@import \"./variables\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/forms\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/tab-focus\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/vendor-prefixes\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/tab-focus\";\n\n\n@keyframes fadeIn{\n 0%{\n opacity: 0;\n visibility: hidden;\n }\n 100%{\n opacity: 1;\n visibility: visible;\n }\n}\n\n@keyframes fadeOut{\n 0%{\n opacity: 1;\n visibility: visible;\n }\n 100%{\n opacity: 0;\n visibility: hidden;\n }\n}\n\n@mixin fadeIn($display:block,$time:150ms) {\n display: $display;\n opacity: 1;\n visibility: visible;\n animation: fadeIn $time linear 0s;\n}\n@mixin fadeOut($time:150ms) {\n opacity: 0;\n visibility:hidden;\n animation: fadeOut $time linear 0s;\n}\n\n.bg-load-overlay {\n background: rgba(255, 255, 255, 0.4);\n box-sizing: border-box;\n position: fixed;\n display: flex;\n flex-flow: column nowrap;\n align-items: center;\n justify-content: space-around;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 2147483647;\n opacity: 1;\n}\n","@import \"../mixins/variables\";\n@import \"../mixins/media\";\n@import \"../mixins/animation\";\n@import \"../mixins/projects\";\n/*\nカート\n\nショッピングカートに関するスタイルです。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 7.3\n*/\n\n/*\nカートヘッダ\n\n購入完了までの手順や、現在の状態を表示します。\n\nul 要素を用いたリスト要素としてマークアップします。\n\nex [カートページ ヘッダ部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/7.3.cart.pug\n+ec-progress\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 7.3.1\n*/\n.ec-progress{\n margin: 0 auto;\n padding: 8px 0 16px;\n display: table;\n table-layout: fixed;\n width: 100%;\n max-width: 600px;\n list-style: none;\n @include media_desktop {\n margin-bottom: 30px;\n padding: 0;\n }\n\n & &__item{\n display:table-cell;\n position: relative;\n font-size: 14px;\n text-align: center;\n font-weight: bold;\n z-index: 10;\n\n &:after {\n content: '';\n position: absolute;\n display: block;\n background: #525263;\n width: 100%;\n height: 0.25em;\n top: 1.25em;\n left: 50%;\n margin-left: 1.5em\\9;\n z-index: -1;\n }\n &:last-child:after {\n display: none;\n }\n }\n & &__number{\n line-height: 30px;\n width: 30px;\n height: 30px;\n margin-bottom: 5px;\n font-size: 12px;\n background: #525263;\n color: #fff;\n top: 0;\n left: 18px;\n display: inline-block;\n text-align: center;\n vertical-align: middle;\n border-radius: 50%;\n @include media_desktop(){\n line-height: 42px;\n width: 42px;\n height: 42px;\n font-size: 20px;\n }\n }\n & &__label {\n font-size: 12px;\n }\n .is-complete {\n .ec-progress__number {\n background: #5CB1B1;\n }\n .ec-progress__label {\n color: #5CB1B1;\n }\n }\n}\n\n\n\n/*\nカートナビゲーション\n\nカートナビゲーションを表示します。 カートに追加された商品の個数も表示します。\n\nex [カートページ ナビゲーション部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\n+ec-headerCart\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 7.3.5\n*/\n.ec-cartNaviWrap{\n @include media_desktop {\n position: relative;\n }\n}\n.ec-cartNavi{\n display: inline-block;\n padding: 10px 0 0 20px;\n width: auto;\n color: black;\n background: transparent;\n @include media_desktop {\n display: flex;\n justify-content: space-between;\n border-radius: 99999px;\n box-sizing: border-box;\n padding: 12px 17px 10px;\n width: auto;\n min-width: 140px;\n height: 44px;\n white-space: nowrap;\n cursor: pointer;\n background: #F8F8F8;\n }\n\n & &__icon {\n display: inline-block;\n font-size: 20px;\n @include fadeIn(inline-block,200ms);\n position: relative;\n\n }\n & &__badge{\n display: inline-block;\n border-radius: 99999px;\n box-sizing: border-box;\n padding: 5px;\n height: 17px;\n font-size: 10px;\n line-height: 0.7;\n vertical-align: top;\n color: #fff;\n text-align: left;\n white-space: nowrap;\n background-color: #DE5D50;\n position: absolute;\n left: 60%;\n top: -10px;\n @include media_desktop {\n display: inline-block;\n min-width: 17px;\n position: relative;\n left: 0;\n top: 0;\n }\n }\n & &__price{\n display: none;\n\n @include media_desktop {\n display: inline-block;\n font-size: 14px;\n font-weight: normal;\n vertical-align: middle;\n }\n }\n}\n.ec-cartNavi.is-active {\n\n .ec-cartNavi__icon {\n &:before {\n content: \"\\f00d\";\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900;\n }\n }\n .ec-cartNavi__badge{\n display: none;\n @include media_desktop {\n display: none;\n }\n\n }\n}\n\n\n/*\nカートナビゲーションのポップアップ(商品詳細)\n\nカートナビゲーションのポップアップを表示します。カートに追加された商品の詳細が表示されます。\n\nex [カートページ ナビゲーション部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ndiv(style=\"height:350px;\")\n // 上記のdivはスタイルガイド都合上、高さをもたせるため設置(mocでは不要)\n .is_active\n .ec-cartNavi\n .ec-cartNavi__icon\n img(src='/moc/icon/cart-dark.svg', alt='close')\n .ec-cartNavi__iconClose\n img(src='/moc/icon/cross-dark.svg', alt='close')\n .ec-cartNavi__badge 1\n .ec-cartNavi__label\n | 合計\n .ec-cartNavi__price ¥1920\n +b.ec-cartNaviIsset\n +e.cart\n +e.cartImage\n img(src='http://demo3.ec-cube.net/upload/save_image/0701104933_5593472d8d179.jpeg')\n +e.cartContent\n +e.cartContentTitle ミニテーブル\n +e.cartContentPrice ¥ 12,960\n +e.cartContentTax 税込\n +e.cartContentNumber 数量:1\n +e.action\n a.ec-blockBtn--action(href=\"/moc/guest/cart1\") カートへ進む\n a.ec-blockBtn.ec-cartNavi--cancel キャンセル\n\nStyleguide 7.3.6\n*/\n.ec-cartNaviIsset {\n display: none;\n width: 100%;\n text-align: center;\n background: #f8f8f8;\n box-sizing: border-box;\n padding: 16px;\n z-index: 20;\n position: absolute;\n right: 0;\n\n @include media_desktop {\n margin-top: 10px;\n min-width: 256px;\n max-width:256px;\n\n &::before {\n display: inline-block;\n content: \"\";\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0 8.5px 10px 8.5px;\n border-color: transparent transparent #f8f8f8 transparent;\n position: absolute;\n top: -9px;\n\n }\n }\n\n\n\n & &__cart {\n @include clearfix;\n border-bottom: 1px solid #E8E8E8;\n margin-bottom: 16px;\n padding-bottom: 32px;\n }\n & &__cartImage {\n float: left;\n width: 45%;\n img {\n width: 100%;\n }\n }\n & &__cartContent {\n float: right;\n width: 55%;\n padding-left: 16px;\n text-align:left;\n box-sizing:border-box;\n }\n & &__action {\n .ec-blockBtn--action {\n color:#fff;\n margin-bottom: 8px;\n }\n }\n & &__cartContentTitle {\n margin-bottom: 8px;\n }\n & &__cartContentPrice {\n font-weight: bold;\n }\n & &__cartContentTax {\n display: inline-block;\n font-size: 12px;\n font-weight: normal;\n margin-left: 2px;\n }\n & &__cartContentNumber {\n font-size: 14px;\n }\n}\n\n.ec-cartNaviIsset.is-active {\n display: block;\n}\n\n\n\n/*\nカートナビゲーションのポップアップ(商品なし)\n\nカートナビゲーションのポップアップを表示します。商品が登録されていない場合の表示です。\n\nex [カートページ ナビゲーション部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ndiv(style=\"height:170px;\")\n // 上記のdivはスタイルガイド都合上、高さをもたせるため設置(mocでは不要)\n .is_active\n .ec-cartNavi\n .ec-cartNavi__icon\n img(src='/moc/icon/cart-dark.svg', alt='cart')\n .ec-cartNavi__iconClose\n img(src='/moc/icon/cross-dark.svg', alt='close')\n .ec-cartNavi__badge 1\n .ec-cartNavi__label\n | 合計\n .ec-cartNavi__price ¥1920\n .ec-cartNaviNull\n .ec-cartNaviNull__message\n p 現在カート内に\n br\n | 商品がございません。\n //+b.ec-cartNaviIsset\n // +e.cart\n // +e.cartImage\n // img(src='http://demo3.ec-cube.net/upload/save_image/0701104933_5593472d8d179.jpeg')\n // +e.cartContent\n // +e.cartContentTitle ミニテーブル\n // +e.cartContentPrice ¥ 12,960\n // +e.cartContentTax 税込\n // +e.cartContentNumber 数量:1\n // +e.action\n // a.ec-blockBtn--action(href=\"/moc/guest/cart1\") カートへ進む\n // a.ec-blockBtn キャンセル\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 7.3.7\n*/\n\n\n.ec-cartNaviNull {\n display: none;\n width: 100%;\n text-align: center;\n background: #f8f8f8;\n box-sizing: border-box;\n padding: 16px;\n z-index: 3;\n position: absolute;\n right: 0;\n\n @include media_desktop {\n margin-top: 10px;\n min-width: 256px;\n max-width:256px;\n\n &::before {\n display: inline-block;\n content: \"\";\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0 8.5px 10px 8.5px;\n border-color: transparent transparent #f8f8f8 transparent;\n position: absolute;\n top: -9px;\n\n }\n }\n\n & &__message {\n border: 1px solid #D9D9D9;\n padding: 16px 0;\n font-size: 16px;\n font-weight: bold;\n color: #fff;\n background-color: #F99;\n p {\n margin: 0;\n }\n }\n}\n\n.ec-cartNaviNull.is-active {\n display: block;\n}\n\n\n\n/*\n総計\n\n会計時の合計金額、総計を表示します。\n\nex [カートページ 統計部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/7.3.cart.pug\n+ec-totalBox\n\nStyleguide 7.3.8\n*/\n.ec-totalBox{\n background:#F3F3F3;\n padding: 16px;\n margin-bottom: 16px;\n & &__spec{\n position: relative;\n margin-bottom:8px;\n dt{\n font-weight: normal;\n position: relative;\n top:0;\n left: 0;\n text-align: left;\n }\n dd{\n position: absolute;\n top:0;\n right: 0;\n text-align: right;\n\n }\n & &__specTotal {\n color: $clrRed;\n }\n }\n & &__total{\n border-top: 1px dotted #ccc;\n padding: 8px 0;\n text-align: right;\n font-size: 14px;\n font-weight:bold;\n }\n & &__price{\n margin-left: 16px;\n font-size: 16px;\n font-weight:bold;\n color: $clrRed;\n @include media_desktop {\n font-size: 24px;\n }\n }\n & &__taxLabel {\n margin-left: 8px;\n color: $clrRed;\n font-size: 12px;\n @include media_desktop {\n font-size: 14px;\n }\n }\n & &__btn {\n @include reset_link();\n color: #fff;\n .ec-blockBtn--action {\n font-size: 16px;\n font-weight: bold;\n }\n }\n}","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n@mixin clearfix() {\n //&:before, //to avoid flex effect\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n/*\nお知らせ\n\n新着情報やバナーなどの掲載項目を紹介していきます。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 8.1\n*/\n\n/*\n新着情報\n\n新着情報の掲載をします。\n\nex [トップページ 新着情報部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/8.1.info.pug\n+ec-news\n\nStyleguide 8.1.1\n*/\n.ec-news {\n margin-bottom: 16px;\n background: #F8F8F8;\n @include media_desktop {\n margin-right: 3%;\n }\n @include media_desktop {\n margin-bottom: 32px;\n }\n & &__title{\n font-weight: bold;\n padding: 8px;\n font-size: 16px;\n text-align: center;\n @include media_desktop {\n padding: 16px;\n text-align: left;\n font-size: 24px;\n }\n }\n & &__items{\n padding: 0;\n list-style: none;\n border-top: 1px dotted #ccc;\n }\n}\n/*\n折りたたみ項目\n\n折りたたみ項目を掲載します。\n\nex [トップページ 折りたたみ項目部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/8.1.info.pug\n+b.ec-news\n +e.title 新着情報\n +e.UL.items\n +e.LI.item\n +b.ec-newsline.is_active\n +e.info\n +e.date 2016/09/29\n +e.comment サイトオープンしました\n +e.close\n a.ec-closeBtn--circle\n span.ec-closeBtn--circle__icon\n .ec-icon\n img(src='/moc/icon/angle-down-white.svg', alt='')\n +e.description 一人暮らしからオフィスなどさまざまなシーンで あなたの生活をサポートするグッズをご家庭へお届けします!\n\nStyleguide 8.1.2\n*/\n.ec-newsline {\n display: flex;\n flex-wrap:wrap;\n overflow: hidden;\n padding: 0 16px;\n & &__info{\n width: 100%;\n padding: 16px 0;\n @include clearfix;\n }\n & &__date{\n display: inline-block;\n margin-right: 10px;\n float: left;\n }\n & &__comment{\n display: inline-block;\n float: left;\n }\n & &__close{\n float: right;\n display: inline-block;\n text-align: right;\n .ec-closeBtn--circle {\n display: inline-block;\n width: 25px;\n height: 25px;\n min-width: 25px;\n min-height: 25px;\n\n }\n }\n & &__description{\n width: 100%;\n height: 0;\n transition: all .2s ease-out;\n }\n\n &.is_active &__description{\n height: auto;\n transition: all .2s ease-out;\n padding-bottom: 16px;\n }\n &.is_active .ec-icon img {\n transform: rotateX(180deg);\n }\n}\n\n","@import \"../mixins/projects\";\n@import \"../mixins/variables\";\n@import \"../mixins/media\";\n/*\nマイページ\n\nマイページで利用するためのスタイルガイド群です。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 9.1\n*/\n\n/*\nマイページ\n\nマイページで表示するメニューリストです。\n\nul を利用したリスト要素で記述します。\n\nex [マイページ メニューリスト部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-navlist\n\nStyleguide 9.1.1\n*/\n.ec-navlistRole{\n & &__navlist {\n @include reset_link;\n display: flex;\n flex-wrap: wrap;\n border-color: #D0D0D0;\n border-style: solid;\n border-width: 1px 0 0 1px;\n margin-bottom: 32px;\n padding: 0;\n list-style: none;\n @include media_desktop {\n flex-wrap: nowrap;\n }\n }\n\n & &__item{\n width: 50%;\n border-color: #D0D0D0;\n border-style: solid;\n border-width: 0 1px 1px 0;\n text-align: center;\n font-weight: bold;\n a {\n padding: 16px;\n width: 100%;\n display: inline-block;\n &:hover{\n background: #f5f7f8;\n }\n }\n }\n .active {\n a {\n color: #DE5D50;\n }\n }\n}\n\n/*\nマイページ(お気に入り機能無効)\n\nマイページで表示するメニューリストです。\n\nul を利用したリスト要素で記述します。\n\nex [マイページ メニューリスト部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-navlist_noFavorite\n\nStyleguide 9.1.2\n*/\n\n/*\nWelcome メッセージ\n\nマイページで表示するログイン名の表示コンポーネントです。\n\nex [マイページ メニューリスト下部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-welcomeMsg\n\nStyleguide 9.1.3\n*/\n.ec-welcomeMsg{\n @include mypageContainer;\n margin: 1em 0;\n padding-bottom: 32px;\n text-align: center;\n @include borderBottom;\n\n}\n\n/*\nお気に入り一覧\n\nお気に入り一覧で表示するアイテムの表示コンポーネントです。\n\nex [マイページ お気に入り一覧](http://demo3.ec-cube.net/mypage/favorite)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-favorite\n\nStyleguide 9.1.4\n*/\n.ec-favoriteRole{\n & &__header {\n margin-bottom: 16px;\n }\n & &__detail {\n }\n & &__itemList {\n @include reset_link;\n display: flex;\n flex-wrap: wrap;\n padding: 0;\n list-style: none;\n }\n & &__item{\n margin-bottom: 8px;\n width: 47.5%;\n position: relative;\n box-sizing: border-box;\n padding: 10px;\n &-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center;\n @include media_desktop() {\n height: 250px;\n }\n }\n img{\n width: auto;\n max-height: 100%;\n }\n @include media_desktop(){\n width: 25%;\n }\n .ec-closeBtn--circle {\n position: absolute;\n right: 10px;\n top: 10px;\n .ec-icon img{\n width: 1em;\n height: 1em;\n }\n }\n }\n & &__itemThumb {\n display: block;\n height:auto;\n margin-bottom: 8px;\n }\n & &__itemTitle{\n margin-bottom: 2px;\n }\n & &__itemPrice{\n font-weight: bold;\n margin-bottom: 0;\n }\n\n}\n","@import \"../mixins/media\";\n\n/*\n標準セクション\n\n通常のコンテナブロックです。\n\nex [商品詳細ページ コンテナ](http://demo3.ec-cube.net/products/detail/33)\n\nMarkup:\ninclude /assets/tmpl/elements/11.1.role.pug\n+ec-roleRole\n\nStyleguide 11.1\n*/\n.ec-role{\n @include container;\n}\n\n/*\nマイページセクション\n\nマイページ専用のコンテナブロックです。\n\nex [マイページ コンテナ](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/11.1.role.pug\n+ec-mypageRole\n\nStyleguide 11.1.2\n*/\n.ec-mypageRole{\n @include mypageContainer;\n\n .ec-pageHeader h1{\n @include media_desktop {\n margin: 10px 0 48px;\n padding: 8px 0 18px;\n }\n }\n\n}\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n@import \"../mixins/clearfix\";\n@import \"../mixins/animation\";\n\n/*\nヘッダー\n\nヘッダー用のプロジェクトコンポーネントを提供します。\n\nex [トップページ ヘッダー](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\ninclude /assets/tmpl/elements/11.4.categoryNavi.pug\n+b.ec-layoutRole\n +e.header\n +ec-headerRole\n +ec-headerNaviRole\n +ec-categoryNaviRole\n\nStyleguide 11.2\n*/\n.ec-layoutRole {\n width: 100%;\n transition: transform 0.3s;\n background: #fff;\n & &__contentTop {\n padding: 0;\n }\n\n & &__contents {\n margin-right: auto;\n margin-left: auto;\n width: 100%;\n max-width: 1150px;\n display: flex;\n flex-wrap: nowrap;\n\n }\n & &__main {\n width: 100%;\n }\n & &__mainWithColumn {\n width: 100%;\n @include media_desktop() {\n width: 75%;\n }\n }\n & &__mainBetweenColumn {\n width: 100%;\n @include media_desktop() {\n width: 50%;\n }\n }\n & &__left,\n & &__right {\n display: none;\n @include media_desktop() {\n display: block;\n width: 25%;\n }\n }\n}\n\n\n.ec-headerRole {\n @include container;\n padding-top: 15px;\n position: relative;\n &:after {\n display: none;\n }\n @include media_desktop {\n @include clearfix;\n }\n &::before {\n display: none;\n }\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n width: auto;\n @include media_desktop {\n width: 100%;\n @include clearfix;\n }\n & &__title {\n width: 100%;\n }\n & &__navSP {\n display: block;\n position: absolute;\n top: 15px;\n width: 27%;\n right: 0;\n text-align: right;\n @include media_desktop {\n display: none;\n }\n }\n}\n\n.ec-headerNaviRole {\n @include container;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-top: 15px;\n\n @include media_desktop {\n padding-bottom: 40px;\n }\n\n & &__left {\n width: calc(100% / 3);\n\n }\n\n & &__search {\n display: none;\n @include media_desktop() {\n display: inline-block;\n margin-top: 10px;\n @include reset_link;\n }\n }\n & &__navSP {\n display: block;\n @include media_desktop() {\n display: none;\n @include reset_link;\n }\n }\n\n & &__right {\n width: calc(100% * 2 / 3);\n display: flex;\n justify-content: flex-end;\n align-items: center;\n }\n\n & &__nav {\n display: inline-block;\n @include reset_link;\n }\n & &__cart {\n display: inline-block;\n @include reset_link;\n }\n}\n\n.ec-headerNavSP {\n display: block;\n //display: inline-block;\n border-radius: 50%;\n box-sizing: border-box;\n padding: 10px;\n width: 40px;\n height: 40px;\n font-size: 18px;\n text-align: center;\n color: black;\n background: white;\n position: fixed;\n top: 10px;\n left: 10px;\n z-index: 1000;\n\n .fas {\n vertical-align: top;\n }\n\n @include media_desktop {\n display: none;\n }\n}\n.ec-headerNavSP.is-active {\n display: none;\n}\n\n/*\nヘッダー:タイトル\n\nヘッダー内で使用されるタイトルコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\n+ec-headerTitle\n\nStyleguide 11.2.1\n*/\n.ec-headerTitle {\n @include commonStyle();\n & &__title {\n text-align: center;\n h1 {\n margin: 0;\n padding: 0;\n }\n a {\n display: inline-block;\n margin-bottom: 30px;\n text-decoration: none;\n font-size: 20px;\n\n @include media_desktop() {\n font-size: 40px;\n }\n font-weight: bold;\n color: black;\n\n &:hover {\n opacity: .8;\n }\n }\n }\n & &__subtitle {\n font-size: 10px;\n text-align: center;\n @include media_desktop() {\n font-size: 16px;\n margin-bottom: 10px;\n }\n a {\n display: inline-block;\n color: #0092C4;\n text-decoration: none;\n cursor: pointer;\n }\n }\n}\n\n/*\nヘッダー:ユーザナビゲーション\n\nヘッダー内でユーザに関与するナビゲーションコンポーネントです。\n

\n`.ec-headerNaviRole`>`.ec-headerNaviRole__nav`内に記述すると2カラム上の右側に配置することができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\n+ec-headerNav\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.2.3\n*/\n.ec-headerNav {\n text-align: right;\n & &__item {\n margin-left: 0;\n display: inline-block;\n font-size: 28px;\n }\n & &__itemIcon {\n display: inline-block;\n margin-right: 10px;\n margin-left: 10px;\n font-size: 18px;\n color: black;\n @include media_desktop {\n margin-right: 0;\n font-size: 20px;\n }\n }\n & &__itemLink {\n display: none;\n margin-right: 5px;\n font-size: 14px;\n vertical-align: middle;\n color: black;\n @include media_desktop {\n display: inline-block;\n }\n }\n}\n\n/*\nヘッダー:検索ボックス\n\nヘッダー内で使用される商品検索コンポーネントです。\n

\n`.ec-headerNaviRole`>`.ec-headerNaviRole__search`内に記述すると2カラム上の右側に配置することができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\n+ec-headerSearch\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.2.4\n*/\n.ec-headerSearch{\n @include clearfix;\n & &__category {\n float: none;\n @include media_desktop {\n float: left;\n width: 43%;\n }\n .ec-select {\n overflow: hidden;\n width: 100%;\n margin: 0;\n text-align: center;\n\n select {\n width: 100%;\n cursor: pointer;\n padding: 8px 24px 8px 8px;\n text-indent: 0.01px;\n text-overflow: ellipsis;\n border: none;\n outline: none;\n background: transparent;\n background-image: none;\n box-shadow: none;\n appearance: none;\n color: #fff;\n\n @include media_desktop {\n max-width: 165px;\n height: 36px;\n }\n\n option {\n color: #000;\n }\n\n &::-ms-expand {\n display: none;\n }\n }\n\n &.ec-select_search {\n position: relative;\n border: 0;\n background: #000;\n color: #fff;\n border-top-right-radius: 10px;\n border-top-left-radius: 10px;\n\n @include media_desktop {\n border-top-right-radius: inherit;\n border-top-left-radius: 50px;\n border-bottom-left-radius: 50px;\n }\n\n &::before {\n position: absolute;\n top: 0.8em;\n right: 0.4em;\n width: 0;\n height: 0;\n padding: 0;\n content: '';\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid #fff;\n pointer-events: none;\n }\n }\n }\n }\n & &__keyword{\n position: relative;\n color: $clrDarkGray;\n border: 1px solid #ccc;\n background-color: #f6f6f6;\n border-bottom-right-radius: 10px;\n border-bottom-left-radius: 10px;\n\n @include media_desktop {\n float: right;\n width: 57%;\n border-bottom-left-radius: inherit;\n border-top-right-radius: 50px;\n border-bottom-right-radius: 50px;\n }\n input[type=\"search\"]{\n width: 100%;\n height: 34px;\n font-size: 1.2rem;\n border: 0 none;\n padding: 0.5em 50px 0.5em 1em;\n box-shadow: none;\n background: none;\n box-sizing: border-box;\n margin-bottom: 0;\n }\n .ec-icon {\n width: 22px;\n height: 22px;\n }\n }\n & &__keywordBtn{\n border: 0;\n background: none;\n position: absolute;\n right: 5px;\n top: 50%;\n transform: translateY(-55%);\n display: block;\n white-space: nowrap;\n z-index: 1;\n }\n}\n\n/*\nヘッダー:カテゴリナビ\n\nヘッダー内で使用されている商品のカテゴリ一覧として使用します。\n`li`の中に`ul > li`要素を入れることで、階層を深くする事ができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.4.categoryNavi.pug\n+ec-itemNav\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 11.2.5\n*/\n.ec-categoryNaviRole {\n @include container;\n display: none;\n @include media_desktop() {\n display: block;\n width: 100%;\n @include reset_link;\n }\n}\n\n.ec-itemNav {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n text-align: center;\n}\n\n.ec-itemNav__nav {\n display: block;\n margin: 0 auto;\n padding: 0;\n width: auto;\n height: auto;\n list-style-type: none;\n text-align: center;\n vertical-align: bottom;\n @include media_desktop {\n display: inline-block;\n }\n}\n\n.ec-itemNav__nav li {\n float: none;\n margin: 0;\n padding: 0;\n width: 100%;\n text-align: center;\n position: relative;\n @include media_desktop {\n float: left;\n width: auto;\n }\n}\n\n.ec-itemNav__nav li a {\n display: block;\n border-bottom: 1px solid #E8E8E8;\n margin: 0;\n padding: 16px;\n height: 55px;\n color: #2e3233;;\n font-size: 16px;\n font-weight: bold;\n line-height: 20px;\n text-decoration: none;\n text-align: left;\n background: #fff;\n border-bottom: 1px solid #E8E8E8;\n @include media_desktop {\n text-align: center;\n border-bottom: none;\n }\n}\n\n.ec-itemNav__nav li ul {\n display: none;\n z-index: 0;\n margin: 0;\n padding: 0;\n min-width: 200px;\n list-style: none;\n position: static;\n top: 100%;\n left: 0;\n @include media_desktop {\n display: block;\n z-index: 100;\n position: absolute;\n }\n}\n\n.ec-itemNav__nav li ul li {\n overflow: hidden;\n width: 100%;\n height: auto;\n transition: .3s;\n @include media_desktop {\n overflow: hidden;\n height: 0;\n }\n}\n\n.ec-itemNav__nav li ul li a {\n border-bottom: 1px solid #E8E8E8;\n padding: 16px;\n font-size: 16px;\n font-weight: bold;\n color: white;\n text-align: left;\n background: black;\n}\n\n.ec-itemNav__nav > li:hover > a {\n background: #fafafa;\n}\n\n.ec-itemNav__nav > li:hover li:hover > a {\n background: #333;\n}\n\n.ec-itemNav__nav > li:hover > ul > li {\n @include media_desktop {\n overflow: visible;\n height: 55px;\n\n }\n}\n\n.ec-itemNav__nav li ul li ul {\n top: 0;\n left: 100%;\n width: auto;\n}\n\n.ec-itemNav__nav li ul li ul:before {\n @include media_desktop {\n content: \"\\f054\";\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900;\n font-size: 12px;\n color: white;\n position: absolute;\n top: 19px;\n right: auto;\n left: -20px;\n }\n}\n\n.ec-itemNav__nav li ul li:hover > ul > li {\n @include media_desktop {\n overflow: visible;\n height: 55px;\n width: auto;\n }\n}\n\n.ec-itemNav__nav li ul li ul li a {\n background: #7D7D7D\n}\n\n.ec-itemNav__nav li:hover ul li ul li a:hover {\n background: #333;\n}\n\n/*\nヘッダー:SPヘッダー\n\nSP時のみ出現するヘッダーに関係するコンポーネントです。
\nex [トップページ](http://demo3.ec-cube.net/)画面サイズが768px以下に該当。
\n
\n`.ec-drawerRole`:SPのドロワー内の要素をwrapするコンポーネントです。
\n`.ec-headerSearch`、`.ec-headerNav`、`.ec-itemNav`は`.ec-drawerRole`の子要素にある場合、ドロワーに適したスタイルに変化します。

\n`.ec-overlayRole`:SPのドロワー出現時にz-indexがドロワー以下の要素に半透明の黒背景をかぶせるコンポーネントです。
\n\nStyleguide 11.2.6\n*/\n\n.ec-drawerRole {\n overflow-y: scroll;\n background: black;\n width: 260px;\n height: 100vh;\n transform: translateX(-300px);\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n transition: z-index 0ms 1ms;\n @include media_desktop() {\n display: none;\n }\n\n\n .ec-headerSearchArea {\n padding: 20px 10px;\n width: 100%;\n background: #F8F8F8;\n }\n\n .ec-headerSearch{\n padding: 16px 8px 26px;\n background: #EBEBEB;\n color: #636378;\n select{\n width: 100% !important;\n }\n }\n\n .ec-headerCategoryArea{\n .ec-headerCategoryArea__heading {\n border-top: 1px solid #CCCCCC;\n border-bottom: 1px solid #CCCCCC;\n padding: 1em 10px;\n font-size: 16px;\n font-weight: bold;\n color: black;\n background: #F8F8F8;\n }\n\n\n .ec-itemNav__nav li a {\n border-bottom: 1px solid #ccc;\n border-bottom: 1px solid #ccc;\n color: black;\n font-weight: normal;\n background: #f8f8f8;\n }\n\n .ec-itemNav__nav li ul li a {\n border-bottom: 1px solid #ccc;\n padding-left: 20px;\n font-weight: normal;\n background: white;\n }\n\n .ec-itemNav__nav > li:hover > a {\n background: #f8f8f8;\n }\n\n .ec-itemNav__nav > li:hover li:hover > a {\n background: white;\n }\n\n .ec-itemNav__nav li ul li ul li a {\n padding-left: 40px;\n color: black;\n background: white;\n }\n\n .ec-itemNav__nav li:hover ul li ul li a:hover {\n background: white;\n }\n\n .ec-itemNav__nav li ul li ul li ul li a{\n padding-left: 60px;\n font-weight: normal;\n }\n }\n .ec-headerLinkArea {\n background: black;\n\n .ec-headerLink__list {\n border-top: 1px solid #ccc;\n\n }\n\n .ec-headerLink__item {\n display: block;\n border-bottom: 1px solid #ccc;\n padding: 15px 20px;\n font-size: 16px;\n font-weight: bold;\n color: white;\n }\n .ec-headerLink__icon {\n display: inline-block;\n width: 28px;\n font-size: 17px;\n }\n\n\n\n }\n\n}\n\n.ec-drawerRoleClose {\n display: none;\n border-radius: 50%;\n box-sizing: border-box;\n padding: 10px;\n width: 40px;\n height: 40px;\n font-size: 18px;\n text-align: center;\n color: black;\n background: white;\n position: fixed;\n top: 10px;\n left: 270px;\n z-index: 1000;\n\n .fas {\n vertical-align: top;\n }\n @include media_desktop {\n display: none;\n }\n\n}\n\n.ec-drawerRole.is_active {\n display: block;\n transform: translateX(0);\n transition: all .3s;\n z-index: 100000;\n\n @include media_desktop() {\n display: none;\n }\n}\n.ec-drawerRoleClose.is_active {\n display: inline-block;\n transition: all .3s;\n\n @include media_desktop {\n display: none;\n }\n}\n\n.ec-overlayRole {\n position: fixed;\n width: 100%;\n height: 100vh;\n top: 0;\n left: 0;\n opacity: 0;\n background: transparent;\n transform: translateX(0);\n transition: all .3s;\n visibility: hidden;\n\n @include media_desktop {\n display: none;\n }\n}\n\n.have_curtain .ec-overlayRole {\n display: block;\n opacity: 1;\n background: rgba(0, 0, 0, 0.5);\n visibility: visible;\n\n @include media_desktop {\n display: none;\n }\n}\n\n/*\nヘッダー:test\n\ntest\n\nMarkup:\nspan.ec-itemAccordionParent test1\nul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test2\n ul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test3\n ul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test4\n\nStyleguide 11.2.7\n*/\n\n.ec-itemNavAccordion {\n display: none;\n}","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n/*\nフッター\n\n全ページで使用されるフッターのプロジェクトコンポーネントです。\n\nex [トップページ フッター](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerRole\n\nStyleguide 11.3\n*/\n.ec-footerRole{\n border-top: 1px solid #7d7d7d;\n margin-top: 30px;\n background: black;\n\n @include media_desktop(){\n padding-top: 40px;\n margin-top: 100px;\n }\n & &__inner{\n @include media_desktop {\n @include container;\n }\n }\n}\n\n/*\nフッターナビ\n\nフッタープロジェクトで使用するナビゲーション用のコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerNav\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.3.1\n*/\n.ec-footerNavi{\n padding: 0;\n color: white;\n list-style: none;\n text-align: center;\n\n & &__link{\n display: block;\n\n @include media_desktop {\n display: inline-block;\n }\n\n a{\n display: block;\n border-bottom: 1px solid #7d7d7d;\n padding: 15px 0;\n font-size: 14px;\n color: inherit;\n text-decoration: none;\n\n @include media_desktop {\n display: inline-block;\n border-bottom: none;\n margin: 0 10px;\n padding: 0;\n text-decoration: underline;\n }\n }\n &:hover {\n a {\n opacity: .8;\n text-decoration: none;\n }\n\n }\n\n }\n}\n\n/*\nフッタータイトル\n\nフッタープロジェクトで使用するタイトル用のコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerTitle\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.3.2\n*/\n.ec-footerTitle{\n padding: 40px 0 60px;\n text-align: center;\n color: white;\n\n @include media_desktop {\n padding: 50px 0 80px;\n }\n\n & &__logo{\n display: block;\n margin-bottom: 10px;\n font-weight: bold;\n @include reset_link();\n\n a{\n font-size: 22px;\n color: inherit;\n @include media_desktop {\n font-size: 24px;\n }\n\n }\n\n &:hover {\n a {\n opacity: .8;\n text-decoration: none;\n }\n }\n }\n & &__copyright{\n font-size: 10px;\n\n @include media_desktop {\n font-size: 12px;\n }\n }\n}\n\n","@import \"../mixins/media\";\n/*\nトップページ\n\nトップページ スライド部に関する Project コンポーネントを定義します。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/12.1.slider.pug\n+ec-sliderRole\n\nStyleguide 12.1\n*/\n.ec-sliderRole{\n @include container;\n margin-bottom: 24px;\n ul{\n padding: 0;\n list-style: none;\n }\n}\n.ec-sliderItemRole{\n @include container;\n margin-bottom: 24px;\n ul{\n padding: 0;\n list-style: none;\n }\n .item_nav {\n display: none;\n @include media_desktop {\n display: flex;\n justify-content: flex-start;\n flex-wrap: wrap;\n margin-bottom: 0;\n }\n\n }\n .slideThumb{\n margin-bottom: 25px;\n width: 33%;\n opacity: .8;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n &:hover {\n opacity: 1;\n }\n img {\n width: 80%;\n }\n }\n}","@import \"../mixins/media\";\n\n/*\nアイキャッチ\n\nトップページ アイキャッチ部に関する Project コンポーネントを定義します。\n\nex [トップページスライダー直下 アイキャッチ部](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/12.2.eyecatch.pug\n+ec-eyecatchRole\n\nStyleguide 12.2\n*/\n.ec-eyecatchRole {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 40px;\n\n @include media_desktop {\n flex-wrap: nowrap;\n }\n\n & &__image {\n display: block;\n margin-bottom: 40px;\n width: 100%;\n height: 100%;\n\n @include media_desktop {\n order: 2;\n }\n }\n\n & &__intro {\n color: black;\n\n @include media_desktop {\n padding-right: 5%;\n order: 1;\n }\n }\n & &__introEnTitle {\n margin-bottom: .8em;\n font-size: 16px;\n font-weight: normal;\n\n @include media_desktop {\n margin-top: 45px;\n }\n }\n & &__introTitle {\n margin-bottom: .8em;\n font-size: 24px;\n font-weight: bold;\n\n @include media_desktop {\n margin-bottom: 1em;\n font-size: 26px;\n }\n }\n & &__introDescriptiron {\n margin-bottom: 20px;\n font-size: 16px;\n line-height: 2;\n @include media_desktop {\n margin-bottom: 30px;\n }\n }\n\n}\n","@import \"../mixins/btn\";\n@import \"../mixins/media\";\n\n/*\nボタン\n\nトップページで使用されているボタンのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.3\n*/\n\n/*\n通常ボタン\n\nインラインの要素としてボタンを定義出来ます。\n\nMarkup:\n.ec-inlineBtn--top more\n\nStyleguide 12.3.1\n*/\n.ec-inlineBtn--top{\n @include _btn(white, black, black);\n}\n\n/*\nロングボタン(全幅)\n\nロングタイプのボタンです。\n\nMarkup:\n.ec-blockBtn--top 商品一覧へ\n\nStyleguide 2.1.2\n*/\n.ec-blockBtn--top{\n @include _btn(white, black, black);\n display: block;\n height:56px;\n line-height:56px;\n padding-top: 0;\n padding-bottom: 0;\n\n @include media_desktop {\n max-width: 260px;\n }\n}\n","/*\n見出し\n\nトップページで使用されている見出しのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.4\n*/\n\n/*\n横並び見出し\n\n横並びの見出しです。\n\nMarkup:\n.ec-secHeading\n span.ec-secHeading__en TOPIC\n span.ec-secHeading__line |\n span.ec-secHeading__ja 特集\n\nStyleguide 12.4.1\n*/\n.ec-secHeading {\n margin-bottom: 15px;\n color: black;\n & &__en{\n font-size: 18px;\n font-weight: bold;\n letter-spacing: .2em;\n }\n & &__line{\n display: inline-block;\n margin: 0 20px;\n width: 1px;\n height: 14px;\n background: black;\n }\n & &__ja{\n font-size: 12px;\n font-weight: normal;\n letter-spacing: .15em;\n vertical-align: 2px;\n }\n}\n\n/*\n縦並び見出し\n\n縦並びの見出しです。\n\nMarkup:\n.ec-secHeading--tandem\n span.ec-secHeading__en TOPIC\n span.ec-secHeading__line |\n span.ec-secHeading__ja 特集\n\nStyleguide 12.4.2\n*/\n\n.ec-secHeading--tandem {\n margin-bottom: 15px;\n color: black;\n text-align: center;\n & .ec-secHeading__en{\n display: block;\n font-size: 18px;\n font-weight: bold;\n letter-spacing: .2em;\n }\n & .ec-secHeading__line{\n display: block;\n margin: 13px auto;\n width: 20px;\n height: 1px;\n background: black;\n }\n & .ec-secHeading__ja{\n display: block;\n margin-bottom: 30px;\n font-size: 12px;\n font-weight: normal;\n letter-spacing: .15em;\n vertical-align: 2px;\n }\n}","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n\n/*\nトピック(アイテム2列)\n\nトップページで使用されているトピックのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.5.1\n*/\n\n.ec-topicRole {\n padding: 40px 0;\n background: #F8F8F8;\n\n @include media_desktop {\n padding: 60px 0;\n }\n\n & &__list {\n display: flex;\n flex-wrap: wrap;\n\n @include media_desktop {\n flex-wrap: nowrap;\n }\n\n }\n & &__listItem {\n margin-bottom: 20px;\n width: 100%;\n height: auto;\n\n @include media_desktop {\n width: calc(100% / 2);\n\n &:not(:last-of-type){\n margin-right: 30px;\n }\n }\n\n }\n & &__listItemTitle {\n margin-top: .5em;\n font-size: 14px;\n color: black;\n\n @include media_desktop {\n margin-top: 1em;\n }\n }\n\n}","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n\n/*\nカテゴリ(アイテム4列 スマホの時は2列)\n\nトップページで使用されているアイテムリストのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.6.1\n*/\n\n.ec-newItemRole {\n padding: 40px 0;\n\n @include media_desktop {\n padding: 60px 0;\n }\n\n & &__list {\n display: flex;\n flex-wrap: wrap;\n\n @include media_desktop {\n flex-wrap: nowrap;\n }\n\n }\n & &__listItem {\n margin-bottom: 4%;\n width: 48%;\n height: auto;\n\n\n @include media_desktop {\n margin-bottom: 15px;\n width: calc(100% / 4);\n\n &:not(:last-of-type){\n margin-right: 30px;\n }\n }\n\n &:nth-child(odd){\n margin-right: 4%;\n\n @include media_desktop {\n margin-right: 30px;\n }\n }\n }\n & &__listItemHeading {\n margin-top: calc(45% - 20px);\n }\n & &__listItemTitle {\n margin: 8px 0;\n font-size: 14px;\n font-weight: bold;\n color: black;\n\n @include media_desktop {\n margin: 20px 0 10px;\n }\n }\n\n & &__listItemPrice {\n font-size: 12px;\n color: black;\n\n }\n\n}","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n\n/*\nカテゴリ(アイテム3列)\n\nトップページで使用されているカテゴリのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.7.1\n*/\n\n.ec-categoryRole {\n padding: 40px 0;\n color: black;\n background: #F8F8F8;\n\n @include media_desktop {\n padding: 60px 0;\n }\n\n & &__list {\n display: flex;\n flex-wrap: wrap;\n\n @include media_desktop {\n flex-wrap: nowrap;\n }\n\n }\n & &__listItem {\n margin-bottom: 20px;\n width: 100%;\n height: auto;\n\n @include media_desktop {\n width: calc(100% / 3);\n\n &:not(:last-of-type){\n margin-right: 30px;\n }\n }\n\n }\n\n}","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n\n/*\n見出し\n\nトップページで使用されている新着情報のスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.8.1\n*/\n\n.ec-newsRole {\n padding: 40px 0 0;\n\n @include media_desktop {\n padding: 60px 0 0;\n }\n\n & &__news {\n\n box-sizing: border-box;\n\n @include media_desktop {\n border: 16px solid #F8F8F8;\n padding: 20px 30px;\n }\n }\n & &__newsItem {\n width: 100%;\n\n &:not(:last-of-type){\n border-bottom: 1px solid #ccc;\n }\n\n &:last-of-type {\n margin-bottom: 20px;\n\n @include media_desktop {\n margin-bottom: 0;\n }\n }\n\n\n @include media_desktop {\n\n padding: 20px 0;\n }\n }\n & &__newsHeading {\n cursor: pointer;\n\n @include media_desktop {\n display: flex;\n }\n\n }\n & &__newsDate {\n display: block;\n margin: 15px 0 5px;\n font-size: 12px;\n color: black;\n\n @include media_desktop {\n display: inline-block;\n margin: 0;\n min-width: 120px;\n font-size: 14px;\n }\n\n }\n & &__newsColumn {\n display: flex;\n\n @include media_desktop {\n display: inline-flex;\n min-width: calc(100% - 120px);\n }\n }\n\n & &__newsTitle {\n display: inline-block;\n margin-bottom: 10px;\n width: 90%;\n font-size: 14px;\n font-weight: bold;\n color: #7D7D7D;\n line-height: 1.6;\n\n @include media_desktop {\n margin-bottom: 0;\n line-height: 1.8;\n }\n\n }\n & &__newsClose {\n display: inline-block;\n width: 10%;\n position: relative;\n\n }\n & &__newsCloseBtn {\n display: inline-block;\n margin-left: auto;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n color: white;\n text-align: center;\n background: black;\n cursor: pointer;\n position: absolute;\n right: 5px;\n }\n & &__newsDescription {\n display: none;\n margin: 0 0 10px;\n font-size: 14px;\n line-height: 1.4;\n overflow: hidden;\n\n @include media_desktop {\n margin: 20px 0 0;\n line-height: 1.8;\n }\n\n a {\n color: #0092C4;\n }\n }\n &__newsItem.is_active &__newsDescription{\n margin: 0 0 10px;\n\n @include media_desktop {\n margin: 20px 0 0;\n }\n }\n &__newsItem.is_active &__newsCloseBtn i {\n display: inline-block;\n transform: rotateX(180deg) translateY(2px);\n\n }\n\n}","@import \"../mixins/media\";\n/*\n検索ラベル\n\n商品一覧 ヘッダー部 に関する Project コンポーネントを定義します。\n\nex [商品一覧 ヘッダー部](http://demo3.ec-cube.net/products/list)\n\nMarkup:\ninclude /assets/tmpl/elements/13.1.searchnav.pug\n+ec-searchnavRole__topicpath\n+ec-searchnavRole__info\n\nStyleguide 13.1\n\n*/\n.ec-searchnavRole{\n margin-bottom: 0;\n padding: 0;\n @include media_desktop {\n @include container;\n }\n & &__infos{\n @include container;\n display: flex;\n border-top: 0;\n margin-bottom: 16px;\n padding-top: 5px;\n flex-direction:column;\n @include media_desktop {\n padding-left: 0;\n padding-right: 0;\n border-top: 1px solid #ccc;\n padding-top: 16px;\n flex-direction:row;\n }\n }\n\n & &__counter{\n margin-bottom: 16px;\n width: 100%;\n @include media_desktop {\n margin-bottom: 0;\n width: 50%;\n }\n }\n\n & &__actions{\n text-align: right;\n width: 100%;\n @include media_desktop {\n width: 50%;\n }\n }\n\n\n}","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n/*\n商品一覧\n\n商品一覧 に関する Project コンポーネントを定義します。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGrid\n\nStyleguide 13.2\n\n*/\n.ec-shelfRole{\n @include container;\n}\n\n/*\n商品一覧グリッド\n\n商品一覧 で使用するグリッドコンポーネントです。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGrid\n\nStyleguide 13.2.1\n\n*/\n.ec-shelfGrid{\n @include reset_link;\n display: flex;\n margin-left: 0;\n margin-right: 0;\n flex-wrap: wrap;\n padding: 0;\n list-style: none;\n\n @include media_desktop {\n margin-left: -16px;\n margin-right: -16px;\n }\n & &__item{\n margin-bottom: 36px;\n width: 50%;\n display: flex;\n flex-direction: column;\n &-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center;\n @include media_desktop() {\n height: 250px;\n }\n }\n img{\n width: auto;\n max-height: 100%;\n }\n @include media_desktop(){\n padding: 0 16px;\n width: 25%;\n }\n\n .ec-productRole__btn {\n margin-top: auto;\n margin-bottom: 15px;\n }\n }\n & &__item:nth-child(odd){\n padding-right: 8px;\n @include media_desktop(){\n padding: 0 16px;\n }\n }\n & &__item:nth-child(even){\n padding-left: 8px;\n @include media_desktop(){\n padding: 0 16px;\n }\n }\n & &__title {\n margin-bottom: 7px;\n }\n & &__plice {\n font-weight: bold;\n }\n}\n\n/*\n13.2.2 商品一覧グリッド(中央寄せ)\n\n商品一覧 で使用するグリッドコンポーネントです。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n商品のあまりはセンタリングされ、中央に表示されます。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGridCenter\n\nStyleguide 13.2.2\n\n*/\n.ec-shelfGridCenter{\n @include reset_link;\n display: flex;\n margin-left: 0;\n margin-right: 0;\n flex-wrap: wrap;\n padding: 0;\n list-style: none;\n justify-content: center;\n\n @include media_desktop {\n margin-left: -16px;\n margin-right: -16px;\n }\n & &__item{\n margin-bottom: 36px;\n width: 50%;\n &-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center;\n @include media_desktop() {\n height: 250px;\n }\n }\n img{\n width: auto;\n max-height: 100%;\n }\n @include media_desktop(){\n padding: 0 16px;\n width: 25%;\n }\n\n .ec-productRole__btn {\n margin-top: auto;\n padding-top: 1em;\n }\n }\n & &__item:nth-child(odd){\n padding-right: 8px;\n @include media_desktop(){\n padding: 0 16px;\n }\n }\n & &__item:nth-child(even){\n padding-left: 8px;\n @include media_desktop(){\n padding: 0 16px;\n }\n }\n & &__title {\n margin-bottom: 7px;\n }\n & &__plice {\n font-weight: bold;\n }\n}\n","\n/*\n商品一覧フッター\n\n商品一覧 フッター に関する Project コンポーネントを定義します。\n\nex [商品一覧 ページャ部](http://demo3.ec-cube.net/products/list)\n\nMarkup:\ninclude /assets/tmpl/elements/13.3.pager.pug\n+ec-pagerRole\n\nStyleguide 13.3\n\n*/\n.ec-pagerRole{\n\n}\n\n","@import \"../mixins/media\";\n\n/*\nカート追加モーダル\n\nカート追加モーダルに関する Project コンポーネントを定義します。\n\nex [商品一覧、商品詳細](http://demo3.ec-cube.net/products/list)\n\n+ec-modal\n\nStyleguide 13.4\n\n*/\n\n.ec-modal {\n\n .checkbox {\n display: none;\n }\n\n .ec-modal-overlay {\n opacity: 0;\n transition: all 0.3s ease;\n width: 100%;\n height: 100%;\n position: fixed;\n top: 0;\n left: 0;\n z-index: -100;\n transform: scale(1);\n display: flex;\n background-color: rgba(0, 0, 0, 0.3);\n }\n\n .ec-modal-wrap {\n background-color: #fff;\n border: 1px solid #333;\n width: 90%;\n margin: 20px;\n padding: 40px 5px;\n border-radius: 2px;\n transition: all 0.5s ease;\n -ms-flex-item-align: center;\n align-self: center;\n\n .ec-modal-box {\n text-align: center;\n }\n\n .ec-modal-box div {\n margin-top: 20px;\n }\n\n @include media_desktop {\n & {\n padding: 40px 10px;\n width: 50%;\n margin: 20px auto;\n }\n }\n\n &.small {\n width: 30%;\n }\n\n &.full {\n width: 100%;\n height: 100%;\n }\n }\n\n .ec-modal-overlay {\n .ec-modal-close {\n position: absolute;\n right: 20px;\n top: 10px;\n font-size: 20px;\n height: 30px;\n width: 20px;\n\n &:hover {\n cursor: pointer;\n color: #4b5361;\n }\n }\n }\n\n .ec-modal-overlay-close {\n width: 100%;\n height: 100%;\n position: fixed;\n left: 0;\n top: 0;\n z-index: -100;\n }\n\n input:checked {\n ~ .ec-modal-overlay-close {\n z-index: 9998;\n }\n\n ~ .ec-modal-overlay {\n transform: scale(1);\n opacity: 1;\n z-index: 9997;\n overflow: auto;\n }\n\n ~ .ec-modal-overlay .ec-modal-wrap {\n transform: translateY(0);\n z-index: 9999;\n }\n }\n}\n\n","@import \"../mixins/media\";\n\n/*\n商品詳細\n\n商品詳細ページに関する Project コンポーネントを定義します。\n\nex [商品詳細ページ](http://demo3.ec-cube.net/products/detail/18)\n\n\nMarkup:\ninclude /assets/tmpl/elements/14.1.product.pug\n+ec-productSimpleRole\n\nStyleguide 14.1\n*/\n.ec-productRole {\n @include container;\n & &__img {\n margin-right: 0;\n margin-bottom: 20px;\n @include media_desktop {\n margin-right: 16px;\n margin-bottom: 0;\n }\n }\n & &__profile {\n margin-left: 0;\n @include media_desktop {\n margin-left: 16px;\n }\n }\n & &__title {\n .ec-headingTitle {\n font-size: 20px;\n @include media_desktop {\n font-size: 32px;\n }\n }\n }\n & &__tags {\n margin-top: 16px;\n padding: 0;\n padding-bottom: 16px;\n border-bottom: 1px dotted #ccc;\n }\n & &__tag {\n display: inline-block;\n padding: 2px 5px;\n list-style: none;\n font-size: 80%;\n color: #525263;\n border: solid 1px #D7DADD;\n border-radius: 3px;\n background-color: #F5F7F8;\n }\n & &__priceRegular {\n padding-top: 14px\n }\n & &__priceRegularTax {\n margin-left: 5px;\n font-size: 12px;\n }\n & &__price {\n color: #DE5D50;\n font-size: 28px;\n padding: 0;\n border-bottom: 0;\n @include media_desktop {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc;\n }\n }\n & &__code {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc;\n }\n & &__category {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc;\n a {\n color: #33A8D0;\n }\n ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n }\n & &__actions {\n padding: 14px 0;\n .ec-select {\n select {\n height: 40px;\n max-width: 100%;\n min-width: 100%;\n @include media_desktop {\n min-width: 350px;\n max-width: 350px;\n }\n }\n }\n }\n & &__btn {\n width: 100%;\n margin-bottom: 10px;\n @include media_desktop {\n width: 60%;\n margin-bottom: 16px;\n min-width: 350px;\n }\n }\n & &__description {\n margin-bottom: 16px;\n }\n\n}\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n\n/*\nカート\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [カートページ](http://demo3.ec-cube.net/shopping)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n+ec-cartRole\n\nStyleguide 15.1\n\n*/\n.ec-cartRole{\n @include container;\n &::before{\n display: none;\n }\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n\n & &__progress{\n width: 100%;\n text-align: center;\n }\n & &__error{\n width: 100%;\n text-align: center;\n .ec-alert-warning {\n max-width: 80%;\n display: inline-block;\n }\n }\n & &__totalText{\n margin-bottom: 0;\n padding: 16px 0 6px;\n width: 100%;\n text-align: center;\n font-weight: normal;\n @include media_desktop {\n margin-bottom: 30px;\n padding: 0;\n }\n }\n & &__cart{\n margin: 0;\n width: 100%;\n @include media_desktop {\n margin: 0 10%;\n }\n\n }\n & &__actions{\n text-align: right;\n width: 100%;\n @include media_desktop {\n width: 20%;\n margin-right: 10%;\n }\n }\n & &__total{\n padding: 15px 0 30px ;\n font-weight: bold;\n font-size: 16px;\n }\n & &__totalAmount{\n margin-left: 30px;\n color: #de5d50;\n font-size: 16px;\n @include media_desktop {\n font-size: 24px;\n }\n }\n\n .ec-blockBtn--action {\n margin-bottom: 10px;\n }\n}\n\n\n/*\nカート商品表示枠(テーブルヘッダ)\n\nカート内の商品をを表示するテーブル枠です。\n\nex [カートページ テーブル部分(カート内に商品がある状態でアクセス)](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n+ec-cartTable\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 15.1.2\n*/\n.ec-cartTable{\n display: table;\n border-top: 1px dotted #ccc;\n width: 100%;\n @include media_desktop {\n border-top: none;\n }\n}\n\n\n/*\nカート商品表示枠(テーブルヘッダ)\n\nカート内の商品を表示するテーブルのヘッダです。\nスマホでは非表示となります。\n\nex [カートページ カートテーブルヘッダ部分(カート内に商品がある状態でアクセス)](http://demo3.ec-cube.net/cart)\n\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartHeader\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 15.1.3\n*/\n.ec-cartHeader{\n display: none;\n width: 100%;\n background: #F4F3F0;\n @include media_desktop {\n display: table-row;\n }\n & &__label{\n display: table-cell;\n padding: 16px;\n text-align: center;\n background: #F4F3F0;\n overflow-x: hidden;\n font-weight: bold;\n }\n}\n.ec-cartCompleteRole {\n @include container;\n}\n/*\nカート内商品\n\nカート内のアイテムを表示するテーブル行です。\nスマホでは非表示となります。\n\nex [カートページ テーブル部分](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartRow\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 15.1.4\n*/\n\n.ec-cartRow{\n display: table-row;\n & &__delColumn{\n border-bottom: 1px dotted #ccc;\n text-align: center;\n display: table-cell;\n width: 14%;\n vertical-align: middle;\n @include media_desktop{\n width: 8.3333333%;\n }\n .ec-icon {\n img {\n width: 1.5em;\n height: 1.5em;\n @include media_desktop {\n width: 1em;\n height: 1em;\n }\n }\n }\n }\n & &__contentColumn{\n border-bottom: 1px dotted #ccc;\n padding: 10px 0;\n display: table;\n @include media_desktop {\n display: table-cell;\n }\n }\n & &__img{\n display: table-cell;\n width: 40%;\n vertical-align: middle;\n padding-right: 10px;\n @include media_desktop {\n display: inline-block;\n min-width: 80px;\n max-width: 100px;\n padding-right: 0;\n }\n }\n & &__summary{\n display: table-cell;\n margin-left: 5px;\n font-weight: bold;\n vertical-align: middle;\n width: 46%;\n @include media_desktop {\n display: inline-block;\n margin-left: 20px;\n vertical-align: middle;\n }\n .ec-cartRow__name {\n margin-bottom: 5px;\n }\n .ec-cartRow__sutbtotalSP {\n display: block;\n font-weight: normal;\n @include media_desktop {\n display: none;\n }\n }\n }\n & &__amountColumn{\n display: table-cell;\n border-bottom: 1px dotted #ccc;\n vertical-align: middle;\n text-align: center;\n width: 20%;\n @include media_desktop {\n width: 16.66666667%;\n }\n\n .ec-cartRow__amount {\n display: none;\n margin-bottom: 10px;\n @include media_desktop {\n display: block;\n }\n }\n .ec-cartRow__amountSP {\n display: block;\n margin-bottom: 10px;\n @include media_desktop {\n display: none;\n }\n }\n\n .ec-cartRow__amountUpDown {\n display: flex;\n justify-content: center;\n @include media_desktop {\n display: block;\n }\n }\n\n .ec-cartRow__amountUpButton {\n margin: 0 2px;\n display: inline-block;\n border: 2px solid #c9c9c9;\n border-radius: 50%;\n width: 30px;\n min-width: 30px;\n max-width: 30px;\n height: 30px;\n cursor: pointer;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center;\n background: #fff;\n\n\n .ec-cartRow__amountUpButton__icon {\n img {\n display: block;\n margin-left: -0.4em;\n width: .8em;\n height: .8em;\n position: absolute;\n top: 28%;\n left: 50%;\n }\n }\n }\n .ec-cartRow__amountDownButton {\n margin: 0 2px;\n display: inline-block;\n border: 2px solid #c9c9c9;\n border-radius: 50%;\n width: 30px;\n min-width: 30px;\n max-width: 30px;\n height: 30px;\n cursor: pointer;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center;\n background: #fff;\n\n .ec-cartRow__amountDownButton__icon {\n img {\n display: block;\n margin-left: -0.4em;\n width: .8em;\n height: .8em;\n position: absolute;\n top: 28%;\n left: 50%;\n }\n }\n }\n\n .ec-cartRow__amountDownButtonDisabled {\n @extend .ec-cartRow__amountDownButton;\n cursor: default;\n }\n }\n & &__subtotalColumn{\n display: none;\n border-bottom: 1px dotted #ccc;\n text-align: right;\n width: 16.66666667%;\n @include media_desktop {\n display: table-cell;\n }\n }\n}\n\n/*\nカート内商品(商品が1の場合)\n\n商品が1の場合はカート商品を減らす「-」ボタンの無効化状態になります。\n\nex [カートページ テーブル部分](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartRowOnly\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 15.1.5\n*/\n\n.ec-cartRow{\n & &__amountColumn{\n .ec-cartRow__amountDownButtonDisabled {\n @extend .ec-cartRow__amountDownButton;\n cursor: default;\n }\n }\n}\n\n/*\nアラート\n\nカート内の商品に問題があることを示す警告メッセージです。\n\nex [マイページ カート](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartRole\n .ec-cartRole__cart\n +ec-alert-warning\n\nStyleguide 15.1.6\n*/\n\n.ec-alert-warning {\n width: 100%;\n padding: 10px;\n text-align: center;\n background: #F99;\n margin-bottom: 20px;\n\n\n & &__icon {\n display: inline-block;\n margin-right: 1rem;\n width: 20px;\n height: 20px;\n color: #fff;\n fill: #fff;\n vertical-align: top;\n }\n & &__text {\n display: inline-block;\n font-size: 16px;\n font-weight: bold;\n color: #fff;\n position: relative;\n }\n}\n\n\n\n\n/*\nアラート(空)\n\nカートが空であることを示す警告メッセージです。\n\nex [マイページ カート](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-off3Grid\n .ec-off3Grid__cell\n +ec-alert-warningEnpty\n\nStyleguide 15.1.7\n*/","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n@import \"../mixins/projects\";\n/*\n注文内容確認\n\nカート内 注文内容確認に関する Project コンポーネントを定義します。\n\nex [マイページ 注文詳細](http://demo3.ec-cube.net/shopping)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderRole\n\nStyleguide 15.2\n*/\n.ec-orderRole{\n @include container;\n display: flex;\n flex-direction: column;\n margin-top: 0;\n @include media_desktop {\n margin-top: 20px;\n flex-direction: row;\n }\n .ec-inlineBtn {\n font-weight: normal;\n }\n & &__detail{\n padding: 0;\n width: 100%;\n @include media_desktop {\n padding: 0 16px;\n width: 66.66666%;\n }\n }\n & &__summary{\n width: 100%;\n .ec-inlineBtn {\n display: inline-block;\n }\n @include media_desktop {\n width: 33.33333%;\n padding: 0 16px;\n .ec-inlineBtn {\n display: none;\n }\n }\n }\n .ec-borderedList {\n margin-bottom: 20px;\n border-top: 1px dotted #ccc;\n @include media_desktop {\n border-top: none;\n }\n }\n\n}\n\n/*\n注文履歴詳細 オーダ情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ オーダ情報](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderInfo\n\nStyleguide 15.2.1\n*/\n.ec-orderOrder{\n margin-bottom: 30px;\n & &__items{\n @include borderBottom;\n @include borderTop;\n }\n}\n\n/*\n注文履歴詳細 お客様情報\n\nマイページ 注文詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ オーダ情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderAccount\n\nStyleguide 15.2.2\n*/\n.ec-orderAccount{\n margin-bottom: 30px;\n p {\n margin-bottom: 0;\n }\n @include clearfix;\n & &__change{\n display: inline-block;\n margin-left: 10px;\n float: right;\n }\n & &__account {\n margin-bottom: 16px;\n }\n\n}\n\n\n/*\n注文詳細 配送情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 配送情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderDelivery\n\nStyleguide 15.2.3\n*/\n.ec-orderDelivery{\n & &__title{\n padding: 16px 0 17px;\n font-weight: bold;\n font-size: 18px;\n position: relative;\n }\n & &__change{\n display: inline-block;\n position: absolute;\n right: 0;\n top:0;\n }\n & &__items{\n @include borderBottom;\n @include borderTop;\n }\n & &__address{\n margin: 10px 0 18px ;\n p{\n margin:0;\n }\n }\n & &__edit{\n }\n\n}\n\n\n/*\n注文履歴詳細 支払情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 支払情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-orderRole\n .ec-orderPayment\n .ec-rectHeading\n h2 お支払方法\n p 支払方法: 郵便振替\n\nStyleguide 15.2.4\n*/\n.ec-orderPayment{\n\n}\n\n\n/*\n注文履歴詳細 お問い合わせ\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ お問い合わせ(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-orderRole\n .ec-orderConfirm\n .ec-rectHeading\n h2 お問い合わせ\n p 記載なし\n\nStyleguide 15.2.5\n*/\n.ec-orderConfirm{\n margin-bottom: 20px;\n @include media_desktop {\n margin-bottom: 0;\n }\n .ec-input {\n textarea {\n height: 96px;\n }\n }\n\n}\n\n\n/*\nお届け先の複数指定\n\nお届け先の複数指定に関するコンポーネントを定義します。\n\nex [マイページ お届け先の複数指定](http://demo3.ec-cube.net/shopping/shipping_multiple)\n(商品購入画面 → 「お届け先を追加する」を押下)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderAddAddress\n\nStyleguide 15.2.6\n*/\n.ec-AddAddress {\n padding: 0 10px;\n @include media_desktop {\n margin: 0 10%;\n }\n\n & &__info {\n margin-bottom: 32px;\n text-align: center;\n font-size: 16px;\n }\n & &__add {\n border-top: 1px solid #f4f4f4;\n padding-top: 20px;\n margin-bottom: 20px;\n }\n & &__item {\n display: table;\n padding:16px;\n background: #f4f4f4;\n margin-bottom: 16px;\n }\n & &__itemThumb {\n display: table-cell;\n min-width: 160px;\n width: 20%;\n img {\n width: 100%;\n }\n }\n & &__itemtContent {\n display: table-cell;\n vertical-align: middle;\n padding-left: 16px;\n font-size:16px;\n }\n & &__itemtTitle {\n font-weight: bold;\n margin-bottom: 10px;\n }\n & &__itemtSize {\n margin-bottom: 10px;\n }\n & &__itemtPrice {\n\n }\n & &__itemtNumber {\n\n }\n & &__select {\n margin-bottom: 5px;\n }\n & &__selectAddress {\n display: inline-block;\n label {\n font-size: 16px;\n font-weight: normal;\n }\n select {\n min-width: 100%;\n @include media_desktop {\n min-width: 350px;\n }\n }\n }\n & &__selectNumber {\n display: inline-block;\n margin-left: 30px;\n label {\n font-size: 16px;\n font-weight: normal;\n }\n input {\n display: inline-block;\n margin-left: 10px;\n width: 80px;\n }\n }\n & &__actions {\n .ec-blockBtn--action {\n margin-bottom: 8px;\n }\n }\n & &__new {\n margin-bottom: 20px;\n }\n}\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n\n/*\n注文履歴一覧\n\nマイページ 注文履歴部に関する Project コンポーネントを定義します。\n\nex [マイページ 注文履歴一覧](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyRole\n\nStyleguide 16.1\n*/\n.ec-historyRole{\n & &__contents{\n padding-top: 1em;\n padding-bottom: 16px;\n border-top: 1px solid #ccc;\n display: flex;\n flex-direction: column;\n color: #525263;\n @include media_desktop {\n flex-direction: row;\n }\n }\n & &__header{\n width: 100%;\n @include media_desktop {\n width: 33.3333%;\n }\n }\n & &__detail{\n @include borderTop;\n width: 100%;\n\n .ec-imageGrid:nth-of-type(1) {\n border-top: none;\n }\n\n .ec-historyRole__detailTitle {\n margin-bottom: 8px;\n font-size: 1.6rem;\n font-weight: bold;\n }\n\n .ec-historyRole__detailPrice {\n margin-bottom: 8px;\n font-size: 1.6rem;\n font-weight: bold;\n }\n\n @include media_desktop {\n width: 66.6666%;\n border-top: none;\n }\n }\n}\n\n/*\n注文履歴一覧 規格\n\nマイページ 注文履歴内アイテムの規格を定義します。\n\nex [マイページ 注文履歴一覧](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyRole-option\n\nStyleguide 16.1.1\n*/\n\n.ec-historyRole{\n & &__detail {\n .ec-historyRole__detailOption {\n display: inline-block;\n margin-bottom: 8px;\n margin-right: .5rem;\n font-size: 1.6rem;\n }\n .ec-historyRole__detailOption::after {\n display: inline-block;\n padding-left: .5rem;\n content: \"/\";\n font-weight: bold;\n }\n }\n}\n\n/*\n注文履歴一覧ヘッダ\n\n注文履歴一覧で使用するヘッダのコンポーネントを定義します。\n\nex [マイページ 注文履歴一覧ヘッダ](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyHeader\np hofe\n\nStyleguide 16.1.2\n*/\n\n\n.ec-historyListHeader{\n & &__date{\n font-weight: bold;\n font-size: 16px;\n @include media_desktop {\n font-weight: bold;\n font-size: 20px;\n }\n }\n & &__action{\n margin : 16px 0;\n a {\n font-size: 12px;\n font-weight: normal;\n @include media_desktop {\n font-size: 14px;\n }\n }\n }\n}","@import \"../mixins/projects\";\n@import \"../mixins/media\";\n\n/*\n注文履歴詳細\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 注文詳細](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailRole\n\nStyleguide 16.2\n*/\n\n\n/*\n注文履歴詳細 メール履歴\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ メール履歴](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailMail\n\nStyleguide 16.2.5\n*/\n.ec-orderMails{\n & &__item{\n padding-bottom: 10px;\n @include borderBottom();\n }\n & &__time{\n margin: 0;\n }\n & &__body{\n display: none;\n }\n}\n\n\n\n\n/*\n注文履歴詳細 メール履歴個別\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ メール履歴個別](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailMailHistory\n\nStyleguide 16.2.6\n*/\n.ec-orderMail{\n padding-bottom: 10px;\n @include borderBottom();\n margin-bottom: 16px;\n & &__time{\n margin: 0;\n }\n & &__body{\n display: none;\n }\n & &__time {\n margin-bottom: 4px;\n }\n & &__link {\n a {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer;\n }\n a:hover {\n color: #33A8D0;\n }\n margin-bottom: 4px;\n }\n & &__close{\n a {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer;\n }\n a:hover {\n color: #33A8D0;\n }\n }\n}\n","/*\n住所一覧\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [マイページ内 お届け先編集](http://demo3.ec-cube.net/mypage/delivery)\n\nMarkup:\ninclude /assets/tmpl/elements/17.1.address.pug\n+ec-addressList\n+ec-addressRole\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 17.1\n\n*/\n.ec-addressRole{\n & &__item{\n border-top: 1px dotted #ccc;\n }\n & &__actions{\n margin-top: 32px;\n padding-bottom:20px;\n border-bottom: 1px dotted #ccc;\n }\n}\n.ec-addressList{\n & &__item{\n display: table;\n width: 100%;\n position: relative;\n border-bottom: 1px dotted #ccc;\n }\n & &__remove{\n //display: table-cell;\n vertical-align: middle;\n padding: 16px;\n text-align: center;\n .ec-icon img {\n width: 1em;\n height: 1em;\n }\n }\n & &__address{\n display: table-cell;\n vertical-align: middle;\n padding: 16px;\n margin-right:4em;\n width: 80%;\n }\n & &__action{\n position: relative;\n vertical-align: middle;\n text-align: right;\n top: 27px;\n padding-right: 10px;\n }\n}","@import \"../mixins/media\";\n/*\nパスワードリセット\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [パスワードリセット画面](http://demo3.ec-cube.net/forgot)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/18.1.password.pug\n+ec-passwordRole\n\nStyleguide 18.1\n\n*/\n.ec-forgotRole{\n @include container;\n & &__intro {\n font-size: 16px;\n }\n & &__form {\n margin-bottom: 16px;\n }\n\n}","@import \"../mixins/media\";\n/*\n会員登録\n\n新規会員登録 に関する Project コンポーネントを定義します。\n\nex [新規会員登録画面 会員登録](http://demo3.ec-cube.net/entry)\n\nMarkup:\ninclude /assets/tmpl/elements/19.1.register.pug\n+ec-registerRole\n\nStyleguide 19.1\n\n*/\n.ec-registerRole{\n @include container;\n & &__actions {\n padding-top:20px;\n text-align: center;\n @include media_desktop {\n text-align: left;\n }\n p {\n margin-bottom: 16px;\n }\n }\n .ec-blockBtn--action {\n margin-bottom: 16px;\n }\n}\n.ec-registerCompleteRole {\n @include container;\n}","@import \"../mixins/media\";\n/*\nお問い合わせ\n\nお問い合わせ に関する Project コンポーネントを定義します。\n\nex [お問い合わせ](http://demo3.ec-cube.net/contact)\n\nMarkup:\ninclude /assets/tmpl/elements/19.2.contact.pug\n+ec-contactRole\n\nStyleguide 19.2\n\n*/\n.ec-contactRole{\n @include container;\n & &__actions {\n padding-top:20px;\n }\n p {\n margin:16px 0;\n }\n\n}\n.ec-contactConfirmRole {\n @include container;\n & &__actions {\n padding-top:20px;\n }\n .ec-blockBtn--action {\n margin-bottom: 16px;\n }\n}\n.ec-contactCompleteRole {\n @include container;\n}","@import \"../mixins/media\";\n/*\nお客様情報の入力\n\nログインせずゲストとして商品を購入する際の、お客様情報の入力 に関する Project コンポーネントを定義します。\n\nex [カートSTEP2 お客様情報の入力(ゲスト購入)](http://demo3.ec-cube.net/shopping/nonmember)\n\nMarkup:\ninclude /assets/tmpl/elements/19.3.customer.pug\n+ec-customerRole\nhoge\n\nStyleguide 19.3\n\n*/\n.ec-customerRole{\n @include container;\n & &__actions {\n padding-top:20px;\n }\n .ec-blockBtn--action {\n margin-bottom: 10px;\n @include media_desktop {\n margin-bottom: 16px;\n }\n }\n}\n\n.ec-contactConfirmRole {\n @include container;\n & &__actions {\n padding-top:20px;\n }\n .ec-blockBtn--action {\n margin-bottom: 16px;\n }\n}\n.ec-contactCompleteRole {\n @include container;\n}\n","@import \"../mixins/variables\";\n@import \"../mixins/media\";\n@import \"../mixins/animation\";\n/*\n404ページ\n\n404 エラー画面で使用するページコンポーネントです。\n\nex [404エラー画面](http://demo3.ec-cube.net/404)\n\nMarkup:\ninclude /assets/tmpl/elements/20.1.404.pug\n+ec-404Role\n\nStyleguide 20.1\n\n*/\n.ec-404Role{\n @include commonStyle();\n width: 100%;\n height: 100vh;\n background-color: #f2f2f2;\n text-align: center;\n box-sizing: border-box;\n & &__icon{\n img {\n width: 1em;\n height: 1em;\n }\n }\n & &__title{\n font-weight: bold;\n font-size: 25px;\n }\n\n}","@import \"../mixins/media\";\n/*\n退会手続き\n\n退会手続きで使用するページコンポーネントです。\n\nex [退会手続き](http://demo3.ec-cube.net/mypage/withdraw)\n\nMarkup:\ninclude /assets/tmpl/elements/21.1.withdraw.pug\n+ec-withdrawRole\n\nStyleguide 21.1\n\n*/\n.ec-withdrawRole{\n @include container;\n text-align: center;\n padding: 0 16px;\n & &__title{\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px;\n }\n & &__description{\n margin-bottom: 32px;\n font-size: 16px;\n }\n .ec-icon {\n img {\n width: 100px;\n height: 100px;\n }\n }\n}/*\n退会手続き実行確認\n\n退会手続き実行確認で使用するページコンポーネントです。\n\nex [退会手続き 退会手続きへボタン→押下](http://demo3.ec-cube.net/mypage/withdraw)\n\nMarkup:\ninclude /assets/tmpl/elements/21.1.withdraw.pug\n+ec-withdrawConfirm\n\nStyleguide 21.1.2\n\n*/\n.ec-withdrawConfirmRole {\n & &__cancel {\n margin-bottom: 20px;\n }\n & &__title{\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px;\n }\n & &__description{\n margin-bottom: 32px;\n font-size: 16px;\n }\n .ec-icon {\n img {\n width: 100px;\n height: 100px;\n }\n }\n}","@import \"../mixins/media\";\n/*\n会員情報編集完了\n\n会員情報編集完了で使用するページコンポーネントです。\n\nex [会員情報編集完了](http://demo3.ec-cube.net/mypage/change_complete)\n\nMarkup:\ninclude /assets/tmpl/elements/22.1.editComplete.pug\n+ec-userEditCompleteRole\n\nStyleguide 22.1\n\n*/\n.ec-userEditCompleteRole{\n @include container;\n text-align: center;\n padding: 0 16px;\n & &__title{\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px;\n @include media_desktop(){\n font-size: 32px;\n }\n }\n & &__description{\n margin-bottom: 32px;\n font-size: 16px;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["style.css","node_modules/normalize.css/normalize.css","style.scss","mixins/_media.scss","component/_1.1.heading.scss","mixins/_variables.scss","component/_1.2.typo.scss","component/_1.3.list.scss","component/_2.1.buttonsize.scss","mixins/_btn.scss","../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_buttons.scss","../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_variables.scss","../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_tab-focus.scss","../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss","../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_opacity.scss","","component/_2.2.closebutton.scss","component/_2.3.otherbutton.scss","component/_3.1.inputText.scss","mixins/_forms.scss","../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_forms.scss","mixins/_projects.scss","component/_3.2.inputMisc.scss","component/_3.3.form.scss","component/_4.1.icon.scss","component/_5.1.grid.scss","component/_5.2.layout.scss","component/_6.1.login.scss","component/_7.1.itembanner.scss","component/_7.2.search.scss","mixins/_animation.scss","component/_7.3.cart.scss","mixins/_clearfix.scss","component/_8.1.info.scss","component/_9.1.mypage.scss","project/_11.1.role.scss","project/_11.2.header.scss","project/_11.3.footer.scss","project/_12.1.slider.scss","project/_12.2.eyecatch.scss","project/_12.3.button.scss","project/_12.4.heading.scss","project/_12.5.topics.scss","project/_12.6.newItem.scss","project/_12.7.category.scss","project/_12.8.news.scss","project/_13.1.searchnav.scss","project/_13.2.shelf.scss","project/_13.3.pager.scss","project/_13.4.cartModal.scss","project/_14.1.product.scss","project/_15.1.cart.scss","project/_15.2.order.scss","project/_16.1.history.scss","project/_16.2.historyDetail.scss","project/_17.1.address.scss","project/_18.1.password.scss","project/_19.1.register.scss","project/_19.2.contact.scss","project/_19.3.customer.scss","project/_20.1.404.scss","project/_21.1.withdraw.scss","project/_22.1.editComplete.scss"],"names":[],"mappings":"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;;;;;;;;;;;;;;;EN5BE,2CAA0C;EAC1C,qBAAoB,EOiCnB;;ADNH;ECWE,eAAc;EACd,YAAW;EACX,aRsKyF;EQrKzF,kBR+C8B;EQ9C9B,gBRE4B;EQD5B,qBRamC;EQZnC,eRtCiD;EQuCjD,uBRwImC;EQvInC,uBAAsB;EACtB,uBR6ImC;EQ5InC,mBRsD6B;EQrD7B,yBAAwB;ENahB,iBMZgB;ENkIhB,yEMjIsE;EAqC5E,mBAAkB,EACnB;ECxCD;IACE,sBTsJoC;ISrJpC,WAAU;IPWJ,mFOduD,EAK9D;EF1BH;ILqEI,YF2GiC;IE1GjC,WAAU;IExGd,mEAAA,EFyGG;EACD;IAA0B,YFwGS,EExGQ;EKxE7C;ILyEkC,YFuGG,EEvGc;EMxCjD;IACE,UAAS;IACT,8BAA6B,EAC9B;EDpCH;;;;;;;;IC8CI,0BRjE+C;IQkE/C,WAAU;IJjFd,mEAAA,EIkFG;EDhDH;;;;;;;;ICoDI,oBRiJwC,EQhJzC;;ADrDH;ECWE,eAAc;EACd,YAAW;EACX,aRsKyF;EQrKzF,kBR+C8B;EQ9C9B,gBRE4B;EQD5B,qBRamC;EQZnC,eRtCiD;EQuCjD,uBRwImC;EQvInC,uBAAsB;EACtB,uBR6ImC;EQ5InC,mBRsD6B;EQrD7B,yBAAwB;ENahB,iBMZgB;ENkIhB,yEMjIsE;EAyC5E,mBAAkB,EACnB;EC5CD;IACE,sBTsJoC;ISrJpC,WAAU;IPWJ,mFOduD,EAK9D;EP0CD;IACE,YF2GiC;IE1GjC,WAAU;IExGd,mEAAA,EFyGG;EACD;IAA0B,YFwGS,EExGQ;EKxE7C;ILyEkC,YFuGG,EEvGc;EMxCjD;IACE,UAAS;IACT,8BAA6B,EAC9B;EDpCH;;;;;;;;IC8CI,0BRjE+C;IQkE/C,WAAU;IJjFd,mEAAA,EIkFG;EDhDH;;;;;;;;ICoDI,oBRiJwC,EQhJzC;;AAcD;EAxDA,eAAc;EACd,YAAW;EACX,aRsKyF;EQrKzF,kBR+C8B;EQ9C9B,gBRE4B;EQD5B,qBRamC;EQZnC,eRtCiD;EQuCjD,uBRwImC;EQvInC,uBAAsB;EACtB,uBR6ImC;EQ5InC,mBRsD6B;EQrD7B,yBAAwB;ENahB,iBMZgB;E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","file":"../style.css","sourcesContent":["@charset \"UTF-8\";\n@import url(/node_modules/normalize.css/normalize.css);\nbody {\n font-family: Roboto, \"游ゴシック\", YuGothic, \"Yu Gothic\", \"ヒラギノ角ゴ ProN W3\", \"Hiragino Kaku Gothic ProN\", Arial, \"メイリオ\", Meiryo, sans-serif;\n color: #525263;\n transition: z-index 0ms 5.28455ms;\n background: #f6f6f6;\n margin: 0; }\n\na {\n text-decoration: none; }\n\npre {\n background-color: transparent;\n border: none;\n padding: 16px 0; }\n\np {\n -webkit-margin-before: 0;\n -webkit-margin-after: 0; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n見出し\n\nページ内で見出しとして機能する要素のスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 1.1\n*/\n/*\n見出し\n\n商品紹介等で利用される、一般的な見出しのスタイルです。\n\nex [商品詳細ページ 商品見出し部分](http://demo3.ec-cube.net/products/detail/27)\n\nMarkup:\n.ec-headingTitle マトリョーシカ\n\nStyleguide 1.1.1\n*/\n.ec-headingTitle {\n margin: 0 0 8px;\n font-size: 32px;\n font-weight: normal;\n color: #525263; }\n\n/*\nページヘッダ\n\n各種ページで用いられるページヘッダのデザインです。\n\nex [利用規約ページ ページヘッダ部](http://demo3.ec-cube.net/help/agreement)\n\nMarkup:\n.ec-pageHeader\n h1 利用規約\n\nStyleguide 1.1.2\n*/\n.ec-pageHeader h1 {\n margin: 0 0 8px;\n border-bottom: 1px dotted #ccc;\n border-top: 1px solid #ccc;\n padding: 8px 0 12px;\n font-size: 16px;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-pageHeader h1 {\n border-top: none;\n border-bottom: 1px solid #ccc;\n margin: 10px 16px 48px;\n padding: 8px;\n font-size: 32px;\n font-weight: bold; } }\n\n/*\nサブ見出し\n\n利用規約など、文字主体のページで用いられるサブ見出しです。\n\nex [利用規約ページ サブ見出し部分](http://demo3.ec-cube.net/help/agreement)\n\nMarkup:\n.ec-heading 第1条 (会員)\n\nStyleguide 1.1.3\n*/\n.ec-heading {\n margin: 24px 0; }\n\n/*\nサブ見出し(太字)\n\n文字主体のページで用いられるサブ見出しの太字のスタイルです。\n\nex [プライバシーポリシー サブ見出し部分](http://demo3.ec-cube.net/help/privacy)\n\nMarkup:\n.ec-heading-bold 個人情報の定義\n\nStyleguide 1.1.4\n*/\n.ec-heading-bold {\n margin: 16px 0;\n font-size: 16px;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-heading-bold {\n font-size: 18px; } }\n\n/*\n背景付き見出し\n\nマイページ注文履歴等で用いられる背景付きの見出しです。\n\nex [ご注文履歴詳細 背景付き見出し部分](http://demo3.ec-cube.net/mypage/history/1063)\n\nMarkup:\n.ec-rectHeading\n h2 配送情報\n.ec-rectHeading\n h2 お支払について\n\nStyleguide 1.1.5\n*/\n.ec-rectHeading h1, .ec-rectHeading h2, .ec-rectHeading h3,\n.ec-rectHeading h4, .ec-rectHeading h5, .ec-rectHeading h6 {\n background: #F3F3F3;\n padding: 8px 12px;\n font-size: 20px;\n font-weight: bold; }\n\n/*\nメッセージ見出し\n\nユーザが行った操作に対する、完了報告やエラー表示のページで使用される見出しのスタイルです。\n\nex [注文完了 ログイン後、カートに商品を入れ注文完了まで行う](http://demo3.ec-cube.net/shopping/)\n\nMarkup:\n.ec-reportHeading\n h2 ご注文ありがとうございました\n\nStyleguide 1.1.6\n*/\n.ec-reportHeading {\n width: 100%;\n border-top: 1px dotted #ccc;\n margin: 20px 0 30px;\n padding: 0;\n text-align: center;\n font-size: 24px;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-reportHeading {\n border-top: 0;\n font-size: 32px; } }\n .ec-reportHeading h1, .ec-reportHeading h2, .ec-reportHeading h3,\n .ec-reportHeading h4, .ec-reportHeading h5, .ec-reportHeading h6, .ec-reportHeading p {\n font-weight: bold;\n font-size: 24px; }\n @media only screen and (min-width: 768px) {\n .ec-reportHeading h1, .ec-reportHeading h2, .ec-reportHeading h3,\n .ec-reportHeading h4, .ec-reportHeading h5, .ec-reportHeading h6, .ec-reportHeading p {\n font-size: 32px; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n文字装飾\n\n文字装飾をするためのスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 1.2\n*/\n/*\nテキストリンク\n\nテキストリンクのスタイルです。\n\nMarkup:\na(href=\"#\").ec-link さくらのクラウド\n\nStyleguide 1.2.1\n*/\n.ec-link {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer; }\n .ec-link:hover {\n color: #33A8D0;\n text-decoration: none; }\n\n/*\nテキスト(太字)\n\nテキストを太くするためのスタイルです。\n\nMarkup:\np.ec-font-bold この季節にぴったりな商品をご用意しました\n\nStyleguide 1.2.2\n*/\n.ec-font-bold {\n font-weight: bold; }\n\n/*\nテキスト(グレー)\n\nテキストをグレーにするためのスタイルです。\n\nMarkup:\np.ec-color-grey 青色が美しい職人が仕上げた吹きガラス\n\nStyleguide 1.2.3\n*/\n.ec-color-grey {\n color: #9a947e; }\n\n/*\nテキスト(赤)\n\nテキストを赤にするためのスタイルです。\n\nMarkup:\np.ec-color-red ¥ 2,728 税込\np.ec-color-accent ¥ 2,728 税込\n\nStyleguide 1.2.4\n*/\n.ec-color-red {\n color: #DE5D50; }\n\n.ec-color-accent {\n color: #DE5D50; }\n\n/*\nフォントサイズ\n\nフォントサイズを指定するためのスタイルです。\n\nMarkup:\n.ec-font-size-1 さわやかな日差しが過ごしやすい季節\n.ec-font-size-2 さわやかな日差しが過ごしやすい季節\n.ec-font-size-3 さわやかな日差しが過ごしやすい季節\n.ec-font-size-4 さわやかな日差しが過ごしやすい季節\n.ec-font-size-5 さわやかな日差しが過ごしやすい季節\n.ec-font-size-6 さわやかな日差しが過ごしやすい季節\n\n\nStyleguide 1.2.5\n*/\n.ec-font-size-1 {\n font-size: 12px; }\n\n.ec-font-size-2 {\n font-size: 14px; }\n\n.ec-font-size-3 {\n font-size: 16px; }\n\n.ec-font-size-4 {\n font-size: 20px; }\n\n.ec-font-size-5 {\n font-size: 32px; }\n\n.ec-font-size-6 {\n font-size: 40px; }\n\n/*\nテキスト水平位置\n\nテキストをセンタリングするためのスタイルです。\n\nMarkup:\np.ec-text-ac さわやかな日差しが過ごしやすい季節\n\nStyleguide 1.2.6\n*/\n.ec-text-ac {\n text-align: center; }\n\n/*\n価格テキスト\n\n価格を表示するテキストです。\n\n価格文字にスペースを取るほか、税込み等の表示を小さくする効果もあります。\n\nspanを用いたインライン要素として利用します。\n\nMarkup:\ndiv(style=\"color:#DE5D50;font-size:28px\")\n span.ec-price\n span.ec-price__unit ¥\n span.ec-price__price 1,280\n span.ec-price__tax 税込\n\nStyleguide 1.2.7\n*/\n.ec-price .ec-price__unit {\n font-size: 18px;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-price .ec-price__unit {\n font-size: 1em; } }\n\n.ec-price .ec-price__price {\n display: inline-block;\n padding: 0 .3em;\n font-size: 18px;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-price .ec-price__price {\n font-size: 1em; } }\n\n.ec-price .ec-price__tax {\n font-size: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-price .ec-price__tax {\n font-size: 0.57em; } }\n\n/*\nテキストの位置\n\nテキストや、入れ子にしたインライン要素を\n「左揃え」「中央揃え」「右揃え」に設定することができます。\n\nMarkup:\nh3 左揃え\np.text-left\n | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Incidunt praesentium repellat sapiente suscipit, unde veniam! Doloribus error, expedita id impedit iusto qui sint totam? Aspernatur error facere possimus quam quos?\nbr\nh3 中央揃え\np.text-center\n | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Incidunt praesentium repellat sapiente suscipit, unde veniam! Doloribus error, expedita id impedit iusto qui sint totam? Aspernatur error facere possimus quam quos?\nbr\nh3 右揃え\np.text-right\n | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Incidunt praesentium repellat sapiente suscipit, unde veniam! Doloribus error, expedita id impedit iusto qui sint totam? Aspernatur error facere possimus quam quos?\n\nStyleguide 1.2.8\n*/\n.text-left {\n text-align: left; }\n\n.text-center {\n text-align: center; }\n\n.text-right {\n text-align: right; }\n\n/*\nメッセージテキスト\n\nユーザが行った操作に対する、完了報告やエラー表示のページで使用されるテキストのスタイルです。\n\nex [注文完了 (ログイン後、カートに商品を入れ注文完了まで行う)](http://demo3.ec-cube.net/shopping/)\n\nMarkup:\n.ec-reportHeading\n h2 ご注文ありがとうございました\np.ec-reportDescription\n | ただいま、ご注文の確認メールをお送りさせていただきました。\n br\n | 万一、ご確認メールが届かない場合は、トラブルの可能性もありますので大変お手数ではございますがもう一度お問い合わせいただくか、お電話にてお問い合わせくださいませ。\n br\n | 今後ともご愛顧賜りますようよろしくお願い申し上げます。\n\n\nStyleguide 1.2.9\n*/\n.ec-reportDescription {\n margin-bottom: 32px;\n text-align: center;\n font-size: 16px;\n line-height: 1.4; }\n\n/*\nテキスト下部のスペース\n\nテキストの下に余白を追加することができます。 .ec-para-normalで16pxの余白をつけることができます。\n\nMarkup:\np.ec-para-normal 万一、ご確認メールが届かない場合は、トラブルの可能性もありますので大変お手数ではございますがもう一度お問い合わせいただくか、お電話にてお問い合わせくださいませ。\np.ec-para-normal 万一、ご確認メールが届かない場合は、トラブルの可能性もありますので大変お手数ではございますがもう一度お問い合わせいただくか、お電話にてお問い合わせくださいませ。\n\nStyleguide 1.2.10\n*/\n.ec-para-normal {\n margin-bottom: 16px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nリスト\n\nシンプルなリストを構成するためのスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 1.3\n*/\n/*\n水平定義リスト\n\nシンプルな定義リストのスタイルを定義します。\n\ndl要素を用いてコーディングします。\n\nex [当サイトについて 水平定義リスト部分](http://demo3.ec-cube.net/help/about)\n\nMarkup:\ndl.ec-definitions\n dt 店名\n dd EC-CUBE3 DEMO SHOP\ndl.ec-definitions\n dt 会社名\n dd EC-CUBE3\ndl.ec-definitions--soft\n dt 所在地\n dd 〒 550-0001\n\nStyleguide 1.3.1\n*/\n.ec-definitions, .ec-definitions--soft {\n margin: 5px 0;\n display: block; }\n .ec-definitions dt, .ec-definitions--soft dt, .ec-definitions dd, .ec-definitions--soft dd {\n display: inline-block;\n margin: 0; }\n .ec-definitions dt, .ec-definitions--soft dt {\n font-weight: bold; }\n\n.ec-definitions--soft dt {\n font-weight: normal; }\n\n/*\n下線つき定義リスト\n\n線が添えられた定義リストのスタイルを定義します。\n\ndl要素を用いてコーディングします。\n\nex [当サイトについて 下線つき定義リスト](http://demo3.ec-cube.net/help/about)\n\nMarkup:\n.ec-borderedDefs\n dl\n dt 店名\n dd EC-CUBE3 DEMO SHOP\n dl\n dt 会社名\n dd EC-CUBE3\n dl\n dt 所在地\n dd 〒550 - 0001\n\nStyleguide 1.3.2\n*/\n.ec-borderedDefs {\n width: 100%;\n border-top: 1px dotted #ccc;\n margin-bottom: 16px; }\n .ec-borderedDefs dl {\n display: flex;\n border-bottom: 1px dotted #ccc;\n margin: 0;\n padding: 10px 0 0;\n flex-wrap: wrap; }\n @media only screen and (min-width: 768px) {\n .ec-borderedDefs dl {\n flex-wrap: nowrap;\n padding: 15px 0 4px; } }\n .ec-borderedDefs dt, .ec-borderedDefs dd {\n padding: 0; }\n .ec-borderedDefs dt {\n font-weight: normal;\n width: 100%;\n padding-top: 0; }\n @media only screen and (min-width: 768px) {\n .ec-borderedDefs dt {\n padding-top: 14px;\n width: 30%; } }\n .ec-borderedDefs dd {\n padding: 0;\n width: 100%;\n line-height: 2.5; }\n @media only screen and (min-width: 768px) {\n .ec-borderedDefs dd {\n width: 70%;\n line-height: 3; } }\n .ec-borderedDefs p {\n line-height: 1.4; }\n\n.ec-list-chilled {\n display: table-row;\n border: 0 none;\n padding: 8px 0; }\n .ec-list-chilled dt, .ec-list-chilled dd {\n display: table-cell;\n border-bottom: 1px dotted #ccc;\n padding: 0; }\n @media only screen and (min-width: 768px) {\n .ec-list-chilled dt, .ec-list-chilled dd {\n padding: 16px 0; } }\n .ec-list-chilled dt {\n width: 30%; }\n .ec-list-chilled dd {\n padding: 0; }\n @media only screen and (min-width: 768px) {\n .ec-list-chilled dd {\n padding: 16px; } }\n\n/*\nボーダーリスト\n\n線が添えられたリストを表示します。\n\nex [当サイトについて ボーダーリスト](http://demo3.ec-cube.net/help/about)\n\nMarkup:\nul.ec-borderedList\n li: p lorem\n li: p lorem\n li: p lorem\n\n\nStyleguide 1.3.3\n*/\n.ec-borderedList {\n width: 100%;\n border-top: 0;\n list-style: none;\n padding: 0; }\n @media only screen and (min-width: 768px) {\n .ec-borderedList {\n border-top: 1px dotted #ccc; } }\n .ec-borderedList li {\n border-bottom: 1px dotted #ccc; }\n\n.ec-list-chilled {\n display: table-row;\n border: 0 none;\n padding: 8px 0; }\n .ec-list-chilled dt, .ec-list-chilled dd {\n display: table-cell;\n border-bottom: 1px dotted #ccc;\n padding: 16px 0; }\n .ec-list-chilled dt {\n width: 30%; }\n .ec-list-chilled dd {\n padding: 16px; }\n\n/*\nボタンサイズ\n\nボタンサイズを変更するスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 2.1\n*/\n/*\n通常ボタン\n\nインラインの要素としてボタンを定義出来ます。\n\nex [トップページ ボタン部分](http://demo3.ec-cube.net/)\n\nMarkup:\n.ec-inlineBtn 住所検索\n.ec-inlineBtn--primary もっと見る\n.ec-inlineBtn--action カートに入れる\n.ec-inlineBtn--cancel キャンセル\n\nStyleguide 2.1.1\n*/\n.ec-inlineBtn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #525263;\n background-color: #F5F7F8;\n border-color: #ccc; }\n .ec-inlineBtn:focus, .ec-inlineBtn.focus, .ec-inlineBtn:active:focus, .ec-inlineBtn:active.focus, .ec-inlineBtn.active:focus, .ec-inlineBtn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-inlineBtn:hover, .ec-inlineBtn:focus, .ec-inlineBtn.focus {\n color: #525263;\n text-decoration: none; }\n .ec-inlineBtn:active, .ec-inlineBtn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-inlineBtn.disabled, .ec-inlineBtn[disabled],\n fieldset[disabled] .ec-inlineBtn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-inlineBtn:focus, .ec-inlineBtn.focus {\n color: #525263;\n background-color: #d7dfe3;\n border-color: #8c8c8c; }\n .ec-inlineBtn:hover {\n color: #525263;\n background-color: #d7dfe3;\n border-color: #adadad; }\n .ec-inlineBtn:active, .ec-inlineBtn.active,\n .open > .ec-inlineBtn.dropdown-toggle {\n color: #525263;\n background-color: #d7dfe3;\n border-color: #adadad; }\n .ec-inlineBtn:active:hover, .ec-inlineBtn:active:focus, .ec-inlineBtn:active.focus, .ec-inlineBtn.active:hover, .ec-inlineBtn.active:focus, .ec-inlineBtn.active.focus,\n .open > .ec-inlineBtn.dropdown-toggle:hover,\n .open > .ec-inlineBtn.dropdown-toggle:focus,\n .open > .ec-inlineBtn.dropdown-toggle.focus {\n color: #525263;\n background-color: #c2ced4;\n border-color: #8c8c8c; }\n .ec-inlineBtn:active, .ec-inlineBtn.active,\n .open > .ec-inlineBtn.dropdown-toggle {\n background-image: none; }\n .ec-inlineBtn.disabled:hover, .ec-inlineBtn.disabled:focus, .ec-inlineBtn.disabled.focus, .ec-inlineBtn[disabled]:hover, .ec-inlineBtn[disabled]:focus, .ec-inlineBtn[disabled].focus,\n fieldset[disabled] .ec-inlineBtn:hover,\n fieldset[disabled] .ec-inlineBtn:focus,\n fieldset[disabled] .ec-inlineBtn.focus {\n background-color: #F5F7F8;\n border-color: #ccc; }\n .ec-inlineBtn .badge {\n color: #F5F7F8;\n background-color: #525263; }\n .ec-inlineBtn .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n.ec-inlineBtn--primary {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #fff;\n background-color: #5CB1B1;\n border-color: #5CB1B1; }\n .ec-inlineBtn--primary:focus, .ec-inlineBtn--primary.focus, .ec-inlineBtn--primary:active:focus, .ec-inlineBtn--primary:active.focus, .ec-inlineBtn--primary.active:focus, .ec-inlineBtn--primary.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-inlineBtn--primary:hover, .ec-inlineBtn--primary:focus, .ec-inlineBtn--primary.focus {\n color: #525263;\n text-decoration: none; }\n .ec-inlineBtn--primary:active, .ec-inlineBtn--primary.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-inlineBtn--primary.disabled, .ec-inlineBtn--primary[disabled],\n fieldset[disabled] .ec-inlineBtn--primary {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-inlineBtn--primary:focus, .ec-inlineBtn--primary.focus {\n color: #fff;\n background-color: #479393;\n border-color: #2e6060; }\n .ec-inlineBtn--primary:hover {\n color: #fff;\n background-color: #479393;\n border-color: #438d8d; }\n .ec-inlineBtn--primary:active, .ec-inlineBtn--primary.active,\n .open > .ec-inlineBtn--primary.dropdown-toggle {\n color: #fff;\n background-color: #479393;\n border-color: #438d8d; }\n .ec-inlineBtn--primary:active:hover, .ec-inlineBtn--primary:active:focus, .ec-inlineBtn--primary:active.focus, .ec-inlineBtn--primary.active:hover, .ec-inlineBtn--primary.active:focus, .ec-inlineBtn--primary.active.focus,\n .open > .ec-inlineBtn--primary.dropdown-toggle:hover,\n .open > .ec-inlineBtn--primary.dropdown-toggle:focus,\n .open > .ec-inlineBtn--primary.dropdown-toggle.focus {\n color: #fff;\n background-color: #3b7b7b;\n border-color: #2e6060; }\n .ec-inlineBtn--primary:active, .ec-inlineBtn--primary.active,\n .open > .ec-inlineBtn--primary.dropdown-toggle {\n background-image: none; }\n .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,\n fieldset[disabled] .ec-inlineBtn--primary:hover,\n fieldset[disabled] .ec-inlineBtn--primary:focus,\n fieldset[disabled] .ec-inlineBtn--primary.focus {\n background-color: #5CB1B1;\n border-color: #5CB1B1; }\n .ec-inlineBtn--primary .badge {\n color: #5CB1B1;\n background-color: #fff; }\n .ec-inlineBtn--primary .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n.ec-inlineBtn--action {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #fff;\n background-color: #DE5D50;\n border-color: #DE5D50; }\n .ec-inlineBtn--action:focus, .ec-inlineBtn--action.focus, .ec-inlineBtn--action:active:focus, .ec-inlineBtn--action:active.focus, .ec-inlineBtn--action.active:focus, .ec-inlineBtn--action.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-inlineBtn--action:hover, .ec-inlineBtn--action:focus, .ec-inlineBtn--action.focus {\n color: #525263;\n text-decoration: none; }\n .ec-inlineBtn--action:active, .ec-inlineBtn--action.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-inlineBtn--action.disabled, .ec-inlineBtn--action[disabled],\n fieldset[disabled] .ec-inlineBtn--action {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-inlineBtn--action:focus, .ec-inlineBtn--action.focus {\n color: #fff;\n background-color: #d33828;\n border-color: #93271c; }\n .ec-inlineBtn--action:hover {\n color: #fff;\n background-color: #d33828;\n border-color: #cb3526; }\n .ec-inlineBtn--action:active, .ec-inlineBtn--action.active,\n .open > .ec-inlineBtn--action.dropdown-toggle {\n color: #fff;\n background-color: #d33828;\n border-color: #cb3526; }\n .ec-inlineBtn--action:active:hover, .ec-inlineBtn--action:active:focus, .ec-inlineBtn--action:active.focus, .ec-inlineBtn--action.active:hover, .ec-inlineBtn--action.active:focus, .ec-inlineBtn--action.active.focus,\n .open > .ec-inlineBtn--action.dropdown-toggle:hover,\n .open > .ec-inlineBtn--action.dropdown-toggle:focus,\n .open > .ec-inlineBtn--action.dropdown-toggle.focus {\n color: #fff;\n background-color: #b53022;\n border-color: #93271c; }\n .ec-inlineBtn--action:active, .ec-inlineBtn--action.active,\n .open > .ec-inlineBtn--action.dropdown-toggle {\n background-image: none; }\n .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,\n fieldset[disabled] .ec-inlineBtn--action:hover,\n fieldset[disabled] .ec-inlineBtn--action:focus,\n fieldset[disabled] .ec-inlineBtn--action.focus {\n background-color: #DE5D50;\n border-color: #DE5D50; }\n .ec-inlineBtn--action .badge {\n color: #DE5D50;\n background-color: #fff; }\n .ec-inlineBtn--action .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n.ec-inlineBtn--cancel {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #fff;\n background-color: #525263;\n border-color: #525263; }\n .ec-inlineBtn--cancel:focus, .ec-inlineBtn--cancel.focus, .ec-inlineBtn--cancel:active:focus, .ec-inlineBtn--cancel:active.focus, .ec-inlineBtn--cancel.active:focus, .ec-inlineBtn--cancel.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-inlineBtn--cancel:hover, .ec-inlineBtn--cancel:focus, .ec-inlineBtn--cancel.focus {\n color: #525263;\n text-decoration: none; }\n .ec-inlineBtn--cancel:active, .ec-inlineBtn--cancel.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-inlineBtn--cancel.disabled, .ec-inlineBtn--cancel[disabled],\n fieldset[disabled] .ec-inlineBtn--cancel {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-inlineBtn--cancel:focus, .ec-inlineBtn--cancel.focus {\n color: #fff;\n background-color: #3b3b47;\n border-color: #18181d; }\n .ec-inlineBtn--cancel:hover {\n color: #fff;\n background-color: #3b3b47;\n border-color: #363642; }\n .ec-inlineBtn--cancel:active, .ec-inlineBtn--cancel.active,\n .open > .ec-inlineBtn--cancel.dropdown-toggle {\n color: #fff;\n background-color: #3b3b47;\n border-color: #363642; }\n .ec-inlineBtn--cancel:active:hover, .ec-inlineBtn--cancel:active:focus, .ec-inlineBtn--cancel:active.focus, .ec-inlineBtn--cancel.active:hover, .ec-inlineBtn--cancel.active:focus, .ec-inlineBtn--cancel.active.focus,\n .open > .ec-inlineBtn--cancel.dropdown-toggle:hover,\n .open > .ec-inlineBtn--cancel.dropdown-toggle:focus,\n .open > .ec-inlineBtn--cancel.dropdown-toggle.focus {\n color: #fff;\n background-color: #2b2b34;\n border-color: #18181d; }\n .ec-inlineBtn--cancel:active, .ec-inlineBtn--cancel.active,\n .open > .ec-inlineBtn--cancel.dropdown-toggle {\n background-image: none; }\n .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,\n fieldset[disabled] .ec-inlineBtn--cancel:hover,\n fieldset[disabled] .ec-inlineBtn--cancel:focus,\n fieldset[disabled] .ec-inlineBtn--cancel.focus {\n background-color: #525263;\n border-color: #525263; }\n .ec-inlineBtn--cancel .badge {\n color: #525263;\n background-color: #fff; }\n .ec-inlineBtn--cancel .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n/*\nブロックボタン(全幅)\n\nボタンサイズは em で指定するため、テキストサイズの変更でボタンサイズを変更できます。\n\nex [商品詳細ページ カートボタン部分](http://demo3.ec-cube.net/products/detail/30)\n\nMarkup:\np: .ec-blockBtn 住所検索\np: .ec-blockBtn--primary もっと見る\np: .ec-blockBtn--action カートに入れる\np: .ec-blockBtn--cancel キャンセル\n\nStyleguide 2.1.2\n*/\n.ec-blockBtn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #525263;\n background-color: #F5F7F8;\n border-color: #ccc;\n display: block;\n width: 100%;\n height: 56px;\n line-height: 56px;\n padding-top: 0;\n padding-bottom: 0; }\n .ec-blockBtn:focus, .ec-blockBtn.focus, .ec-blockBtn:active:focus, .ec-blockBtn:active.focus, .ec-blockBtn.active:focus, .ec-blockBtn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-blockBtn:hover, .ec-blockBtn:focus, .ec-blockBtn.focus {\n color: #525263;\n text-decoration: none; }\n .ec-blockBtn:active, .ec-blockBtn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-blockBtn.disabled, .ec-blockBtn[disabled],\n fieldset[disabled] .ec-blockBtn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-blockBtn:focus, .ec-blockBtn.focus {\n color: #525263;\n background-color: #d7dfe3;\n border-color: #8c8c8c; }\n .ec-blockBtn:hover {\n color: #525263;\n background-color: #d7dfe3;\n border-color: #adadad; }\n .ec-blockBtn:active, .ec-blockBtn.active,\n .open > .ec-blockBtn.dropdown-toggle {\n color: #525263;\n background-color: #d7dfe3;\n border-color: #adadad; }\n .ec-blockBtn:active:hover, .ec-blockBtn:active:focus, .ec-blockBtn:active.focus, .ec-blockBtn.active:hover, .ec-blockBtn.active:focus, .ec-blockBtn.active.focus,\n .open > .ec-blockBtn.dropdown-toggle:hover,\n .open > .ec-blockBtn.dropdown-toggle:focus,\n .open > .ec-blockBtn.dropdown-toggle.focus {\n color: #525263;\n background-color: #c2ced4;\n border-color: #8c8c8c; }\n .ec-blockBtn:active, .ec-blockBtn.active,\n .open > .ec-blockBtn.dropdown-toggle {\n background-image: none; }\n .ec-blockBtn.disabled:hover, .ec-blockBtn.disabled:focus, .ec-blockBtn.disabled.focus, .ec-blockBtn[disabled]:hover, .ec-blockBtn[disabled]:focus, .ec-blockBtn[disabled].focus,\n fieldset[disabled] .ec-blockBtn:hover,\n fieldset[disabled] .ec-blockBtn:focus,\n fieldset[disabled] .ec-blockBtn.focus {\n background-color: #F5F7F8;\n border-color: #ccc; }\n .ec-blockBtn .badge {\n color: #F5F7F8;\n background-color: #525263; }\n .ec-blockBtn .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n.ec-blockBtn--primary {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #fff;\n background-color: #5CB1B1;\n border-color: #5CB1B1;\n display: block;\n width: 100%;\n height: 56px;\n line-height: 56px;\n padding-top: 0;\n padding-bottom: 0; }\n .ec-blockBtn--primary:focus, .ec-blockBtn--primary.focus, .ec-blockBtn--primary:active:focus, .ec-blockBtn--primary:active.focus, .ec-blockBtn--primary.active:focus, .ec-blockBtn--primary.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-blockBtn--primary:hover, .ec-blockBtn--primary:focus, .ec-blockBtn--primary.focus {\n color: #525263;\n text-decoration: none; }\n .ec-blockBtn--primary:active, .ec-blockBtn--primary.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-blockBtn--primary.disabled, .ec-blockBtn--primary[disabled],\n fieldset[disabled] .ec-blockBtn--primary {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-blockBtn--primary:focus, .ec-blockBtn--primary.focus {\n color: #fff;\n background-color: #479393;\n border-color: #2e6060; }\n .ec-blockBtn--primary:hover {\n color: #fff;\n background-color: #479393;\n border-color: #438d8d; }\n .ec-blockBtn--primary:active, .ec-blockBtn--primary.active,\n .open > .ec-blockBtn--primary.dropdown-toggle {\n color: #fff;\n background-color: #479393;\n border-color: #438d8d; }\n .ec-blockBtn--primary:active:hover, .ec-blockBtn--primary:active:focus, .ec-blockBtn--primary:active.focus, .ec-blockBtn--primary.active:hover, .ec-blockBtn--primary.active:focus, .ec-blockBtn--primary.active.focus,\n .open > .ec-blockBtn--primary.dropdown-toggle:hover,\n .open > .ec-blockBtn--primary.dropdown-toggle:focus,\n .open > .ec-blockBtn--primary.dropdown-toggle.focus {\n color: #fff;\n background-color: #3b7b7b;\n border-color: #2e6060; }\n .ec-blockBtn--primary:active, .ec-blockBtn--primary.active,\n .open > .ec-blockBtn--primary.dropdown-toggle {\n background-image: none; }\n .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,\n fieldset[disabled] .ec-blockBtn--primary:hover,\n fieldset[disabled] .ec-blockBtn--primary:focus,\n fieldset[disabled] .ec-blockBtn--primary.focus {\n background-color: #5CB1B1;\n border-color: #5CB1B1; }\n .ec-blockBtn--primary .badge {\n color: #5CB1B1;\n background-color: #fff; }\n .ec-blockBtn--primary .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n.ec-blockBtn--action {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #fff;\n background-color: #DE5D50;\n border-color: #DE5D50;\n display: block;\n width: 100%;\n height: 56px;\n line-height: 56px;\n padding-top: 0;\n padding-bottom: 0; }\n .ec-blockBtn--action:focus, .ec-blockBtn--action.focus, .ec-blockBtn--action:active:focus, .ec-blockBtn--action:active.focus, .ec-blockBtn--action.active:focus, .ec-blockBtn--action.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-blockBtn--action:hover, .ec-blockBtn--action:focus, .ec-blockBtn--action.focus {\n color: #525263;\n text-decoration: none; }\n .ec-blockBtn--action:active, .ec-blockBtn--action.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-blockBtn--action.disabled, .ec-blockBtn--action[disabled],\n fieldset[disabled] .ec-blockBtn--action {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-blockBtn--action:focus, .ec-blockBtn--action.focus {\n color: #fff;\n background-color: #d33828;\n border-color: #93271c; }\n .ec-blockBtn--action:hover {\n color: #fff;\n background-color: #d33828;\n border-color: #cb3526; }\n .ec-blockBtn--action:active, .ec-blockBtn--action.active,\n .open > .ec-blockBtn--action.dropdown-toggle {\n color: #fff;\n background-color: #d33828;\n border-color: #cb3526; }\n .ec-blockBtn--action:active:hover, .ec-blockBtn--action:active:focus, .ec-blockBtn--action:active.focus, .ec-blockBtn--action.active:hover, .ec-blockBtn--action.active:focus, .ec-blockBtn--action.active.focus,\n .open > .ec-blockBtn--action.dropdown-toggle:hover,\n .open > .ec-blockBtn--action.dropdown-toggle:focus,\n .open > .ec-blockBtn--action.dropdown-toggle.focus {\n color: #fff;\n background-color: #b53022;\n border-color: #93271c; }\n .ec-blockBtn--action:active, .ec-blockBtn--action.active,\n .open > .ec-blockBtn--action.dropdown-toggle {\n background-image: none; }\n .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,\n fieldset[disabled] .ec-blockBtn--action:hover,\n fieldset[disabled] .ec-blockBtn--action:focus,\n fieldset[disabled] .ec-blockBtn--action.focus {\n background-color: #DE5D50;\n border-color: #DE5D50; }\n .ec-blockBtn--action .badge {\n color: #DE5D50;\n background-color: #fff; }\n .ec-blockBtn--action .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n.ec-blockBtn--cancel {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: #fff;\n background-color: #525263;\n border-color: #525263;\n display: block;\n width: 100%;\n height: 56px;\n line-height: 56px;\n padding-top: 0;\n padding-bottom: 0; }\n .ec-blockBtn--cancel:focus, .ec-blockBtn--cancel.focus, .ec-blockBtn--cancel:active:focus, .ec-blockBtn--cancel:active.focus, .ec-blockBtn--cancel.active:focus, .ec-blockBtn--cancel.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-blockBtn--cancel:hover, .ec-blockBtn--cancel:focus, .ec-blockBtn--cancel.focus {\n color: #525263;\n text-decoration: none; }\n .ec-blockBtn--cancel:active, .ec-blockBtn--cancel.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-blockBtn--cancel.disabled, .ec-blockBtn--cancel[disabled],\n fieldset[disabled] .ec-blockBtn--cancel {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-blockBtn--cancel:focus, .ec-blockBtn--cancel.focus {\n color: #fff;\n background-color: #3b3b47;\n border-color: #18181d; }\n .ec-blockBtn--cancel:hover {\n color: #fff;\n background-color: #3b3b47;\n border-color: #363642; }\n .ec-blockBtn--cancel:active, .ec-blockBtn--cancel.active,\n .open > .ec-blockBtn--cancel.dropdown-toggle {\n color: #fff;\n background-color: #3b3b47;\n border-color: #363642; }\n .ec-blockBtn--cancel:active:hover, .ec-blockBtn--cancel:active:focus, .ec-blockBtn--cancel:active.focus, .ec-blockBtn--cancel.active:hover, .ec-blockBtn--cancel.active:focus, .ec-blockBtn--cancel.active.focus,\n .open > .ec-blockBtn--cancel.dropdown-toggle:hover,\n .open > .ec-blockBtn--cancel.dropdown-toggle:focus,\n .open > .ec-blockBtn--cancel.dropdown-toggle.focus {\n color: #fff;\n background-color: #2b2b34;\n border-color: #18181d; }\n .ec-blockBtn--cancel:active, .ec-blockBtn--cancel.active,\n .open > .ec-blockBtn--cancel.dropdown-toggle {\n background-image: none; }\n .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,\n fieldset[disabled] .ec-blockBtn--cancel:hover,\n fieldset[disabled] .ec-blockBtn--cancel:focus,\n fieldset[disabled] .ec-blockBtn--cancel.focus {\n background-color: #525263;\n border-color: #525263; }\n .ec-blockBtn--cancel .badge {\n color: #525263;\n background-color: #fff; }\n .ec-blockBtn--cancel .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n/*\nアイコンボタン\n\nSVGアイコンを用いたアイコンボタンです。\n\nsg-wrapper:\n
\n \n\nStyleguide 2.2\n*/\n/*\nアイコンボタン\n\n閉じるなどSVGアイコンを用いたボタン装飾で利用します。\n\nex [ログイン画面 ☓ボタン部分](http://demo3.ec-cube.net/mypage/login)\n\nMarkup:\na.ec-closeBtn\n .ec-icon\n img(src='/moc/icon/cross.svg', alt='close')\n\nStyleguide 2.2.1\n*/\n.ec-closeBtn {\n cursor: pointer; }\n .ec-closeBtn .ec-icon img {\n display: inline-block;\n margin-right: 5px;\n width: 1em;\n height: 1em;\n position: relative;\n top: -1px;\n vertical-align: middle; }\n\n/*\nアイコンボタン(○)\n\n閉じるなどSVGアイコンを用いたボタン装飾で利用します。\n\nex [ログイン画面 ☓ボタン部分](http://demo3.ec-cube.net/mypage/login)\n\n\n\nex [お届け先編集画面 ☓ボタン部分](http://demo3.ec-cube.net/mypage/delivery)\n\nMarkup:\na.ec-closeBtn--circle\n .ec-icon\n img(src='/moc/icon/cross-white.svg', alt='close')\n\nStyleguide 2.2.2\n*/\n.ec-closeBtn--circle {\n display: block;\n border: 0 none;\n padding: 0;\n margin: 0;\n text-shadow: none;\n box-shadow: none;\n border-radius: 50%;\n background: #B8BEC4;\n cursor: pointer;\n width: 40px;\n min-width: 40px;\n max-width: 40px;\n height: 40px;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center; }\n .ec-closeBtn--circle .ec-icon img {\n display: block;\n margin-top: -.5em;\n margin-left: -.5em;\n width: 1em;\n height: 1em;\n position: absolute;\n top: 50%;\n left: 50%; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nその他のボタン\n\n通常のボタンや、アイコンボタン以外のボタンを定義します。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 2.3\n*/\n/*\nページトップボタン\n\nページトップボタンを表示します\n\nex [商品詳細ページ カートボタン部分](http://demo3.ec-cube.net/products/detail/30)\n\nMarkup:\n.ec-blockTopBtn\n\nStyleguide 2.3.1\n*/\n.ec-blockTopBtn {\n display: none;\n position: fixed;\n width: 120px;\n height: 40px;\n right: 0;\n bottom: 10px;\n cursor: pointer;\n color: #FFFFFF;\n text-align: center;\n line-height: 40px;\n opacity: 0.8;\n background-color: #9da3a9; }\n @media only screen and (min-width: 768px) {\n .ec-blockTopBtn {\n right: 30px;\n bottom: 30px; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nフォーム部品(テキスト)\n\nテキストや数値の入力項目に関する要素を定義します。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 3.1\n*/\n/*\nフォーム\n\n`.ec-input` 要素は全ての入力項目に関する標準的なコンポーネントクラスです。\n\n\nex [会員情報編集画面 フォーム部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\np.ec-input\n input(type=\"number\")\np.ec-input\n textarea(rows=\"6\")\n\nStyleguide 3.1.1\n*/\n.ec-input input[type=\"search\"], .ec-halfInput input[type=\"search\"], .ec-numberInput input[type=\"search\"], .ec-zipInput input[type=\"search\"], .ec-telInput input[type=\"search\"], .ec-select input[type=\"search\"], .ec-birth input[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n\n.ec-input input[type=\"radio\"], .ec-halfInput input[type=\"radio\"], .ec-numberInput input[type=\"radio\"], .ec-zipInput input[type=\"radio\"], .ec-telInput input[type=\"radio\"], .ec-select input[type=\"radio\"], .ec-birth input[type=\"radio\"],\n.ec-input input[type=\"checkbox\"],\n.ec-halfInput input[type=\"checkbox\"],\n.ec-numberInput input[type=\"checkbox\"],\n.ec-zipInput input[type=\"checkbox\"],\n.ec-telInput input[type=\"checkbox\"],\n.ec-select input[type=\"checkbox\"],\n.ec-birth input[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal; }\n\n.ec-input input[type=\"file\"], .ec-halfInput input[type=\"file\"], .ec-numberInput input[type=\"file\"], .ec-zipInput input[type=\"file\"], .ec-telInput input[type=\"file\"], .ec-select input[type=\"file\"], .ec-birth input[type=\"file\"] {\n display: block; }\n\n.ec-input input[type=\"range\"], .ec-halfInput input[type=\"range\"], .ec-numberInput input[type=\"range\"], .ec-zipInput input[type=\"range\"], .ec-telInput input[type=\"range\"], .ec-select input[type=\"range\"], .ec-birth input[type=\"range\"] {\n display: block;\n width: 100%; }\n\n.ec-input select[multiple], .ec-halfInput select[multiple], .ec-numberInput select[multiple], .ec-zipInput select[multiple], .ec-telInput select[multiple], .ec-select select[multiple], .ec-birth select[multiple],\n.ec-input select[size],\n.ec-halfInput select[size],\n.ec-numberInput select[size],\n.ec-zipInput select[size],\n.ec-telInput select[size],\n.ec-select select[size],\n.ec-birth select[size] {\n height: auto; }\n\n.ec-input input[type=\"file\"]:focus, .ec-halfInput input[type=\"file\"]:focus, .ec-numberInput input[type=\"file\"]:focus, .ec-zipInput input[type=\"file\"]:focus, .ec-telInput input[type=\"file\"]:focus, .ec-select input[type=\"file\"]:focus, .ec-birth input[type=\"file\"]:focus,\n.ec-input input[type=\"radio\"]:focus,\n.ec-halfInput input[type=\"radio\"]:focus,\n.ec-numberInput input[type=\"radio\"]:focus,\n.ec-zipInput input[type=\"radio\"]:focus,\n.ec-telInput input[type=\"radio\"]:focus,\n.ec-select input[type=\"radio\"]:focus,\n.ec-birth input[type=\"radio\"]:focus,\n.ec-input input[type=\"checkbox\"]:focus,\n.ec-halfInput input[type=\"checkbox\"]:focus,\n.ec-numberInput input[type=\"checkbox\"]:focus,\n.ec-zipInput input[type=\"checkbox\"]:focus,\n.ec-telInput input[type=\"checkbox\"]:focus,\n.ec-select input[type=\"checkbox\"]:focus,\n.ec-birth input[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n\n.ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input, .ec-select input, .ec-birth input {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-appearance: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n border-radius: 3px; }\n .ec-input input:focus, .ec-halfInput input:focus, .ec-numberInput input:focus, .ec-zipInput input:focus, .ec-telInput input:focus, .ec-select input:focus, .ec-birth input:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\n .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, .ec-select input::-moz-placeholder, .ec-birth input::-moz-placeholder {\n color: #999;\n opacity: 1; }\n .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, .ec-select input:-ms-input-placeholder, .ec-birth input:-ms-input-placeholder {\n color: #999; }\n .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, .ec-select input::-webkit-input-placeholder, .ec-birth input::-webkit-input-placeholder {\n color: #999; }\n .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, .ec-select input::-ms-expand, .ec-birth input::-ms-expand {\n border: 0;\n background-color: transparent; }\n .ec-input input[disabled], .ec-halfInput input[disabled], .ec-numberInput input[disabled], .ec-zipInput input[disabled], .ec-telInput input[disabled], .ec-select input[disabled], .ec-birth input[disabled], .ec-input input[readonly], .ec-halfInput input[readonly], .ec-numberInput input[readonly], .ec-zipInput input[readonly], .ec-telInput input[readonly], .ec-select input[readonly], .ec-birth input[readonly],\n fieldset[disabled] .ec-input input,\n fieldset[disabled] .ec-halfInput input,\n fieldset[disabled] .ec-numberInput input,\n fieldset[disabled] .ec-zipInput input,\n fieldset[disabled] .ec-telInput input,\n fieldset[disabled] .ec-select input,\n fieldset[disabled] .ec-birth input {\n background-color: #eeeeee;\n opacity: 1; }\n .ec-input input[disabled], .ec-halfInput input[disabled], .ec-numberInput input[disabled], .ec-zipInput input[disabled], .ec-telInput input[disabled], .ec-select input[disabled], .ec-birth input[disabled],\n fieldset[disabled] .ec-input input,\n fieldset[disabled] .ec-halfInput input,\n fieldset[disabled] .ec-numberInput input,\n fieldset[disabled] .ec-zipInput input,\n fieldset[disabled] .ec-telInput input,\n fieldset[disabled] .ec-select input,\n fieldset[disabled] .ec-birth input {\n cursor: not-allowed; }\n\n.ec-input select, .ec-halfInput select, .ec-numberInput select, .ec-zipInput select, .ec-telInput select, .ec-select select, .ec-birth select {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-appearance: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n border-radius: 3px; }\n .ec-input select:focus, .ec-halfInput select:focus, .ec-numberInput select:focus, .ec-zipInput select:focus, .ec-telInput select:focus, .ec-select select:focus, .ec-birth select:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\n .ec-input select::-moz-placeholder, .ec-halfInput select::-moz-placeholder, .ec-numberInput select::-moz-placeholder, .ec-zipInput select::-moz-placeholder, .ec-telInput select::-moz-placeholder, .ec-select select::-moz-placeholder, .ec-birth select::-moz-placeholder {\n color: #999;\n opacity: 1; }\n .ec-input select:-ms-input-placeholder, .ec-halfInput select:-ms-input-placeholder, .ec-numberInput select:-ms-input-placeholder, .ec-zipInput select:-ms-input-placeholder, .ec-telInput select:-ms-input-placeholder, .ec-select select:-ms-input-placeholder, .ec-birth select:-ms-input-placeholder {\n color: #999; }\n .ec-input select::-webkit-input-placeholder, .ec-halfInput select::-webkit-input-placeholder, .ec-numberInput select::-webkit-input-placeholder, .ec-zipInput select::-webkit-input-placeholder, .ec-telInput select::-webkit-input-placeholder, .ec-select select::-webkit-input-placeholder, .ec-birth select::-webkit-input-placeholder {\n color: #999; }\n .ec-input select::-ms-expand, .ec-halfInput select::-ms-expand, .ec-numberInput select::-ms-expand, .ec-zipInput select::-ms-expand, .ec-telInput select::-ms-expand, .ec-select select::-ms-expand, .ec-birth select::-ms-expand {\n border: 0;\n background-color: transparent; }\n .ec-input select[disabled], .ec-halfInput select[disabled], .ec-numberInput select[disabled], .ec-zipInput select[disabled], .ec-telInput select[disabled], .ec-select select[disabled], .ec-birth select[disabled], .ec-input select[readonly], .ec-halfInput select[readonly], .ec-numberInput select[readonly], .ec-zipInput select[readonly], .ec-telInput select[readonly], .ec-select select[readonly], .ec-birth select[readonly],\n fieldset[disabled] .ec-input select,\n fieldset[disabled] .ec-halfInput select,\n fieldset[disabled] .ec-numberInput select,\n fieldset[disabled] .ec-zipInput select,\n fieldset[disabled] .ec-telInput select,\n fieldset[disabled] .ec-select select,\n fieldset[disabled] .ec-birth select {\n background-color: #eeeeee;\n opacity: 1; }\n .ec-input select[disabled], .ec-halfInput select[disabled], .ec-numberInput select[disabled], .ec-zipInput select[disabled], .ec-telInput select[disabled], .ec-select select[disabled], .ec-birth select[disabled],\n fieldset[disabled] .ec-input select,\n fieldset[disabled] .ec-halfInput select,\n fieldset[disabled] .ec-numberInput select,\n fieldset[disabled] .ec-zipInput select,\n fieldset[disabled] .ec-telInput select,\n fieldset[disabled] .ec-select select,\n fieldset[disabled] .ec-birth select {\n cursor: not-allowed; }\n\n.ec-input textarea, .ec-halfInput textarea, .ec-numberInput textarea, .ec-zipInput textarea, .ec-telInput textarea, .ec-select textarea, .ec-birth textarea {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-appearance: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n border-radius: 3px; }\n .ec-input textarea:focus, .ec-halfInput textarea:focus, .ec-numberInput textarea:focus, .ec-zipInput textarea:focus, .ec-telInput textarea:focus, .ec-select textarea:focus, .ec-birth textarea:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\n .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, .ec-select textarea::-moz-placeholder, .ec-birth textarea::-moz-placeholder {\n color: #999;\n opacity: 1; }\n .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, .ec-select textarea:-ms-input-placeholder, .ec-birth textarea:-ms-input-placeholder {\n color: #999; }\n .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, .ec-select textarea::-webkit-input-placeholder, .ec-birth textarea::-webkit-input-placeholder {\n color: #999; }\n .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, .ec-select textarea::-ms-expand, .ec-birth textarea::-ms-expand {\n border: 0;\n background-color: transparent; }\n .ec-input textarea[disabled], .ec-halfInput textarea[disabled], .ec-numberInput textarea[disabled], .ec-zipInput textarea[disabled], .ec-telInput textarea[disabled], .ec-select textarea[disabled], .ec-birth textarea[disabled], .ec-input textarea[readonly], .ec-halfInput textarea[readonly], .ec-numberInput textarea[readonly], .ec-zipInput textarea[readonly], .ec-telInput textarea[readonly], .ec-select textarea[readonly], .ec-birth textarea[readonly],\n fieldset[disabled] .ec-input textarea,\n fieldset[disabled] .ec-halfInput textarea,\n fieldset[disabled] .ec-numberInput textarea,\n fieldset[disabled] .ec-zipInput textarea,\n fieldset[disabled] .ec-telInput textarea,\n fieldset[disabled] .ec-select textarea,\n fieldset[disabled] .ec-birth textarea {\n background-color: #eeeeee;\n opacity: 1; }\n .ec-input textarea[disabled], .ec-halfInput textarea[disabled], .ec-numberInput textarea[disabled], .ec-zipInput textarea[disabled], .ec-telInput textarea[disabled], .ec-select textarea[disabled], .ec-birth textarea[disabled],\n fieldset[disabled] .ec-input textarea,\n fieldset[disabled] .ec-halfInput textarea,\n fieldset[disabled] .ec-numberInput textarea,\n fieldset[disabled] .ec-zipInput textarea,\n fieldset[disabled] .ec-telInput textarea,\n fieldset[disabled] .ec-select textarea,\n fieldset[disabled] .ec-birth textarea {\n cursor: not-allowed; }\n\n.ec-input input:focus, .ec-halfInput input:focus, .ec-numberInput input:focus, .ec-zipInput input:focus, .ec-telInput input:focus, .ec-select input:focus, .ec-birth input:focus, .ec-input textarea:focus, .ec-halfInput textarea:focus, .ec-numberInput textarea:focus, .ec-zipInput textarea:focus, .ec-telInput textarea:focus, .ec-select textarea:focus, .ec-birth textarea:focus {\n box-shadow: none;\n border-color: #3c8dbc; }\n\n.ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input, .ec-select input, .ec-birth input {\n height: 40px;\n margin-bottom: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input, .ec-select input, .ec-birth input {\n margin-bottom: 16px; } }\n\n.ec-input textarea, .ec-halfInput textarea, .ec-numberInput textarea, .ec-zipInput textarea, .ec-telInput textarea, .ec-select textarea, .ec-birth textarea {\n height: auto;\n min-height: 100px; }\n\n.ec-input p, .ec-halfInput p, .ec-numberInput p, .ec-zipInput p, .ec-telInput p, .ec-select p, .ec-birth p {\n line-height: 1.4; }\n\n.ec-input .ec-errorMessage, .ec-halfInput .ec-errorMessage, .ec-numberInput .ec-errorMessage, .ec-zipInput .ec-errorMessage, .ec-telInput .ec-errorMessage, .ec-select .ec-errorMessage, .ec-birth .ec-errorMessage {\n margin-bottom: 25px;\n font-size: 12px;\n font-weight: bold;\n color: #DE5D50; }\n\n.error.ec-input input, .error.ec-halfInput input, .error.ec-numberInput input, .error.ec-zipInput input, .error.ec-telInput input, .error.ec-select input, .error.ec-birth input, .error.ec-input select, .error.ec-halfInput select, .error.ec-numberInput select, .error.ec-zipInput select, .error.ec-telInput select, .error.ec-select select, .error.ec-birth select {\n margin-bottom: 5px;\n border-color: #CF3F34;\n background: #FDF1F0; }\n\n.ec-checkbox .ec-errorMessage {\n margin-bottom: 25px;\n font-size: 12px;\n font-weight: bold;\n color: #DE5D50; }\n\n.error.ec-checkbox input, .error.ec-checkbox label {\n border-color: #CF3F34;\n background: #FDF1F0; }\n\n/*\nフォーム(text2つ)\n\n姓名など2つ入力させたい入力項目で使用します。\n\n入力フォームを半分で用意したいときにも利用可能です。\n\nex [会員情報編集画面 フォーム部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\np.ec-halfInput\n input(type=\"text\")\n input(type=\"text\")\np.ec-halfInput\n input(type=\"text\")\n\nStyleguide 3.1.2\n*/\n.ec-halfInput input[type='text'] {\n display: inline-block;\n width: 47%;\n margin-left: 2%; }\n @media only screen and (min-width: 768px) {\n .ec-halfInput input[type='text'] {\n margin-left: 15px;\n width: 45%; } }\n\n.ec-halfInput input[type='text']:first-child {\n margin-left: 0; }\n\n/*\n数量ボタン\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [商品詳細画面 数量ボタン部分](http://demo3.ec-cube.net/products/detail/27)\n\nMarkup:\n.ec-numberInput\n span 数量\n input(type=\"number\",value=\"0\")\n\nStyleguide 3.1.3\n*/\n.ec-numberInput input[type='number'] {\n display: inline-block;\n width: auto;\n max-width: 100px;\n text-align: right; }\n\n/*\n郵便番号フォーム\n\n数量を表示するための小さなコンポーネントです。\n\n内部に input 要素を配置してコーディングします。\n\nex [会員情報編集画面 郵便番号部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\n.ec-zipInput\n span 〒\n input(type=\"text\")\n.ec-zipInputHelp\n a(href=\"http://www.post.japanpost.jp/zipcode/\" target=\"_blank\")\n .ec-zipInputHelp__icon\n .ec-icon\n img(src='/moc/icon/question-white.svg', alt='')\n span 郵便番号検索\n.ec-zipAuto\n a.ec-inlineBtn 郵便番号から自動入力\n\nStyleguide 3.1.4\n*/\n.ec-zipInput {\n display: inline-block; }\n .ec-zipInput input {\n display: inline-block;\n text-align: left;\n width: auto;\n max-width: 8em;\n font-size: 16px; }\n .ec-zipInput span {\n display: inline-block;\n padding: 0 5px 0 3px;\n margin-left: 5px; }\n\n.ec-zipInputHelp {\n display: inline-block;\n margin-left: 10px;\n margin-bottom: 16px;\n vertical-align: baseline;\n line-height: 0; }\n .ec-zipInputHelp .ec-zipInputHelp__icon {\n display: inline-block;\n margin-top: -10px;\n width: 20px;\n height: 20px;\n background: #525263;\n border-radius: 50%;\n font-size: 13px;\n position: relative;\n top: -6px; }\n .ec-zipInputHelp .ec-zipInputHelp__icon .ec-icon img {\n width: 1em;\n height: 1em;\n position: relative;\n left: 3px;\n top: 3px; }\n .ec-zipInputHelp span {\n margin-left: 8px;\n display: inline-block;\n color: #0092C4;\n vertical-align: 3px; }\n\n.ec-zipAuto {\n margin-bottom: 16px; }\n .ec-zipAuto .ec-inlineBtn {\n font-weight: normal; }\n\n/*\n電話番号ボタン\n\n数量を表示するための小さなコンポーネントです。\n\n内部に input 要素を配置してコーディングします。\n\nex [会員情報編集画面 電話番号部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\n.ec-telInput\n input(type=\"text\")\n\nStyleguide 3.1.5\n*/\n.ec-telInput input {\n max-width: 10em;\n text-align: left; }\n\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nフォーム部品(テキスト)\n\nテキストや数値の入力項目に関する要素を定義します。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 3.1\n*/\n/*\nフォーム\n\n`.ec-input` 要素は全ての入力項目に関する標準的なコンポーネントクラスです。\n\n\nex [会員情報編集画面 フォーム部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\np.ec-input\n input(type=\"number\")\np.ec-input\n textarea(rows=\"6\")\n\nStyleguide 3.1.1\n*/\n.ec-input input[type=\"search\"], .ec-halfInput input[type=\"search\"], .ec-numberInput input[type=\"search\"], .ec-zipInput input[type=\"search\"], .ec-telInput input[type=\"search\"], .ec-select input[type=\"search\"], .ec-birth input[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n\n.ec-input input[type=\"radio\"], .ec-halfInput input[type=\"radio\"], .ec-numberInput input[type=\"radio\"], .ec-zipInput input[type=\"radio\"], .ec-telInput input[type=\"radio\"], .ec-select input[type=\"radio\"], .ec-birth input[type=\"radio\"],\n.ec-input input[type=\"checkbox\"],\n.ec-halfInput input[type=\"checkbox\"],\n.ec-numberInput input[type=\"checkbox\"],\n.ec-zipInput input[type=\"checkbox\"],\n.ec-telInput input[type=\"checkbox\"],\n.ec-select input[type=\"checkbox\"],\n.ec-birth input[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal; }\n\n.ec-input input[type=\"file\"], .ec-halfInput input[type=\"file\"], .ec-numberInput input[type=\"file\"], .ec-zipInput input[type=\"file\"], .ec-telInput input[type=\"file\"], .ec-select input[type=\"file\"], .ec-birth input[type=\"file\"] {\n display: block; }\n\n.ec-input input[type=\"range\"], .ec-halfInput input[type=\"range\"], .ec-numberInput input[type=\"range\"], .ec-zipInput input[type=\"range\"], .ec-telInput input[type=\"range\"], .ec-select input[type=\"range\"], .ec-birth input[type=\"range\"] {\n display: block;\n width: 100%; }\n\n.ec-input select[multiple], .ec-halfInput select[multiple], .ec-numberInput select[multiple], .ec-zipInput select[multiple], .ec-telInput select[multiple], .ec-select select[multiple], .ec-birth select[multiple],\n.ec-input select[size],\n.ec-halfInput select[size],\n.ec-numberInput select[size],\n.ec-zipInput select[size],\n.ec-telInput select[size],\n.ec-select select[size],\n.ec-birth select[size] {\n height: auto; }\n\n.ec-input input[type=\"file\"]:focus, .ec-halfInput input[type=\"file\"]:focus, .ec-numberInput input[type=\"file\"]:focus, .ec-zipInput input[type=\"file\"]:focus, .ec-telInput input[type=\"file\"]:focus, .ec-select input[type=\"file\"]:focus, .ec-birth input[type=\"file\"]:focus,\n.ec-input input[type=\"radio\"]:focus,\n.ec-halfInput input[type=\"radio\"]:focus,\n.ec-numberInput input[type=\"radio\"]:focus,\n.ec-zipInput input[type=\"radio\"]:focus,\n.ec-telInput input[type=\"radio\"]:focus,\n.ec-select input[type=\"radio\"]:focus,\n.ec-birth input[type=\"radio\"]:focus,\n.ec-input input[type=\"checkbox\"]:focus,\n.ec-halfInput input[type=\"checkbox\"]:focus,\n.ec-numberInput input[type=\"checkbox\"]:focus,\n.ec-zipInput input[type=\"checkbox\"]:focus,\n.ec-telInput input[type=\"checkbox\"]:focus,\n.ec-select input[type=\"checkbox\"]:focus,\n.ec-birth input[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n\n.ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input, .ec-select input, .ec-birth input {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-appearance: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n border-radius: 3px; }\n .ec-input input:focus, .ec-halfInput input:focus, .ec-numberInput input:focus, .ec-zipInput input:focus, .ec-telInput input:focus, .ec-select input:focus, .ec-birth input:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\n .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, .ec-select input::-moz-placeholder, .ec-birth input::-moz-placeholder {\n color: #999;\n opacity: 1; }\n .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, .ec-select input:-ms-input-placeholder, .ec-birth input:-ms-input-placeholder {\n color: #999; }\n .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, .ec-select input::-webkit-input-placeholder, .ec-birth input::-webkit-input-placeholder {\n color: #999; }\n .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, .ec-select input::-ms-expand, .ec-birth input::-ms-expand {\n border: 0;\n background-color: transparent; }\n .ec-input input[disabled], .ec-halfInput input[disabled], .ec-numberInput input[disabled], .ec-zipInput input[disabled], .ec-telInput input[disabled], .ec-select input[disabled], .ec-birth input[disabled], .ec-input input[readonly], .ec-halfInput input[readonly], .ec-numberInput input[readonly], .ec-zipInput input[readonly], .ec-telInput input[readonly], .ec-select input[readonly], .ec-birth input[readonly],\n fieldset[disabled] .ec-input input,\n fieldset[disabled] .ec-halfInput input,\n fieldset[disabled] .ec-numberInput input,\n fieldset[disabled] .ec-zipInput input,\n fieldset[disabled] .ec-telInput input,\n fieldset[disabled] .ec-select input,\n fieldset[disabled] .ec-birth input {\n background-color: #eeeeee;\n opacity: 1; }\n .ec-input input[disabled], .ec-halfInput input[disabled], .ec-numberInput input[disabled], .ec-zipInput input[disabled], .ec-telInput input[disabled], .ec-select input[disabled], .ec-birth input[disabled],\n fieldset[disabled] .ec-input input,\n fieldset[disabled] .ec-halfInput input,\n fieldset[disabled] .ec-numberInput input,\n fieldset[disabled] .ec-zipInput input,\n fieldset[disabled] .ec-telInput input,\n fieldset[disabled] .ec-select input,\n fieldset[disabled] .ec-birth input {\n cursor: not-allowed; }\n\n.ec-input select, .ec-halfInput select, .ec-numberInput select, .ec-zipInput select, .ec-telInput select, .ec-select select, .ec-birth select {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-appearance: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n border-radius: 3px; }\n .ec-input select:focus, .ec-halfInput select:focus, .ec-numberInput select:focus, .ec-zipInput select:focus, .ec-telInput select:focus, .ec-select select:focus, .ec-birth select:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\n .ec-input select::-moz-placeholder, .ec-halfInput select::-moz-placeholder, .ec-numberInput select::-moz-placeholder, .ec-zipInput select::-moz-placeholder, .ec-telInput select::-moz-placeholder, .ec-select select::-moz-placeholder, .ec-birth select::-moz-placeholder {\n color: #999;\n opacity: 1; }\n .ec-input select:-ms-input-placeholder, .ec-halfInput select:-ms-input-placeholder, .ec-numberInput select:-ms-input-placeholder, .ec-zipInput select:-ms-input-placeholder, .ec-telInput select:-ms-input-placeholder, .ec-select select:-ms-input-placeholder, .ec-birth select:-ms-input-placeholder {\n color: #999; }\n .ec-input select::-webkit-input-placeholder, .ec-halfInput select::-webkit-input-placeholder, .ec-numberInput select::-webkit-input-placeholder, .ec-zipInput select::-webkit-input-placeholder, .ec-telInput select::-webkit-input-placeholder, .ec-select select::-webkit-input-placeholder, .ec-birth select::-webkit-input-placeholder {\n color: #999; }\n .ec-input select::-ms-expand, .ec-halfInput select::-ms-expand, .ec-numberInput select::-ms-expand, .ec-zipInput select::-ms-expand, .ec-telInput select::-ms-expand, .ec-select select::-ms-expand, .ec-birth select::-ms-expand {\n border: 0;\n background-color: transparent; }\n .ec-input select[disabled], .ec-halfInput select[disabled], .ec-numberInput select[disabled], .ec-zipInput select[disabled], .ec-telInput select[disabled], .ec-select select[disabled], .ec-birth select[disabled], .ec-input select[readonly], .ec-halfInput select[readonly], .ec-numberInput select[readonly], .ec-zipInput select[readonly], .ec-telInput select[readonly], .ec-select select[readonly], .ec-birth select[readonly],\n fieldset[disabled] .ec-input select,\n fieldset[disabled] .ec-halfInput select,\n fieldset[disabled] .ec-numberInput select,\n fieldset[disabled] .ec-zipInput select,\n fieldset[disabled] .ec-telInput select,\n fieldset[disabled] .ec-select select,\n fieldset[disabled] .ec-birth select {\n background-color: #eeeeee;\n opacity: 1; }\n .ec-input select[disabled], .ec-halfInput select[disabled], .ec-numberInput select[disabled], .ec-zipInput select[disabled], .ec-telInput select[disabled], .ec-select select[disabled], .ec-birth select[disabled],\n fieldset[disabled] .ec-input select,\n fieldset[disabled] .ec-halfInput select,\n fieldset[disabled] .ec-numberInput select,\n fieldset[disabled] .ec-zipInput select,\n fieldset[disabled] .ec-telInput select,\n fieldset[disabled] .ec-select select,\n fieldset[disabled] .ec-birth select {\n cursor: not-allowed; }\n\n.ec-input textarea, .ec-halfInput textarea, .ec-numberInput textarea, .ec-zipInput textarea, .ec-telInput textarea, .ec-select textarea, .ec-birth textarea {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-appearance: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n border-radius: 3px; }\n .ec-input textarea:focus, .ec-halfInput textarea:focus, .ec-numberInput textarea:focus, .ec-zipInput textarea:focus, .ec-telInput textarea:focus, .ec-select textarea:focus, .ec-birth textarea:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\n .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, .ec-select textarea::-moz-placeholder, .ec-birth textarea::-moz-placeholder {\n color: #999;\n opacity: 1; }\n .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, .ec-select textarea:-ms-input-placeholder, .ec-birth textarea:-ms-input-placeholder {\n color: #999; }\n .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, .ec-select textarea::-webkit-input-placeholder, .ec-birth textarea::-webkit-input-placeholder {\n color: #999; }\n .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, .ec-select textarea::-ms-expand, .ec-birth textarea::-ms-expand {\n border: 0;\n background-color: transparent; }\n .ec-input textarea[disabled], .ec-halfInput textarea[disabled], .ec-numberInput textarea[disabled], .ec-zipInput textarea[disabled], .ec-telInput textarea[disabled], .ec-select textarea[disabled], .ec-birth textarea[disabled], .ec-input textarea[readonly], .ec-halfInput textarea[readonly], .ec-numberInput textarea[readonly], .ec-zipInput textarea[readonly], .ec-telInput textarea[readonly], .ec-select textarea[readonly], .ec-birth textarea[readonly],\n fieldset[disabled] .ec-input textarea,\n fieldset[disabled] .ec-halfInput textarea,\n fieldset[disabled] .ec-numberInput textarea,\n fieldset[disabled] .ec-zipInput textarea,\n fieldset[disabled] .ec-telInput textarea,\n fieldset[disabled] .ec-select textarea,\n fieldset[disabled] .ec-birth textarea {\n background-color: #eeeeee;\n opacity: 1; }\n .ec-input textarea[disabled], .ec-halfInput textarea[disabled], .ec-numberInput textarea[disabled], .ec-zipInput textarea[disabled], .ec-telInput textarea[disabled], .ec-select textarea[disabled], .ec-birth textarea[disabled],\n fieldset[disabled] .ec-input textarea,\n fieldset[disabled] .ec-halfInput textarea,\n fieldset[disabled] .ec-numberInput textarea,\n fieldset[disabled] .ec-zipInput textarea,\n fieldset[disabled] .ec-telInput textarea,\n fieldset[disabled] .ec-select textarea,\n fieldset[disabled] .ec-birth textarea {\n cursor: not-allowed; }\n\n.ec-input input:focus, .ec-halfInput input:focus, .ec-numberInput input:focus, .ec-zipInput input:focus, .ec-telInput input:focus, .ec-select input:focus, .ec-birth input:focus, .ec-input textarea:focus, .ec-halfInput textarea:focus, .ec-numberInput textarea:focus, .ec-zipInput textarea:focus, .ec-telInput textarea:focus, .ec-select textarea:focus, .ec-birth textarea:focus {\n box-shadow: none;\n border-color: #3c8dbc; }\n\n.ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input, .ec-select input, .ec-birth input {\n height: 40px;\n margin-bottom: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input, .ec-select input, .ec-birth input {\n margin-bottom: 16px; } }\n\n.ec-input textarea, .ec-halfInput textarea, .ec-numberInput textarea, .ec-zipInput textarea, .ec-telInput textarea, .ec-select textarea, .ec-birth textarea {\n height: auto;\n min-height: 100px; }\n\n.ec-input p, .ec-halfInput p, .ec-numberInput p, .ec-zipInput p, .ec-telInput p, .ec-select p, .ec-birth p {\n line-height: 1.4; }\n\n.ec-input .ec-errorMessage, .ec-halfInput .ec-errorMessage, .ec-numberInput .ec-errorMessage, .ec-zipInput .ec-errorMessage, .ec-telInput .ec-errorMessage, .ec-select .ec-errorMessage, .ec-birth .ec-errorMessage {\n margin-bottom: 25px;\n font-size: 12px;\n font-weight: bold;\n color: #DE5D50; }\n\n.error.ec-input input, .error.ec-halfInput input, .error.ec-numberInput input, .error.ec-zipInput input, .error.ec-telInput input, .error.ec-select input, .error.ec-birth input, .error.ec-input select, .error.ec-halfInput select, .error.ec-numberInput select, .error.ec-zipInput select, .error.ec-telInput select, .error.ec-select select, .error.ec-birth select {\n margin-bottom: 5px;\n border-color: #CF3F34;\n background: #FDF1F0; }\n\n.ec-checkbox .ec-errorMessage {\n margin-bottom: 25px;\n font-size: 12px;\n font-weight: bold;\n color: #DE5D50; }\n\n.error.ec-checkbox input, .error.ec-checkbox label {\n border-color: #CF3F34;\n background: #FDF1F0; }\n\n/*\nフォーム(text2つ)\n\n姓名など2つ入力させたい入力項目で使用します。\n\n入力フォームを半分で用意したいときにも利用可能です。\n\nex [会員情報編集画面 フォーム部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\np.ec-halfInput\n input(type=\"text\")\n input(type=\"text\")\np.ec-halfInput\n input(type=\"text\")\n\nStyleguide 3.1.2\n*/\n.ec-halfInput input[type='text'] {\n display: inline-block;\n width: 47%;\n margin-left: 2%; }\n @media only screen and (min-width: 768px) {\n .ec-halfInput input[type='text'] {\n margin-left: 15px;\n width: 45%; } }\n\n.ec-halfInput input[type='text']:first-child {\n margin-left: 0; }\n\n/*\n数量ボタン\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [商品詳細画面 数量ボタン部分](http://demo3.ec-cube.net/products/detail/27)\n\nMarkup:\n.ec-numberInput\n span 数量\n input(type=\"number\",value=\"0\")\n\nStyleguide 3.1.3\n*/\n.ec-numberInput input[type='number'] {\n display: inline-block;\n width: auto;\n max-width: 100px;\n text-align: right; }\n\n/*\n郵便番号フォーム\n\n数量を表示するための小さなコンポーネントです。\n\n内部に input 要素を配置してコーディングします。\n\nex [会員情報編集画面 郵便番号部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\n.ec-zipInput\n span 〒\n input(type=\"text\")\n.ec-zipInputHelp\n a(href=\"http://www.post.japanpost.jp/zipcode/\" target=\"_blank\")\n .ec-zipInputHelp__icon\n .ec-icon\n img(src='/moc/icon/question-white.svg', alt='')\n span 郵便番号検索\n.ec-zipAuto\n a.ec-inlineBtn 郵便番号から自動入力\n\nStyleguide 3.1.4\n*/\n.ec-zipInput {\n display: inline-block; }\n .ec-zipInput input {\n display: inline-block;\n text-align: left;\n width: auto;\n max-width: 8em;\n font-size: 16px; }\n .ec-zipInput span {\n display: inline-block;\n padding: 0 5px 0 3px;\n margin-left: 5px; }\n\n.ec-zipInputHelp {\n display: inline-block;\n margin-left: 10px;\n margin-bottom: 16px;\n vertical-align: baseline;\n line-height: 0; }\n .ec-zipInputHelp .ec-zipInputHelp__icon {\n display: inline-block;\n margin-top: -10px;\n width: 20px;\n height: 20px;\n background: #525263;\n border-radius: 50%;\n font-size: 13px;\n position: relative;\n top: -6px; }\n .ec-zipInputHelp .ec-zipInputHelp__icon .ec-icon img {\n width: 1em;\n height: 1em;\n position: relative;\n left: 3px;\n top: 3px; }\n .ec-zipInputHelp span {\n margin-left: 8px;\n display: inline-block;\n color: #0092C4;\n vertical-align: 3px; }\n\n.ec-zipAuto {\n margin-bottom: 16px; }\n .ec-zipAuto .ec-inlineBtn {\n font-weight: normal; }\n\n/*\n電話番号ボタン\n\n数量を表示するための小さなコンポーネントです。\n\n内部に input 要素を配置してコーディングします。\n\nex [会員情報編集画面 電話番号部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\n.ec-telInput\n input(type=\"text\")\n\nStyleguide 3.1.5\n*/\n.ec-telInput input {\n max-width: 10em;\n text-align: left; }\n\n/*\nフォーム部品(その他)\n\nフォーム部品でテキストの入力以外の動作要素を定義します。\n\nsg-wrapper:\n
\n \n\nStyleguide 3.2\n*/\n/*\nラジオ(水平)\n\n水平に並ぶラジオボタンフィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nex [新規会員登録画面 性別選択部分](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-radio\n label\n input(type=\"radio\")\n span 男性\n label\n input(type=\"radio\")\n span 女性\n\nStyleguide 3.2.2\n*/\n.ec-radio label {\n margin-right: 20px; }\n\n.ec-radio input {\n margin-right: 10px;\n margin-bottom: 10px; }\n\n.ec-radio span {\n font-weight: normal; }\n\n/*\nラジオ(垂直)\n\n垂直に並ぶラジオボタンフィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nex [購入画面 お支払方法](http://demo3.ec-cube.net/shopping)\n\nMarkup:\n.ec-blockRadio\n label\n input(type=\"radio\")\n span 郵便振替\n label\n input(type=\"radio\")\n span 現金書留\n label\n input(type=\"radio\")\n span 銀行振込\n label\n input(type=\"radio\")\n span 代金引換\n\nStyleguide 3.2.3\n*/\n.ec-blockRadio label {\n display: block; }\n\n.ec-blockRadio span {\n padding-left: 10px;\n font-weight: normal; }\n\n/*\nセレクトボックス\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [新規会員登録画面 都道府県選択部分](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-select\n select\n option 都道府県を選択\n option 北海道\n option 青森県\n option 岩手県\n option ...\n.ec-select\n select\n option 選択して下さい\n option 公務員\n option コンサルタント\n option コンピュータ関連技術職\n option コンピュータ関連以外の技術職\n option ...\n\nStyleguide 3.2.4\n*/\n.ec-selects {\n margin-bottom: 20px;\n border-bottom: 1px dotted #ccc; }\n\n.ec-select {\n margin-bottom: 16px; }\n .ec-select select {\n display: inline-block;\n width: auto;\n background-color: #f8f8f8;\n -webkit-appearance: menulist;\n -moz-appearance: menulist; }\n .ec-select select:focus {\n box-shadow: none; }\n .ec-select label {\n margin-right: 10px;\n font-weight: bold; }\n .ec-select label:nth-child(3) {\n margin-left: 10px;\n font-weight: bold; }\n\n.ec-select__delivery {\n display: block;\n margin-right: 16px; }\n @media only screen and (min-width: 768px) {\n .ec-select__delivery {\n display: inline-block; } }\n\n.ec-select__time {\n display: block; }\n @media only screen and (min-width: 768px) {\n .ec-select__time {\n display: inline-block; } }\n\n/*\n生年月日選択\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [新規会員登録画面 生年月日選択部分](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-birth\n select\n option ----\n option 1960\n option 1961\n option 1962\n option ...\n span /\n select\n option --\n option 01\n option 02\n option 03\n option ...\n span /\n select\n option --\n option 01\n option 02\n option 03\n option ...\n\nStyleguide 3.2.5\n*/\n.ec-birth select {\n display: inline-block;\n width: auto;\n margin: 0 0 10px;\n background-color: #f8f8f8;\n -webkit-appearance: menulist;\n -moz-appearance: menulist; }\n .ec-birth select:focus {\n box-shadow: none; }\n @media only screen and (min-width: 768px) {\n .ec-birth select {\n margin: 0 8px 10px; } }\n\n.ec-birth span {\n margin-left: 5px; }\n\n/*\nチェックボックス (水平)\n\n水平に並ぶチェックボックス フィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nex [新規会員登録画面 利用規約](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-checkbox\n label\n input(type=\"checkbox\")\n span 利用規約に同意する\n\nStyleguide 3.2.6\n*/\n.ec-checkbox label {\n display: inline-block; }\n\n.ec-checkbox input {\n margin-bottom: 10px; }\n\n.ec-checkbox span {\n font-weight: normal; }\n\n/*\nチェックボックス (垂直)\n\n垂直に並ぶチェックボックス フィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nMarkup:\n.ec-blockCheckbox\n label\n input(type=\"checkbox\")\n span 利用規約に同意する\n\nStyleguide 3.2.7\n*/\n.ec-blockCheckbox label {\n display: block; }\n\n.ec-blockCheckbox span {\n font-weight: normal; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nフォームラベル\n\nフォームのラベルに関する要素を定義します。\n\nsg-wrapper:\n
\n
\n
\n
\n \n
\n
\n
\n
\n\nStyleguide 3.3\n*/\n/*\nラベル\n\nフォーム要素で利用するラベル要素です。\n\nex [お問い合わせページ ラベル部分](http://demo3.ec-cube.net/contact)\n\nMarkup:\n.ec-borderedDefs\n dl\n dt\n label.ec-label お名前\n dd\n .ec-input\n input(type=\"text\")\n\nStyleguide 3.3.1\n*/\n.ec-label {\n display: inline-block;\n font-weight: bold;\n margin-bottom: 5px; }\n\n/*\n必須ラベル\n\n必須文字を表示するラベル要素です。\n\nex [お問い合わせページ 必須ラベル部分](http://demo3.ec-cube.net/contact)\n\n\nMarkup:\n.ec-borderedDefs\n dl\n dt\n label.ec-label お名前\n span.ec-required 必須\n dd\n .ec-input\n input(type=\"text\")\n\nStyleguide 3.3.2\n*/\n.ec-required {\n display: inline-block;\n margin-left: .8em;\n vertical-align: 2px;\n color: #DE5D50;\n font-size: 12px;\n font-weight: normal; }\n @media only screen and (min-width: 768px) {\n .ec-required {\n margin-left: 1em; } }\n\n/*\nアイコン\n\nデフォルトテンプレートのアイコンは`.ec-icon`>`img`タグで使用することができます\n\nsg-wrapper:\n
\n \n\nMarkup:\ninclude /assets/tmpl/elements/4.1.icon.pug\ndiv(style=\"background-color: rgba(130,130,130,.15); padding: 20px;\")\n +icon-all\n\nStyleguide 4.1\n*/\n.ec-icon img {\n max-width: 80px;\n max-height: 80px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nグリッド\n\n画面を12分割し、グリッドレイアウトに対応するためのスタイルです。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 5.1\n*/\n/*\n2分割グリッド\n\n画面 2分割の グリッドです。\nBootstrap の col-sm-6 相当のグリッドを提供します。\n\nMarkup:\n.ec-grid2\n .ec-grid2__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid2__cell\n .ec-grid2__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid2__cell\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 5.1.1\n*/\n.ec-grid2 {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-grid2 {\n display: flex; } }\n .ec-grid2 .ec-grid2__cell {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid2 .ec-grid2__cell {\n width: 50%; } }\n .ec-grid2 .ec-grid2__cell2 {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid2 .ec-grid2__cell2 {\n width: 100%; } }\n\n/*\n3分割グリッド\n\n画面 3分割の グリッドです。\n\n\nMarkup:\n.ec-grid3\n .ec-grid3__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid3__cell\n .ec-grid3__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid3__cell\n .ec-grid3__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid3__cell\n\nStyleguide 5.1.2\n*/\n.ec-grid3 {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-grid3 {\n display: flex; } }\n .ec-grid3 .ec-grid3__cell {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid3 .ec-grid3__cell {\n width: 33.33333%; } }\n .ec-grid3 .ec-grid3__cell2 {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid3 .ec-grid3__cell2 {\n width: 66.66667%; } }\n .ec-grid3 .ec-grid3__cell3 {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid3 .ec-grid3__cell3 {\n width: 100%; } }\n\n/*\n4分割グリッド\n\n画面 4分割の グリッドです。\n\n\nMarkup:\n.ec-grid4\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n\nStyleguide 5.1.3\n*/\n.ec-grid4 {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-grid4 {\n display: flex; } }\n .ec-grid4 .ec-grid4__cell {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid4 .ec-grid4__cell {\n width: 25%; } }\n\n/*\n6分割グリッド\n\n2つにまとめた cell2 や 3つをまとめた cell3 タグも使用可能です。\n\n\nMarkup:\n.ec-grid6\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n.ec-grid6\n .ec-grid6__cell2(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell2\n .ec-grid6__cell2(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell2\n .ec-grid6__cell2(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell2\n.ec-grid6\n .ec-grid6__cell3(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell3\n .ec-grid6__cell3(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell3\n\nStyleguide 5.1.4\n*/\n.ec-grid6 {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-grid6 {\n display: flex; } }\n .ec-grid6 .ec-grid6__cell {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid6 .ec-grid6__cell {\n width: 16.66667%; } }\n .ec-grid6 .ec-grid6__cell2 {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid6 .ec-grid6__cell2 {\n width: 33.33333%; } }\n .ec-grid6 .ec-grid6__cell3 {\n position: relative;\n min-height: 1px; }\n @media (min-width: 768px) {\n .ec-grid6 .ec-grid6__cell3 {\n width: 50%; } }\n\n/*\n中央寄せグリッド 10/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の10グリッドです\n\nex [ご利用規約ページ 本文](http://demo3.ec-cube.net/help/agreement)\n\nMarkup:\n.ec-off1Grid\n .ec-off1Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\nStyleguide 5.1.5\n*/\n.ec-off1Grid {\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off1Grid {\n display: block;\n margin: 0; } }\n @media only screen and (min-width: 768px) and (min-width: 768px) {\n .ec-off1Grid {\n display: flex; } }\n .ec-off1Grid .ec-off1Grid__cell {\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off1Grid .ec-off1Grid__cell {\n position: relative;\n min-height: 1px;\n margin-left: 8.33333%; } }\n @media only screen and (min-width: 768px) and (min-width: 768px) {\n .ec-off1Grid .ec-off1Grid__cell {\n width: 83.33333%; } }\n\n/*\n中央寄せグリッド 8/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の8グリッドです\n\n\nMarkup:\n.ec-off2Grid\n .ec-off2Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\nStyleguide 5.1.6\n*/\n.ec-off2Grid {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off2Grid {\n display: flex; } }\n .ec-off2Grid .ec-off2Grid__cell {\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off2Grid .ec-off2Grid__cell {\n position: relative;\n min-height: 1px;\n margin-left: 16.66667%; } }\n @media only screen and (min-width: 768px) and (min-width: 768px) {\n .ec-off2Grid .ec-off2Grid__cell {\n width: 66.66667%; } }\n\n/*\n中央寄せグリッド 6/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の6グリッドです\n\n\nMarkup:\n.ec-off3Grid\n .ec-off3Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\nStyleguide 5.1.7\n*/\n.ec-off3Grid {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off3Grid {\n display: flex; } }\n .ec-off3Grid .ec-off3Grid__cell {\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off3Grid .ec-off3Grid__cell {\n position: relative;\n min-height: 1px;\n margin-left: 25%; } }\n @media only screen and (min-width: 768px) and (min-width: 768px) {\n .ec-off3Grid .ec-off3Grid__cell {\n width: 50%; } }\n\n/*\n中央寄せグリッド 4/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の4グリッドです\n\n\nMarkup:\n.ec-off4Grid\n .ec-off4Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\n\nStyleguide 5.1.8\n*/\n.ec-off4Grid {\n display: block;\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off4Grid {\n display: flex; } }\n .ec-off4Grid .ec-off4Grid__cell {\n margin: 0; }\n @media only screen and (min-width: 768px) {\n .ec-off4Grid .ec-off4Grid__cell {\n position: relative;\n min-height: 1px;\n margin-left: 33.33333%; } }\n @media only screen and (min-width: 768px) and (min-width: 768px) {\n .ec-off4Grid .ec-off4Grid__cell {\n width: 33.33333%; } }\n\n/*\nグリッドオプション\n\nグリッドのセルに対して「左寄せ」「中央寄せ」「右寄せ」のオプションを付与することができます。\n\nsg-wrapper:\n
\n \n\nStyleguide 5.1.9\n*/\n/*\nグリッドセルの左寄せ\n\n.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。\n\nMarkup:\n.ec-grid4.ec-grid--left\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n\nStyleguide 5.1.10\n*/\n.ec-grid--left {\n justify-content: flex-start; }\n\n/*\nグリッドセルの右寄せ\n\n.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。\n\nMarkup:\n.ec-grid4.ec-grid--right\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n\nStyleguide 5.1.11\n*/\n.ec-grid--right {\n justify-content: flex-end; }\n\n/*\nグリッドセルの中央寄せ\n\n.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。\n\nMarkup:\n.ec-grid4.ec-grid--center\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n\nStyleguide 5.1.12\n*/\n.ec-grid--center {\n justify-content: center; }\n\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nレイアウト\n\n様々なレイアウトを変更する為のスタイル群です。\n\nStyleguide 5.2\n*/\n/*\n画像レイアウト\n\n画像とテキストを水平に並べるレイアウトです。\n\n画像は20%で表示されます。\n\nex [注文履歴 ログイン後→注文履歴ボタンを押下](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-imageGrid\n .ec-imageGrid__img: img(src=\"http://demo3.ec-cube.net/upload/save_image/0701113537_559351f959620.jpeg\")\n .ec-imageGrid__content\n p.ec-font-bold ホーローマグ\n p ¥ 1,728 x 1\n\nsg-wrapper:\n
\n \n\n\nStyleguide 5.2.1\n*/\n.ec-imageGrid {\n display: table;\n border-top: 1px dotted #ccc;\n width: 100%; }\n .ec-imageGrid .ec-imageGrid__img {\n display: table-cell;\n padding: 10px;\n width: 100px; }\n @media only screen and (min-width: 768px) {\n .ec-imageGrid .ec-imageGrid__img {\n padding: 10px;\n width: 130px; } }\n .ec-imageGrid .ec-imageGrid__img img {\n width: 100%; }\n .ec-imageGrid .ec-imageGrid__content {\n vertical-align: middle;\n display: table-cell; }\n .ec-imageGrid .ec-imageGrid__content span {\n margin-left: 10px; }\n .ec-imageGrid .ec-imageGrid__content p {\n margin-bottom: 0; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\nログイン\n\n主にログインフォームのスタイルを表示します。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 6.1\n*/\n/*\nログインフォーム\n\nログインフォームを表示します。\n\nex [ログイン画面](http://demo3.ec-cube.net/mypage/login)\n\nMarkup:\ninclude /assets/tmpl/elements/6.3.login.pug\n+ec-login\n\n\nStyleguide 6.1.1\n*/\n.ec-login {\n margin: 0 0 20px;\n padding: 30px 13% 20px;\n height: auto;\n background: #F3F4F4;\n box-sizing: border-box; }\n @media only screen and (min-width: 768px) {\n .ec-login {\n margin: 0 16px;\n padding: 30px 13% 60px; } }\n .ec-login .ec-login__icon {\n text-align: center; }\n .ec-login .ec-icon {\n margin-bottom: 10px; }\n .ec-login .ec-icon img {\n width: 90px;\n height: 90px;\n display: inline-block; }\n .ec-login .ec-login__input {\n margin-bottom: 40px; }\n .ec-login .ec-login__input .ec-checkbox span {\n margin-left: 5px;\n font-weight: normal; }\n .ec-login .ec-login__actions {\n color: #fff; }\n .ec-login .ec-login__actions a {\n color: inherit;\n text-decoration: none; }\n .ec-login .ec-login__actions a:hover {\n text-decoration: none; }\n .ec-login .ec-login__link {\n margin-top: 5px;\n margin-left: 0; }\n @media only screen and (min-width: 768px) {\n .ec-login .ec-login__link {\n margin-left: 20px; } }\n .ec-login .ec-errorMessage {\n color: #DE5D50;\n margin-bottom: 20px; }\n\n/*\nゲスト購入\n\nゲスト購入ボタンとそのフォームを表示します。\n\nex [ゲスト購入画面](http://demo3.ec-cube.net/shopping/login)\n\nMarkup:\ninclude /assets/tmpl/elements/6.3.login.pug\n+ec-guest\nhoge\n\nStyleguide 6.1.2\n*/\n.ec-guest {\n display: table;\n margin: 0;\n padding: 13%;\n height: auto;\n box-sizing: border-box;\n background: #F3F4F4; }\n @media only screen and (min-width: 768px) {\n .ec-guest {\n height: 100%;\n margin: 0 16px; } }\n .ec-guest .ec-guest__inner {\n display: table-cell;\n vertical-align: middle;\n text-align: center; }\n .ec-guest .ec-guest__inner p {\n margin-bottom: 16px; }\n .ec-guest .ec-guest__actions {\n display: block;\n vertical-align: middle;\n text-align: center;\n color: #fff; }\n .ec-guest .ec-guest__actions a {\n color: inherit;\n text-decoration: none; }\n .ec-guest .ec-guest__actions a:hover {\n text-decoration: none; }\n .ec-guest .ec-guest__icon {\n font-size: 70px;\n text-align: center; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\n商品掲載\n\nトップページに商品掲載するスタイルガイド群です。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 7.1\n*/\n/*\n商品アイテム(商品紹介B)\n\n3項目横並びの商品アイテムを表示します。\n必要に応じて商品詳細や、キャッチコピーなどを添えることが出来ます。\n\nex [トップページ 商品紹介部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/7.1.itembanner.pug\n+ec-displayB\n\nStyleguide 7.1.1\n*/\n.ec-displayB {\n margin-bottom: 24px;\n display: flex;\n justify-content: space-between;\n flex-direction: column; }\n @media only screen and (min-width: 768px) {\n .ec-displayB {\n flex-direction: row; } }\n .ec-displayB .ec-displayB__cell {\n width: 100%;\n margin-bottom: 16px; }\n .ec-displayB .ec-displayB__cell a {\n color: inherit;\n text-decoration: none; }\n .ec-displayB .ec-displayB__cell a:hover {\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-displayB .ec-displayB__cell {\n width: 31.4466%;\n margin-bottom: 0; } }\n .ec-displayB .ec-displayB__cell:hover {\n text-decoration: none; }\n .ec-displayB .ec-displayB__cell:hover img {\n opacity: .8; }\n .ec-displayB .ec-displayB__cell:hover a {\n text-decoration: none; }\n .ec-displayB .ec-displayB__img {\n margin-bottom: 15px; }\n .ec-displayB .ec-displayB__catch {\n margin-bottom: 15px;\n text-decoration: none;\n font-weight: bold;\n color: #9a947e; }\n .ec-displayB .ec-displayB__comment {\n margin-bottom: 14px;\n text-decoration: none;\n color: #525263;\n font-size: 14px; }\n .ec-displayB .ec-displayB__link {\n text-decoration: none;\n font-weight: bold;\n color: #9a947e; }\n\n/*\n商品アイテム(商品紹介C)\n\n4項目横並びの商品アイテムを表示します。\n\nex [トップページ 商品紹介部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/7.1.itembanner.pug\n+ec-displayC\np hoge\n\nStyleguide 7.1.2\n*/\n.ec-displayC {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n margin-bottom: 24px; }\n .ec-displayC .ec-displayC__cell {\n width: 47%; }\n .ec-displayC .ec-displayC__cell a {\n color: inherit;\n text-decoration: none; }\n .ec-displayC .ec-displayC__cell a:hover {\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-displayC .ec-displayC__cell {\n width: 22.8775%; } }\n .ec-displayC .ec-displayC__cell:hover a {\n text-decoration: none; }\n .ec-displayC .ec-displayC__cell:hover img {\n opacity: .8; }\n .ec-displayC .ec-displayC__img {\n display: block;\n width: 100%;\n margin-bottom: 15px; }\n .ec-displayC .ec-displayC__catch {\n display: block;\n width: 100%;\n font-weight: bold;\n color: #9a947e; }\n .ec-displayC .ec-displayC__title {\n display: block;\n width: 100%;\n color: #525263; }\n .ec-displayC .ec-displayC__price {\n display: block;\n width: 100%;\n font-weight: bold;\n color: #525263; }\n .ec-displayC .ec-displayC__price--sp {\n display: block;\n width: 100%;\n font-weight: bold;\n color: #DE5D50; }\n\n/*\n商品アイテム(商品紹介D)\n\n6項目横並びの商品アイテムを表示します。\n\nex [トップページ 商品紹介部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/7.1.itembanner.pug\n+ec-displayD\n\nStyleguide 7.1.3\n*/\n.ec-displayD {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap-reverse; }\n @media only screen and (min-width: 768px) {\n .ec-displayD {\n box-sizing: border-box;\n flex-wrap: nowrap; } }\n .ec-displayD .ec-displayD__cell {\n width: 30%;\n margin-bottom: 8px; }\n .ec-displayD .ec-displayD__cell a {\n color: inherit;\n text-decoration: none; }\n .ec-displayD .ec-displayD__cell a:hover {\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-displayD .ec-displayD__cell {\n width: 14.3083%;\n margin-bottom: 16px; } }\n .ec-displayD .ec-displayD__cell:hover {\n text-decoration: none; }\n .ec-displayD .ec-displayD__cell:hover img {\n opacity: .8; }\n .ec-displayD .ec-displayD__img {\n display: block;\n width: 100%; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\n検索・一覧表示\n\n検索欄や、一覧表示に使用するスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 7.2\n*/\n/*\nトピックパス\n\n検索結果で表示されるトピックパスのスタイルです。\n\nex [商品一覧ページ 横並びリスト部分](http://demo3.ec-cube.net/products/list?category_id=&name=)\n\nMarkup:\ninclude /assets/tmpl/elements/7.2.search.pug\n+ec-topicpath\n\nStyleguide 7.2.1\n*/\n.ec-topicpath {\n letter-spacing: -.4em;\n -webkit-margin-before: 0;\n -webkit-margin-after: 0;\n -webkit-margin-start: 0;\n -webkit-margin-end: 0;\n -webkit-padding-start: 0;\n border-top: 1px solid #ccc;\n border-bottom: 1px dotted #ccc;\n padding: 10px;\n list-style: none;\n overflow: hidden;\n font-size: 12px;\n color: #0092C4; }\n @media only screen and (min-width: 768px) {\n .ec-topicpath {\n padding: 30px 0 10px;\n border: 0;\n font-size: 16px; } }\n .ec-topicpath .ec-topicpath__item a {\n color: inherit;\n text-decoration: none; }\n .ec-topicpath .ec-topicpath__item a:hover {\n text-decoration: none; }\n .ec-topicpath .ec-topicpath__divider {\n color: #000; }\n .ec-topicpath .ec-topicpath__item,\n .ec-topicpath .ec-topicpath__divider,\n .ec-topicpath .ec-topicpath__item--active {\n display: inline-block;\n min-width: 16px;\n text-align: center;\n position: relative;\n letter-spacing: normal; }\n .ec-topicpath .ec-topicpath__item--active {\n font-weight: bold; }\n .ec-topicpath .ec-topicpath__item--active a {\n color: inherit;\n text-decoration: none; }\n .ec-topicpath .ec-topicpath__item--active a:hover {\n text-decoration: none; }\n\n/*\nページャ\n\n検索結果で表示される商品一覧のスタイルです。\n\nex [商品一覧ページ ページャ部分](http://demo3.ec-cube.net/products/list?category_id=&name=)\n\nMarkup:\ninclude /assets/tmpl/elements/7.2.search.pug\n+ec-pager\n\nStyleguide 7.2.2\n*/\n.ec-pager {\n list-style: none;\n list-style-type: none;\n margin: 0 auto;\n padding: 1em 0;\n text-align: center; }\n .ec-pager .ec-pager__item,\n .ec-pager .ec-pager__item--active {\n display: inline-block;\n min-width: 29px;\n padding: 0 3px 0 2px;\n text-align: center;\n position: relative; }\n .ec-pager .ec-pager__item a,\n .ec-pager .ec-pager__item--active a {\n color: inherit;\n text-decoration: none; }\n .ec-pager .ec-pager__item a:hover,\n .ec-pager .ec-pager__item--active a:hover {\n text-decoration: none; }\n .ec-pager .ec-pager__item a,\n .ec-pager .ec-pager__item--active a {\n color: inherit;\n display: block;\n line-height: 1.8;\n padding: 5px 1em;\n text-decoration: none; }\n .ec-pager .ec-pager__item a:hover,\n .ec-pager .ec-pager__item--active a:hover {\n color: inherit; }\n .ec-pager .ec-pager__item--active {\n background: #F3F3F3; }\n .ec-pager .ec-pager__item:hover {\n background: #F3F3F3; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n visibility: hidden; }\n 100% {\n opacity: 1;\n visibility: visible; } }\n\n@keyframes fadeOut {\n 0% {\n opacity: 1;\n visibility: visible; }\n 100% {\n opacity: 0;\n visibility: hidden; } }\n\n.bg-load-overlay {\n background: rgba(255, 255, 255, 0.4);\n box-sizing: border-box;\n position: fixed;\n display: flex;\n flex-flow: column nowrap;\n align-items: center;\n justify-content: space-around;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 2147483647;\n opacity: 1; }\n\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\nカート\n\nショッピングカートに関するスタイルです。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 7.3\n*/\n/*\nカートヘッダ\n\n購入完了までの手順や、現在の状態を表示します。\n\nul 要素を用いたリスト要素としてマークアップします。\n\nex [カートページ ヘッダ部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/7.3.cart.pug\n+ec-progress\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 7.3.1\n*/\n.ec-progress {\n margin: 0 auto;\n padding: 8px 0 16px;\n display: table;\n table-layout: fixed;\n width: 100%;\n max-width: 600px;\n list-style: none; }\n @media only screen and (min-width: 768px) {\n .ec-progress {\n margin-bottom: 30px;\n padding: 0; } }\n .ec-progress .ec-progress__item {\n display: table-cell;\n position: relative;\n font-size: 14px;\n text-align: center;\n font-weight: bold;\n z-index: 10; }\n .ec-progress .ec-progress__item:after {\n content: '';\n position: absolute;\n display: block;\n background: #525263;\n width: 100%;\n height: 0.25em;\n top: 1.25em;\n left: 50%;\n margin-left: 1.5em\\9;\n z-index: -1; }\n .ec-progress .ec-progress__item:last-child:after {\n display: none; }\n .ec-progress .ec-progress__number {\n line-height: 30px;\n width: 30px;\n height: 30px;\n margin-bottom: 5px;\n font-size: 12px;\n background: #525263;\n color: #fff;\n top: 0;\n left: 18px;\n display: inline-block;\n text-align: center;\n vertical-align: middle;\n border-radius: 50%; }\n @media only screen and (min-width: 768px) {\n .ec-progress .ec-progress__number {\n line-height: 42px;\n width: 42px;\n height: 42px;\n font-size: 20px; } }\n .ec-progress .ec-progress__label {\n font-size: 12px; }\n .ec-progress .is-complete .ec-progress__number {\n background: #5CB1B1; }\n .ec-progress .is-complete .ec-progress__label {\n color: #5CB1B1; }\n\n/*\nカートナビゲーション\n\nカートナビゲーションを表示します。 カートに追加された商品の個数も表示します。\n\nex [カートページ ナビゲーション部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\n+ec-headerCart\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 7.3.5\n*/\n@media only screen and (min-width: 768px) {\n .ec-cartNaviWrap {\n position: relative; } }\n\n.ec-cartNavi {\n display: inline-block;\n padding: 10px 0 0 20px;\n width: auto;\n color: black;\n background: transparent; }\n @media only screen and (min-width: 768px) {\n .ec-cartNavi {\n display: flex;\n justify-content: space-between;\n border-radius: 99999px;\n box-sizing: border-box;\n padding: 12px 17px 10px;\n width: auto;\n min-width: 140px;\n height: 44px;\n white-space: nowrap;\n cursor: pointer;\n background: #F8F8F8; } }\n .ec-cartNavi .ec-cartNavi__icon {\n display: inline-block;\n font-size: 20px;\n display: inline-block;\n opacity: 1;\n visibility: visible;\n animation: fadeIn 200ms linear 0s;\n position: relative; }\n .ec-cartNavi .ec-cartNavi__badge {\n display: inline-block;\n border-radius: 99999px;\n box-sizing: border-box;\n padding: 5px;\n height: 17px;\n font-size: 10px;\n line-height: 0.7;\n vertical-align: top;\n color: #fff;\n text-align: left;\n white-space: nowrap;\n background-color: #DE5D50;\n position: absolute;\n left: 60%;\n top: -10px; }\n @media only screen and (min-width: 768px) {\n .ec-cartNavi .ec-cartNavi__badge {\n display: inline-block;\n min-width: 17px;\n position: relative;\n left: 0;\n top: 0; } }\n .ec-cartNavi .ec-cartNavi__price {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-cartNavi .ec-cartNavi__price {\n display: inline-block;\n font-size: 14px;\n font-weight: normal;\n vertical-align: middle; } }\n\n.ec-cartNavi.is-active .ec-cartNavi__icon:before {\n content: \"\\f00d\";\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900; }\n\n.ec-cartNavi.is-active .ec-cartNavi__badge {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-cartNavi.is-active .ec-cartNavi__badge {\n display: none; } }\n\n/*\nカートナビゲーションのポップアップ(商品詳細)\n\nカートナビゲーションのポップアップを表示します。カートに追加された商品の詳細が表示されます。\n\nex [カートページ ナビゲーション部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ndiv(style=\"height:350px;\")\n // 上記のdivはスタイルガイド都合上、高さをもたせるため設置(mocでは不要)\n .is_active\n .ec-cartNavi\n .ec-cartNavi__icon\n img(src='/moc/icon/cart-dark.svg', alt='close')\n .ec-cartNavi__iconClose\n img(src='/moc/icon/cross-dark.svg', alt='close')\n .ec-cartNavi__badge 1\n .ec-cartNavi__label\n | 合計\n .ec-cartNavi__price ¥1920\n +b.ec-cartNaviIsset\n +e.cart\n +e.cartImage\n img(src='http://demo3.ec-cube.net/upload/save_image/0701104933_5593472d8d179.jpeg')\n +e.cartContent\n +e.cartContentTitle ミニテーブル\n +e.cartContentPrice ¥ 12,960\n +e.cartContentTax 税込\n +e.cartContentNumber 数量:1\n +e.action\n a.ec-blockBtn--action(href=\"/moc/guest/cart1\") カートへ進む\n a.ec-blockBtn.ec-cartNavi--cancel キャンセル\n\nStyleguide 7.3.6\n*/\n.ec-cartNaviIsset {\n display: none;\n width: 100%;\n text-align: center;\n background: #f8f8f8;\n box-sizing: border-box;\n padding: 16px;\n z-index: 20;\n position: absolute;\n right: 0; }\n @media only screen and (min-width: 768px) {\n .ec-cartNaviIsset {\n margin-top: 10px;\n min-width: 256px;\n max-width: 256px; }\n .ec-cartNaviIsset::before {\n display: inline-block;\n content: \"\";\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0 8.5px 10px 8.5px;\n border-color: transparent transparent #f8f8f8 transparent;\n position: absolute;\n top: -9px; } }\n .ec-cartNaviIsset .ec-cartNaviIsset__cart {\n border-bottom: 1px solid #E8E8E8;\n margin-bottom: 16px;\n padding-bottom: 32px; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cart:after {\n content: \" \";\n display: table; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cart:after {\n clear: both; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartImage {\n float: left;\n width: 45%; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartImage img {\n width: 100%; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartContent {\n float: right;\n width: 55%;\n padding-left: 16px;\n text-align: left;\n box-sizing: border-box; }\n .ec-cartNaviIsset .ec-cartNaviIsset__action .ec-blockBtn--action {\n color: #fff;\n margin-bottom: 8px; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartContentTitle {\n margin-bottom: 8px; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartContentPrice {\n font-weight: bold; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartContentTax {\n display: inline-block;\n font-size: 12px;\n font-weight: normal;\n margin-left: 2px; }\n .ec-cartNaviIsset .ec-cartNaviIsset__cartContentNumber {\n font-size: 14px; }\n\n.ec-cartNaviIsset.is-active {\n display: block; }\n\n/*\nカートナビゲーションのポップアップ(商品なし)\n\nカートナビゲーションのポップアップを表示します。商品が登録されていない場合の表示です。\n\nex [カートページ ナビゲーション部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ndiv(style=\"height:170px;\")\n // 上記のdivはスタイルガイド都合上、高さをもたせるため設置(mocでは不要)\n .is_active\n .ec-cartNavi\n .ec-cartNavi__icon\n img(src='/moc/icon/cart-dark.svg', alt='cart')\n .ec-cartNavi__iconClose\n img(src='/moc/icon/cross-dark.svg', alt='close')\n .ec-cartNavi__badge 1\n .ec-cartNavi__label\n | 合計\n .ec-cartNavi__price ¥1920\n .ec-cartNaviNull\n .ec-cartNaviNull__message\n p 現在カート内に\n br\n | 商品がございません。\n //+b.ec-cartNaviIsset\n // +e.cart\n // +e.cartImage\n // img(src='http://demo3.ec-cube.net/upload/save_image/0701104933_5593472d8d179.jpeg')\n // +e.cartContent\n // +e.cartContentTitle ミニテーブル\n // +e.cartContentPrice ¥ 12,960\n // +e.cartContentTax 税込\n // +e.cartContentNumber 数量:1\n // +e.action\n // a.ec-blockBtn--action(href=\"/moc/guest/cart1\") カートへ進む\n // a.ec-blockBtn キャンセル\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 7.3.7\n*/\n.ec-cartNaviNull {\n display: none;\n width: 100%;\n text-align: center;\n background: #f8f8f8;\n box-sizing: border-box;\n padding: 16px;\n z-index: 3;\n position: absolute;\n right: 0; }\n @media only screen and (min-width: 768px) {\n .ec-cartNaviNull {\n margin-top: 10px;\n min-width: 256px;\n max-width: 256px; }\n .ec-cartNaviNull::before {\n display: inline-block;\n content: \"\";\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0 8.5px 10px 8.5px;\n border-color: transparent transparent #f8f8f8 transparent;\n position: absolute;\n top: -9px; } }\n .ec-cartNaviNull .ec-cartNaviNull__message {\n border: 1px solid #D9D9D9;\n padding: 16px 0;\n font-size: 16px;\n font-weight: bold;\n color: #fff;\n background-color: #F99; }\n .ec-cartNaviNull .ec-cartNaviNull__message p {\n margin: 0; }\n\n.ec-cartNaviNull.is-active {\n display: block; }\n\n/*\n総計\n\n会計時の合計金額、総計を表示します。\n\nex [カートページ 統計部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/7.3.cart.pug\n+ec-totalBox\n\nStyleguide 7.3.8\n*/\n.ec-totalBox {\n background: #F3F3F3;\n padding: 16px;\n margin-bottom: 16px; }\n .ec-totalBox .ec-totalBox__spec {\n position: relative;\n margin-bottom: 8px; }\n .ec-totalBox .ec-totalBox__spec dt {\n font-weight: normal;\n position: relative;\n top: 0;\n left: 0;\n text-align: left; }\n .ec-totalBox .ec-totalBox__spec dd {\n position: absolute;\n top: 0;\n right: 0;\n text-align: right; }\n .ec-totalBox .ec-totalBox__spec .ec-totalBox .ec-totalBox__spec__specTotal {\n color: #DE5D50; }\n .ec-totalBox .ec-totalBox__total {\n border-top: 1px dotted #ccc;\n padding: 8px 0;\n text-align: right;\n font-size: 14px;\n font-weight: bold; }\n .ec-totalBox .ec-totalBox__price {\n margin-left: 16px;\n font-size: 16px;\n font-weight: bold;\n color: #DE5D50; }\n @media only screen and (min-width: 768px) {\n .ec-totalBox .ec-totalBox__price {\n font-size: 24px; } }\n .ec-totalBox .ec-totalBox__taxLabel {\n margin-left: 8px;\n color: #DE5D50;\n font-size: 12px; }\n @media only screen and (min-width: 768px) {\n .ec-totalBox .ec-totalBox__taxLabel {\n font-size: 14px; } }\n .ec-totalBox .ec-totalBox__btn {\n color: #fff; }\n .ec-totalBox .ec-totalBox__btn a {\n color: inherit;\n text-decoration: none; }\n .ec-totalBox .ec-totalBox__btn a:hover {\n text-decoration: none; }\n .ec-totalBox .ec-totalBox__btn .ec-blockBtn--action {\n font-size: 16px;\n font-weight: bold; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nお知らせ\n\n新着情報やバナーなどの掲載項目を紹介していきます。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 8.1\n*/\n/*\n新着情報\n\n新着情報の掲載をします。\n\nex [トップページ 新着情報部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/8.1.info.pug\n+ec-news\n\nStyleguide 8.1.1\n*/\n.ec-news {\n margin-bottom: 16px;\n background: #F8F8F8; }\n @media only screen and (min-width: 768px) {\n .ec-news {\n margin-right: 3%; } }\n @media only screen and (min-width: 768px) {\n .ec-news {\n margin-bottom: 32px; } }\n .ec-news .ec-news__title {\n font-weight: bold;\n padding: 8px;\n font-size: 16px;\n text-align: center; }\n @media only screen and (min-width: 768px) {\n .ec-news .ec-news__title {\n padding: 16px;\n text-align: left;\n font-size: 24px; } }\n .ec-news .ec-news__items {\n padding: 0;\n list-style: none;\n border-top: 1px dotted #ccc; }\n\n/*\n折りたたみ項目\n\n折りたたみ項目を掲載します。\n\nex [トップページ 折りたたみ項目部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/8.1.info.pug\n+b.ec-news\n +e.title 新着情報\n +e.UL.items\n +e.LI.item\n +b.ec-newsline.is_active\n +e.info\n +e.date 2016/09/29\n +e.comment サイトオープンしました\n +e.close\n a.ec-closeBtn--circle\n span.ec-closeBtn--circle__icon\n .ec-icon\n img(src='/moc/icon/angle-down-white.svg', alt='')\n +e.description 一人暮らしからオフィスなどさまざまなシーンで あなたの生活をサポートするグッズをご家庭へお届けします!\n\nStyleguide 8.1.2\n*/\n.ec-newsline {\n display: flex;\n flex-wrap: wrap;\n overflow: hidden;\n padding: 0 16px; }\n .ec-newsline .ec-newsline__info {\n width: 100%;\n padding: 16px 0; }\n .ec-newsline .ec-newsline__info:after {\n content: \" \";\n display: table; }\n .ec-newsline .ec-newsline__info:after {\n clear: both; }\n .ec-newsline .ec-newsline__date {\n display: inline-block;\n margin-right: 10px;\n float: left; }\n .ec-newsline .ec-newsline__comment {\n display: inline-block;\n float: left; }\n .ec-newsline .ec-newsline__close {\n float: right;\n display: inline-block;\n text-align: right; }\n .ec-newsline .ec-newsline__close .ec-closeBtn--circle {\n display: inline-block;\n width: 25px;\n height: 25px;\n min-width: 25px;\n min-height: 25px; }\n .ec-newsline .ec-newsline__description {\n width: 100%;\n height: 0;\n transition: all .2s ease-out; }\n .ec-newsline.is_active .ec-newsline__description {\n height: auto;\n transition: all .2s ease-out;\n padding-bottom: 16px; }\n .ec-newsline.is_active .ec-icon img {\n transform: rotateX(180deg); }\n\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nマイページ\n\nマイページで利用するためのスタイルガイド群です。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 9.1\n*/\n/*\nマイページ\n\nマイページで表示するメニューリストです。\n\nul を利用したリスト要素で記述します。\n\nex [マイページ メニューリスト部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-navlist\n\nStyleguide 9.1.1\n*/\n.ec-navlistRole .ec-navlistRole__navlist {\n display: flex;\n flex-wrap: wrap;\n border-color: #D0D0D0;\n border-style: solid;\n border-width: 1px 0 0 1px;\n margin-bottom: 32px;\n padding: 0;\n list-style: none; }\n .ec-navlistRole .ec-navlistRole__navlist a {\n color: inherit;\n text-decoration: none; }\n .ec-navlistRole .ec-navlistRole__navlist a:hover {\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-navlistRole .ec-navlistRole__navlist {\n flex-wrap: nowrap; } }\n\n.ec-navlistRole .ec-navlistRole__item {\n width: 50%;\n border-color: #D0D0D0;\n border-style: solid;\n border-width: 0 1px 1px 0;\n text-align: center;\n font-weight: bold; }\n .ec-navlistRole .ec-navlistRole__item a {\n padding: 16px;\n width: 100%;\n display: inline-block; }\n .ec-navlistRole .ec-navlistRole__item a:hover {\n background: #f5f7f8; }\n\n.ec-navlistRole .active a {\n color: #DE5D50; }\n\n/*\nマイページ(お気に入り機能無効)\n\nマイページで表示するメニューリストです。\n\nul を利用したリスト要素で記述します。\n\nex [マイページ メニューリスト部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-navlist_noFavorite\n\nStyleguide 9.1.2\n*/\n/*\nWelcome メッセージ\n\nマイページで表示するログイン名の表示コンポーネントです。\n\nex [マイページ メニューリスト下部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-welcomeMsg\n\nStyleguide 9.1.3\n*/\n.ec-welcomeMsg {\n margin-right: auto;\n margin-left: auto;\n padding-left: 16px;\n padding-right: 16px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n margin: 1em 0;\n padding-bottom: 32px;\n text-align: center;\n border-bottom: 1px dotted #ccc; }\n .ec-welcomeMsg:after {\n content: \" \";\n display: table; }\n .ec-welcomeMsg:after {\n clear: both; }\n .ec-welcomeMsg textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-welcomeMsg img {\n max-width: 100%; }\n .ec-welcomeMsg html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-welcomeMsg *,\n .ec-welcomeMsg *::before,\n .ec-welcomeMsg *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-welcomeMsg img {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-welcomeMsg {\n padding-left: 26px;\n padding-right: 26px; } }\n\n/*\nお気に入り一覧\n\nお気に入り一覧で表示するアイテムの表示コンポーネントです。\n\nex [マイページ お気に入り一覧](http://demo3.ec-cube.net/mypage/favorite)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-favorite\n\nStyleguide 9.1.4\n*/\n.ec-favoriteRole .ec-favoriteRole__header {\n margin-bottom: 16px; }\n\n.ec-favoriteRole .ec-favoriteRole__itemList {\n display: flex;\n flex-wrap: wrap;\n padding: 0;\n list-style: none; }\n .ec-favoriteRole .ec-favoriteRole__itemList a {\n color: inherit;\n text-decoration: none; }\n .ec-favoriteRole .ec-favoriteRole__itemList a:hover {\n text-decoration: none; }\n\n.ec-favoriteRole .ec-favoriteRole__item {\n margin-bottom: 8px;\n width: 47.5%;\n position: relative;\n box-sizing: border-box;\n padding: 10px; }\n .ec-favoriteRole .ec-favoriteRole__item-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center; }\n @media only screen and (min-width: 768px) {\n .ec-favoriteRole .ec-favoriteRole__item-image {\n height: 250px; } }\n .ec-favoriteRole .ec-favoriteRole__item img {\n width: auto;\n max-height: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-favoriteRole .ec-favoriteRole__item {\n width: 25%; } }\n .ec-favoriteRole .ec-favoriteRole__item .ec-closeBtn--circle {\n position: absolute;\n right: 10px;\n top: 10px; }\n .ec-favoriteRole .ec-favoriteRole__item .ec-closeBtn--circle .ec-icon img {\n width: 1em;\n height: 1em; }\n\n.ec-favoriteRole .ec-favoriteRole__itemThumb {\n display: block;\n height: auto;\n margin-bottom: 8px; }\n\n.ec-favoriteRole .ec-favoriteRole__itemTitle {\n margin-bottom: 2px; }\n\n.ec-favoriteRole .ec-favoriteRole__itemPrice {\n font-weight: bold;\n margin-bottom: 0; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n標準セクション\n\n通常のコンテナブロックです。\n\nex [商品詳細ページ コンテナ](http://demo3.ec-cube.net/products/detail/33)\n\nMarkup:\ninclude /assets/tmpl/elements/11.1.role.pug\n+ec-roleRole\n\nStyleguide 11.1\n*/\n.ec-role {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-role:after {\n content: \" \";\n display: table; }\n .ec-role:after {\n clear: both; }\n .ec-role textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-role img {\n max-width: 100%; }\n .ec-role html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-role *,\n .ec-role *::before,\n .ec-role *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-role img {\n width: 100%; }\n\n/*\nマイページセクション\n\nマイページ専用のコンテナブロックです。\n\nex [マイページ コンテナ](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/11.1.role.pug\n+ec-mypageRole\n\nStyleguide 11.1.2\n*/\n.ec-mypageRole {\n margin-right: auto;\n margin-left: auto;\n padding-left: 16px;\n padding-right: 16px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%; }\n .ec-mypageRole:after {\n content: \" \";\n display: table; }\n .ec-mypageRole:after {\n clear: both; }\n .ec-mypageRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-mypageRole img {\n max-width: 100%; }\n .ec-mypageRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-mypageRole *,\n .ec-mypageRole *::before,\n .ec-mypageRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-mypageRole img {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-mypageRole {\n padding-left: 26px;\n padding-right: 26px; } }\n @media only screen and (min-width: 768px) {\n .ec-mypageRole .ec-pageHeader h1 {\n margin: 10px 0 48px;\n padding: 8px 0 18px; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n visibility: hidden; }\n 100% {\n opacity: 1;\n visibility: visible; } }\n\n@keyframes fadeOut {\n 0% {\n opacity: 1;\n visibility: visible; }\n 100% {\n opacity: 0;\n visibility: hidden; } }\n\n.bg-load-overlay {\n background: rgba(255, 255, 255, 0.4);\n box-sizing: border-box;\n position: fixed;\n display: flex;\n flex-flow: column nowrap;\n align-items: center;\n justify-content: space-around;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 2147483647;\n opacity: 1; }\n\n/*\nヘッダー\n\nヘッダー用のプロジェクトコンポーネントを提供します。\n\nex [トップページ ヘッダー](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\ninclude /assets/tmpl/elements/11.4.categoryNavi.pug\n+b.ec-layoutRole\n +e.header\n +ec-headerRole\n +ec-headerNaviRole\n +ec-categoryNaviRole\n\nStyleguide 11.2\n*/\n.ec-layoutRole {\n width: 100%;\n transition: transform 0.3s;\n background: #fff; }\n .ec-layoutRole .ec-layoutRole__contentTop {\n padding: 0; }\n .ec-layoutRole .ec-layoutRole__contents {\n margin-right: auto;\n margin-left: auto;\n width: 100%;\n max-width: 1150px;\n display: flex;\n flex-wrap: nowrap; }\n .ec-layoutRole .ec-layoutRole__main {\n width: 100%; }\n .ec-layoutRole .ec-layoutRole__mainWithColumn {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-layoutRole .ec-layoutRole__mainWithColumn {\n width: 75%; } }\n .ec-layoutRole .ec-layoutRole__mainBetweenColumn {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-layoutRole .ec-layoutRole__mainBetweenColumn {\n width: 50%; } }\n .ec-layoutRole .ec-layoutRole__left,\n .ec-layoutRole .ec-layoutRole__right {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-layoutRole .ec-layoutRole__left,\n .ec-layoutRole .ec-layoutRole__right {\n display: block;\n width: 25%; } }\n\n.ec-headerRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n padding-top: 15px;\n position: relative;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n width: auto; }\n .ec-headerRole:after {\n content: \" \";\n display: table; }\n .ec-headerRole:after {\n clear: both; }\n .ec-headerRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-headerRole img {\n max-width: 100%; }\n .ec-headerRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-headerRole *,\n .ec-headerRole *::before,\n .ec-headerRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-headerRole img {\n width: 100%; }\n .ec-headerRole:after {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-headerRole:after {\n content: \" \";\n display: table; }\n .ec-headerRole:after {\n clear: both; } }\n .ec-headerRole::before {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-headerRole {\n width: 100%; }\n .ec-headerRole:after {\n content: \" \";\n display: table; }\n .ec-headerRole:after {\n clear: both; } }\n .ec-headerRole .ec-headerRole__title {\n width: 100%; }\n .ec-headerRole .ec-headerRole__navSP {\n display: block;\n position: absolute;\n top: 15px;\n width: 27%;\n right: 0;\n text-align: right; }\n @media only screen and (min-width: 768px) {\n .ec-headerRole .ec-headerRole__navSP {\n display: none; } }\n\n.ec-headerNaviRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-top: 15px; }\n .ec-headerNaviRole:after {\n content: \" \";\n display: table; }\n .ec-headerNaviRole:after {\n clear: both; }\n .ec-headerNaviRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-headerNaviRole img {\n max-width: 100%; }\n .ec-headerNaviRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-headerNaviRole *,\n .ec-headerNaviRole *::before,\n .ec-headerNaviRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-headerNaviRole img {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-headerNaviRole {\n padding-bottom: 40px; } }\n .ec-headerNaviRole .ec-headerNaviRole__left {\n width: calc(100% / 3); }\n .ec-headerNaviRole .ec-headerNaviRole__search {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-headerNaviRole .ec-headerNaviRole__search {\n display: inline-block;\n margin-top: 10px; }\n .ec-headerNaviRole .ec-headerNaviRole__search a {\n color: inherit;\n text-decoration: none; }\n .ec-headerNaviRole .ec-headerNaviRole__search a:hover {\n text-decoration: none; } }\n .ec-headerNaviRole .ec-headerNaviRole__navSP {\n display: block; }\n @media only screen and (min-width: 768px) {\n .ec-headerNaviRole .ec-headerNaviRole__navSP {\n display: none; }\n .ec-headerNaviRole .ec-headerNaviRole__navSP a {\n color: inherit;\n text-decoration: none; }\n .ec-headerNaviRole .ec-headerNaviRole__navSP a:hover {\n text-decoration: none; } }\n .ec-headerNaviRole .ec-headerNaviRole__right {\n width: calc(100% * 2 / 3);\n display: flex;\n justify-content: flex-end;\n align-items: center; }\n .ec-headerNaviRole .ec-headerNaviRole__nav {\n display: inline-block; }\n .ec-headerNaviRole .ec-headerNaviRole__nav a {\n color: inherit;\n text-decoration: none; }\n .ec-headerNaviRole .ec-headerNaviRole__nav a:hover {\n text-decoration: none; }\n .ec-headerNaviRole .ec-headerNaviRole__cart {\n display: inline-block; }\n .ec-headerNaviRole .ec-headerNaviRole__cart a {\n color: inherit;\n text-decoration: none; }\n .ec-headerNaviRole .ec-headerNaviRole__cart a:hover {\n text-decoration: none; }\n\n.ec-headerNavSP {\n display: block;\n border-radius: 50%;\n box-sizing: border-box;\n padding: 10px;\n width: 40px;\n height: 40px;\n font-size: 18px;\n text-align: center;\n color: black;\n background: white;\n position: fixed;\n top: 10px;\n left: 10px;\n z-index: 1000; }\n .ec-headerNavSP .fas {\n vertical-align: top; }\n @media only screen and (min-width: 768px) {\n .ec-headerNavSP {\n display: none; } }\n\n.ec-headerNavSP.is-active {\n display: none; }\n\n/*\nヘッダー:タイトル\n\nヘッダー内で使用されるタイトルコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\n+ec-headerTitle\n\nStyleguide 11.2.1\n*/\n.ec-headerTitle {\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%; }\n .ec-headerTitle textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-headerTitle img {\n max-width: 100%; }\n .ec-headerTitle html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-headerTitle *,\n .ec-headerTitle *::before,\n .ec-headerTitle *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-headerTitle img {\n width: 100%; }\n .ec-headerTitle .ec-headerTitle__title {\n text-align: center; }\n .ec-headerTitle .ec-headerTitle__title h1 {\n margin: 0;\n padding: 0; }\n .ec-headerTitle .ec-headerTitle__title a {\n display: inline-block;\n margin-bottom: 30px;\n text-decoration: none;\n font-size: 20px;\n font-weight: bold;\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-headerTitle .ec-headerTitle__title a {\n font-size: 40px; } }\n .ec-headerTitle .ec-headerTitle__title a:hover {\n opacity: .8; }\n .ec-headerTitle .ec-headerTitle__subtitle {\n font-size: 10px;\n text-align: center; }\n @media only screen and (min-width: 768px) {\n .ec-headerTitle .ec-headerTitle__subtitle {\n font-size: 16px;\n margin-bottom: 10px; } }\n .ec-headerTitle .ec-headerTitle__subtitle a {\n display: inline-block;\n color: #0092C4;\n text-decoration: none;\n cursor: pointer; }\n\n/*\nヘッダー:ユーザナビゲーション\n\nヘッダー内でユーザに関与するナビゲーションコンポーネントです。\n

\n`.ec-headerNaviRole`>`.ec-headerNaviRole__nav`内に記述すると2カラム上の右側に配置することができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\n+ec-headerNav\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.2.3\n*/\n.ec-headerNav {\n text-align: right; }\n .ec-headerNav .ec-headerNav__item {\n margin-left: 0;\n display: inline-block;\n font-size: 28px; }\n .ec-headerNav .ec-headerNav__itemIcon {\n display: inline-block;\n margin-right: 10px;\n margin-left: 10px;\n font-size: 18px;\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-headerNav .ec-headerNav__itemIcon {\n margin-right: 0;\n font-size: 20px; } }\n .ec-headerNav .ec-headerNav__itemLink {\n display: none;\n margin-right: 5px;\n font-size: 14px;\n vertical-align: middle;\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-headerNav .ec-headerNav__itemLink {\n display: inline-block; } }\n\n/*\nヘッダー:検索ボックス\n\nヘッダー内で使用される商品検索コンポーネントです。\n

\n`.ec-headerNaviRole`>`.ec-headerNaviRole__search`内に記述すると2カラム上の右側に配置することができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\n+ec-headerSearch\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.2.4\n*/\n.ec-headerSearch:after {\n content: \" \";\n display: table; }\n\n.ec-headerSearch:after {\n clear: both; }\n\n.ec-headerSearch .ec-headerSearch__category {\n float: none; }\n @media only screen and (min-width: 768px) {\n .ec-headerSearch .ec-headerSearch__category {\n float: left;\n width: 43%; } }\n .ec-headerSearch .ec-headerSearch__category .ec-select {\n overflow: hidden;\n width: 100%;\n margin: 0;\n text-align: center; }\n .ec-headerSearch .ec-headerSearch__category .ec-select select {\n width: 100%;\n cursor: pointer;\n padding: 8px 24px 8px 8px;\n text-indent: 0.01px;\n text-overflow: ellipsis;\n border: none;\n outline: none;\n background: transparent;\n background-image: none;\n box-shadow: none;\n appearance: none;\n color: #fff; }\n @media only screen and (min-width: 768px) {\n .ec-headerSearch .ec-headerSearch__category .ec-select select {\n max-width: 165px;\n height: 36px; } }\n .ec-headerSearch .ec-headerSearch__category .ec-select select option {\n color: #000; }\n .ec-headerSearch .ec-headerSearch__category .ec-select select::-ms-expand {\n display: none; }\n .ec-headerSearch .ec-headerSearch__category .ec-select.ec-select_search {\n position: relative;\n border: 0;\n background: #000;\n color: #fff;\n border-top-right-radius: 10px;\n border-top-left-radius: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-headerSearch .ec-headerSearch__category .ec-select.ec-select_search {\n border-top-right-radius: inherit;\n border-top-left-radius: 50px;\n border-bottom-left-radius: 50px; } }\n .ec-headerSearch .ec-headerSearch__category .ec-select.ec-select_search::before {\n position: absolute;\n top: 0.8em;\n right: 0.4em;\n width: 0;\n height: 0;\n padding: 0;\n content: '';\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid #fff;\n pointer-events: none; }\n\n.ec-headerSearch .ec-headerSearch__keyword {\n position: relative;\n color: #525263;\n border: 1px solid #ccc;\n background-color: #f6f6f6;\n border-bottom-right-radius: 10px;\n border-bottom-left-radius: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-headerSearch .ec-headerSearch__keyword {\n float: right;\n width: 57%;\n border-bottom-left-radius: inherit;\n border-top-right-radius: 50px;\n border-bottom-right-radius: 50px; } }\n .ec-headerSearch .ec-headerSearch__keyword input[type=\"search\"] {\n width: 100%;\n height: 34px;\n font-size: 1.2rem;\n border: 0 none;\n padding: 0.5em 50px 0.5em 1em;\n box-shadow: none;\n background: none;\n box-sizing: border-box;\n margin-bottom: 0; }\n .ec-headerSearch .ec-headerSearch__keyword .ec-icon {\n width: 22px;\n height: 22px; }\n\n.ec-headerSearch .ec-headerSearch__keywordBtn {\n border: 0;\n background: none;\n position: absolute;\n right: 5px;\n top: 50%;\n transform: translateY(-55%);\n display: block;\n white-space: nowrap;\n z-index: 1; }\n\n/*\nヘッダー:カテゴリナビ\n\nヘッダー内で使用されている商品のカテゴリ一覧として使用します。\n`li`の中に`ul > li`要素を入れることで、階層を深くする事ができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.4.categoryNavi.pug\n+ec-itemNav\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 11.2.5\n*/\n.ec-categoryNaviRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n display: none; }\n .ec-categoryNaviRole:after {\n content: \" \";\n display: table; }\n .ec-categoryNaviRole:after {\n clear: both; }\n .ec-categoryNaviRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-categoryNaviRole img {\n max-width: 100%; }\n .ec-categoryNaviRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-categoryNaviRole *,\n .ec-categoryNaviRole *::before,\n .ec-categoryNaviRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-categoryNaviRole img {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-categoryNaviRole {\n display: block;\n width: 100%; }\n .ec-categoryNaviRole a {\n color: inherit;\n text-decoration: none; }\n .ec-categoryNaviRole a:hover {\n text-decoration: none; } }\n\n.ec-itemNav {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n text-align: center; }\n\n.ec-itemNav__nav {\n display: block;\n margin: 0 auto;\n padding: 0;\n width: auto;\n height: auto;\n list-style-type: none;\n text-align: center;\n vertical-align: bottom; }\n @media only screen and (min-width: 768px) {\n .ec-itemNav__nav {\n display: inline-block; } }\n\n.ec-itemNav__nav li {\n float: none;\n margin: 0;\n padding: 0;\n width: 100%;\n text-align: center;\n position: relative; }\n @media only screen and (min-width: 768px) {\n .ec-itemNav__nav li {\n float: left;\n width: auto; } }\n\n.ec-itemNav__nav li a {\n display: block;\n border-bottom: 1px solid #E8E8E8;\n margin: 0;\n padding: 16px;\n height: 55px;\n color: #2e3233;\n font-size: 16px;\n font-weight: bold;\n line-height: 20px;\n text-decoration: none;\n text-align: left;\n background: #fff;\n border-bottom: 1px solid #E8E8E8; }\n @media only screen and (min-width: 768px) {\n .ec-itemNav__nav li a {\n text-align: center;\n border-bottom: none; } }\n\n.ec-itemNav__nav li ul {\n display: none;\n z-index: 0;\n margin: 0;\n padding: 0;\n min-width: 200px;\n list-style: none;\n position: static;\n top: 100%;\n left: 0; }\n @media only screen and (min-width: 768px) {\n .ec-itemNav__nav li ul {\n display: block;\n z-index: 100;\n position: absolute; } }\n\n.ec-itemNav__nav li ul li {\n overflow: hidden;\n width: 100%;\n height: auto;\n transition: .3s; }\n @media only screen and (min-width: 768px) {\n .ec-itemNav__nav li ul li {\n overflow: hidden;\n height: 0; } }\n\n.ec-itemNav__nav li ul li a {\n border-bottom: 1px solid #E8E8E8;\n padding: 16px;\n font-size: 16px;\n font-weight: bold;\n color: white;\n text-align: left;\n background: black; }\n\n.ec-itemNav__nav > li:hover > a {\n background: #fafafa; }\n\n.ec-itemNav__nav > li:hover li:hover > a {\n background: #333; }\n\n@media only screen and (min-width: 768px) {\n .ec-itemNav__nav > li:hover > ul > li {\n overflow: visible;\n height: 55px; } }\n\n.ec-itemNav__nav li ul li ul {\n top: 0;\n left: 100%;\n width: auto; }\n\n@media only screen and (min-width: 768px) {\n .ec-itemNav__nav li ul li ul:before {\n content: \"\\f054\";\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900;\n font-size: 12px;\n color: white;\n position: absolute;\n top: 19px;\n right: auto;\n left: -20px; } }\n\n@media only screen and (min-width: 768px) {\n .ec-itemNav__nav li ul li:hover > ul > li {\n overflow: visible;\n height: 55px;\n width: auto; } }\n\n.ec-itemNav__nav li ul li ul li a {\n background: #7D7D7D; }\n\n.ec-itemNav__nav li:hover ul li ul li a:hover {\n background: #333; }\n\n/*\nヘッダー:SPヘッダー\n\nSP時のみ出現するヘッダーに関係するコンポーネントです。
\nex [トップページ](http://demo3.ec-cube.net/)画面サイズが768px以下に該当。
\n
\n`.ec-drawerRole`:SPのドロワー内の要素をwrapするコンポーネントです。
\n`.ec-headerSearch`、`.ec-headerNav`、`.ec-itemNav`は`.ec-drawerRole`の子要素にある場合、ドロワーに適したスタイルに変化します。

\n`.ec-overlayRole`:SPのドロワー出現時にz-indexがドロワー以下の要素に半透明の黒背景をかぶせるコンポーネントです。
\n\nStyleguide 11.2.6\n*/\n.ec-drawerRole {\n overflow-y: scroll;\n background: black;\n width: 260px;\n height: 100vh;\n transform: translateX(-300px);\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n transition: z-index 0ms 1ms; }\n @media only screen and (min-width: 768px) {\n .ec-drawerRole {\n display: none; } }\n .ec-drawerRole .ec-headerSearchArea {\n padding: 20px 10px;\n width: 100%;\n background: #F8F8F8; }\n .ec-drawerRole .ec-headerSearch {\n padding: 16px 8px 26px;\n background: #EBEBEB;\n color: #636378; }\n .ec-drawerRole .ec-headerSearch select {\n width: 100% !important; }\n .ec-drawerRole .ec-headerCategoryArea .ec-headerCategoryArea__heading {\n border-top: 1px solid #CCCCCC;\n border-bottom: 1px solid #CCCCCC;\n padding: 1em 10px;\n font-size: 16px;\n font-weight: bold;\n color: black;\n background: #F8F8F8; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav li a {\n border-bottom: 1px solid #ccc;\n border-bottom: 1px solid #ccc;\n color: black;\n font-weight: normal;\n background: #f8f8f8; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav li ul li a {\n border-bottom: 1px solid #ccc;\n padding-left: 20px;\n font-weight: normal;\n background: white; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav > li:hover > a {\n background: #f8f8f8; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav > li:hover li:hover > a {\n background: white; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav li ul li ul li a {\n padding-left: 40px;\n color: black;\n background: white; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav li:hover ul li ul li a:hover {\n background: white; }\n .ec-drawerRole .ec-headerCategoryArea .ec-itemNav__nav li ul li ul li ul li a {\n padding-left: 60px;\n font-weight: normal; }\n .ec-drawerRole .ec-headerLinkArea {\n background: black; }\n .ec-drawerRole .ec-headerLinkArea .ec-headerLink__list {\n border-top: 1px solid #ccc; }\n .ec-drawerRole .ec-headerLinkArea .ec-headerLink__item {\n display: block;\n border-bottom: 1px solid #ccc;\n padding: 15px 20px;\n font-size: 16px;\n font-weight: bold;\n color: white; }\n .ec-drawerRole .ec-headerLinkArea .ec-headerLink__icon {\n display: inline-block;\n width: 28px;\n font-size: 17px; }\n\n.ec-drawerRoleClose {\n display: none;\n border-radius: 50%;\n box-sizing: border-box;\n padding: 10px;\n width: 40px;\n height: 40px;\n font-size: 18px;\n text-align: center;\n color: black;\n background: white;\n position: fixed;\n top: 10px;\n left: 270px;\n z-index: 1000; }\n .ec-drawerRoleClose .fas {\n vertical-align: top; }\n @media only screen and (min-width: 768px) {\n .ec-drawerRoleClose {\n display: none; } }\n\n.ec-drawerRole.is_active {\n display: block;\n transform: translateX(0);\n transition: all .3s;\n z-index: 100000; }\n @media only screen and (min-width: 768px) {\n .ec-drawerRole.is_active {\n display: none; } }\n\n.ec-drawerRoleClose.is_active {\n display: inline-block;\n transition: all .3s; }\n @media only screen and (min-width: 768px) {\n .ec-drawerRoleClose.is_active {\n display: none; } }\n\n.ec-overlayRole {\n position: fixed;\n width: 100%;\n height: 100vh;\n top: 0;\n left: 0;\n opacity: 0;\n background: transparent;\n transform: translateX(0);\n transition: all .3s;\n visibility: hidden; }\n @media only screen and (min-width: 768px) {\n .ec-overlayRole {\n display: none; } }\n\n.have_curtain .ec-overlayRole {\n display: block;\n opacity: 1;\n background: rgba(0, 0, 0, 0.5);\n visibility: visible; }\n @media only screen and (min-width: 768px) {\n .have_curtain .ec-overlayRole {\n display: none; } }\n\n/*\nヘッダー:test\n\ntest\n\nMarkup:\nspan.ec-itemAccordionParent test1\nul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test2\n ul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test3\n ul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test4\n\nStyleguide 11.2.7\n*/\n.ec-itemNavAccordion {\n display: none; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\nフッター\n\n全ページで使用されるフッターのプロジェクトコンポーネントです。\n\nex [トップページ フッター](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerRole\n\nStyleguide 11.3\n*/\n.ec-footerRole {\n border-top: 1px solid #7d7d7d;\n margin-top: 30px;\n background: black; }\n @media only screen and (min-width: 768px) {\n .ec-footerRole {\n padding-top: 40px;\n margin-top: 100px; } }\n @media only screen and (min-width: 768px) {\n .ec-footerRole .ec-footerRole__inner {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-footerRole .ec-footerRole__inner:after {\n content: \" \";\n display: table; }\n .ec-footerRole .ec-footerRole__inner:after {\n clear: both; }\n .ec-footerRole .ec-footerRole__inner textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-footerRole .ec-footerRole__inner img {\n max-width: 100%; }\n .ec-footerRole .ec-footerRole__inner html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-footerRole .ec-footerRole__inner *,\n .ec-footerRole .ec-footerRole__inner *::before,\n .ec-footerRole .ec-footerRole__inner *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-footerRole .ec-footerRole__inner img {\n width: 100%; } }\n\n/*\nフッターナビ\n\nフッタープロジェクトで使用するナビゲーション用のコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerNav\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.3.1\n*/\n.ec-footerNavi {\n padding: 0;\n color: white;\n list-style: none;\n text-align: center; }\n .ec-footerNavi .ec-footerNavi__link {\n display: block; }\n @media only screen and (min-width: 768px) {\n .ec-footerNavi .ec-footerNavi__link {\n display: inline-block; } }\n .ec-footerNavi .ec-footerNavi__link a {\n display: block;\n border-bottom: 1px solid #7d7d7d;\n padding: 15px 0;\n font-size: 14px;\n color: inherit;\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-footerNavi .ec-footerNavi__link a {\n display: inline-block;\n border-bottom: none;\n margin: 0 10px;\n padding: 0;\n text-decoration: underline; } }\n .ec-footerNavi .ec-footerNavi__link:hover a {\n opacity: .8;\n text-decoration: none; }\n\n/*\nフッタータイトル\n\nフッタープロジェクトで使用するタイトル用のコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerTitle\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.3.2\n*/\n.ec-footerTitle {\n padding: 40px 0 60px;\n text-align: center;\n color: white; }\n @media only screen and (min-width: 768px) {\n .ec-footerTitle {\n padding: 50px 0 80px; } }\n .ec-footerTitle .ec-footerTitle__logo {\n display: block;\n margin-bottom: 10px;\n font-weight: bold; }\n .ec-footerTitle .ec-footerTitle__logo a {\n color: inherit;\n text-decoration: none; }\n .ec-footerTitle .ec-footerTitle__logo a:hover {\n text-decoration: none; }\n .ec-footerTitle .ec-footerTitle__logo a {\n font-size: 22px;\n color: inherit; }\n @media only screen and (min-width: 768px) {\n .ec-footerTitle .ec-footerTitle__logo a {\n font-size: 24px; } }\n .ec-footerTitle .ec-footerTitle__logo:hover a {\n opacity: .8;\n text-decoration: none; }\n .ec-footerTitle .ec-footerTitle__copyright {\n font-size: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-footerTitle .ec-footerTitle__copyright {\n font-size: 12px; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nトップページ\n\nトップページ スライド部に関する Project コンポーネントを定義します。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/12.1.slider.pug\n+ec-sliderRole\n\nStyleguide 12.1\n*/\n.ec-sliderRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n margin-bottom: 24px; }\n .ec-sliderRole:after {\n content: \" \";\n display: table; }\n .ec-sliderRole:after {\n clear: both; }\n .ec-sliderRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-sliderRole img {\n max-width: 100%; }\n .ec-sliderRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-sliderRole *,\n .ec-sliderRole *::before,\n .ec-sliderRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-sliderRole img {\n width: 100%; }\n .ec-sliderRole ul {\n padding: 0;\n list-style: none; }\n\n.ec-sliderItemRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n margin-bottom: 24px; }\n .ec-sliderItemRole:after {\n content: \" \";\n display: table; }\n .ec-sliderItemRole:after {\n clear: both; }\n .ec-sliderItemRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-sliderItemRole img {\n max-width: 100%; }\n .ec-sliderItemRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-sliderItemRole *,\n .ec-sliderItemRole *::before,\n .ec-sliderItemRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-sliderItemRole img {\n width: 100%; }\n .ec-sliderItemRole ul {\n padding: 0;\n list-style: none; }\n .ec-sliderItemRole .item_nav {\n display: none; }\n @media only screen and (min-width: 768px) {\n .ec-sliderItemRole .item_nav {\n display: flex;\n justify-content: flex-start;\n flex-wrap: wrap;\n margin-bottom: 0; } }\n .ec-sliderItemRole .slideThumb {\n margin-bottom: 25px;\n width: 33%;\n opacity: .8;\n cursor: pointer; }\n .ec-sliderItemRole .slideThumb:focus {\n outline: none; }\n .ec-sliderItemRole .slideThumb:hover {\n opacity: 1; }\n .ec-sliderItemRole .slideThumb img {\n width: 80%; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nアイキャッチ\n\nトップページ アイキャッチ部に関する Project コンポーネントを定義します。\n\nex [トップページスライダー直下 アイキャッチ部](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/12.2.eyecatch.pug\n+ec-eyecatchRole\n\nStyleguide 12.2\n*/\n.ec-eyecatchRole {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 40px; }\n @media only screen and (min-width: 768px) {\n .ec-eyecatchRole {\n flex-wrap: nowrap; } }\n .ec-eyecatchRole .ec-eyecatchRole__image {\n display: block;\n margin-bottom: 40px;\n width: 100%;\n height: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-eyecatchRole .ec-eyecatchRole__image {\n order: 2; } }\n .ec-eyecatchRole .ec-eyecatchRole__intro {\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-eyecatchRole .ec-eyecatchRole__intro {\n padding-right: 5%;\n order: 1; } }\n .ec-eyecatchRole .ec-eyecatchRole__introEnTitle {\n margin-bottom: .8em;\n font-size: 16px;\n font-weight: normal; }\n @media only screen and (min-width: 768px) {\n .ec-eyecatchRole .ec-eyecatchRole__introEnTitle {\n margin-top: 45px; } }\n .ec-eyecatchRole .ec-eyecatchRole__introTitle {\n margin-bottom: .8em;\n font-size: 24px;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-eyecatchRole .ec-eyecatchRole__introTitle {\n margin-bottom: 1em;\n font-size: 26px; } }\n .ec-eyecatchRole .ec-eyecatchRole__introDescriptiron {\n margin-bottom: 20px;\n font-size: 16px;\n line-height: 2; }\n @media only screen and (min-width: 768px) {\n .ec-eyecatchRole .ec-eyecatchRole__introDescriptiron {\n margin-bottom: 30px; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nボタン\n\nトップページで使用されているボタンのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.3\n*/\n/*\n通常ボタン\n\nインラインの要素としてボタンを定義出来ます。\n\nMarkup:\n.ec-inlineBtn--top more\n\nStyleguide 12.3.1\n*/\n.ec-inlineBtn--top {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: white;\n background-color: black;\n border-color: black; }\n .ec-inlineBtn--top:focus, .ec-inlineBtn--top.focus, .ec-inlineBtn--top:active:focus, .ec-inlineBtn--top:active.focus, .ec-inlineBtn--top.active:focus, .ec-inlineBtn--top.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-inlineBtn--top:hover, .ec-inlineBtn--top:focus, .ec-inlineBtn--top.focus {\n color: #525263;\n text-decoration: none; }\n .ec-inlineBtn--top:active, .ec-inlineBtn--top.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-inlineBtn--top.disabled, .ec-inlineBtn--top[disabled],\n fieldset[disabled] .ec-inlineBtn--top {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-inlineBtn--top:focus, .ec-inlineBtn--top.focus {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-inlineBtn--top:hover {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-inlineBtn--top:active, .ec-inlineBtn--top.active,\n .open > .ec-inlineBtn--top.dropdown-toggle {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-inlineBtn--top:active:hover, .ec-inlineBtn--top:active:focus, .ec-inlineBtn--top:active.focus, .ec-inlineBtn--top.active:hover, .ec-inlineBtn--top.active:focus, .ec-inlineBtn--top.active.focus,\n .open > .ec-inlineBtn--top.dropdown-toggle:hover,\n .open > .ec-inlineBtn--top.dropdown-toggle:focus,\n .open > .ec-inlineBtn--top.dropdown-toggle.focus {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-inlineBtn--top:active, .ec-inlineBtn--top.active,\n .open > .ec-inlineBtn--top.dropdown-toggle {\n background-image: none; }\n .ec-inlineBtn--top.disabled:hover, .ec-inlineBtn--top.disabled:focus, .ec-inlineBtn--top.disabled.focus, .ec-inlineBtn--top[disabled]:hover, .ec-inlineBtn--top[disabled]:focus, .ec-inlineBtn--top[disabled].focus,\n fieldset[disabled] .ec-inlineBtn--top:hover,\n fieldset[disabled] .ec-inlineBtn--top:focus,\n fieldset[disabled] .ec-inlineBtn--top.focus {\n background-color: black;\n border-color: black; }\n .ec-inlineBtn--top .badge {\n color: black;\n background-color: white; }\n .ec-inlineBtn--top .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n\n/*\nロングボタン(全幅)\n\nロングタイプのボタンです。\n\nMarkup:\n.ec-blockBtn--top 商品一覧へ\n\nStyleguide 2.1.2\n*/\n.ec-blockBtn--top {\n display: inline-block;\n margin-bottom: 0;\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n padding: 10px 16px;\n text-decoration: none;\n color: white;\n background-color: black;\n border-color: black;\n display: block;\n height: 56px;\n line-height: 56px;\n padding-top: 0;\n padding-bottom: 0; }\n .ec-blockBtn--top:focus, .ec-blockBtn--top.focus, .ec-blockBtn--top:active:focus, .ec-blockBtn--top:active.focus, .ec-blockBtn--top.active:focus, .ec-blockBtn--top.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px; }\n .ec-blockBtn--top:hover, .ec-blockBtn--top:focus, .ec-blockBtn--top.focus {\n color: #525263;\n text-decoration: none; }\n .ec-blockBtn--top:active, .ec-blockBtn--top.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n .ec-blockBtn--top.disabled, .ec-blockBtn--top[disabled],\n fieldset[disabled] .ec-blockBtn--top {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none; }\n .ec-blockBtn--top:focus, .ec-blockBtn--top.focus {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-blockBtn--top:hover {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-blockBtn--top:active, .ec-blockBtn--top.active,\n .open > .ec-blockBtn--top.dropdown-toggle {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-blockBtn--top:active:hover, .ec-blockBtn--top:active:focus, .ec-blockBtn--top:active.focus, .ec-blockBtn--top.active:hover, .ec-blockBtn--top.active:focus, .ec-blockBtn--top.active.focus,\n .open > .ec-blockBtn--top.dropdown-toggle:hover,\n .open > .ec-blockBtn--top.dropdown-toggle:focus,\n .open > .ec-blockBtn--top.dropdown-toggle.focus {\n color: white;\n background-color: black;\n border-color: black; }\n .ec-blockBtn--top:active, .ec-blockBtn--top.active,\n .open > .ec-blockBtn--top.dropdown-toggle {\n background-image: none; }\n .ec-blockBtn--top.disabled:hover, .ec-blockBtn--top.disabled:focus, .ec-blockBtn--top.disabled.focus, .ec-blockBtn--top[disabled]:hover, .ec-blockBtn--top[disabled]:focus, .ec-blockBtn--top[disabled].focus,\n fieldset[disabled] .ec-blockBtn--top:hover,\n fieldset[disabled] .ec-blockBtn--top:focus,\n fieldset[disabled] .ec-blockBtn--top.focus {\n background-color: black;\n border-color: black; }\n .ec-blockBtn--top .badge {\n color: black;\n background-color: white; }\n .ec-blockBtn--top .ec-icon img {\n width: 1em;\n vertical-align: text-bottom; }\n @media only screen and (min-width: 768px) {\n .ec-blockBtn--top {\n max-width: 260px; } }\n\n/*\n見出し\n\nトップページで使用されている見出しのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.4\n*/\n/*\n横並び見出し\n\n横並びの見出しです。\n\nMarkup:\n.ec-secHeading\n span.ec-secHeading__en TOPIC\n span.ec-secHeading__line |\n span.ec-secHeading__ja 特集\n\nStyleguide 12.4.1\n*/\n.ec-secHeading {\n margin-bottom: 15px;\n color: black; }\n .ec-secHeading .ec-secHeading__en {\n font-size: 18px;\n font-weight: bold;\n letter-spacing: .2em; }\n .ec-secHeading .ec-secHeading__line {\n display: inline-block;\n margin: 0 20px;\n width: 1px;\n height: 14px;\n background: black; }\n .ec-secHeading .ec-secHeading__ja {\n font-size: 12px;\n font-weight: normal;\n letter-spacing: .15em;\n vertical-align: 2px; }\n\n/*\n縦並び見出し\n\n縦並びの見出しです。\n\nMarkup:\n.ec-secHeading--tandem\n span.ec-secHeading__en TOPIC\n span.ec-secHeading__line |\n span.ec-secHeading__ja 特集\n\nStyleguide 12.4.2\n*/\n.ec-secHeading--tandem {\n margin-bottom: 15px;\n color: black;\n text-align: center; }\n .ec-secHeading--tandem .ec-secHeading__en {\n display: block;\n font-size: 18px;\n font-weight: bold;\n letter-spacing: .2em; }\n .ec-secHeading--tandem .ec-secHeading__line {\n display: block;\n margin: 13px auto;\n width: 20px;\n height: 1px;\n background: black; }\n .ec-secHeading--tandem .ec-secHeading__ja {\n display: block;\n margin-bottom: 30px;\n font-size: 12px;\n font-weight: normal;\n letter-spacing: .15em;\n vertical-align: 2px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nトピック(アイテム2列)\n\nトップページで使用されているトピックのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.5.1\n*/\n.ec-topicRole {\n padding: 40px 0;\n background: #F8F8F8; }\n @media only screen and (min-width: 768px) {\n .ec-topicRole {\n padding: 60px 0; } }\n .ec-topicRole .ec-topicRole__list {\n display: flex;\n flex-wrap: wrap; }\n @media only screen and (min-width: 768px) {\n .ec-topicRole .ec-topicRole__list {\n flex-wrap: nowrap; } }\n .ec-topicRole .ec-topicRole__listItem {\n margin-bottom: 20px;\n width: 100%;\n height: auto; }\n @media only screen and (min-width: 768px) {\n .ec-topicRole .ec-topicRole__listItem {\n width: calc(100% / 2); }\n .ec-topicRole .ec-topicRole__listItem:not(:last-of-type) {\n margin-right: 30px; } }\n .ec-topicRole .ec-topicRole__listItemTitle {\n margin-top: .5em;\n font-size: 14px;\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-topicRole .ec-topicRole__listItemTitle {\n margin-top: 1em; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nカテゴリ(アイテム4列 スマホの時は2列)\n\nトップページで使用されているアイテムリストのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.6.1\n*/\n.ec-newItemRole {\n padding: 40px 0; }\n @media only screen and (min-width: 768px) {\n .ec-newItemRole {\n padding: 60px 0; } }\n .ec-newItemRole .ec-newItemRole__list {\n display: flex;\n flex-wrap: wrap; }\n @media only screen and (min-width: 768px) {\n .ec-newItemRole .ec-newItemRole__list {\n flex-wrap: nowrap; } }\n .ec-newItemRole .ec-newItemRole__listItem {\n margin-bottom: 4%;\n width: 48%;\n height: auto; }\n @media only screen and (min-width: 768px) {\n .ec-newItemRole .ec-newItemRole__listItem {\n margin-bottom: 15px;\n width: calc(100% / 4); }\n .ec-newItemRole .ec-newItemRole__listItem:not(:last-of-type) {\n margin-right: 30px; } }\n .ec-newItemRole .ec-newItemRole__listItem:nth-child(odd) {\n margin-right: 4%; }\n @media only screen and (min-width: 768px) {\n .ec-newItemRole .ec-newItemRole__listItem:nth-child(odd) {\n margin-right: 30px; } }\n .ec-newItemRole .ec-newItemRole__listItemHeading {\n margin-top: calc(45% - 20px); }\n .ec-newItemRole .ec-newItemRole__listItemTitle {\n margin: 8px 0;\n font-size: 14px;\n font-weight: bold;\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-newItemRole .ec-newItemRole__listItemTitle {\n margin: 20px 0 10px; } }\n .ec-newItemRole .ec-newItemRole__listItemPrice {\n font-size: 12px;\n color: black; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nカテゴリ(アイテム3列)\n\nトップページで使用されているカテゴリのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.7.1\n*/\n.ec-categoryRole {\n padding: 40px 0;\n color: black;\n background: #F8F8F8; }\n @media only screen and (min-width: 768px) {\n .ec-categoryRole {\n padding: 60px 0; } }\n .ec-categoryRole .ec-categoryRole__list {\n display: flex;\n flex-wrap: wrap; }\n @media only screen and (min-width: 768px) {\n .ec-categoryRole .ec-categoryRole__list {\n flex-wrap: nowrap; } }\n .ec-categoryRole .ec-categoryRole__listItem {\n margin-bottom: 20px;\n width: 100%;\n height: auto; }\n @media only screen and (min-width: 768px) {\n .ec-categoryRole .ec-categoryRole__listItem {\n width: calc(100% / 3); }\n .ec-categoryRole .ec-categoryRole__listItem:not(:last-of-type) {\n margin-right: 30px; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n見出し\n\nトップページで使用されている新着情報のスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.8.1\n*/\n.ec-newsRole {\n padding: 40px 0 0; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole {\n padding: 60px 0 0; } }\n .ec-newsRole .ec-newsRole__news {\n box-sizing: border-box; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__news {\n border: 16px solid #F8F8F8;\n padding: 20px 30px; } }\n .ec-newsRole .ec-newsRole__newsItem {\n width: 100%; }\n .ec-newsRole .ec-newsRole__newsItem:not(:last-of-type) {\n border-bottom: 1px solid #ccc; }\n .ec-newsRole .ec-newsRole__newsItem:last-of-type {\n margin-bottom: 20px; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsItem:last-of-type {\n margin-bottom: 0; } }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsItem {\n padding: 20px 0; } }\n .ec-newsRole .ec-newsRole__newsHeading {\n cursor: pointer; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsHeading {\n display: flex; } }\n .ec-newsRole .ec-newsRole__newsDate {\n display: block;\n margin: 15px 0 5px;\n font-size: 12px;\n color: black; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsDate {\n display: inline-block;\n margin: 0;\n min-width: 120px;\n font-size: 14px; } }\n .ec-newsRole .ec-newsRole__newsColumn {\n display: flex; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsColumn {\n display: inline-flex;\n min-width: calc(100% - 120px); } }\n .ec-newsRole .ec-newsRole__newsTitle {\n display: inline-block;\n margin-bottom: 10px;\n width: 90%;\n font-size: 14px;\n font-weight: bold;\n color: #7D7D7D;\n line-height: 1.6; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsTitle {\n margin-bottom: 0;\n line-height: 1.8; } }\n .ec-newsRole .ec-newsRole__newsClose {\n display: inline-block;\n width: 10%;\n position: relative; }\n .ec-newsRole .ec-newsRole__newsCloseBtn {\n display: inline-block;\n margin-left: auto;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n color: white;\n text-align: center;\n background: black;\n cursor: pointer;\n position: absolute;\n right: 5px; }\n .ec-newsRole .ec-newsRole__newsDescription {\n display: none;\n margin: 0 0 10px;\n font-size: 14px;\n line-height: 1.4;\n overflow: hidden; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole .ec-newsRole__newsDescription {\n margin: 20px 0 0;\n line-height: 1.8; } }\n .ec-newsRole .ec-newsRole__newsDescription a {\n color: #0092C4; }\n .ec-newsRole__newsItem.is_active .ec-newsRole__newsDescription {\n margin: 0 0 10px; }\n @media only screen and (min-width: 768px) {\n .ec-newsRole__newsItem.is_active .ec-newsRole__newsDescription {\n margin: 20px 0 0; } }\n .ec-newsRole__newsItem.is_active .ec-newsRole__newsCloseBtn i {\n display: inline-block;\n transform: rotateX(180deg) translateY(2px); }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n検索ラベル\n\n商品一覧 ヘッダー部 に関する Project コンポーネントを定義します。\n\nex [商品一覧 ヘッダー部](http://demo3.ec-cube.net/products/list)\n\nMarkup:\ninclude /assets/tmpl/elements/13.1.searchnav.pug\n+ec-searchnavRole__topicpath\n+ec-searchnavRole__info\n\nStyleguide 13.1\n\n*/\n.ec-searchnavRole {\n margin-bottom: 0;\n padding: 0; }\n @media only screen and (min-width: 768px) {\n .ec-searchnavRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-searchnavRole:after {\n content: \" \";\n display: table; }\n .ec-searchnavRole:after {\n clear: both; }\n .ec-searchnavRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-searchnavRole img {\n max-width: 100%; }\n .ec-searchnavRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-searchnavRole *,\n .ec-searchnavRole *::before,\n .ec-searchnavRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-searchnavRole img {\n width: 100%; } }\n .ec-searchnavRole .ec-searchnavRole__infos {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n display: flex;\n border-top: 0;\n margin-bottom: 16px;\n padding-top: 5px;\n flex-direction: column; }\n .ec-searchnavRole .ec-searchnavRole__infos:after {\n content: \" \";\n display: table; }\n .ec-searchnavRole .ec-searchnavRole__infos:after {\n clear: both; }\n .ec-searchnavRole .ec-searchnavRole__infos textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-searchnavRole .ec-searchnavRole__infos img {\n max-width: 100%; }\n .ec-searchnavRole .ec-searchnavRole__infos html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-searchnavRole .ec-searchnavRole__infos *,\n .ec-searchnavRole .ec-searchnavRole__infos *::before,\n .ec-searchnavRole .ec-searchnavRole__infos *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-searchnavRole .ec-searchnavRole__infos img {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-searchnavRole .ec-searchnavRole__infos {\n padding-left: 0;\n padding-right: 0;\n border-top: 1px solid #ccc;\n padding-top: 16px;\n flex-direction: row; } }\n .ec-searchnavRole .ec-searchnavRole__counter {\n margin-bottom: 16px;\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-searchnavRole .ec-searchnavRole__counter {\n margin-bottom: 0;\n width: 50%; } }\n .ec-searchnavRole .ec-searchnavRole__actions {\n text-align: right;\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-searchnavRole .ec-searchnavRole__actions {\n width: 50%; } }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\n商品一覧\n\n商品一覧 に関する Project コンポーネントを定義します。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGrid\n\nStyleguide 13.2\n\n*/\n.ec-shelfRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-shelfRole:after {\n content: \" \";\n display: table; }\n .ec-shelfRole:after {\n clear: both; }\n .ec-shelfRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-shelfRole img {\n max-width: 100%; }\n .ec-shelfRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-shelfRole *,\n .ec-shelfRole *::before,\n .ec-shelfRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-shelfRole img {\n width: 100%; }\n\n/*\n商品一覧グリッド\n\n商品一覧 で使用するグリッドコンポーネントです。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGrid\n\nStyleguide 13.2.1\n\n*/\n.ec-shelfGrid {\n display: flex;\n margin-left: 0;\n margin-right: 0;\n flex-wrap: wrap;\n padding: 0;\n list-style: none; }\n .ec-shelfGrid a {\n color: inherit;\n text-decoration: none; }\n .ec-shelfGrid a:hover {\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGrid {\n margin-left: -16px;\n margin-right: -16px; } }\n .ec-shelfGrid .ec-shelfGrid__item {\n margin-bottom: 36px;\n width: 50%;\n display: flex;\n flex-direction: column; }\n .ec-shelfGrid .ec-shelfGrid__item-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGrid .ec-shelfGrid__item-image {\n height: 250px; } }\n .ec-shelfGrid .ec-shelfGrid__item img {\n width: auto;\n max-height: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGrid .ec-shelfGrid__item {\n padding: 0 16px;\n width: 25%; } }\n .ec-shelfGrid .ec-shelfGrid__item .ec-productRole__btn {\n margin-top: auto;\n margin-bottom: 15px; }\n .ec-shelfGrid .ec-shelfGrid__item:nth-child(odd) {\n padding-right: 8px; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGrid .ec-shelfGrid__item:nth-child(odd) {\n padding: 0 16px; } }\n .ec-shelfGrid .ec-shelfGrid__item:nth-child(even) {\n padding-left: 8px; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGrid .ec-shelfGrid__item:nth-child(even) {\n padding: 0 16px; } }\n .ec-shelfGrid .ec-shelfGrid__title {\n margin-bottom: 7px; }\n .ec-shelfGrid .ec-shelfGrid__plice {\n font-weight: bold; }\n\n/*\n13.2.2 商品一覧グリッド(中央寄せ)\n\n商品一覧 で使用するグリッドコンポーネントです。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n商品のあまりはセンタリングされ、中央に表示されます。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGridCenter\n\nStyleguide 13.2.2\n\n*/\n.ec-shelfGridCenter {\n display: flex;\n margin-left: 0;\n margin-right: 0;\n flex-wrap: wrap;\n padding: 0;\n list-style: none;\n justify-content: center; }\n .ec-shelfGridCenter a {\n color: inherit;\n text-decoration: none; }\n .ec-shelfGridCenter a:hover {\n text-decoration: none; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGridCenter {\n margin-left: -16px;\n margin-right: -16px; } }\n .ec-shelfGridCenter .ec-shelfGridCenter__item {\n margin-bottom: 36px;\n width: 50%; }\n .ec-shelfGridCenter .ec-shelfGridCenter__item-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGridCenter .ec-shelfGridCenter__item-image {\n height: 250px; } }\n .ec-shelfGridCenter .ec-shelfGridCenter__item img {\n width: auto;\n max-height: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGridCenter .ec-shelfGridCenter__item {\n padding: 0 16px;\n width: 25%; } }\n .ec-shelfGridCenter .ec-shelfGridCenter__item .ec-productRole__btn {\n margin-top: auto;\n padding-top: 1em; }\n .ec-shelfGridCenter .ec-shelfGridCenter__item:nth-child(odd) {\n padding-right: 8px; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGridCenter .ec-shelfGridCenter__item:nth-child(odd) {\n padding: 0 16px; } }\n .ec-shelfGridCenter .ec-shelfGridCenter__item:nth-child(even) {\n padding-left: 8px; }\n @media only screen and (min-width: 768px) {\n .ec-shelfGridCenter .ec-shelfGridCenter__item:nth-child(even) {\n padding: 0 16px; } }\n .ec-shelfGridCenter .ec-shelfGridCenter__title {\n margin-bottom: 7px; }\n .ec-shelfGridCenter .ec-shelfGridCenter__plice {\n font-weight: bold; }\n\n/*\n商品一覧フッター\n\n商品一覧 フッター に関する Project コンポーネントを定義します。\n\nex [商品一覧 ページャ部](http://demo3.ec-cube.net/products/list)\n\nMarkup:\ninclude /assets/tmpl/elements/13.3.pager.pug\n+ec-pagerRole\n\nStyleguide 13.3\n\n*/\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nカート追加モーダル\n\nカート追加モーダルに関する Project コンポーネントを定義します。\n\nex [商品一覧、商品詳細](http://demo3.ec-cube.net/products/list)\n\n+ec-modal\n\nStyleguide 13.4\n\n*/\n.ec-modal .checkbox {\n display: none; }\n\n.ec-modal .ec-modal-overlay {\n opacity: 0;\n transition: all 0.3s ease;\n width: 100%;\n height: 100%;\n position: fixed;\n top: 0;\n left: 0;\n z-index: -100;\n transform: scale(1);\n display: flex;\n background-color: rgba(0, 0, 0, 0.3); }\n\n.ec-modal .ec-modal-wrap {\n background-color: #fff;\n border: 1px solid #333;\n width: 90%;\n margin: 20px;\n padding: 40px 5px;\n border-radius: 2px;\n transition: all 0.5s ease;\n -ms-flex-item-align: center;\n align-self: center; }\n .ec-modal .ec-modal-wrap .ec-modal-box {\n text-align: center; }\n .ec-modal .ec-modal-wrap .ec-modal-box div {\n margin-top: 20px; }\n @media only screen and (min-width: 768px) {\n .ec-modal .ec-modal-wrap {\n padding: 40px 10px;\n width: 50%;\n margin: 20px auto; } }\n .ec-modal .ec-modal-wrap.small {\n width: 30%; }\n .ec-modal .ec-modal-wrap.full {\n width: 100%;\n height: 100%; }\n\n.ec-modal .ec-modal-overlay .ec-modal-close {\n position: absolute;\n right: 20px;\n top: 10px;\n font-size: 20px;\n height: 30px;\n width: 20px; }\n .ec-modal .ec-modal-overlay .ec-modal-close:hover {\n cursor: pointer;\n color: #4b5361; }\n\n.ec-modal .ec-modal-overlay-close {\n width: 100%;\n height: 100%;\n position: fixed;\n left: 0;\n top: 0;\n z-index: -100; }\n\n.ec-modal input:checked ~ .ec-modal-overlay-close {\n z-index: 9998; }\n\n.ec-modal input:checked ~ .ec-modal-overlay {\n transform: scale(1);\n opacity: 1;\n z-index: 9997;\n overflow: auto; }\n\n.ec-modal input:checked ~ .ec-modal-overlay .ec-modal-wrap {\n transform: translateY(0);\n z-index: 9999; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n商品詳細\n\n商品詳細ページに関する Project コンポーネントを定義します。\n\nex [商品詳細ページ](http://demo3.ec-cube.net/products/detail/18)\n\n\nMarkup:\ninclude /assets/tmpl/elements/14.1.product.pug\n+ec-productSimpleRole\n\nStyleguide 14.1\n*/\n.ec-productRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-productRole:after {\n content: \" \";\n display: table; }\n .ec-productRole:after {\n clear: both; }\n .ec-productRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-productRole img {\n max-width: 100%; }\n .ec-productRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-productRole *,\n .ec-productRole *::before,\n .ec-productRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-productRole img {\n width: 100%; }\n .ec-productRole .ec-productRole__img {\n margin-right: 0;\n margin-bottom: 20px; }\n @media only screen and (min-width: 768px) {\n .ec-productRole .ec-productRole__img {\n margin-right: 16px;\n margin-bottom: 0; } }\n .ec-productRole .ec-productRole__profile {\n margin-left: 0; }\n @media only screen and (min-width: 768px) {\n .ec-productRole .ec-productRole__profile {\n margin-left: 16px; } }\n .ec-productRole .ec-productRole__title .ec-headingTitle {\n font-size: 20px; }\n @media only screen and (min-width: 768px) {\n .ec-productRole .ec-productRole__title .ec-headingTitle {\n font-size: 32px; } }\n .ec-productRole .ec-productRole__tags {\n margin-top: 16px;\n padding: 0;\n padding-bottom: 16px;\n border-bottom: 1px dotted #ccc; }\n .ec-productRole .ec-productRole__tag {\n display: inline-block;\n padding: 2px 5px;\n list-style: none;\n font-size: 80%;\n color: #525263;\n border: solid 1px #D7DADD;\n border-radius: 3px;\n background-color: #F5F7F8; }\n .ec-productRole .ec-productRole__priceRegular {\n padding-top: 14px; }\n .ec-productRole .ec-productRole__priceRegularTax {\n margin-left: 5px;\n font-size: 12px; }\n .ec-productRole .ec-productRole__price {\n color: #DE5D50;\n font-size: 28px;\n padding: 0;\n border-bottom: 0; }\n @media only screen and (min-width: 768px) {\n .ec-productRole .ec-productRole__price {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc; } }\n .ec-productRole .ec-productRole__code {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc; }\n .ec-productRole .ec-productRole__category {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc; }\n .ec-productRole .ec-productRole__category a {\n color: #33A8D0; }\n .ec-productRole .ec-productRole__category ul {\n list-style: none;\n padding: 0;\n margin: 0; }\n .ec-productRole .ec-productRole__actions {\n padding: 14px 0; }\n .ec-productRole .ec-productRole__actions .ec-select select {\n height: 40px;\n max-width: 100%;\n min-width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-productRole .ec-productRole__actions .ec-select select {\n min-width: 350px;\n max-width: 350px; } }\n .ec-productRole .ec-productRole__btn {\n width: 100%;\n margin-bottom: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-productRole .ec-productRole__btn {\n width: 60%;\n margin-bottom: 16px;\n min-width: 350px; } }\n .ec-productRole .ec-productRole__description {\n margin-bottom: 16px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\nカート\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [カートページ](http://demo3.ec-cube.net/shopping)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n+ec-cartRole\n\nStyleguide 15.1\n\n*/\n.ec-cartRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end; }\n .ec-cartRole:after {\n content: \" \";\n display: table; }\n .ec-cartRole:after {\n clear: both; }\n .ec-cartRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-cartRole img {\n max-width: 100%; }\n .ec-cartRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-cartRole *,\n .ec-cartRole *::before,\n .ec-cartRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-cartRole img {\n width: 100%; }\n .ec-cartRole::before {\n display: none; }\n .ec-cartRole .ec-cartRole__progress {\n width: 100%;\n text-align: center; }\n .ec-cartRole .ec-cartRole__error {\n width: 100%;\n text-align: center; }\n .ec-cartRole .ec-cartRole__error .ec-alert-warning {\n max-width: 80%;\n display: inline-block; }\n .ec-cartRole .ec-cartRole__totalText {\n margin-bottom: 0;\n padding: 16px 0 6px;\n width: 100%;\n text-align: center;\n font-weight: normal; }\n @media only screen and (min-width: 768px) {\n .ec-cartRole .ec-cartRole__totalText {\n margin-bottom: 30px;\n padding: 0; } }\n .ec-cartRole .ec-cartRole__cart {\n margin: 0;\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-cartRole .ec-cartRole__cart {\n margin: 0 10%; } }\n .ec-cartRole .ec-cartRole__actions {\n text-align: right;\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-cartRole .ec-cartRole__actions {\n width: 20%;\n margin-right: 10%; } }\n .ec-cartRole .ec-cartRole__total {\n padding: 15px 0 30px;\n font-weight: bold;\n font-size: 16px; }\n .ec-cartRole .ec-cartRole__totalAmount {\n margin-left: 30px;\n color: #de5d50;\n font-size: 16px; }\n @media only screen and (min-width: 768px) {\n .ec-cartRole .ec-cartRole__totalAmount {\n font-size: 24px; } }\n .ec-cartRole .ec-blockBtn--action {\n margin-bottom: 10px; }\n\n/*\nカート商品表示枠(テーブルヘッダ)\n\nカート内の商品をを表示するテーブル枠です。\n\nex [カートページ テーブル部分(カート内に商品がある状態でアクセス)](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n+ec-cartTable\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 15.1.2\n*/\n.ec-cartTable {\n display: table;\n border-top: 1px dotted #ccc;\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-cartTable {\n border-top: none; } }\n\n/*\nカート商品表示枠(テーブルヘッダ)\n\nカート内の商品を表示するテーブルのヘッダです。\nスマホでは非表示となります。\n\nex [カートページ カートテーブルヘッダ部分(カート内に商品がある状態でアクセス)](http://demo3.ec-cube.net/cart)\n\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartHeader\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 15.1.3\n*/\n.ec-cartHeader {\n display: none;\n width: 100%;\n background: #F4F3F0; }\n @media only screen and (min-width: 768px) {\n .ec-cartHeader {\n display: table-row; } }\n .ec-cartHeader .ec-cartHeader__label {\n display: table-cell;\n padding: 16px;\n text-align: center;\n background: #F4F3F0;\n overflow-x: hidden;\n font-weight: bold; }\n\n.ec-cartCompleteRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-cartCompleteRole:after {\n content: \" \";\n display: table; }\n .ec-cartCompleteRole:after {\n clear: both; }\n .ec-cartCompleteRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-cartCompleteRole img {\n max-width: 100%; }\n .ec-cartCompleteRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-cartCompleteRole *,\n .ec-cartCompleteRole *::before,\n .ec-cartCompleteRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-cartCompleteRole img {\n width: 100%; }\n\n/*\nカート内商品\n\nカート内のアイテムを表示するテーブル行です。\nスマホでは非表示となります。\n\nex [カートページ テーブル部分](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartRow\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 15.1.4\n*/\n.ec-cartRow {\n display: table-row; }\n .ec-cartRow .ec-cartRow__delColumn {\n border-bottom: 1px dotted #ccc;\n text-align: center;\n display: table-cell;\n width: 14%;\n vertical-align: middle; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__delColumn {\n width: 8.3333333%; } }\n .ec-cartRow .ec-cartRow__delColumn .ec-icon img {\n width: 1.5em;\n height: 1.5em; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__delColumn .ec-icon img {\n width: 1em;\n height: 1em; } }\n .ec-cartRow .ec-cartRow__contentColumn {\n border-bottom: 1px dotted #ccc;\n padding: 10px 0;\n display: table; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__contentColumn {\n display: table-cell; } }\n .ec-cartRow .ec-cartRow__img {\n display: table-cell;\n width: 40%;\n vertical-align: middle;\n padding-right: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__img {\n display: inline-block;\n min-width: 80px;\n max-width: 100px;\n padding-right: 0; } }\n .ec-cartRow .ec-cartRow__summary {\n display: table-cell;\n margin-left: 5px;\n font-weight: bold;\n vertical-align: middle;\n width: 46%; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__summary {\n display: inline-block;\n margin-left: 20px;\n vertical-align: middle; } }\n .ec-cartRow .ec-cartRow__summary .ec-cartRow__name {\n margin-bottom: 5px; }\n .ec-cartRow .ec-cartRow__summary .ec-cartRow__sutbtotalSP {\n display: block;\n font-weight: normal; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__summary .ec-cartRow__sutbtotalSP {\n display: none; } }\n .ec-cartRow .ec-cartRow__amountColumn {\n display: table-cell;\n border-bottom: 1px dotted #ccc;\n vertical-align: middle;\n text-align: center;\n width: 20%; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__amountColumn {\n width: 16.66666667%; } }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amount {\n display: none;\n margin-bottom: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amount {\n display: block; } }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountSP {\n display: block;\n margin-bottom: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountSP {\n display: none; } }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountUpDown {\n display: flex;\n justify-content: center; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountUpDown {\n display: block; } }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountUpButton {\n margin: 0 2px;\n display: inline-block;\n border: 2px solid #c9c9c9;\n border-radius: 50%;\n width: 30px;\n min-width: 30px;\n max-width: 30px;\n height: 30px;\n cursor: pointer;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center;\n background: #fff; }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountUpButton .ec-cartRow__amountUpButton__icon img {\n display: block;\n margin-left: -0.4em;\n width: .8em;\n height: .8em;\n position: absolute;\n top: 28%;\n left: 50%; }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountDownButton, .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountDownButtonDisabled {\n margin: 0 2px;\n display: inline-block;\n border: 2px solid #c9c9c9;\n border-radius: 50%;\n width: 30px;\n min-width: 30px;\n max-width: 30px;\n height: 30px;\n cursor: pointer;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center;\n background: #fff; }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountDownButton .ec-cartRow__amountDownButton__icon img, .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountDownButtonDisabled .ec-cartRow__amountDownButton__icon img {\n display: block;\n margin-left: -0.4em;\n width: .8em;\n height: .8em;\n position: absolute;\n top: 28%;\n left: 50%; }\n .ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountDownButtonDisabled {\n cursor: default; }\n .ec-cartRow .ec-cartRow__subtotalColumn {\n display: none;\n border-bottom: 1px dotted #ccc;\n text-align: right;\n width: 16.66666667%; }\n @media only screen and (min-width: 768px) {\n .ec-cartRow .ec-cartRow__subtotalColumn {\n display: table-cell; } }\n\n/*\nカート内商品(商品が1の場合)\n\n商品が1の場合はカート商品を減らす「-」ボタンの無効化状態になります。\n\nex [カートページ テーブル部分](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartRowOnly\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 15.1.5\n*/\n.ec-cartRow .ec-cartRow__amountColumn .ec-cartRow__amountDownButtonDisabled {\n cursor: default; }\n\n/*\nアラート\n\nカート内の商品に問題があることを示す警告メッセージです。\n\nex [マイページ カート](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartRole\n .ec-cartRole__cart\n +ec-alert-warning\n\nStyleguide 15.1.6\n*/\n.ec-alert-warning {\n width: 100%;\n padding: 10px;\n text-align: center;\n background: #F99;\n margin-bottom: 20px; }\n .ec-alert-warning .ec-alert-warning__icon {\n display: inline-block;\n margin-right: 1rem;\n width: 20px;\n height: 20px;\n color: #fff;\n fill: #fff;\n vertical-align: top; }\n .ec-alert-warning .ec-alert-warning__text {\n display: inline-block;\n font-size: 16px;\n font-weight: bold;\n color: #fff;\n position: relative; }\n\n/*\nアラート(空)\n\nカートが空であることを示す警告メッセージです。\n\nex [マイページ カート](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-off3Grid\n .ec-off3Grid__cell\n +ec-alert-warningEnpty\n\nStyleguide 15.1.7\n*/\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\n注文内容確認\n\nカート内 注文内容確認に関する Project コンポーネントを定義します。\n\nex [マイページ 注文詳細](http://demo3.ec-cube.net/shopping)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderRole\n\nStyleguide 15.2\n*/\n.ec-orderRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n display: flex;\n flex-direction: column;\n margin-top: 0; }\n .ec-orderRole:after {\n content: \" \";\n display: table; }\n .ec-orderRole:after {\n clear: both; }\n .ec-orderRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-orderRole img {\n max-width: 100%; }\n .ec-orderRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-orderRole *,\n .ec-orderRole *::before,\n .ec-orderRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-orderRole img {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-orderRole {\n margin-top: 20px;\n flex-direction: row; } }\n .ec-orderRole .ec-inlineBtn {\n font-weight: normal; }\n .ec-orderRole .ec-orderRole__detail {\n padding: 0;\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-orderRole .ec-orderRole__detail {\n padding: 0 16px;\n width: 66.66666%; } }\n .ec-orderRole .ec-orderRole__summary {\n width: 100%; }\n .ec-orderRole .ec-orderRole__summary .ec-inlineBtn {\n display: inline-block; }\n @media only screen and (min-width: 768px) {\n .ec-orderRole .ec-orderRole__summary {\n width: 33.33333%;\n padding: 0 16px; }\n .ec-orderRole .ec-orderRole__summary .ec-inlineBtn {\n display: none; } }\n .ec-orderRole .ec-borderedList {\n margin-bottom: 20px;\n border-top: 1px dotted #ccc; }\n @media only screen and (min-width: 768px) {\n .ec-orderRole .ec-borderedList {\n border-top: none; } }\n\n/*\n注文履歴詳細 オーダ情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ オーダ情報](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderInfo\n\nStyleguide 15.2.1\n*/\n.ec-orderOrder {\n margin-bottom: 30px; }\n .ec-orderOrder .ec-orderOrder__items {\n border-bottom: 1px dotted #ccc;\n border-top: 1px dotted #ccc; }\n\n/*\n注文履歴詳細 お客様情報\n\nマイページ 注文詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ オーダ情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderAccount\n\nStyleguide 15.2.2\n*/\n.ec-orderAccount {\n margin-bottom: 30px; }\n .ec-orderAccount p {\n margin-bottom: 0; }\n .ec-orderAccount:after {\n content: \" \";\n display: table; }\n .ec-orderAccount:after {\n clear: both; }\n .ec-orderAccount .ec-orderAccount__change {\n display: inline-block;\n margin-left: 10px;\n float: right; }\n .ec-orderAccount .ec-orderAccount__account {\n margin-bottom: 16px; }\n\n/*\n注文詳細 配送情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 配送情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderDelivery\n\nStyleguide 15.2.3\n*/\n.ec-orderDelivery .ec-orderDelivery__title {\n padding: 16px 0 17px;\n font-weight: bold;\n font-size: 18px;\n position: relative; }\n\n.ec-orderDelivery .ec-orderDelivery__change {\n display: inline-block;\n position: absolute;\n right: 0;\n top: 0; }\n\n.ec-orderDelivery .ec-orderDelivery__items {\n border-bottom: 1px dotted #ccc;\n border-top: 1px dotted #ccc; }\n\n.ec-orderDelivery .ec-orderDelivery__address {\n margin: 10px 0 18px; }\n .ec-orderDelivery .ec-orderDelivery__address p {\n margin: 0; }\n\n/*\n注文履歴詳細 支払情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 支払情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-orderRole\n .ec-orderPayment\n .ec-rectHeading\n h2 お支払方法\n p 支払方法: 郵便振替\n\nStyleguide 15.2.4\n*/\n/*\n注文履歴詳細 お問い合わせ\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ お問い合わせ(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-orderRole\n .ec-orderConfirm\n .ec-rectHeading\n h2 お問い合わせ\n p 記載なし\n\nStyleguide 15.2.5\n*/\n.ec-orderConfirm {\n margin-bottom: 20px; }\n @media only screen and (min-width: 768px) {\n .ec-orderConfirm {\n margin-bottom: 0; } }\n .ec-orderConfirm .ec-input textarea, .ec-orderConfirm .ec-halfInput textarea, .ec-orderConfirm .ec-numberInput textarea, .ec-orderConfirm .ec-zipInput textarea, .ec-orderConfirm .ec-telInput textarea, .ec-orderConfirm .ec-select textarea, .ec-orderConfirm .ec-birth textarea {\n height: 96px; }\n\n/*\nお届け先の複数指定\n\nお届け先の複数指定に関するコンポーネントを定義します。\n\nex [マイページ お届け先の複数指定](http://demo3.ec-cube.net/shopping/shipping_multiple)\n(商品購入画面 → 「お届け先を追加する」を押下)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderAddAddress\n\nStyleguide 15.2.6\n*/\n.ec-AddAddress {\n padding: 0 10px; }\n @media only screen and (min-width: 768px) {\n .ec-AddAddress {\n margin: 0 10%; } }\n .ec-AddAddress .ec-AddAddress__info {\n margin-bottom: 32px;\n text-align: center;\n font-size: 16px; }\n .ec-AddAddress .ec-AddAddress__add {\n border-top: 1px solid #f4f4f4;\n padding-top: 20px;\n margin-bottom: 20px; }\n .ec-AddAddress .ec-AddAddress__item {\n display: table;\n padding: 16px;\n background: #f4f4f4;\n margin-bottom: 16px; }\n .ec-AddAddress .ec-AddAddress__itemThumb {\n display: table-cell;\n min-width: 160px;\n width: 20%; }\n .ec-AddAddress .ec-AddAddress__itemThumb img {\n width: 100%; }\n .ec-AddAddress .ec-AddAddress__itemtContent {\n display: table-cell;\n vertical-align: middle;\n padding-left: 16px;\n font-size: 16px; }\n .ec-AddAddress .ec-AddAddress__itemtTitle {\n font-weight: bold;\n margin-bottom: 10px; }\n .ec-AddAddress .ec-AddAddress__itemtSize {\n margin-bottom: 10px; }\n .ec-AddAddress .ec-AddAddress__select {\n margin-bottom: 5px; }\n .ec-AddAddress .ec-AddAddress__selectAddress {\n display: inline-block; }\n .ec-AddAddress .ec-AddAddress__selectAddress label {\n font-size: 16px;\n font-weight: normal; }\n .ec-AddAddress .ec-AddAddress__selectAddress select {\n min-width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-AddAddress .ec-AddAddress__selectAddress select {\n min-width: 350px; } }\n .ec-AddAddress .ec-AddAddress__selectNumber {\n display: inline-block;\n margin-left: 30px; }\n .ec-AddAddress .ec-AddAddress__selectNumber label {\n font-size: 16px;\n font-weight: normal; }\n .ec-AddAddress .ec-AddAddress__selectNumber input {\n display: inline-block;\n margin-left: 10px;\n width: 80px; }\n .ec-AddAddress .ec-AddAddress__actions .ec-blockBtn--action {\n margin-bottom: 8px; }\n .ec-AddAddress .ec-AddAddress__new {\n margin-bottom: 20px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/*\n注文履歴一覧\n\nマイページ 注文履歴部に関する Project コンポーネントを定義します。\n\nex [マイページ 注文履歴一覧](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyRole\n\nStyleguide 16.1\n*/\n.ec-historyRole .ec-historyRole__contents {\n padding-top: 1em;\n padding-bottom: 16px;\n border-top: 1px solid #ccc;\n display: flex;\n flex-direction: column;\n color: #525263; }\n @media only screen and (min-width: 768px) {\n .ec-historyRole .ec-historyRole__contents {\n flex-direction: row; } }\n\n.ec-historyRole .ec-historyRole__header {\n width: 100%; }\n @media only screen and (min-width: 768px) {\n .ec-historyRole .ec-historyRole__header {\n width: 33.3333%; } }\n\n.ec-historyRole .ec-historyRole__detail {\n border-top: 1px dotted #ccc;\n width: 100%; }\n .ec-historyRole .ec-historyRole__detail .ec-imageGrid:nth-of-type(1) {\n border-top: none; }\n .ec-historyRole .ec-historyRole__detail .ec-historyRole__detailTitle {\n margin-bottom: 8px;\n font-size: 1.6rem;\n font-weight: bold; }\n .ec-historyRole .ec-historyRole__detail .ec-historyRole__detailPrice {\n margin-bottom: 8px;\n font-size: 1.6rem;\n font-weight: bold; }\n @media only screen and (min-width: 768px) {\n .ec-historyRole .ec-historyRole__detail {\n width: 66.6666%;\n border-top: none; } }\n\n/*\n注文履歴一覧 規格\n\nマイページ 注文履歴内アイテムの規格を定義します。\n\nex [マイページ 注文履歴一覧](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyRole-option\n\nStyleguide 16.1.1\n*/\n.ec-historyRole .ec-historyRole__detail .ec-historyRole__detailOption {\n display: inline-block;\n margin-bottom: 8px;\n margin-right: .5rem;\n font-size: 1.6rem; }\n\n.ec-historyRole .ec-historyRole__detail .ec-historyRole__detailOption::after {\n display: inline-block;\n padding-left: .5rem;\n content: \"/\";\n font-weight: bold; }\n\n/*\n注文履歴一覧ヘッダ\n\n注文履歴一覧で使用するヘッダのコンポーネントを定義します。\n\nex [マイページ 注文履歴一覧ヘッダ](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyHeader\np hofe\n\nStyleguide 16.1.2\n*/\n.ec-historyListHeader .ec-historyListHeader__date {\n font-weight: bold;\n font-size: 16px; }\n @media only screen and (min-width: 768px) {\n .ec-historyListHeader .ec-historyListHeader__date {\n font-weight: bold;\n font-size: 20px; } }\n\n.ec-historyListHeader .ec-historyListHeader__action {\n margin: 16px 0; }\n .ec-historyListHeader .ec-historyListHeader__action a {\n font-size: 12px;\n font-weight: normal; }\n @media only screen and (min-width: 768px) {\n .ec-historyListHeader .ec-historyListHeader__action a {\n font-size: 14px; } }\n\n/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n注文履歴詳細\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 注文詳細](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailRole\n\nStyleguide 16.2\n*/\n/*\n注文履歴詳細 メール履歴\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ メール履歴](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailMail\n\nStyleguide 16.2.5\n*/\n.ec-orderMails .ec-orderMails__item {\n padding-bottom: 10px;\n border-bottom: 1px dotted #ccc; }\n\n.ec-orderMails .ec-orderMails__time {\n margin: 0; }\n\n.ec-orderMails .ec-orderMails__body {\n display: none; }\n\n/*\n注文履歴詳細 メール履歴個別\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ メール履歴個別](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailMailHistory\n\nStyleguide 16.2.6\n*/\n.ec-orderMail {\n padding-bottom: 10px;\n border-bottom: 1px dotted #ccc;\n margin-bottom: 16px; }\n .ec-orderMail .ec-orderMail__time {\n margin: 0; }\n .ec-orderMail .ec-orderMail__body {\n display: none; }\n .ec-orderMail .ec-orderMail__time {\n margin-bottom: 4px; }\n .ec-orderMail .ec-orderMail__link {\n margin-bottom: 4px; }\n .ec-orderMail .ec-orderMail__link a {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer; }\n .ec-orderMail .ec-orderMail__link a:hover {\n color: #33A8D0; }\n .ec-orderMail .ec-orderMail__close a {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer; }\n .ec-orderMail .ec-orderMail__close a:hover {\n color: #33A8D0; }\n\n/*\n住所一覧\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [マイページ内 お届け先編集](http://demo3.ec-cube.net/mypage/delivery)\n\nMarkup:\ninclude /assets/tmpl/elements/17.1.address.pug\n+ec-addressList\n+ec-addressRole\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 17.1\n\n*/\n.ec-addressRole .ec-addressRole__item {\n border-top: 1px dotted #ccc; }\n\n.ec-addressRole .ec-addressRole__actions {\n margin-top: 32px;\n padding-bottom: 20px;\n border-bottom: 1px dotted #ccc; }\n\n.ec-addressList .ec-addressList__item {\n display: table;\n width: 100%;\n position: relative;\n border-bottom: 1px dotted #ccc; }\n\n.ec-addressList .ec-addressList__remove {\n vertical-align: middle;\n padding: 16px;\n text-align: center; }\n .ec-addressList .ec-addressList__remove .ec-icon img {\n width: 1em;\n height: 1em; }\n\n.ec-addressList .ec-addressList__address {\n display: table-cell;\n vertical-align: middle;\n padding: 16px;\n margin-right: 4em;\n width: 80%; }\n\n.ec-addressList .ec-addressList__action {\n position: relative;\n vertical-align: middle;\n text-align: right;\n top: 27px;\n padding-right: 10px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nパスワードリセット\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [パスワードリセット画面](http://demo3.ec-cube.net/forgot)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/18.1.password.pug\n+ec-passwordRole\n\nStyleguide 18.1\n\n*/\n.ec-forgotRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-forgotRole:after {\n content: \" \";\n display: table; }\n .ec-forgotRole:after {\n clear: both; }\n .ec-forgotRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-forgotRole img {\n max-width: 100%; }\n .ec-forgotRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-forgotRole *,\n .ec-forgotRole *::before,\n .ec-forgotRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-forgotRole img {\n width: 100%; }\n .ec-forgotRole .ec-forgotRole__intro {\n font-size: 16px; }\n .ec-forgotRole .ec-forgotRole__form {\n margin-bottom: 16px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n会員登録\n\n新規会員登録 に関する Project コンポーネントを定義します。\n\nex [新規会員登録画面 会員登録](http://demo3.ec-cube.net/entry)\n\nMarkup:\ninclude /assets/tmpl/elements/19.1.register.pug\n+ec-registerRole\n\nStyleguide 19.1\n\n*/\n.ec-registerRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-registerRole:after {\n content: \" \";\n display: table; }\n .ec-registerRole:after {\n clear: both; }\n .ec-registerRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-registerRole img {\n max-width: 100%; }\n .ec-registerRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-registerRole *,\n .ec-registerRole *::before,\n .ec-registerRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-registerRole img {\n width: 100%; }\n .ec-registerRole .ec-registerRole__actions {\n padding-top: 20px;\n text-align: center; }\n @media only screen and (min-width: 768px) {\n .ec-registerRole .ec-registerRole__actions {\n text-align: left; } }\n .ec-registerRole .ec-registerRole__actions p {\n margin-bottom: 16px; }\n .ec-registerRole .ec-blockBtn--action {\n margin-bottom: 16px; }\n\n.ec-registerCompleteRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-registerCompleteRole:after {\n content: \" \";\n display: table; }\n .ec-registerCompleteRole:after {\n clear: both; }\n .ec-registerCompleteRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-registerCompleteRole img {\n max-width: 100%; }\n .ec-registerCompleteRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-registerCompleteRole *,\n .ec-registerCompleteRole *::before,\n .ec-registerCompleteRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-registerCompleteRole img {\n width: 100%; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nお問い合わせ\n\nお問い合わせ に関する Project コンポーネントを定義します。\n\nex [お問い合わせ](http://demo3.ec-cube.net/contact)\n\nMarkup:\ninclude /assets/tmpl/elements/19.2.contact.pug\n+ec-contactRole\n\nStyleguide 19.2\n\n*/\n.ec-contactRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-contactRole:after {\n content: \" \";\n display: table; }\n .ec-contactRole:after {\n clear: both; }\n .ec-contactRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-contactRole img {\n max-width: 100%; }\n .ec-contactRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-contactRole *,\n .ec-contactRole *::before,\n .ec-contactRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-contactRole img {\n width: 100%; }\n .ec-contactRole .ec-contactRole__actions {\n padding-top: 20px; }\n .ec-contactRole p {\n margin: 16px 0; }\n\n.ec-contactConfirmRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-contactConfirmRole:after {\n content: \" \";\n display: table; }\n .ec-contactConfirmRole:after {\n clear: both; }\n .ec-contactConfirmRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-contactConfirmRole img {\n max-width: 100%; }\n .ec-contactConfirmRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-contactConfirmRole *,\n .ec-contactConfirmRole *::before,\n .ec-contactConfirmRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-contactConfirmRole img {\n width: 100%; }\n .ec-contactConfirmRole .ec-contactConfirmRole__actions {\n padding-top: 20px; }\n .ec-contactConfirmRole .ec-blockBtn--action {\n margin-bottom: 16px; }\n\n.ec-contactCompleteRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-contactCompleteRole:after {\n content: \" \";\n display: table; }\n .ec-contactCompleteRole:after {\n clear: both; }\n .ec-contactCompleteRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-contactCompleteRole img {\n max-width: 100%; }\n .ec-contactCompleteRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-contactCompleteRole *,\n .ec-contactCompleteRole *::before,\n .ec-contactCompleteRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-contactCompleteRole img {\n width: 100%; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\nお客様情報の入力\n\nログインせずゲストとして商品を購入する際の、お客様情報の入力 に関する Project コンポーネントを定義します。\n\nex [カートSTEP2 お客様情報の入力(ゲスト購入)](http://demo3.ec-cube.net/shopping/nonmember)\n\nMarkup:\ninclude /assets/tmpl/elements/19.3.customer.pug\n+ec-customerRole\nhoge\n\nStyleguide 19.3\n\n*/\n.ec-customerRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-customerRole:after {\n content: \" \";\n display: table; }\n .ec-customerRole:after {\n clear: both; }\n .ec-customerRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-customerRole img {\n max-width: 100%; }\n .ec-customerRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-customerRole *,\n .ec-customerRole *::before,\n .ec-customerRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-customerRole img {\n width: 100%; }\n .ec-customerRole .ec-customerRole__actions {\n padding-top: 20px; }\n .ec-customerRole .ec-blockBtn--action {\n margin-bottom: 10px; }\n @media only screen and (min-width: 768px) {\n .ec-customerRole .ec-blockBtn--action {\n margin-bottom: 16px; } }\n\n.ec-contactConfirmRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-contactConfirmRole:after {\n content: \" \";\n display: table; }\n .ec-contactConfirmRole:after {\n clear: both; }\n .ec-contactConfirmRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-contactConfirmRole img {\n max-width: 100%; }\n .ec-contactConfirmRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-contactConfirmRole *,\n .ec-contactConfirmRole *::before,\n .ec-contactConfirmRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-contactConfirmRole img {\n width: 100%; }\n .ec-contactConfirmRole .ec-contactConfirmRole__actions {\n padding-top: 20px; }\n .ec-contactConfirmRole .ec-blockBtn--action {\n margin-bottom: 16px; }\n\n.ec-contactCompleteRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px; }\n .ec-contactCompleteRole:after {\n content: \" \";\n display: table; }\n .ec-contactCompleteRole:after {\n clear: both; }\n .ec-contactCompleteRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-contactCompleteRole img {\n max-width: 100%; }\n .ec-contactCompleteRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-contactCompleteRole *,\n .ec-contactCompleteRole *::before,\n .ec-contactCompleteRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-contactCompleteRole img {\n width: 100%; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n visibility: hidden; }\n 100% {\n opacity: 1;\n visibility: visible; } }\n\n@keyframes fadeOut {\n 0% {\n opacity: 1;\n visibility: visible; }\n 100% {\n opacity: 0;\n visibility: hidden; } }\n\n.bg-load-overlay {\n background: rgba(255, 255, 255, 0.4);\n box-sizing: border-box;\n position: fixed;\n display: flex;\n flex-flow: column nowrap;\n align-items: center;\n justify-content: space-around;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 2147483647;\n opacity: 1; }\n\n/*\n404ページ\n\n404 エラー画面で使用するページコンポーネントです。\n\nex [404エラー画面](http://demo3.ec-cube.net/404)\n\nMarkup:\ninclude /assets/tmpl/elements/20.1.404.pug\n+ec-404Role\n\nStyleguide 20.1\n\n*/\n.ec-404Role {\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n height: 100vh;\n background-color: #f2f2f2;\n text-align: center;\n box-sizing: border-box; }\n .ec-404Role textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-404Role img {\n max-width: 100%; }\n .ec-404Role html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-404Role *,\n .ec-404Role *::before,\n .ec-404Role *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-404Role img {\n width: 100%; }\n .ec-404Role .ec-404Role__icon img {\n width: 1em;\n height: 1em; }\n .ec-404Role .ec-404Role__title {\n font-weight: bold;\n font-size: 25px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n退会手続き\n\n退会手続きで使用するページコンポーネントです。\n\nex [退会手続き](http://demo3.ec-cube.net/mypage/withdraw)\n\nMarkup:\ninclude /assets/tmpl/elements/21.1.withdraw.pug\n+ec-withdrawRole\n\nStyleguide 21.1\n\n*/\n.ec-withdrawRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n text-align: center;\n padding: 0 16px; }\n .ec-withdrawRole:after {\n content: \" \";\n display: table; }\n .ec-withdrawRole:after {\n clear: both; }\n .ec-withdrawRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-withdrawRole img {\n max-width: 100%; }\n .ec-withdrawRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-withdrawRole *,\n .ec-withdrawRole *::before,\n .ec-withdrawRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-withdrawRole img {\n width: 100%; }\n .ec-withdrawRole .ec-withdrawRole__title {\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px; }\n .ec-withdrawRole .ec-withdrawRole__description {\n margin-bottom: 32px;\n font-size: 16px; }\n .ec-withdrawRole .ec-icon img {\n width: 100px;\n height: 100px; }\n\n/*\n退会手続き実行確認\n\n退会手続き実行確認で使用するページコンポーネントです。\n\nex [退会手続き 退会手続きへボタン→押下](http://demo3.ec-cube.net/mypage/withdraw)\n\nMarkup:\ninclude /assets/tmpl/elements/21.1.withdraw.pug\n+ec-withdrawConfirm\n\nStyleguide 21.1.2\n\n*/\n.ec-withdrawConfirmRole .ec-withdrawConfirmRole__cancel {\n margin-bottom: 20px; }\n\n.ec-withdrawConfirmRole .ec-withdrawConfirmRole__title {\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px; }\n\n.ec-withdrawConfirmRole .ec-withdrawConfirmRole__description {\n margin-bottom: 32px;\n font-size: 16px; }\n\n.ec-withdrawConfirmRole .ec-icon img {\n width: 100px;\n height: 100px; }\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n/*\n会員情報編集完了\n\n会員情報編集完了で使用するページコンポーネントです。\n\nex [会員情報編集完了](http://demo3.ec-cube.net/mypage/change_complete)\n\nMarkup:\ninclude /assets/tmpl/elements/22.1.editComplete.pug\n+ec-userEditCompleteRole\n\nStyleguide 22.1\n\n*/\n.ec-userEditCompleteRole {\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n width: 100%;\n max-width: 1130px;\n text-align: center;\n padding: 0 16px; }\n .ec-userEditCompleteRole:after {\n content: \" \";\n display: table; }\n .ec-userEditCompleteRole:after {\n clear: both; }\n .ec-userEditCompleteRole textarea {\n /* for chrome fontsize bug */\n font-family: sans-serif; }\n .ec-userEditCompleteRole img {\n max-width: 100%; }\n .ec-userEditCompleteRole html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n .ec-userEditCompleteRole *,\n .ec-userEditCompleteRole *::before,\n .ec-userEditCompleteRole *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n .ec-userEditCompleteRole img {\n width: 100%; }\n .ec-userEditCompleteRole .ec-userEditCompleteRole__title {\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px; }\n @media only screen and (min-width: 768px) {\n .ec-userEditCompleteRole .ec-userEditCompleteRole__title {\n font-size: 32px; } }\n .ec-userEditCompleteRole .ec-userEditCompleteRole__description {\n margin-bottom: 32px;\n font-size: 16px; }\n","/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */\n\n/**\n * 1. Change the default font family in all browsers (opinionated).\n * 2. Correct the line height in all browsers.\n * 3. Prevent adjustments of font size after orientation changes in\n * IE on Windows Phone and in iOS.\n */\n\n/* Document\n ========================================================================== */\n\nhtml {\n font-family: sans-serif; /* 1 */\n line-height: 1.15; /* 2 */\n -ms-text-size-adjust: 100%; /* 3 */\n -webkit-text-size-adjust: 100%; /* 3 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers (opinionated).\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Add the correct display in IE 9-.\n */\n\narticle,\naside,\nfooter,\nheader,\nnav,\nsection {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Add the correct display in IE 9-.\n * 1. Add the correct display in IE.\n */\n\nfigcaption,\nfigure,\nmain { /* 1 */\n display: block;\n}\n\n/**\n * Add the correct margin in IE 8.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * 1. Remove the gray background on active links in IE 10.\n * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.\n */\n\na {\n background-color: transparent; /* 1 */\n -webkit-text-decoration-skip: objects; /* 2 */\n}\n\n/**\n * Remove the outline on focused links when they are also active or hovered\n * in all browsers (opinionated).\n */\n\na:active,\na:hover {\n outline-width: 0;\n}\n\n/**\n * 1. Remove the bottom border in Firefox 39-.\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Prevent the duplicate application of `bolder` by the next rule in Safari 6.\n */\n\nb,\nstrong {\n font-weight: inherit;\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font style in Android 4.3-.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Add the correct background and color in IE 9-.\n */\n\nmark {\n background-color: #ff0;\n color: #000;\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Add the correct display in IE 9-.\n */\n\naudio,\nvideo {\n display: inline-block;\n}\n\n/**\n * Add the correct display in iOS 4-7.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Remove the border on images inside links in IE 10-.\n */\n\nimg {\n border-style: none;\n}\n\n/**\n * Hide the overflow in IE.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers (opinionated).\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: sans-serif; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n * controls in Android 4.\n * 2. Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\nhtml [type=\"button\"], /* 1 */\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Change the border, margin, and padding in all browsers (opinionated).\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * 1. Add the correct display in IE 9-.\n * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Remove the default vertical scrollbar in IE.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10-.\n * 2. Remove the padding in IE 10-.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in IE 9-.\n * 1. Add the correct display in Edge, IE, and Firefox.\n */\n\ndetails, /* 1 */\nmenu {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Scripting\n ========================================================================== */\n\n/**\n * Add the correct display in IE 9-.\n */\n\ncanvas {\n display: inline-block;\n}\n\n/**\n * Add the correct display in IE.\n */\n\ntemplate {\n display: none;\n}\n\n/* Hidden\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10-.\n */\n\n[hidden] {\n display: none;\n}\n","@import \"/node_modules/normalize.css/normalize.css\";\n\nbody {\n font-family: Roboto, \"游ゴシック\", YuGothic, \"Yu Gothic\", \"ヒラギノ角ゴ ProN W3\", \"Hiragino Kaku Gothic ProN\", Arial, \"メイリオ\", Meiryo, sans-serif;\n color:#525263;\n transition: z-index 0ms 5.28455ms;\n background: #f6f6f6;\n margin: 0;\n}\na {\n text-decoration: none;\n}\n\npre {\n background-color: transparent;\n border: none;\n padding: 16px 0;\n}\np {\n -webkit-margin-before: 0;\n -webkit-margin-after: 0;\n}\n@import \"component/1.1.heading\";\n@import \"component/1.2.typo\";\n@import \"component/1.3.list\";\n@import \"component/2.1.buttonsize\";\n@import \"component/2.2.closebutton.scss\";\n@import \"component/2.3.otherbutton\";\n@import \"component/3.1.inputText\";\n@import \"component/3.2.inputMisc\";\n@import \"component/3.3.form\";\n@import \"component/4.1.icon\";\n@import \"component/5.1.grid\";\n@import \"component/5.2.layout\";\n@import \"component/6.1.login\";\n@import \"component/7.1.itembanner\";\n@import \"component/7.2.search\";\n@import \"component/7.3.cart\";\n@import \"component/8.1.info\";\n@import \"component/8.2.banner\";\n@import \"component/9.1.mypage\";\n@import \"project/11.1.role\";\n@import \"project/11.2.header\";\n@import \"project/11.3.footer\";\n@import \"project/12.1.slider\";\n@import \"project/12.2.eyecatch\";\n@import \"project/12.3.button\";\n@import \"project/12.4.heading\";\n@import \"project/12.5.topics\";\n@import \"project/12.6.newItem\";\n@import \"project/12.7.category\";\n@import \"project/12.8.news\";\n@import \"project/13.1.searchnav\";\n@import \"project/13.2.shelf\";\n@import \"project/13.3.pager\";\n@import \"project/13.4.cartModal\";\n@import \"project/14.1.product\";\n@import \"project/15.1.cart\";\n@import \"project/15.2.order\";\n@import \"project/16.1.history\";\n@import \"project/16.2.historyDetail\";\n@import \"project/17.1.address\";\n@import \"project/18.1.password\";\n@import \"project/19.1.register\";\n@import \"project/19.2.contact\";\n@import \"project/19.3.customer\";\n@import \"project/20.1.404\";\n@import \"project/21.1.withdraw\";\n@import \"project/22.1.editComplete\";","@import \"./variables\";\n@import \"./clearfix\";\n\n/**\nメディアクエリ\nSP フォーストで記述する。\nTwitter Bootstrap デフォルト準拠\n */\n\n\n\n//@mixin media_tablet(){\n// @media only screen and (min-width: 768px) {\n// @content;\n// }\n//}\n\n@mixin media_desktop(){\n @media only screen and (min-width: 768px) {\n @content;\n }\n}\n\n//@mixin media_desktop2(){\n// @media only screen and (min-width: 768px) {\n// @content;\n// }\n//}\n//\n//@mixin media_desktop3(){\n// @media only screen and (min-width: 768px) {\n// @content;\n// }\n//}\n\n\n@mixin container(){\n margin: 0 auto;\n padding-left: 20px;\n padding-right: 20px;\n box-sizing: border-box;\n @include clearfix;\n @include commonStyle();\n width: 100%;\n max-width: 1130px;\n\n //@media (min-width: $desktop) {\n // width: 720 + 30px;\n //}\n //@media (min-width: $desktop2) {\n // width: 940 + 30px;\n //}\n //@media (min-width: $desktop3) {\n // width: 1140 + 30px;\n //}\n}\n@mixin mypageContainer(){\n margin-right: auto;\n margin-left: auto;\n padding-left: 16px;\n padding-right: 16px;\n box-sizing: border-box;\n @include clearfix;\n @include commonStyle();\n width: 100%;\n //max-width: 1130px;\n @include media_desktop {\n padding-left: 26px;\n padding-right: 26px;\n }\n}\n\n@mixin commonStyle(){\n font-size: 16px;\n line-height: 1.4;\n color: #525263;\n -webkit-text-size-adjust: 100%;\n\n //a {\n //color: #0092C4;\n //color: #A092C4;\n //text-decoration: none;\n //cursor: pointer;\n //}\n //a:hover,\n //a:focus,\n //a:active { color: #33A8D0;text-decoration: none; outline: none;}\n\n\n textarea { /* for chrome fontsize bug */\n font-family: sans-serif;\n }\n\n //ul, ol {\n // list-style: none;\n // margin: 0; padding: 0;\n //}\n //dl, dt, dd, li{\n // margin: 0; padding: 0;\n //}\n img {\n max-width: 100%;\n }\n\n html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n *,\n *::before,\n *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n img{\n width: 100%;\n }\n\n\n}\n","@import \"../mixins/media\";\n@import \"../mixins/variables\";\n/*\n見出し\n\nページ内で見出しとして機能する要素のスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 1.1\n*/\n\n/*\n見出し\n\n商品紹介等で利用される、一般的な見出しのスタイルです。\n\nex [商品詳細ページ 商品見出し部分](http://demo3.ec-cube.net/products/detail/27)\n\nMarkup:\n.ec-headingTitle マトリョーシカ\n\nStyleguide 1.1.1\n*/\n.ec-headingTitle{\n margin: 0 0 8px;\n font-size: 32px;\n font-weight: normal;\n color: #525263;\n}\n\n/*\nページヘッダ\n\n各種ページで用いられるページヘッダのデザインです。\n\nex [利用規約ページ ページヘッダ部](http://demo3.ec-cube.net/help/agreement)\n\nMarkup:\n.ec-pageHeader\n h1 利用規約\n\nStyleguide 1.1.2\n*/\n.ec-pageHeader h1{\n margin: 0 0 8px;\n border-bottom: 1px dotted #ccc;\n border-top: 1px solid #ccc;\n padding: 8px 0 12px;\n font-size: 16px;\n font-weight: bold;\n @include media_desktop {\n border-top: none;\n border-bottom: 1px solid #ccc;\n margin: 10px 16px 48px;\n padding: 8px;\n font-size: 32px;\n font-weight: bold;\n }\n}\n\n\n/*\nサブ見出し\n\n利用規約など、文字主体のページで用いられるサブ見出しです。\n\nex [利用規約ページ サブ見出し部分](http://demo3.ec-cube.net/help/agreement)\n\nMarkup:\n.ec-heading 第1条 (会員)\n\nStyleguide 1.1.3\n*/\n\n.ec-heading{\n margin: 24px 0;\n}\n\n\n\n/*\nサブ見出し(太字)\n\n文字主体のページで用いられるサブ見出しの太字のスタイルです。\n\nex [プライバシーポリシー サブ見出し部分](http://demo3.ec-cube.net/help/privacy)\n\nMarkup:\n.ec-heading-bold 個人情報の定義\n\nStyleguide 1.1.4\n*/\n\n.ec-heading-bold {\n margin: 16px 0;\n font-size: 16px;\n font-weight: bold;\n @include media_desktop {\n font-size: 18px;\n }\n}\n\n/*\n背景付き見出し\n\nマイページ注文履歴等で用いられる背景付きの見出しです。\n\nex [ご注文履歴詳細 背景付き見出し部分](http://demo3.ec-cube.net/mypage/history/1063)\n\nMarkup:\n.ec-rectHeading\n h2 配送情報\n.ec-rectHeading\n h2 お支払について\n\nStyleguide 1.1.5\n*/\n.ec-rectHeading{\n h1, h2, h3,\n h4, h5, h6{\n background: $clrGray;\n padding: 8px 12px;\n font-size: 20px;\n font-weight: bold;\n }\n\n}\n\n\n/*\nメッセージ見出し\n\nユーザが行った操作に対する、完了報告やエラー表示のページで使用される見出しのスタイルです。\n\nex [注文完了 ログイン後、カートに商品を入れ注文完了まで行う](http://demo3.ec-cube.net/shopping/)\n\nMarkup:\n.ec-reportHeading\n h2 ご注文ありがとうございました\n\nStyleguide 1.1.6\n*/\n.ec-reportHeading{\n width: 100%;\n border-top: 1px dotted #ccc;\n margin: 20px 0 30px;\n padding: 0;\n text-align: center;\n font-size: 24px;\n font-weight: bold;\n @include media_desktop {\n border-top: 0;\n font-size: 32px;\n }\n h1, h2, h3,\n h4, h5, h6,p {\n font-weight: bold;\n font-size: 24px;\n @include media_desktop {\n font-size: 32px;\n }\n }\n}\n\n","\n// MediaQuery\n$tablet: 480px;\n$desktop: 768px;\n$desktop2: 992px;\n$desktop3: 1200px;\n\n$font-size: 16px;\n\n$clrRed: #DE5D50;\n$clrRich: #9a947e;\n$clrGray: #F3F3F3;\n$clrRightGray: #B8BEC4;\n$clrExtraGray: #636378;\n$clrDarkGray:#525263;\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/variables\";\n","@import \"../mixins/media\";\n/*\n文字装飾\n\n文字装飾をするためのスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 1.2\n*/\n\n/*\nテキストリンク\n\nテキストリンクのスタイルです。\n\nMarkup:\na(href=\"#\").ec-link さくらのクラウド\n\nStyleguide 1.2.1\n*/\n.ec-link {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer;\n &:hover {\n color: #33A8D0;\n text-decoration: none;\n }\n}\n\n/*\nテキスト(太字)\n\nテキストを太くするためのスタイルです。\n\nMarkup:\np.ec-font-bold この季節にぴったりな商品をご用意しました\n\nStyleguide 1.2.2\n*/\n\n.ec-font-bold {\n font-weight: bold;\n}\n\n/*\nテキスト(グレー)\n\nテキストをグレーにするためのスタイルです。\n\nMarkup:\np.ec-color-grey 青色が美しい職人が仕上げた吹きガラス\n\nStyleguide 1.2.3\n*/\n\n.ec-color-grey {\n color: #9a947e;\n}\n\n/*\nテキスト(赤)\n\nテキストを赤にするためのスタイルです。\n\nMarkup:\np.ec-color-red ¥ 2,728 税込\np.ec-color-accent ¥ 2,728 税込\n\nStyleguide 1.2.4\n*/\n\n.ec-color-red {\n color: #DE5D50;\n}\n\n.ec-color-accent {\n color: #DE5D50;\n}\n\n/*\nフォントサイズ\n\nフォントサイズを指定するためのスタイルです。\n\nMarkup:\n.ec-font-size-1 さわやかな日差しが過ごしやすい季節\n.ec-font-size-2 さわやかな日差しが過ごしやすい季節\n.ec-font-size-3 さわやかな日差しが過ごしやすい季節\n.ec-font-size-4 さわやかな日差しが過ごしやすい季節\n.ec-font-size-5 さわやかな日差しが過ごしやすい季節\n.ec-font-size-6 さわやかな日差しが過ごしやすい季節\n\n\nStyleguide 1.2.5\n*/\n\n.ec-font-size-1 {\n font-size: 12px;\n}\n\n.ec-font-size-2 {\n font-size: 14px;\n}\n\n.ec-font-size-3 {\n font-size: 16px;\n}\n\n.ec-font-size-4 {\n font-size: 20px;\n}\n\n.ec-font-size-5 {\n font-size: 32px;\n}\n\n.ec-font-size-6 {\n font-size: 40px;\n}\n\n/*\nテキスト水平位置\n\nテキストをセンタリングするためのスタイルです。\n\nMarkup:\np.ec-text-ac さわやかな日差しが過ごしやすい季節\n\nStyleguide 1.2.6\n*/\n\n.ec-text-ac {\n text-align: center;\n}\n\n/*\n価格テキスト\n\n価格を表示するテキストです。\n\n価格文字にスペースを取るほか、税込み等の表示を小さくする効果もあります。\n\nspanを用いたインライン要素として利用します。\n\nMarkup:\ndiv(style=\"color:#DE5D50;font-size:28px\")\n span.ec-price\n span.ec-price__unit ¥\n span.ec-price__price 1,280\n span.ec-price__tax 税込\n\nStyleguide 1.2.7\n*/\n.ec-price {\n & &__unit {\n font-size: 18px;\n font-weight: bold;\n @include media_desktop{\n font-size: 1em;\n }\n }\n & &__price {\n display: inline-block;\n padding: 0 .3em;\n font-size: 18px;\n font-weight: bold;\n @include media_desktop{\n font-size: 1em;\n }\n }\n & &__tax {\n font-size: 10px;\n @include media_desktop{\n font-size: 0.57em;\n }\n }\n\n}\n\n/*\nテキストの位置\n\nテキストや、入れ子にしたインライン要素を\n「左揃え」「中央揃え」「右揃え」に設定することができます。\n\nMarkup:\nh3 左揃え\np.text-left\n | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Incidunt praesentium repellat sapiente suscipit, unde veniam! Doloribus error, expedita id impedit iusto qui sint totam? Aspernatur error facere possimus quam quos?\nbr\nh3 中央揃え\np.text-center\n | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Incidunt praesentium repellat sapiente suscipit, unde veniam! Doloribus error, expedita id impedit iusto qui sint totam? Aspernatur error facere possimus quam quos?\nbr\nh3 右揃え\np.text-right\n | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Incidunt praesentium repellat sapiente suscipit, unde veniam! Doloribus error, expedita id impedit iusto qui sint totam? Aspernatur error facere possimus quam quos?\n\nStyleguide 1.2.8\n*/\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.text-right {\n text-align: right;\n}\n\n/*\nメッセージテキスト\n\nユーザが行った操作に対する、完了報告やエラー表示のページで使用されるテキストのスタイルです。\n\nex [注文完了 (ログイン後、カートに商品を入れ注文完了まで行う)](http://demo3.ec-cube.net/shopping/)\n\nMarkup:\n.ec-reportHeading\n h2 ご注文ありがとうございました\np.ec-reportDescription\n | ただいま、ご注文の確認メールをお送りさせていただきました。\n br\n | 万一、ご確認メールが届かない場合は、トラブルの可能性もありますので大変お手数ではございますがもう一度お問い合わせいただくか、お電話にてお問い合わせくださいませ。\n br\n | 今後ともご愛顧賜りますようよろしくお願い申し上げます。\n\n\nStyleguide 1.2.9\n*/\n.ec-reportDescription {\n margin-bottom: 32px;\n text-align: center;\n font-size: 16px;\n line-height: 1.4;\n}\n\n/*\nテキスト下部のスペース\n\nテキストの下に余白を追加することができます。 .ec-para-normalで16pxの余白をつけることができます。\n\nMarkup:\np.ec-para-normal 万一、ご確認メールが届かない場合は、トラブルの可能性もありますので大変お手数ではございますがもう一度お問い合わせいただくか、お電話にてお問い合わせくださいませ。\np.ec-para-normal 万一、ご確認メールが届かない場合は、トラブルの可能性もありますので大変お手数ではございますがもう一度お問い合わせいただくか、お電話にてお問い合わせくださいませ。\n\nStyleguide 1.2.10\n*/\n.ec-para-normal {\n margin-bottom: 16px;\n}","@import \"../mixins/media\";\n\n/*\nリスト\n\nシンプルなリストを構成するためのスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 1.3\n*/\n\n/*\n水平定義リスト\n\nシンプルな定義リストのスタイルを定義します。\n\ndl要素を用いてコーディングします。\n\nex [当サイトについて 水平定義リスト部分](http://demo3.ec-cube.net/help/about)\n\nMarkup:\ndl.ec-definitions\n dt 店名\n dd EC-CUBE3 DEMO SHOP\ndl.ec-definitions\n dt 会社名\n dd EC-CUBE3\ndl.ec-definitions--soft\n dt 所在地\n dd 〒 550-0001\n\nStyleguide 1.3.1\n*/\n.ec-definitions {\n margin: 5px 0;\n display: block;\n & dt, dd {\n display: inline-block;\n margin: 0;\n }\n & dt {\n font-weight: bold;\n }\n}\n\n.ec-definitions--soft {\n @extend .ec-definitions;\n & dt {\n font-weight: normal;\n }\n}\n\n/*\n下線つき定義リスト\n\n線が添えられた定義リストのスタイルを定義します。\n\ndl要素を用いてコーディングします。\n\nex [当サイトについて 下線つき定義リスト](http://demo3.ec-cube.net/help/about)\n\nMarkup:\n.ec-borderedDefs\n dl\n dt 店名\n dd EC-CUBE3 DEMO SHOP\n dl\n dt 会社名\n dd EC-CUBE3\n dl\n dt 所在地\n dd 〒550 - 0001\n\nStyleguide 1.3.2\n*/\n\n.ec-borderedDefs {\n width: 100%;\n border-top: 1px dotted #ccc;\n margin-bottom:16px;\n dl {\n display: flex;\n border-bottom: 1px dotted #ccc;\n margin: 0;\n padding: 10px 0 0;\n flex-wrap: wrap;\n @include media_desktop {\n flex-wrap: nowrap;\n padding: 15px 0 4px;\n }\n }\n dt, dd {\n padding: 0;\n }\n\n dt {\n font-weight: normal;\n width: 100%;\n padding-top: 0;\n @include media_desktop {\n padding-top: 14px;\n width: 30%;\n }\n }\n\n dd {\n padding: 0;\n width: 100%;\n line-height: 2.5;\n @include media_desktop {\n width: 70%;\n //padding: 18px 16px;\n line-height: 3;\n }\n }\n p {\n line-height: 1.4;\n }\n}\n\n.ec-list-chilled {\n display: table-row;\n border: 0 none;\n padding: 8px 0;\n\n dt, dd {\n display: table-cell;\n border-bottom: 1px dotted #ccc;\n padding: 0;\n @include media_desktop {\n padding: 16px 0;\n }\n }\n\n dt {\n width: 30%;\n }\n\n dd {\n padding: 0;\n @include media_desktop {\n padding: 16px;\n }\n }\n}\n\n/*\nボーダーリスト\n\n線が添えられたリストを表示します。\n\nex [当サイトについて ボーダーリスト](http://demo3.ec-cube.net/help/about)\n\nMarkup:\nul.ec-borderedList\n li: p lorem\n li: p lorem\n li: p lorem\n\n\nStyleguide 1.3.3\n*/\n\n.ec-borderedList {\n width: 100%;\n border-top: 0;\n list-style: none;\n padding: 0;\n @include media_desktop {\n border-top: 1px dotted #ccc;\n }\n li {\n border-bottom: 1px dotted #ccc;\n }\n}\n\n.ec-list-chilled {\n display: table-row;\n border: 0 none;\n padding: 8px 0;\n\n dt, dd {\n display: table-cell;\n border-bottom: 1px dotted #ccc;\n padding: 16px 0;\n }\n\n dt {\n width: 30%;\n }\n\n dd {\n padding: 16px;\n }\n}\n","@import \"../mixins/btn\";\n/*\nボタンサイズ\n\nボタンサイズを変更するスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 2.1\n*/\n\n/*\n通常ボタン\n\nインラインの要素としてボタンを定義出来ます。\n\nex [トップページ ボタン部分](http://demo3.ec-cube.net/)\n\nMarkup:\n.ec-inlineBtn 住所検索\n.ec-inlineBtn--primary もっと見る\n.ec-inlineBtn--action カートに入れる\n.ec-inlineBtn--cancel キャンセル\n\nStyleguide 2.1.1\n*/\n.ec-inlineBtn{\n @include btn-default;\n}\n.ec-inlineBtn--primary{\n @include btn-primary\n}\n.ec-inlineBtn--action{\n @include btn-action\n}\n.ec-inlineBtn--cancel{\n @include btn-cancel\n}\n\n/*\nブロックボタン(全幅)\n\nボタンサイズは em で指定するため、テキストサイズの変更でボタンサイズを変更できます。\n\nex [商品詳細ページ カートボタン部分](http://demo3.ec-cube.net/products/detail/30)\n\nMarkup:\np: .ec-blockBtn 住所検索\np: .ec-blockBtn--primary もっと見る\np: .ec-blockBtn--action カートに入れる\np: .ec-blockBtn--cancel キャンセル\n\nStyleguide 2.1.2\n*/\n.ec-blockBtn{\n @include blockBtn-default;\n}\n.ec-blockBtn--primary{\n @include blockBtn-primary\n}\n.ec-blockBtn--action{\n @include blockBtn-action\n}\n.ec-blockBtn--cancel{\n @include blockBtn-cancel\n}","@import \"../mixins/variables\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/buttons\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/tab-focus\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/opacity\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/vendor-prefixes\";\n\n$padding-base-vertical: 6px !default;\n\n\n$btn-primary-bg: #5CB1B1;\n$btn-primary-color: #fff;\n$btn-action-bg: #DE5D50;\n$btn-action-color: #fff;\n$btn-cancel-bg: #525263;\n$btn-cancel-color: #fff;\n$btn-default-bg: #F5F7F8;\n$btn-default-color: #525263;\n\n$btn-border-radius-base: 0px;\n\n\n@mixin _btn($color, $background, $border){\n display: inline-block;\n margin-bottom: 0; // For input.btn\n font-weight: bold;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n white-space: nowrap;\n @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base);\n @include user-select(none);\n padding: 10px 16px;\n text-decoration: none;\n\n &,\n &:active,\n &.active {\n &:focus,\n &.focus {\n @include tab-focus;\n }\n }\n\n &:hover,\n &:focus,\n &.focus {\n color: $btn-default-color;\n text-decoration: none;\n }\n\n &:active,\n &.active {\n outline: 0;\n background-image: none;\n @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n cursor: $cursor-disabled;\n @include opacity(.65);\n @include box-shadow(none);\n }\n\n @include button-variant($color, $background, $border);\n // [converter] extracted a& to a.btn\n\n .ec-icon img {\n width: 1em;\n vertical-align: text-bottom;\n }\n}\n\n@mixin btn-default(){\n @include _btn($btn-default-color, $btn-default-bg, $btn-default-border)\n}\n@mixin btn-action(){\n @include _btn($btn-action-color, $btn-action-bg, $btn-action-bg)\n}\n@mixin btn-cancel(){\n @include _btn($btn-cancel-color, $btn-cancel-bg, $btn-cancel-bg)\n}\n@mixin btn-primary(){\n @include _btn($btn-primary-color, $btn-primary-bg, $btn-primary-bg)\n}\n\n@mixin blockBtn-default(){\n @include _btn($btn-default-color, $btn-default-bg, $btn-default-border);\n display: block;\n width: 100%;\n height:56px;\n line-height:56px;\n padding-top: 0;\n padding-bottom: 0;\n}\n@mixin blockBtn-action(){\n @include _btn($btn-action-color, $btn-action-bg, $btn-action-bg);\n display: block;\n width: 100%;\n height:56px;\n line-height:56px;\n padding-top: 0;\n padding-bottom: 0;\n}\n@mixin blockBtn-cancel(){\n @include _btn($btn-cancel-color, $btn-cancel-bg, $btn-cancel-bg);\n display: block;\n width: 100%;\n height:56px;\n line-height:56px;\n padding-top: 0;\n padding-bottom: 0;\n}\n@mixin blockBtn-primary(){\n @include _btn($btn-primary-color, $btn-primary-bg, $btn-primary-bg);\n display: block;\n width: 100%;\n height:56px;\n line-height:56px;\n padding-top: 0;\n padding-bottom: 0;\n}\n\n// User select\n// For selecting text on the page\n\n@mixin user-select($select) {\n -webkit-user-select: $select;\n -moz-user-select: $select;\n -ms-user-select: $select; // IE10+\n user-select: $select;\n}\n\n\n\n\n@mixin linkBtn{\n &.disabled,\n fieldset[disabled] & {\n pointer-events: none; // Future-proof disabling of clicks on `` elements\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($color, $background, $border) {\n color: $color;\n background-color: $background;\n border-color: $border;\n\n &:focus,\n &.focus {\n color: $color;\n background-color: darken($background, 10%);\n border-color: darken($border, 25%);\n }\n &:hover {\n color: $color;\n background-color: darken($background, 10%);\n border-color: darken($border, 12%);\n }\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n color: $color;\n background-color: darken($background, 10%);\n border-color: darken($border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: $color;\n background-color: darken($background, 17%);\n border-color: darken($border, 25%);\n }\n }\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: $background;\n border-color: $border;\n }\n }\n\n .badge {\n color: $background;\n background-color: $color;\n }\n}\n\n// Button sizes\n@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {\n padding: $padding-vertical $padding-horizontal;\n font-size: $font-size;\n line-height: $line-height;\n border-radius: $border-radius;\n}\n","$bootstrap-sass-asset-helper: false !default;\n//\n// Variables\n// --------------------------------------------------\n\n\n//== Colors\n//\n//## Gray and brand colors for use across Bootstrap.\n\n$gray-base: #000 !default;\n$gray-darker: lighten($gray-base, 13.5%) !default; // #222\n$gray-dark: lighten($gray-base, 20%) !default; // #333\n$gray: lighten($gray-base, 33.5%) !default; // #555\n$gray-light: lighten($gray-base, 46.7%) !default; // #777\n$gray-lighter: lighten($gray-base, 93.5%) !default; // #eee\n\n$brand-primary: darken(#428bca, 6.5%) !default; // #337ab7\n$brand-success: #5cb85c !default;\n$brand-info: #5bc0de !default;\n$brand-warning: #f0ad4e !default;\n$brand-danger: #d9534f !default;\n\n\n//== Scaffolding\n//\n//## Settings for some of the most global styles.\n\n//** Background color for ``.\n$body-bg: #fff !default;\n//** Global text color on ``.\n$text-color: $gray-dark !default;\n\n//** Global textual link color.\n$link-color: $brand-primary !default;\n//** Link hover color set via `darken()` function.\n$link-hover-color: darken($link-color, 15%) !default;\n//** Link hover decoration.\n$link-hover-decoration: underline !default;\n\n\n//== Typography\n//\n//## Font, line-height, and color for body text, headings, and more.\n\n$font-family-sans-serif: \"Helvetica Neue\", Helvetica, Arial, sans-serif !default;\n$font-family-serif: Georgia, \"Times New Roman\", Times, serif !default;\n//** Default monospace fonts for ``, ``, and `
`.\n$font-family-monospace:   Menlo, Monaco, Consolas, \"Courier New\", monospace !default;\n$font-family-base:        $font-family-sans-serif !default;\n\n$font-size-base:          14px !default;\n$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px\n$font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px\n\n$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px\n$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px\n$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px\n$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px\n$font-size-h5:            $font-size-base !default;\n$font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px\n\n//** Unit-less `line-height` for use in components like buttons.\n$line-height-base:        1.428571429 !default; // 20/14\n//** Computed \"line-height\" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.\n$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px\n\n//** By default, this inherits from the ``.\n$headings-font-family:    inherit !default;\n$headings-font-weight:    500 !default;\n$headings-line-height:    1.1 !default;\n$headings-color:          inherit !default;\n\n\n//== Iconography\n//\n//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.\n\n//** Load fonts from this directory.\n\n// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.\n// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.\n$icon-font-path: if($bootstrap-sass-asset-helper, \"bootstrap/\", \"../fonts/bootstrap/\") !default;\n\n//** File name for all font files.\n$icon-font-name:          \"glyphicons-halflings-regular\" !default;\n//** Element ID within SVG icon file.\n$icon-font-svg-id:        \"glyphicons_halflingsregular\" !default;\n\n\n//== Components\n//\n//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).\n\n$padding-base-vertical:     6px !default;\n$padding-base-horizontal:   12px !default;\n\n$padding-large-vertical:    10px !default;\n$padding-large-horizontal:  16px !default;\n\n$padding-small-vertical:    5px !default;\n$padding-small-horizontal:  10px !default;\n\n$padding-xs-vertical:       1px !default;\n$padding-xs-horizontal:     5px !default;\n\n$line-height-large:         1.3333333 !default; // extra decimals for Win 8.1 Chrome\n$line-height-small:         1.5 !default;\n\n$border-radius-base:        4px !default;\n$border-radius-large:       6px !default;\n$border-radius-small:       3px !default;\n\n//** Global color for active items (e.g., navs or dropdowns).\n$component-active-color:    #fff !default;\n//** Global background color for active items (e.g., navs or dropdowns).\n$component-active-bg:       $brand-primary !default;\n\n//** Width of the `border` for generating carets that indicate dropdowns.\n$caret-width-base:          4px !default;\n//** Carets increase slightly in size for larger components.\n$caret-width-large:         5px !default;\n\n\n//== Tables\n//\n//## Customizes the `.table` component with basic values, each used across all table variations.\n\n//** Padding for ``s and ``s.\n$table-cell-padding:            8px !default;\n//** Padding for cells in `.table-condensed`.\n$table-condensed-cell-padding:  5px !default;\n\n//** Default background color used for all tables.\n$table-bg:                      transparent !default;\n//** Background color used for `.table-striped`.\n$table-bg-accent:               #f9f9f9 !default;\n//** Background color used for `.table-hover`.\n$table-bg-hover:                #f5f5f5 !default;\n$table-bg-active:               $table-bg-hover !default;\n\n//** Border color for table and cell borders.\n$table-border-color:            #ddd !default;\n\n\n//== Buttons\n//\n//## For each of Bootstrap's buttons, define text, background and border color.\n\n$btn-font-weight:                normal !default;\n\n$btn-default-color:              #333 !default;\n$btn-default-bg:                 #fff !default;\n$btn-default-border:             #ccc !default;\n\n$btn-primary-color:              #fff !default;\n$btn-primary-bg:                 $brand-primary !default;\n$btn-primary-border:             darken($btn-primary-bg, 5%) !default;\n\n$btn-success-color:              #fff !default;\n$btn-success-bg:                 $brand-success !default;\n$btn-success-border:             darken($btn-success-bg, 5%) !default;\n\n$btn-info-color:                 #fff !default;\n$btn-info-bg:                    $brand-info !default;\n$btn-info-border:                darken($btn-info-bg, 5%) !default;\n\n$btn-warning-color:              #fff !default;\n$btn-warning-bg:                 $brand-warning !default;\n$btn-warning-border:             darken($btn-warning-bg, 5%) !default;\n\n$btn-danger-color:               #fff !default;\n$btn-danger-bg:                  $brand-danger !default;\n$btn-danger-border:              darken($btn-danger-bg, 5%) !default;\n\n$btn-link-disabled-color:        $gray-light !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius-base:         $border-radius-base !default;\n$btn-border-radius-large:        $border-radius-large !default;\n$btn-border-radius-small:        $border-radius-small !default;\n\n\n//== Forms\n//\n//##\n\n//** `` background color\n$input-bg:                       #fff !default;\n//** `` background color\n$input-bg-disabled:              $gray-lighter !default;\n\n//** Text color for ``s\n$input-color:                    $gray !default;\n//** `` border color\n$input-border:                   #ccc !default;\n\n// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4\n//** Default `.form-control` border radius\n// This has no effect on ``s in CSS.\n$input-border-radius:            $border-radius-base !default;\n//** Large `.form-control` border radius\n$input-border-radius-large:      $border-radius-large !default;\n//** Small `.form-control` border radius\n$input-border-radius-small:      $border-radius-small !default;\n\n//** Border color for inputs on focus\n$input-border-focus:             #66afe9 !default;\n\n//** Placeholder text color\n$input-color-placeholder:        #999 !default;\n\n//** Default `.form-control` height\n$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;\n//** Large `.form-control` height\n$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;\n//** Small `.form-control` height\n$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;\n\n//** `.form-group` margin\n$form-group-margin-bottom:       15px !default;\n\n$legend-color:                   $gray-dark !default;\n$legend-border-color:            #e5e5e5 !default;\n\n//** Background color for textual input addons\n$input-group-addon-bg:           $gray-lighter !default;\n//** Border color for textual input addons\n$input-group-addon-border-color: $input-border !default;\n\n//** Disabled cursor for form controls and buttons.\n$cursor-disabled:                not-allowed !default;\n\n\n//== Dropdowns\n//\n//## Dropdown menu container and contents.\n\n//** Background for the dropdown menu.\n$dropdown-bg:                    #fff !default;\n//** Dropdown menu `border-color`.\n$dropdown-border:                rgba(0,0,0,.15) !default;\n//** Dropdown menu `border-color` **for IE8**.\n$dropdown-fallback-border:       #ccc !default;\n//** Divider color for between dropdown items.\n$dropdown-divider-bg:            #e5e5e5 !default;\n\n//** Dropdown link text color.\n$dropdown-link-color:            $gray-dark !default;\n//** Hover color for dropdown links.\n$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;\n//** Hover background for dropdown links.\n$dropdown-link-hover-bg:         #f5f5f5 !default;\n\n//** Active dropdown menu item text color.\n$dropdown-link-active-color:     $component-active-color !default;\n//** Active dropdown menu item background color.\n$dropdown-link-active-bg:        $component-active-bg !default;\n\n//** Disabled dropdown menu item background color.\n$dropdown-link-disabled-color:   $gray-light !default;\n\n//** Text color for headers within dropdown menus.\n$dropdown-header-color:          $gray-light !default;\n\n//** Deprecated `$dropdown-caret-color` as of v3.1.0\n$dropdown-caret-color:           #000 !default;\n\n\n//-- Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n//\n// Note: These variables are not generated into the Customizer.\n\n$zindex-navbar:            1000 !default;\n$zindex-dropdown:          1000 !default;\n$zindex-popover:           1060 !default;\n$zindex-tooltip:           1070 !default;\n$zindex-navbar-fixed:      1030 !default;\n$zindex-modal-background:  1040 !default;\n$zindex-modal:             1050 !default;\n\n\n//== Media queries breakpoints\n//\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n// Extra small screen / phone\n//** Deprecated `$screen-xs` as of v3.0.1\n$screen-xs:                  480px !default;\n//** Deprecated `$screen-xs-min` as of v3.2.0\n$screen-xs-min:              $screen-xs !default;\n//** Deprecated `$screen-phone` as of v3.0.1\n$screen-phone:               $screen-xs-min !default;\n\n// Small screen / tablet\n//** Deprecated `$screen-sm` as of v3.0.1\n$screen-sm:                  768px !default;\n$screen-sm-min:              $screen-sm !default;\n//** Deprecated `$screen-tablet` as of v3.0.1\n$screen-tablet:              $screen-sm-min !default;\n\n// Medium screen / desktop\n//** Deprecated `$screen-md` as of v3.0.1\n$screen-md:                  992px !default;\n$screen-md-min:              $screen-md !default;\n//** Deprecated `$screen-desktop` as of v3.0.1\n$screen-desktop:             $screen-md-min !default;\n\n// Large screen / wide desktop\n//** Deprecated `$screen-lg` as of v3.0.1\n$screen-lg:                  1200px !default;\n$screen-lg-min:              $screen-lg !default;\n//** Deprecated `$screen-lg-desktop` as of v3.0.1\n$screen-lg-desktop:          $screen-lg-min !default;\n\n// So media queries don't overlap when required, provide a maximum\n$screen-xs-max:              ($screen-sm-min - 1) !default;\n$screen-sm-max:              ($screen-md-min - 1) !default;\n$screen-md-max:              ($screen-lg-min - 1) !default;\n\n\n//== Grid system\n//\n//## Define your custom responsive grid.\n\n//** Number of columns in the grid.\n$grid-columns:              12 !default;\n//** Padding between columns. Gets divided in half for the left and right.\n$grid-gutter-width:         30px !default;\n// Navbar collapse\n//** Point at which the navbar becomes uncollapsed.\n$grid-float-breakpoint:     $screen-sm-min !default;\n//** Point at which the navbar begins collapsing.\n$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;\n\n\n//== Container sizes\n//\n//## Define the maximum width of `.container` for different screen sizes.\n\n// Small screen / tablet\n$container-tablet:             (720px + $grid-gutter-width) !default;\n//** For `$screen-sm-min` and up.\n$container-sm:                 $container-tablet !default;\n\n// Medium screen / desktop\n$container-desktop:            (940px + $grid-gutter-width) !default;\n//** For `$screen-md-min` and up.\n$container-md:                 $container-desktop !default;\n\n// Large screen / wide desktop\n$container-large-desktop:      (1140px + $grid-gutter-width) !default;\n//** For `$screen-lg-min` and up.\n$container-lg:                 $container-large-desktop !default;\n\n\n//== Navbar\n//\n//##\n\n// Basics of a navbar\n$navbar-height:                    50px !default;\n$navbar-margin-bottom:             $line-height-computed !default;\n$navbar-border-radius:             $border-radius-base !default;\n$navbar-padding-horizontal:        floor(($grid-gutter-width / 2)) !default;\n$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2) !default;\n$navbar-collapse-max-height:       340px !default;\n\n$navbar-default-color:             #777 !default;\n$navbar-default-bg:                #f8f8f8 !default;\n$navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;\n\n// Navbar links\n$navbar-default-link-color:                #777 !default;\n$navbar-default-link-hover-color:          #333 !default;\n$navbar-default-link-hover-bg:             transparent !default;\n$navbar-default-link-active-color:         #555 !default;\n$navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;\n$navbar-default-link-disabled-color:       #ccc !default;\n$navbar-default-link-disabled-bg:          transparent !default;\n\n// Navbar brand label\n$navbar-default-brand-color:               $navbar-default-link-color !default;\n$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;\n$navbar-default-brand-hover-bg:            transparent !default;\n\n// Navbar toggle\n$navbar-default-toggle-hover-bg:           #ddd !default;\n$navbar-default-toggle-icon-bar-bg:        #888 !default;\n$navbar-default-toggle-border-color:       #ddd !default;\n\n\n//=== Inverted navbar\n// Reset inverted navbar basics\n$navbar-inverse-color:                      lighten($gray-light, 15%) !default;\n$navbar-inverse-bg:                         #222 !default;\n$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;\n\n// Inverted navbar links\n$navbar-inverse-link-color:                 lighten($gray-light, 15%) !default;\n$navbar-inverse-link-hover-color:           #fff !default;\n$navbar-inverse-link-hover-bg:              transparent !default;\n$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;\n$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;\n$navbar-inverse-link-disabled-color:        #444 !default;\n$navbar-inverse-link-disabled-bg:           transparent !default;\n\n// Inverted navbar brand label\n$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;\n$navbar-inverse-brand-hover-color:          #fff !default;\n$navbar-inverse-brand-hover-bg:             transparent !default;\n\n// Inverted navbar toggle\n$navbar-inverse-toggle-hover-bg:            #333 !default;\n$navbar-inverse-toggle-icon-bar-bg:         #fff !default;\n$navbar-inverse-toggle-border-color:        #333 !default;\n\n\n//== Navs\n//\n//##\n\n//=== Shared nav styles\n$nav-link-padding:                          10px 15px !default;\n$nav-link-hover-bg:                         $gray-lighter !default;\n\n$nav-disabled-link-color:                   $gray-light !default;\n$nav-disabled-link-hover-color:             $gray-light !default;\n\n//== Tabs\n$nav-tabs-border-color:                     #ddd !default;\n\n$nav-tabs-link-hover-border-color:          $gray-lighter !default;\n\n$nav-tabs-active-link-hover-bg:             $body-bg !default;\n$nav-tabs-active-link-hover-color:          $gray !default;\n$nav-tabs-active-link-hover-border-color:   #ddd !default;\n\n$nav-tabs-justified-link-border-color:            #ddd !default;\n$nav-tabs-justified-active-link-border-color:     $body-bg !default;\n\n//== Pills\n$nav-pills-border-radius:                   $border-radius-base !default;\n$nav-pills-active-link-hover-bg:            $component-active-bg !default;\n$nav-pills-active-link-hover-color:         $component-active-color !default;\n\n\n//== Pagination\n//\n//##\n\n$pagination-color:                     $link-color !default;\n$pagination-bg:                        #fff !default;\n$pagination-border:                    #ddd !default;\n\n$pagination-hover-color:               $link-hover-color !default;\n$pagination-hover-bg:                  $gray-lighter !default;\n$pagination-hover-border:              #ddd !default;\n\n$pagination-active-color:              #fff !default;\n$pagination-active-bg:                 $brand-primary !default;\n$pagination-active-border:             $brand-primary !default;\n\n$pagination-disabled-color:            $gray-light !default;\n$pagination-disabled-bg:               #fff !default;\n$pagination-disabled-border:           #ddd !default;\n\n\n//== Pager\n//\n//##\n\n$pager-bg:                             $pagination-bg !default;\n$pager-border:                         $pagination-border !default;\n$pager-border-radius:                  15px !default;\n\n$pager-hover-bg:                       $pagination-hover-bg !default;\n\n$pager-active-bg:                      $pagination-active-bg !default;\n$pager-active-color:                   $pagination-active-color !default;\n\n$pager-disabled-color:                 $pagination-disabled-color !default;\n\n\n//== Jumbotron\n//\n//##\n\n$jumbotron-padding:              30px !default;\n$jumbotron-color:                inherit !default;\n$jumbotron-bg:                   $gray-lighter !default;\n$jumbotron-heading-color:        inherit !default;\n$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;\n$jumbotron-heading-font-size:    ceil(($font-size-base * 4.5)) !default;\n\n\n//== Form states and alerts\n//\n//## Define colors for form feedback states and, by default, alerts.\n\n$state-success-text:             #3c763d !default;\n$state-success-bg:               #dff0d8 !default;\n$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;\n\n$state-info-text:                #31708f !default;\n$state-info-bg:                  #d9edf7 !default;\n$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;\n\n$state-warning-text:             #8a6d3b !default;\n$state-warning-bg:               #fcf8e3 !default;\n$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;\n\n$state-danger-text:              #a94442 !default;\n$state-danger-bg:                #f2dede !default;\n$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;\n\n\n//== Tooltips\n//\n//##\n\n//** Tooltip max width\n$tooltip-max-width:           200px !default;\n//** Tooltip text color\n$tooltip-color:               #fff !default;\n//** Tooltip background color\n$tooltip-bg:                  #000 !default;\n$tooltip-opacity:             .9 !default;\n\n//** Tooltip arrow width\n$tooltip-arrow-width:         5px !default;\n//** Tooltip arrow color\n$tooltip-arrow-color:         $tooltip-bg !default;\n\n\n//== Popovers\n//\n//##\n\n//** Popover body background color\n$popover-bg:                          #fff !default;\n//** Popover maximum width\n$popover-max-width:                   276px !default;\n//** Popover border color\n$popover-border-color:                rgba(0,0,0,.2) !default;\n//** Popover fallback border color\n$popover-fallback-border-color:       #ccc !default;\n\n//** Popover title background color\n$popover-title-bg:                    darken($popover-bg, 3%) !default;\n\n//** Popover arrow width\n$popover-arrow-width:                 10px !default;\n//** Popover arrow color\n$popover-arrow-color:                 $popover-bg !default;\n\n//** Popover outer arrow width\n$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;\n//** Popover outer arrow color\n$popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;\n//** Popover outer arrow fallback color\n$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;\n\n\n//== Labels\n//\n//##\n\n//** Default label background color\n$label-default-bg:            $gray-light !default;\n//** Primary label background color\n$label-primary-bg:            $brand-primary !default;\n//** Success label background color\n$label-success-bg:            $brand-success !default;\n//** Info label background color\n$label-info-bg:               $brand-info !default;\n//** Warning label background color\n$label-warning-bg:            $brand-warning !default;\n//** Danger label background color\n$label-danger-bg:             $brand-danger !default;\n\n//** Default label text color\n$label-color:                 #fff !default;\n//** Default text color of a linked label\n$label-link-hover-color:      #fff !default;\n\n\n//== Modals\n//\n//##\n\n//** Padding applied to the modal body\n$modal-inner-padding:         15px !default;\n\n//** Padding applied to the modal title\n$modal-title-padding:         15px !default;\n//** Modal title line-height\n$modal-title-line-height:     $line-height-base !default;\n\n//** Background color of modal content area\n$modal-content-bg:                             #fff !default;\n//** Modal content border color\n$modal-content-border-color:                   rgba(0,0,0,.2) !default;\n//** Modal content border color **for IE8**\n$modal-content-fallback-border-color:          #999 !default;\n\n//** Modal backdrop background color\n$modal-backdrop-bg:           #000 !default;\n//** Modal backdrop opacity\n$modal-backdrop-opacity:      .5 !default;\n//** Modal header border color\n$modal-header-border-color:   #e5e5e5 !default;\n//** Modal footer border color\n$modal-footer-border-color:   $modal-header-border-color !default;\n\n$modal-lg:                    900px !default;\n$modal-md:                    600px !default;\n$modal-sm:                    300px !default;\n\n\n//== Alerts\n//\n//## Define alert colors, border radius, and padding.\n\n$alert-padding:               15px !default;\n$alert-border-radius:         $border-radius-base !default;\n$alert-link-font-weight:      bold !default;\n\n$alert-success-bg:            $state-success-bg !default;\n$alert-success-text:          $state-success-text !default;\n$alert-success-border:        $state-success-border !default;\n\n$alert-info-bg:               $state-info-bg !default;\n$alert-info-text:             $state-info-text !default;\n$alert-info-border:           $state-info-border !default;\n\n$alert-warning-bg:            $state-warning-bg !default;\n$alert-warning-text:          $state-warning-text !default;\n$alert-warning-border:        $state-warning-border !default;\n\n$alert-danger-bg:             $state-danger-bg !default;\n$alert-danger-text:           $state-danger-text !default;\n$alert-danger-border:         $state-danger-border !default;\n\n\n//== Progress bars\n//\n//##\n\n//** Background color of the whole progress component\n$progress-bg:                 #f5f5f5 !default;\n//** Progress bar text color\n$progress-bar-color:          #fff !default;\n//** Variable for setting rounded corners on progress bar.\n$progress-border-radius:      $border-radius-base !default;\n\n//** Default progress bar color\n$progress-bar-bg:             $brand-primary !default;\n//** Success progress bar color\n$progress-bar-success-bg:     $brand-success !default;\n//** Warning progress bar color\n$progress-bar-warning-bg:     $brand-warning !default;\n//** Danger progress bar color\n$progress-bar-danger-bg:      $brand-danger !default;\n//** Info progress bar color\n$progress-bar-info-bg:        $brand-info !default;\n\n\n//== List group\n//\n//##\n\n//** Background color on `.list-group-item`\n$list-group-bg:                 #fff !default;\n//** `.list-group-item` border color\n$list-group-border:             #ddd !default;\n//** List group border radius\n$list-group-border-radius:      $border-radius-base !default;\n\n//** Background color of single list items on hover\n$list-group-hover-bg:           #f5f5f5 !default;\n//** Text color of active list items\n$list-group-active-color:       $component-active-color !default;\n//** Background color of active list items\n$list-group-active-bg:          $component-active-bg !default;\n//** Border color of active list elements\n$list-group-active-border:      $list-group-active-bg !default;\n//** Text color for content within active list items\n$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;\n\n//** Text color of disabled list items\n$list-group-disabled-color:      $gray-light !default;\n//** Background color of disabled list items\n$list-group-disabled-bg:         $gray-lighter !default;\n//** Text color for content within disabled list items\n$list-group-disabled-text-color: $list-group-disabled-color !default;\n\n$list-group-link-color:         #555 !default;\n$list-group-link-hover-color:   $list-group-link-color !default;\n$list-group-link-heading-color: #333 !default;\n\n\n//== Panels\n//\n//##\n\n$panel-bg:                    #fff !default;\n$panel-body-padding:          15px !default;\n$panel-heading-padding:       10px 15px !default;\n$panel-footer-padding:        $panel-heading-padding !default;\n$panel-border-radius:         $border-radius-base !default;\n\n//** Border color for elements within panels\n$panel-inner-border:          #ddd !default;\n$panel-footer-bg:             #f5f5f5 !default;\n\n$panel-default-text:          $gray-dark !default;\n$panel-default-border:        #ddd !default;\n$panel-default-heading-bg:    #f5f5f5 !default;\n\n$panel-primary-text:          #fff !default;\n$panel-primary-border:        $brand-primary !default;\n$panel-primary-heading-bg:    $brand-primary !default;\n\n$panel-success-text:          $state-success-text !default;\n$panel-success-border:        $state-success-border !default;\n$panel-success-heading-bg:    $state-success-bg !default;\n\n$panel-info-text:             $state-info-text !default;\n$panel-info-border:           $state-info-border !default;\n$panel-info-heading-bg:       $state-info-bg !default;\n\n$panel-warning-text:          $state-warning-text !default;\n$panel-warning-border:        $state-warning-border !default;\n$panel-warning-heading-bg:    $state-warning-bg !default;\n\n$panel-danger-text:           $state-danger-text !default;\n$panel-danger-border:         $state-danger-border !default;\n$panel-danger-heading-bg:     $state-danger-bg !default;\n\n\n//== Thumbnails\n//\n//##\n\n//** Padding around the thumbnail image\n$thumbnail-padding:           4px !default;\n//** Thumbnail background color\n$thumbnail-bg:                $body-bg !default;\n//** Thumbnail border color\n$thumbnail-border:            #ddd !default;\n//** Thumbnail border radius\n$thumbnail-border-radius:     $border-radius-base !default;\n\n//** Custom text color for thumbnail captions\n$thumbnail-caption-color:     $text-color !default;\n//** Padding around the thumbnail caption\n$thumbnail-caption-padding:   9px !default;\n\n\n//== Wells\n//\n//##\n\n$well-bg:                     #f5f5f5 !default;\n$well-border:                 darken($well-bg, 7%) !default;\n\n\n//== Badges\n//\n//##\n\n$badge-color:                 #fff !default;\n//** Linked badge text color on hover\n$badge-link-hover-color:      #fff !default;\n$badge-bg:                    $gray-light !default;\n\n//** Badge text color in active nav link\n$badge-active-color:          $link-color !default;\n//** Badge background color in active nav link\n$badge-active-bg:             #fff !default;\n\n$badge-font-weight:           bold !default;\n$badge-line-height:           1 !default;\n$badge-border-radius:         10px !default;\n\n\n//== Breadcrumbs\n//\n//##\n\n$breadcrumb-padding-vertical:   8px !default;\n$breadcrumb-padding-horizontal: 15px !default;\n//** Breadcrumb background color\n$breadcrumb-bg:                 #f5f5f5 !default;\n//** Breadcrumb text color\n$breadcrumb-color:              #ccc !default;\n//** Text color of current page in the breadcrumb\n$breadcrumb-active-color:       $gray-light !default;\n//** Textual separator for between breadcrumb elements\n$breadcrumb-separator:          \"/\" !default;\n\n\n//== Carousel\n//\n//##\n\n$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;\n\n$carousel-control-color:                      #fff !default;\n$carousel-control-width:                      15% !default;\n$carousel-control-opacity:                    .5 !default;\n$carousel-control-font-size:                  20px !default;\n\n$carousel-indicator-active-bg:                #fff !default;\n$carousel-indicator-border-color:             #fff !default;\n\n$carousel-caption-color:                      #fff !default;\n\n\n//== Close\n//\n//##\n\n$close-font-weight:           bold !default;\n$close-color:                 #000 !default;\n$close-text-shadow:           0 1px 0 #fff !default;\n\n\n//== Code\n//\n//##\n\n$code-color:                  #c7254e !default;\n$code-bg:                     #f9f2f4 !default;\n\n$kbd-color:                   #fff !default;\n$kbd-bg:                      #333 !default;\n\n$pre-bg:                      #f5f5f5 !default;\n$pre-color:                   $gray-dark !default;\n$pre-border-color:            #ccc !default;\n$pre-scrollable-max-height:   340px !default;\n\n\n//== Type\n//\n//##\n\n//** Horizontal offset for forms and lists.\n$component-offset-horizontal: 180px !default;\n//** Text muted color\n$text-muted:                  $gray-light !default;\n//** Abbreviations and acronyms border color\n$abbr-border-color:           $gray-light !default;\n//** Headings small color\n$headings-small-color:        $gray-light !default;\n//** Blockquote small color\n$blockquote-small-color:      $gray-light !default;\n//** Blockquote font size\n$blockquote-font-size:        ($font-size-base * 1.25) !default;\n//** Blockquote border color\n$blockquote-border-color:     $gray-lighter !default;\n//** Page header border color\n$page-header-border-color:    $gray-lighter !default;\n//** Width of horizontal description list titles\n$dl-horizontal-offset:        $component-offset-horizontal !default;\n//** Point at which .dl-horizontal becomes horizontal\n$dl-horizontal-breakpoint:    $grid-float-breakpoint !default;\n//** Horizontal line color.\n$hr-border:                   $gray-lighter !default;\n","// WebKit-style focus\n\n@mixin tab-focus() {\n  // WebKit-specific. Other browsers will keep their default outline style.\n  // (Initially tried to also force default via `outline: initial`,\n  // but that seems to erroneously remove the outline in Firefox altogether.)\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n@mixin animation($animation) {\n  -webkit-animation: $animation;\n       -o-animation: $animation;\n          animation: $animation;\n}\n@mixin animation-name($name) {\n  -webkit-animation-name: $name;\n          animation-name: $name;\n}\n@mixin animation-duration($duration) {\n  -webkit-animation-duration: $duration;\n          animation-duration: $duration;\n}\n@mixin animation-timing-function($timing-function) {\n  -webkit-animation-timing-function: $timing-function;\n          animation-timing-function: $timing-function;\n}\n@mixin animation-delay($delay) {\n  -webkit-animation-delay: $delay;\n          animation-delay: $delay;\n}\n@mixin animation-iteration-count($iteration-count) {\n  -webkit-animation-iteration-count: $iteration-count;\n          animation-iteration-count: $iteration-count;\n}\n@mixin animation-direction($direction) {\n  -webkit-animation-direction: $direction;\n          animation-direction: $direction;\n}\n@mixin animation-fill-mode($fill-mode) {\n  -webkit-animation-fill-mode: $fill-mode;\n          animation-fill-mode: $fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n@mixin backface-visibility($visibility) {\n  -webkit-backface-visibility: $visibility;\n     -moz-backface-visibility: $visibility;\n          backface-visibility: $visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n@mixin box-shadow($shadow...) {\n  -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1\n          box-shadow: $shadow;\n}\n\n// Box sizing\n@mixin box-sizing($boxmodel) {\n  -webkit-box-sizing: $boxmodel;\n     -moz-box-sizing: $boxmodel;\n          box-sizing: $boxmodel;\n}\n\n// CSS3 Content Columns\n@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {\n  -webkit-column-count: $column-count;\n     -moz-column-count: $column-count;\n          column-count: $column-count;\n  -webkit-column-gap: $column-gap;\n     -moz-column-gap: $column-gap;\n          column-gap: $column-gap;\n}\n\n// Optional hyphenation\n@mixin hyphens($mode: auto) {\n  word-wrap: break-word;\n  -webkit-hyphens: $mode;\n     -moz-hyphens: $mode;\n      -ms-hyphens: $mode; // IE10+\n       -o-hyphens: $mode;\n          hyphens: $mode;\n}\n\n// Placeholder text\n@mixin placeholder($color: $input-color-placeholder) {\n  // Firefox\n  &::-moz-placeholder {\n    color: $color;\n    opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n  }\n  &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+\n  &::-webkit-input-placeholder  { color: $color; } // Safari and Chrome\n}\n\n// Transformations\n@mixin scale($ratio...) {\n  -webkit-transform: scale($ratio);\n      -ms-transform: scale($ratio); // IE9 only\n       -o-transform: scale($ratio);\n          transform: scale($ratio);\n}\n\n@mixin scaleX($ratio) {\n  -webkit-transform: scaleX($ratio);\n      -ms-transform: scaleX($ratio); // IE9 only\n       -o-transform: scaleX($ratio);\n          transform: scaleX($ratio);\n}\n@mixin scaleY($ratio) {\n  -webkit-transform: scaleY($ratio);\n      -ms-transform: scaleY($ratio); // IE9 only\n       -o-transform: scaleY($ratio);\n          transform: scaleY($ratio);\n}\n@mixin skew($x, $y) {\n  -webkit-transform: skewX($x) skewY($y);\n      -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n       -o-transform: skewX($x) skewY($y);\n          transform: skewX($x) skewY($y);\n}\n@mixin translate($x, $y) {\n  -webkit-transform: translate($x, $y);\n      -ms-transform: translate($x, $y); // IE9 only\n       -o-transform: translate($x, $y);\n          transform: translate($x, $y);\n}\n@mixin translate3d($x, $y, $z) {\n  -webkit-transform: translate3d($x, $y, $z);\n          transform: translate3d($x, $y, $z);\n}\n@mixin rotate($degrees) {\n  -webkit-transform: rotate($degrees);\n      -ms-transform: rotate($degrees); // IE9 only\n       -o-transform: rotate($degrees);\n          transform: rotate($degrees);\n}\n@mixin rotateX($degrees) {\n  -webkit-transform: rotateX($degrees);\n      -ms-transform: rotateX($degrees); // IE9 only\n       -o-transform: rotateX($degrees);\n          transform: rotateX($degrees);\n}\n@mixin rotateY($degrees) {\n  -webkit-transform: rotateY($degrees);\n      -ms-transform: rotateY($degrees); // IE9 only\n       -o-transform: rotateY($degrees);\n          transform: rotateY($degrees);\n}\n@mixin perspective($perspective) {\n  -webkit-perspective: $perspective;\n     -moz-perspective: $perspective;\n          perspective: $perspective;\n}\n@mixin perspective-origin($perspective) {\n  -webkit-perspective-origin: $perspective;\n     -moz-perspective-origin: $perspective;\n          perspective-origin: $perspective;\n}\n@mixin transform-origin($origin) {\n  -webkit-transform-origin: $origin;\n     -moz-transform-origin: $origin;\n      -ms-transform-origin: $origin; // IE9 only\n          transform-origin: $origin;\n}\n\n\n// Transitions\n\n@mixin transition($transition...) {\n  -webkit-transition: $transition;\n       -o-transition: $transition;\n          transition: $transition;\n}\n@mixin transition-property($transition-property...) {\n  -webkit-transition-property: $transition-property;\n          transition-property: $transition-property;\n}\n@mixin transition-delay($transition-delay) {\n  -webkit-transition-delay: $transition-delay;\n          transition-delay: $transition-delay;\n}\n@mixin transition-duration($transition-duration...) {\n  -webkit-transition-duration: $transition-duration;\n          transition-duration: $transition-duration;\n}\n@mixin transition-timing-function($timing-function) {\n  -webkit-transition-timing-function: $timing-function;\n          transition-timing-function: $timing-function;\n}\n@mixin transition-transform($transition...) {\n  -webkit-transition: -webkit-transform $transition;\n     -moz-transition: -moz-transform $transition;\n       -o-transition: -o-transform $transition;\n          transition: transform $transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n@mixin user-select($select) {\n  -webkit-user-select: $select;\n     -moz-user-select: $select;\n      -ms-user-select: $select; // IE10+\n          user-select: $select;\n}\n","// Opacity\n\n@mixin opacity($opacity) {\n  opacity: $opacity;\n  // IE8 filter\n  $opacity-ie: ($opacity * 100);\n  filter: alpha(opacity=$opacity-ie);\n}\n",null,"@import \"../mixins/variables\";\n/*\nアイコンボタン\n\nSVGアイコンを用いたアイコンボタンです。\n\nsg-wrapper:\n
\n \n\nStyleguide 2.2\n*/\n\n/*\nアイコンボタン\n\n閉じるなどSVGアイコンを用いたボタン装飾で利用します。\n\nex [ログイン画面 ☓ボタン部分](http://demo3.ec-cube.net/mypage/login)\n\nMarkup:\na.ec-closeBtn\n .ec-icon\n img(src='/moc/icon/cross.svg', alt='close')\n\nStyleguide 2.2.1\n*/\n.ec-closeBtn{\n cursor: pointer;\n .ec-icon {\n img {\n //overflow: hidden;\n display: inline-block;\n margin-right: 5px;\n width: 1em;\n height: 1em;\n position: relative;\n top: -1px;\n vertical-align: middle;\n }\n }\n}\n\n/*\nアイコンボタン(○)\n\n閉じるなどSVGアイコンを用いたボタン装飾で利用します。\n\nex [ログイン画面 ☓ボタン部分](http://demo3.ec-cube.net/mypage/login)\n\n\n\nex [お届け先編集画面 ☓ボタン部分](http://demo3.ec-cube.net/mypage/delivery)\n\nMarkup:\na.ec-closeBtn--circle\n .ec-icon\n img(src='/moc/icon/cross-white.svg', alt='close')\n\nStyleguide 2.2.2\n*/\n\n.ec-closeBtn--circle{\n display: block;\n border: 0 none;\n padding: 0;\n margin: 0;\n text-shadow: none;\n box-shadow: none;\n border-radius: 50%;\n background: #B8BEC4;\n cursor: pointer;\n width: 40px;\n min-width: 40px;\n max-width: 40px;\n height: 40px;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center;\n\n .ec-icon img{\n display: block;\n margin-top: -.5em;\n margin-left: -.5em;\n width: 1em;\n height: 1em;\n position: absolute;\n top: 50%;\n left: 50%;\n }\n}","@import \"../mixins/variables\";\n@import \"../mixins/media\";\n@import \"../mixins/btn\";\n\n/*\nその他のボタン\n\n通常のボタンや、アイコンボタン以外のボタンを定義します。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 2.3\n*/\n\n\n/*\nページトップボタン\n\nページトップボタンを表示します\n\nex [商品詳細ページ カートボタン部分](http://demo3.ec-cube.net/products/detail/30)\n\nMarkup:\n.ec-blockTopBtn\n\nStyleguide 2.3.1\n*/\n.ec-blockTopBtn{\n display: none;\n position: fixed;\n width:120px;\n height: 40px;\n right: 0;\n bottom: 10px;\n cursor: pointer;\n color: #FFFFFF;\n text-align: center;\n line-height: 40px;\n opacity: 0.8;\n background-color: #9da3a9;\n @include media_desktop {\n right:30px;\n bottom: 30px;\n }\n}","@import \"../mixins/variables\";\n@import \"../mixins/forms\";\n@import \"../mixins/media\";\n/*\nフォーム部品(テキスト)\n\nテキストや数値の入力項目に関する要素を定義します。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 3.1\n*/\n\n\n\n/*\nフォーム\n\n`.ec-input` 要素は全ての入力項目に関する標準的なコンポーネントクラスです。\n\n\nex [会員情報編集画面 フォーム部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\np.ec-input\n input(type=\"number\")\np.ec-input\n textarea(rows=\"6\")\n\nStyleguide 3.1.1\n*/\n.ec-input{\n @include forms-reset;\n @include form-controls;\n input{\n height: 40px;\n margin-bottom: 10px;\n @include media_desktop {\n margin-bottom: 16px;\n }\n }\n textarea {\n height: auto;\n min-height: 100px;\n }\n p {\n line-height: 1.4;\n }\n .ec-errorMessage {\n margin-bottom: 25px;\n font-size: 12px;\n font-weight: bold;\n color: $clrRed;\n }\n}\n.error.ec-input {\n input,select{\n margin-bottom: 5px;\n border-color: #CF3F34;\n background: #FDF1F0;\n }\n}\n\n.ec-checkbox{\n .ec-errorMessage {\n margin-bottom: 25px;\n font-size: 12px;\n font-weight: bold;\n color: $clrRed;\n }\n}\n.error.ec-checkbox {\n input, label{\n border-color: #CF3F34;\n background: #FDF1F0;\n }\n}\n\n/*\nフォーム(text2つ)\n\n姓名など2つ入力させたい入力項目で使用します。\n\n入力フォームを半分で用意したいときにも利用可能です。\n\nex [会員情報編集画面 フォーム部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\np.ec-halfInput\n input(type=\"text\")\n input(type=\"text\")\np.ec-halfInput\n input(type=\"text\")\n\nStyleguide 3.1.2\n*/\n.ec-halfInput{\n @extend .ec-input;\n input[type='text']{\n display: inline-block;\n width: 47%;\n margin-left: 2%;\n @include media_desktop {\n margin-left: 15px;\n width: 45%;\n }\n }\n input[type='text']:first-child{\n margin-left: 0;\n }\n}\n\n/*\n数量ボタン\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [商品詳細画面 数量ボタン部分](http://demo3.ec-cube.net/products/detail/27)\n\nMarkup:\n.ec-numberInput\n span 数量\n input(type=\"number\",value=\"0\")\n\nStyleguide 3.1.3\n*/\n.ec-numberInput{\n @extend .ec-input;\n input[type='number']{\n display: inline-block;\n width: auto;\n max-width: 100px;\n text-align: right;\n }\n}\n/*\n郵便番号フォーム\n\n数量を表示するための小さなコンポーネントです。\n\n内部に input 要素を配置してコーディングします。\n\nex [会員情報編集画面 郵便番号部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\n.ec-zipInput\n span 〒\n input(type=\"text\")\n.ec-zipInputHelp\n a(href=\"http://www.post.japanpost.jp/zipcode/\" target=\"_blank\")\n .ec-zipInputHelp__icon\n .ec-icon\n img(src='/moc/icon/question-white.svg', alt='')\n span 郵便番号検索\n.ec-zipAuto\n a.ec-inlineBtn 郵便番号から自動入力\n\nStyleguide 3.1.4\n*/\n.ec-zipInput{\n @extend .ec-input;\n display: inline-block;\n input{\n display: inline-block;\n text-align: left;\n width: auto;\n max-width: 8em;\n font-size: 16px;\n }\n span{\n display: inline-block;\n padding: 0 5px 0 3px;\n margin-left:5px;\n }\n}\n.ec-zipInputHelp {\n display: inline-block;\n margin-left: 10px;\n margin-bottom: 16px;\n vertical-align: baseline;\n line-height: 0;\n .ec-zipInputHelp__icon {\n display: inline-block;\n margin-top: -10px;\n width:20px;\n height:20px;\n background: #525263;\n border-radius: 50%;\n font-size: 13px;\n position: relative;\n top: -6px;\n .ec-icon img{\n width: 1em;\n height: 1em;\n position: relative;\n left: 3px;\n top: 3px;\n }\n }\n span {\n margin-left: 8px;\n display: inline-block;\n color: #0092C4;\n vertical-align: 3px;\n }\n}\n.ec-zipAuto {\n margin-bottom: 16px;\n .ec-inlineBtn {\n font-weight: normal;\n }\n}\n/*\n電話番号ボタン\n\n数量を表示するための小さなコンポーネントです。\n\n内部に input 要素を配置してコーディングします。\n\nex [会員情報編集画面 電話番号部分](http://demo3.ec-cube.net/mypage/change)\n\nMarkup:\n.ec-telInput\n input(type=\"text\")\n\nStyleguide 3.1.5\n*/\n.ec-telInput{\n @extend .ec-input;\n input {\n max-width: 10em;\n text-align: left;\n }\n}\n\n","@import \"./variables\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/forms\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/tab-focus\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/vendor-prefixes\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/tab-focus\";\n\n@mixin forms-reset{\n input[type=\"search\"] {\n @include box-sizing(border-box);\n }\n\n // Position radios and checkboxes better\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n }\n\n input[type=\"file\"] {\n display: block;\n }\n\n // Make range inputs behave like textual form controls\n input[type=\"range\"] {\n display: block;\n width: 100%;\n }\n\n // Make multiple select elements height not fixed\n select[multiple],\n select[size] {\n height: auto;\n }\n\n // Focus for file, radio, and checkbox\n input[type=\"file\"]:focus,\n input[type=\"radio\"]:focus,\n input[type=\"checkbox\"]:focus {\n @include tab-focus;\n }\n\n}\n\n@mixin _form-control{\n display: block;\n width: 100%;\n height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: $padding-base-vertical $padding-base-horizontal;\n font-size: $font-size-base;\n line-height: $line-height-base;\n color: $input-color;\n background-color: $input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid $input-border;\n border-radius: $input-border-radius; // Note: This has no effect on s in CSS.\n -webkit-appearance: none;\n @include box-shadow(none);\n @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus;\n\n // Placeholder\n @include placeholder;\n\n // Unstyle the caret on ``\n// element gets special love because it's special, and that's a fact!\n// [converter] $parent hack\n@mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {\n #{$parent} {\n height: $input-height;\n padding: $padding-vertical $padding-horizontal;\n font-size: $font-size;\n line-height: $line-height;\n border-radius: $border-radius;\n }\n\n select#{$parent} {\n height: $input-height;\n line-height: $input-height;\n }\n\n textarea#{$parent},\n select[multiple]#{$parent} {\n height: auto;\n }\n}\n","/**\n * ECCUBE 固有のスタイルユーティリティ\n */\n\n@mixin borderTop(){\n border-top: 1px dotted #ccc;\n}\n\n@mixin borderBottom(){\n border-bottom: 1px dotted #ccc;\n}\n\n@mixin reset_link(){\n a{\n color: inherit;\n text-decoration: none;\n }\n a:hover{\n text-decoration: none;\n }\n}\n\n","@import \"../mixins/projects\";\n@import \"../mixins/forms\";\n@import \"./3.1.inputText\";\n/*\nフォーム部品(その他)\n\nフォーム部品でテキストの入力以外の動作要素を定義します。\n\nsg-wrapper:\n
\n \n\nStyleguide 3.2\n*/\n\n/*\nラジオ(水平)\n\n水平に並ぶラジオボタンフィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nex [新規会員登録画面 性別選択部分](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-radio\n label\n input(type=\"radio\")\n span 男性\n label\n input(type=\"radio\")\n span 女性\n\nStyleguide 3.2.2\n*/\n.ec-radio{\n label{\n margin-right:20px;\n }\n input{\n margin-right: 10px;\n margin-bottom: 10px;\n }\n span{\n font-weight: normal;\n }\n\n}\n\n/*\nラジオ(垂直)\n\n垂直に並ぶラジオボタンフィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nex [購入画面 お支払方法](http://demo3.ec-cube.net/shopping)\n\nMarkup:\n.ec-blockRadio\n label\n input(type=\"radio\")\n span 郵便振替\n label\n input(type=\"radio\")\n span 現金書留\n label\n input(type=\"radio\")\n span 銀行振込\n label\n input(type=\"radio\")\n span 代金引換\n\nStyleguide 3.2.3\n*/\n.ec-blockRadio{\n label{\n display: block;\n }\n span {\n padding-left: 10px;\n font-weight: normal;\n }\n}\n/*\nセレクトボックス\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [新規会員登録画面 都道府県選択部分](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-select\n select\n option 都道府県を選択\n option 北海道\n option 青森県\n option 岩手県\n option ...\n.ec-select\n select\n option 選択して下さい\n option 公務員\n option コンサルタント\n option コンピュータ関連技術職\n option コンピュータ関連以外の技術職\n option ...\n\nStyleguide 3.2.4\n*/\n.ec-selects {\n margin-bottom: 20px;\n @include borderBottom;\n}\n.ec-select{\n @extend .ec-input;\n margin-bottom: 16px;\n select{\n display: inline-block;\n width: auto;\n background-color: rgb(248, 248, 248);\n -webkit-appearance: menulist;\n -moz-appearance: menulist;\n &:focus {\n box-shadow: none;\n }\n }\n label{\n margin-right: 10px;\n font-weight: bold;\n }\n label:nth-child(3){\n margin-left: 10px;\n font-weight: bold;\n }\n}\n.ec-select__delivery {\n display: block;\n margin-right: 16px;\n @include media_desktop {\n display: inline-block;\n }\n}\n.ec-select__time {\n display: block;\n @include media_desktop {\n display: inline-block;\n }\n}\n\n/*\n生年月日選択\n\n数量を表示するための小さなコンポーネントです。\n\n数値表示に最適化するため、数字は右端揃えで表示されます。\n\nex [新規会員登録画面 生年月日選択部分](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-birth\n select\n option ----\n option 1960\n option 1961\n option 1962\n option ...\n span /\n select\n option --\n option 01\n option 02\n option 03\n option ...\n span /\n select\n option --\n option 01\n option 02\n option 03\n option ...\n\nStyleguide 3.2.5\n*/\n.ec-birth{\n @extend .ec-input;\n select{\n display: inline-block;\n width: auto;\n margin: 0 0 10px;\n background-color: rgb(248, 248, 248);\n -webkit-appearance: menulist;\n -moz-appearance: menulist;\n &:focus {\n box-shadow: none;\n }\n @include media_desktop{\n margin: 0 8px 10px;\n }\n }\n span{\n margin-left:5px;\n }\n}\n\n/*\nチェックボックス (水平)\n\n水平に並ぶチェックボックス フィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nex [新規会員登録画面 利用規約](http://demo3.ec-cube.net/entry)\n\nMarkup:\n.ec-checkbox\n label\n input(type=\"checkbox\")\n span 利用規約に同意する\n\nStyleguide 3.2.6\n*/\n.ec-checkbox{\n label{\n display: inline-block;\n }\n input{\n margin-bottom: 10px;\n }\n span{\n font-weight: normal;\n }\n\n}\n\n/*\nチェックボックス (垂直)\n\n垂直に並ぶチェックボックス フィールドです。\n\n各要素をlabelでくくって、コーディングします。\n\nMarkup:\n.ec-blockCheckbox\n label\n input(type=\"checkbox\")\n span 利用規約に同意する\n\nStyleguide 3.2.7\n*/\n.ec-blockCheckbox{\n label{\n display: block;\n }\n span {\n font-weight: normal;\n }\n}","@import \"../mixins/media\";\n/*\nフォームラベル\n\nフォームのラベルに関する要素を定義します。\n\nsg-wrapper:\n
\n
\n
\n
\n \n
\n
\n
\n
\n\nStyleguide 3.3\n*/\n\n/*\nラベル\n\nフォーム要素で利用するラベル要素です。\n\nex [お問い合わせページ ラベル部分](http://demo3.ec-cube.net/contact)\n\nMarkup:\n.ec-borderedDefs\n dl\n dt\n label.ec-label お名前\n dd\n .ec-input\n input(type=\"text\")\n\nStyleguide 3.3.1\n*/\n.ec-label{\n display: inline-block;\n font-weight: bold;\n margin-bottom: 5px;\n}\n\n/*\n必須ラベル\n\n必須文字を表示するラベル要素です。\n\nex [お問い合わせページ 必須ラベル部分](http://demo3.ec-cube.net/contact)\n\n\nMarkup:\n.ec-borderedDefs\n dl\n dt\n label.ec-label お名前\n span.ec-required 必須\n dd\n .ec-input\n input(type=\"text\")\n\nStyleguide 3.3.2\n*/\n\n.ec-required{\n display: inline-block;\n margin-left: .8em;\n vertical-align: 2px;\n color: #DE5D50;\n font-size: 12px;\n font-weight: normal;\n @include media_desktop {\n margin-left: 1em;\n }\n}","@import \"../mixins/variables\";\n/*\nアイコン\n\nデフォルトテンプレートのアイコンは`.ec-icon`>`img`タグで使用することができます\n\nsg-wrapper:\n
\n \n\nMarkup:\ninclude /assets/tmpl/elements/4.1.icon.pug\ndiv(style=\"background-color: rgba(130,130,130,.15); padding: 20px;\")\n +icon-all\n\nStyleguide 4.1\n*/\n.ec-icon img {\n max-width: 80px;\n max-height: 80px;\n}\n","@import \"../mixins/variables\";\n@import \"../mixins/clearfix\";\n@import \"../mixins/media\";\n\n@mixin row{\n display: block;\n margin: 0;\n @include media_desktop {\n display: flex;\n }\n}\n\n@mixin makeSmColumn($columns){\n position: relative;\n min-height: 1px;\n\n @media (min-width: $desktop) {\n width: percentage(($columns/ 12));\n }\n @include media_desktop{\n }\n\n}\n\n/*\nグリッド\n\n画面を12分割し、グリッドレイアウトに対応するためのスタイルです。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 5.1\n*/\n\n/*\n2分割グリッド\n\n画面 2分割の グリッドです。\nBootstrap の col-sm-6 相当のグリッドを提供します。\n\nMarkup:\n.ec-grid2\n .ec-grid2__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid2__cell\n .ec-grid2__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid2__cell\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 5.1.1\n*/\n.ec-grid2{\n @include row;\n & &__cell{\n @include makeSmColumn(6);\n }\n & &__cell2{\n @include makeSmColumn(12);\n }\n}\n/*\n3分割グリッド\n\n画面 3分割の グリッドです。\n\n\nMarkup:\n.ec-grid3\n .ec-grid3__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid3__cell\n .ec-grid3__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid3__cell\n .ec-grid3__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid3__cell\n\nStyleguide 5.1.2\n*/\n.ec-grid3{\n @include row;\n & &__cell{\n @include makeSmColumn(4);\n }\n & &__cell2 {\n @include makeSmColumn(8);\n }\n & &__cell3 {\n @include makeSmColumn(12);\n }\n}\n\n/*\n4分割グリッド\n\n画面 4分割の グリッドです。\n\n\nMarkup:\n.ec-grid4\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid4__cell\n\nStyleguide 5.1.3\n*/\n.ec-grid4{\n @include row;\n & &__cell{\n @include makeSmColumn(3);\n }\n}\n\n/*\n6分割グリッド\n\n2つにまとめた cell2 や 3つをまとめた cell3 タグも使用可能です。\n\n\nMarkup:\n.ec-grid6\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n .ec-grid6__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell\n.ec-grid6\n .ec-grid6__cell2(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell2\n .ec-grid6__cell2(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell2\n .ec-grid6__cell2(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell2\n.ec-grid6\n .ec-grid6__cell3(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell3\n .ec-grid6__cell3(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") .ec-grid6__cell3\n\nStyleguide 5.1.4\n*/\n.ec-grid6{\n @include row;\n & &__cell{\n @include makeSmColumn(2);\n }\n & &__cell2{\n @include makeSmColumn(4);\n }\n & &__cell3{\n @include makeSmColumn(6);\n }\n}\n\n/*\n中央寄せグリッド 10/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の10グリッドです\n\nex [ご利用規約ページ 本文](http://demo3.ec-cube.net/help/agreement)\n\nMarkup:\n.ec-off1Grid\n .ec-off1Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\nStyleguide 5.1.5\n*/\n.ec-off1Grid{\n margin: 0;\n @include media_desktop {\n @include row;\n }\n & &__cell{\n margin: 0;\n @include media_desktop {\n @include makeSmColumn(10);\n margin-left: percentage((1 / 12));\n }\n }\n}\n\n\n/*\n中央寄せグリッド 8/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の8グリッドです\n\n\nMarkup:\n.ec-off2Grid\n .ec-off2Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\nStyleguide 5.1.6\n*/\n.ec-off2Grid{\n @include row;\n & &__cell{\n margin: 0;\n @include media_desktop {\n @include makeSmColumn(8);\n margin-left: percentage((2 / 12));\n }\n }\n}\n/*\n中央寄せグリッド 6/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の6グリッドです\n\n\nMarkup:\n.ec-off3Grid\n .ec-off3Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\nStyleguide 5.1.7\n*/\n.ec-off3Grid{\n @include row;\n & &__cell{\n margin: 0;\n @include media_desktop {\n @include makeSmColumn(6);\n margin-left: percentage((3 / 12));\n }\n }\n}\n/*\n中央寄せグリッド 4/12\n\n左右にマージンを持つ、中央寄せグリッドを提供します。12分の4グリッドです\n\n\nMarkup:\n.ec-off4Grid\n .ec-off4Grid__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\n\nStyleguide 5.1.8\n*/\n.ec-off4Grid{\n @include row;\n & &__cell{\n margin: 0;\n @include media_desktop {\n @include makeSmColumn(4);\n margin-left: percentage((4 / 12));\n }\n }\n}\n\n/*\nグリッドオプション\n\nグリッドのセルに対して「左寄せ」「中央寄せ」「右寄せ」のオプションを付与することができます。\n\nsg-wrapper:\n
\n \n\nStyleguide 5.1.9\n*/\n\n/*\nグリッドセルの左寄せ\n\n.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。\n\nMarkup:\n.ec-grid4.ec-grid--left\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n\nStyleguide 5.1.10\n*/\n.ec-grid--left {\n justify-content: flex-start;\n}\n/*\nグリッドセルの右寄せ\n\n.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。\n\nMarkup:\n.ec-grid4.ec-grid--right\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n\nStyleguide 5.1.11\n*/\n.ec-grid--right {\n justify-content: flex-end;\n}\n/*\nグリッドセルの中央寄せ\n\n.ec-gridに.ec-grid--leftを付与すると内包してるセルを左寄せにすることができます。\n\nMarkup:\n.ec-grid4.ec-grid--center\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n .ec-grid4__cell(style=\"background-color: rgba(86,61,124,.15);border: 1px solid rgba(86,61,124,.2);height:50px;\") ec-grid4__cell\n\nStyleguide 5.1.12\n*/\n.ec-grid--center {\n justify-content: center\n}","@import \"../mixins/variables\";\n@import \"../mixins/projects\";\n@import \"../mixins/clearfix\";\n@import \"../mixins/media\";\n\n@mixin row{\n margin-left: ceil((30px / -2));\n margin-right: floor((30px / -2));\n @include clearfix\n}\n\n@mixin makeSmColumn($columns){\n position: relative;\n min-height: 1px;\n padding-left: (30px / 2);\n padding-right: (30px / 2);\n\n @media (min-width: $desktop) {\n float: left;\n width: percentage(($columns/ 12));\n }\n}\n\n/*\nレイアウト\n\n様々なレイアウトを変更する為のスタイル群です。\n\nStyleguide 5.2\n*/\n\n/*\n画像レイアウト\n\n画像とテキストを水平に並べるレイアウトです。\n\n画像は20%で表示されます。\n\nex [注文履歴 ログイン後→注文履歴ボタンを押下](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-imageGrid\n .ec-imageGrid__img: img(src=\"http://demo3.ec-cube.net/upload/save_image/0701113537_559351f959620.jpeg\")\n .ec-imageGrid__content\n p.ec-font-bold ホーローマグ\n p ¥ 1,728 x 1\n\nsg-wrapper:\n
\n \n\n\nStyleguide 5.2.1\n*/\n.ec-imageGrid{\n display: table;\n @include borderTop;\n width: 100%;\n\n & &__img{\n display: table-cell;\n padding: 10px;\n width: 100px;\n\n @include media_desktop {\n padding: 10px;\n width: 130px;\n }\n\n img{\n width: 100%;\n }\n }\n & &__content{\n vertical-align: middle;\n display: table-cell;\n span {\n margin-left: 10px;\n }\n p {\n margin-bottom: 0;\n }\n }\n}\n\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n/*\nログイン\n\n主にログインフォームのスタイルを表示します。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 6.1\n*/\n\n/*\nログインフォーム\n\nログインフォームを表示します。\n\nex [ログイン画面](http://demo3.ec-cube.net/mypage/login)\n\nMarkup:\ninclude /assets/tmpl/elements/6.3.login.pug\n+ec-login\n\n\nStyleguide 6.1.1\n*/\n.ec-login{\n margin: 0 0 20px;\n padding: 30px 13% 20px;\n height: auto;\n background: #F3F4F4;\n box-sizing: border-box;\n @include media_desktop {\n margin: 0 16px;\n padding: 30px 13% 60px;\n }\n & &__icon {\n text-align: center;\n }\n .ec-icon{\n margin-bottom: 10px;\n img {\n width: 90px;\n height: 90px;\n display: inline-block;\n }\n }\n & &__input {\n margin-bottom: 40px;\n .ec-checkbox {\n span {\n margin-left: 5px;\n font-weight:normal;\n }\n }\n }\n & &__actions {\n color: #fff;\n @include reset_link();\n }\n & &__link {\n margin-top: 5px;\n margin-left: 0;\n @include media_desktop {\n margin-left: 20px;\n }\n }\n .ec-errorMessage {\n color: $clrRed;\n margin-bottom: 20px;\n }\n}\n\n/*\nゲスト購入\n\nゲスト購入ボタンとそのフォームを表示します。\n\nex [ゲスト購入画面](http://demo3.ec-cube.net/shopping/login)\n\nMarkup:\ninclude /assets/tmpl/elements/6.3.login.pug\n+ec-guest\nhoge\n\nStyleguide 6.1.2\n*/\n.ec-guest{\n display: table;\n margin: 0;\n padding: 13%;\n height: auto;\n box-sizing: border-box;\n background: #F3F4F4;\n\n @include media_desktop {\n height: 100%;\n margin: 0 16px;\n }\n & &__inner{\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n p {\n margin-bottom: 16px;\n }\n }\n & &__actions {\n display: block;\n vertical-align: middle;\n text-align: center;\n color: #fff;\n @include reset_link();\n }\n & &__icon{\n font-size: 70px;\n text-align: center;\n }\n}\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n/*\n商品掲載\n\nトップページに商品掲載するスタイルガイド群です。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 7.1\n*/\n\n/*\n商品アイテム(商品紹介B)\n\n3項目横並びの商品アイテムを表示します。\n必要に応じて商品詳細や、キャッチコピーなどを添えることが出来ます。\n\nex [トップページ 商品紹介部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/7.1.itembanner.pug\n+ec-displayB\n\nStyleguide 7.1.1\n*/\n.ec-displayB{\n margin-bottom: 24px;\n display: flex;\n justify-content: space-between;\n flex-direction:column;\n @include media_desktop {\n flex-direction:row;\n }\n & &__cell {\n width: 100%;\n margin-bottom: 16px;\n @include reset_link();\n @include media_desktop {\n width: 31.4466%;\n margin-bottom: 0;\n }\n &:hover {\n text-decoration: none;\n img{\n opacity: .8;\n }\n a {\n text-decoration: none;\n }\n }\n }\n & &__img {\n margin-bottom: 15px;\n }\n\n & &__catch{\n margin-bottom: 15px;\n text-decoration: none;\n font-weight: bold;\n color: #9a947e;\n }\n & &__comment {\n margin-bottom: 14px;\n text-decoration: none;\n color: #525263;\n font-size: 14px;\n }\n & &__link{\n text-decoration: none;\n font-weight: bold;\n color: #9a947e;\n }\n\n}\n\n/*\n商品アイテム(商品紹介C)\n\n4項目横並びの商品アイテムを表示します。\n\nex [トップページ 商品紹介部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/7.1.itembanner.pug\n+ec-displayC\np hoge\n\nStyleguide 7.1.2\n*/\n\n.ec-displayC{\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n margin-bottom: 24px;\n & &__cell{\n width: 47%;\n @include reset_link();\n @include media_desktop(){\n width: 22.8775%;\n }\n &:hover {\n a {\n text-decoration: none;\n }\n img{\n opacity: .8;\n }\n }\n }\n & &__img{\n display: block;\n width: 100%;\n margin-bottom: 15px;\n }\n & &__catch{\n display: block;\n width: 100%;\n font-weight: bold;\n color: #9a947e;\n }\n & &__title{\n display: block;\n width: 100%;\n color: #525263;\n }\n & &__price{\n display: block;\n width: 100%;\n font-weight: bold;\n color: #525263;\n }\n & &__price--sp{\n display: block;\n width: 100%;\n font-weight: bold;\n color: #DE5D50;\n }\n}\n\n\n/*\n商品アイテム(商品紹介D)\n\n6項目横並びの商品アイテムを表示します。\n\nex [トップページ 商品紹介部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/7.1.itembanner.pug\n+ec-displayD\n\nStyleguide 7.1.3\n*/\n\n.ec-displayD {\n display:flex;\n justify-content:space-between;\n flex-wrap:wrap-reverse;\n @include media_desktop(){\n box-sizing: border-box;\n flex-wrap:nowrap;\n }\n\n & &__cell{\n width: 30%;\n margin-bottom: 8px;\n @include reset_link();\n @include media_desktop(){\n width: 14.3083%;\n margin-bottom: 16px;\n }\n &:hover {\n text-decoration: none;\n img{\n opacity: .8;\n }\n }\n }\n & &__img{\n display: block;\n width: 100%;\n }\n}\n","@import \"../mixins/media\";\n@import \"../mixins/variables\";\n@import \"../mixins/projects\";\n\n@mixin pager(){\n}\n/*\n検索・一覧表示\n\n検索欄や、一覧表示に使用するスタイル群です。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 7.2\n*/\n\n/*\nトピックパス\n\n検索結果で表示されるトピックパスのスタイルです。\n\nex [商品一覧ページ 横並びリスト部分](http://demo3.ec-cube.net/products/list?category_id=&name=)\n\nMarkup:\ninclude /assets/tmpl/elements/7.2.search.pug\n+ec-topicpath\n\nStyleguide 7.2.1\n*/\n.ec-topicpath{\n letter-spacing: -.4em;\n -webkit-margin-before: 0;\n -webkit-margin-after: 0;\n -webkit-margin-start: 0;\n -webkit-margin-end: 0;\n -webkit-padding-start: 0;\n border-top: 1px solid #ccc;\n border-bottom: 1px dotted #ccc;\n padding: 10px;\n list-style: none;\n overflow: hidden;\n font-size: 12px;\n color: #0092C4;\n @include media_desktop {\n padding: 30px 0 10px;\n border: 0;\n font-size: 16px;\n }\n\n & &__item {\n @include reset_link();\n }\n & &__divider{\n color: #000;\n }\n & &__item,\n & &__divider,\n & &__item--active{\n display: inline-block;\n min-width: 16px;\n text-align: center;\n position: relative;\n letter-spacing: normal;\n }\n & &__item--active{\n font-weight: bold;\n @include reset_link();\n }\n}\n\n/*\nページャ\n\n検索結果で表示される商品一覧のスタイルです。\n\nex [商品一覧ページ ページャ部分](http://demo3.ec-cube.net/products/list?category_id=&name=)\n\nMarkup:\ninclude /assets/tmpl/elements/7.2.search.pug\n+ec-pager\n\nStyleguide 7.2.2\n*/\n.ec-pager{\n list-style: none;\n list-style-type: none;\n margin: 0 auto;\n padding: 1em 0;\n text-align: center;\n & &__item,\n & &__item--active{\n display: inline-block;\n min-width: 29px;\n padding: 0 3px 0 2px;\n text-align: center;\n position: relative;\n @include reset_link();\n a{\n color: inherit;\n display: block;\n line-height: 1.8;\n padding: 5px 1em;\n text-decoration: none;\n }\n a:hover{\n color: inherit;\n }\n }\n & &__item--active {\n background: $clrGray;\n }\n & &__item:hover{\n background: $clrGray;\n }\n\n}","@import \"./variables\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/forms\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/tab-focus\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/vendor-prefixes\";\n@import \"../../../../../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/tab-focus\";\n\n\n@keyframes fadeIn{\n 0%{\n opacity: 0;\n visibility: hidden;\n }\n 100%{\n opacity: 1;\n visibility: visible;\n }\n}\n\n@keyframes fadeOut{\n 0%{\n opacity: 1;\n visibility: visible;\n }\n 100%{\n opacity: 0;\n visibility: hidden;\n }\n}\n\n@mixin fadeIn($display:block,$time:150ms) {\n display: $display;\n opacity: 1;\n visibility: visible;\n animation: fadeIn $time linear 0s;\n}\n@mixin fadeOut($time:150ms) {\n opacity: 0;\n visibility:hidden;\n animation: fadeOut $time linear 0s;\n}\n\n.bg-load-overlay {\n background: rgba(255, 255, 255, 0.4);\n box-sizing: border-box;\n position: fixed;\n display: flex;\n flex-flow: column nowrap;\n align-items: center;\n justify-content: space-around;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 2147483647;\n opacity: 1;\n}\n","@import \"../mixins/variables\";\n@import \"../mixins/media\";\n@import \"../mixins/animation\";\n@import \"../mixins/projects\";\n/*\nカート\n\nショッピングカートに関するスタイルです。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 7.3\n*/\n\n/*\nカートヘッダ\n\n購入完了までの手順や、現在の状態を表示します。\n\nul 要素を用いたリスト要素としてマークアップします。\n\nex [カートページ ヘッダ部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/7.3.cart.pug\n+ec-progress\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 7.3.1\n*/\n.ec-progress{\n margin: 0 auto;\n padding: 8px 0 16px;\n display: table;\n table-layout: fixed;\n width: 100%;\n max-width: 600px;\n list-style: none;\n @include media_desktop {\n margin-bottom: 30px;\n padding: 0;\n }\n\n & &__item{\n display:table-cell;\n position: relative;\n font-size: 14px;\n text-align: center;\n font-weight: bold;\n z-index: 10;\n\n &:after {\n content: '';\n position: absolute;\n display: block;\n background: #525263;\n width: 100%;\n height: 0.25em;\n top: 1.25em;\n left: 50%;\n margin-left: 1.5em\\9;\n z-index: -1;\n }\n &:last-child:after {\n display: none;\n }\n }\n & &__number{\n line-height: 30px;\n width: 30px;\n height: 30px;\n margin-bottom: 5px;\n font-size: 12px;\n background: #525263;\n color: #fff;\n top: 0;\n left: 18px;\n display: inline-block;\n text-align: center;\n vertical-align: middle;\n border-radius: 50%;\n @include media_desktop(){\n line-height: 42px;\n width: 42px;\n height: 42px;\n font-size: 20px;\n }\n }\n & &__label {\n font-size: 12px;\n }\n .is-complete {\n .ec-progress__number {\n background: #5CB1B1;\n }\n .ec-progress__label {\n color: #5CB1B1;\n }\n }\n}\n\n\n\n/*\nカートナビゲーション\n\nカートナビゲーションを表示します。 カートに追加された商品の個数も表示します。\n\nex [カートページ ナビゲーション部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\n+ec-headerCart\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 7.3.5\n*/\n.ec-cartNaviWrap{\n @include media_desktop {\n position: relative;\n }\n}\n.ec-cartNavi{\n display: inline-block;\n padding: 10px 0 0 20px;\n width: auto;\n color: black;\n background: transparent;\n @include media_desktop {\n display: flex;\n justify-content: space-between;\n border-radius: 99999px;\n box-sizing: border-box;\n padding: 12px 17px 10px;\n width: auto;\n min-width: 140px;\n height: 44px;\n white-space: nowrap;\n cursor: pointer;\n background: #F8F8F8;\n }\n\n & &__icon {\n display: inline-block;\n font-size: 20px;\n @include fadeIn(inline-block,200ms);\n position: relative;\n\n }\n & &__badge{\n display: inline-block;\n border-radius: 99999px;\n box-sizing: border-box;\n padding: 5px;\n height: 17px;\n font-size: 10px;\n line-height: 0.7;\n vertical-align: top;\n color: #fff;\n text-align: left;\n white-space: nowrap;\n background-color: #DE5D50;\n position: absolute;\n left: 60%;\n top: -10px;\n @include media_desktop {\n display: inline-block;\n min-width: 17px;\n position: relative;\n left: 0;\n top: 0;\n }\n }\n & &__price{\n display: none;\n\n @include media_desktop {\n display: inline-block;\n font-size: 14px;\n font-weight: normal;\n vertical-align: middle;\n }\n }\n}\n.ec-cartNavi.is-active {\n\n .ec-cartNavi__icon {\n &:before {\n content: \"\\f00d\";\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900;\n }\n }\n .ec-cartNavi__badge{\n display: none;\n @include media_desktop {\n display: none;\n }\n\n }\n}\n\n\n/*\nカートナビゲーションのポップアップ(商品詳細)\n\nカートナビゲーションのポップアップを表示します。カートに追加された商品の詳細が表示されます。\n\nex [カートページ ナビゲーション部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ndiv(style=\"height:350px;\")\n // 上記のdivはスタイルガイド都合上、高さをもたせるため設置(mocでは不要)\n .is_active\n .ec-cartNavi\n .ec-cartNavi__icon\n img(src='/moc/icon/cart-dark.svg', alt='close')\n .ec-cartNavi__iconClose\n img(src='/moc/icon/cross-dark.svg', alt='close')\n .ec-cartNavi__badge 1\n .ec-cartNavi__label\n | 合計\n .ec-cartNavi__price ¥1920\n +b.ec-cartNaviIsset\n +e.cart\n +e.cartImage\n img(src='http://demo3.ec-cube.net/upload/save_image/0701104933_5593472d8d179.jpeg')\n +e.cartContent\n +e.cartContentTitle ミニテーブル\n +e.cartContentPrice ¥ 12,960\n +e.cartContentTax 税込\n +e.cartContentNumber 数量:1\n +e.action\n a.ec-blockBtn--action(href=\"/moc/guest/cart1\") カートへ進む\n a.ec-blockBtn.ec-cartNavi--cancel キャンセル\n\nStyleguide 7.3.6\n*/\n.ec-cartNaviIsset {\n display: none;\n width: 100%;\n text-align: center;\n background: #f8f8f8;\n box-sizing: border-box;\n padding: 16px;\n z-index: 20;\n position: absolute;\n right: 0;\n\n @include media_desktop {\n margin-top: 10px;\n min-width: 256px;\n max-width:256px;\n\n &::before {\n display: inline-block;\n content: \"\";\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0 8.5px 10px 8.5px;\n border-color: transparent transparent #f8f8f8 transparent;\n position: absolute;\n top: -9px;\n\n }\n }\n\n\n\n & &__cart {\n @include clearfix;\n border-bottom: 1px solid #E8E8E8;\n margin-bottom: 16px;\n padding-bottom: 32px;\n }\n & &__cartImage {\n float: left;\n width: 45%;\n img {\n width: 100%;\n }\n }\n & &__cartContent {\n float: right;\n width: 55%;\n padding-left: 16px;\n text-align:left;\n box-sizing:border-box;\n }\n & &__action {\n .ec-blockBtn--action {\n color:#fff;\n margin-bottom: 8px;\n }\n }\n & &__cartContentTitle {\n margin-bottom: 8px;\n }\n & &__cartContentPrice {\n font-weight: bold;\n }\n & &__cartContentTax {\n display: inline-block;\n font-size: 12px;\n font-weight: normal;\n margin-left: 2px;\n }\n & &__cartContentNumber {\n font-size: 14px;\n }\n}\n\n.ec-cartNaviIsset.is-active {\n display: block;\n}\n\n\n\n/*\nカートナビゲーションのポップアップ(商品なし)\n\nカートナビゲーションのポップアップを表示します。商品が登録されていない場合の表示です。\n\nex [カートページ ナビゲーション部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ndiv(style=\"height:170px;\")\n // 上記のdivはスタイルガイド都合上、高さをもたせるため設置(mocでは不要)\n .is_active\n .ec-cartNavi\n .ec-cartNavi__icon\n img(src='/moc/icon/cart-dark.svg', alt='cart')\n .ec-cartNavi__iconClose\n img(src='/moc/icon/cross-dark.svg', alt='close')\n .ec-cartNavi__badge 1\n .ec-cartNavi__label\n | 合計\n .ec-cartNavi__price ¥1920\n .ec-cartNaviNull\n .ec-cartNaviNull__message\n p 現在カート内に\n br\n | 商品がございません。\n //+b.ec-cartNaviIsset\n // +e.cart\n // +e.cartImage\n // img(src='http://demo3.ec-cube.net/upload/save_image/0701104933_5593472d8d179.jpeg')\n // +e.cartContent\n // +e.cartContentTitle ミニテーブル\n // +e.cartContentPrice ¥ 12,960\n // +e.cartContentTax 税込\n // +e.cartContentNumber 数量:1\n // +e.action\n // a.ec-blockBtn--action(href=\"/moc/guest/cart1\") カートへ進む\n // a.ec-blockBtn キャンセル\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 7.3.7\n*/\n\n\n.ec-cartNaviNull {\n display: none;\n width: 100%;\n text-align: center;\n background: #f8f8f8;\n box-sizing: border-box;\n padding: 16px;\n z-index: 3;\n position: absolute;\n right: 0;\n\n @include media_desktop {\n margin-top: 10px;\n min-width: 256px;\n max-width:256px;\n\n &::before {\n display: inline-block;\n content: \"\";\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0 8.5px 10px 8.5px;\n border-color: transparent transparent #f8f8f8 transparent;\n position: absolute;\n top: -9px;\n\n }\n }\n\n & &__message {\n border: 1px solid #D9D9D9;\n padding: 16px 0;\n font-size: 16px;\n font-weight: bold;\n color: #fff;\n background-color: #F99;\n p {\n margin: 0;\n }\n }\n}\n\n.ec-cartNaviNull.is-active {\n display: block;\n}\n\n\n\n/*\n総計\n\n会計時の合計金額、総計を表示します。\n\nex [カートページ 統計部分](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/7.3.cart.pug\n+ec-totalBox\n\nStyleguide 7.3.8\n*/\n.ec-totalBox{\n background:#F3F3F3;\n padding: 16px;\n margin-bottom: 16px;\n & &__spec{\n position: relative;\n margin-bottom:8px;\n dt{\n font-weight: normal;\n position: relative;\n top:0;\n left: 0;\n text-align: left;\n }\n dd{\n position: absolute;\n top:0;\n right: 0;\n text-align: right;\n\n }\n & &__specTotal {\n color: $clrRed;\n }\n }\n & &__total{\n border-top: 1px dotted #ccc;\n padding: 8px 0;\n text-align: right;\n font-size: 14px;\n font-weight:bold;\n }\n & &__price{\n margin-left: 16px;\n font-size: 16px;\n font-weight:bold;\n color: $clrRed;\n @include media_desktop {\n font-size: 24px;\n }\n }\n & &__taxLabel {\n margin-left: 8px;\n color: $clrRed;\n font-size: 12px;\n @include media_desktop {\n font-size: 14px;\n }\n }\n & &__btn {\n @include reset_link();\n color: #fff;\n .ec-blockBtn--action {\n font-size: 16px;\n font-weight: bold;\n }\n }\n}","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n@mixin clearfix() {\n //&:before, //to avoid flex effect\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n/*\nお知らせ\n\n新着情報やバナーなどの掲載項目を紹介していきます。\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 8.1\n*/\n\n/*\n新着情報\n\n新着情報の掲載をします。\n\nex [トップページ 新着情報部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/8.1.info.pug\n+ec-news\n\nStyleguide 8.1.1\n*/\n.ec-news {\n margin-bottom: 16px;\n background: #F8F8F8;\n @include media_desktop {\n margin-right: 3%;\n }\n @include media_desktop {\n margin-bottom: 32px;\n }\n & &__title{\n font-weight: bold;\n padding: 8px;\n font-size: 16px;\n text-align: center;\n @include media_desktop {\n padding: 16px;\n text-align: left;\n font-size: 24px;\n }\n }\n & &__items{\n padding: 0;\n list-style: none;\n border-top: 1px dotted #ccc;\n }\n}\n/*\n折りたたみ項目\n\n折りたたみ項目を掲載します。\n\nex [トップページ 折りたたみ項目部分](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/8.1.info.pug\n+b.ec-news\n +e.title 新着情報\n +e.UL.items\n +e.LI.item\n +b.ec-newsline.is_active\n +e.info\n +e.date 2016/09/29\n +e.comment サイトオープンしました\n +e.close\n a.ec-closeBtn--circle\n span.ec-closeBtn--circle__icon\n .ec-icon\n img(src='/moc/icon/angle-down-white.svg', alt='')\n +e.description 一人暮らしからオフィスなどさまざまなシーンで あなたの生活をサポートするグッズをご家庭へお届けします!\n\nStyleguide 8.1.2\n*/\n.ec-newsline {\n display: flex;\n flex-wrap:wrap;\n overflow: hidden;\n padding: 0 16px;\n & &__info{\n width: 100%;\n padding: 16px 0;\n @include clearfix;\n }\n & &__date{\n display: inline-block;\n margin-right: 10px;\n float: left;\n }\n & &__comment{\n display: inline-block;\n float: left;\n }\n & &__close{\n float: right;\n display: inline-block;\n text-align: right;\n .ec-closeBtn--circle {\n display: inline-block;\n width: 25px;\n height: 25px;\n min-width: 25px;\n min-height: 25px;\n\n }\n }\n & &__description{\n width: 100%;\n height: 0;\n transition: all .2s ease-out;\n }\n\n &.is_active &__description{\n height: auto;\n transition: all .2s ease-out;\n padding-bottom: 16px;\n }\n &.is_active .ec-icon img {\n transform: rotateX(180deg);\n }\n}\n\n","@import \"../mixins/projects\";\n@import \"../mixins/variables\";\n@import \"../mixins/media\";\n/*\nマイページ\n\nマイページで利用するためのスタイルガイド群です。\n\nsg-wrapper:\n
\n \n\n\nStyleguide 9.1\n*/\n\n/*\nマイページ\n\nマイページで表示するメニューリストです。\n\nul を利用したリスト要素で記述します。\n\nex [マイページ メニューリスト部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-navlist\n\nStyleguide 9.1.1\n*/\n.ec-navlistRole{\n & &__navlist {\n @include reset_link;\n display: flex;\n flex-wrap: wrap;\n border-color: #D0D0D0;\n border-style: solid;\n border-width: 1px 0 0 1px;\n margin-bottom: 32px;\n padding: 0;\n list-style: none;\n @include media_desktop {\n flex-wrap: nowrap;\n }\n }\n\n & &__item{\n width: 50%;\n border-color: #D0D0D0;\n border-style: solid;\n border-width: 0 1px 1px 0;\n text-align: center;\n font-weight: bold;\n a {\n padding: 16px;\n width: 100%;\n display: inline-block;\n &:hover{\n background: #f5f7f8;\n }\n }\n }\n .active {\n a {\n color: #DE5D50;\n }\n }\n}\n\n/*\nマイページ(お気に入り機能無効)\n\nマイページで表示するメニューリストです。\n\nul を利用したリスト要素で記述します。\n\nex [マイページ メニューリスト部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-navlist_noFavorite\n\nStyleguide 9.1.2\n*/\n\n/*\nWelcome メッセージ\n\nマイページで表示するログイン名の表示コンポーネントです。\n\nex [マイページ メニューリスト下部分](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-welcomeMsg\n\nStyleguide 9.1.3\n*/\n.ec-welcomeMsg{\n @include mypageContainer;\n margin: 1em 0;\n padding-bottom: 32px;\n text-align: center;\n @include borderBottom;\n\n}\n\n/*\nお気に入り一覧\n\nお気に入り一覧で表示するアイテムの表示コンポーネントです。\n\nex [マイページ お気に入り一覧](http://demo3.ec-cube.net/mypage/favorite)\n\nMarkup:\ninclude /assets/tmpl/elements/9.1.mypage.pug\n+ec-favorite\n\nStyleguide 9.1.4\n*/\n.ec-favoriteRole{\n & &__header {\n margin-bottom: 16px;\n }\n & &__detail {\n }\n & &__itemList {\n @include reset_link;\n display: flex;\n flex-wrap: wrap;\n padding: 0;\n list-style: none;\n }\n & &__item{\n margin-bottom: 8px;\n width: 47.5%;\n position: relative;\n box-sizing: border-box;\n padding: 10px;\n &-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center;\n @include media_desktop() {\n height: 250px;\n }\n }\n img{\n width: auto;\n max-height: 100%;\n }\n @include media_desktop(){\n width: 25%;\n }\n .ec-closeBtn--circle {\n position: absolute;\n right: 10px;\n top: 10px;\n .ec-icon img{\n width: 1em;\n height: 1em;\n }\n }\n }\n & &__itemThumb {\n display: block;\n height:auto;\n margin-bottom: 8px;\n }\n & &__itemTitle{\n margin-bottom: 2px;\n }\n & &__itemPrice{\n font-weight: bold;\n margin-bottom: 0;\n }\n\n}\n","@import \"../mixins/media\";\n\n/*\n標準セクション\n\n通常のコンテナブロックです。\n\nex [商品詳細ページ コンテナ](http://demo3.ec-cube.net/products/detail/33)\n\nMarkup:\ninclude /assets/tmpl/elements/11.1.role.pug\n+ec-roleRole\n\nStyleguide 11.1\n*/\n.ec-role{\n @include container;\n}\n\n/*\nマイページセクション\n\nマイページ専用のコンテナブロックです。\n\nex [マイページ コンテナ](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/11.1.role.pug\n+ec-mypageRole\n\nStyleguide 11.1.2\n*/\n.ec-mypageRole{\n @include mypageContainer;\n\n .ec-pageHeader h1{\n @include media_desktop {\n margin: 10px 0 48px;\n padding: 8px 0 18px;\n }\n }\n\n}\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n@import \"../mixins/clearfix\";\n@import \"../mixins/animation\";\n\n/*\nヘッダー\n\nヘッダー用のプロジェクトコンポーネントを提供します。\n\nex [トップページ ヘッダー](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\ninclude /assets/tmpl/elements/11.4.categoryNavi.pug\n+b.ec-layoutRole\n +e.header\n +ec-headerRole\n +ec-headerNaviRole\n +ec-categoryNaviRole\n\nStyleguide 11.2\n*/\n.ec-layoutRole {\n width: 100%;\n transition: transform 0.3s;\n background: #fff;\n & &__contentTop {\n padding: 0;\n }\n\n & &__contents {\n margin-right: auto;\n margin-left: auto;\n width: 100%;\n max-width: 1150px;\n display: flex;\n flex-wrap: nowrap;\n\n }\n & &__main {\n width: 100%;\n }\n & &__mainWithColumn {\n width: 100%;\n @include media_desktop() {\n width: 75%;\n }\n }\n & &__mainBetweenColumn {\n width: 100%;\n @include media_desktop() {\n width: 50%;\n }\n }\n & &__left,\n & &__right {\n display: none;\n @include media_desktop() {\n display: block;\n width: 25%;\n }\n }\n}\n\n\n.ec-headerRole {\n @include container;\n padding-top: 15px;\n position: relative;\n &:after {\n display: none;\n }\n @include media_desktop {\n @include clearfix;\n }\n &::before {\n display: none;\n }\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n width: auto;\n @include media_desktop {\n width: 100%;\n @include clearfix;\n }\n & &__title {\n width: 100%;\n }\n & &__navSP {\n display: block;\n position: absolute;\n top: 15px;\n width: 27%;\n right: 0;\n text-align: right;\n @include media_desktop {\n display: none;\n }\n }\n}\n\n.ec-headerNaviRole {\n @include container;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-top: 15px;\n\n @include media_desktop {\n padding-bottom: 40px;\n }\n\n & &__left {\n width: calc(100% / 3);\n\n }\n\n & &__search {\n display: none;\n @include media_desktop() {\n display: inline-block;\n margin-top: 10px;\n @include reset_link;\n }\n }\n & &__navSP {\n display: block;\n @include media_desktop() {\n display: none;\n @include reset_link;\n }\n }\n\n & &__right {\n width: calc(100% * 2 / 3);\n display: flex;\n justify-content: flex-end;\n align-items: center;\n }\n\n & &__nav {\n display: inline-block;\n @include reset_link;\n }\n & &__cart {\n display: inline-block;\n @include reset_link;\n }\n}\n\n.ec-headerNavSP {\n display: block;\n //display: inline-block;\n border-radius: 50%;\n box-sizing: border-box;\n padding: 10px;\n width: 40px;\n height: 40px;\n font-size: 18px;\n text-align: center;\n color: black;\n background: white;\n position: fixed;\n top: 10px;\n left: 10px;\n z-index: 1000;\n\n .fas {\n vertical-align: top;\n }\n\n @include media_desktop {\n display: none;\n }\n}\n.ec-headerNavSP.is-active {\n display: none;\n}\n\n/*\nヘッダー:タイトル\n\nヘッダー内で使用されるタイトルコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.2.header.pug\n+ec-headerTitle\n\nStyleguide 11.2.1\n*/\n.ec-headerTitle {\n @include commonStyle();\n & &__title {\n text-align: center;\n h1 {\n margin: 0;\n padding: 0;\n }\n a {\n display: inline-block;\n margin-bottom: 30px;\n text-decoration: none;\n font-size: 20px;\n\n @include media_desktop() {\n font-size: 40px;\n }\n font-weight: bold;\n color: black;\n\n &:hover {\n opacity: .8;\n }\n }\n }\n & &__subtitle {\n font-size: 10px;\n text-align: center;\n @include media_desktop() {\n font-size: 16px;\n margin-bottom: 10px;\n }\n a {\n display: inline-block;\n color: #0092C4;\n text-decoration: none;\n cursor: pointer;\n }\n }\n}\n\n/*\nヘッダー:ユーザナビゲーション\n\nヘッダー内でユーザに関与するナビゲーションコンポーネントです。\n

\n`.ec-headerNaviRole`>`.ec-headerNaviRole__nav`内に記述すると2カラム上の右側に配置することができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\n+ec-headerNav\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.2.3\n*/\n.ec-headerNav {\n text-align: right;\n & &__item {\n margin-left: 0;\n display: inline-block;\n font-size: 28px;\n }\n & &__itemIcon {\n display: inline-block;\n margin-right: 10px;\n margin-left: 10px;\n font-size: 18px;\n color: black;\n @include media_desktop {\n margin-right: 0;\n font-size: 20px;\n }\n }\n & &__itemLink {\n display: none;\n margin-right: 5px;\n font-size: 14px;\n vertical-align: middle;\n color: black;\n @include media_desktop {\n display: inline-block;\n }\n }\n}\n\n/*\nヘッダー:検索ボックス\n\nヘッダー内で使用される商品検索コンポーネントです。\n

\n`.ec-headerNaviRole`>`.ec-headerNaviRole__search`内に記述すると2カラム上の右側に配置することができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.3.headerNavi.pug\n+ec-headerSearch\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.2.4\n*/\n.ec-headerSearch{\n @include clearfix;\n & &__category {\n float: none;\n @include media_desktop {\n float: left;\n width: 43%;\n }\n .ec-select {\n overflow: hidden;\n width: 100%;\n margin: 0;\n text-align: center;\n\n select {\n width: 100%;\n cursor: pointer;\n padding: 8px 24px 8px 8px;\n text-indent: 0.01px;\n text-overflow: ellipsis;\n border: none;\n outline: none;\n background: transparent;\n background-image: none;\n box-shadow: none;\n appearance: none;\n color: #fff;\n\n @include media_desktop {\n max-width: 165px;\n height: 36px;\n }\n\n option {\n color: #000;\n }\n\n &::-ms-expand {\n display: none;\n }\n }\n\n &.ec-select_search {\n position: relative;\n border: 0;\n background: #000;\n color: #fff;\n border-top-right-radius: 10px;\n border-top-left-radius: 10px;\n\n @include media_desktop {\n border-top-right-radius: inherit;\n border-top-left-radius: 50px;\n border-bottom-left-radius: 50px;\n }\n\n &::before {\n position: absolute;\n top: 0.8em;\n right: 0.4em;\n width: 0;\n height: 0;\n padding: 0;\n content: '';\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid #fff;\n pointer-events: none;\n }\n }\n }\n }\n & &__keyword{\n position: relative;\n color: $clrDarkGray;\n border: 1px solid #ccc;\n background-color: #f6f6f6;\n border-bottom-right-radius: 10px;\n border-bottom-left-radius: 10px;\n\n @include media_desktop {\n float: right;\n width: 57%;\n border-bottom-left-radius: inherit;\n border-top-right-radius: 50px;\n border-bottom-right-radius: 50px;\n }\n input[type=\"search\"]{\n width: 100%;\n height: 34px;\n font-size: 1.2rem;\n border: 0 none;\n padding: 0.5em 50px 0.5em 1em;\n box-shadow: none;\n background: none;\n box-sizing: border-box;\n margin-bottom: 0;\n }\n .ec-icon {\n width: 22px;\n height: 22px;\n }\n }\n & &__keywordBtn{\n border: 0;\n background: none;\n position: absolute;\n right: 5px;\n top: 50%;\n transform: translateY(-55%);\n display: block;\n white-space: nowrap;\n z-index: 1;\n }\n}\n\n/*\nヘッダー:カテゴリナビ\n\nヘッダー内で使用されている商品のカテゴリ一覧として使用します。\n`li`の中に`ul > li`要素を入れることで、階層を深くする事ができます。\n\nMarkup:\ninclude /assets/tmpl/elements/11.4.categoryNavi.pug\n+ec-itemNav\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 11.2.5\n*/\n.ec-categoryNaviRole {\n @include container;\n display: none;\n @include media_desktop() {\n display: block;\n width: 100%;\n @include reset_link;\n }\n}\n\n.ec-itemNav {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n text-align: center;\n}\n\n.ec-itemNav__nav {\n display: block;\n margin: 0 auto;\n padding: 0;\n width: auto;\n height: auto;\n list-style-type: none;\n text-align: center;\n vertical-align: bottom;\n @include media_desktop {\n display: inline-block;\n }\n}\n\n.ec-itemNav__nav li {\n float: none;\n margin: 0;\n padding: 0;\n width: 100%;\n text-align: center;\n position: relative;\n @include media_desktop {\n float: left;\n width: auto;\n }\n}\n\n.ec-itemNav__nav li a {\n display: block;\n border-bottom: 1px solid #E8E8E8;\n margin: 0;\n padding: 16px;\n height: 55px;\n color: #2e3233;;\n font-size: 16px;\n font-weight: bold;\n line-height: 20px;\n text-decoration: none;\n text-align: left;\n background: #fff;\n border-bottom: 1px solid #E8E8E8;\n @include media_desktop {\n text-align: center;\n border-bottom: none;\n }\n}\n\n.ec-itemNav__nav li ul {\n display: none;\n z-index: 0;\n margin: 0;\n padding: 0;\n min-width: 200px;\n list-style: none;\n position: static;\n top: 100%;\n left: 0;\n @include media_desktop {\n display: block;\n z-index: 100;\n position: absolute;\n }\n}\n\n.ec-itemNav__nav li ul li {\n overflow: hidden;\n width: 100%;\n height: auto;\n transition: .3s;\n @include media_desktop {\n overflow: hidden;\n height: 0;\n }\n}\n\n.ec-itemNav__nav li ul li a {\n border-bottom: 1px solid #E8E8E8;\n padding: 16px;\n font-size: 16px;\n font-weight: bold;\n color: white;\n text-align: left;\n background: black;\n}\n\n.ec-itemNav__nav > li:hover > a {\n background: #fafafa;\n}\n\n.ec-itemNav__nav > li:hover li:hover > a {\n background: #333;\n}\n\n.ec-itemNav__nav > li:hover > ul > li {\n @include media_desktop {\n overflow: visible;\n height: 55px;\n\n }\n}\n\n.ec-itemNav__nav li ul li ul {\n top: 0;\n left: 100%;\n width: auto;\n}\n\n.ec-itemNav__nav li ul li ul:before {\n @include media_desktop {\n content: \"\\f054\";\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900;\n font-size: 12px;\n color: white;\n position: absolute;\n top: 19px;\n right: auto;\n left: -20px;\n }\n}\n\n.ec-itemNav__nav li ul li:hover > ul > li {\n @include media_desktop {\n overflow: visible;\n height: 55px;\n width: auto;\n }\n}\n\n.ec-itemNav__nav li ul li ul li a {\n background: #7D7D7D\n}\n\n.ec-itemNav__nav li:hover ul li ul li a:hover {\n background: #333;\n}\n\n/*\nヘッダー:SPヘッダー\n\nSP時のみ出現するヘッダーに関係するコンポーネントです。
\nex [トップページ](http://demo3.ec-cube.net/)画面サイズが768px以下に該当。
\n
\n`.ec-drawerRole`:SPのドロワー内の要素をwrapするコンポーネントです。
\n`.ec-headerSearch`、`.ec-headerNav`、`.ec-itemNav`は`.ec-drawerRole`の子要素にある場合、ドロワーに適したスタイルに変化します。

\n`.ec-overlayRole`:SPのドロワー出現時にz-indexがドロワー以下の要素に半透明の黒背景をかぶせるコンポーネントです。
\n\nStyleguide 11.2.6\n*/\n\n.ec-drawerRole {\n overflow-y: scroll;\n background: black;\n width: 260px;\n height: 100vh;\n transform: translateX(-300px);\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n transition: z-index 0ms 1ms;\n @include media_desktop() {\n display: none;\n }\n\n\n .ec-headerSearchArea {\n padding: 20px 10px;\n width: 100%;\n background: #F8F8F8;\n }\n\n .ec-headerSearch{\n padding: 16px 8px 26px;\n background: #EBEBEB;\n color: #636378;\n select{\n width: 100% !important;\n }\n }\n\n .ec-headerCategoryArea{\n .ec-headerCategoryArea__heading {\n border-top: 1px solid #CCCCCC;\n border-bottom: 1px solid #CCCCCC;\n padding: 1em 10px;\n font-size: 16px;\n font-weight: bold;\n color: black;\n background: #F8F8F8;\n }\n\n\n .ec-itemNav__nav li a {\n border-bottom: 1px solid #ccc;\n border-bottom: 1px solid #ccc;\n color: black;\n font-weight: normal;\n background: #f8f8f8;\n }\n\n .ec-itemNav__nav li ul li a {\n border-bottom: 1px solid #ccc;\n padding-left: 20px;\n font-weight: normal;\n background: white;\n }\n\n .ec-itemNav__nav > li:hover > a {\n background: #f8f8f8;\n }\n\n .ec-itemNav__nav > li:hover li:hover > a {\n background: white;\n }\n\n .ec-itemNav__nav li ul li ul li a {\n padding-left: 40px;\n color: black;\n background: white;\n }\n\n .ec-itemNav__nav li:hover ul li ul li a:hover {\n background: white;\n }\n\n .ec-itemNav__nav li ul li ul li ul li a{\n padding-left: 60px;\n font-weight: normal;\n }\n }\n .ec-headerLinkArea {\n background: black;\n\n .ec-headerLink__list {\n border-top: 1px solid #ccc;\n\n }\n\n .ec-headerLink__item {\n display: block;\n border-bottom: 1px solid #ccc;\n padding: 15px 20px;\n font-size: 16px;\n font-weight: bold;\n color: white;\n }\n .ec-headerLink__icon {\n display: inline-block;\n width: 28px;\n font-size: 17px;\n }\n\n\n\n }\n\n}\n\n.ec-drawerRoleClose {\n display: none;\n border-radius: 50%;\n box-sizing: border-box;\n padding: 10px;\n width: 40px;\n height: 40px;\n font-size: 18px;\n text-align: center;\n color: black;\n background: white;\n position: fixed;\n top: 10px;\n left: 270px;\n z-index: 1000;\n\n .fas {\n vertical-align: top;\n }\n @include media_desktop {\n display: none;\n }\n\n}\n\n.ec-drawerRole.is_active {\n display: block;\n transform: translateX(0);\n transition: all .3s;\n z-index: 100000;\n\n @include media_desktop() {\n display: none;\n }\n}\n.ec-drawerRoleClose.is_active {\n display: inline-block;\n transition: all .3s;\n\n @include media_desktop {\n display: none;\n }\n}\n\n.ec-overlayRole {\n position: fixed;\n width: 100%;\n height: 100vh;\n top: 0;\n left: 0;\n opacity: 0;\n background: transparent;\n transform: translateX(0);\n transition: all .3s;\n visibility: hidden;\n\n @include media_desktop {\n display: none;\n }\n}\n\n.have_curtain .ec-overlayRole {\n display: block;\n opacity: 1;\n background: rgba(0, 0, 0, 0.5);\n visibility: visible;\n\n @include media_desktop {\n display: none;\n }\n}\n\n/*\nヘッダー:test\n\ntest\n\nMarkup:\nspan.ec-itemAccordionParent test1\nul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test2\n ul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test3\n ul.ec-itemNavAccordion\n li.ec-itemNavAccordion__item\n a(href='') test4\n\nStyleguide 11.2.7\n*/\n\n.ec-itemNavAccordion {\n display: none;\n}","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n/*\nフッター\n\n全ページで使用されるフッターのプロジェクトコンポーネントです。\n\nex [トップページ フッター](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerRole\n\nStyleguide 11.3\n*/\n.ec-footerRole{\n border-top: 1px solid #7d7d7d;\n margin-top: 30px;\n background: black;\n\n @include media_desktop(){\n padding-top: 40px;\n margin-top: 100px;\n }\n & &__inner{\n @include media_desktop {\n @include container;\n }\n }\n}\n\n/*\nフッターナビ\n\nフッタープロジェクトで使用するナビゲーション用のコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerNav\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.3.1\n*/\n.ec-footerNavi{\n padding: 0;\n color: white;\n list-style: none;\n text-align: center;\n\n & &__link{\n display: block;\n\n @include media_desktop {\n display: inline-block;\n }\n\n a{\n display: block;\n border-bottom: 1px solid #7d7d7d;\n padding: 15px 0;\n font-size: 14px;\n color: inherit;\n text-decoration: none;\n\n @include media_desktop {\n display: inline-block;\n border-bottom: none;\n margin: 0 10px;\n padding: 0;\n text-decoration: underline;\n }\n }\n &:hover {\n a {\n opacity: .8;\n text-decoration: none;\n }\n\n }\n\n }\n}\n\n/*\nフッタータイトル\n\nフッタープロジェクトで使用するタイトル用のコンポーネントです。\n\nMarkup:\ninclude /assets/tmpl/elements/11.8.footer.pug\n+ec-footerTitle\n\nsg-wrapper:\n
\n
\n \n
\n
\n\nStyleguide 11.3.2\n*/\n.ec-footerTitle{\n padding: 40px 0 60px;\n text-align: center;\n color: white;\n\n @include media_desktop {\n padding: 50px 0 80px;\n }\n\n & &__logo{\n display: block;\n margin-bottom: 10px;\n font-weight: bold;\n @include reset_link();\n\n a{\n font-size: 22px;\n color: inherit;\n @include media_desktop {\n font-size: 24px;\n }\n\n }\n\n &:hover {\n a {\n opacity: .8;\n text-decoration: none;\n }\n }\n }\n & &__copyright{\n font-size: 10px;\n\n @include media_desktop {\n font-size: 12px;\n }\n }\n}\n\n","@import \"../mixins/media\";\n/*\nトップページ\n\nトップページ スライド部に関する Project コンポーネントを定義します。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/12.1.slider.pug\n+ec-sliderRole\n\nStyleguide 12.1\n*/\n.ec-sliderRole{\n @include container;\n margin-bottom: 24px;\n ul{\n padding: 0;\n list-style: none;\n }\n}\n.ec-sliderItemRole{\n @include container;\n margin-bottom: 24px;\n ul{\n padding: 0;\n list-style: none;\n }\n .item_nav {\n display: none;\n @include media_desktop {\n display: flex;\n justify-content: flex-start;\n flex-wrap: wrap;\n margin-bottom: 0;\n }\n\n }\n .slideThumb{\n margin-bottom: 25px;\n width: 33%;\n opacity: .8;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n &:hover {\n opacity: 1;\n }\n img {\n width: 80%;\n }\n }\n}","@import \"../mixins/media\";\n\n/*\nアイキャッチ\n\nトップページ アイキャッチ部に関する Project コンポーネントを定義します。\n\nex [トップページスライダー直下 アイキャッチ部](http://demo3.ec-cube.net/)\n\nMarkup:\ninclude /assets/tmpl/elements/12.2.eyecatch.pug\n+ec-eyecatchRole\n\nStyleguide 12.2\n*/\n.ec-eyecatchRole {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 40px;\n\n @include media_desktop {\n flex-wrap: nowrap;\n }\n\n & &__image {\n display: block;\n margin-bottom: 40px;\n width: 100%;\n height: 100%;\n\n @include media_desktop {\n order: 2;\n }\n }\n\n & &__intro {\n color: black;\n\n @include media_desktop {\n padding-right: 5%;\n order: 1;\n }\n }\n & &__introEnTitle {\n margin-bottom: .8em;\n font-size: 16px;\n font-weight: normal;\n\n @include media_desktop {\n margin-top: 45px;\n }\n }\n & &__introTitle {\n margin-bottom: .8em;\n font-size: 24px;\n font-weight: bold;\n\n @include media_desktop {\n margin-bottom: 1em;\n font-size: 26px;\n }\n }\n & &__introDescriptiron {\n margin-bottom: 20px;\n font-size: 16px;\n line-height: 2;\n @include media_desktop {\n margin-bottom: 30px;\n }\n }\n\n}\n","@import \"../mixins/btn\";\n@import \"../mixins/media\";\n\n/*\nボタン\n\nトップページで使用されているボタンのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.3\n*/\n\n/*\n通常ボタン\n\nインラインの要素としてボタンを定義出来ます。\n\nMarkup:\n.ec-inlineBtn--top more\n\nStyleguide 12.3.1\n*/\n.ec-inlineBtn--top{\n @include _btn(white, black, black);\n}\n\n/*\nロングボタン(全幅)\n\nロングタイプのボタンです。\n\nMarkup:\n.ec-blockBtn--top 商品一覧へ\n\nStyleguide 2.1.2\n*/\n.ec-blockBtn--top{\n @include _btn(white, black, black);\n display: block;\n height:56px;\n line-height:56px;\n padding-top: 0;\n padding-bottom: 0;\n\n @include media_desktop {\n max-width: 260px;\n }\n}\n","/*\n見出し\n\nトップページで使用されている見出しのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.4\n*/\n\n/*\n横並び見出し\n\n横並びの見出しです。\n\nMarkup:\n.ec-secHeading\n span.ec-secHeading__en TOPIC\n span.ec-secHeading__line |\n span.ec-secHeading__ja 特集\n\nStyleguide 12.4.1\n*/\n.ec-secHeading {\n margin-bottom: 15px;\n color: black;\n & &__en{\n font-size: 18px;\n font-weight: bold;\n letter-spacing: .2em;\n }\n & &__line{\n display: inline-block;\n margin: 0 20px;\n width: 1px;\n height: 14px;\n background: black;\n }\n & &__ja{\n font-size: 12px;\n font-weight: normal;\n letter-spacing: .15em;\n vertical-align: 2px;\n }\n}\n\n/*\n縦並び見出し\n\n縦並びの見出しです。\n\nMarkup:\n.ec-secHeading--tandem\n span.ec-secHeading__en TOPIC\n span.ec-secHeading__line |\n span.ec-secHeading__ja 特集\n\nStyleguide 12.4.2\n*/\n\n.ec-secHeading--tandem {\n margin-bottom: 15px;\n color: black;\n text-align: center;\n & .ec-secHeading__en{\n display: block;\n font-size: 18px;\n font-weight: bold;\n letter-spacing: .2em;\n }\n & .ec-secHeading__line{\n display: block;\n margin: 13px auto;\n width: 20px;\n height: 1px;\n background: black;\n }\n & .ec-secHeading__ja{\n display: block;\n margin-bottom: 30px;\n font-size: 12px;\n font-weight: normal;\n letter-spacing: .15em;\n vertical-align: 2px;\n }\n}","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n\n/*\nトピック(アイテム2列)\n\nトップページで使用されているトピックのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.5.1\n*/\n\n.ec-topicRole {\n padding: 40px 0;\n background: #F8F8F8;\n\n @include media_desktop {\n padding: 60px 0;\n }\n\n & &__list {\n display: flex;\n flex-wrap: wrap;\n\n @include media_desktop {\n flex-wrap: nowrap;\n }\n\n }\n & &__listItem {\n margin-bottom: 20px;\n width: 100%;\n height: auto;\n\n @include media_desktop {\n width: calc(100% / 2);\n\n &:not(:last-of-type){\n margin-right: 30px;\n }\n }\n\n }\n & &__listItemTitle {\n margin-top: .5em;\n font-size: 14px;\n color: black;\n\n @include media_desktop {\n margin-top: 1em;\n }\n }\n\n}","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n\n/*\nカテゴリ(アイテム4列 スマホの時は2列)\n\nトップページで使用されているアイテムリストのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.6.1\n*/\n\n.ec-newItemRole {\n padding: 40px 0;\n\n @include media_desktop {\n padding: 60px 0;\n }\n\n & &__list {\n display: flex;\n flex-wrap: wrap;\n\n @include media_desktop {\n flex-wrap: nowrap;\n }\n\n }\n & &__listItem {\n margin-bottom: 4%;\n width: 48%;\n height: auto;\n\n\n @include media_desktop {\n margin-bottom: 15px;\n width: calc(100% / 4);\n\n &:not(:last-of-type){\n margin-right: 30px;\n }\n }\n\n &:nth-child(odd){\n margin-right: 4%;\n\n @include media_desktop {\n margin-right: 30px;\n }\n }\n }\n & &__listItemHeading {\n margin-top: calc(45% - 20px);\n }\n & &__listItemTitle {\n margin: 8px 0;\n font-size: 14px;\n font-weight: bold;\n color: black;\n\n @include media_desktop {\n margin: 20px 0 10px;\n }\n }\n\n & &__listItemPrice {\n font-size: 12px;\n color: black;\n\n }\n\n}","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n\n/*\nカテゴリ(アイテム3列)\n\nトップページで使用されているカテゴリのスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.7.1\n*/\n\n.ec-categoryRole {\n padding: 40px 0;\n color: black;\n background: #F8F8F8;\n\n @include media_desktop {\n padding: 60px 0;\n }\n\n & &__list {\n display: flex;\n flex-wrap: wrap;\n\n @include media_desktop {\n flex-wrap: nowrap;\n }\n\n }\n & &__listItem {\n margin-bottom: 20px;\n width: 100%;\n height: auto;\n\n @include media_desktop {\n width: calc(100% / 3);\n\n &:not(:last-of-type){\n margin-right: 30px;\n }\n }\n\n }\n\n}","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n\n/*\n見出し\n\nトップページで使用されている新着情報のスタイルです。\n\nex [トップページ](http://demo3.ec-cube.net/)\n\nMarkup:\nsg-wrapper:\n
\n \n
\n\nStyleguide 12.8.1\n*/\n\n.ec-newsRole {\n padding: 40px 0 0;\n\n @include media_desktop {\n padding: 60px 0 0;\n }\n\n & &__news {\n\n box-sizing: border-box;\n\n @include media_desktop {\n border: 16px solid #F8F8F8;\n padding: 20px 30px;\n }\n }\n & &__newsItem {\n width: 100%;\n\n &:not(:last-of-type){\n border-bottom: 1px solid #ccc;\n }\n\n &:last-of-type {\n margin-bottom: 20px;\n\n @include media_desktop {\n margin-bottom: 0;\n }\n }\n\n\n @include media_desktop {\n\n padding: 20px 0;\n }\n }\n & &__newsHeading {\n cursor: pointer;\n\n @include media_desktop {\n display: flex;\n }\n\n }\n & &__newsDate {\n display: block;\n margin: 15px 0 5px;\n font-size: 12px;\n color: black;\n\n @include media_desktop {\n display: inline-block;\n margin: 0;\n min-width: 120px;\n font-size: 14px;\n }\n\n }\n & &__newsColumn {\n display: flex;\n\n @include media_desktop {\n display: inline-flex;\n min-width: calc(100% - 120px);\n }\n }\n\n & &__newsTitle {\n display: inline-block;\n margin-bottom: 10px;\n width: 90%;\n font-size: 14px;\n font-weight: bold;\n color: #7D7D7D;\n line-height: 1.6;\n\n @include media_desktop {\n margin-bottom: 0;\n line-height: 1.8;\n }\n\n }\n & &__newsClose {\n display: inline-block;\n width: 10%;\n position: relative;\n\n }\n & &__newsCloseBtn {\n display: inline-block;\n margin-left: auto;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n color: white;\n text-align: center;\n background: black;\n cursor: pointer;\n position: absolute;\n right: 5px;\n }\n & &__newsDescription {\n display: none;\n margin: 0 0 10px;\n font-size: 14px;\n line-height: 1.4;\n overflow: hidden;\n\n @include media_desktop {\n margin: 20px 0 0;\n line-height: 1.8;\n }\n\n a {\n color: #0092C4;\n }\n }\n &__newsItem.is_active &__newsDescription{\n margin: 0 0 10px;\n\n @include media_desktop {\n margin: 20px 0 0;\n }\n }\n &__newsItem.is_active &__newsCloseBtn i {\n display: inline-block;\n transform: rotateX(180deg) translateY(2px);\n\n }\n\n}","@import \"../mixins/media\";\n/*\n検索ラベル\n\n商品一覧 ヘッダー部 に関する Project コンポーネントを定義します。\n\nex [商品一覧 ヘッダー部](http://demo3.ec-cube.net/products/list)\n\nMarkup:\ninclude /assets/tmpl/elements/13.1.searchnav.pug\n+ec-searchnavRole__topicpath\n+ec-searchnavRole__info\n\nStyleguide 13.1\n\n*/\n.ec-searchnavRole{\n margin-bottom: 0;\n padding: 0;\n @include media_desktop {\n @include container;\n }\n & &__infos{\n @include container;\n display: flex;\n border-top: 0;\n margin-bottom: 16px;\n padding-top: 5px;\n flex-direction:column;\n @include media_desktop {\n padding-left: 0;\n padding-right: 0;\n border-top: 1px solid #ccc;\n padding-top: 16px;\n flex-direction:row;\n }\n }\n\n & &__counter{\n margin-bottom: 16px;\n width: 100%;\n @include media_desktop {\n margin-bottom: 0;\n width: 50%;\n }\n }\n\n & &__actions{\n text-align: right;\n width: 100%;\n @include media_desktop {\n width: 50%;\n }\n }\n\n\n}","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n/*\n商品一覧\n\n商品一覧 に関する Project コンポーネントを定義します。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGrid\n\nStyleguide 13.2\n\n*/\n.ec-shelfRole{\n @include container;\n}\n\n/*\n商品一覧グリッド\n\n商品一覧 で使用するグリッドコンポーネントです。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGrid\n\nStyleguide 13.2.1\n\n*/\n.ec-shelfGrid{\n @include reset_link;\n display: flex;\n margin-left: 0;\n margin-right: 0;\n flex-wrap: wrap;\n padding: 0;\n list-style: none;\n\n @include media_desktop {\n margin-left: -16px;\n margin-right: -16px;\n }\n & &__item{\n margin-bottom: 36px;\n width: 50%;\n display: flex;\n flex-direction: column;\n &-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center;\n @include media_desktop() {\n height: 250px;\n }\n }\n img{\n width: auto;\n max-height: 100%;\n }\n @include media_desktop(){\n padding: 0 16px;\n width: 25%;\n }\n\n .ec-productRole__btn {\n margin-top: auto;\n margin-bottom: 15px;\n }\n }\n & &__item:nth-child(odd){\n padding-right: 8px;\n @include media_desktop(){\n padding: 0 16px;\n }\n }\n & &__item:nth-child(even){\n padding-left: 8px;\n @include media_desktop(){\n padding: 0 16px;\n }\n }\n & &__title {\n margin-bottom: 7px;\n }\n & &__plice {\n font-weight: bold;\n }\n}\n\n/*\n13.2.2 商品一覧グリッド(中央寄せ)\n\n商品一覧 で使用するグリッドコンポーネントです。\n\nSP版2列、PC版4列の特殊グリッドを構成します。\n商品のあまりはセンタリングされ、中央に表示されます。\n\nMarkup:\ninclude /assets/tmpl/elements/13.2.shelf.pug\n+b.ec-shelfRole\n +ec-shelfGridCenter\n\nStyleguide 13.2.2\n\n*/\n.ec-shelfGridCenter{\n @include reset_link;\n display: flex;\n margin-left: 0;\n margin-right: 0;\n flex-wrap: wrap;\n padding: 0;\n list-style: none;\n justify-content: center;\n\n @include media_desktop {\n margin-left: -16px;\n margin-right: -16px;\n }\n & &__item{\n margin-bottom: 36px;\n width: 50%;\n &-image {\n height: 150px;\n margin-bottom: 10px;\n text-align: center;\n @include media_desktop() {\n height: 250px;\n }\n }\n img{\n width: auto;\n max-height: 100%;\n }\n @include media_desktop(){\n padding: 0 16px;\n width: 25%;\n }\n\n .ec-productRole__btn {\n margin-top: auto;\n padding-top: 1em;\n }\n }\n & &__item:nth-child(odd){\n padding-right: 8px;\n @include media_desktop(){\n padding: 0 16px;\n }\n }\n & &__item:nth-child(even){\n padding-left: 8px;\n @include media_desktop(){\n padding: 0 16px;\n }\n }\n & &__title {\n margin-bottom: 7px;\n }\n & &__plice {\n font-weight: bold;\n }\n}\n","\n/*\n商品一覧フッター\n\n商品一覧 フッター に関する Project コンポーネントを定義します。\n\nex [商品一覧 ページャ部](http://demo3.ec-cube.net/products/list)\n\nMarkup:\ninclude /assets/tmpl/elements/13.3.pager.pug\n+ec-pagerRole\n\nStyleguide 13.3\n\n*/\n.ec-pagerRole{\n\n}\n\n","@import \"../mixins/media\";\n\n/*\nカート追加モーダル\n\nカート追加モーダルに関する Project コンポーネントを定義します。\n\nex [商品一覧、商品詳細](http://demo3.ec-cube.net/products/list)\n\n+ec-modal\n\nStyleguide 13.4\n\n*/\n\n.ec-modal {\n\n .checkbox {\n display: none;\n }\n\n .ec-modal-overlay {\n opacity: 0;\n transition: all 0.3s ease;\n width: 100%;\n height: 100%;\n position: fixed;\n top: 0;\n left: 0;\n z-index: -100;\n transform: scale(1);\n display: flex;\n background-color: rgba(0, 0, 0, 0.3);\n }\n\n .ec-modal-wrap {\n background-color: #fff;\n border: 1px solid #333;\n width: 90%;\n margin: 20px;\n padding: 40px 5px;\n border-radius: 2px;\n transition: all 0.5s ease;\n -ms-flex-item-align: center;\n align-self: center;\n\n .ec-modal-box {\n text-align: center;\n }\n\n .ec-modal-box div {\n margin-top: 20px;\n }\n\n @include media_desktop {\n & {\n padding: 40px 10px;\n width: 50%;\n margin: 20px auto;\n }\n }\n\n &.small {\n width: 30%;\n }\n\n &.full {\n width: 100%;\n height: 100%;\n }\n }\n\n .ec-modal-overlay {\n .ec-modal-close {\n position: absolute;\n right: 20px;\n top: 10px;\n font-size: 20px;\n height: 30px;\n width: 20px;\n\n &:hover {\n cursor: pointer;\n color: #4b5361;\n }\n }\n }\n\n .ec-modal-overlay-close {\n width: 100%;\n height: 100%;\n position: fixed;\n left: 0;\n top: 0;\n z-index: -100;\n }\n\n input:checked {\n ~ .ec-modal-overlay-close {\n z-index: 9998;\n }\n\n ~ .ec-modal-overlay {\n transform: scale(1);\n opacity: 1;\n z-index: 9997;\n overflow: auto;\n }\n\n ~ .ec-modal-overlay .ec-modal-wrap {\n transform: translateY(0);\n z-index: 9999;\n }\n }\n}\n\n","@import \"../mixins/media\";\n\n/*\n商品詳細\n\n商品詳細ページに関する Project コンポーネントを定義します。\n\nex [商品詳細ページ](http://demo3.ec-cube.net/products/detail/18)\n\n\nMarkup:\ninclude /assets/tmpl/elements/14.1.product.pug\n+ec-productSimpleRole\n\nStyleguide 14.1\n*/\n.ec-productRole {\n @include container;\n & &__img {\n margin-right: 0;\n margin-bottom: 20px;\n @include media_desktop {\n margin-right: 16px;\n margin-bottom: 0;\n }\n }\n & &__profile {\n margin-left: 0;\n @include media_desktop {\n margin-left: 16px;\n }\n }\n & &__title {\n .ec-headingTitle {\n font-size: 20px;\n @include media_desktop {\n font-size: 32px;\n }\n }\n }\n & &__tags {\n margin-top: 16px;\n padding: 0;\n padding-bottom: 16px;\n border-bottom: 1px dotted #ccc;\n }\n & &__tag {\n display: inline-block;\n padding: 2px 5px;\n list-style: none;\n font-size: 80%;\n color: #525263;\n border: solid 1px #D7DADD;\n border-radius: 3px;\n background-color: #F5F7F8;\n }\n & &__priceRegular {\n padding-top: 14px\n }\n & &__priceRegularTax {\n margin-left: 5px;\n font-size: 12px;\n }\n & &__price {\n color: #DE5D50;\n font-size: 28px;\n padding: 0;\n border-bottom: 0;\n @include media_desktop {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc;\n }\n }\n & &__code {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc;\n }\n & &__category {\n padding: 14px 0;\n border-bottom: 1px dotted #ccc;\n a {\n color: #33A8D0;\n }\n ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n }\n & &__actions {\n padding: 14px 0;\n .ec-select {\n select {\n height: 40px;\n max-width: 100%;\n min-width: 100%;\n @include media_desktop {\n min-width: 350px;\n max-width: 350px;\n }\n }\n }\n }\n & &__btn {\n width: 100%;\n margin-bottom: 10px;\n @include media_desktop {\n width: 60%;\n margin-bottom: 16px;\n min-width: 350px;\n }\n }\n & &__description {\n margin-bottom: 16px;\n }\n\n}\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n\n/*\nカート\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [カートページ](http://demo3.ec-cube.net/shopping)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n+ec-cartRole\n\nStyleguide 15.1\n\n*/\n.ec-cartRole{\n @include container;\n &::before{\n display: none;\n }\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n\n & &__progress{\n width: 100%;\n text-align: center;\n }\n & &__error{\n width: 100%;\n text-align: center;\n .ec-alert-warning {\n max-width: 80%;\n display: inline-block;\n }\n }\n & &__totalText{\n margin-bottom: 0;\n padding: 16px 0 6px;\n width: 100%;\n text-align: center;\n font-weight: normal;\n @include media_desktop {\n margin-bottom: 30px;\n padding: 0;\n }\n }\n & &__cart{\n margin: 0;\n width: 100%;\n @include media_desktop {\n margin: 0 10%;\n }\n\n }\n & &__actions{\n text-align: right;\n width: 100%;\n @include media_desktop {\n width: 20%;\n margin-right: 10%;\n }\n }\n & &__total{\n padding: 15px 0 30px ;\n font-weight: bold;\n font-size: 16px;\n }\n & &__totalAmount{\n margin-left: 30px;\n color: #de5d50;\n font-size: 16px;\n @include media_desktop {\n font-size: 24px;\n }\n }\n\n .ec-blockBtn--action {\n margin-bottom: 10px;\n }\n}\n\n\n/*\nカート商品表示枠(テーブルヘッダ)\n\nカート内の商品をを表示するテーブル枠です。\n\nex [カートページ テーブル部分(カート内に商品がある状態でアクセス)](http://demo3.ec-cube.net/cart)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n+ec-cartTable\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 15.1.2\n*/\n.ec-cartTable{\n display: table;\n border-top: 1px dotted #ccc;\n width: 100%;\n @include media_desktop {\n border-top: none;\n }\n}\n\n\n/*\nカート商品表示枠(テーブルヘッダ)\n\nカート内の商品を表示するテーブルのヘッダです。\nスマホでは非表示となります。\n\nex [カートページ カートテーブルヘッダ部分(カート内に商品がある状態でアクセス)](http://demo3.ec-cube.net/cart)\n\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartHeader\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 15.1.3\n*/\n.ec-cartHeader{\n display: none;\n width: 100%;\n background: #F4F3F0;\n @include media_desktop {\n display: table-row;\n }\n & &__label{\n display: table-cell;\n padding: 16px;\n text-align: center;\n background: #F4F3F0;\n overflow-x: hidden;\n font-weight: bold;\n }\n}\n.ec-cartCompleteRole {\n @include container;\n}\n/*\nカート内商品\n\nカート内のアイテムを表示するテーブル行です。\nスマホでは非表示となります。\n\nex [カートページ テーブル部分](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartRow\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 15.1.4\n*/\n\n.ec-cartRow{\n display: table-row;\n & &__delColumn{\n border-bottom: 1px dotted #ccc;\n text-align: center;\n display: table-cell;\n width: 14%;\n vertical-align: middle;\n @include media_desktop{\n width: 8.3333333%;\n }\n .ec-icon {\n img {\n width: 1.5em;\n height: 1.5em;\n @include media_desktop {\n width: 1em;\n height: 1em;\n }\n }\n }\n }\n & &__contentColumn{\n border-bottom: 1px dotted #ccc;\n padding: 10px 0;\n display: table;\n @include media_desktop {\n display: table-cell;\n }\n }\n & &__img{\n display: table-cell;\n width: 40%;\n vertical-align: middle;\n padding-right: 10px;\n @include media_desktop {\n display: inline-block;\n min-width: 80px;\n max-width: 100px;\n padding-right: 0;\n }\n }\n & &__summary{\n display: table-cell;\n margin-left: 5px;\n font-weight: bold;\n vertical-align: middle;\n width: 46%;\n @include media_desktop {\n display: inline-block;\n margin-left: 20px;\n vertical-align: middle;\n }\n .ec-cartRow__name {\n margin-bottom: 5px;\n }\n .ec-cartRow__sutbtotalSP {\n display: block;\n font-weight: normal;\n @include media_desktop {\n display: none;\n }\n }\n }\n & &__amountColumn{\n display: table-cell;\n border-bottom: 1px dotted #ccc;\n vertical-align: middle;\n text-align: center;\n width: 20%;\n @include media_desktop {\n width: 16.66666667%;\n }\n\n .ec-cartRow__amount {\n display: none;\n margin-bottom: 10px;\n @include media_desktop {\n display: block;\n }\n }\n .ec-cartRow__amountSP {\n display: block;\n margin-bottom: 10px;\n @include media_desktop {\n display: none;\n }\n }\n\n .ec-cartRow__amountUpDown {\n display: flex;\n justify-content: center;\n @include media_desktop {\n display: block;\n }\n }\n\n .ec-cartRow__amountUpButton {\n margin: 0 2px;\n display: inline-block;\n border: 2px solid #c9c9c9;\n border-radius: 50%;\n width: 30px;\n min-width: 30px;\n max-width: 30px;\n height: 30px;\n cursor: pointer;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center;\n background: #fff;\n\n\n .ec-cartRow__amountUpButton__icon {\n img {\n display: block;\n margin-left: -0.4em;\n width: .8em;\n height: .8em;\n position: absolute;\n top: 28%;\n left: 50%;\n }\n }\n }\n .ec-cartRow__amountDownButton {\n margin: 0 2px;\n display: inline-block;\n border: 2px solid #c9c9c9;\n border-radius: 50%;\n width: 30px;\n min-width: 30px;\n max-width: 30px;\n height: 30px;\n cursor: pointer;\n line-height: 40px;\n vertical-align: middle;\n position: relative;\n text-align: center;\n background: #fff;\n\n .ec-cartRow__amountDownButton__icon {\n img {\n display: block;\n margin-left: -0.4em;\n width: .8em;\n height: .8em;\n position: absolute;\n top: 28%;\n left: 50%;\n }\n }\n }\n\n .ec-cartRow__amountDownButtonDisabled {\n @extend .ec-cartRow__amountDownButton;\n cursor: default;\n }\n }\n & &__subtotalColumn{\n display: none;\n border-bottom: 1px dotted #ccc;\n text-align: right;\n width: 16.66666667%;\n @include media_desktop {\n display: table-cell;\n }\n }\n}\n\n/*\nカート内商品(商品が1の場合)\n\n商品が1の場合はカート商品を減らす「-」ボタンの無効化状態になります。\n\nex [カートページ テーブル部分](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartTable\n +ec-cartRowOnly\n\nsg-wrapper:\n
\n \n
\n\n\nStyleguide 15.1.5\n*/\n\n.ec-cartRow{\n & &__amountColumn{\n .ec-cartRow__amountDownButtonDisabled {\n @extend .ec-cartRow__amountDownButton;\n cursor: default;\n }\n }\n}\n\n/*\nアラート\n\nカート内の商品に問題があることを示す警告メッセージです。\n\nex [マイページ カート](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-cartRole\n .ec-cartRole__cart\n +ec-alert-warning\n\nStyleguide 15.1.6\n*/\n\n.ec-alert-warning {\n width: 100%;\n padding: 10px;\n text-align: center;\n background: #F99;\n margin-bottom: 20px;\n\n\n & &__icon {\n display: inline-block;\n margin-right: 1rem;\n width: 20px;\n height: 20px;\n color: #fff;\n fill: #fff;\n vertical-align: top;\n }\n & &__text {\n display: inline-block;\n font-size: 16px;\n font-weight: bold;\n color: #fff;\n position: relative;\n }\n}\n\n\n\n\n/*\nアラート(空)\n\nカートが空であることを示す警告メッセージです。\n\nex [マイページ カート](http://demo3.ec-cube.net/cart)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/15.1.cart.pug\n.ec-off3Grid\n .ec-off3Grid__cell\n +ec-alert-warningEnpty\n\nStyleguide 15.1.7\n*/","@import \"../mixins/media\";\n@import \"../mixins/clearfix\";\n@import \"../mixins/projects\";\n/*\n注文内容確認\n\nカート内 注文内容確認に関する Project コンポーネントを定義します。\n\nex [マイページ 注文詳細](http://demo3.ec-cube.net/shopping)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderRole\n\nStyleguide 15.2\n*/\n.ec-orderRole{\n @include container;\n display: flex;\n flex-direction: column;\n margin-top: 0;\n @include media_desktop {\n margin-top: 20px;\n flex-direction: row;\n }\n .ec-inlineBtn {\n font-weight: normal;\n }\n & &__detail{\n padding: 0;\n width: 100%;\n @include media_desktop {\n padding: 0 16px;\n width: 66.66666%;\n }\n }\n & &__summary{\n width: 100%;\n .ec-inlineBtn {\n display: inline-block;\n }\n @include media_desktop {\n width: 33.33333%;\n padding: 0 16px;\n .ec-inlineBtn {\n display: none;\n }\n }\n }\n .ec-borderedList {\n margin-bottom: 20px;\n border-top: 1px dotted #ccc;\n @include media_desktop {\n border-top: none;\n }\n }\n\n}\n\n/*\n注文履歴詳細 オーダ情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ オーダ情報](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderInfo\n\nStyleguide 15.2.1\n*/\n.ec-orderOrder{\n margin-bottom: 30px;\n & &__items{\n @include borderBottom;\n @include borderTop;\n }\n}\n\n/*\n注文履歴詳細 お客様情報\n\nマイページ 注文詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ オーダ情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderAccount\n\nStyleguide 15.2.2\n*/\n.ec-orderAccount{\n margin-bottom: 30px;\n p {\n margin-bottom: 0;\n }\n @include clearfix;\n & &__change{\n display: inline-block;\n margin-left: 10px;\n float: right;\n }\n & &__account {\n margin-bottom: 16px;\n }\n\n}\n\n\n/*\n注文詳細 配送情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 配送情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderDelivery\n\nStyleguide 15.2.3\n*/\n.ec-orderDelivery{\n & &__title{\n padding: 16px 0 17px;\n font-weight: bold;\n font-size: 18px;\n position: relative;\n }\n & &__change{\n display: inline-block;\n position: absolute;\n right: 0;\n top:0;\n }\n & &__items{\n @include borderBottom;\n @include borderTop;\n }\n & &__address{\n margin: 10px 0 18px ;\n p{\n margin:0;\n }\n }\n & &__edit{\n }\n\n}\n\n\n/*\n注文履歴詳細 支払情報\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 支払情報(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-orderRole\n .ec-orderPayment\n .ec-rectHeading\n h2 お支払方法\n p 支払方法: 郵便振替\n\nStyleguide 15.2.4\n*/\n.ec-orderPayment{\n\n}\n\n\n/*\n注文履歴詳細 お問い合わせ\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ お問い合わせ(要ログイン → 詳細を見るボタン押下)](http://demo3.ec-cube.net/mypage)\n\nMarkup:\n.ec-orderRole\n .ec-orderConfirm\n .ec-rectHeading\n h2 お問い合わせ\n p 記載なし\n\nStyleguide 15.2.5\n*/\n.ec-orderConfirm{\n margin-bottom: 20px;\n @include media_desktop {\n margin-bottom: 0;\n }\n .ec-input {\n textarea {\n height: 96px;\n }\n }\n\n}\n\n\n/*\nお届け先の複数指定\n\nお届け先の複数指定に関するコンポーネントを定義します。\n\nex [マイページ お届け先の複数指定](http://demo3.ec-cube.net/shopping/shipping_multiple)\n(商品購入画面 → 「お届け先を追加する」を押下)\n\nMarkup:\ninclude /assets/tmpl/elements/15.2.order.pug\n+ec-orderAddAddress\n\nStyleguide 15.2.6\n*/\n.ec-AddAddress {\n padding: 0 10px;\n @include media_desktop {\n margin: 0 10%;\n }\n\n & &__info {\n margin-bottom: 32px;\n text-align: center;\n font-size: 16px;\n }\n & &__add {\n border-top: 1px solid #f4f4f4;\n padding-top: 20px;\n margin-bottom: 20px;\n }\n & &__item {\n display: table;\n padding:16px;\n background: #f4f4f4;\n margin-bottom: 16px;\n }\n & &__itemThumb {\n display: table-cell;\n min-width: 160px;\n width: 20%;\n img {\n width: 100%;\n }\n }\n & &__itemtContent {\n display: table-cell;\n vertical-align: middle;\n padding-left: 16px;\n font-size:16px;\n }\n & &__itemtTitle {\n font-weight: bold;\n margin-bottom: 10px;\n }\n & &__itemtSize {\n margin-bottom: 10px;\n }\n & &__itemtPrice {\n\n }\n & &__itemtNumber {\n\n }\n & &__select {\n margin-bottom: 5px;\n }\n & &__selectAddress {\n display: inline-block;\n label {\n font-size: 16px;\n font-weight: normal;\n }\n select {\n min-width: 100%;\n @include media_desktop {\n min-width: 350px;\n }\n }\n }\n & &__selectNumber {\n display: inline-block;\n margin-left: 30px;\n label {\n font-size: 16px;\n font-weight: normal;\n }\n input {\n display: inline-block;\n margin-left: 10px;\n width: 80px;\n }\n }\n & &__actions {\n .ec-blockBtn--action {\n margin-bottom: 8px;\n }\n }\n & &__new {\n margin-bottom: 20px;\n }\n}\n","@import \"../mixins/media\";\n@import \"../mixins/projects\";\n\n/*\n注文履歴一覧\n\nマイページ 注文履歴部に関する Project コンポーネントを定義します。\n\nex [マイページ 注文履歴一覧](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyRole\n\nStyleguide 16.1\n*/\n.ec-historyRole{\n & &__contents{\n padding-top: 1em;\n padding-bottom: 16px;\n border-top: 1px solid #ccc;\n display: flex;\n flex-direction: column;\n color: #525263;\n @include media_desktop {\n flex-direction: row;\n }\n }\n & &__header{\n width: 100%;\n @include media_desktop {\n width: 33.3333%;\n }\n }\n & &__detail{\n @include borderTop;\n width: 100%;\n\n .ec-imageGrid:nth-of-type(1) {\n border-top: none;\n }\n\n .ec-historyRole__detailTitle {\n margin-bottom: 8px;\n font-size: 1.6rem;\n font-weight: bold;\n }\n\n .ec-historyRole__detailPrice {\n margin-bottom: 8px;\n font-size: 1.6rem;\n font-weight: bold;\n }\n\n @include media_desktop {\n width: 66.6666%;\n border-top: none;\n }\n }\n}\n\n/*\n注文履歴一覧 規格\n\nマイページ 注文履歴内アイテムの規格を定義します。\n\nex [マイページ 注文履歴一覧](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyRole-option\n\nStyleguide 16.1.1\n*/\n\n.ec-historyRole{\n & &__detail {\n .ec-historyRole__detailOption {\n display: inline-block;\n margin-bottom: 8px;\n margin-right: .5rem;\n font-size: 1.6rem;\n }\n .ec-historyRole__detailOption::after {\n display: inline-block;\n padding-left: .5rem;\n content: \"/\";\n font-weight: bold;\n }\n }\n}\n\n/*\n注文履歴一覧ヘッダ\n\n注文履歴一覧で使用するヘッダのコンポーネントを定義します。\n\nex [マイページ 注文履歴一覧ヘッダ](http://demo3.ec-cube.net/mypage)\n(要ログイン)\n\nMarkup:\ninclude /assets/tmpl/elements/16.1.history.pug\n+ec-historyHeader\np hofe\n\nStyleguide 16.1.2\n*/\n\n\n.ec-historyListHeader{\n & &__date{\n font-weight: bold;\n font-size: 16px;\n @include media_desktop {\n font-weight: bold;\n font-size: 20px;\n }\n }\n & &__action{\n margin : 16px 0;\n a {\n font-size: 12px;\n font-weight: normal;\n @include media_desktop {\n font-size: 14px;\n }\n }\n }\n}","@import \"../mixins/projects\";\n@import \"../mixins/media\";\n\n/*\n注文履歴詳細\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ 注文詳細](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailRole\n\nStyleguide 16.2\n*/\n\n\n/*\n注文履歴詳細 メール履歴\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ メール履歴](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailMail\n\nStyleguide 16.2.5\n*/\n.ec-orderMails{\n & &__item{\n padding-bottom: 10px;\n @include borderBottom();\n }\n & &__time{\n margin: 0;\n }\n & &__body{\n display: none;\n }\n}\n\n\n\n\n/*\n注文履歴詳細 メール履歴個別\n\nマイページ 注文履歴詳細部に関する Project コンポーネントを定義します。\n\nex [マイページ メール履歴個別](http://demo3.ec-cube.net/mypage)\n(要ログイン → 詳細を見るボタン押下)\n\nMarkup:\ninclude /assets/tmpl/elements/16.2.historyDetail.pug\n+ec-historyDetailMailHistory\n\nStyleguide 16.2.6\n*/\n.ec-orderMail{\n padding-bottom: 10px;\n @include borderBottom();\n margin-bottom: 16px;\n & &__time{\n margin: 0;\n }\n & &__body{\n display: none;\n }\n & &__time {\n margin-bottom: 4px;\n }\n & &__link {\n a {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer;\n }\n a:hover {\n color: #33A8D0;\n }\n margin-bottom: 4px;\n }\n & &__close{\n a {\n color: #0092C4;\n text-decoration: none;\n cursor: pointer;\n }\n a:hover {\n color: #33A8D0;\n }\n }\n}\n","/*\n住所一覧\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [マイページ内 お届け先編集](http://demo3.ec-cube.net/mypage/delivery)\n\nMarkup:\ninclude /assets/tmpl/elements/17.1.address.pug\n+ec-addressList\n+ec-addressRole\n\nsg-wrapper:\n
\n \n
\n\nStyleguide 17.1\n\n*/\n.ec-addressRole{\n & &__item{\n border-top: 1px dotted #ccc;\n }\n & &__actions{\n margin-top: 32px;\n padding-bottom:20px;\n border-bottom: 1px dotted #ccc;\n }\n}\n.ec-addressList{\n & &__item{\n display: table;\n width: 100%;\n position: relative;\n border-bottom: 1px dotted #ccc;\n }\n & &__remove{\n //display: table-cell;\n vertical-align: middle;\n padding: 16px;\n text-align: center;\n .ec-icon img {\n width: 1em;\n height: 1em;\n }\n }\n & &__address{\n display: table-cell;\n vertical-align: middle;\n padding: 16px;\n margin-right:4em;\n width: 80%;\n }\n & &__action{\n position: relative;\n vertical-align: middle;\n text-align: right;\n top: 27px;\n padding-right: 10px;\n }\n}","@import \"../mixins/media\";\n/*\nパスワードリセット\n\nカート 注文詳細 に関する Project コンポーネントを定義します。\n\nex [パスワードリセット画面](http://demo3.ec-cube.net/forgot)\n\n(カート内に商品がある状態でアクセス)\n\nMarkup:\ninclude /assets/tmpl/elements/18.1.password.pug\n+ec-passwordRole\n\nStyleguide 18.1\n\n*/\n.ec-forgotRole{\n @include container;\n & &__intro {\n font-size: 16px;\n }\n & &__form {\n margin-bottom: 16px;\n }\n\n}","@import \"../mixins/media\";\n/*\n会員登録\n\n新規会員登録 に関する Project コンポーネントを定義します。\n\nex [新規会員登録画面 会員登録](http://demo3.ec-cube.net/entry)\n\nMarkup:\ninclude /assets/tmpl/elements/19.1.register.pug\n+ec-registerRole\n\nStyleguide 19.1\n\n*/\n.ec-registerRole{\n @include container;\n & &__actions {\n padding-top:20px;\n text-align: center;\n @include media_desktop {\n text-align: left;\n }\n p {\n margin-bottom: 16px;\n }\n }\n .ec-blockBtn--action {\n margin-bottom: 16px;\n }\n}\n.ec-registerCompleteRole {\n @include container;\n}","@import \"../mixins/media\";\n/*\nお問い合わせ\n\nお問い合わせ に関する Project コンポーネントを定義します。\n\nex [お問い合わせ](http://demo3.ec-cube.net/contact)\n\nMarkup:\ninclude /assets/tmpl/elements/19.2.contact.pug\n+ec-contactRole\n\nStyleguide 19.2\n\n*/\n.ec-contactRole{\n @include container;\n & &__actions {\n padding-top:20px;\n }\n p {\n margin:16px 0;\n }\n\n}\n.ec-contactConfirmRole {\n @include container;\n & &__actions {\n padding-top:20px;\n }\n .ec-blockBtn--action {\n margin-bottom: 16px;\n }\n}\n.ec-contactCompleteRole {\n @include container;\n}","@import \"../mixins/media\";\n/*\nお客様情報の入力\n\nログインせずゲストとして商品を購入する際の、お客様情報の入力 に関する Project コンポーネントを定義します。\n\nex [カートSTEP2 お客様情報の入力(ゲスト購入)](http://demo3.ec-cube.net/shopping/nonmember)\n\nMarkup:\ninclude /assets/tmpl/elements/19.3.customer.pug\n+ec-customerRole\nhoge\n\nStyleguide 19.3\n\n*/\n.ec-customerRole{\n @include container;\n & &__actions {\n padding-top:20px;\n }\n .ec-blockBtn--action {\n margin-bottom: 10px;\n @include media_desktop {\n margin-bottom: 16px;\n }\n }\n}\n\n.ec-contactConfirmRole {\n @include container;\n & &__actions {\n padding-top:20px;\n }\n .ec-blockBtn--action {\n margin-bottom: 16px;\n }\n}\n.ec-contactCompleteRole {\n @include container;\n}\n","@import \"../mixins/variables\";\n@import \"../mixins/media\";\n@import \"../mixins/animation\";\n/*\n404ページ\n\n404 エラー画面で使用するページコンポーネントです。\n\nex [404エラー画面](http://demo3.ec-cube.net/404)\n\nMarkup:\ninclude /assets/tmpl/elements/20.1.404.pug\n+ec-404Role\n\nStyleguide 20.1\n\n*/\n.ec-404Role{\n @include commonStyle();\n width: 100%;\n height: 100vh;\n background-color: #f2f2f2;\n text-align: center;\n box-sizing: border-box;\n & &__icon{\n img {\n width: 1em;\n height: 1em;\n }\n }\n & &__title{\n font-weight: bold;\n font-size: 25px;\n }\n\n}","@import \"../mixins/media\";\n/*\n退会手続き\n\n退会手続きで使用するページコンポーネントです。\n\nex [退会手続き](http://demo3.ec-cube.net/mypage/withdraw)\n\nMarkup:\ninclude /assets/tmpl/elements/21.1.withdraw.pug\n+ec-withdrawRole\n\nStyleguide 21.1\n\n*/\n.ec-withdrawRole{\n @include container;\n text-align: center;\n padding: 0 16px;\n & &__title{\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px;\n }\n & &__description{\n margin-bottom: 32px;\n font-size: 16px;\n }\n .ec-icon {\n img {\n width: 100px;\n height: 100px;\n }\n }\n}/*\n退会手続き実行確認\n\n退会手続き実行確認で使用するページコンポーネントです。\n\nex [退会手続き 退会手続きへボタン→押下](http://demo3.ec-cube.net/mypage/withdraw)\n\nMarkup:\ninclude /assets/tmpl/elements/21.1.withdraw.pug\n+ec-withdrawConfirm\n\nStyleguide 21.1.2\n\n*/\n.ec-withdrawConfirmRole {\n & &__cancel {\n margin-bottom: 20px;\n }\n & &__title{\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px;\n }\n & &__description{\n margin-bottom: 32px;\n font-size: 16px;\n }\n .ec-icon {\n img {\n width: 100px;\n height: 100px;\n }\n }\n}","@import \"../mixins/media\";\n/*\n会員情報編集完了\n\n会員情報編集完了で使用するページコンポーネントです。\n\nex [会員情報編集完了](http://demo3.ec-cube.net/mypage/change_complete)\n\nMarkup:\ninclude /assets/tmpl/elements/22.1.editComplete.pug\n+ec-userEditCompleteRole\n\nStyleguide 22.1\n\n*/\n.ec-userEditCompleteRole{\n @include container;\n text-align: center;\n padding: 0 16px;\n & &__title{\n margin-bottom: 16px;\n font-weight: bold;\n font-size: 24px;\n @include media_desktop(){\n font-size: 32px;\n }\n }\n & &__description{\n margin-bottom: 32px;\n font-size: 16px;\n }\n}\n"]} \ No newline at end of file diff --git a/html/template/default/assets/css/style.css b/html/template/default/assets/css/style.css index bfe97b1ad9e..f04c60f2fc5 100755 --- a/html/template/default/assets/css/style.css +++ b/html/template/default/assets/css/style.css @@ -1805,8 +1805,6 @@ Styleguide 2.3.1 opacity: 0.8; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; background-color: #9da3a9; } - .ec-blockTopBtn:after { - content: "ページトップへ"; } /** メディアクエリ From e685ebd28bfd77408fe7b1bc5eaa833870b25611 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Thu, 20 Sep 2018 14:02:06 +0900 Subject: [PATCH 073/170] =?UTF-8?q?=E3=83=AC=E3=82=B9=E3=83=9D=E3=83=B3?= =?UTF-8?q?=E3=82=B9=E3=82=92=E5=86=8D=E7=94=9F=E6=88=90=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Http/Authentication/EccubeAuthenticationFailureHandler.php | 2 +- .../Http/Authentication/EccubeAuthenticationSuccessHandler.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php index 8662a386139..d083d94fb23 100644 --- a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php +++ b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php @@ -27,7 +27,7 @@ public function onAuthenticationFailure(Request $request, AuthenticationExceptio $response = parent::onAuthenticationFailure($request, $exception); $location = $response->headers->get('location'); if (null !== $location && preg_match('/^https?:\\\\/i', $location)) { - $response->headers->set('location', $request->getUriForPath('/')); + return $this->httpUtils->createRedirectResponse($request, '/'); } return $response; diff --git a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php index 76c5c68dd9a..aed19822fbf 100644 --- a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php +++ b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php @@ -27,7 +27,7 @@ public function onAuthenticationSuccess(Request $request, TokenInterface $token) $response = parent::onAuthenticationSuccess($request, $token); $location = $response->headers->get('location'); if (null !== $location && preg_match('/^https?:\\\\/i', $location)) { - $response->headers->set('location', $request->getUriForPath('/')); + return $this->httpUtils->createRedirectResponse($request, '/'); } return $response; From 25b0c6d2f93a8f707d6eee07388f8768f94f02d7 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Thu, 20 Sep 2018 14:37:58 +0900 Subject: [PATCH 074/170] =?UTF-8?q?targetUrl=E3=81=A7=E5=88=A4=E5=AE=9A?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Authentication/EccubeAuthenticationFailureHandler.php | 6 +++--- .../Authentication/EccubeAuthenticationSuccessHandler.php | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php index d083d94fb23..ab4c150eeb8 100644 --- a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php +++ b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationFailureHandler.php @@ -25,9 +25,9 @@ class EccubeAuthenticationFailureHandler extends DefaultAuthenticationFailureHan public function onAuthenticationFailure(Request $request, AuthenticationException $exception) { $response = parent::onAuthenticationFailure($request, $exception); - $location = $response->headers->get('location'); - if (null !== $location && preg_match('/^https?:\\\\/i', $location)) { - return $this->httpUtils->createRedirectResponse($request, '/'); + + if (preg_match('/^https?:\\\\/i', $response->getTargetUrl())) { + $response->setTargetUrl($request->getUriForPath('/')); } return $response; diff --git a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php index aed19822fbf..a94bcd0977b 100644 --- a/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php +++ b/src/Eccube/Security/Http/Authentication/EccubeAuthenticationSuccessHandler.php @@ -25,9 +25,9 @@ class EccubeAuthenticationSuccessHandler extends DefaultAuthenticationSuccessHan public function onAuthenticationSuccess(Request $request, TokenInterface $token) { $response = parent::onAuthenticationSuccess($request, $token); - $location = $response->headers->get('location'); - if (null !== $location && preg_match('/^https?:\\\\/i', $location)) { - return $this->httpUtils->createRedirectResponse($request, '/'); + + if (preg_match('/^https?:\\\\/i', $response->getTargetUrl())) { + $response->setTargetUrl($request->getUriForPath('/')); } return $response; From a3f2b7e453858b3fe0ab712a62fae6a5b536a89d Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Thu, 20 Sep 2018 15:21:56 +0900 Subject: [PATCH 075/170] =?UTF-8?q?feat=20og=E3=82=BF=E3=82=B0=E3=81=AE?= =?UTF-8?q?=E4=BE=8B=E3=81=AEog:image=E3=82=92=E7=B5=B6=E5=AF=BE=E3=83=91?= =?UTF-8?q?=E3=82=B9=E3=81=AB=E5=A4=89=E6=9B=B4=E3=80=81og=E3=82=BF?= =?UTF-8?q?=E3=82=B0=E3=81=AE=E4=BE=8B=E3=81=ABproduct:product=5Flink?= =?UTF-8?q?=E3=81=8A=E3=82=88=E3=81=B3product:retailer=5Ftitle=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/locale/messages.ja.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Eccube/Resource/locale/messages.ja.yaml b/src/Eccube/Resource/locale/messages.ja.yaml index ac5fed7554a..b0f6f16fe6c 100644 --- a/src/Eccube/Resource/locale/messages.ja.yaml +++ b/src/Eccube/Resource/locale/messages.ja.yaml @@ -981,11 +981,13 @@ admin.content.page_meta_metatag_placeholder: | 商品詳細ページでの記載例 - + + + admin.content.page_file_name_exists: 同じファイル名のデータが存在しています。別のファイル名を入力してください。 admin.content.block_name: ブロック名 admin.content.block__card_title: ブロック設定 From cecbed9d7d6ecdcec78b5a8b96d6922cb28bf42f Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 20 Sep 2018 15:51:57 +0900 Subject: [PATCH 076/170] =?UTF-8?q?=E8=A8=80=E8=AA=9E=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E3=82=92messages.yaml=E3=81=A7=E7=B5=B1?= =?UTF-8?q?=E4=B8=80=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config/eccube/packages/twig.yaml | 1 + html/template/default/assets/js/lang/ja.js | 3 --- src/Eccube/Resource/locale/messages.ja.yaml | 1 + src/Eccube/Resource/template/admin/default_frame.twig | 1 + src/Eccube/Resource/template/common/lang.twig | 5 +++++ src/Eccube/Resource/template/default/default_frame.twig | 2 +- 6 files changed, 9 insertions(+), 4 deletions(-) delete mode 100644 html/template/default/assets/js/lang/ja.js create mode 100644 src/Eccube/Resource/template/common/lang.twig diff --git a/app/config/eccube/packages/twig.yaml b/app/config/eccube/packages/twig.yaml index edb678491f9..7bd77dab6ea 100644 --- a/app/config/eccube/packages/twig.yaml +++ b/app/config/eccube/packages/twig.yaml @@ -10,6 +10,7 @@ twig: '%eccube_theme_admin_default_dir%': admin '%eccube_theme_user_data_dir%': user_data '%eccube_theme_src_dir%/toolbar': toolbar + '%eccube_theme_src_dir%/common': common debug: '%kernel.debug%' strict_variables: '%kernel.debug%' form_themes: ['bootstrap_4_layout.html.twig'] diff --git a/html/template/default/assets/js/lang/ja.js b/html/template/default/assets/js/lang/ja.js deleted file mode 100644 index 8af4ccc7544..00000000000 --- a/html/template/default/assets/js/lang/ja.js +++ /dev/null @@ -1,3 +0,0 @@ -var eccube_lang = { - "delete_confirm_message":'削除してもよろしいですか?' -} \ No newline at end of file diff --git a/src/Eccube/Resource/locale/messages.ja.yaml b/src/Eccube/Resource/locale/messages.ja.yaml index ac5fed7554a..92760cbee39 100644 --- a/src/Eccube/Resource/locale/messages.ja.yaml +++ b/src/Eccube/Resource/locale/messages.ja.yaml @@ -74,6 +74,7 @@ common.customer_address_count_is_over: お届け先登録の上限の%eccube_del common.search_keyword: キーワードを入力 common.customer_already_exists: このメールアドレスは利用できません common.member_already_exists: 既に利用されているログインIDです +common.delete_confirm: 削除してもよろしいですか? #==================================================================================== # フロント画面 diff --git a/src/Eccube/Resource/template/admin/default_frame.twig b/src/Eccube/Resource/template/admin/default_frame.twig index fffb5ef7924..8cb17092b40 100644 --- a/src/Eccube/Resource/template/admin/default_frame.twig +++ b/src/Eccube/Resource/template/admin/default_frame.twig @@ -75,6 +75,7 @@ file that was distributed with this source code. +{% include('@common/lang.twig') %} {% block javascript %}{% endblock %} {# プラグイン用Snippet #} diff --git a/src/Eccube/Resource/template/common/lang.twig b/src/Eccube/Resource/template/common/lang.twig new file mode 100644 index 00000000000..42782f06671 --- /dev/null +++ b/src/Eccube/Resource/template/common/lang.twig @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/src/Eccube/Resource/template/default/default_frame.twig b/src/Eccube/Resource/template/default/default_frame.twig index 84a062d841d..fceb8b11a8c 100644 --- a/src/Eccube/Resource/template/default/default_frame.twig +++ b/src/Eccube/Resource/template/default/default_frame.twig @@ -142,7 +142,7 @@ file that was distributed with this source code.
- +{% include('@common/lang.twig') %} {% block javascript %}{% endblock %} From ec0f2192068c66854108611c325711660640b5f9 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 20 Sep 2018 16:02:21 +0900 Subject: [PATCH 077/170] =?UTF-8?q?mod=5Fheaders=20=E3=81=8C=E7=84=A1?= =?UTF-8?q?=E5=8A=B9=E3=81=AA=E7=92=B0=E5=A2=83=E3=81=A7=E3=82=A8=E3=83=A9?= =?UTF-8?q?=E3=83=BC=E3=81=AB=E3=81=AA=E3=82=89=E3=81=AA=E3=81=84=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .htaccess | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.htaccess b/.htaccess index 9d4f694cd47..4f633227d7d 100644 --- a/.htaccess +++ b/.htaccess @@ -10,12 +10,14 @@ DirectoryIndex index.php index.html .ht allow from all -# クリックジャッキング対策 -Header always set X-Frame-Options SAMEORIGIN + + # クリックジャッキング対策 + Header always set X-Frame-Options SAMEORIGIN -# XSS対策 -Header set X-XSS-Protection "1; mode=block" -Header set X-Content-Type-Options nosniff + # XSS対策 + Header set X-XSS-Protection "1; mode=block" + Header set X-Content-Type-Options nosniff + #403 Forbidden対応方法 @@ -24,7 +26,7 @@ Header set X-Content-Type-Options nosniff #Options +FollowSymLinks +SymLinksIfOwnerMatch RewriteEngine On - + # Authorization ヘッダが取得できない環境への対応 RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1] From 14972c323a52e0f32cbe033b5541051640fc3dbb Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 20 Sep 2018 16:45:03 +0900 Subject: [PATCH 078/170] Add @deprecated --- src/Eccube/Util/EntityUtil.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Eccube/Util/EntityUtil.php b/src/Eccube/Util/EntityUtil.php index 9cb6d7b64b9..2b96be96d7c 100644 --- a/src/Eccube/Util/EntityUtil.php +++ b/src/Eccube/Util/EntityUtil.php @@ -33,9 +33,12 @@ class EntityUtil * @return bool エンティティが削除済みの場合 true * * @see https://github.com/EC-CUBE/ec-cube/pull/602#issuecomment-125431246 + * + * @deprecated */ public static function isEmpty($entity) { + @trigger_error('The '.__METHOD__.' method is deprecated.', E_USER_DEPRECATED); if ($entity instanceof Proxy) { try { $entity->__load(); @@ -59,9 +62,12 @@ public static function isEmpty($entity) * @return bool * * @see EntityUtil::isEmpty() + * + * @deprecated */ public static function isNotEmpty($entity) { + @trigger_error('The '.__METHOD__.' method is deprecated.', E_USER_DEPRECATED); return !self::isEmpty($entity); } From 921d53eb6fead5722c4b7d2ebd6d04be694a816d Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Thu, 20 Sep 2018 16:46:53 +0900 Subject: [PATCH 079/170] =?UTF-8?q?=E5=95=86=E5=93=81=E4=B8=80=E8=A6=A7?= =?UTF-8?q?=E3=82=92result=20cache=E3=81=99=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config/eccube/packages/eccube.yaml | 2 ++ .../Admin/Product/CsvImportController.php | 4 +++- .../Admin/Product/ProductClassController.php | 11 +++++++++-- .../Controller/Admin/Product/ProductController.php | 13 ++++++++++--- src/Eccube/Controller/ProductController.php | 5 ++++- src/Eccube/Repository/AbstractRepository.php | 2 +- src/Eccube/Repository/ProductRepository.php | 1 + 7 files changed, 30 insertions(+), 8 deletions(-) diff --git a/app/config/eccube/packages/eccube.yaml b/app/config/eccube/packages/eccube.yaml index 0b3aca62236..9eab7f668fa 100644 --- a/app/config/eccube/packages/eccube.yaml +++ b/app/config/eccube/packages/eccube.yaml @@ -119,3 +119,5 @@ parameters: eccube_order_no_format: '' eccube_order_pdf_message_len: 30 eccube_news_start_year: 2000 + eccube_result_cache_lifetime: 3600 # doctrineのresult cacheのlifetime. + eccube_result_cache_lifetime_short: 10 # doctrineのresult cacheのlifetime. 商品一覧画面など長期間キャッシュできない箇所で使用する. diff --git a/src/Eccube/Controller/Admin/Product/CsvImportController.php b/src/Eccube/Controller/Admin/Product/CsvImportController.php index 71779b41707..018dd5628bb 100644 --- a/src/Eccube/Controller/Admin/Product/CsvImportController.php +++ b/src/Eccube/Controller/Admin/Product/CsvImportController.php @@ -138,7 +138,7 @@ public function __construct( * @Route("/%eccube_admin_route%/product/product_csv_upload", name="admin_product_csv_import") * @Template("@admin/Product/csv_product.twig") */ - public function csvProduct(Request $request) + public function csvProduct(Request $request, CacheUtil $cacheUtil) { $form = $this->formFactory->createBuilder(CsvImportType::class)->getForm(); $headers = $this->getProductCsvHeader(); @@ -526,6 +526,8 @@ public function csvProduct(Request $request) log_info('商品CSV登録完了'); $message = 'admin.common.csv_upload_complete'; $this->session->getFlashBag()->add('eccube.admin.success', $message); + + $cacheUtil->clearDoctrineCache(); } } } diff --git a/src/Eccube/Controller/Admin/Product/ProductClassController.php b/src/Eccube/Controller/Admin/Product/ProductClassController.php index 4d1c3433293..68362006c9f 100644 --- a/src/Eccube/Controller/Admin/Product/ProductClassController.php +++ b/src/Eccube/Controller/Admin/Product/ProductClassController.php @@ -26,6 +26,7 @@ use Eccube\Repository\ProductClassRepository; use Eccube\Repository\ProductRepository; use Eccube\Repository\TaxRuleRepository; +use Eccube\Util\CacheUtil; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\HttpFoundation\Request; @@ -85,7 +86,7 @@ public function __construct( * @Route("/%eccube_admin_route%/product/product/class/{id}", requirements={"id" = "\d+"}, name="admin_product_product_class") * @Template("@admin/Product/product_class.twig") */ - public function index(Request $request, $id) + public function index(Request $request, $id, CacheUtil $cacheUtil) { $Product = $this->findProduct($id); if (!$Product) { @@ -126,6 +127,8 @@ public function index(Request $request, $id) $this->addSuccess('admin.common.save_complete', 'admin'); + $cacheUtil->clearDoctrineCache(); + if ($request->get('return_product_list')) { return $this->redirectToRoute('admin_product_product_class', ['id' => $Product->getId(), 'return_product_list' => true]); } @@ -163,6 +166,8 @@ public function index(Request $request, $id) $this->addSuccess('admin.common.save_complete', 'admin'); + $cacheUtil->clearDoctrineCache(); + if ($request->get('return_product_list')) { return $this->redirectToRoute('admin_product_product_class', ['id' => $Product->getId(), 'return_product_list' => true]); } @@ -188,7 +193,7 @@ public function index(Request $request, $id) * * @Route("/%eccube_admin_route%/product/product/class/{id}/clear", requirements={"id" = "\d+"}, name="admin_product_product_class_clear") */ - public function clearProductClasses(Request $request, Product $Product) + public function clearProductClasses(Request $request, Product $Product, CacheUtil $cacheUtil) { if (!$Product->hasProductClass()) { return $this->redirectToRoute('admin_product_product_class', ['id' => $Product->getId()]); @@ -216,6 +221,8 @@ public function clearProductClasses(Request $request, Product $Product) $this->entityManager->flush(); $this->addSuccess('admin.product.reset_complete', 'admin'); + + $cacheUtil->clearDoctrineCache(); } if ($request->get('return_product_list')) { diff --git a/src/Eccube/Controller/Admin/Product/ProductController.php b/src/Eccube/Controller/Admin/Product/ProductController.php index cf37dbfff40..da2ba8da756 100644 --- a/src/Eccube/Controller/Admin/Product/ProductController.php +++ b/src/Eccube/Controller/Admin/Product/ProductController.php @@ -40,6 +40,7 @@ use Eccube\Repository\TagRepository; use Eccube\Repository\TaxRuleRepository; use Eccube\Service\CsvExportService; +use Eccube\Util\CacheUtil; use Eccube\Util\FormUtil; use Knp\Component\Pager\Paginator; use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; @@ -354,7 +355,7 @@ public function addImage(Request $request) * @Route("/%eccube_admin_route%/product/product/{id}/edit", requirements={"id" = "\d+"}, name="admin_product_product_edit") * @Template("@admin/Product/product.twig") */ - public function edit(Request $request, $id = null, RouterInterface $router) + public function edit(Request $request, $id = null, RouterInterface $router, CacheUtil $cacheUtil) { $has_class = false; if (is_null($id)) { @@ -620,6 +621,8 @@ public function edit(Request $request, $id = null, RouterInterface $router) } } + $cacheUtil->clearDoctrineCache(); + return $this->redirectToRoute('admin_product_product_edit', ['id' => $Product->getId()]); } } @@ -668,7 +671,7 @@ public function edit(Request $request, $id = null, RouterInterface $router) /** * @Route("/%eccube_admin_route%/product/product/{id}/delete", requirements={"id" = "\d+"}, name="admin_product_product_delete", methods={"DELETE"}) */ - public function delete(Request $request, $id = null) + public function delete(Request $request, $id = null, CacheUtil $cacheUtil) { $this->isTokenValid(); $session = $request->getSession(); @@ -728,6 +731,9 @@ public function delete(Request $request, $id = null) $success = true; $message = trans('admin.common.delete_complete'); + + $cacheUtil->clearDoctrineCache(); + } catch (ForeignKeyConstraintViolationException $e) { log_info('商品削除エラー', [$id]); $message = trans('admin.common.delete_error_foreign_key', ['%name%' => $Product->getName()]); @@ -1015,7 +1021,7 @@ private function createProductCategory($Product, $Category, $count) * * @return RedirectResponse */ - public function bulkProductStatus(Request $request, ProductStatus $ProductStatus) + public function bulkProductStatus(Request $request, ProductStatus $ProductStatus, CacheUtil $cacheUtil) { $this->isTokenValid(); @@ -1039,6 +1045,7 @@ public function bulkProductStatus(Request $request, ProductStatus $ProductStatus '%status%' => $ProductStatus->getName(), ]); $this->addSuccess($msg, 'admin'); + $cacheUtil->clearDoctrineCache(); } } catch (\Exception $e) { $this->addError($e->getMessage(), 'admin'); diff --git a/src/Eccube/Controller/ProductController.php b/src/Eccube/Controller/ProductController.php index 78d30861c94..127f695a6fd 100644 --- a/src/Eccube/Controller/ProductController.php +++ b/src/Eccube/Controller/ProductController.php @@ -159,9 +159,12 @@ public function index(Request $request, Paginator $paginator) $this->eventDispatcher->dispatch(EccubeEvents::FRONT_PRODUCT_INDEX_SEARCH, $event); $searchData = $event->getArgument('searchData'); + $query = $qb->getQuery() + ->useResultCache(true, $this->eccubeConfig['eccube_result_cache_lifetime_short']); + /** @var SlidingPagination $pagination */ $pagination = $paginator->paginate( - $qb, + $query, !empty($searchData['pageno']) ? $searchData['pageno'] : 1, !empty($searchData['disp_number']) ? $searchData['disp_number']->getId() : $this->productListMaxRepository->findOneBy([], ['sort_no' => 'ASC'])->getId() ); diff --git a/src/Eccube/Repository/AbstractRepository.php b/src/Eccube/Repository/AbstractRepository.php index ff83dfe0826..c13e183b630 100644 --- a/src/Eccube/Repository/AbstractRepository.php +++ b/src/Eccube/Repository/AbstractRepository.php @@ -46,6 +46,6 @@ public function save($entity) protected function getCacheLifetime() { - return 3600; // TODO 設定に切り出すほどでもないので一旦固定で. + return $this->eccubeConfig['eccube_result_cache_lifetime']; } } diff --git a/src/Eccube/Repository/ProductRepository.php b/src/Eccube/Repository/ProductRepository.php index a475830dee2..d90693c68b9 100644 --- a/src/Eccube/Repository/ProductRepository.php +++ b/src/Eccube/Repository/ProductRepository.php @@ -117,6 +117,7 @@ public function findProductsWithSortedClassCategories(array $ids, $indexBy = nul $products = $qb ->getQuery() + ->useResultCache(true, $this->eccubeConfig['eccube_result_cache_lifetime_short']) ->getResult(); return $products; From 3d8e3d49294099b3b86c25a178ef00ef42df1498 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Wed, 19 Sep 2018 20:28:55 +0900 Subject: [PATCH 080/170] =?UTF-8?q?=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=82=A4=E3=83=B3=E3=82=B9=E3=83=88=E3=83=BC=E3=83=AB?= =?UTF-8?q?=E3=82=A8=E3=83=A9=E3=83=BC=E3=81=AE=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=82=B1=E3=83=BC=E3=82=B9=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 4 ++++ codeception/_data/plugins/InstallError.tgz | Bin 0 -> 498 bytes .../Page/Admin/PluginStoreInstallPage.php | 4 ++-- codeception/acceptance/EA10PluginCest.php | 13 +++++++++++++ 4 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 codeception/_data/plugins/InstallError.tgz diff --git a/.travis.yml b/.travis.yml index ec1a5a62c81..7ad5215575c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -224,6 +224,10 @@ jobs: ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" ./codeception.sh EA10PluginCest:test_dependency_plugin_update + - | + ./codeception.sh --reset + psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" + ./codeception.sh EA10PluginCest:test_install_error - | ./codeception.sh --reset psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test', php_path = '$(which php)';" diff --git a/codeception/_data/plugins/InstallError.tgz b/codeception/_data/plugins/InstallError.tgz new file mode 100644 index 0000000000000000000000000000000000000000..5dc3a60931dfcde73936e8867df2ac42536c34cb GIT binary patch literal 498 zcmVLp8Q%^{WF!4B(Jv3Qs6~9rJRitex z!}Or2qG9x`7}mead;L#S zo4EJXP1Jr!q`f$l5{HWAaheyQFBxG$zyt0Oe;LTLG#`eUqZ`j<_|FE3@w|0H& z-QA-r^G`4(SLR>XOVdMmL-nlq&*%S*gHS(@Myh`Y^;NtT*U#1VAh$my%XYLbbpLjj zv9EM#hqX&0E_U(aG*M-&({XhfG0l-_znSL5wC_!OX4>QPS!1ThrukypuieS?tester->click(['css' => '#plugin-list > div.card-body > div:nth-child(2) > div > button.btn.btn-primary']); $this->tester->waitForElementVisible(['id' => 'installBtn']); $this->tester->click(['id' => 'installBtn']); $this->tester->waitForElementVisible(['css' => '#installModal > div > div > div.modal-footer > a'], 60); - $this->tester->see('インストールが完了しました。', ['css' => '#installModal > div > div > div.modal-body > p']); + $this->tester->see($message, ['css' => '#installModal > div > div > div.modal-body > p']); $this->tester->click(['css' => '#installModal > div > div > div.modal-footer > a']); return PluginManagePage::at($this->tester); diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index cfead83e8b7..704af5b7296 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -391,6 +391,19 @@ public function test_dependency_plugin_update(\AcceptanceTester $I) $Horizon->検証(); } + public function test_install_error(\AcceptanceTester $I) + { + $this->publishPlugin('InstallError.tgz'); + $Horizon = Horizon_Store::start($I); + + PluginSearchPage::go($I) + ->入手する('InstallError') + ->インストール('システムエラーが発生しました。'); + + // エラー後に他のプラグインがインストールできる + $Horizon->インストール(); + } + private function publishPlugin($fileName) { copy(codecept_data_dir().'/'.'plugins/'.$fileName, codecept_root_dir().'/repos/'.$fileName); From 535c4849e6e0427e6616a3efd854984dbe317857 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Thu, 20 Sep 2018 18:03:50 +0900 Subject: [PATCH 081/170] =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=94=BB=E9=9D=A2?= =?UTF-8?q?=E3=81=AE=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config/eccube/packages/security.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/config/eccube/packages/security.yaml b/app/config/eccube/packages/security.yaml index 5345b2a6ddc..efb8df1e3cb 100644 --- a/app/config/eccube/packages/security.yaml +++ b/app/config/eccube/packages/security.yaml @@ -32,6 +32,8 @@ security: username_parameter: 'login_id' password_parameter: 'password' use_forward: true + success_handler: eccube.security.success_handler + failure_handler: eccube.security.failure_handler logout: path: admin_logout target: admin_login From a55a35a67f5c2acadf442108a3410acbc27daeeb Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Thu, 20 Sep 2018 18:13:24 +0900 Subject: [PATCH 082/170] =?UTF-8?q?yaml=E3=81=AE=E3=83=A1=E3=83=83?= =?UTF-8?q?=E3=82=BB=E3=83=BC=E3=82=B8ID=E3=81=A8=E5=90=88=E3=82=8F?= =?UTF-8?q?=E3=81=9B=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/template/default/assets/js/function.js | 2 +- src/Eccube/Resource/template/common/lang.twig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/html/template/default/assets/js/function.js b/html/template/default/assets/js/function.js index 2948c2aac40..1ff310f2ae0 100644 --- a/html/template/default/assets/js/function.js +++ b/html/template/default/assets/js/function.js @@ -197,7 +197,7 @@ $(function() { var $this = $(this); var data = $this.data(); if (data.confirm != false) { - if (!confirm(data.message ? data.message : eccube_lang.delete_confirm_message )) { + if (!confirm(data.message ? data.message : eccube_lang['common.delete_confirm'] )) { return false; } } diff --git a/src/Eccube/Resource/template/common/lang.twig b/src/Eccube/Resource/template/common/lang.twig index 42782f06671..ca3b737a2bd 100644 --- a/src/Eccube/Resource/template/common/lang.twig +++ b/src/Eccube/Resource/template/common/lang.twig @@ -1,5 +1,5 @@ \ No newline at end of file From c69f87454c011d892b8588b6b2e22be4b2cb84d9 Mon Sep 17 00:00:00 2001 From: ryo-endo Date: Fri, 21 Sep 2018 15:38:38 +0900 Subject: [PATCH 083/170] =?UTF-8?q?=E3=82=B5=E3=83=B3=E3=83=97=E3=83=AB?= =?UTF-8?q?=E7=94=BB=E5=83=8F=E3=81=AE=E5=B7=AE=E3=81=97=E6=9B=BF=E3=81=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../default/assets/img/top/img_bnr02.jpg | Bin 41659 -> 145814 bytes .../default/assets/img/top/img_hero_pc03.jpg | Bin 177588 -> 763489 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/html/template/default/assets/img/top/img_bnr02.jpg b/html/template/default/assets/img/top/img_bnr02.jpg index 096d3e19244be72ddef9cfd50229367cb40609b0..0ba8f62143f54bc12be454b4c54cd12e0d83451c 100755 GIT binary patch literal 145814 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 z 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 literal 41659 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 I^LP2b0OB4He*gdg diff --git a/html/template/default/assets/img/top/img_hero_pc03.jpg b/html/template/default/assets/img/top/img_hero_pc03.jpg index 540e63e903cd75fc38a281bf9e6927715ce5a430..d10c257a381efd949ffbbd017af3d8e8bd5bb232 100755 GIT binary patch literal 763489 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 z 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

O)WHL@Cm^)YpcSp19#aR*uhFNu66 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%0A9)LkJUOWw zlECaO#8f8*NMzzje!_ptjVC&CU6e#ivl2xwpKL$Isbf+K_@$5~6C``(NvRN{Fu3=8 z?~5f$IVsk{JmC`~!f%4oQt(%O7eFnjE`CZ5?6kkRQLBln==qEz_NSh)t}7>>-m=LF zgPhORMrk0YMoC7I14%xLrNxM&Pdv75@m%}7mhbtte9p<5HN%qFbjQg}Dfb6k679C! zwsrKN>mo6YLjOKd2cJ9!nmf5YU(tAAcy*!M>=v6;p!moKG2JRSOEcg1Ql}Ck^Cwp`+IZlkg6C}Z%1cC2qNXO#Zi=ORgdI5uJ z-}paUd$`*0;h&@9W}cQPN^t(!tLvpby?EQN<-?Vr1{M)GFSNT0)=HGnS{UIF@ZXUu zMb4j23?y?7=nwC>Ideu)Y9Kp8gjX8~UfRV?B;Z_3qLVNjVAYQANoln31X1jM8)s_q zjKq*H;>y5+Xh0CI8A+}bG=)N6J$vS>hM(tiRRMCnp5G5GDTu<9O=^8W_PNHy%1T8{ z=M6LxQ7y%8^2ci?5C33M%4!aF?)lG*FvgT-}$?*0?P6ANRRbN%Y?1b z8y}0#``$}|krWgGcJoO|pPFhBViyY;W0CI5d-6y*u^-CJ99!+WQafktvp-&#_vwD* zR!-Swh!9KAWd(GBSB4^*(WZr0)Z_mV1ydSa8S199-;f6sxOi5pe{aq2zt(8zjBJmK zr%OgIpQujjIFTqEMw5MwIfkSDoLBx&3*lh3{i3)6UALi>WjwZJ@rA~|^mLtS$C!nL zJGFJ&VXB@?`p_wkoKSlw7RlaAM4|1SXw^9zz*h6T@Aj?t^M0U1wei>Wf9b0zWpUt^ zQ=CIZ{hN-~sfrbIO1lBU`{ulEnHbc4{DZf`&(O-vmLK~+-|He;#klN=*s<+yW(Q3B z)!(B>8NRSAwZE$h1NBrv@5C~FIw*eRCn^#?r$NcEw_z$b-N3pAvM zFgu_+9X7p1-}`)kV>hE9PG%i>iLcMb5QQnmgY*- zr4B%)&{|~>U5nL@3xJO<6#~m-#Ez=f+_68!sB(yPHZ$Xe6X(D&+vxOz-T)^@NS!Hl za9A{ALB}xnpf9qDV3IKiVtLJL=D?>SwZO!ql)~-BaOBMVf#W=VuIScSP7)}R5|j?zwHuBnABL8 zfK{(>2tFhF2`G7Jp9xtv89ouWZ zj*D$zLR8t5-ZK-vm34i9^-IBV66cm9PAuQ=SH!U7=H_Sjr@%j_12AKfyyzJRpcNC8 zMzO*k>&_`VFoNUm*io{|@UE{ix4^7}J{M}IiNKT))PBPAR(09@?#OZ=>Y3ae$ZvTv z{4SOVEdb2I2(9?k3!}5(o`)rP=e4iuTBYr&hKS@n^fDut4FVBwtK`8d+7-UImgqKS zlz-^Dw~ehnl2R_*_AS5Yq183#O)pYdHb%y0K2A=_XD$<~qo`mbCG6pc0C+*^@K6Wp` zVy8hzVxU@;XVH-%*bdECeyDP=�Fr@RU)Z+wyCJ!tX(M$FqgdSFzS)FOQKvl>`co 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ℑh5+icPL{dmpXSjqVZ_*AOomg;%ZpR=D}Dmzq;ANjiU^$FTDe<#^Id z6?}oNT7}{5p-ko*jFtg^Cr=@^br6MWf6$@}z_w2}`%Q%$!N2L+T2;`>Qb$7a_Oo|H z*M*1Di!Ge52_WuKAyL>R``f1+eHb~R0NEsIPhP%+5d2Nd*p;Q$xr?T>q%XoqH<_)G zSR(15fD4ScNA>%jF%f>fL@PU8(-sl;c;{!j#*Wi-44t#xd|q(r8qU|E64_j-3VP|P z1rjUHGD}wcC4}vNRGiQDfw;ze6)jww5gs-fkKqUzhSCX!T^y!^htHMP!+Z&B9TU{X zmu$V058&$!x(8}7)c);j6;ykBY~*erU=eb^u*AN%`#$$ZOd4g8Nqkjhqu?9<}_a}Q6AL6#9vKs z2QF3{#ErhU>?G{0kM~+N&9-2TNKtZjWaPwc&w`$UX??;iVS|cp18Tcq9wOZ^!9MC^#SUlu>|yL zv>&aY??`Ur;tQMrcP~pX)JC+_L4yacQUTJD8RS2IN1Jx=3W*589vvoWg~h9@;mdc7 zBZLX~OPOOAw)c*ncM+-rQim%>!o+1Dxe}S(e*l?Hl>|pdFCNtSx@>z``qtS~u3XSU{ zG}`R2pe)QdHL8>SK=ty@r#Y}v5J*-QGT~fUn3*?)5W^Eqwc)pq2x3_-bqT#*iVzbfl4m-etJBGBbeay zo0O@J>_8MKSSpJUg;5P`puC?j6jp!30kv5W+-13@UAxFyf>~Rvtu!_WMbHha*V84Y zr#x#cN-G*DvPt28Dyw7E^>@gehm-M<<4)av;x3Vm&p+I8Qu$=bWj-40YHZ$Q#;cLR zdF7B<{cAPh*1#^XI4vS2w5X6?xX0M34?*5*{8Zjm%UxF6-tUu*=!m6nZ{)oVQ6c+78cBCy?umbj?1<$ylu>tIQ<;BB--w0jXu2m()Og^V{z96OK_ztHOeb!M} z-)AvN_~(jnU4=plWn4C&Zive))QOXAr2Nb1N@{v9P2?Eydpx~C4QFxcqdrwXxuwrr zJ{gyb<4KJ5N2>4fvQ3cwHFh^WWzJ@KwWFE&Mj)uKuFGHW!K-pT``EOkwF-S!#k4}S z{tGwPwA|*$fCj_%(f(j>`kTqGpjkmK!9N_p3mIC7X-u+%$v3HLiR)C$Ee-1}$X|SY ztHIfJ;EP&JN5oc^pJfldA$J0cGq$S-K}dfZyT_NTuxo?V8v=4qIv7Jr8sU?t3A`yB z;zn!rujtlzg$en63h($lu)!QmZ+@!GW4nSNBmue38>cnVfomUr;oxtmp z2lwLNkXC@oZL?HL(n^>7D5os8e+;?EUGoE79)M)c?*1Sfu@qHP#W?4%?e5ZM&Q;g6K*L*t0sQEUZ5W_YIj)vbWtFtY#5adGQQ-jaXSz;6v}#Lfz}>MHX!C!#y3i2@GmP{(oAS;* zV+Hbgvg%m!&|v=7D{)ra`QwNM{m|$8L^oY#==p*lsMZDyLc1(CTu(&Twy-c+h&%js zrnJDf59h^!vX-RA#4V_(^h*b*=$6%Ry6u0j<}*2s&%BF6j|)uygyL46 zc7dnCh-^-(>GM({v*=hLtav~E#6rD7UZBb#3R&&#2blZ8v4ux}0PLbg6=l zuzJpxhZP%C0 zuVl`lAU^6m`sW08m`tq!%bn~Ab0HuTTM+wt!>{4EN_h6OpI;c6Ry;t7uJh4GeqK)S zwEu^)Nqy7h>klY@EzQ~DP)zV*wmr&356^~G|A4Fvf8tjnlslS|xm$XAQtloqEqzG2 ziSF-eQ?T7gNg`P)!-Y=eX~F-Ks8SKPE5%pT_D7aXFR$%L+ijQtjTNs_GzhGuo%Z=y z0{9sLA(<14U8l|PE};pjKE;1*g732}JvKK+0i)o?hvurq*N)xcLq^qI8P>#mw z#bi>}NHBI%(s|}ozOJCZOYwXHM|W94-mOF3ORdpARP%`v|BN?SoSpLyU+18yNR7*_ zo=U74fS)@*r-m}5lRu@4NsT7b7Ai`YI6$Y1q#QmAfWp04$&)PXrBqx4pEyKUTEAtA zR=3muIAxwfk_PAihLpMHqa|@(DOzmMH2uin8v(I1jK_}EmM`Q9i*`TK>4HaMWLFP z@48l^ELB~V!@Brt5Hr5dlgM9Ep_GKFM`l}_i4m9|joALZLSu;U0=)DueQN_gnn`9c zFu8@r@_~9hKf_UOqSxcHf|U+Np3+MzX;fu^hQu~Zn+J`X%1Q(*!#I^IIm;)~b^)!W z@;u|)>hal;?9{%NPJ2GJfifE+c6>zqM*6SKo2Il8;OZtOgextjS=^GA2mm&RfuiPR zH~OMhbBOOLv6BfRGBJdcGI`W!Wx&qt~=i${;_iQF~vBG zf_T?wa^0z~R7raxk`b9({e@Lr0$iSiuR5ao*HDFj&cMOr!&I97(2(OG>3`t-9k5>J z@y=C>&#bO8O ztrLFyo}aI%hA+)6_SEO^8Pi4<9{xpaD9E3nLbIqdqUWPL{w*MYjNY2hS9xOn|n*6 zxa(|NYM&yLB$?>%8DkB59!Spg3+dg+h+6I6#B|r|K_MW_AgA!OyN<#=8W~cLq+5N} z{J|Xn*cWst>6mCBMpWYaQ?mYOy-mB8b#sNX@;tYtm~5ykMtM&xYwt8LmKc_2NV1jx z2@g-U7z z*MQgq-7x$|Qzu1iIz51RGFk ze{`#^(S0SGj0&tO)4-#T%zF53MG4$e?5_G;i1cvm(C({CmsnwVqQfOyUdADTttN9x zRf!rku;etHuqrYy=^1Cr#O#>mjNsYQpkOD)S)J?`#h&a4zwB;`RdZzFDcbY$0&{h$ z{2UYG)a9vY;B*2hO>>t#hgiKj{7V0`shlM3ku=3NN#F8<2xrCbo_k@qv(b{e4;5DvDV zbKp@W)b@M$zKUq~9Dc9W03l!YUM{yW9z!}st)EsrdKGZ7hYCp4ut(i^({@{iw7*NO zfoRglYOzWnhq^1-)^6`akAz9Lzz|u=m@&a`J^;t&OLyhN+bpMs_Zyo-WfxM2?l0_I z)9nJEt$v@4`S;eIyj05)?Kqp8Br}FQ5w-nw=tb+tl$(!vo(CWe=vz|p!qKzC>g{iZ z=~6h1%Z+0aL*rxEOiqb{r^(K4!@QKK>cE=kkmF&(3aau?E(FSVatC73J#&Mp0*uvA z490^LS{k5zaMfxV-%EGsGeG;94@HEK$SNvCxsabpRtX4Y-?m3u7EEjSHih6aq7LZJ zfVx~xT_JH0_dOVmaWwb@Qt|M7Z~^dJ~jQOvY6(_-7Nzq$AvH^^0DOQB zyLQcW@Kt>^PxdbuCvT1SdB!c5zS3GR7H&N`)zhI=;5@+92qeP$CcRd|O%hnW=|MJL zLnE;DSp0a}OTJDYcGux&ay)u6PM188tEk?JXHG<1_+e`Y<_irHO~~)rnRoUWK`ddV8msQgLt^ACG5ft6vdTZaTCA)b0Tbssx-2l$OFyiu`Td4Nw#$ zsj~GT1L(Oy3Wb^62)=%QluDER3DaoZ;{81UY)!WJHP}oy9i9x3{^G?!_5{mr{=SMg zXqhy8aAZzNO{#y3`ooF?0#fr9g19M}em0S!Z1b`k0}XHY)3sjSHf7nR3cB6ou(8J! z5-0~@bdqDR>*LRn63MOPM-2MW{b?AYtAMk|8RA`rpZBy+nK2sP|JK+{Nh={T6XP#) zXPxz|#d9BGB2ADG-c7}>gLM`U1Q=Z{b(2>q2kg0{iuO~>PXd+>knbKo{$nPkYpIzFXOYR@>|}7Lt`xyK!Ge9aeWv%Q;Ch zajc=VrMn0?KtNkhyB=6jBT3Msj*MBctG3KpLm7r}l&+U-E%xlU)_ZN@KoOO#XpP<*V}9g zxw;w09mem1*Ae>%@EQCTVlE#DKa!GWl?HGGeQ()8pWvsdVd?p7v1qOr&1_w01Ee{I zrB+i>lDI!+2JELFG}=)_V45!d+G;kdn{ALMhH|NzGX#TV3O&v@Pezl{bUM#*pRCdCK=}7P1>n{v$U=cSEF{pdeMO6^ zJzg@~1ovQ6;bA82(7&PuRi&WI9fFmW^^R}Ff_A>aRchN*-9ubvXs5SCf)%Zau_ROI z>`NcyLE9N*h_T(RFIxY{ye6F<89#dTsx_#uT__gx;d=s&Wmi`KUOzQ<%$T`>oxto& z905h#eu6HeU?bmZChm@*y~JgH zlsne>&DD&IFF~q_0O_=`f_@-=Tk7qbS!K0-Ujo@|PTBE8cwoaphzvr|``3-6{Xj0| z&0(0Bm~e9B5vZdODlhL;0k8$0OShqEoY6>hr z;(2k8?rFr|JO3~yeBveOlzG?TUPYf3 zPvK;2_UiL??y)DLUkSCA#|dExPx0=;)8)ttTosEzw#R8&(McUF`!7q1uJPITcMewk zTg*F(@7S<%s7ylXYnP5RDhsHKe(q5>Oc)&{E~A>3Z8& z@V{BY|I^N>Oe#zIn&PB+`<yj!sPIzt08ssmRUcxYa9oex zssNI_(gLZ%b+G@RBmZ2xhUm07Gu|4pdNvphSRT_gdjiVR;&sCpl0PnaI&j(hkwd_6}BCU;pT0{%2a-Z=xpVBc`~a4~eCW zgCg8$xNchuTVi74Xrr`?-rz#s?RBamS}D3?0?JpmEyE%)!sU$tXT12Z7u)*!RgY{6V zdenD|5fkt@f6L6DoW~N)#YK~|MW8&(bH#F378Ilqwt3t7sCP$~C1tTP>zyQ7Ug@iV zV+>A}_)%~SrtaNDw2rN`q$RJK3Nc{y;+^H8mzRuCeFxVZ%l33HxS1m96qW(!KFcip zNs8v=%cxm8qEszl&b&o_Ad{L^kJ zX~bAM?LOoHbS`^IX8b@|Qj*dA1U$LZZ`8>jGqFmC>{KJo z%_Z!N5a`=JLIPO>q%8&^vL^n6Oaci9oXh&nh?neNYSh26z<7AhZ7r(mvi^gqrtxK9wnHX*O%SJ4-Yg z^>X)&VyyDYgc~7vT)kIhNhRYm^%*3QR&&c>AT$swbe0E$#M;8UjoKob@rFwu+fD_s z<0V}Sd2X;6wRP?K@_Fkh&@xW-_(S99v+7s~0?=re%JlXzSTdmrg-}al>@B--2`ioC zsAD)5>Wsv?dI`fgLib;Lh}{cn{(+h9XIh_%#nDU88CzJPAJpO`&_lT)?ZqI8UW;sF z63sb&x4tHp#*sVUwxCNyoeeq<9|G;?^@o$o#=qobtC|n#TOJ+qFNnT>Akw66 zNJGXnVE>0D@II;gYZIQ+HYX+gp>mW|X)gl7=HebNdF@&?qsM9vV2^|PWq5> z>D1f>8~5`qt!kPobpnp7DC2g2+J2=!>!!nv?^PFX=lYNUvbniQRtmX}M3#Q6qKha| z;wN23W(Pb(uNI~g`)Mgs-caua3biwtAbU4GIBnd^;rh!>g|k7k9}i9DQSSjvz}iS5 zR^0dnU@#=Qv969?h0hkV?~Zf`u&~Pr2wQff?7S$mc*|)<5$WexJ<*!F^|LN7{Zq#U zu~AP<=Olt#Z9zBq`|-UfY*XaooLs+u|LaC9`M8p`_x8$Qx0-x1M{x;n-H*V}&AV}` zEYqI?^Yh9qzT112*%C<&X7=}*kb2_q)zmzb9Qx-L60RAhp(gkuU4>XF`+|pRE#bc{ zY!SHFF8Ve%=nZiVu538{w!&wogl=H5vPj8z;UA;WqKEQId^kjvJDR?{kSaE%s=fH# zWO{L~-kIy6ct?!qU^j%8>77dbVK$N$8um)jYSGnjb`-w)P20A$S>xj7CoB^_(PE-m zL+`%p?a7lnuLPVA{fsV^)S7&=-LO#}kHChg%(;=_9f@)U${bIcdP1VBac}<>S$1^p z+QU!7)mIB=bS;b$ucqr=Yd65ADJ`=j#$JYnd^qC+K6M@+kKiH-wRU--8OS-QUEpXy zfN-0Xe|zUAD}O}|ltPbtrR|H<{%k1-KJAR%S4wx1TR#&V!7Rcq)Em>0?h-b&vo_kg zwSWDhU@4W$hZe3d4*%IaN<2Gji02#sZHKLGAhbT`uq+te-a1!gi}+2`*6hSvgCOT~164x02k z^jnHsvFHrxeFrQt@y!=#Inh4hVX*291*4rh+r6ab{movn@u5F*LUR+~NJKzpixl{g z?u!Y-u5)y*9q+bc8vC;aFEKgU%D`e^OwmsnKW7L^y!&=MtRC{igXMwmjk|4wdj|!@ z6sOPOOqc#0+)&3+LdP9>xqBsmv*gpv8OB=~=4M&M{%k(tfb%ir1T-JA1_*0AURdrn zKIEy@Ssj3~i^Ifj*fq}ZwBb2E4O>m(JMq7lUM{B+yr}PH#S`w7oDcD5*}FlBNZe3b z3hV!Bk?Kn7-loZ+Y1LQRni|n0Ais}%|6umXWgXkKyzI`zf?MfrC{c&n9ts4`jl{1q#Yg87uIJ zP9WFL*>Z=r+Tn|#JcPNsfeFUdi|8l53D&j{%xVFq_TQtF68EZ3B`3k%Ql4n0_tE*9ryF z`((!5gvLgv3VNXC`M0|Z-7~ws*74-~bdA0nxLxPa{#|D<{!ZxvIXwY&{#Juh&hqaFY~aS9RDqUeFS8fkDeyyAFLfD(%#ozttL_a zO)f67+uFsatLvw9OYskq#_YtXV3}c<#Rt&}y}zxJPhyVD+s-v)eEV8KMFQnY*JHl| zUpSnt`j6r>yVz@N7k@Y33$+(a(~mo*5{(vog6d$KXm@gi4OXm3l{L-laAtb+GKKV_`qenujb zFCWTILrGeDB^UoG?&jCrQv6FQ^L0fcC;1m<1#wo!_tEcTXB17VA0NSyfqE@w-(~~r z&${a!#vkL@(Uu$crSnGq%yk~ftLkzH{P|N>>n6)^?E!Xk@8*-<1S3D=GDm6$1eHLi z?hBI_uT#ylRzcsC>C@s)@o-jZ_U(5Lqxg#gsLHu~4$cF1%&gfdYS!tvTi$#$=t-O= zi7(0Zo;e`lzV}33U@`ESm663lk4(AV|7Xf1~)BBl)LdQ&|-ydi=V!jd1rt05;rq>Dn=t7Mv5cnTq#LM-T(kqDq9Js+BNYpR+U=nst1$Uk-!#o1Dc5_!9w;U;f;u zr|ji=8MF?N8rE}s&FU!_JaF9T0$sW~*`6)MS&qSxqhm=Qau`Tfb6+eYZXnPQA1H;# z8L@olHUAZfMs{W+lVuNl6~kF|^}j48%vq_I^f~jVi|@K@9UlzZHt;;!AW~`x6~GrA z69hFVLoS~@bDaxreWDmFXRGw&BPzF-IcaPAHCFE&<@$h`NHCYn{-+S*5h3je4nmRf z?wE_J!t_0dXRdm;EZrmz=&r@+ZwVP!mQrWh1{tkJ-js}(a1AI+<)`Jlnc)b`bCD6v zux33soGf2@tE+ZTfXL4t@BQ~&)EbB=TVS?>XKyfJB}(4th86^ghGH`6g@sbkE4(r{ zDh$Dg$q#ro6Cjoa%2?c=ooZoyF6Qs8asKf2a$kX_&wv#lEy7`)aU;NCpWY`{$~mw6L5+<4*10ekP&< zTidpNW2ZMO(O{c6gAP+OijIBE@RI^ZScIOwzZm*3S0L_{{r{-$bqV5p;qAZ{H`-o` zJ0NM>O=e`_$cSl%1q-& z!SFuV9bIEmPk^FYOFnUMmO!4tU?fF&`wL!c%hy3WSNrMfUlm+zC^@}dBxJ4NMQs4N zr$|W3=Ew*4koMr53XxAq?g>5`w#x%GQO4|(+eL>PsvcyhaIsLr*+Nw!buPjlYoh)E z4z`4$eSFa^E}_CuF9m&g*Q(Q$u>g)k$M)$2iFc^1#K)o^bB@_SRJj+rzNkpzA5d0Z zbF%0~9!D;f<81z8{3?>P-^b$rU_OD_201b3G6XQjsXtzjIqoleC{2#FB8&bA3#kTi zRP&Z5t%~b1uu@?fl*!zSQCI0r)I~<4zm4uy7-fg{u{iGcqYlquLI@Pw$FCRm$~11XUBIWJ;kmD(WeC(MYS> zvp#g$pcAO0boV|Kq{g!>O68(QX@UT>A_SUzV?B3#z~Wp-X;1PJdP#lyoy*`3Xv$K^ zkNK|L>Ou&*rNw|4lnFZP*nuFCMEjlP+^6p4ka2%?IrZH*!h}gUqx|l-fP0t|@#=Jt z?fg_*o8{nv{2w#JzYL=DunD zEZ~kb<4cp3bra=qjj^M2QNc6FL8S zU#Z^%meKZBau7_d1JibfNrlfQBS1X~kp9|#U34e2@66Xrz`UUTY1VXHU0A4$e5KS9 zccHuoa9h#I;oKfm9{z2C?huJEfvpK<;g{1-5=Uh97DG7#uWFS_ovgMG7^SgsPwy~C zX*x0CvxWa|26%=*VeEjY@CB-lx64g7QxWLpR#ISrYW(6*T1ALqcZZ&=`g@pD&;yGL zrdGWR2?-Eqe?ZI2{WVpG#qJu)7U-Z7+R5`pGKETN?oR&G;bSc_eZS5~%CLMee6$B2 zv-bu`rg0wr8y>;!4Wtfj{Gc3!EnIEckPJ-Z_od2q8?}{i!bq#kHvbK%s`;X$xBCyK=gwQ6lO9n$Kr6=IZJaF}&q;bYJ$6{Q zfSNI-N9_h{NU2v5b{4wr2$fiq9jFWmMoRyYMC)zbWU2I=DCYa{Z zSBl-MGNY0)xc)sHGrUbKeT4k#9`Ci^v=&nM9 z?$1*!DU1>G9j;oj`_e)gt6hB}(JoiF!?^mqU5}eut&dnRm~(=sI!YXDj(gV#14)0yCLE6#Q5*&w z#pRP!R6!pob$O4bE1YO?KKK&kyL*K46T2n|59nZoINW8W-d4VrJ(_95{WbVI)5L0y z-cENmb~W9qA266SWu?9}z9H~>o6ZHQ;j3<q-Ck`pRdUO1E`a}pNX>V6AYGE(b4cg#`CR_e7bsWP_}=);wl!ShGVCBos6&=^;!4Gsfs0$*DTx)mEasgA3Yy! z+0>F(*m3Zp2cP(A_1e27KOT_2RwBR!lMiqA@KjTqj{0n{97kmkNA=pB{2?(f7uYrn z*i&$F@Z;KSZ(1l7mHfsum$taN3G9>bhX38mKXjpY^V{U%6WLkhiq4qVgvGUh7MOq4 zJTF)6V1wfgnS1>=&7JBoi$5OFQm+cCM)a-8>@8|R{b1UfQS>^*JKRdh)r14_A++rS z`RrHtAP($@R6b_`99NxzDK_GmDfim4?+R6X(S3Yg2g1nduu@F`kJ}2=W{(qCLL`## zR^JuTauJm|ya0vbKcq?B*ZUjG={?l`YeA-|E&ehqS%t$xV_??xVa`6o+WT3_)<$u? zVn#MPdzCt(l~Vp#CfZ*scOYP+LPNeDP0|-tnE_TA^z*H{#YL;m_-F5F!IVVklh>R% z)ICILv`rWJBFCLdy~g zqZ&}>G08tC>>ch=yffa@@UgE5lf+J7A?74tZ`s*s0cl}ED+>~sW0KgN%@r0 zkQdFsphFAPCDvSjLo`~H@STKsp59?KIxKtU*=ixtz_|JSiXi#GGPvH#RW~L0IZNF* zLeQP}J&)AaW%ltp3vLUI5;4@Q-n_sf$ljK(hL* zPoq4Pg%JH!SpcVytT$&uLV|L_wj}}tKgl_oQ&SojNYeo&ejoh)!Qk1?%rbRR0lqg8 zu~8oXEtqvQVbqKWkVL48k}D&?H|wB5!fA1y0Pn*1xnB);i!U~#F1N@120sWX41+C z6G@fnNs;@%_N$c8!O+8Y6H%||6uBJpA8in zmm4Ok|G|{}gCSU~?1ULxxw-sOFiUQqYS`?QC>%*&T{qBDE`o1dX;kAyCg=92KVYVY*hx zkclUZ=EtIlNO?@{1=H%PoI}6(2S(ZaqmsVR73g3v@Z1hCCKg|8XP8f?fY|zlAvVp* z-r~rwMjGhV@<9;DcQQMl>V==n*WrB616#b(%wnB0l9QPLzyRyHzr~~Fbg4{f@JJ>t z0WxBq%qV!~7jq?ZkOwn&8S8umD5vTWq6HQ8U>)jV!w6M?$-hjjag)z_eay!SL0coQC)a%m~70^=d9=O41a>-wZrW`BSj> zXB(b&%FVU9_#X^vugo=)ytF-0L>Zn6Rb?SKCQK5VcL-nj2n$_9Ib45`#8t92%b?-$^9~V)q)Ze<@8pW?4(glF#6OlQ`v93Dh=Z z`ogFgzn~`rH3h9c)^F7LAf=a0x01uhO*P64r!2YwJ@8N5b8G65yEO^R;X0CWGnsSo zGSN$ub9EaTXgpg`$O$O+%5GUdp=FwV#rrHHWedn3&`1Ss!(tX;7CmBLQJ^-Jz_KKh zjuq%sAN4^mSObV44ydshC1NRp?a?6X1Y6({R z{RS_dih;ShVhwqI+=vD^LUy7mp$g53mT=E$!^%PmbhGviUq+@uMU;=^VVm>4B@5Vk z{$&o9Q76yTSF!%V+^-u|{!KG0f8lCf19(>KlE+_D{GvVY?na)*8KTb`ZFIEHmAW6_ zJ{icf64`rsgXu&%WhZ)u*kv|WUW2Q4g3MG^CDfVT*_=K&n8lyA>apL$+W49-qqk^9 zKKE7YK{76)<7Hy%>4ZBtW~(%dKWfSQBgwZq2DY32-WZLnEE=?X#!=Az;`>IpTfchx z?AfRB3(L8_c>a@WQTuKQcO_idEqSP1k0%F%f@9O7x>L%6 zJ1wQo9et^0ITij2i!72c(4$6C_jV#wkoV@>gpY^#Xg`X1Ly9%*@TpE?Y%hg_|IW`A z$IwVobT5Y})l1Cnl@_42&-xq+GY7qO>49AT+5s`(PXzRibD zdZIc`h4m$j#r5+=u(yPd+HqBy{7C1q#wuq)6^Fiy4G@3Ik5|PmvRr;s{jY8}1uptG zW1RK9TmQ&1;wH^51!eA7ruvdV(rIi$vYoiiL3(YKCYCr%EuI1D&)kkfi|?>yFyexh z;BgH$Ako8CMfrQ)i!9W#kOKtq_BUM58Pp2^dCxI^7dHRiq_(a?w%(uq@RB`Z+)& z#?pm`83}@d6(`+{u`*Bbjcc3#+qax%)^C2hl<&eE#SX=*gp4ZPnV{y>z@JUc`B)L| zcO- zmWzi*SjGN{(?R8Pvd z^2DZuau$`L0x3&s)HH~pA&BbyF-w29egG&c+7#Xnxl^k7I$w zD(ZA|$f=9l?hTLiy@%S-;ZgPT4vjRp60#u$aH_H=?(?D$XRxKBEVG3NwH2=cn;@Zt z?eP(NSLZLOC5IU_rx9&!iCm%#t|XD06q|VrXkpKLOVabj>`k*X!M~+@9c?sUjNU$U zXw2-zSp0sp(FS$};Dc{p_u1`>=RC=tS$h4r^qHZU5 zvPb6N%ckj8I06H|+>TcLC2L`(gn883VOglR#o>~KPw>p~!w@lh`{z=W2w1&*Aum_ryRo2_ZW^KHl8^fj(R(7U+f@n|yruA|7#)jQNQ6OM z1ioik-_zd~$&~R~Dr4N?Qmy566&%Y%;54?Y4r*KFI%*c6a-sZz6jpnZezI!w<_t%( z=v&caTZDVi%y=^kg-k*LDy-W{t~;N#L6o%Tk4;+ zGVQ&+7ClH?h zJve3`P###Q>Si)6#4(A{uFpD0?9AXTeO{Vi>^M*Wp&GNxPy-zDGS^4Em>S#Nv3BrJ z7nuGyH=@47Rq3jj{d72ntrQf-&x<+uRg^=R*R1*56N7`W)8oV1pxQxy%!`42$ndrO z=@2C&4*MU}Ek;VcW5v`=RSJ?!_ewpBp-b$>4SOd|(RT78Vy~Hs3LhtWEhsS!#`I?p z@^|=U?Iwi#Hy-ycLJP35hQa^F3D}v?NCnixfFymw^3PlKDgfZUjNVuCH|H$vj@Pxj z(T8^|$&H?#yKTo#mHV%!Cnv{)bngl}+}RF9=L|lvP)XCue~_+VR^RP*qh$4O&FWT&2ezi|(Lc9U@Rivl1r2=;!|Nhvv~Pv`fRHrW^eCWfqF zH-FG~HL`}s7$h2`-Y12vV&PAfmuJQhT&H9oM1IlauCgJPNoDSSY_*Uh`~s7`cwM)= zSY_dI@Qc-Wg;c5Y9$rA_#zlx&MlzYp#cL&2Q8838Cixu2PApDDd!ILKgSky(8Kf^g z4T6kS;NtWsVxl)rl`OWTvQmC=;?JsmN#QxqZdgCsBYatKZFue2AyL*$pA=vm(8rP3 zqQ0 zo)WGu4IstTySXl{KiE>WpwL0Bcs1#{J6fvGJ-=qkw#OeT7r4u2iUnLq!g?2MGpe!tvB5 zofemX-J475vG{{!9NRMa_LQZbN=c6P+H(3S{bnt*eY=0iUhroE7~&mu&V66|L<&p< zgpk%{WA68T0_ZL7Uw1PtDON7CMs{`teMB3&BNQQ7IuctYdl7?M z6ZT@nsqTLSQhNQWISS~R>|jpeJxyJxI>Mav-qS%V(|JNwt34FVNS8c7jV~3Qn*6nn z-(BACouP(b%9Q_&^M4^M|KD}=fAih`zniWk=^GK~ao!D(*LE~21>gnDo=~p80nD6z zs^=u9L@Jj42CkwSDk#gs4)fiyP!CB>G*s$;{nTXfGgcoB;ccd$ftEq%Jn6^uUCj`? zOXpg?o7jj&yM~ zoVv?-nvSljtJ8KCIQ<4M&f|jvBuRrMnN~zrLSAKHZtMg`GE^6Oc*i`G{I0Oevfn;b z%IsBZuYV(0WgQ-qvGR@0nJ40!iPNW5qX?%m4M*F2t1U<(1(E>*P=oYj=(8LiJlXu8 zy>D+6=Gr9oLt>^LG=w9`9GqB@6$IZWSgFK>F-Np547=*q8NtokHaa|J6Q=K@%9WUeF@=Cv znLA`xndjeU_$5wn1IwG7^Nh&Oy|aloHd#FeER6K035O`!@1(;TEsh^qd~Be@YDnAc z7|YqK3iUq4h$)>vWsJ;SMOgF8%L*WE)R}g`p6Rbt4Fwx!0ybGg((=bob*`b*L;1^V zOx0xv2{dgl1I@sh89>?8Pd7#BBHD&5;F+&PP5+M{gRgJ&zuzfaAEm=8m(T`+)}|${=9J6yd!coL|euQF&-%}_)aieL}o{s02WFb>GJ6JtA(}tc;nYHH#edM znSN3spky|rOde2WCul%L6CD?+RPF2oVZ5=*vw6nM6~G-KBp@5<%NbB0HJA;%7T~Ys zqx0mEDne|@HtRDeqgSQ;?tHD`JQD;MwXd6Hn7bU_fzwe4)Y_Ls=GZkoI2V>&^!kb0 zsfAk536u}^c-yp=qwV`%qFH5^#1Od4xN!~%DOYdG8aI%c~qWTQK`Q!i%v5$zkzRX(ZY8N_GWhZOGa)5Y*mpA zILHU|0cZh;DJs15R=v45gUt@{&dSLS2bI@dyumHDFmm`j0E+>O#0>ax%{V6Gk@Fl3+lQDH9rL`KVn!t zZXObTb#*M0wkz&>?@5JTNkaVvSSbVH;3)W%kEj^VimynQ5we}UJbcIAJl5+p(JArE=A26<7wt#@CS$Klqvu|Yb<-;!K z%wiSfcSh5$2y~Zs?oUDbDZDfQ?M0Og=B6h)D%!xf)Y7|(3>`@9|lCpf{ z|GZ<2{D4dfb~^Pba=iFwsu%((Sy`jA$ewqt(Kb(?jpGEIkT;gy)KYd+R(Usf^UZgv z8jiw~Z40ypOO<9%l!HOOP@13@P0n>LXY787s?yazC8*aC2?!{$X(`~P@Z}OCtO3WY zCT+S24<=8}I!?ZmODTx)xG3I4=AE zhdc-v&F}J}ZY>)g77{2^Zj7>GL~*oLw=+dd=zTsX12ez?Y_2Qr?dnIB%bZn`)b}Ux zn&l5}@B1vw-VU5dygss1W1Q%G`$2^IWq(3CWIpY~Xj_XZ{7_(FWeDzbSt|-fK?nZ) zv5^#TJas2P-v+a(PRO?VOyy|zTX z?7|<74CFBuGKsmnQA5t5>5!+^Ai@~%*xQC{7$3e;8F@4|L@O*4Wi~+P@$UIT-zd{| zm_VQ=-ap@ihP8y)eRO~l`Qb&AfDG1KAhzFeei;?$su(W!!4~2H?okRC^TEQ^!m}PF zFtV2??Zb%j2nsiSBJ{O`tQv5VNqO{z)!au?1)QKoQZBL5*CFTgm8bv0d8`oBEU^2~ zgo(WRQ#82g`e}3>`O{S~ANj6<=hpformz{e0yeSmLHa<=6eH3EZ)h3tXpK)KR?T2~ zukh`nVY}mJaSgSx9?p}gB5t?qAePOG_8qkbp$>#2bRZQk`nR+-Vzl}(vrB*Qw3!Sm z%N?kLZl*Nnph`b*kttG>2PJVV$?t1T6zhKrrN~q1mA@|D=SWhY4Z7_XFe$KWUoY|P z_cFq!6E@njbS8=GS=QD=?#^@OL>1HVwvkKB-thjx3_5G57S6e!?XFvRr;!?Qb*Ej0 zq(2hqN#4IChyHXSbYMt`ZRaZnA*9~K@}Hb@C7VhwI#*4yfseKWBPW7|PI( zrEFr^?ku0&{)0J&LN3nBX9vt;ED)5j;6qx5T3p<;yaW%txm;etR`i?g&&FZ^JMG4? z^<8kOL?H^E-*7di?3A^j(kvv6tJ zd*cwqRCVVa;N_9#fK0n_Ix%QIp6AA-C&pSn(MI-$pTm=ZPqGZSW!jKO#bMGq<0MzyvX)2> zd-^@Arx-6_ zZZdHiX)RCc1lUVhh_uC{m^OYma)?T8%VEh-iJfkP`Q~Ds$qDQPo1M7(F|z(kv-ZbZ zgd?NK=_^nw*GE!vgKaNGd<1+--a8iOn00*gdG@c8C5~GSF?O?gX`zJ*3}x&+^7j27!fk@Kb#e*dt~+EU(0gXq`2u(g(bokE2vKb4y{Jp?5* z3aa>!wcpE+wpC8y)ehH`;b+!sXO2;1e0$jf$eqPbnv;TJS5+<8-cigffPShD;+5%K z{yKtMgtyG^Y8MXDri{ICD_o9!Rx2)AdfBl#754Nnn+hgZfcTXk!LJ(XvCCH`yD`H= zgb{;HKd=A6u!BZ3svdlT+miL~q&1i0#E{vsh2*cu*zyncH;Ct$21k&4&WOGY`Wgq` zm)|UvCVgx&V|gu)n2u?pR@ zSu>D68OXE}!)D#;G;-XHGfi5O-Gl8L8To7SO1S-bFqgniVd$DUmmAk&pm*EY!|4-l zfLe)xO|w(R(6c?oOF-&&3e65V$=k_}^O{m406E{|vr5!S66C{VKYuzLFQ%%o6~9o8 z)5y8XV3n6~EYx4k<-aIp(#d}pMekew!7NU`u|k*6^sKc5X8yrMpX!>bR=Mf_kYV4ODdX0@`Qeq=1;VE&_)a5avfjn9 zHr;CQYXt`Ht-Dmw^?6cbgQbK!fACNX+)nbHMi_~*tRb?FkcWr5)MqC- zD^1wpB?K1Q#S18qieudiBuD+AU736F1Nozd+sy3>9DkXplj|Q#)@CLJc`KkpTezH2 zqwP@uc2Op3NBuGW*nZ>5db%eE5u>E@g=WJ{EL7=GKZNfXCf^#ih2Z&lx#si^1n*@P&lLesnoaE7na~Zk@!U6E_C|ePhjy-(Y-*&EQPSCqnuwB#B_tzssLMc_ zR~NTmwe@aIK{Ow)1lsmPeIP|NXmS=ZXfRLBQF{(VHj}0uviFq-9iNgkpyJ+!X&%;X z_yKbjT|t*MG{>>1TCO)#v0SG@@k_@>8`ES8B!}J}?B&RR^V`82C#s4p*NcqvNA;Rc zZ$7W~nkDWlT6=n93T8>QB%^zBV%qLUFceJj-*Stq9X-Bi)~p|q{#IVG26G7ze{k&4 z$~Ldg!vd*qIZx>;WiKY^8NNjZfj)0i_0uk%2+FgD2a-XAK4K~7;JNL#{#HZXHPLL% zS?Y0DF=BC);MN?Q&vVW*o^_O`IMP>{S{cY+J!+qF;lw&RN~*1&^QP(B*Pl7tuKNWx zMKgiUBc~RSt$TgzS@^o z;06!bD4G%A?C)$B36jkQJN()J1;;Ci#CAp<+x4+tK|wmq7ml636GB5W?M@Gt$%GQM zc*Fb3YVzqUJ=csQ-+tJiEcjqRH#hOd^*p73H^VXM9m;L1LBeB1mmPSNQc&?{GjZG=l@my%8d!cmqv|67NYesQD zBI7ou9*%WF(c)6^|Kxv&jMM$d@%3VmUCh#W)wb zjG7Ip>>z47mxzQhATOhNBw4Ua*bnF6AH*_JELl5lxQj~;EA-G#(aIeyS9YcT?8l+5 z^5vUC>I6F2B_m{ukMCxi#&CxcpKLDHGTFDcy7ChgM@s9NhN+LnuC-AHCxOt)PsCpQ zFuv0LR!=(^OVCJ-`)7|e9Z|xb^6J#NwFwxXEH<}3jvkO`PDbj_M@gH-N{&PFWOLed zC3m-npZQX+53f1v{7366VPfFzV~yyu`K>uBy(2_;A5w8igd;t>~<;yb5Y0 zgDI`wSDom8G$Z})mGJ1~w1XYoy#z2{VI^mrrg9=rLyn_=%bSLy*j53jTz&hrIa1k# zxME-zU)*{zvRi8!xRv9l1?}#WiIdwkH+AHMeY?k_xj0Pr;>pqgz0Q(r!X>C*o)YfG zSCdw6uLZ2-m+yN1AI{GDE6Vt9^8-johjceXmvn=~&@gnDNHcUuh;+wLQqtWp4Beel z0z*kkhop!uyXWlwvfuOUbM{}j&wW1cx~|uS6|sux+Z}r38F=68ShL_Jv8tB(3kBK7 zCdq0C=HjN+RqUdh`C10eIr~n?V%Vjca->0c8R2Fv{HjjOXRpS5DjNyAaCsa$G_D+U zIM@0cbkl83V5#>bIC6RObU?H9xq66k$z!2TTFdTJ1v9TEG73`brRQej=hab|#NMp8 zp{ZKdXRcPC&bskULV8X#&1%$pX$%~k@1Mxcf;>(z zNhF2E7VXCMn?3LzLRmw}n-HWzfy=viZic?RWD-)+;;Ey`FZiW{y4QDKLJ<|R4B`<@ zHbzJG-BPhs_0Jq5uV-mZmp9P5jM+w!rguVzfl8SRn( z7-b|BtmhQ3-?P+Xw~PC}PZ&>45vQxs!Fnz4)QBwLn@vvY;&KEHlcihk#^%xwPRhw>Gve9KIb3I+C@^@_dtcwflrL#b zu;#Rk16gLE3yO}yhq@CL`A-+O*lfi9T}4B&{fdWEbYzi1n_IEJHnV?soBz^{Xcgnq z@CIO0^;`=J+434s3uGa#OLwlSbelZ6H(dIag#g6NxNvc1vl^Tp#!~B)ayQ_}D{`XG z)(8Xm2Bj)TzhbWcv0CaYdDyop54>ifHFEj-bECBDdf^lwTZ=AwoCinAcTbzkKSQjS z>gVfc`PE{W&PEr)t|&Jf;O#xUb#~aQIElW`;rIM->v1pq3@AyfnY}XlSy0?Z?vIWG zLL*AdEk+h5Et@X>^Bn!9yT*fUlo-FNT5aU zz-?J@zSSY={#c{bmfCVcpo`AT+{`Aj+8O>8nmr>6UGvqf=SwOY{5oY{D!$4Td`P0R zTXzI{Q=Lqy!?mZ}D)8zPFhIVzhqARJX0lmNBOwptx~?;})$@4)HhlSb>0wf)yF! z;l5^ipl`YlYcZ>&Ivax&3QmdC7P|Cn>6#Y;G6v>A2IXa~rY~w>Rn3TMT{j{dL}z=@ zs#HF#v55qB6Ao151YnCxhNhaP#l{Fwz63=?P4Yi6rFTTRxRoLgnG*d7B+yGM8RR65 z^Tt!wgNyWmL{jnKLbFylVcQ8AR$LfU4H>qy3^}f2nzAJhBuI20CD=olEO{|;GI}+W zb>sc*(y-CUEXe>O&K7=fzl&@i-CtYTtd%+p#ApmUDNTgi+QHrgzZB!W>g+MlqDUCYywJ|{x0bEWG9Btop3dssc47t*b=RypWua!eR zM)7^qMwtnAR`MPq6(Yge4Rd9wF&JW6NBU6W@*%(Px}sE+C|@4$<(t|`(@Q5luDJq| z`;;@N23`LF9J_6%>@ncVkVTS3!LcC4?|#%ELj%a-O}9;Z4Ep>IlIQ2Y}*@7@Xk9c_edgFy2B3-{$A;)oP& z`G5e`qASb`P(y=>83tIqS#^wZB_&wX3{z=7Gc;HXo=RJwsKj+Kqh8Tfio>QdR z0T^p(M4~au@z>!#K|;1t;93=pP{LMkw6DuwKO{OowDq2XNvLJ9Dk%7aZ9aGICsJqC z3tuk41wL-UJUR_rZGE{pyado#q`6vuh%B0(7)DQzricixp~$8qXTHgy49i)sKv~P< zryHXAGkB^mU6oMIS%ohnx>ts4)8E}J%tPwjwaXrrv!76#HV%0Mz>l0?WSOIOJpEKA zUKb&>($J9%yQnaT#8}q>xuB#A*gDQ|m zPKP{$=s1}Qf;8KJ#Ik|fU$?2{!-4%aK+jr%4=>WcM$FUxy|uLmc^d@idxd5igKJxk zsbFvVif&AXL|f}sDfMsfN_Th&1_#fRxBo*4uPF6s(hBjnAu{TY$jvwgLjGoVk%L25 z^o(jHyYFB*6Mqg^B_>Gj=Cf_mH^cK|0(>)MjY7gmR(p`@?lxBie6IaTSCNvfv?zSvcH%U>Nst~EVwFA52x zZr^p;r4Z5nV76k}aQLIkPn8F}P!y7#ic6Ycs#F*GTC@h02D9C?X>phmFuqv!b*d?@ zkqK~>*ieH10d#84sl+^|i#f>0@SAC>HtYo65Sq{H6ma#-r|Nx^qT6gzB{nJBpp0jX3nNK4|6RlLv3&5zm*-xpLr3Oe!5o-reog5VuzNxJ?HlLs9+GAnD z^+F({X*{0U5ncTQ2-nANOmMhpj$7xAcUVn)LfXesmr6j5p!Zb)8i1?eXNC^&5vGWa z+mLrACw%3UD~eysqxs44J<)le7oHg+!J-#MJcbi5WQ7(c8 zft=Jz=LjKi=w>%N1}$70PCaUYIZmjEnK@nj+hMV9!gAa9MLN#r+V$$)NZyyMAzyx- zAAd^7re8wnR_3v0UXs*Z`%;2?-j4Wjse%@dQ7HIQ_F_EY`NO2=oD80L`>~~ajGJ%X zQ)MS|RjLEa#@Xdg-Rxen+L7L-GACj=F5ChUiU0sa^vt7>s}*O;M^3d|AT59Hmp6HB(hCL&2TvME2g_}w61c!bU$&enG9<#%n z$uLMSmSB`P_ZD2C4M0baW6!_M%p0~UET{Mfn6;hZg5#3PqPoF~!dDskIY^IrR`e+w zUgNqO{`SbLRSk2D{G7Iew^Gc_GkUIhHlaDOn|y4&O~BzEIk7;wj6s)?9!P&FcC^T2 z<5>6DG~BdV5+vUP6XTT4@ceM$7B&FXv$hk#Hubsj<=cXq0XpXsHR9d!7SPi1}U7@+h-5%X1Aim z@JavBHj>DR+{6agH{#)cWAnG)^|@l2p6DiszKB-IZSv54UlPQ#G!?BUh^!CKi#*@N6mEJ$Nja`RzxDR_B=ec~bEb{9PFWG9m zEt6$>U#|O(HM7gn5|s;L+fq*I#S6LMK$X=NAGEK>zx&kF;WxWX7}gvQ&b$G;~!D+(Mo>) z)-pRtcx&BTOI3yck5%bcX|Iog347=0TRBebQF(F5jDel|tBXNy1E!B{#g)M0l9&JD zRnXhi_;_0k^Vz3>6UT1pWg!Fb7@Ce?j5w+V*5`&8vP@%&yM@;0`YV!!%pOrU!I7g` z$sSMlyBUNRPzxe54A(~8#gXBm7cG-DaXta6&!=y&tc=2GnV@C!kk^15Ro!v+u)})J0Y2Cybj?{2~p`Qr}DNPm4mLmDW&u_&~XEKGh&9} zBkO+rh1A5=CD1c`gZ|DdukJH2YazOxe-@t%C6VmCvM+$Y^)7h9msrfl$@4I7t|^An z$-VVW*L993-RzWLB^HGo0yy8)SjpO02?c`VzU_vN6dRx+fBFLo+12P6 z>%OyTlzbQOArt>rN@v$R;eu_xDf2=dcJC_!8VJ8#w z*Ri>tOJV>f3q$GZkceZqqgQ+%4N89o33Gh-HTjy9`EoP_ef{s!Q_7(AFOXV0o1>!a zYor*S0tVUhlJFHue3#qJ%2rB{cW6p*h`n#wl7QCS>Bau64uc+GK*=6|I>l!l!p^ha z>BbQ)XAzo7N<4~1M@Oht6hP$RiZ}9gDWw$MnKb4$NzuZv<)`Q;CQCl_;B`p>z1sSy zr0DS6__?U}Viob+3j#l^OP6Hr4A}Oln=%?tcz7 zmEuYC4?sOKxn^7OCl$TVXeW7()6U1c&ip_XG}0Pstunq}T&ga(lrWXC3xDIvNvQ5@ zobCVamvf-OgvBG_(ynIt&6B*rV;cMb8p0bPkc0+}G$ibn&~yBg{a?OvBnD5G{{U;d zFL8;|HyxQytqyr+{{WhQc^d5^)QqiT9tWSlyN3KGeclqwRAVe3yVSZ8!b?N5&zxYqrdjJt zBP*#S!*h6a)$15Xr9Ao;;1bUrVfxWF2#Yy@>GW%be`NgikF}F-a!c^YHkP7`~ zuWCPt(O%h)UUE^*?EHkNcDm9@N&j$sUK zbQ4PE%(`s#AupLd-h8WQP0>KxWMny^YY7JMJ1s6AjcW`nhJ* ztCu3ipS$?gv@IFYQ6~fMjee^x-suPzc_N0|d#Xo2eYbIiOp>FOPlnk@MOX8Ox^N}n zz;bAXZ9K#*YBig_4ei*Ga3y){+?ztNZCLRl*Fk$@XQs}}#*QHC8pG1IE|@TNLMLLR zQLhkW702E3mV5~AjeBm+1x97i=anM-)mO?1_X@vdR)II3`~dp~h}#f1u6SdYP=LNi zb$S@S9!p49n_Cazk1LwcqCR!8xvF@99O>qeT9z3^V1Bk$xdn!xkHc3J1t&cT%f?mM zAu^P=m**H~%k^ise!0|6Z4@eGFm|h?F52(N+J2hRQFBw_T^hBFMKX=Os`s^t8Re|6 zGO^6_Gf9%)v$E*?W#uAXnT?(S-WJkSK`+t9;KJRb;PuU=Cgb&?p--_(+_iR7w0N;k zvz8F?w%2KW`#;LeIhguf<*no=J$=?e3qc%mH7{2?)lQJ_n^Fy{9nYI>cvE+^lkrL|x0dv-{fO+s@jJ;+rdUU#NopczvIBYC6MK__&cTIR`t*22adukJ&ub5+(P z*{S&7+najzTO2OAXs9wFf_e+G0(Kx`yYWb=F=8SXD&9J-GSs7YCUyyj*0%aa75xI; zPCAmvod;sw{XRY))#4MawFl3e+BTyn-Fs1ere*oXd7S#=>F}ip)H`b z!$*N@UG*mOhp$CeN_{qi#T~<23B&W)92~HKpfUaA&O6~=^IjAaY+Gwe>*Z36v0nj} zMM3+mMwy8pVQ*-|1~%+ADCGK?Uo7-^2~Hj9p}bsKCfwomipN#DS&73oa~Gr&x7`BhVKdZrn6i!!Jc zE63vKECjdJgq=xBgafW0LuTFKrsTBDqy8o8i`?l%x^03yoR-p0UsOgswMnkf4a3g+ z2Xg@EgP@KK>kOU_kJIy8{_t!Av;Glw*~icI%eU$`K}mR3HU6-wd`&F=P4A$99;cVr z?~Tzk0wi?5vw`@W+#j@Plb#x8LJE1&!oFGRIG)%1Zi@dS!0p>+Nq**{&l1vy3DeZ| z`K=WrhYR`!U$j4Nu^wbmG85ar90+0eeey+2Mn3PBr|C*25lZ{=K?C{4&9HYlAuGMA zz+2|JJgfB^%^)?l{j?h~bOGheo3HzCAO&ASr^ z^UHj?2bJgd<)WRA)Vh+DrJxN5Ihkx4IT@=no)#K$vmnxWu_Z~l&63Kjm;sOQM-!@# ztZ0@pH{}rk1mWZl??`Lc@^F~yB^W6Klz`4?bL&DvJB@+aL6xr1z_=AZ>WCyL)MI2nN!(Rc zp2I==uPeyRG*hQ8p=rTRquyWzN$#$pMh8Z9Sxpc<4Lc8-&2)3zYMHI@@ec5*-S=1e zvi3@ol<8CG&LK8rH+D;I58?)UjsZS@&mP^rddOx`xc_lvuF7@{mILo)E}|egKG9X} z`~%qDBAYr;6;aiPd7X(H9oNcG`b~J`YlZ_8`*XNNUsNz1T{Jrrvxtwh;W;hMra1*p z_L2-(D1@6lILt#?Q^NdWJr1J^<)*qbm26nALXkC%77E!t!|iG8MezpshMp7hZ|@B> zgIGEjj=oh^rMR=TWaZmu=w!dbXP6!*X!~GXz3GqhjTE9BmBr02=nGws8PnOorEi4> zRHYVy=8L$~0x62RyXu@U^r#wRPH~!PIObc=jPLUL!fhs92kDdletY88(O4a8i^Lar z3gLvT<~m#C#Gg2SJu)_Hpm#d*z<3oJxO}LY3c*Q*M_?F~j;y6Fvm1nN3b7A?raot?Z?op)wJbNxqWLF#4q(=d*o7D{Y zELR^tf#{Nu^p;78D|H;=W0=y3D*xsj3%|8-k{?7?D;2mN5tkv)%~q25b}sJiQF2#k z%L3hnT#(XRS_9<-eTjqII9d8S-t}pB)XqPjlun;oidy9_w4Iw|B-oVxgrs9B$1ID0 z0_B}U21Kwm$T?^e+R_5$-#*MYicIBHe`3M5$OC0CcG4HkGnWEMElR8P)BXX%N{=it z6tGe5U;ffR{Q8Sy^)FWJWO8IRPfIhHRj-q+21sJFlTK4-uiu3|85Up0#Op2eT<6`k zP@$L5Ln9=~j#gc=6h2iMg@|Nqmp$nTE3Ft>ELlH&u$fYn%J1Sg!%2wu;MCmt~92at4mEzpA~1~ti^ ztY8SwBk_^etuF=VPqSu2OGg15>`o}R@O|jmAhRrOxte`0xoW%102*X<lOCiI zVVE6k-~aOE=X(-$Iu_nKkuSq?9VW`&Vpx%RjD1dg?_r6BraNN7aJnP`TMosHQT*)g z9GEKZb7EMh(otc@$>)9R+FYYiorS;AlXo10&Xw>bldqi`n7oD?1(j1_LTJ6RD7>mm zE}pq^+iC3}5bzoW|H0ELIrU^mmy#$Rhu*=YCmB47x>zLBc2whS!$4KB zA-uO@rt z@W}A`mqDP*(aOP8W(hAzYeWQa1VI<7Obt#Bpe4BZ?({yse@Ns^U#zuOn%lc}cNU1P z+Mb-Kq4=JWu?6S&?JbjSISf2gaUn+O%*=8xStlj^5(Mgq>x_97OIYvkNgCIeLFV=p z%w3jHO;E=4bIHbXA>s4>d;!oIX@`|_2u)n^~Vi`MV$ zy%TuW#g>1~a*-0izS)^@+jFyvx2wR{klQ`qS5U#nHXST%L1@}?pI&;al(NTN{ZP^d zs;g^PZ_|7jGfvHr)fcIp-2KA36gxx`;JG>j&Q*@$cCeQ<(@~VMy7?VIAozRr-WU zIr=$cT$78Xug2Lp?;lI5Je+Y6*eZxzLx=;1A4UUuo0{pJjyCh9E(OYtM0Yj2bXP$t z$*i~&>`jaNiU6L{>`s4mTPwHs_+r(z@iU7U9UpOhY0%GBvho!+2_R&vga@KRj5;hs zL)i!5kA6-d{K+p;kHFrh^6xv;HRXtzG7B+z6c|OUf z3)T6u-9h4|q}^Po-Urwe1;35P>t?0d{b0Po#gF{yI#p7pl(tp(=ZrPs!R+aJrCqsV zy7EGCTta&$qW>P~6zqZAjv|zMr-aRiC~{A%c?mKaQQH%)Q++tVNh8M|YwK>(nji)SMkf#1M{cQiX1sM%OCEA#I&*-ZhTExwu1&0l!mP$Eg)2mf2fs~1 zYuTyi>%y`09W_NnR=*@bg2(%50^zUU6CI5$fu$pX@pCbl6W= zjh$?$SY;z)`NHQ@Cgj8&dcvJG;bD@%)9B}g)~E}>CK=ruh+xx+epHm+6e-X*Z|(hy z_Yd$gWcn&Lud~#D+xGQ;Cf|3C zhr%`3-La3mm^4OENX?hV=3!2YNS4oSse~!`tzf6MIP9y_zlj zghlPW4&v&u^i>*N7ljC~!ePb58;BD) zMPwuh4muaT@ICj;If{rtQ`*Au9fmls7$~6 zDOK0ixKs(+0vw|CCk_Y&O{#p1fF`|Mn5-t4M`%1KOEH-_9MWuouO6c`S}hp*zpue` z(ntA{r;}=J4G3LTDARCaOi$D1rbbCo+tzhH9)aZQT4}xjNZJ<6=o6Vgh)u%_MWf## zNS>g@-TNbPxVWM%OmeB`B`o~15D)yfLTxR#Ksx+@yA#v2iRv3HhehZyQM~Udx{&t5 zqyFXUn@MPCqwq3b@w~wXy^0&iNSNh!%9CWLzQ%iQn8?vVm#8(3D9!L}%DVVx$m!kn z{ur;vH|9$0E}hn>h%qg*q}6XuiQR5yEYw_rPfn@}>hWKdsxQ2q-;-tzw~-T4MPe5n zTMNy!Ffn5w^&P8saITb>Yh>2MzX*adXx{mgpkqJzarn|E47z?a#ZDulbl{ovpeS&` z#2Mu*;jCbLjOa)=HBgaFFLgRzZY@QoMV}Scdv}h3u;SfT@zDS`l5-175vWE3UzIr7 zpIN9h9LrIs#y=zZ|gx^$>O)%k2H^(MCzQvo(VQ~_8h4$*6*>dhWvL!S*Js?(+irz9D(Q0`Z zemU-vN6R*Vj3%*(&wTG{=H`;d-~ReziHFE&@x;hGJI@8%$PHBtooBGf(R@MO;SW8i z%@~tVl|>B<%0?;8Ei*`?TH3nv>= z7R0pc1w}>vk(R@E6=_8ryycvigCVHn3}To%h?57rRAU5sC9UIT!^)!f8z!AT!C7<5f#(D)pSvST*VA=#B$63bD zJ#98P)f!l1QPt@sjThmmv52kVG~SX&Q9C@P@B~WbC)|e*a@JWFs9vU=6sG&@1Z-fE z{H%|@tX#hN-05Q8;&p7v8z+Q0_r-S9K?Sq{WavlU2Yj}2$1_g{_K#~Hd)b4y`GRQ* zP(7U24P)pJZ8@7>2!V1-F0#~rPrXSQOM7Vb6g#T0eN$3dX!uYe7`)O!h56M_;4aA;Bf^BA?u5BC7@NnjeoS=giS@u+rO=a-DrtN3Ogmp%JP z4O~he&i5NSyNU@+Bgs)VQt}Bb%O;L0bjX}M!7#=F7>6-y0icKc zh7cEUcPh$1@(0n=v~G5br#mKg_wZ%Ixo8OWGQ@Ple?Z})U%O}&JnsI3Zq<{y4Tl|& zLrOvv2+&l0z=T1wC$3k9$1t7DzuOZ5MHVQ8Cnl1y5>QEzYXp&x^@2mORvwnX_6%mA zQbxK}{;tc1(~LmIPe}>>AHq+UeKz@$!DO6mBWZXHz=+yk1H)tBu-tH_d#ZM{4GdE?#MD?SG z)P&kpmwHQ$2HhUryP(MA^-5h6S?^^%0KV3>35KWgOK$Y(B9Cb0kn)Z+h8t0{O+HTY z^tHvD<~O&x00V6YlDjVv0Y3Ls4R0BN7&Bkf$VT|--iKiIuwrKb+#@BIY%|CFv(xr= ziTDCNKC;T`l9(8w6AnRD{XvV0QQ#uLV!DG?JBb81&j|g%pKp+k?0l;+i1ZdkC$~~= zGwwCgEcI?C{$Mc9YFI<}9E5Krd!=eX!PsZTX5T$~%9A;KCNaJA;rh+*H(yV~5TEe4 z2iqJg7q>sc^~>{hT%znr^eF63y%U6Qkrm&5x*DQ=qYA@G?u)lTF6a5srPmWQqO`8{ z5-UMgqYFR9RibC!o&aClRKk!=7Sok=wSy79b7EX(F1n7#^%!Gl$x}f+8*!6T#m}Io zqn`u1pWZ?k=!iz!H{ScQT(P#f;%`so4{oeSP`bZw-Z2)+74^;GIkZs$+j8?mes3m5 z=3%|o9dE#d3rV`0ELR&>hhF5<^d{aOZXhi`>(zT>bJw1!u_=sBxncX;4u#qFU0m*9 zY`5}uZ*}=0>|{o)VSjagkI;QeR-etOh05QsiEjT54VL;0m#F+qG-0vc=!<`PCo*UutmEo4I zRFWN29dLf09EKsiOhM97ouwV95Gt_#cQ{#3@Q;lo{7Iz!X)!GWq3$-_EbSvR!p(GQ zJYQ4CGv|-}CK;5UR44{Q_iha=xkcMR4|1HHjZVhl7y1!3x>;(rj@ZKZRv}?4Vc|d< zDKF6F!sIrCG&sJt;>$c{dN37bE3&9au3F`6{Pumb$#i?0W#!ppjegXE0W$rUNev0QmQ&Pq0#CQyu|g$eh2JIR&MsTkf$&08Mj z0nq@XepGj2I-vN6Rr_MH<9#c%V zqnl+w1|)k)eM}Vsmhu;UQ90(goBJ+)5h?{0WFJs05ZC|#xRl0pywsrqOZ|;}=)?&H zaHa^U6N04&h&BcEq+G>dkz4(ESMyVZs9uJee_${ct@?}0d12pM;=SzNj)v{s`=`vt z-m&`FrW}sdI{UO=Gs>R8S<_4o=>$T#ut-wm&rzWb#J}sMe{sC>1?Y?E<`!Yc6)4{E zOwexn8Z9n~m8I8|+5HAFFs1$#i^~07Jh^$|>7DX1{(oO}{$qE|S%3F3#kY?B9SJ$| z=Kk)uAlCV};E#p%BxY92Fww85r@HljfE%8t;n+coJ@%9G-evjTb^RXp_5kbuPhLaW zCfkcY)5qQrNm?w*g#D}%gIe?GE$&_vmhpEfzdNASz{?wt715exh_nC-a3sB$+ib`? zLmZuf89mDPmV-fZiz=_B{--i0PdyngHsHHJl3);Jl%Fz5meo_P;aZ#1hoJ>b{26%6)FY)FO42dArZ>?XP<~)Z8!{n}oxaiBS8*Yn zWa4}@zY{yE07L3dGB3~ro5?m9=%<@@v|64WVL-Uq0JO%?a70xXSM^C%zoTBMNkcUU z;s>aKbS6kQdD3GJ{w;$N5nljXm{>NmifvPHvWi<1zQv**#Ft;x?j#efI zamr{@aUu>e8n|21q$!lW;cN$e1P0Q-yHAeBBS-pd3tB$st~Lgz49Mi_;l1u^g0Ez& z5$^RYoJE+ZC>zPS)tV#8{R6x+P&KYp%r2w#p;@xpA86x@^S!XBl_dV2QK_@(_+A!E zLqZCaqZ$e*$B#?wh+dTV2y__NJ@C!YOg41Xhf3*SQJK6Q#_~P9`}5GquafX3G2%~k z1UIb+o&N%)+#sTw8LI=9YC})gIpbbMg+f?u^d|$)Q-+HLX=K{v(p>kb!|RhfzGe(9 z#fgDIsW%~DKUp07Aq^PF2g71qR(>LtPtSu(Zrah|zmMOP+3YwALG%e~ zUvEF8n++W{Wih;}1f~(oVrsuXUieX=|QSP8TOH8q& zH4ZO{%w$CQN|2QxAwD*E=tdS+5MJE8J^p*4&yD8#PDn^+)2%GbLe{hu z-+aW?Ysx1gx+^}gR)J-Z`<85L3+Z=4Iv4P}q{{;qKZv!8tq)FADX<9T8m6sKc3D@^ z^moGrhPxON!TTa9?prf8HQx&p29}Gls0ntdNGLtEbW=@TRIfkVmYBv)Ylt8<(~nXu zH{PDq+r1EF7X**UG36Ks+@br4td@W_2fJVA=$mZ>F7f%xTjKmu*Xj9den-cMg#{`l z@Ti58YIwt4xF|Jq=@CuO>CLuJ{f_NQzbg8aYzqw6r5u;<f^)R=AQ&xgHcrPSx*DR);5xu1I7)%IbL1O8BJ zn|)JNZPH{Q53v{(J*KKMMb`$Qtbq=ohQy;5(=>JU=-6EPcC@0Ny7%RwfNr}drxL!v7gAk(;%kgQ- zZw{x{EbXLgwzX-xZi)#;=fXBk`eG{kM|@=C zm}X3r$5AzasflK|cE=k2HJ~)e8)n6H~$rkZkt-2KUmQgm7rPdKu^G!x)Kn8-&-IgQDT)yXO}NE zot<1Zo!;j23+`NIFUhV@1NB`SC59?lO)#{%DVH8pLj*#%$(=tm0`Pm)~7Gzciln zzU(NETx{0-Sa$D}mSpoWky6w{FEz5f1(xGZviN->G_7nKcbxs?W|>gKpQ{M$u%XKv zgRR6(CT;V3Q8#l`IzE3_H=k<<;XHYJX2;y}QEBA<=vE)JRDil2a1f_Ia;#m?zy`3J z?qEFou|i72t``3#*g>W>Ne7xWE&lBtV-Z*r5<)RLLDe++)m*pN3g`4aujaXN@T|@6Q;ZHwQZywO*<_&v*u?SdIfo(~DHR7+)R*Xz(ga>%DrpBRLYnm6L2IDYd5 z%B}gGC7tmgxR-_{Zn8vX@cUF8!8rkmbszasgB(%5qOM{!T$0p&CAEm6HSmu85~c6x zO9TM<>bX-=DAEOl8sVANOZ>;dRow zK&N}!+rL0(vXhJf}C}9RI?4Ul)GdCpKc|BX! zYw%@2m?E0D#+#FTK$5plx;gNM2kKF2(TRr^E55))Mx8>~^)4uDubiL@26^Wy_JbM3 z+Wx|EoTyx^d>I`tl$=8rLe39Q-s0u5yB7WfC`n!TnV?q_AE+o8f31o*9sjS_Xa9d^ zo!06L;EKreKS1=@q%Q}B7GkP336jm1JsPFQS2Q{QDpVQD^>bA3CQ0k2ySf^nvex>n z4F1()HMSDp`TAnq(KD|1Z9@O(pVEo^75^Dkqg-69)I3CvqvtGCZLrT#u}rskrjm=9 z9Z7|q9S%Rz`;wr79z7o9`Q-jHARtsYwSrMUT^{EjK+t`Vcdt!oxYeaLXZZY&(ytu! zd>hg5tieRtOfm6bTu#0!7v)Fx=@=nj!rCNJ?-ASmip*X24v*F3cBPXsVB_8t| z%~6Td43tS}zqxm@I@`1#9G;yFv1)39R#VKMsTROUjUBAFueF z402AvqFgH=@);Xy-YXxWpH686bjO3`Z!v!dZI?+IMM<_>H&(ljPH%xrzOs~ zpB?IHPj6ER28qi~yef66<|RrF{G9EQv)P&$L>7pcxiI7LFW<#xARMm?R9@XaPjuXM zd$h)h6k1JI0VQ)AJp-EpI8+Kl!{t)+x zJayileR~yACS~Dr_QwWCRW5rJxXM-76ouW}0*ZdcV-_M|x&dC5$}sKX!>CCPbgMz-z+@4c(bc1{ks5OX(TCR> zQhwo2{PQPuLw=IAK#NLS_Mv+9&_>DXdTx=3lh)Q4<3)+9gBWru%I$KOY8G7J#yyV! zbt~87_}E!)o#4*^NrbYK7LC@L*^@bw*Uy0O)}oPQJVM79Gdp=LY^fAnB9r)#VR*`! z_9z{T;%`LbkI4PMf;EF_<|dBx%HDL;A7qe(0I4p!T5OGRwr0*|K(?b+JARoY4%}I_ zH--J!W3GzZ1GapRRGz1nZH;+YoyU{P6$H=;fp+kWKI-KHO49j&e{g!=Y(v`N8KpQqi)0r#0 zcExC`a@VKdsxE8e7Ip+Xg+I)8-Cn<&Q5A&|Q_b$vEZ7b6e08eF)4t^i~&Uh6M z4w5=L3<91uvKjwy`?PcVr&ba{Rb?`KwTTg0OS$zyIT2;lo<5_tD zdQ-tih-l~_ktd&}l5r~Hg8gJJ^y3ij{mU>5BCfKPx(%|wMOTK=X>=))OPzhX{+Nl! z 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൶w!ZvF;hc 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

=Kn*@;ofrhl@-P=UChnW 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 z z&>i!Ve>KM0pQ#ON27YPuVpE+E$(Zq;MEyju`?p6}!jUn`{yz4#mO2-=JoT6-fuIpx z{?`!Vs&SFkNB>jbOZ4r~sjV~!W>gU!uOC538H70D0-h6m+;mJ3wlb_V5I{k7`&5)d z%-IO}acNMI#zf6w+Hn~R4%mHV`(>LC8+67`TTJnKz6EP`$c$Lm?!Bk5cD5TcC0$$)EUc0ugPSyFEv9YywnMi)GKCjBbcQ{#~ZVAyjB58j?@YcanvSk5O% zSovGLZB|ulniA8BgkX02lk(C!p@azMnhd>pB3T|oo?}T=QxRL62!d5C!B1U6P$pMDEavJ^#xD?;)+4J45B3v+ z2l?t3VE}=hFY?E@UMg|$&uhIv3;_04M$acZ#=G>@5B*xcs`6+#TsVSZg{B-1%o7HS zyLT5=?_@;kGF^^F#8m(qL^8|50_{aA@}51~>AE+W=Y^c~X>9~0wkX8&DEXnk>cYHY zv$U5=IF!SsBLWJ1i#cwUtoUO%6Y$8rC$JIN2HMIOfLpd5GZtwIRCfkWl}z%~*1SSq zyRX(0HE04Gq6_gb$BZ0EqCTDwCXPaz$J%Wao}~Xcoe#jRgo-S)dYK>rbRVLe1Yh zTBFfBcjqqp@eY+uDeU%e?716Eh%Ade{VK5s;O%-}tHV+Gvyv+ptc=fhrrK#zi(M^y zar-}2R|)%yx4ujMZ6j>w$kut_3;E7Wj?3EZFROO|HIKs7?(43^WQiVES2b6{9lI}M z4)DU%Z7HLAH}D3Ub-OE67YZX=>lI38P)wj?rlYYI6p8_2==GwkP01W%3QH;2RT%S+ z@JhjJ&v$QG)J2lb6rU2@xj0A*M71+qa*`9oQX4<8D&O?Z=G-7j(*Du1lC&HUSQm`L z(aZ|S!bxTNcRO;Xn&b0;d9$~jFOVHDzu{b+v%8OVo;?G@IY<43&fABTA>%a%^x0+BWggN+jJ`7{7~l0Ox^{^ziIy z4?_0n6v@JpU$bFc-izhZ@g`_&bF6XVe@OFwIID)z?DL%JtCi(K4{I5LKlS!eIVG_4 z{9=fBR;z2?;xJju;1-lF>`TboaeY+m8~(FhvPfn6&e%QR_ce#zhReLkcTgge>`VIL$T@dIIOe4f+lS=71B{A+i%|c- zj~XKd;^*RTmqW|jpjh$8o0wF{uV<(`pcGz@Wc2Qv^P<(+tSrK5&zJmX5#Axu<%V^G zI@~1yS})hYecOT|;?1#ss>4h{T>XtC;*Pq%gHwj!ZEG)+O1YA4ntMAvssR%WnI?_) zu$*g56FD&h5_CaL>naIdg(M`lsyJeNmbmLIXbhzN=t#--!N%T;p3Obnyubzar2at} z{Fk>gOi2f1!pACihE2G44wS&3`M+p;tDrczuv@c%5Q1B9clY4#ZjIBp25F$tpaFur zG_C;}cXtV{Ay|OMEy11O-%w|+rs_XaGc`5$`*PQo^{%xZwTUbTU|85xS$*;aOAwJd`djkSBMP_QZ{`05yN*&9u{il=N0eLts$Ke8%R(qgz|u%ycAxP}&V)&P|tmN5d5ti$b>z@rV({KsyD@ z5Ba(K>nBEEGC`t?ULyTlpLH1LP^b?W z->_WG!C*v@t}kSFIDqJ>@}*2?c3|P=?Q27=m|cUj*N^c>GeE&T!I~#@Gfr4!B+Zmf znb}y+O`75Z^?eK+@%b_rL;$SS|MWkqu-XKP<2h>QfsyS3JE(G5s8#_)DMjG|&nz61 zU?oH9l9fgTDpGLbJfqQ5vCPRYOdNf~X6qs_llpxn%x9>E)>lJ=t#Fwij&=yL@x zjlKW*pCx8JFd@gTJu%Uxk3cpqM!Ry7S#b5x96@sXQmU-RxyGw8b8~3=8%aeya%-#A zr!}txBlb&0VW(<&;ojoj~ea`kT637GM?tN^iIX71&_4dBRmx-R$9g zaB(Z>gIKXE7X}#~);q$15<$z9fxy(5^<1tq@fmS@*C4i}al4$AWPt;&g%8kJhF^*_A(Zx%IcH6CVYtRJWRego)|JdcS>+(nw)MPj#&NQ9x6r@&DQ&S|> zx#a$Je#N1hauteKZ}K$DAD~cWfLHdDZcOOkIXHix?O33q@(kxzaYWg2n z(hX-DTOx3PDoeRRU}kN8l=yl8IYy)XmWRuJ+YQw$I$I#7fQ7>MUeK9Vdb_K6T6SdB04YA8yJyW(PWKnCb5`va|HQG%oL22Tme+V2s-a zw|)#HnpNdwYAwuJ{WBEch&=TH&=wYlO%=0oJHh{5bpYBZ2AW?e`nw`%Jr=}P$I3hR zNUj@RW~{q-D^wt8)v#hJqpqt}F}dwc-z${3<5Nf2vg8P?V%E)IQ~DC+lVD?=oIV&8 zy?k^RLa8DD*&C~MZth$7@w&XcKB@ys<>J?t8?!ogXGaYg?SX`^2yHPNC*OewQgd#j zJUPAEWMBRr)CE*=NJN03t@|R@>njY(tkgJZC`dM?|I}0bm$Ac59B&+^!=jQ!O<%w* zu0EdvCIVWdn8;0RhwE1&*4mh>1V#BGBHC-%l^t5r6q2BH#(1@rsMLXdWh1`{$`>nG zZFHCbZfiuTw*tlGhj)!-NYgmajTT$vcL5uBkeDX;^e4KM&c&6luJOv9 z?|USy2AV8>9&NVxQE7cH(=OfxDDe!sh!OAHpKBecxX5B1*NChHqO;z_xXw+?NxiQp zzE(Uj7dZ z6^R1Rp-S=fNu+$qFy|mK3067LNb>MXvHek3V~N9}lG2@ZfO7rm(!Z(|Ga&~>Y~U@; zqP`m=felg|QpnmwY?4E@4$y~?m5rB(rMYo;Ywd0>RGOX)|4r?dw}fJf1lbtI<>nT+ zt+w%78T7Lg=5|vMtN)i@77(tNF+v#(B=5u;l z)H}c>GQvsR%P)r0mOPN1?;Oo*hTzgqo&u`@6)GSZDWpOIH==EnBUU}XG*rH1-ejQ^ z8Z{n8a_?iREl5(6`3)0(GNu0mDl;pXn&7W2Lj9&kcmXZ#PayrK@v*m>z;!zH)B z^yTQtn6Nc_=C2k|FPdwJif51p!??;TI+*HG3(xhvxp~sLB2Hd}!vAgls?AvVY&P=R zCwR3_A}8lTGSr?-CyDi5OuydOK1moIebiSxC->)e1LywUE)jH_qlNXC)$p*K^+QjN zLodGS{rV9RV z%I!qS^z~RL+#b!zmmnCX(i){f6cY0&fDCbk$~gJ%4CE5!E--Q?dtzY$P>NFc;-OIr@+=(x199@OuW4aP5b4g~qtI)j#WLmN9V8cWz^5AR#;j zwKET0qx8AZc-vInSwAC4z1!DlIbBq9FebJ5kbs?IC?EH82d_8pG8yBT2Z~UaNGoqn z(zJ0-OdBql##>LaqO{Xyz4{||qK9@J*B`B1x9K*{>;hed2A+}~j!gJwm-l6~zI&T) zuFcrx4(~#XUj;Tw;$vg6n~O*+{0%&&J#nX%WXF-frc_|O)YKlwBBzOie!}F6^6$g| zRO!L;u6=_7VNr69un=0~#CXJJE(g68NrS@}SaeHmSh@>ng55Rd+8*cA_Pb&*%=hV0 zn0S@P;xu`-mm5`A3fi9kwHJ78Y<^i8*)F@pQV)l&VU(nO8bKlM8@h@$p8nA+6IWRL zI3X^Qo$Mjw9`>$3F2tJ*rTv65{0q|=nQq1Ro3sO%7d4XxUYs?4YvEoQj)v`&Z`4n` zU4j?HgE72Pl@#dvd0LqbSqDN?6{rdja02*?Y;PX?vB(;SNI#bL|Dlla|6-XulE+T& zx2RR$sCvsT_CI;>GA8cts4>x(P?F9xE7?YzRSq|iR4cF%i~X_L?G0L)_~|r>QdG88 z!1rebyx|;AW%@gavEZ6N$@*pF-Y541%1hOF9m2Et!^NV`;M0ZEtjEiaKDjvOkf;~%0E@|BSHC|)maeO@U`Mx-N&g#ysUX`JW zm3G{7J4LWHUH9FkxslWASz5{L)w^(s&uw91QFcDy75oMlvc#UlvjY2Ehm-*itiQu{ zztacCCrEzEk^b?Yb{lId51C`m ztqfg=8p5;RnLk#|-N2v3e_AyIRAQ^myXrkd&P9 z4~RqgM#W<}#nYd5N1saU#oGiGM9Er(6>WcLDDou?vp9r9Lk$kehc%%*SqVTb|M8NkdD%feq5rSRS-F%fI0~hdrmV=tP74@~MrFnCcQ8|8hk4 zvwW?Nx+MQt({dN^nQ2MVuW{KVO$aN$pi=sRlAvMPp&^0|w9q0eCa$tIS%FJt$%+6L zxbT=Kd>4C%^ta+SN?IGUKyhaNu=4=}Z=3E}Bw8SM>5u6ekFUS9ju&EkhqL2_d7BS@ zSm~fc(<%IPD&FsgOV0Sq$V)zIF~8!x8REUjLfB zQ6^enI_v5*@O~oOf{jbCh}%lpFoezD?SO(LBE<#NS6p@r+f=b}gEH#Gj?jJaV{SDv z``-1=_1-6vg3>;;U-QtlF|^r^{jGY$+^X*5zHp(G2BXRKY z8XX=Ui>lW{lPd~i|IQFd_}e`NMaLzh=3WK!;KLq?@0vAGU2Qy?t$-sfjqm-E2H6A@ zvd;p+%;B2T?iBSw%pib?ycr2(Cc!e?HRJ3E|EfUAwz4@*%aiRgHey>~B_xeP++Q}> zWiXi~w(HevHVVYtZJ+%U;u;4RLLENt6Q3ThMy%q)*z&a-P{f=z?QfzIG?3Hb8N1>z8i zYk6$l+HbLH-CjBXdW_2$gAX}5)DssG3|?~Hn1jUc2V`xT|m3BqXj6 zQ(G-nA?s(Z?4<^R&?NeOcRoF8eivAauhuHT4*o2?H^C99I`Ld2GYMCpMAXbuTG(f~ z1h-`YrXW$sEySz0Z=4IBv~TVU(oE(BdRo1-Y?<%J73sL!{M5S?`XCMv(Pn*vg%vdZ zLi%1)zVLc%8twC#Eo%B8$Lq?d9I5^5LDy3L*Y@>H%BQ>q2#>hh|-YkYyLCYz@g>* zhhM{~7N@%{jUZ!6B+PDlCY@`$Db>r87FO01GFiOk&nT&XZYkR=ko8q^t?}`5Dm$~G zY7Y-T*<&%gf(AneH3PHGWVSWf;N(At<{^e_VR=701q6)g?{T4Rc7h!5`BtLv@LC&r zfDuwrJF`jT`prqO!)i}b`2>|Ft@&tm7@>(BqtRVPL^gwbRH^Qb7XXA=`&R@n6oA$~m~La+v{kh$>i)(@BNTEK`$%%e z$auPQ+Qe(-8mPA6-%GfZGa>5BN199!oqWmF5<0eR!;?5WpU@AQ?xhzhEF27PBuqA{ z(2q*RpyE$x;bxO-ny1M;`0$e>mPF{A=UIZ`SCaOI6bSM7)b{?s*V%-lUqruSPME$; z1`d}kd7-m#R;N{|c;2eWtJI*X{@8y(>uzmtr6wK`iZf(kvH**{Zm+eIzdy{qlR>2B zB;*kCq)9J&WWFK!;P$DgITR;@AK6h;*26CmSVA^fKrrRSte#7_Imo4dTix?|XOB7t zYWy`c?of<_P{Cx1CNSRRwgbw4SOv*xJqyUXiVh zp!DK`asZ&gGNC}-Iv%DeO^AQYfQUO5p_C#ggA!a5XJ%*hX#y*QzOg(6l3s`y*NOls zeF|r0X)LJ`uUW`nT!NumC|KII4H0q@5};%RPpc2J3+!NoO*)`17M7$a|f-@cG zI$Q{p$65pB-T~MnKDxwWBL%grYNtj5t1(zmN_hfiEFt@ih2g51kNUfn$ZT#Ke|{X* z3(^i&RM*>EbeWodxR0I=+H06O%QX|)HPP~<;iy578R#+APbmV=uD$TjnW3z8F2UG3 zAs;U{N&@UQhEK)BJXuWyDAU*T1JM{r&#UHSKFXg3%_SyE&*~GU$u75wf(#AeA++R= z8Epj@|NK9@M!e*^)OzNx>g4{j>@{9DjATcPSb^6F#}2oX*E8VlbL!ktu;Uv!$VGaI z>Xv;_;fWdwwr#^t>?lY;_rFckgW>+qU&{Y)i95WgKIUi-e>Bctt9_q4%ee{|o5(&7 zJHR*el`)q+>1tA3x4m#!>+~fjT-ervLXBoh>x40i5x=XsFyY`uHxu2S{*@BCnm_h(`XP){=tpS@zzx#T2L5fBc6+lMAt3TUAfU3i)T$_ z8u5;>g6L!|ChrR>8V3ir%8Nc_)SL-0*Le-b$#s&t?YKi6J}j%I#B(ViS8v^K*K3gI zL)#JewofxJbyx#hf9g4k^oTRAW&|CC5_8Hg!zNh*hME=O{hTFYVxMv6j6m8v>fcya z=A$tg6sLeNuMP@710zc9d^A(A3e1=1Qf&(`RYhg%-*NZQ-gddY-q5vw-~)G_@Rnnw zR&r?0bhxE2Fq$PZnqQ=SaYE)$fJQ|z{46#4x7X@Y{nFEb^{ZV*JGkVRNK(0bDh4bBq>RN6m#JTF?U0ArAs^ zG&X(TRGUH`N`X0yo4}lz?fzka|2nnX z-tN0S+zWM8$l1{f!|$7;n?%s{5`+aocK!nCW=ZrHuW6&fDuF1P{#?=5KVw}dE@&b- z6K*_YDTE9pj0d)O{o{QJ!$~Eh(gNV|5A-kw$KC?6F9x3#fQj6%tgjjJzpI>BGKu@Q z{GnTTh3S6u?;zc$c)ac7*0c#(bib5V)m0=UoJ^@R^Wrvb5n95rc zED`ZZpYLqC3`I0~(9Q$boNbV|wL~63qtTkkXV#$n*BGf%XCYPRaE(~L$iu9n#Hod& zTqBK_)UbDFxv}0C(7nX*m)nRzMLGjFnn{TxxlT2fZqm)q{Q0(a1NUdN@%lr&BK^x7 z^3P!~ZVx>3Wz9c4>eMB^dE*n9fK_K&V!>BKWMRq30hObpMqt6zz$TcLu*^__-D4lp zL}X^L^y$3vh|rV8T9GoaBTj;HICx{nr^>%d_+yRAgHlRH;wVfm4c6sIUty{q)n2`- zt1iqlwWCR;w)C~!oA8d%(*b`Mn%OXk=(fX0HW{AyPf5$c5iH$o>d4YTjg7v%{JQA8 z*LaOj{oF`hKZ-KAawq6sGA!$kXgUW{$z^pA?2~aucCzQx(d@{i2>W)S<)}1o~K2NYLdN|>_ zM&B>_9OyOt;rru8*Opj%J3y=Byt1Vvvw#3}-4|Dn^fz46VQx(H^+K~ywY2C3WnZJ+ zA`<+IH++NK>RdcZ)i&-!jby8sVu_Qm%<^v+ZK*ix^!6h0{?3sZ_SPu;dm*3{vQHUx zkODq5puE9LwmX6*!0!Y$S{mVJDYHfbz^8WwSU;MS6pT23w>CdSZXYnT=Z$uCXp_q% z{VOej&l{=6^vOQ{82YkAXngBv$4}b2J;*3sxgSh_eWB_x;*BkpB*PeD84;v;{ohpCl5GO4Pa&?SpWumLIak2Ao8d6&O zvesOBAf9NaSXi2jIRJn27xnM9iI;k1UHC1F#oa;dl6A69!v!stL&BZxCv z7^?(Sriv33)9JP4Q7TjM?}#le{(rpxI>^jIQC0MF9&)tWwZuQB-r&x~MvGb))=9h` zf3dJQ@K9Lr+CO+t=H1dQK<`}IMs82o`XAtwIm!^gP^Z518zz2Q)xTt@7H67qQZUO^ zUZ&kVUn{kD{rSO5X>2jtlJ2DpWvRIAj*zY39(jaEZHEV5fF7McME*%tBxPc!TKHWU zbVY?dT)@@l@ZH8im)r>ND0N`0-&|*Qo0=C3fiFzKJvKFhQ_M7Tr(KexmuNjJpK-$O zU(8keY46NsYV0a8RFUTGm=7!U7#K$Kq`4{$0p!pxgKBI$;(RlS`u(}@!cCv*j*mg6 zU&osFq0jAE;}_AA%;1w@+n~d(THNJ;$+&+6J*JTn`b+SX`Y%%nruWXfyDAXmq9x)1FU~8A^ywOotIq^u84fHB#51LOs zv?^r455pEq-bs6C7h#kRqGXNGT(bYM(54fn-kQ?O>gkmx!s=KKziH%H zoChr#6I+Gxq!j@)na*z)wB@yL+5Gma{egrF?`Izl(dx&KCI*r0-%dG~DT=L~=`7LO zXuY|}7o0&Z?UR@SPaZH?%~HZND2$`^kTiY{O-a+N7zg0m;Hk)3;Wy+0Md7561N zmXs-})C0H?#+ewljT7fdA&a!?(r6m@+vye(R8H0@J#Y0CqeBi6)Vz4DAIakegOk=D zX+{x4uB$o`PIbNuZg=fom?e1mi++*$NJ}Xc{1t1*{E~b}fZPqPWENn#u6j-6Sz~55 z#-Q2<`f`iXQSQb1Aiqieq=(U2ZK$SE(SI_PHko7h-iQ1^6Q5M9BSi9nKKvtt9B2~a zkNd`;&0pNuDPfh(=NsIU3fr8p1>vI8 zPK1t;>bT@-dN}#&YM$!y{Ume+URRy9bhbsNc?t`E{V)~?>qDjQz0(b#q-j1 z{m9<_@eN3=y~up+`G{H7{A}p2-!ivK0k%5RJHp=Yx&YWnMyxITiB(`?-`t+ANKBJO zm)Qx;Ic#aco!xkqB<*YtCmoW$Sih?)`uiGjwLF{1#l%A1E(+Pbt0@aoCMWLI`?rto zx3?Q{_q&y%i7n`R9%ZrWI3iEx8~4Df0;rbMw6#oFE|Wy`o=GUt0lpdYeEqWFCDy!= z*U^duUCISpP-G*G0!@7Tht86giJEoR)>2#-va|bGf&aU(dGO1;)t1dm*Hu^3R;hoc zczw@!lzi>3hh=9Zu~!iSjj3+x7EnnX)21ju+Mnt4T)W0~Y1K7@kBYaxjFUT)R_a3H zj%{j`{Rx=)dNAdp)<>=Ak1M{-Y4_eC31($8`N0dHa59Yd7?}bqb?LU@wY%RvBpv;q zY*}x^(8|b0d~>l-1U`n`kcq%0!|dLAR+GKL$iC&acgGr;EKa*Ws!_aT_<_}!!$@iy z!^;t2R9$(w^p|qNJOC0*nWeG}&;BRwuGRagODo7l>L5~rMzLo?OQ76L!KW}*r7Xc| zr2{)+ax6+45N^VSmurtV=Qi9wgCgD^?TpLa*4TFcRJXi+&jC*tNgE2wIbx7GG+N-Y z_3BZ~<5Os6!Vn(JJb2d{>>Ymkd$B^dgtI(JmWXa2l7&J?DQUG%IePap(7SdIM`;)4 zH?;Rf3$VAV^FC*SyOYv?mQCE{PR2@K^JOXmAlvO*1dAxucnH?xRhVWb1ji>T82T7X2dKm5x1hYHN$+tnq_a zlFm;J@}w7mEyX_(xgVtAJ$~ZPA%Q)%*S->R{~Wp?d>K5_iRSD!>5}V)L%yT#Uu&ep29G3h5`}kQz1X3%+?J&H(wW4&UZ3af; z{8w?N;sUiX6RQHoxGFX8gajl<J3wlpoTY3J+XuHNFV zer_Dg2+kg^I}e}(Aj~Ih9s2ug=O&~(I%Fr|Q$cM1uI;J4jpn4a2M_Ff`$j3Jap7=+ zp%gG*P_rDlUmW4lW*&x+|K^d#Ju=sQp?-5DMPf)0t`iM%9d1u!G!9y%C%SR4%`?U`H{;t zkGqxZp6kZA^={`=8iV!%9UUtgEaa6#Z4~5!v0NnX_Ef_ zE*s?WDZvL^9*`67Kj6RZi-pP=B(BD$aAgsk376*Ej+SAqqtyTx@DyK2`(jZ|og*8-${JZd(m~UhXFeVs{|}Yd+o7dmaIKU9Gj|{z?x!aCP#a zL!Ge@5oIuq3VK|G?wlxIICBC25x8Vukb()f{Z0?vcR#dUog>k84FW3% zU@i;Zd$Ai?6^h_)C9D>8R ztBpCZB5uSw2z-)4@{qZF@1FgTK?cCNGBi@Hr7j8mplSSz^UPj>BTi!!WqzrT!X+r% z>661l24TxPfw7^h-anHOj#D{3F!9W9!mi_B?4-Hvkq*3x4+6%W%lF^b0`(LhCsJxi zvbaTCFSV_UhCnLhg?V8odZ!g*50DObH986ogxg2$l*i^oJ?g?V_;*xs#dz z{hid5CdCJooOdbnp<|ZAgg=~NRi{;DX8G@H z+&F<3jb!zAtd*a#62=jkR5c1rlxJNBe!pn3ga*`~$DE?&-V30OZII>iCu+2`ngc&> z38*9`0T4t);X97VFXQ{z*^P~@mxSY1OBZf?7PK;XGE3HJH7rM5%T>oO{G~_Qd^GBC%^Me5{&9h8pLk;O}z_bj}ywbhnbnqKQ=7w z-5%c<0J?a`fsE9hXOGd29!n@PM#zp7bz8_j!qqln6lPD#w<%C|BUb0ulBzPll}~6T zO7TaLM#0?Y2D>FRs>&x3E!br>;o#|54#%7=eQw*hbYA>q>N22BcaPi+Dy!f^P~|!8 zcMlZy`abBjQ$`AuP6#+D_Z>hL+~P&eMjQd)aPd#eTos5FVp=LQ=x99jHnAv5vL5YF zA=Ei&O!vpStJ=sb3OIu_`2C*4N`h56ew~T^RYD$TEVqYlJ&GKiIYzuDN8(X5m@t1) zL?cu>8w?GYTSJvC`%b61s@-R47VSzr)Rh~Hnb_A6cnx##PA8nNQ^}R981l6MtnD@1 zrfz46N)7*Rmb`d^%)-qk{w2~)2Y=7q=d{a1CRtHJI5e#3K#kJQ25%f$b|k9kbvZHh zRKiu0KP5WcS@a3^eaTaW_$)MYIO_2cE?ojBQnDE3E|YM@IcO7=2mrh@ceBp>l%UJmjGJSsUpq|IHG5G@A;z!|dw5 zu5UOr+0!nL0o4jqj7c+atD;*A;7NsZRM8GwBHQ%_3J=zJC(C7v_*su^H17Sdy zAcv0HBBwHUK0OB2XCd;yo(Y^g`BTZv`<&n_JYNq_OYeMEvIq85QCGL}k*`FdK~^RF zB04G>t#T!03wAaT zB{f5>*x}W=z)?f5z-E=niL_CDMv;@B*44Tp`RD3LK@y1shVp}s1zVC~-jkM&v;A6n z^kck5PRT93{0sTGot{CSDwq{$4*)y2KkGNYoL)#Ahfm|>44wv52?zelA$c~VC=qJI zrSzy3<%yJTcYy4n=q$>y&}lJZ4j6`I&i8WDBY=fh5 z`qEK)b&0p_Dt2Cl3btVF>Dnf=XMB1~-2rLpT*c=nBv(Vm5$IJ&yNWAg1HpCwDW zZQ&T(?`wswdDZt=7ZU-%dKoS1d{d)74yGn96H_kzHxFo#b~U<1TP_NY3V}I1SkS@C zc=dca&FXjUrV4Mh1YB?jODYi+S< z17;9`s;j%3w2=(l=deG40YFNygQZl+A){Wj@wbd8nSShf(~{?QtCp%fzdW|F=%FY@ zRC03H{gd@9L$>qtHPtnq{`Qx==*Yy8tNgo&lekh*e7Zjgbd(dlM&XYG%&5FX75kX9 z;~zAmd)s`=6=0SwNMl$I0Mm&6XH9>u%D&H=N|NQBm9Q6I6@9`h#P_lpQ{{?0gP)^5 z$L~+P`Iqq4F?O1(pBe-Tw<^QbP5pF|9k4T0l$e?n#yr`%G z*RK&?%Gq%{K{*xjM!xxT-gQJEDoz`bib%&g7vTQ+#AVas1T;6{g273}`q)N3N;+mw zQ@(4INAcA7(;)S*HKhC#M~#cO0mN^^7D)T$!2K!X4`E)h$r>C1Occ(yLmj6fKl2jo zY-&23^zbcVM8OMl)R)DBE-9r3Rf-v9fj%((^jE{iLA`FdDggF*Ny0GCC{Fe&Bw;h? zs*ewQC>oiEmJ@W9Wozg3y>S(e0Kl{``FsW}be6ZxT@`~_&sXSH7*1FKG!QlkB1IEX zQX%8;K0%(k!Oau`Y%;g9q)CesAx@<}DdfobGj*v7JU(+72frG^@EYd(;1Lj&dkbY6 zpV-3ZWvc^@hhapXRBsurMqrDh5vf)%=5KgKn;8_^(YjMx@vF?)#_3D{bi-)VS7eHV zON|}gU+~nVL`EBL+3ALO^YS|FVUW%lTVdN#tT#Va2?XUc$Sf;}lVi^skM^qoWnqVD zM=ZZ2cMJE$jVTKa8$v(G?~n*dSpaZPwxj`+6&c#nU}#vmV>dOx+`Zs!W3eHv%qyD0QKn?L9-Pelnw_A z$Exn4R}2hGdo0q%NdfFtd5%nG!ohesUTw3*bE9RT#U#!nNpNv8)WgWTCV%@t znE$4)N-7#3QzHy`)s&;9IZVik3Dz1RaB?u)&&4Fos?@?**bGk>Zj}wtdSH&kH`8eiDF~kg&(93k|CAUZDX%(ZCQv@z4Oz`{mo(YYB3dnuQig z&JrsGNFtR6+HQXO2#vY~{!tBcBZ_$G)TkCX3WF+!QUa&9Y``HA(her#Pk zNmm6Ji(#E%ld1%O5_RVEsnWyFpg_MPsq_kfU!cl@Vl>gL(*1AK zO0nYw?u!%q!JyIIySLEeqR5#XiZi)o>q2aP7+bxho;}V+#lF5?tqsDmxV2Szm5MD2 znU|76kE@6X4vzf5i#W1pIVC-EtFiW5ahB@)p*uUY zw!nT%j#r^8b)H>E!jAgg_2jb_+)rOF&h_JJ4%w_4Z#r19Td_`gM9d~`<@n$sMH?hPRxSAEMb;RbiLkLz8ke2MEh*j|5H6XY0# zF*J10dF2d}zUuPxvZkE)NC^OCBBedo$k2t8-#Q^aRvI9lg<(pQ%vB+9Di3Mowp(G- zj1J=`jc}r4gUnMi4y^lLhV2fX-2OcOT6<1L0rz#ZpMRbFptc5ec9&@+&TX8<%h+^C z?6rJy0s>2F_Yj>u#m)3sNp(0qP+Umr;=XzmNZ-6LPUJU~%1*#oKIj*bkKjqNZ+Fsf zDM%&B3M2huw@st=79@JB&ApG1jycix`k!<#iqXh8I5fe!Qfw zS)ewo+{*E)UZ@x(>PJW*`^V++==J22&{L)R5;$?`*KRje?$e)p^QkJ_lKZ`d^~NwHj-8b!C9Ucy!wR?GH-b|#SV zK+Q!`fp7DzxZmy7<||P`rS5|vS(w{y&+X>}R+=50M4I@n^O6XJ&hg3Vz7&Jw(PX*hP&XEdfbIP_|RKFCP)E1uFSqB4&S^bPG~RVW2Ucr1aO9x>@;-f8_mBcDX`KJP#Ksy|DzgaNP>!} zH09@JM)F(S$g*%f*&mY5gLO^4LyTcU(P43f`7e6F`J!Y)(1}eDDZ`tS0By{groD^+ zIlX{O%FzkTB9FTPHnuv_0%BD9okSP zp)B*|m&xxCKU})!mC_?oPtogBxWu1lu08PE!M%9)MWD>A_}~%Sl2&#&#A@_|Ln%n9 zUWw>T)A-!CO1ENiPY4N5!~V=HS|*Lm5Ah>KlSf?isrX)l;B{DANIn zEs_*kO6bRMmk4Su!VW6Dc~r}Z`B(?uQ@RY^3+yA<%qI=US17;ayK8HI`Z21z-Sq4F zSHrBh0}J#&K*^*!eO=`kQX2?fhauWB-Mp@R7D=bMGepYqDcBO6*eLCHW=Eyla|txX!4(Fc?W zZ#ItUKUOOY-)EPKg>YXS zhMyjmSJjVLu*K@#We^K08ueOOn!}3@WZ_=FMM$?y!YG2;hl}r6qo4;jY?oG^ThaS& z*~Gp9*g%rDhqg=400c@H%iP4%!9o}6)U-)_F_7>TR3w#J_{ufklQ=c$)%K*pnGOlx3F5ww1`KEk~F|XJJMvq{0VU1M`^oqo)1i*l^J|f3W z=YsNiHv(<>D+@Mwmpq&R8IOhnZ}u;t?=XT@*iAkCYk%#B%n0_^OhB`Lo;zHj=@ZL) zD0dRw0n_L6J7le0XW%ODKe3k&I!Cl<8-hza(F-leNdRdIiR@HM2n#;fgds%IXRR}k ze-@Leul6mPl6;pjl;m!mL2!J2MY!{Y>}#lRM$T`N7=)0TuNbhfY7%lg3vpjuWqkmHz-qX65mtI!4Pn51&CXDb8_6Depy%d0g&5OSO|* z(Epu?Q_<0_O7;yozhA}afX?2H&+Vro(puSM{A=RYxn~6mjH>D#KFw~A*)IL|l zCY9x?jV#Bd-h#lJRUtf+Tb#}#iY>65E6PAVu-ZE_chjSiS6zMf&S`b6ABQd^8mcIS zf-;mm9)cN`SuJ$%>a}lr%Tpb6J5$C$MJ29Te*+}9{jK|nM6DB5J>xN(9eSrkQ5o^t zV@&WsmevsP(EhEY2; z=ac7L&HnbZt)k+Jx@}z~KyY_=w<0N= z;8M7|ySux)d+Jw zI%R=^tl4dAucK@f1CohUiV%%~4I&McI~&_juHCT9lpwibpuL_WQcw2K@54j@}jKG-j$ zwciAR%_mhSavZ>ObP z=%!MPK8nm({(kS7U6OI2#Gj)Sj*1OSxzniEpTcrbj{Og>d_VY}9kq;&e>*gfU#TEv zy1bSWn%;=?N=qI#R-^zqDa9WU28o@db@>ZQn-1Ier41bC9%}DLk7zPcAX~IBNHX|9R0FZ&Ta7 z5fX8dJINU_n-cMW1*xgBhpjs!wMhImO7P)VrPQDvl*2?m>Ec7-&D<}LK=@npWAuVd z$_3*a;xIHzDl_>YokPT%a?ZBrW5AMD#4?niX#W!Z?5B8A?@}lK!!uCCZ zrI0ci(AaGJlT;c`s_ti8P)#WgfMaFvzT^IDpsBr#VTrlJOlu`Q4h@lXIb+T_gD(YN zwenijb7;)C%v!rl0>4WW^TfrHK?6)Y;R;Mxk;?H0rtm+t*%}l5O%9fXrxdAbD!I;R zrDM{IgPpB4u@Bx2?MNRWnU}2y85@9hO6=}$eJ+=niiZc^*xX*V%q8b;IIHAX#G4D~ z3Eyki(1lgJ+6xOaD0nQFiQ$8XVzK3m7-^z2PVo-HBwEhEte_fy zulnj|@2dnO$8A$+pb`hQQa3yVU7334udz@&n*O1 zQe_SWX_hd^VwUO|gZO-FTsUm!V^VBG<(C?hQ-uq%#*TW@DAvhZq2W|~xdaOF^g~$d zar3)ZyS~{|I_`IGn6D$1SWJNCXrhMCWvyf;%v!=qE1uxpF~TcyRZE#<`)aXaICs>b zwNpU2>A~iiry-2!b@^VMQR|oeO7Bdu^qQ9DaVC9_F|}O%dC&^x5sg zVomZe}W=jbU)r~rqbva0Y}@~WO>_QZYf|i-t?Bz z34BHn z1zh+Jy&w+~C7>~N2tNj_H;>L@+dmjng|#VLg^9Ts*Ov7!zMkYtZEAuH8v=`d0>&?n zp=Iu=UJo_*eqcp)Rs5y|X@9O>gjnAJTXG5fL~j%krpSWKBEOX+u&(PO8@F zEM6zf*3xaD=GP1&oYKYWNh-MQ$d8Z%_O*>cgEvYXdk7z)!NPYKOaDErEP*mQ{Ci={ zbIrp-Ur<>mgAQw^fN_F+q^S)7D^huivwZ-oBQ$-OY=N$eXS*SqHFHpA>HzzzFUO}` zWxv$XdOggQjxLcplHW$9QuFry&H#r7!BqXVbWMO3J9AvlrZ2L`>Y$-YL})NK1%A@p zfGom7#)Un|HNosU3kIQ*BOslVv-^W{Q6lfbs{X}LSfjqVc+g3O7&+OoVrW~B(ffq; zb54m|j4#>JW{>>eqJHJM5+xe(=E8Swhb#sR>CnSYT0NJbH+P{aQ4Y~?erA?Re7tkT z_gmYYPOrqeJ2x6E(!QhuVzXs$A!OwU6sH*Sr!omy|=bJ5Fr zf_m{g*0l?{H-NcsIVM3oekk8KY7MZGloHZ@5)pmttszaCMHZv9=&SmdN~ebR9& zH!BDje*zBiuo80}A+sW@W%aG!im$==gnK$B!=OZd0qqKiJrV~koPxE(kK?M`JL1@1ozCZ7X^cVlU2o_3)^&)4GfRs=2-3>t8Z(Ghl1CD?{AdeOp*BRA;@7I?j>jTkG5jJP zDaNP4U{sP^fl!_BrBkuG3G5&|9>Slivrd}Zol1eBjm9Ye;SCB)&78(wdkJ*h^6`OvUcw9#$W1GqN+ zvRzM9sHA1d{|2S;*SB^zd7$}F<I9#9Jz|MEAGSJej?h+{J*}aJObGQZ`Fi3>h}mW)JSg_Z8aQsB zw5kozm%p8^fW5)KPgBW*4K8i9OS26t)>ts39pjrhj%H|SW|NCS-J+*>-J z2#+4Q#=Rfu5f{SrJL8w89t%fV!cUH#W?gdGckwB|Qt@V;)=u@HR**>Qj9?bg5CUUK z7fWR%uhe|nRpK6X$Yhj;k*+4@^}Zq%ujx$n965ff&^2RoJ^4@{0ZarUaFBYiJZo;< zYGJbBl#Midvsf+s`Z;-tn<#3~YKTC!B8E~=1@V(w@b}UAde}`Yj^UorQsP3edIibGXKs=x%tT~>$$*}QT!nUxeb=K7`_){!3w(Y^M7#Y z{--|Ue^+Y$e^qt=HTDbAulj;5HOdF@N$OFo3=QCaE(7iuTUHKzbM}`0 z<@eLuua+n-U}hFoSSrt&JLAkyGiW!<(3i>rz3s1f+t*b5>oBAfF&OelZteG*E9<#J zqM2Q8*Z{2QQ*t{wQMt5btrQ58EJB4`r>QnAl&Lo#^t1MKQG@k*Rdh&UAV|Hl+0g-S zYWh~+c(l2gnu|_X*dxN@-R`abGIvk@}D_r?qZok&x&72tE5K@L_!I%6fk{_>TR4Xp*K`C_ou|D?0%wMQ0`(Kh<5#4<7SThbyr2VHcva7RO-!C1ve#BA%ysAg$cJJ;4Pfk{HElQW7*9__@Xa;e*jq zd#l~?$BcUIB>{yChaICbeoHETvmi6CG#+^O!_Lk+?~gtM+gJlp`||3FHAD1HLjA({ z%wV!0E7O3RJn977DlhPbm(v(0Qro*jic~xqgJx0^(Wi)r()(rc5fKR~pov`hJ4} z%Cr`(6qnIyqxT?5km2gBiDcwyfCm>)J0IWp4 z#q&F`tSZ^vjbLldcVKsKr~f2w%%U3DOux8gCgJTkuXlO}r(A#p?a($ifZNHnS(TAB z*jOV;tDMr$W}xK?8nhbSPwa_~1j?&wr{$)kbig)#VgY1hXc zczT&FyS}cOpwMnkru0B@7x(g#?=>Y3|3^Pan&nf@nDY_9TVGKqwZxc{vYkoK140+B zd$KmAiNtirX?#*tq5bJQGC^uU)Foqsxx&xJTW28)tC| zGokY~dZOOKTzpgH3E;iP`-~PTjd^|8AB|5jb)b;68$z6UD&SgwAz|TQ7jvPLX>NV!FP4OVZil2(d-o@R9!N<~Jr3V#V zExxar7m|^2wY?iQR|HzpUBucV0V`(L%`A1<=6GCwEp$d4U}iM{WJY30tWfn&V;BAXa4ewy1!cK zHWBlIb1 z^Yv}b{D}yQAt{CrvLyd7rgeo~S(YrzY$l~bg-*j8mGO?jS6_(F%rI>FmkLZBg9wf@ zcf~h^5cS3V2e>Uo8ES=LV%{-VQe*2u*Q&;M1RPfCao}#A+zZts>fPrIbg0fqX0 zt4q`fy5^W!yu1yB4U{hw6}N@=weXoqTwDn(+pwQ{frlA~wk*}|wdQlcv3L~aso}pJC;o=|*i?dXU|MG2X zbTG*YUsu5bltc~N3H@ZVUEe`w(Yb0EhNacNY^&{2+sUl`jjP;XkA8KKha;c@2K2@# zI)8deszXQx=jSPcAD1yozmS!x1opeAZ=qk_)xp4QQ1r)y2O2zF@hvNj=6yzQ9AG+L zgtof}BA>ZCEl5@OkEc?d8-oJ*8WQVk7(STI1oo3DSHOUita>kUI-Su8goxZsfBkF) zfEa(#nCcA;7nf$amT5nqDs$d)?Q; zZ%1ah`Qyt#6Zw&`ulP?YDsPo4Vg8C=cR{9TG#~HYu~>(c9e-O|=bo(ubm8xK1Ab7B zE8*Z|{Bnq9^WOF1w3tCiL7Fj&=m9Xe8g_8}$DA4|oSPO2-pJj+t%9{0Vtxlat?Toq zns3LpUaop!8Ue+dizW1aturLRg^sVAk#6&+HxgaZ@ZH&YzdfEfEDojw3VsxA@_0pI z+AE|+tS_V4EfVG2#K|VK;6#4tipJ7_6Qs9QC4W|Is+mmH9;R)9h{47d3<`D#_}>!UYIxd2=|!;_I#spvc)H-GHAqL zIXnQ)DFCG_t$5H6R~xiLgBc&~a3Vj>HaKO`6SKgbHfon3X=U6ocAr7))DlG5Lrr*kcSSDmPXEEQncLfg z)#jx{nX=&YEs6IC{$gm&`!=m~b|v<=`w$;-Cs-Hi>qZKoXqiOm3zPx3PyAsri>Y7) znI38oX)^|1E8zJ2EPkjzJKkLv7C?s60H1UQdj#|ITCt3UG~`ncl9*q69wjVY{!+3O z{O;b{(QLOc`|9vb==Fz!U#;>erTS&@Fr&P}I%E>&`%g)Yc;PQ!bqZzoj~HH*?wXJP z!6-n3D?8pCm72dOJ6MlSC~;R{_LFhvPN|KE5J61cgz|&-_KtX`_6u@1{D(8#a38ev z1#+F*CfD;TXUxYe%g32L<4LJ1Z4pPwLso6)Zp>NOZbuxN0)Mm^JKvVQBUT-3hCW@` zh=1C{P}z5DPvO{?N1`6(->vVl+4g3*+;F*9S{{_0yhJOVk{SFNqms5G?%4t5I{}f3 zVCxx0&jGP)+PgnaA&PYrqC%4!}CY+@u@m-(pE*8ssicVX8K=PD}kGlJ`|8U35}k% z&uq3|J*rZZcQblEZX)xejV)OnWQVO8L}nE=GCb@oxw$$mydw`;Ay;@k{{gnE*WlvE{iy(pcq-vfr>04gGM_a@pEE1C2=!c2DqXolm7;1v!<#NPJ4n zN+3=aX8Ea81`}uZY`u&NM;+%S;kRvp$CR#1!>y1KoaV0Q3vG;_F%_zNvvTiBSYJcJm1swM_){ zPfxUXwaZI5*Pl{k-V;D$A^{VlR zU~bwu_dFtb&%!XWo$soggOS^44?S4DM5J>W|7>~4OFaTuhgJf20?KHz=k3FivuJ$-r zxkL^|?YB1-hy{-Dddh10$b9Iz&t{#ZO%4O2p9U%xqsU?;#m)fA-_ zTgm_CIH`ARl{wa#lR!VlMhOi!TOs=Ef0ms9*;Cy!I!mc~W~tD1WMsl|uwkXZ z%%-F+dtHI;=KH1A(F7m-9Q7zQH-=TZTIZ?=6LeBLw_ygm?VnL!K5Q3VZk#`a`?QEU zUo}9}f3)g-g+{5nMC@XZjF zeU4kWgbZ2VPb|_WFdjro!aY-!W6rxbV?+ z>$cL8uu6VPF_oh|SvBp4R50*cc1EI6cqlKBpuQFR(|aorHL$ivKiIML*<1bAtB~tW zGXd;u#P?YBI)AjnL}2Y?1CjGz-74I!XE#$VFfi&!BU&hwbgYfSJhFuolkj>Bkdb71{)BI<6;fu^X%pM zIT)n}&o`gW180+_FLnE^DVrJ$@*XT4Hx1SV^Y~l1kdQ|7HTyF+I`ssUOSrSKz1^^| z14#^LsvMe;a`0h<>_4L_184yJ{IPqT-Q5A2!mM#EhXmQ`xTUJE?c~uSa*kB{FKdK4 zOo!_^Q-+l+8s#}Yz?OV%4XlgXlS}0cd{6QpUrQoMQtC+DUH1KwHt!HyWfv=am>=6^ z(VKA@O}nQ~8>&8wlv|NL>L73tey zGz5Xh7>EniSB*3F{*W-~$9dXmclVrwR?hwn^z9$GI-sIZ%|ISVWgCh40Q9L0vhs2W zC1went^cm;$`W?*@UvIrNXw|XwT|rVZl_&)9FH-Zvm7$LR znBXbjQt5=}Y*V=;D!Ikuhdk1hk5nEt*z+Vs%t-ChbI*S>?FuDJY1#ic_#?g&C3M@_ z-ajQd{&p22O-^kEUnW?|WCCX^c1^&tKD}CQ0Lqx@7uJ-MHd#7!Ve~q`eo)5ANWGgx zCoh}v=HJ1pK>bpqY-KyRc%LMjOI45vQL%G zxpJjn+*D7#yz`UmIZB>X!GB~i{QtWV|A(*DYj4yNat&QA3nsC(1jCIC`P&~AvuCY) zG%=O))HUuEnY3uF{_H3${BEtYi7Cy+43qBmtu%2R+E!Yp8&OR52lV)`O zpyM}RiA6nIRq7qxyAL|e>-yX`>=-!5h!kxpkft>uML<9&Jo4XXrH#%!=!R?{_3gx0z;N>re z0UXjbS&0#axLSsiGG@0Xv$`Yx+BCWRVG+bIomt;*?sXs*O*AlG)z@sk2k}NptkVH? z)uxt;BP1#@h-h=IWjFPl6Z0F3+CNj|mD*@R%nw%o!EkAmethgwfhQ&}SNQc9%*{#^ z*zc-viGHxexb50bEU1JS80+u;IW_Lg)v|8ZPX1~yTdIJqDkxW_JMudp16T~W3j2E^ z^nSlpB>mLp4l$c}OjMh?0?Q!Ug|2s7{!4?yUR=_`eqcjLQS?vw_0*d`(;}LSvpD10 zbIcX<%HWFmdU_*O^XYWek9db>UgYtIN#8m<=Qt{e=kX>mUgegh-|^dXV0 z?cQ+tR)uQ$eSLFM%($~DoV4MS=rww{I9<4{th^9;%n!=m8$4qhQ~M^n)a>yVKQv7- zr!pOt>Gk?jQc5l190W83QZmBBda<{<0;|7V6rDsko^u>|C+bbZ=Nu8f!v3)uNR2V= zwl_|Cs3w&uGI82~W^CpNDcw&Ehtq%STeEz;-q&52yjA;MGiIc{@%ZiGx1Lt(++upw zggNa*FJdqG?~_xbygT?ZkF_@rm5z{VzB!u#85lDzp_R*tga`JLm!t9B7G)yw{wS{0 zqDjT4^r(!SYmG;A>Yxq)lUfDyK5K)1mFx!{I7JuN`ufyk#KF7_ zV)`{*jTtS5pw|*fk8X84Lm<1Y68NKJdP8)CBmGSPH?fn^LG5j@?5c5J4SVI^Z=cB! zW9S;(nf`KTQ8G;=e#c+#>L0^0wQ71qKkLvLar}}!I+!t0kxksAI!G^@-yf$(2AWU7 zNxx0T);pQAHCWX+#1_#fgEwvVc37|TbV`}=3)_T{+%omB?!Yj1a@X^;44$w?w;yr0 z^LZzD|K09o#l>`Wh(=p~KP$v)6jls7%tuL<_9`Q+moMKHa=j z3t`f5M~Q%KbMpL|byP#E_|tWw=fz8I)>Rd~<5Ppnwz9|RIZDTZrT%>kXW^i#{VaZL z3U{ydTDvT%y??DVkU)%w+@PHmR3v^$YQwCBtk!9OvD-9Lw{z$z6I?M=AfcSWe0A|i zCmsN+U()@DC*;=Q9aTkBF6l+x!G>~! z{nLTmRF$|LOTBofsJOcM!f-Xr#OQvgDAjefok7>Oi`Jexo-V@mO=1}sy-m8Qj1fAV=mNTc@%lb5qeg0DtcF$CBLyna z7^wVwk_M_7Eu7%vAY4>gP4T-23MV>wsgZ@+KX3~zBh-mVuA>WnohUidHA4Y2pSUf0 zgdjx5C7aHHJLgL&0ti@b$3DZx-#F<#Jm5~?0Q+5vFKUvQokj4#;wgBR^-YJiZ-h5U zxWW7vCPMbU)3-z_aB4#`RtNXqv%wWD9#kB)`RmuQk`6KJ-tx}qZ8dmtA-5U(740=8 zxwzMyo%fKx4Si6bOixNV$dA?NPa*M+jP;z=&Cl34iF)nQ005&244HSE3)etR+iRQG zlz;Bq?n}^$ioOlm68oMThtRHg+PqF$#FM#rUvwG|YXfab?VmbY^%S)CTEy)psrorw zEnC{2Ff%&p6ARI~t;Qc|S|>NyrQ0uG|D*#9B5oC8SpzVi?B4Uig&k0@NHX|M5Vt$# zb^pf*U8zKh3!hm+2A8D2L)}P>9Bx1>H8g8iHAB;p;~<)O`iRd9{rLO9N6KRj{jq>) zK`oYMg_R~G5mNo6OI8JuP2rkL4C+0|MeF`GA|Zd9_dA}BT5j}WG2>NM$zpmet0h;* zQa+tUK;tInI->1KF-$6nNjD4$HXEVX@D4lTXy+G()mnFQyA9zc#q=xXM(xzbi+wWB zFfo#I{ss$dbURn(8WAH{KjOMs!=f2c z%uSRUzfHN@0!eY^d_0^TFST`=(DFyzm-}*GE@I(xAscz*C1kCIDmAJ)U8E{+m|1Ki zBB2uy%Wasr0ep%=+PH_11epYQ<0iFZ1|D*`{M9DT*&o$KMmC#lwt|$TYmA^{gnepr z)A2+V7yl^yTOC42Prw;n(G3Hpo`OwCGQYS3{%g%Rg1;5Dg}4SSRtK>pe)wOw3ttA&Qff$NthF zig()m&ynt(T1%eGiR0i363D5J^7D(&LW$7MjiIx>FOJY~T)xQ#+EQ6GaVUp8ckYw5 zF)RG6L_9^RPsckg=#`GuFkcr%F%8phJCv<*Y zEg~cvuGo0(W|sX1&A+AEiuWe@J%uIKvK@O?Tmr(E32Tw~#YY24pJIVE3!7M=I+Epq zCxM3hc2dcQO;WgR-oS`;CS|`coiWkIb6Ab7jLQ!zbg9n$PJ^TlaNvhfkihh@*UDYU z$HgcuxL>n3y|s?RKjI<1qaKH{|2(l}3FC@kJ7*Tn>PFX%e4PemX0rCQ$}X{0<{HRai!1lJtawaWteT9$ulPlt@f4mnEr)MVrvsNHx5AT z)j!@zVSsC_Gz9!SS^l>}146Spl!j>{cc%9ygz`eFG5g(6EnYD}B6~FHmzMBYX7~Mk z!qBg;=fut??x{_R2i*MkAMdW*Ja2>eXa+)O2Xqz%>Ql+Lt2Tsd#Mjiz>9N&{IN6GW z^ip3dprGaMximC0Y9&9^W#BFka&{aJ$2mhk$aOYv9U^}Ah^tmAqQcA0s5Z?+JYS^* zz?Y+oUICo*p+zIOS-NjU?KI+&q+CKM>3XCZ8y~)l$}@|$vv01(oH^HK9?k@QPa2kd zlNz8B-HNqx?C#7wo@k-%bEmoGn>HL_j=@>6>{YJO)xQ9D2RX}DtH9qW)@|NR4VEu7 zWt=^^GKdQe5G-#K?pD3LFcaGBa6e5%Z4F&&Wyg8CE(xRaA!cdh4SM!Mo69qr+g(1x z!D#oj)rf|t?8W8IEaF2+t5hnCH1x!J=^S4bdc)xTv%WoHCINKWvVs|#j>tGX^JJY+ z0!?y{12XwQ%f^{Qwekg0!*hE7U^2*d*Li;&Jd@4|TS`ZwXk3>5Qs!_FVt=>C4^Hm} zNhJ>u3Dr>O8o{Fr@15?__|?(?NKrY2z%-(cMveJ%?(;fpRkin-+pi77TgP}t-6#Ba z_ya7q`EwypF#|nby=6Xm**rbK!eDRLSJ^q$MBn8KPXeu5FS@Q}wX|`=P;m_ng3>a* zjY)+B%HMj~FH$YpRcg)MsfY>+7y@Cb3mrR!>q1dqMC;uj-DjY$k%55RnQdFWPm(!iFu#_%ElFp% z^3?62`Mu`mO7rr>LhZ<%zxj$(J{h#8@)Cd?U|I*ho>*hT3%+`DB7xoAz5VwWbCLce z_6Or@#u6g8;U=xiiG#lNOXMt(!h`hHIJPxw1V|sQYS&ZO+aSK~_LEXK^e?N(gQHfiJ zRwBCeUkpbc2gkhJ0jU|j)CYWJ@8fG00v(-tUihK%)rC)GbluwGi)Sdiouj#V43BK) zyPsi&hN0GuF{%F zQrye4v#9|;;-)gRmB@XP#Gf*1L7EVuLoX77f}$65*)0mYw5PJeh3qWe#d+#f?06o6 z5SkKy-+9oA{-U9bJy5@v1RjqH^@zu)sAqU{+_|cP?;}iE(ZnmZz|gsWgER#l%tydS zVhHZ*N3h$%ti#Dj{I%N|MIk7lFr#Nf=KC`~x7q1Nq2cR>gNH??lk#o@QRz_=^7E`& zUjgKLYiZP4!CDJVu64V#KwGIM?_yBpU^B`vb{ADdDF1veM7UC+u_P%p%|bHwfBE}1 zUUMG7#CKU(sKF}Qs>1$$mqXV@(qT3DnGmyHHM6ej2AT<^^9$_I@7qMY+sq@%*3js! z;!okay{pw_LgbGt{^&LeO1F;)^$*{cs|jeU(w^LZvUVa9-S&Qq52M8ZoEkYsX-*Aa_4Ev1Y?YN~?dfTVRnNLIS)^T(6MKcjH@ySL>q8n3 z?&$nPF+y?Nl|sFC`(ELn@>dOQqk$x89^s}%^AGuoe2ECnu7+t4YNOQd*z3pnQ$lfEgqCQ*s4bcet%fE3H{~&e0r((Zq%VHv{lxn8%yinHdv`Hk?xLDTsV05T#XZ2tLsqVS(P~ zRrzWn@!8DtIR}LQp31Gi`Zm*j>AsqBN?)Z;FK0>t0kpd)Y*u}iSs>g>Nf&Nl8Epl7M6SV-b z9y?~Bw$*00KygFF9wTuSRZoLWo2!Gv{o#HPMJk4p1QGx{^9xon1vVTWcrYUpm03=r zghFCX<+-{UnTT`g=VDPA*!H_*%)~Z*HWwA26SYQn;veaqwJuL#{ii3l!@do5mt_Zg zZ^zbe{r(ewq<)IBXhqzA2)CQmsuP-sf>jUN6)9OWuou+{p=NQ-NIH?Vynk7+_ZYc9 zyP)*E?h$l4o-IA(wG!ZN!Tu|&Hwa&+#2X+q}WmOY5kVj=iW0PH#K9q3M8fH6l z&Z*Tpo8p4dpJLD9w~|YY7H<2iE^KZK1n#J8#k0SNkeVoe3Kuaae>F9U zd(q{0I}#84j;;$Hj^_?6nhD!RCKP5obci-FO=+@hZaUP%{!@$y&Vi$CI-!`XUAsWn zPG7*{nM%yrseGU#7!v{!W0g=mVXbe6DtFXZ9LlC4aUqe7T&yJZcHck*^hnNW;i;8y z;bbtecbegz3eg}KDo0&^Uy2BX6n^Nm;$qa`MFLb&Xk$Es%Cd4oiFBjLwAC`1?X*|* zVue}0Xno`=<_`FKuBjDXu5;3m$>M^OTf}oXU_zEJw-@eUiDhn4Bj?KRtfWBv0Z9W! zD@*_^MS*-S;CWRg;DVitAClp6x!y|3`n+j+qo-v8E<&(vJfS^n>yM67m)8eyw0pL1jnG!oT zcATt{FKoy4D#L&k%j&?pMz@J}KuvdGmx{evM>U05W;8@@fM_lf48xl*NyMjnnXKiPkl2a z6WnNV;LT4jhv{7|)+O^xL8F$-AJt?UR%<;KoM^`!(Tk(ToFd}so0c>)FmsAlD^(ci$F@%Guu4?=sJN`xdH0%M z^8C&_2^fM{6RRb9!Fu|P7u64}tvO7_V2i{qCk*P5`?pigN$?M_XxQLZ*QKD?@M)|7E_;H=@}-{PkQ08`hH8hUq? zf?`T_(?^}~p9%)F1DC%sU0$`Dxn0u*=|}QYLsosxtt-w}PM(0~W7=hGc(c0myP-fT zY`s)=eUY zOb@v6*GT`bW~|_>RZ;7wN>LprGxY zR)cjXC^D~~7QzMdj9LYLo6*B$RAF{Zq88R?h0|LHU;72gqVq8K6o<7jqI1F0NJ z4ULF5L%p{=dB>o?@h|p>DS6bwCNrD$`s5+fikP^@TamH(-9rY~;st-S9xiMWuh)^e z7Oo96zta@Kv+KON`q$VPXx4O!6#1s?ga2UaPT`!SF4NUGSsHL+$avUR{!ksQ*8FI= zV<%;`!#_XigZf3p@fT$X?e_y=SN@u}J0=HD-QQeH`7D}wa0=Z<8}a)h=`+vO)t)g*&EG*fBOoIp2`g;0 zelp{3-_^sng|~0l()ykbY>2eZj<1W-3UjSted-@^;8~pIKpL&0^9PXm$`Az0`9xhJ z6lcEBBr3DNp@CcEteT~^*3Qy3tRyZeRm=pOj|vjIm}67B)cs7ff=MHS*J^;qR6>rM zDc)lt5Z1P`N_iT3AI$GX=;{3TGCj(y{L2r zH8qXpi8ogslX-T9NkFTD)6!NK*w}e1+_7Y)oipFn#W1AE#3d)za_yQ_F)MY0aiGy@E*}RXQs(3irYL7;e%e*5w^~LuLQrBzi|itnA4L^UVi5$sJ=4? zzY&Jlk_JONRr5VW6wP_tvVqb!8v%}#Zszq>BnitYlvqcjm{iPJ^Sfz_-%i>ZsPOd~ z)pERzt z@U0vZT&5utyY@bAyacJ`g(Q#jP^j zbiU{u-yZDoM`=55J)mZy6Jn0Gf2)^^w5VJbFs7bRCa`1_LD6jw8!_PpG#uu*O4a%Y zqv!GB{{}1sgOn8{$uQX50w)XzC#}6ZlE}udqu~yUh2z*J_mN@h()W5D&H&Stm}vaTi} zodmYf0wRRU&Jy|u=#}{$wdYGsXO%OigB-*LT!w{LUb2_0AYza5JIb|`?j~a> zUX_{$8U4G27LYq_nK@AQdUZrRsy5`dTkP{boje41Iv`yGR`Wsfrh^~2()RB1@~-{6 z{OX>V-7;M;*|OJ_O&W!hdz0&HV;N0mDv$wgEu#ks`{V9@_!_2GG0KKK;L1ulOKob& zx-$D+QJ_XApGMk*Eb32L%{m7EuCtZS59ZAkA?d?WCn4*)k>v!IK0*rV=A1-n{e4*W z$dx;`b#!4I`%lcs5@|YZS0ak{eoFA>U(h?FrDDa&}OF`~D$(^U?NrZXagF9+_Ldv`kvH=hL&e zm^NoKx|=kW#`=!qj_9lN@K{*x?F00U86up7i?ZI8hSGsn6CIgh<@rhXkx^TqF_iT3 z9YYr34X7R7s)FlXU5-e}8++HZ^B(B>gF6}>KqQ|_a8a{;lpXDp&9AQQAae}nl)Pmd zl{@rBIYMFF#YWQPgXq;RgX7su@f8G+wJ(EWp`HGBbT|||#P}4Pk2dK`s?h4TnmzP5 z^2LHN-FlJ2gw9m&PgzDD@~*1OYHI!V4uN~wKwix|?4a zMG6=0d5+z1uuse6^y4r-Wg5aQ-q5`UeIBs;2g8XSx2>0CX*g&xBSa$rhgUvVHI3ZB zI6z4?+Q?YMOI%woxh zQ?ekaVLv96+S&qKDk|E@)w<#%Vv<+t64OuaICx{a%2m!?%BL9>4{9<&hRpV@D$u}Z zDm$C&UGILXlpHIIhY<#lD)ly#U&^mD*rybxquTdpw*qH9!_8gnfuaupxbny z_*$>|Y*`YR+08tj_6^oA-BgXiifXUO`wDfxXT3*7S@zizm5T&?XEUVSSOBo(7|syA zG@3iz2r{9^{tt)q|2s1@^sNQilV^IN+WNWc#5##t+M=QcaxdzNi5(Y%m+=bUs$(s* zeXP1B#~)BT+aA`-8BO-@Z?IYl4~GtbPBVqsMQoCz2u-T%AjacUrQNS8pK#V?GSAG-t*d1YGu3g%N&V#4eG8(L@GoO&sE zCSno2R6jnT_5Y5Y2#jZN-^zI)cPJ<*oaBM>YO|WZe~E#kI1^0aUM!- zF^I;s|NS;d$(U>;b&^9A=LE!#E;1f_o#j@N{y@)g0*X_sjjPPC3)jw#M|;?7W_33; z%EX~r9%*{+y|1m^dEjnpOLuZj!i{)*8r2uHxMZ^3=xCg=g49r$D(~HJk>ruf`zb)1 z*L|6M=-C^apI{cMwBQaIlw*jFpql?+SBFC%(&& z&WFM&Q3-u4<{5@Y=|>Xzh3{Px8K+~i_N#0xfMC6!dSU7A6q-SUtV%|H zGmKw)3rJMgn}QDS2SIboM8GDao9w9Mgav@vwoYswSi-@bNF!ZAC*!S32rnLT5{xll zNi50Vk00pA-Zg~HV9wLy@52ATSbM9cxY{UM7YXhf+}$O3aBsY6+}+)R26uOYOXCg= z4Fm~pfuI2zcPF?e-{J1muG&(k_PJbt;9YahF~&2v3W9&9XSb`ns_N9J$FYL42bZHh ztg^Ft)fT|ZA+a4UrLMv8>MpldsY{TAihWdPi2HLW`g*b$Q>?C|enK74lcMG1LQED5 zXB1>ytqXhyr=%y$|R^4)33J z5QmXt`n$P|hG`90##v*g@q5P@6dUnzL~8!Z$;9{x8F8-X_nq5Y{Zo$1pW=hn3u>#2 zX!=enHzM9~(yn@e6Sfc|kG?}-(Br%^xp;#oA?hz+T$QA#%N9^5ky7vbrV@u28_PJ@HhHW2jl` za7EcDiSYP!PsvVNc^jNqGS_vm5Cq*5S>%rXTw)G?A!(U%OFo8Nus+Sj=hl>|5SLEn zrEk$(CPUmYLHF`~LOm5E)ejick1_Jin}0N`NODYbv>7r#>i^uak5G2K2^#>6Piz@H zngBYI4ftD9Eyak?Q*+_bGxLh7Z~IQO0pwi^PAli}jhKMI}$QLu=6iR38!7W*9Gp*^vfD6-2mipLtQpOH{Cv*wO$l zhz6c8)hz}am>DkGVxB6&A>&30qNez-=_W08bk*hi72*EL zYLU9>D~Q(O$INrdvD>jAR_?VoAFV>Fv_SFY)0(b0?deFsvSHKaTGRxQy^|*4^np4} zA67(GlMiKMoST#}8E%>+D}3>SKt~_0Q4Ch6pck5g5v`C2xwEt<@U9&)4oD9ms0YhY ztNzu|(v?wUW@fxrTy)BvuhaeWWI>WgyaKQ5#@d#;#_K8kp0H$T`q6s$q0<_y#MNe# zo!#>+jl{reHSF`JUbkIDB_sB!A-|04cq;YUlPiNf0IIN$Sd2jHdnLw;Ju- zyzu4n9ZL;1ghg;q7C2TYkrDYfY<>@{xaf||JCM=l`G7&r=IviKPAg)| zBaCFd>mfqXcD-x0J)Zp*M@NPLPt#ym!hX(u_iYwzki+F7%1y-49;wxU%NmY1&IwMa;yc&+W6UsqyBZUVlEo42!cp}7)?uX~ zWifJ;Nv{k@&W1ik>>1A#vq8Ue>jOA*AlkY|b&MR<;F1cMisj%5@rQ_Ar)JM;JITWv z{2A)+E+#(h=N6~L%i2x9v?oq8tSnvGbA0eY2Y}D#O2QJ;;$puU^Z+4mg2aVZi*P0% z`=x3x)Zv#^00&(I9-Y1+xvx3wHK3Tx7htrZ%snBE3Co!$+@F^oJtj;&2dPQpA=KAi zah1G36VBrwyhR5AXKGzkMu(k;}1gW0enmg$c~W4lALl z1Wa{<;6Hw(``w>12C**ivxeS8iQvm_zlnt`{S*|_GLkZc2=7j!DJJ!#<1FYGS{07) zM>}e-@!zCKGLul*L|5(pio?!ibzm%`aMRSwnaocvlz-7P957es=(STQ95F!k43|?- zziOjsrpl|iavU~te?;ENWBkrUPXvF0w=4JMMGJ^qoQuVH`JSUey1N#vRhgGgB>x6< z$^A3sdH0(8FG9UWbQm>M{m}gRTKEq;B9j}Y@6MD)P!Ej=ljCBHZpl~uG)okfr_FA_ zR<>$z-QHyISG($E+I@H+F zv=Gi{V?%&0-a~3+J`%a{Z~MZ8i?5aR+NVYsqPTIXu{<=AI~+=WBe{iBx_zg;f9!l` z3CugIa4lQ>|JL-hiC}@n-1|9~O~$P0TKvdB!h7lv#$Wv)4r3z?QwUojw!fgUVC$>V z3C_h!)M%S-bSXdCB0X6_BF-nYfm_M~a)|kVaPS_Z#|KQ9@9oWznr1=gxr78hH&0Bg+ogYwrBD&q(0`@Of*&l5A-h0+A-pwKoV5dcP16VAm z43oK)uhQL?+$vX0jF|9>!`2GsCT?vKkr2RP9Mo($GQmiv%F4OAAH@)k7zUVkMWr!o zIBlPrs#g9WQ)y){asJ?H+M*Ce8K|6OE={EH8Tx5ASflf)KKrn@xbI{B&aC?!&#EAA z6K~AKB?=!J)_6=(0%tb8EoI_-uWzXskv(ARS87g-?4jDN$+uB3HwOYeQ<`MzwuUX^ zL--goyY6vOMQekVf7z&JmJ+}t`Xo>ClX1H;N^Ubl=twS6Tu{R}wwr|Z=I8Ko0`7u5 zaSy@Ezy*((K4rvt)tGW3Xf~yG@ci0cb^Z!fmJI=!R~i`CF&fuyP)r%cl{02qh+Fl< z^;_q>a}AKNgiVGQcg3y7CcMSEbZ@uJC z#f*q)HbAg!eO3uG_)YD{G1}7;*@6|llW`2!KS+&_c$O2!6_2H0fOGIG`qU=;cIo7G z;f8+~U)hCiX0X1nZu&o^d2im*m_7#SDbXJN*WqT z1b@3KN-=x}Iu_SRv>5EQP?Uf(rLLW49w4GKRr%o{lbz7lNtn;%y}i*4MEENY4+E4& zt}xdejZ3hP3%%Lg7PKEjk=v^w<{6H4Rk2dl43I+Jp)aLYv+S%NnQ@x>v{@p+mZASW z*$CZ>B7tZF!Dg(No5Z6Y#37Vq~k;e4qKdpTrh`?O` zbM;hvxjwp2;cxJ9zaL4WF?)VaQ#<yrI5UQ6JWbr0oI^E zrqAy&N19+Xy`>qP9^qhJ{GM4+6VOex?!!X&@F8VEn{ASSL72hzY+eA1YfH0qT;r41 z#rf6!Lv?9k_VIeW@kqtqkPI;UN{+BpSH-d4?RJTx%tpfak7vlp&T_vxlR&cLJ5A?j zGJLeuUd;DDdc;l=edvOx2e6xPjC1ytB{{SB|7Cda z{SISd@N{fY;HrU^?!s+#o4ZP4aKT**8txz>-B0_&Vo;Xm5U9J>&aTZV>X}&f6@t$o zUg{7Y_*rOp*0m6vnw2tO=UX4s@y`xRLbQ;(rg~SrfXh*a%>4tjDEq_dF?T+410aiV{0&5Jog9lq_ci(eEalc?MGse2~j^(+*Hu{LxppZl6^vVO} zJW-w><7ruAQ#k_d6;a^PzLOGw3^819Y@KMwe3CS2*a6AMv0=sm*Qw>Jmf$(F%5(2t znMufa6)S>2V(x5F$pIbiFbThx7s{{_t~APrP9b_%lOqwd*;&K+AteV3H_@_d8Sgmm zhNT+yzLtk&wb@W29lQF;Jv1JyY}4KYXS3Q*j(|wGNO+0z9D+|aQ2tyvh8Z}sE{pwOHSl`|pf$=7wQN7VGE6p-&r_GUDtUODGrMVfVuX^%Sm z{(Jy_hFf{BZ;g!Jry_Suw2_sL>!CIz8sm`ev?|j~8(gm-PYK#*kAYPE{naQky9%ih zaV*?*pOK+l##%2UHr1hC}xCne@W8-4jm>6&L#8ro4>Wtr>9QL$mVSv;J4dMg8_$98HXy478|A z8(775CrhQv>x_KzPOi#r()qe`xqa_qigL&mGNJe$5EW7RGPc(My;-n&a)n2>l^;eB zMPUNCP`)ohNvBvzG;}t3*_+c65|C%v*PYWnJz&dxnR}_aj$PXrs9l#|cWOtO=?otHBkc)yc8>H5$F>qNLyv1!R3;h9?@CN`H z*`7G5m_TF=kBx34FJBdx_&VHZE_z5<`n&z>E)q(-t;r_DX zKPJ(p>?ioqZMT;>5RxIm@2{}mN?iR(N2EX%)B1H7aKQ1R_YrS6^MCX$ldu_fdgo4Sm@Y3Rh zM-9SX5g!q1sHTO8J-v;qNTy(@UgE9B--ef7oMgUP($_iwiNS;$fM&(26>4sCCrV>% z>10XIvHMx&4oDNm%JM&*5N#?ZX;@D{9>2uaLkIf?HI--bEM;9D8$_#2jZM9?oX7zRKJ3#nUPD79yUH8* z$R94)em@FbQ6shp+Gr#E?9(!AzC1lhFbaIz}N)u(4aI2{P-0j+%%=azZF^wA=GtYA31HKk(DNrz%XV|bgmD4xK$~j zHCwm5_C%1<35ykHVI+E)-hUS)0qKE8TCggg^x%C@s#riY^(M2jB+r~U8r4&5D=H7mj8pX&^affz>-iv3js~a)5c92zBN^WW&r}q_2 z_=*NGHQC(!EM~QnNO2cia@%5}Jpxfdht77ZFC(O+j>*Cjv%l~cIA!_BSQd zR7adItTLb&P;+ttbgy;L!88+(X~Vm89mx&CyMTT1TsD|^>L4B6ZQ%(CF6dLv5)QqM zQXBM|^Zc=#P+m>*5=vNk*t2OQgKrK$lv3q6w7jL|eZj^XIW;NY?5S`gXfAa0L)*Vo zD4pC4zSEXBX~53o0x*2}x1m!rb2x#IB8RRUh*J#6Tm=G8Ar(}IkiWort*{Ks73zT2 z6LFf+B*XpNTR5xF>i8r#w{}$PQesMD zY#@JtE&1WY{X(QO9>(-d*JCz03LeO(50RvW*{LH3r0-FV0Ezm;r_Gc#kr-(F^FF(w<-72%s zLA1X&li}!&0R%PX8KsCrYAFF1H1LQ5wMjx5oy$#}Ej?CUSuRf5&~M~`L77lsy%_v! z)+1q|(j*rldp>dm9Qx1Rh_35rmS1byYS7!WyI>8j7^H!_au1-N1h|ROb_Pe zTJH8dDK7+lBuBT{r(v6l;W1f|oou9N7QUNnt!c(0PL%c;Ue#gl0N-jr07Od)P|+1O z6&?xhTlYUG0n=n0Qbzp~P&GF&g)$@QSihI7Z)+~6yL=6+w?-Q7bIv(qlOYDKg}Y|h zFeFr@K->d=^Ufko|FC0A6Jy4qx=j(M?R7vhR16IJb1guZgu(?1fT-}Gk9_qS_Xz1p zryFr_WJ}IVX`S%uS4h8^*9{1%7O-1>bXd;z-tiA) z3%cKyqun_imHmM$__-x*Tn=AJA8CS3*GRk|A;P|il-Mfw%^$e%s72#~*lWH7k$5MquAt!lYcNSNHb|^t`q;u>pHqI$VOU$~{gl$z;`?gKEwIZfI zZuUqjKIb+{=C=t^?;nQ=_+alX15odx<0A&>JQcwc=BSMF*K$1-=O)BfEJDu zk!0CICA9GH?r%xmM*<@1h@J=k4@`hyS{n#b)dfSiq;2f?wSO)_ibd+%Yg``cLiCyI zb0TdR-OW8NTI+t4x0dvC>mCPugut`u3i29J`~^pv=S(bPhcr*PF@gFsfl_p$a&0(O z{nuW8t*x#`yuvQZy^Vb2?HU$oq?V+rfIEADSxbU&!B>*6qM;d?e7t*xG@ zvWZ68bM&>v+VUq?K+jk$;xM5VCvMms+EKM`U2tCs|@;o!52 zvvt$o#zDF(o`P?~w=<(tNA$IrB-LTO^{QQM6^xl3(}-li#n%RU8K6ukBLiliKUg?> zocHb(ADUUp%ZeD0e5Lw@Gr%Lnj41NJwq!&&FW-x|121~m#*&ypc3cDvBJahDY^028 z#2(C!C1MVc0n}?K3z#!fAk(~x^J~>t@zD5AC16W{*)O|zaM$g!q1Tk-;IXo<6Gm)S zwRHTO7@d#ghR!?3gmrM-0Vgm12&5*cxhTv?Gku>- z*1e;rkI}o)<8cT7+QI-AUR1O|DEFJi2NiMe#Ad z?MG)1GNhf9s&}N91Q-j3EBA-?54PofGOopl_hDNn^H|&5YCAU&k6fMONi}x~;y*1+ zUvKJ6j=V(@tyFc7#ye&eyy;?eaA|Y8CsJmQQ^Dso%_`B??uaxe$-_MgbX^zXK4}>a zZed1W>mwp&))ziI;w>PdFcR1svWG5bq1cZbf8--==oL8$8ZsjhaP)5c?* zXD$y|#UOK8(J(It@O5-{CYxNiOqeq8n}^_es#?n2{Zd5@)UfzVUbQPJ^y z2i(t1K|W%$;b|(uxTp?D&&gc0Ax{l7nvp(P`E9=|_K_?Kb)o*=;mIb#8QIJgURf+S zEd}HY!|<4x{%F;(#EK;8*P!g3QU#tkb^1>7kz6;S0d!kVr;kcZW7TO1N$d8Y7nrmk zod6xU_$Q4`K^USOf~#w=F^r=aIF6-=!sW1SXB}7Ayf4O1-c7ZFpZlDZa*{nz8mEhTda1JyWr<#yh@i?Y(Opl=7Rdb!tn=uYU+yTjVyAskn z?c6)-!njYMD?K+Q&28RY7RAt~kP8}RLMs}^qWMJrSp89Oz6Q-zH$ZJf^0!QBER)#Z zVxpKdAO7KApqNrLrE|_Yq-|%;13*!ps=;$ScRZ79m z3#)cs_bDy(r*wX(|ARH8Q!C76rF+$T3{BHNdjomO#=^X5Z{?vTI-_MgO4Ni~{U)+h zA3@}~WmsZpt;YZJ=tqXpxuhf*v|6mp_&>NGH(d-Y*5;*8b_jY)0JGf1shO((A~hnD z2_wN*)!?%~)LJ$55XD{5;s>hI={_+PFd^PTg;5!u7@!OX1IrdV1`Vfs{0Lm?g>*G3 z`29w?{{$OBP~>-^=W=;{)opynNZeTcQ(?nbn-Eh>=kF@G=^`)RG5LMyDrkiDFDSmX zy$XS6+*V_y4}9_u{ITsIj4w8sPgoMC#}Vx8d}&7f!f2H%voqx1Q9&C$nBd@{i_V#< zSo~=6#%5ef5`#j;UR1Wgq8p+56#L^Z-*!0_a6SDNmi3I2S&El3S;Cjk(vbiIbf-|g z*PT>$^QFsMaa9h~3fNj4~;C=hg>kT#mZ&~RC`HW=HWAJ43|N7F60!L#Hv0aNHD z2CL6A`Z#U}LI2!Q=zbPr)7D_35Y`Y)ZBU=|LFXt%7erE_6fFv)d2GC{qQ#eb{XHdl zsdJ(-Sq=bh(c#dbFlQU=Ba1D`@Z;mor&NH${Cw&Wn#IyxerZNP3|EbGA}L~EBc5nT z4uIFvU%;%0K%=hC6vJ&0!CFN^nUomDqaPQt5jF2uP!rIbp{Ru1U->0OU=yEayG*m> z-h;dCsqs=e1F3nwSo=~qvVpcSj#3ms!)s@)dzUD?PR?lI;P5aFk)uC>E7KfzFcl&^ zAB?aK3``45p-%FcF_CTyO`>B^qNr$EpzSElgw7A=nB1iU6~fU@+=CQ{b(IPT4UE5e zf0HG(7>cQU`wfftX$PZAfLI8dM*q=#S!$4jXk`5la&d^=6}>5MAR zhpjghy@l>*XLBiAK!vX{@1US;V5Hc6%vJ)T=JNPy9Y@Ov2@PJTHwFmT>3RqiM$%Kb zl(UGN;-a>Evv`!7_5|%}?lMFb{d2>(ySUfYA5N`xyJGr89)R4PXpadLMo zABV6^Wa8y+d1(;rFh?v1Y1q*%DB>e+GZzYIe$|tND)2Y_nUUqBUIMfM(@5p=O`_vG zMoJjMN;o1z6~pRZuna@IT&eEMLoU=VBoZ6cXa9uFuJ{J&R(RyY_#@I!B~C4kzC=5pU6GXg zS^go_T(q;a;q4E%w)(tP%`iUly*^QJ61AfYmK>R}xHh228^;*@<5lR)ZB7^3!F8Ql zpmIQ(tQ;sMehGz{MmfUUIPi&%dqA@+3G-8gkb~|+Pv!uWl_fZ zU_Cqs?IQ&I6=@1`KgWf>n7=Mf>XWB4_>qoEVd@2OhfMljvK9w3T0ce)a9nY|T5%6k z6nA~OvOIqh%d2l&aXE_%_~38<#!PcHKIn6tA}H?tBF#wy)r}-aVyIIyOi+r$wN{ZZ z*lG4yISXp}+k`Iq7t(vMq^$%mOfnuZi}#ZTRrsT)LEK34NcnV!B75jMu2)x5KfhCx zBv!)&0aB_ALRv~D25mIg=^6p1|8`mCEOq0Wv z5nj8hpm8?W2{K)^Miec+TWx|hoTfz>uc^g7;^}6Rm5eWhiS74nwiw!`X9~VLdB#Re zN3`(Sf!DOkC_7R1tXRAsC4vecb^MJc#a9(HO@q5I+QX3{#~Vk%Mt1GL-tfHFW3KZ; zkL+Ko%rt9!)C#H>tGEU6kfzmXVdB00v6hpJ`|5#XRy_K_Y0Z^3g3FUX6jBI?qT(^| zw^*Ejl?R0~^>-uP;OYiZO>$PXET^KZy15dHBF7lpowi>!-xN|TzyQ6EZxB~oKS}O` zMEG&I8TEBt{w8i_VN$grOrFpoJVWNmLc?F^DJo_SVON`nrN0`T+L|#3aN_g?eDby| z;bMp2&#-+TB*;MtkZtKrk9Pw{NI9=iUBXgCh*wgjgjR(huo}Bz>Vwj;IDH`Z`6J{2 zR9uKhYC+o>=q%~hpr2&irejHhV#jPNHe_yuJFt&F_II}3I%ef7RRY38Re1wL0~;F} z3z|~5jE3n3r6->^E8K?rcdwLI?BS$k zA(1bajxbv|<=q{x+}s%xrLEV?q`nduayg>svDjMBpH24JOQOo+hi^ox5V^Xd$LNQs zVzsB)6LhprH8u?y#W2V}0b;A!;%GJc%U7KWCqu_}Fu>(!W|;vj!e!lSD?Nb{mWwHI z~JaF#bRy({`pRmHK zx~v$P2l)qAea0Z!{|R z5dJ~zinf<$MA;wH=vhfE=wAjatCkT@7FcwV^Az4)qHZbcXIB;tg9rJ?CPzbgl}Y-U z=M`w&kD0lLfF*Eyv#V8Gp7D&1V{jtK{LYU;J@l}`pr1K#^DmbCf=j9B_j~DsP!HJZ zrKwqoJ%3AYgO{m-Os@M*SM#48SnhVO?AMs$_*T!3E2xG?-q^Z-eKhbR)&+3^5-UnRL29ReA^h#V;P|f;v^%=EQaxyxbX_G>0u}xrpIP`_ zlF9FZ|DA*fpj&i1^g7r0`WijD_pAu}uE^k7p%g!G^*0OKNHeSJI*k5+fyd0qMMO{_ z!KSq$2e;G`luzoLV`{L|FL-WN@*iBQ+eS#?+(HfbY=K@Q@2FgJc+ui|G4XcTaA*%F+quk`8(&=n_`l3QpTDU)EjGy z9HL0s=`8yBqFpUNN^4pGD>fW)JDxX7X1+I5IcToJv;x^6tiSEz!ZgiDRWyr0IFwz! ztBi*}jM@p#!`9fC8q!Sqwz!`CnmVxd>O@M<0c|sT))uiGw}>8ZU9#DrLG%ouPV!s8 za%@*gGzq(aZKTip07PRUDX9!Lte(R+S8K4cQJNwyp-tnhNpds(CkcA{y`ljN-g8c; z!OvuhwVg8Jgd`UmSjc2Z5CeI3amU~hQrP&YHpLk4z}~SKVIhiIUD=>#clA3SJcfT$ zeO3=C(UXri&*!`?vAsE4HIS87SqaKCp#vfK6>P$8Qb(qh!<%sKIp5{*IZ>C4iix~wDnMllt99|qba+*Pfllfg(quiS z$%)CYR5}{Df`kA+Br0*Ws+lO2m_%B2CIwH5wAffr8~RYpH(~B$kD>26ZBP91UmjyS zkZHe&*R=Sy8ymCWgfg(n!0`F-?Wj(3=(LlCpCucW&XH_TkluEDs`O0nk(<0~OlFH9 z0qJRCq-%7NtBF#0+k`3d_5V}i!2iOy`~T${&@atOlf1ni63>O|J_RZ|63ktt2ow8) z;+f85(b*<;MZg4@DlM=zQMTcbM;M(}N5ApU+8SJ1Q60nWSNa#}L%Y=NTi7G_m1Qo& z{I)8g_)5BELcT{kuGLedjWKUT^gH&*<7BDBkpjTV z@Bh>fG`!j8E$k?s|1RAr`losbY^2hd#lrpA&H^JOrd+4h38?u$@{`jUnpv>kw%(rj zaE0QB2AbY~!~HT|K)%4O5%59L zHUE!rpSqhsx9=ot3xUxt&IsNzKyNmfbUYwA$yZnXj1;!8+kIb4%lG9T263hDA zde>t|Uju*H)1<1U6S*tOlU4EtH}>fiYZ_}eI<0@@(#kY7Q1YY@+t{!;dOt@vdeOa3 zB}M)m%$s>}7Js@7{%)E}%Wy-vJDZ0;DgG2c-%}aQipG0xj0(Wa0*Lq)6 z0Bu4U%Ydf#k`XSe;)`G7!^8T#&CV7;BH2l_vdYN^sIXa3VSOVxooQ8&Pw^muA*<+h zqi~S`H5bVV^yk zrtiXH^br5B!X`F4QakEyt2Wy8Uv~y7rmY~zcfAV6vQ!Y*bZGQr%VvLg!-p&R5rA0Fx<&l33`j$Hj#a?~LbHiolS)MS8^Itc;wlt+eb3jgWoLpR}k+ z5uv-O2GOFYTHOfs70<36Nz<#fkWF6<_bld!!r?^_<1gpchUx_*Ym8Glx1 zMUr1l<{n>Di>@NB3)jqNmD5K*Blia=d=LS320(s-*%qTDMJueh^z(!SX9*KT+z3N0 zmCRQJl9CjTRdY(Mulcvdu$JV<>5Tp88>+}fja}}b1SM7P&`k#iOjVn`);W*7lOK@I8K@}Zf&hDj;D4aE04qU_)ZgAbio056`XA+O8QE)tOoO0 z&{QepvkMQDnmbX;&}#DOp{35wFFM6068Z1hei;EP)sRXKa|Lr-=@sb@mXsY=2A`8H zV96>0Tm-ySx)zH>^wd-UD?s6mPEb6WCx~ z!+Y@D13<&V4SmUJAye7M$3Y(;%*G|gRbc?BeuEcRT+&np(bLRS{VE_v zpJikN4mxaJccDZ(EkCUebJviP_?8ElqTN*D>s_O{CQf!nRgupVsyIE z*t&NMyRYPQ-WwpvK}+v1WwE zjzkm~r~cS5c`hDl4OE6HIwG6RJs-7{4wm6Z5mYp8=u}OkjDgiUucKeH|1MrHa(^Pl zgIC|_`YGfKxBseQiTp-X*!nFd&OyW>%rpax_f3mgiK|Xy?NaU1Wydjr%_ELM@Zg;l ztmXh)88Fce0S>tO6VLLQOgX~`+Pp>hc8$DB><6!zL&zlVj`Vi-7(d|dNAp1KTQWgy z8!Y~hpF*9vf|TnL*wPB9=rManF?Mmb8oK~T^_<5G5@docSkOsNiC^&NHa*?n`WXIC zQ-*xw)wEG6YhT=Hvl*DiF}&Hr zgbH06O*~A=bkqe6r!V^3`)P)FxkPr^pNTHmSadhuy{R*_yYMU3skhV+{6ro*_vm`u zZ*hWMb#l8%Y(890=^BMxP$}*Adw$-FUeoqtd9Oxsoj2#D1JI9tJF{1DbRs93KbzT5 z|6Vz1bSK4REYAvu{=3P}lWlwek7~?zJmUD&WEn0V4}L1KVyVd>osnzQ*HUNzx{yPxcFT+Kf!ViJo?0J zexy7_P8Xpg^Ree9!d#$+G~KiHZ&{rCtb+&LRL`t>u?Lk0h#3fN}CaDu!&t6vkDpPn^2+CiPh?-;#9e z3J{5$O6)rc!Mxgdv^lU&ye{)>c5mkf=&lD8+8+-v&6aRwacb+a5?|oQma6|6_Qosa35CmTS%Z8NhDnQVu|B z_~*E-83zA=4@c(1QSc$_FZb)f$yXgCF0o*>*8^&Cf@_LPXJO zto?#^WkYT0r|QpH2C{()5J{||wT5XzmL)X+Y0MMABva0x)W9a0h`jX-134c~vaE(N z3QcEPR%JF1b&iC{u)yEy`e8q;!0Nk~=8C^l$tQDKk}V$oFRsEJYQzTkqc|!P>_9cUX!vgO@+mo#sB*A+FI`nt^VIHwf{E}!jLb2z2#r!%pwup%B#!vi7;3- z$}V`O+ISx+Ngm;s0j4s`RA`#7%J8f#H2TJ0emj7EIQg0gX{X+zWMr&Mx&A$)_B|ZQ zoTc?L>W>2?L4>fms195_QnDuS3A5Lod$xeYtH5-))4Ke{FF#IIyzF`d4!f3q6=hUn zOF7N+RV5GbBK2Tkk7BfB8ncj8d6GPp$$gJf6&r59rs!l4k_j! z*;#ZG$U=JM(fsv{Fw=yDaQQowKXtsKA13L4c5%J9Y-PLD2^U?eEgm+B$_Sq*zKwF_}BhUcfa#tn-=7H+C#?gEmWPN$kS!_Hb$FMVre+UH$_H2_nv3n-HYl zuSG^}L6cEgar~@Z;QgZ;1D3>fr1ddZUDPUP&HUpS#SmDgNAc|EM_q!dYJ7uT{`RJMugj^@0x3()Vx$En27em!x&AuksY#Z#G98Snlc zpzU=ksP|}rcJ;eTBgsp9KxzoCFTSt!uRzHy>S3bL#m34RHFFm;b6#=mx6aZAzF~V_ z;s$_=-U4{3yvobUJcPJ96g`b^rO&CRe&(fOM^`_DcxB6Wgy9OCQut?icvScpgx5WH zNsI$nvfp(Xem8++*JiJUMdOR6blt0Ka0<+v=-RotnQ;mkH(dp-T3Q4y?W0J*7${+&3z()SUqNjyCYe z7S^CeK@w-qCukfMEBCLmClV-oCM7c?7SJvtYq|l?6b-{G=#EcG+0WGW$8)S6*v@j& zqz=UKpS6TB>U}K}P$pG|f@!9iTsB@D#k2!)m>PXzk}-Y}($mDzGL&l`ESR*yo!M~; zEDA&FWk3kHyQn*ETrwwtD_@zb!9Du?A6)#t3b6-w(>=xVFPe~F|G_bOAjo6^$CYkX zLNKzZh1jfx({RrkYxdjM$otoH?xOClPo1y;KWU+s6>EdNBlcS51gxZRaGNH@YhE^z zibh6m1bBSF`6XmFpYnS^I#<)G(1i}1*CL+?chkkG_S~m#k9=`qlndB}))CE(x`w|+ ztA`C|DKQ5=y{wE3xeSmCKYHx+%`vzkElIyaBBsl7i^*SThN*Vr`&B@-d9d1CTsB;uQo);+i*EeoIz;ed_G#-s* z52+8vGK%EF)&`DuDI?e>yv=~A%>nWC9ekFIxy(x~0WSMBi&1Rt`!;A&C?dCtgVN_i zPn-jwDER-C%Z8;czoV|F{~c~d`(D>>#W1o?;zPp-P`Rc;Dba)^*ythFP_mrO|4a43 zT?hzIQqHd8W%FF0C$Z^P9kUz^VckhYA(_|`iA(BuE1deiJ}!tm4~kW*TuxrY^C@IE z(2l3JeYixce{wOi@fkBQK4aR%9nh|z&nKnaKNxV+`p6U*yIbsR6zFq_Og?1G zPGG^b?EW0)PHl^g*u3@jaU~e%j$Hni0EQu?f=#DTlMc>41&tZ2l>yG?T7Tif4)#cU z)3K|*GjPBwW@jT`#M9HnU(k~@VGBh6r|d!AJ>^L_uYD>E%w(HH0XkY=PJb}sPuAb- z-1uYKdEawdR9G^9b404%<24}1i#e1_xox>xkY_}7Cf+T(n{?8eyJ29QK=Qpq8jTIO zz#%_Ot-RE+-Z7be1wQ3u6>OG(Gc4cGuJQpAS;J+j5Hv?Lcj#a2b!pvwHPSjw64W^! z%eMY*b* zGQa=uVP|A@ORbrsvgX$7U)Qf0+aTp{VYOskK+(gB39=+<%g6wvK84@IDM}|w;ai>A zoYoFPV=(Q1dLawDPUVX@4wX<)(LztX3$I)-OI`XCBcO)sYeK}E)RZwR7lxVhvl{3O z;*^1JQNS@P*%;h=^d2U9RlVomGi7qd!=8>JnUQl8)gE?0qVtk+g-oq7oiS?)UIe>1 zsXsC>xQYCXi|gKI&>A;b8W2vub(wAKz#bN-T}@wu;m%>1&;38`9QXJ4Wr2?ZUV3z4 zALTKr08pfo5Vij=?8|d?pD`1=TA;Do6(yzri(-hNT9gL0-)Gq zkzgwT+t^EIe9pOJqI1&AW*OHd7cb^Pt};48*xz6f7avp0A8mnRkpuF z2ORBSrU2DEH5cVdWvn#v=MmgWEzm2&9Xa~43Mlvdq>aVJPA7iBu5zSh<~-tz}BNl3$%bzRhaGE1>Fr#DvT| zI$^D&Bpf#MI0Yk1=75;k1D0rxi7R4G8D-(+d)Xn((fFQU#|yqD!quAnbhyf$^jQq{ z&7{w=fgY<9MeDrNor>Xo$X;gUKDyNic=>onNVUq2;5iMPHZjs+eC>$(eDs5KqRn;f zcx0SQE|}35rxn{X`lh0i!n?Y)R%gJz%};wSz+zr7K5uHi;HFF`*Z(v1a+qP-&AYR2^B*AOkI;^y zV#=DUi&>W#zFosKT{}Gl}{_XKpEGi5-nVhKD!B6FYP0CmhuQ$K_mq z_p|xeBws-TBnNYhE~2H$;A0DDhr5*_L8(b>vuT;R$W})Y-5*-LjhFzLnjnFOAu{z1 zkosGTPE{+b}e_0(@ASr2do_|4BZBx-=b<^w_Hby`tiT3g- zcuRr&#q2kd_rZI6kGh8LYK&)%s3MGug{#!xqGmhIz0K?d|J$wuZf$SD-0<4Z6~iSP z_6zHuTJCY!Oq6^{5jZ7l`I7*w)azDPfWOw*e2cxU9bRKMtD~K`hS)k6#&%z5J!h`V z@V_0B)Cq8Eav%dg6_q#* z{~hjiZspzB-aSWNo}|b#;P&FT<5L}dYU9J3Fw4xznR@7YvDHvK z886gP`ljpeEK2B|LK_;q@a;~b^OcU)w$7yFxK3xvS)B;dpUW!ezstJnd?9tV%I^R0 zd1yh>S+~%mFu`okCLzDrsIhZ~Da5!GpEFx3@3>yJKno$Il_=hne2Yi7wwHnLOd&y? z#pt$;!i7nQ6E~maVI!%3f@DRe0_7mL;=SSVbXN)1W)dSlRDE1B^X$p}GC8iHdUuSM z7&YAhzSmB)N|8@+N<+s9Vh!L{=*aVOf2TVG+}_*VQILILm2(@Piq_c3!ZG}1Dnw}R zZysj$-8)nfvpFt9!8X%zmpJ_IYY?4u+X&W1j{zu9pEv`7;4zm2VE@?*U35CY?cZdQ zIX+5oo;`0>`b}bmkI?RY%gG1K8f6zF0^gR&nusU!sAWp(c@r14R;y_0>&&i+hj=D} zp4$HdP>N`~nK+pI*j&Oa)={ptj`X=9h(aPCM@l{%Pa>y1uI}??pKAF(1h)K~xP6QN z*nfH??Do9#4?C2LM~VWu5a-(qg%^{RM576&0o?hg&ci9q&O++mtGf}6Bm;lH%+?k7 zfOc3EH{1s{Id`cOxs}1X#$t>&ZTlMw?KNlxA(JZWepZR3R<3iyW9BmgayR=`SdBFk z{{gIA8O1%gpwmo@f8Z`@TSpCl-8((6i}@$Sob7qjS&8WaYVODKkwz5W8aAalpNd4q zYx7?8uy|koD-dgT!$nolOu@SY}J&P5BGj;}`~{ zbjmX=O(md^@m*`=voWZ%=^oFFl7kYNM%08GC(cP_ETasw4^Ln@dsgUVdpzdSM{()M zKDS2}-hnC7W>R@TTb>7NXWtQ$T*C_&c@f+P9Pp!$vxI?0L7Osu>2c6{SctzT>>)%L z`ojM?TcHx!ef1xA^}-w75i%oApLLA${OiEq0$Vi1SiUCh^<&fzsIM-kCsm287o=5~ z!fp$03AKOq#4QaVdWm+jsF+U0L+mW1= z9ChmUTvp6|W9DI|J}L3Ne5qJ16V}41|JEv45(1Kg?@aBa^?zRG>N|;d+&fvwO6#uT zM&}GQC%z@L)V-ZCk!AAhiJW-reI&lp@L9uq%%$1mOFwsE?d_Zx`j(soMuVe-mI5X% zK!K95w|(UsE0c?(xDZIQ`~v6nUet?4qm~xjW3=@;acPzPmyY*fVaF4BSCSA|lv!T! z3b?w1J0AltHVKp!W|f_6#U~M`;_(#}M;)a@4kB}aP)qH|F_4>9hETgZfJFR=(^BR% zF9B50ZtULcb^vjOYGwIk`SEcuBZjUMqL-&Ju^DOj%JS2km1&zh3rk$t5F#we3BR3~HSf$+hy=*gHF^Q;XJo44JHpG=5 zNePoU@ATNN>a_ID&xrfG7fo?+v2alP2zb`cnDSkcINPl$k_~RiYgugR-T2KxXbT0m zEOpEoWr%4iC0q}1DdCTo%gcu!OQqd*LoIszom2|%1B>HMPH^WkrkDOjq95j7MU8pu z75!ClCUDd}B8~saSH?~r9vPdx*}0{NA+ZkCcEBkATn|zCL8=)7*#HK?k5#nlsavbx z3|wQUZ*}-`y-F2zVZTR8Roh4wea)Df_O>7CKi6TLdFuIdMLYC`j?6K>Su+j6r#U>41bWK}+XisU5`=>I187Dpj729@RpYEq&7CJ7J zLCpztv0{K#~^Bbt+fZk2pb+(_-oY2dZsjL=0BuZBgRVh=hK#0mr5$3 zY)qnDT+ICCv4B3#e6g`@hGpK>z#uL{F zw7=4K_&A2uC<~7z6&f)#Dk*Ime|-y5lNFa$&`{{YITgnMC3>KM*QBOnljB^5`PXEm z1kpN3x8`%I$50;k3$T^)fTqz3b#_+-JkrK zfq7;8&^!5=^;7Zo3#DFKnEW!*eqR0@k4%G|c!JRWH%7E3jQ)_e^^PV;T~BE4!jU>EP5Ix!%lrZ}2NK)YXW6esZosFV&$Y!!z+=Mk(qeV~v540>O)}8NC&54Ry zF*#V(14XYPu1JfH-(1QMU3BE%rq|hLrm&1_9o~!v^M-uir;1tcxxnQ*8Qwvnm^26Q_=iQ^a0bFA-jhmXbjpBrJ%F2+2 zWuKFSo|d17pIXDis<`d&BF6Md3v?z2?eQWS~ zoxP3had8}lCLP${<0uhNrJPvAfvhvTm$Jde>V#nZa9GpwT?jLlBPMw%fJ3RP8Lzc- z0KA*B)U-=ZF{z!ax1*dO3r73%Pwct7v;EWAytuaNb>$<1-RK_OdtlQ&HjHd6tm z?S!MM#dqMrnwsF7AJ0v1iSOh04kAu<9>m$-Z}wF|iI3L7D(JAI(w^74?VyaP|5x14 z|1;ea@!o&kOAUF-@NlSUo|Xi0x*3ih6v%^g0u6bUDNSt7O8BRji{wQRMSMRQtNM52 zx)oc`vYChNjXsbEa3dGGpB0JH>?Y@fi-1FWj+L`R!2JX1piKVgrbfkgj?G~2%J^Y$ zpHE3i2~J@tr77-o*flkUP|PZK>VZaP5(}N~!`L~T9YTVa<&qm~=XC}anJ!Hoiss{f3=Og3nB#^Yw^N2ASm~nJX+R8KrE?HsuQS` zl5+C%nkmi{UC#LV7(s$=g*v_S*9jqKQr5pnu>sd?PZYY50Dp+13A}R4N$5BGTh(HFh{m{Glt~KF zrE;F8RiO0*n0HSM(zmXt`?pX{DxR=CQe6a>00qP)h+qk*#`l?Mb$JwVtihHysgXHy zWqaG4un<%ujhjM(lwpPbqAXVk<~{zUSHm)p_QlPfQ`76wC4BJ)xJ{67WZV|Mj>j zwGSTZM z6w?^xEbpw!O!myxl7hQDy=MOW z8cb<;O};Tq&DLC;)%BqH-GF~?fF?DQy-8hmt0&pAJ0+;8=hQ$TRykmyu_f$JY5a%Z z)n0)1)c0z?y@a!3Yb&r*zM*fZ)}vAyP}RcLj(c$=+(gAi)A!Y{z^YQlua1aQ2NRii z{;$G#kxFk$4wZs9PS?g#OGWwoC$Lcn^KKcw(*~p=SK_aaxBJ6ja_=_Zc$AZM&6Di9 z$MmdcN{lgo*r9gt&Nv+_>gl*1u6QLOMD>7gL3E+G&=&ZyP`}!0_s&_Zl_n3W64i2~ zwtHaLZ=bIOZ!Xn4VnlTkHVVo76^Kha*{?m?N96yDi;p$b1K!|49RG%HPJ=ihZQh+AV zSmA;=(lyA3-NB4nWw^WaFC}nF@ma>m)HKdPUb%#RLGGlL8zA4&6YuFd+e2RBVS5`c zu}ejHGXh>`InYXb0#~pPgWkD;L?NFlB@5`HmuL~+grn_h)Xuc?+OS@iu;z2s1W8X( z$J>pkhMQgUJxBOk%v?mRPE=ZL9iO6Q;Ptl`a78tWwVWhqJ!QxGSG9^tty*Uh!xtAz zVLU@i&W3jG8kM>5o#CFC3kgVp=2Q-dw9onTOo8TyF$Rt|%iSMTrN z9m%1?R;K)mb4SoAQV z_mn6SpOH_fi%;fY=NT#UpqlvU=cz@<0@^~m8ZIAf8u4@bcjHwPtl_?~Mqm6zC8U;fvGY>9%;*46R~W?Yc(kNE*t3#>ZB9{J#Azl8YY$2 z>>mE6#X6?Z=ZnFE*X4|Y=-N{|e#dg>z;ym>^mSBK~ zY^|Y>eggtbj$cNEq_qAMXBIKn*kVY-``E3gkefncoA-`e&7WP{csiTcFyZt8C>Fyp z36W^%yZO5ZpJ~&Ui^|(_@Dvs*JpYlOtK&#yqYE}Yf7)BqT}o-Kqfy1>uQw;{>#C}| zkL-@lBx{ogXCq6JB-t8FEFs`++ip{IPnT!U>#9rih%5Kxyop*dLCR&pPA9E7$^a^_ z2lslHuim@h?+?K#-opXQ?&Wxypl8XpTn{#Rb1t;O$?!Lag;mnXc#jgPy_SvpV!=jC zVr^%JLjISONUR^gRL8Iq9lD|Zr&a7I55b_DLi7GO=T}@fMw#%AlCTo7itf6Y)0aL~ z>M8wESbV*H&O`rh-SaUkV=I)VBa`q+Y0c8~(I81;x|8FFGe69I-4OwKi~K%0?awaT z9{h*MR3#^81}@sTRE$=s21rT-kTmW7+$igayoF zTDyNK#fNyL5V`C2^hW&@8RT}QTY4D^4*KQa{{faR4F-D@?CFkHfb~}}W5;#Z6FM3- z2TRa){Ltb8N zxtN>MMAGKS?{DUi>bls3vWI`ntjw5DG4(5g4<{e`&4KDC8Y~Cn6`O<}MU3~0P$o?U zTLmk6Gjm2zTIud_RpI-6n!f2ftL4??BMc2^JIdZ?DCoSSOW(aOam*fGRt_w8q!ug= zu)d`C(#p&8$!R-b!8xVG_|AUhHiPBx(){3MRvN_caELOmLJyn0}*Ld@32* zeowQL5ucMsp&o(3z@@|Uj5gOr@5`i)AvY>z>qhD$%&!=XkC?(4QeMUltu0L~j+2*x zVJo(DBtz5a{8j^jzurmaU%c+M_&kb;9@;g6gDnp;0iVsSr}%uzt%k>t4oPzMt5GMy zpL`l;v&S<>KQ4HCjayDt3nE(myVlL!5mV-UGGcny8EHbGs*#M4H4P~^VA&l`RVsPh zMFR7HIIuR7@PwR60(}JO)XpAZxz(=KgGx`7MWDI((#oL8CO#>|KEQH72%O9`&)HBSs1jTbsjh(Ocggk7_i5G!d z(*TGVtRYf%XZ%7emIpQHDh`%hI)_CL>=yQ6Whx3LcUW)fp9t+j)K zCAam23^C!8YF(Mp;FsBI2gt$2crmRSY) zJO-CKg@SvI=XJi&SC877#~BxG8sE$F;H0d`nR*=8Xq)JHGnKd|9J>99$zzzO;fK}R8k^C&kIBQuZcGFDTJdjuhLdER~ir6^*1310QJ}NzfIxG$|ves-k z5kg^q1xp-`aajZhl6>zr&<#E;`Zi}^alp`l9JRdINb^_+k=}Ej@#JIO;}Y(FZL4m= zQ>xiVj%RJ#yeDdo@nJ+0FfsGOK}6Cvb@;Vhkj_@PFz~M9Bm*z#C6w8Ye<#w?LH1EKYSoo6GUc->^(DP;oUObNVji)f33npY| ztNfv3^H{dmLJ!l#mB1ByDXN)XWAcJ)hlHPa^$dR!E??Y;jjVW#R6L44o^a+w0sl!VcsBx(4wURV8`nB_c*a+r*{ ztyB^m8c$W(@nXI&ot~1iH#ejDdYE*~;?Aq{FKuVTmhNy0zBn1>tZlI=sChs}ybdJ!#xC~7el6lk?*=x2q0kEN zqgGkTvD^{`mQQZG@yD#0u|7#aoOw(4^g;Kt*tv;Qo0Nr(s6^F=A6eN?9T{9YTHy%x zhAXw+4C|!$uO1qN*n7ixF6r!hW7t2J${do@(mHP%+inTUn+7!?jJ75g=&YjUJHED! zixp_JGBs!Q^o+ASgqg_+{7zf#dBnA)UWPRS{v5E`krcDTPVAYRJ>O+fVcmx}!60In zY2IB25)B$j=6eyG=0uB@=99qoGVF5g_<93)h3AFdDl0cF>CUfN{&@!qZDTWOpctZ@;4B8pps2iehs$%V}C6wv&0|KLE8WuaVhbga?UPYbS4q zH`i?sw!J26|E5<=kRy)_I4qndv{YWT5x2<(=Xk3H@p{>` z=KGt1@`uJ0d?mVe*x~yhg3va460K-1^aEEytL#ao04}_nQdYJktdr$=TaZfn-#vg> zqXA2imd7-63Jn)A;@K4KBVD<&WPQ3k;46H8aL_$!R!>aS(YG_hj5W!g*;l+gl1!CAPGG5WUZ z6(H(b1#-_If1b_BlElPCP5f*TrXQdn+X7Bv5imasA1+J%91D2H%A^k!#bSd?jaM{q zYj9c*H#w4>g^=X{9E1cdPs_{ZPKy1j1pR|Y-h_$UiV*9-p7_;^>o!10bHSbsRY?c< zlY5xcrjzh69iAG0qsJjoij|qN|Kp%NGU;na=OS)=MDkK;uHmW)gxlU;L`+>NsFH_{ z_AABb*%MK?k$rrlMz3rsL-`M|nbr4LHuE0kf35x;WY)z*=48(P5Llows!rF4(~JaoW-omR7jcJ2GzO zgOS*oNZrY&K?3d=aaeuY&}e-tf=pAR(8gyFpVc;3nusi=(TX9T&%&c+U844V@|>%V zH5co+Puy)LU6L|us1w=wxGk{z*nVmFgl=r6#smyoJg`v-zYhp`GGaG?23OuvV;#ln z6XMYhNl}|gTLU(Y!$RbcT0JYdjLG4(1zX<}su$faEzOiUSUINAB=tZ^)01H3Wp4BL zCKImwea}8&C&ueW&PE}gx3-ID0Wn4r;8;gEH%^m#)#~k+Ld1WfJj2t|0-ofizpCHW zI!QUz75)D+%&_?)$rHzVw?Ytw}WODErM^KZakFUL>EC~(4@6r6gEK28d@MMktJ!xBf7zx2>Tesn8UremE( z^cutN3{aWp^)(R8_|jIgd~S6ZW5qDY0=r9o?mr5=eeh|yLfiLzWZM7rmiHU}`&{&G zEQSF2p&?798evaysf8Z0R!$9WV7*?lhlhaN7lp46Z$fyb_fnN?b)`Z!(>GuEBAs_% zzXHrFd(S&~6r20_3dkKgI(9^ZYGjn6I@T)HKjp~MsVR=ae|hwWCxpyPX=#gx zM`Z`mJ6M4+2nv&mU}?R!c~TOJPJoUg3-;3hf4)1VFXID@9f0&-2TImJE2zS2p@;0xtzj)e3&BnkOcRe zw%%XBK%U8+jSHR9_O>>Kz6W+#d`4D|k>eI!`Yjsj)%5b4#3^m@Xi}I&ODmR&9cd9G z>9N}=F75_=cVZ81v|QsEkd}Ywj0edfVEF~CvltH+45w^fYaL9u;vw1RFxrZ^=iHHt zQI8q+n3JCO)_5EpDHFwDJuWZW=h6LyM2r+QyIyzx3g0M2D zIuwx@8W_PqP^c{|3Pa%oe3@qFP04yM>liyI)@O;^eKTql6nV>em~5G}L2j~9XpezE zy5YYO1r8s7ViDcWJOVR5CH&aai|Nx%Cv^!oC`~PeEzH4U)%*Rbf2^Is#z8q|a=zUj zvdq()#zSSN2l%G*XFW-I&=qsT3sByx{U|}GiyAhQM;m5EFU_yBuBD^EQ8+A)DEWuG z=tK@uVk=qT3=q@M-zi?LC*Y5A>ob0Og^(2-3mLF&aMVbQWkMUwdSAjA6Np-*q*aJfc>CqM59{38h*s`LcuhFZTD$jc3FHBIO(~XxC4f zv6x|uj(x`wFvrQXL`o?n$oBVr@ipJ{HQOq+#)H4?>0rjf_vaPk!`XYdR~W2o6i>{c zMINnT#93l|4f$&C8E)oMx03&H^~S63ArduO3HMafHWKOdX==|Cl-A7HDZe>oA zOvcSSq*%!KjapI&Hf$~U>gA+dEoW7@7&TZR{i&wMt5j}29vU@F2VujNChzB~kW1{Y z=`E+$mY0?A=Z#Aoca-1d$ddZ|!QqMwx7I+9%v8~NtJgm9{9>~7x>8RaBJW86?b-Y5 z6^yEDkV4xuWZw`$8dvG~R^x>gF07$p554jOsEQUW5_G8p_a#tuBmmz@W=yFF8E@$u z!T61AI{F)p8zzCkxTWTCKRCg0a2SHNgK z{s;K1djNT{x3kj<@3Y`wy}g6nCcM+@y|#&@{g{8Hv`BJ*w9l*+B2fHOUkHF*%>m|2 ztk#1S23yTK0wyF2zA~+>7GP7iQ{kIQPL1ADQ>eLj-Lh@jB!0g)hp9kWZE-J`naAlq zdA``b7Cn4y|JAqIn&!ZkUg^7-r#3^7D{a!#mU=N|JK*r1WXCS>mY_{fdDVC#gvSK5 zU%zE!){F0Y6Mw0;i0=;KfQlG7Gx%1P1GLQJzfreugKFL55RLn>NX4yl;h(94MXDap zsK5ly=tKs^zX@VrRjbLSP!6Tl+AQ}e*z2h~{A1nE=2TpjBi&COtq*ne*24VFsDaNW`nu8$Mv9{8ozkH;NQHKHp@$_PpZs@ce@ zE{5r21)}T6zWHi~6aCZ3eB!_MY zU_XW$;iT)|Go%hr)-{x*$99OIXO+e>R7PiTt7v%DbODH?Jnx+_2ZKSK6jL7#RMFE7aQp1{EZAA0d;@!MfBxw->WAx!w%ze zAPM`i53I2VJtc0VLiR(^?0#qRKgXyOY=!;l_<^SW^54>RJ?WUqPSVRiwA91dNQrP- z;ntxnpH6f#2IM0_>S=rw^%y!CWL~b@vauJx!vU&%Ag51&;?ku3008 z?jYH3H1Zxy7DVZg%2rG>mz4fYY{K&?Pr~r*T3-)FB=LRH#7{f=FJ`0Yp3a-mo18Q{ z*f!2Jr=jF7K6TEiwI`p9UE1j|#za}kP(A1n64wodRp)#$rMAQMq<;lfn@L&J+k=pZV^POd+xYl?{$>-6f)+70J7H$j zo<_)NwI1HkXIrj(9;6|NUihxL(5g#tFgci^0$$`-$m|S=^W-|1usjgXAV6o$95Gum z6>RxbBH-HIlE?T#UDZG;M+$6PpgB=z`eK^6Zc+8AN=unhCGyh^I*C+CJ0-jBh+=%9 zKyK;$417F_Hd(x~Ps}PfaYt|C?O3?WI4xSYpF`RW>}3T|V$kW*9qw=m6-gD)z52Hb z#9TxwCf6m$4n5t(3~Sma$CpmC^Q$?#f}}z+=1HCUPW{^u-C;|PkvynNuQ1CE>$zTL zfje6*%qD{KXlrZOVa#)O%xIqdCTH)s``fd}tHpptVKr&qj-TcCuaWcWP*;T~bh;?yj{*P4+kyZA7YOcs?&Jaobz4&l^ z>u_W@NTlg`)Ta>HF&Ls!HPsKPrSX8pz}zw#t>%%v8MA$4FLXCk|6Gc2f=A0_0`vpH zx`<~q)XL&@-!o5u(8Ms4Dy9wM z={$kaKh%p*2Y`7O-yMW1Ae6{AtBK%^7GeXzpkl*reIO@B$KF7sjhYcnHDRjCpG6w( zVa4jopv_u_6Xz59izPwmaQe#6?u5q=n)Z+Qcwf$26D$jo?}^q-JQEHQ7*_Jbe1i62 zqraxpx-<-uvA*?aC6(laRX{2>8%|e>HKQ?|Y`4#Nnpq`z6vdA`cPW#F-JsMn;OU4t zsrm4@wcCE`)L3ry*P_`O3S8qWE_d`b>3Yb^GzdK<`<@;mjvvfK!ZBB9)j@*vz^jMBn?0XPt8Y8d-C9g?Lk)Eg8>y&o4p&!jSnq)~cdZP-4{C1;F6=T5K zOM!AI&&69jggut0Zy>d8@|2y1eT8SY!fxMeb*A43=VxxCRTHQ?|j?43X* zy&eqOu_>uK^*FqvW%E$#?~tfe?dQ-t=U?jR%q=5;zh`i@*EKcdK_yQ|pU6B|Nym`~ zgv0kk59gN;jwTtmcWHARrtXL7ek)yDywwr*)a+CUO-U&$iXaB{aA})79^jOHmX9i6 z!=H%pr}nXnMFNWyKxz^<1N+(KO^0TBdOAPn8^l=3W@y(?)UKoeniHdS*b0;Y5j!#f zR*8=7V=5J9G>1#nT4T?@&(O!;K}V%IhHqI3V`7Be#mqKSlnhLIDM&wOc|(mclxVVZ z#0jONI?oKNm1~#50>6r|%&0i1=QB2*nH@-mk>s}&541KN1Q(UMS`CM-SMsY!1&tc& z;992AHHS(r!n=zPT~UpoLZqF7#NG1w@J|! zdv2vKcBx29P;KG$MjqI=#pF-|_rr-)%rQ<-vC$SRy!W~4b)658WIGz7G!mO6c%jKh z<RHe+RJ)AE?Z%^RXm0vxmSfBw+4Int=(^4J}MvD>=;C z^0(`xs32<8mEx7F?!NAK7BX(e$lNxL_2cYeQRzphj%WHKPE7anfKqlU5@J~g8iGT4 zl}(SOpmsLFq`J_aE-hvQ&Tiejzg7b_Z5a>T)KkzhEat+}j~CPtP-aUt+%-ALzelCh zxL78TO}YQEGLEL}@w$|yC#eGc$a;h{TSaw_bZv;n+v_!aKv;1JF2kP%d){fu!=Lee zGB><^mUbqAyQM`r#=8ZKG#Z8!&DUbkKH?Nru|n-d?SFt&GHpWFxQKyhn!LYovOd7< z7aA4ttetXcdK4UQ2Nd7UM#D&0l!ua+UR#@wu2^M z7g{(oQ|_!3a8r!q7;@{pyfk=r5?sK7umXHbk-e%S@Vc1k#QOp#O?iuKnI_xM>Cl^(gKH})GQliK-Lii}!*oQl7wiDO3~^QGGyIqL|F(|^^((H4;R6OS@VL(#X=e=u0k{B!Q&BR>Q7sdw>e|eO-KbT=9RW z6*N^c9BqIoy50Q4yqc-?$(6@E3%x~%cj-R8GMit%M`X1`gZcHifM^}21OsckY z-3Dm`>GQUW!`0f(xM(PwN}+O|8>s|%z0^wH;Nh}vfT~rpouVQJ&$|zb{sVY!f;Z>B z+*r!`9eCmWwaPg>UvUA;A~hGp)ui(pGu&~NNyT>__m+eVq2q+NyS8kFA-66v5az{? zEn@bwYrIhVEOmXPD(`UH{0C?swN%g3$(JAgIgrbbFf1dzo6Jn|Sk8Ha2R3nJk-mUW zY-;qwwm9POtM|S1pOvD{oKl=_D8rhriBS8KTM~va6kk+=1%YlYfkmE^+{jGYS+_cW zBnPug9@m8|GT8pg?7OwqswPw~SI#w4#w;^}BKQx$#$|crDd3<(A3bgA;%A3*riN!9 zHlar?VbQeJ3_%2Oi=*%_|1Ib0EthmU5iM}6WOJ2}R#NSAqyrMx+g*6Hgz@+I6vr4w#`^`S- z#zgc`kh)jLG=B8V>?%)O?lm|v72C-FO7yp+z+ff4-TZ(Ih_`Ru6A~g*OS87|5NTmT z)PNa{kVA4qob%mwWF-L8qmn>ZZq3Z%E+FNHVGODo@%id_!^Gs)Kf`~D+>O>d{xS| zAFmKf%Pdti+FeI0r`ZDe;(@-mQfqsKtf`wx(tCJB`h6jUX6x5@+kVYCF zMu2RqdFp$m+;jcW1!nqMT>DBUO46*1iyn-tRvLu*aE;8oY+GrjTdCf*v$MC1f|>>J zWHGkY!v;CtnEzTMK%E$AJ@m!<{1crAW>E;wwUk1qU-YMzqE&cT-qq{BK(Nz911Ec7 z6XKZ~qW$t1I*q9!=a(aGdAc{9d9eK)R2 z%0~JIR1LH#{ffNXOg6JWoxvMwrEt3(@@`83qS+dYOrI9nM9p6tQA|ikq(K$Vm;%^S zSwiM6L(S_O?GE@dMI~y%khoJ43p!Ja7N~}Ri$k-UA_wb{^|~QTK23(GLRvTlKCR%z zsxAZZo$5Xb8%3W~7U=p)tKvnv$`a~=NdmJR7qJ}CKRrbsO2RU$_^-Gd#Lk^1Q6Q7qLQ z4~BVlTuLElP(Au_W`97B^1t+QF+b#H;`Q&hNCBs!O$Z7R($f zhl}%0W}58GtnpTRC1*5wJMpyfNs`9r9uV?FTrOrd*9p<6moi_LS)bjIHSp4lByIkZ zOMX8ZO@b1vrf1GSY`KfCD_!DEW37TwUQ(FJ?dJy&$nbN1O@^j9*Lye;^Y|$R5nwjC zCJC60pNQIe3&%j|DKn1ICO*)5vS8&-PttK@cKYXG|9pXvC+#i}27@oedugO{r?Now zLYL}NF1ouf|T?WAS8@dR>2pNM$3oX)(2-(k(@)#5+K7*Yubagi6I;=8v8Og_MmgOU4>&TFm`P0d9cOh>rGy9i}+|=El5%^(N zS4sVb_BA*IKuN{Kv|_H%%Tw*xBjyt1?p!on4=b)pGj(M1kn)i2&zLZZCu`?x=1wki zE3avr=v!)n)HUZ1iOn^++Hp6sk{0*r%thGJ5J;YAN{Z$YY>=G@1L2b?=UT7z%h!b- zDKCG=TG(vRb19WT!PUs^`4rleGTC0wy6eU6x}T?_J!&^QUe|*P+z46dcculiHlpYx zud5~gjv1i5yhHh&Ef8tGBqxELX>=z!IhxCJ2wrIFJ*&P+kp4I#^2c($Zue%tvF*9= z$h1T<#-tbOn&4;x`sTF&HABsVtA0(+7==kS`X`)QOJn=pN165880Je6%{^7qrUAC1 z(zWPZ^f}nDbGfxx>RDW!Fa(BIwEg^^W#~6p$i_7i=cui1>p#G0JpyT`y%|s?E3?ma z3RA0=vM>a0&zqh(rcWuNUYToAl$ zcdV#fBZ>S3_Txmy$Nqf6^0?$(auo-ylrb%$hIHgqP zZvIA#PwaWV#K#}yE1yfOCreaGlqd4*{{dL}{~!^|_q$BkxcN8BRgU_c zJ1L8{#s}DrK{@Ib%K40ANpxgEr6}SS0lf`m72*-F)UNP&k9Srt^^R)om^^&;^k9v@ zQU?pQvvZu*;+6WkEHPktCb@9l?PiWa*T$!G=O2&r#g2`z9U9#*mL!)~0$6JGK#

  • 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 literal 177588 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 z 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 From cc1654479c75ce8eb1d6f741da2254356e88f5b2 Mon Sep 17 00:00:00 2001 From: ryo-endo Date: Fri, 21 Sep 2018 16:11:57 +0900 Subject: [PATCH 084/170] =?UTF-8?q?=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7?= =?UTF-8?q?=E3=83=B3=E7=95=AA=E5=8F=B74.0.0-RC=E3=81=AB=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Common/Constant.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Common/Constant.php b/src/Eccube/Common/Constant.php index ad527eda091..f886374ae86 100644 --- a/src/Eccube/Common/Constant.php +++ b/src/Eccube/Common/Constant.php @@ -18,7 +18,7 @@ class Constant /** * EC-CUBE VERSION. */ - const VERSION = '4.0-beta'; + const VERSION = '4.0.0-rc'; /** * Enable value. From 785f2f8451d22f6772ed1250e6e99ee5e66ca904 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Fri, 21 Sep 2018 16:44:44 +0900 Subject: [PATCH 085/170] =?UTF-8?q?=E7=8B=AC=E8=87=AA=E3=83=97=E3=83=A9?= =?UTF-8?q?=E3=82=B0=E3=82=A4=E3=83=B3=E3=82=A4=E3=83=B3=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=83=BC=E3=83=AB/=E5=89=8A=E9=99=A4=E6=99=82=E3=81=AE?= =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=83=E3=82=B7=E3=83=A5=E3=82=AF=E3=83=AA?= =?UTF-8?q?=E3=82=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/Admin/Store/PluginController.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Eccube/Controller/Admin/Store/PluginController.php b/src/Eccube/Controller/Admin/Store/PluginController.php index 400a61b4efa..e509fc04b61 100644 --- a/src/Eccube/Controller/Admin/Store/PluginController.php +++ b/src/Eccube/Controller/Admin/Store/PluginController.php @@ -185,10 +185,11 @@ public function index() * * @param Request $request * @param Plugin $Plugin + * @param CacheUtil $cacheUtil * * @return RedirectResponse */ - public function update(Request $request, Plugin $Plugin) + public function update(Request $request, Plugin $Plugin, CacheUtil $cacheUtil) { $form = $this->formFactory ->createNamedBuilder( @@ -206,6 +207,7 @@ public function update(Request $request, Plugin $Plugin) if ($form->isSubmitted() && $form->isValid()) { $tmpDir = null; try { + $cacheUtil->clearCache(); $formFile = $form['plugin_archive']->getData(); $tmpDir = $this->pluginService->createTempDir(); $tmpFile = sha1(StringUtil::random(32)).'.'.$formFile->getClientOriginalExtension(); @@ -389,12 +391,13 @@ public function disable(Request $request, Plugin $Plugin, CacheUtil $cacheUtil) * @Route("/%eccube_admin_route%/store/plugin/{id}/uninstall", requirements={"id" = "\d+"}, name="admin_store_plugin_uninstall", methods={"DELETE"}) * * @param Plugin $Plugin + * @param CacheUtil $cacheUtil * * @return RedirectResponse * * @throws \Exception */ - public function uninstall(Plugin $Plugin) + public function uninstall(Plugin $Plugin, CacheUtil $cacheUtil) { $this->isTokenValid(); @@ -419,6 +422,8 @@ public function uninstall(Plugin $Plugin) return $this->redirectToRoute('admin_store_plugin'); } + $cacheUtil->clearCache(); + $this->pluginService->uninstall($Plugin); $this->addSuccess('admin.store.plugin.uninstall.complete', 'admin'); @@ -432,10 +437,11 @@ public function uninstall(Plugin $Plugin) * @Template("@admin/Store/plugin_install.twig") * * @param Request $request + * @param CacheUtil $cacheUtil * * @return array|RedirectResponse */ - public function install(Request $request) + public function install(Request $request, CacheUtil $cacheUtil) { $form = $this->formFactory ->createBuilder(PluginLocalInstallType::class) @@ -445,6 +451,9 @@ public function install(Request $request) if ($form->isSubmitted() && $form->isValid()) { $tmpDir = null; try { + + $cacheUtil->clearCache(); + /** @var UploadedFile $formFile */ $formFile = $form['plugin_archive']->getData(); $tmpDir = $this->pluginService->createTempDir(); From 17913dbc6a4a8bb36f28c13a547dbba74e065731 Mon Sep 17 00:00:00 2001 From: ryo-endo Date: Fri, 21 Sep 2018 18:10:38 +0900 Subject: [PATCH 086/170] =?UTF-8?q?README=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 363e442d841..776f4d298a1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# EC-CUBE 4.0-beta +# EC-CUBE 4.0.0-rc [![Build Status](https://travis-ci.com/EC-CUBE/ec-cube.svg?branch=4.0)](https://travis-ci.com/EC-CUBE/ec-cube) [![Build status](https://ci.appveyor.com/api/projects/status/lg3uh1539cwln2g6/branch/4.0?svg=true)](https://ci.appveyor.com/project/ECCUBE/ec-cube/branch/4.0) From 5c55d7346236c561f7f839b089246921eedfbf81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=AE=E3=81=B6?= Date: Tue, 25 Sep 2018 14:47:00 +0900 Subject: [PATCH 087/170] =?UTF-8?q?debug=E3=83=A2=E3=83=BC=E3=83=89?= =?UTF-8?q?=E3=81=A7=E6=9C=89=E5=8A=B9=E5=8C=96=E3=81=99=E3=82=8B=E3=81=A8?= =?UTF-8?q?=E3=82=A8=E3=83=A9=E3=83=BC=E3=81=8C=E5=87=BA=E3=82=8B=E5=95=8F?= =?UTF-8?q?=E9=A1=8C=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/Admin/Store/PluginController.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Eccube/Controller/Admin/Store/PluginController.php b/src/Eccube/Controller/Admin/Store/PluginController.php index e509fc04b61..a7e06277f82 100644 --- a/src/Eccube/Controller/Admin/Store/PluginController.php +++ b/src/Eccube/Controller/Admin/Store/PluginController.php @@ -364,7 +364,9 @@ public function disable(Request $request, Plugin $Plugin, CacheUtil $cacheUtil) $this->pluginService->disable($Plugin); } finally { $log = ob_get_clean(); - ob_end_flush(); + while (ob_get_level() > 0) { + ob_end_flush(); + } } } else { if ($request->isXmlHttpRequest()) { From 65c76178db03959470dfc71e7d83460932851c57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=AE=E3=81=B6?= Date: Tue, 25 Sep 2018 17:02:25 +0900 Subject: [PATCH 088/170] =?UTF-8?q?diseble=E3=82=82=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/Admin/Store/PluginController.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Eccube/Controller/Admin/Store/PluginController.php b/src/Eccube/Controller/Admin/Store/PluginController.php index a7e06277f82..0c3d3450dd8 100644 --- a/src/Eccube/Controller/Admin/Store/PluginController.php +++ b/src/Eccube/Controller/Admin/Store/PluginController.php @@ -309,7 +309,9 @@ public function enable(Plugin $Plugin, CacheUtil $cacheUtil, Request $request) $this->pluginService->enable($Plugin); } finally { $log = ob_get_clean(); - ob_end_flush(); + while (ob_get_level() > 0) { + ob_end_flush(); + } } } From 5c2925379c91cb94b24b492368c6bbfb58644e30 Mon Sep 17 00:00:00 2001 From: Tao Sasaki Date: Tue, 25 Sep 2018 22:28:49 +0900 Subject: [PATCH 089/170] =?UTF-8?q?=E3=83=95=E3=83=AA=E3=82=AC=E3=83=8A?= =?UTF-8?q?=E3=81=AE=E3=83=97=E3=83=AC=E3=83=BC=E3=82=B9=E3=83=9B=E3=83=AB?= =?UTF-8?q?=E3=83=80=E3=83=BC=E3=81=8C=E4=B8=A1=E6=96=B9=E5=90=8D=E5=89=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 苗字が無い --- src/Eccube/Resource/template/default/Entry/index.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Resource/template/default/Entry/index.twig b/src/Eccube/Resource/template/default/Entry/index.twig index 2f3cfdf8627..85a4dfd5198 100644 --- a/src/Eccube/Resource/template/default/Entry/index.twig +++ b/src/Eccube/Resource/template/default/Entry/index.twig @@ -48,7 +48,7 @@ file that was distributed with this source code.

    - {{ form_widget(form.kana.kana01, { 'attr': { 'placeholder': 'common.first_name_kana' }}) }} + {{ form_widget(form.kana.kana01, { 'attr': { 'placeholder': 'common.last_name_kana' }}) }} {{ form_widget(form.kana.kana02, { 'attr': { 'placeholder': 'common.first_name_kana' }}) }} {{ form_errors(form.kana.kana01) }} {{ form_errors(form.kana.kana02) }} From d5e1f2fd85b092d228c05e4bcd125ef8b4d62da4 Mon Sep 17 00:00:00 2001 From: Tao Sasaki Date: Tue, 25 Sep 2018 22:51:58 +0900 Subject: [PATCH 090/170] =?UTF-8?q?=E8=A8=98=E5=8F=B7=E3=81=AE=E5=BE=8C?= =?UTF-8?q?=E3=81=AF=E3=82=B9=E3=83=9A=E3=83=BC=E3=82=B9=E3=81=82=E3=81=91?= =?UTF-8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/template/admin/search_items.twig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Resource/template/admin/search_items.twig b/src/Eccube/Resource/template/admin/search_items.twig index b1b19baad7a..db063b47725 100644 --- a/src/Eccube/Resource/template/admin/search_items.twig +++ b/src/Eccube/Resource/template/admin/search_items.twig @@ -10,7 +10,7 @@ file that was distributed with this source code. #}
  • - -
    -
    -
    - {% set version_check = item.version_check %} - {% if version_check == false %} + {% set version_check = item.version_check %} + {% if version_check == false %} +
    +
    +

    {{ 'admin.store.plugin_owners_search.modal.note'|trans({'%version%': constant('Eccube\\Common\\Constant::VERSION')}) }}

    - {% endif %} +
    -
    + {% endif %}
    From fd32afdb113e229ea099cd2ad2883de3ab3ad18b Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Wed, 3 Oct 2018 16:17:00 +0900 Subject: [PATCH 108/170] =?UTF-8?q?@deprecated=20=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Entity/Cart.php | 1 + src/Eccube/Entity/ItemHolderInterface.php | 1 + src/Eccube/Entity/Order.php | 3 +++ 3 files changed, 5 insertions(+) diff --git a/src/Eccube/Entity/Cart.php b/src/Eccube/Entity/Cart.php index d663f717d49..de89992630d 100644 --- a/src/Eccube/Entity/Cart.php +++ b/src/Eccube/Entity/Cart.php @@ -446,6 +446,7 @@ public function setCharge($total) /** * {@inheritdoc} + * @deprecated */ public function setTax($total) { diff --git a/src/Eccube/Entity/ItemHolderInterface.php b/src/Eccube/Entity/ItemHolderInterface.php index b6e8add9698..d51c225cdc5 100644 --- a/src/Eccube/Entity/ItemHolderInterface.php +++ b/src/Eccube/Entity/ItemHolderInterface.php @@ -73,6 +73,7 @@ public function setCharge($total); * 税額合計を設定します。 * * @param $total|int + * @deprecated 明細ごとに集計した税額と差異が発生する場合があるため非推奨 */ public function setTax($total); diff --git a/src/Eccube/Entity/Order.php b/src/Eccube/Entity/Order.php index 037026443a6..1392a84c893 100644 --- a/src/Eccube/Entity/Order.php +++ b/src/Eccube/Entity/Order.php @@ -291,6 +291,7 @@ public function getTotalPrice() * @var string * * @ORM\Column(name="tax", type="decimal", precision=12, scale=2, options={"unsigned":true,"default":0}) + * @deprecated 明細ごとに集計した税額と差異が発生する場合があるため非推奨 */ private $tax = 0; @@ -1008,6 +1009,7 @@ public function getCharge() * @param string $tax * * @return Order + * @deprecated 明細ごとに集計した税額と差異が発生する場合があるため非推奨 */ public function setTax($tax) { @@ -1020,6 +1022,7 @@ public function setTax($tax) * Get tax. * * @return string + * @deprecated 明細ごとに集計した税額と差異が発生する場合があるため非推奨 */ public function getTax() { From 4309c0dee0c8f563473af794fda1988259b0974b Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Wed, 3 Oct 2018 16:42:07 +0900 Subject: [PATCH 109/170] =?UTF-8?q?=E3=82=B5=E3=82=A4=E3=83=89=E3=82=AB?= =?UTF-8?q?=E3=83=A9=E3=83=A0=E3=81=AE=20CSS=20=E3=82=AF=E3=83=A9=E3=82=B9?= =?UTF-8?q?=E5=90=8D=E3=81=8C=E9=96=93=E9=81=95=E3=81=A3=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=9F=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/template/default/default_frame.twig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Resource/template/default/default_frame.twig b/src/Eccube/Resource/template/default/default_frame.twig index 4817b0207ad..01c9d5bbceb 100644 --- a/src/Eccube/Resource/template/default/default_frame.twig +++ b/src/Eccube/Resource/template/default/default_frame.twig @@ -77,7 +77,7 @@ file that was distributed with this source code.
    {# Layout: SIDE_LEFT #} {% if Layout.SideLeft %} -
    +
    {{ include('block.twig', {'Blocks': Layout.SideLeft}) }}
    {% endif %} @@ -110,7 +110,7 @@ file that was distributed with this source code. {# Layout: SIDE_RIGHT #} {% if Layout.SideRight %} -
    +
    {{ include('block.twig', {'Blocks': Layout.SideRight}) }}
    {% endif %} From 9b98e9abf1a21411db38ac53504235756c90c5e9 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Wed, 3 Oct 2018 17:09:21 +0900 Subject: [PATCH 110/170] =?UTF-8?q?pre=5Forder=5Fid=20=E3=81=AB=20unique?= =?UTF-8?q?=20=E5=88=B6=E7=B4=84=E3=82=92=E4=BB=98=E4=B8=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Entity/Cart.php | 7 ++++++- src/Eccube/Entity/Order.php | 4 +++- src/Eccube/Service/OrderHelper.php | 1 - 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Eccube/Entity/Cart.php b/src/Eccube/Entity/Cart.php index d663f717d49..2871e412a19 100644 --- a/src/Eccube/Entity/Cart.php +++ b/src/Eccube/Entity/Cart.php @@ -22,7 +22,12 @@ /** * Cart * - * @ORM\Table(name="dtb_cart", indexes={@ORM\Index(name="dtb_cart_pre_order_id_idx", columns={"pre_order_id"}), @ORM\Index(name="dtb_cart_update_date_idx", columns={"update_date"})}) + * @ORM\Table(name="dtb_cart", indexes={ + * @ORM\Index(name="dtb_cart_update_date_idx", columns={"update_date"}) + * }, + * uniqueConstraints={ + * @ORM\UniqueConstraint(name="dtb_cart_pre_order_id_idx", columns={"pre_order_id"}) + * })) * @ORM\InheritanceType("SINGLE_TABLE") * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) * @ORM\HasLifecycleCallbacks() diff --git a/src/Eccube/Entity/Order.php b/src/Eccube/Entity/Order.php index 037026443a6..dfef2f43962 100644 --- a/src/Eccube/Entity/Order.php +++ b/src/Eccube/Entity/Order.php @@ -24,12 +24,14 @@ * Order * * @ORM\Table(name="dtb_order", indexes={ - * @ORM\Index(name="dtb_order_pre_order_id_idx", columns={"pre_order_id"}), * @ORM\Index(name="dtb_order_email_idx", columns={"email"}), * @ORM\Index(name="dtb_order_order_date_idx", columns={"order_date"}), * @ORM\Index(name="dtb_order_payment_date_idx", columns={"payment_date"}), * @ORM\Index(name="dtb_order_update_date_idx", columns={"update_date"}), * @ORM\Index(name="dtb_order_order_no_idx", columns={"order_no"}) + * }, + * uniqueConstraints={ + * @ORM\UniqueConstraint(name="dtb_order_pre_order_id_idx", columns={"pre_order_id"}) * }) * @ORM\InheritanceType("SINGLE_TABLE") * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) diff --git a/src/Eccube/Service/OrderHelper.php b/src/Eccube/Service/OrderHelper.php index 93020d53621..698c57e27e1 100644 --- a/src/Eccube/Service/OrderHelper.php +++ b/src/Eccube/Service/OrderHelper.php @@ -299,7 +299,6 @@ private function createPreOrderId() $Order = $this->orderRepository->findOneBy( [ 'pre_order_id' => $preOrderId, - 'OrderStatus' => OrderStatus::PROCESSING, ] ); } while ($Order); From 7bad4b3fbac925827e241cdbc6feb6fc93091f6a Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Thu, 4 Oct 2018 16:18:53 +0900 Subject: [PATCH 111/170] =?UTF-8?q?asset=E3=81=AEplugin=E3=83=91=E3=82=B9?= =?UTF-8?q?=E3=81=AE=E8=AA=A4=E3=82=8A=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config/eccube/packages/framework.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/eccube/packages/framework.yaml b/app/config/eccube/packages/framework.yaml index c84dfb177dd..42c560be6e3 100644 --- a/app/config/eccube/packages/framework.yaml +++ b/app/config/eccube/packages/framework.yaml @@ -31,7 +31,7 @@ framework: save_image: base_path: '/html/upload/save_image' plugin: - base_path: '/html/template/plugin' + base_path: '/html/plugin' install: base_path: '/html/template/install' temp_image: From d5d2f2cc79e4f112b93e3630ca07c673df833446 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 4 Oct 2018 17:55:14 +0900 Subject: [PATCH 112/170] =?UTF-8?q?=E5=8F=97=E6=B3=A8=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=94=BB=E9=9D=A2=E3=81=A7=E6=B1=BA=E6=B8=88=E5=87=A6=E7=90=86?= =?UTF-8?q?=E4=B8=AD=E3=81=AE=E5=8F=97=E6=B3=A8=E3=82=92=E6=A4=9C=E7=B4=A2?= =?UTF-8?q?=E3=81=97=E3=81=AA=E3=81=84=E3=82=88=E3=81=86=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Repository/OrderRepository.php | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/Eccube/Repository/OrderRepository.php b/src/Eccube/Repository/OrderRepository.php index 18f01a41089..e2b1ec224b8 100644 --- a/src/Eccube/Repository/OrderRepository.php +++ b/src/Eccube/Repository/OrderRepository.php @@ -132,12 +132,9 @@ public function getQueryBuilderBySearchDataForAdmin($searchData) } if (!$filterStatus) { - // 購入処理中は検索対象から除外 - $OrderStatuses = $this->getEntityManager() - ->getRepository('Eccube\Entity\Master\OrderStatus') - ->findNotContainsBy(['id' => OrderStatus::PROCESSING]); - $qb->andWhere($qb->expr()->in('o.OrderStatus', ':status')) - ->setParameter('status', $OrderStatuses); + // 購入処理中, 決済処理中は検索対象から除外 + $qb->andWhere($qb->expr()->notIn('o.OrderStatus', ':status')) + ->setParameter('status', [OrderStatus::PROCESSING, OrderStatus::PENDING]); } // company_name From 5a7e5ff64da2b43aa8da571fd00c2330c652d148 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 4 Oct 2018 18:08:00 +0900 Subject: [PATCH 113/170] =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=82=B1?= =?UTF-8?q?=E3=83=BC=E3=82=B9=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...itoryGetQueryBuilderBySearchDataAdminTest.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/Eccube/Tests/Repository/OrderRepositoryGetQueryBuilderBySearchDataAdminTest.php b/tests/Eccube/Tests/Repository/OrderRepositoryGetQueryBuilderBySearchDataAdminTest.php index 41977fa3d0e..0129a89709c 100644 --- a/tests/Eccube/Tests/Repository/OrderRepositoryGetQueryBuilderBySearchDataAdminTest.php +++ b/tests/Eccube/Tests/Repository/OrderRepositoryGetQueryBuilderBySearchDataAdminTest.php @@ -160,6 +160,22 @@ public function testOrderIdEnd() $this->verify(); } + public function testOrderIdEnd2() + { + $this->Order->setOrderStatus($this->orderStatusRepo->find(OrderStatus::PENDING)); + $this->entityManager->flush(); + + $this->searchData = [ + 'order_id_end' => $this->Order->getId(), + ]; + $this->scenario(); + + // $this->Order は決済処理中なので 0 件になる + $this->expected = 0; + $this->actual = count($this->Results); + $this->verify(); + } + public function testStatus() { $NewStatus = $this->orderStatusRepo->find(OrderStatus::NEW); From e5771a3e4a40936b8776285a2ddea1dbef4783b3 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 4 Oct 2018 18:39:55 +0900 Subject: [PATCH 114/170] =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=81=AE?= =?UTF-8?q?=E6=A4=9C=E7=B4=A2=E6=9D=A1=E4=BB=B6=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/acceptance/EA04OrderCest.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/codeception/acceptance/EA04OrderCest.php b/codeception/acceptance/EA04OrderCest.php index 570b7bad839..ce464cfd05e 100644 --- a/codeception/acceptance/EA04OrderCest.php +++ b/codeception/acceptance/EA04OrderCest.php @@ -43,7 +43,7 @@ public function order_受注検索(\AcceptanceTester $I) $findOrders = Fixtures::get('findOrders'); // Closure $TargetOrders = array_filter($findOrders(), function ($Order) { - return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING; + return !in_array($Order->getOrderStatus()->getId(), [OrderStatus::PROCESSING, OrderStatus::PENDING]); }); OrderManagePage::go($I)->検索(); $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ); @@ -61,7 +61,7 @@ public function order_受注CSVダウンロード(\AcceptanceTester $I) $findOrders = Fixtures::get('findOrders'); // Closure $TargetOrders = array_filter($findOrders(), function ($Order) { - return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING; + return !in_array($Order->getOrderStatus()->getId(), [OrderStatus::PROCESSING, OrderStatus::PENDING]); }); $OrderListPage = OrderManagePage::go($I)->検索(); $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ); @@ -79,7 +79,7 @@ public function order_受注情報のCSV出力項目変更設定(\AcceptanceTest $findOrders = Fixtures::get('findOrders'); // Closure $TargetOrders = array_filter($findOrders(), function ($Order) { - return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING; + return !in_array($Order->getOrderStatus()->getId(), [OrderStatus::PROCESSING, OrderStatus::PENDING]); }); $OrderListPage = OrderManagePage::go($I)->検索(); $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ); @@ -98,7 +98,7 @@ public function order_配送CSVダウンロード(\AcceptanceTester $I) $findOrders = Fixtures::get('findOrders'); // Closure $TargetOrders = array_filter($findOrders(), function ($Order) { - return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING; + return !in_array($Order->getOrderStatus()->getId(), [OrderStatus::PROCESSING, OrderStatus::PENDING]); }); $OrderListPage = OrderManagePage::go($I)->検索(); $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ); @@ -116,7 +116,7 @@ public function order_配送情報のCSV出力項目変更設定(\AcceptanceTest $findOrders = Fixtures::get('findOrders'); // Closure $TargetOrders = array_filter($findOrders(), function ($Order) { - return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING; + return !in_array($Order->getOrderStatus()->getId(), [OrderStatus::PROCESSING, OrderStatus::PENDING]); }); $OrderListPage = OrderManagePage::go($I)->検索(); $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ); @@ -201,7 +201,7 @@ public function order_受注削除(\AcceptanceTester $I) $findOrders = Fixtures::get('findOrders'); // Closure $TargetOrders = array_filter($findOrders(), function ($Order) { - return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING; + return !in_array($Order->getOrderStatus()->getId(), [OrderStatus::PROCESSING, OrderStatus::PENDING]); }); $OrderListPage = OrderManagePage::go($I)->検索(); @@ -292,7 +292,7 @@ public function order_pdfページをエクスポートする(\AcceptanceTester $findOrders = Fixtures::get('findOrders'); // Closure $TargetOrders = array_filter($findOrders(), function ($Order) { - return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING; + return !in_array($Order->getOrderStatus()->getId(), [OrderStatus::PROCESSING, OrderStatus::PENDING]); }); $OrderListPage = OrderManagePage::go($I)->検索(); $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ); @@ -315,7 +315,7 @@ public function order_出力pdfダウンロード(\AcceptanceTester $I) $findOrders = Fixtures::get('findOrders'); // Closure $TargetOrders = array_filter($findOrders(), function ($Order) { - return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING; + return !in_array($Order->getOrderStatus()->getId(), [OrderStatus::PROCESSING, OrderStatus::PENDING]); }); $OrderListPage = OrderManagePage::go($I)->検索(); $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ); From 0a5f34dda23a1dd0c8babf88bf2eaa9a6e290d82 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 4 Oct 2018 19:09:52 +0900 Subject: [PATCH 115/170] =?UTF-8?q?=E6=B1=BA=E6=B8=88=E5=87=A6=E7=90=86?= =?UTF-8?q?=E4=B8=AD=E3=81=AF=E6=A4=9C=E7=B4=A2=E3=81=A7=E3=81=8D=E3=81=AA?= =?UTF-8?q?=E3=81=84=E3=81=9F=E3=82=81=E3=82=AD=E3=83=A3=E3=83=B3=E3=82=BB?= =?UTF-8?q?=E3=83=AB=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/acceptance/EA09ShippingCest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codeception/acceptance/EA09ShippingCest.php b/codeception/acceptance/EA09ShippingCest.php index 967cf789c8b..60f346c6964 100644 --- a/codeception/acceptance/EA09ShippingCest.php +++ b/codeception/acceptance/EA09ShippingCest.php @@ -252,8 +252,8 @@ public function shipping_出荷CSV登録失敗(\AcceptanceTester $I) $Customer = (Fixtures::get('createCustomer'))(); /* @var Order[] $Orders */ $Orders = (Fixtures::get('createOrders'))($Customer, 3); - // 決済処理中に更新しておく - $Status = $entityManager->getRepository('Eccube\Entity\Master\OrderStatus')->find(OrderStatus::PENDING); + // キャンセルに更新しておく + $Status = $entityManager->getRepository('Eccube\Entity\Master\OrderStatus')->find(OrderStatus::CANCEL); foreach ($Orders as $newOrder) { $newOrder->setOrderStatus($Status); } From 9778e1adfdae31d85b6fa97a58d3a5e2a4138ffa Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 4 Oct 2018 19:31:45 +0900 Subject: [PATCH 116/170] Fix typo --- codeception/acceptance/EA09ShippingCest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/codeception/acceptance/EA09ShippingCest.php b/codeception/acceptance/EA09ShippingCest.php index 60f346c6964..62dc9722f4b 100644 --- a/codeception/acceptance/EA09ShippingCest.php +++ b/codeception/acceptance/EA09ShippingCest.php @@ -297,11 +297,11 @@ public function shipping_出荷CSV登録失敗(\AcceptanceTester $I) ->入力_CSVファイル('shipping.csv') ->CSVアップロード(); - $I->see(sprintf('%s: %s から %s にはステータス変更できません', $Orders[0]->getShippings()[0]->getId(), '決済処理中', '発送済み'), + $I->see(sprintf('%s: %s から %s にはステータス変更できません', $Orders[0]->getShippings()[0]->getId(), '注文取消し', '発送済み'), '#upload-form > div:nth-child(4)'); - $I->see(sprintf('%s: %s から %s にはステータス変更できません', $Orders[1]->getShippings()[0]->getId(), '決済処理中', '発送済み'), + $I->see(sprintf('%s: %s から %s にはステータス変更できません', $Orders[1]->getShippings()[0]->getId(), '注文取消し', '発送済み'), '#upload-form > div:nth-child(5)'); - $I->see(sprintf('%s: %s から %s にはステータス変更できません', $Orders[2]->getShippings()[0]->getId(), '決済処理中', '発送済み'), + $I->see(sprintf('%s: %s から %s にはステータス変更できません', $Orders[2]->getShippings()[0]->getId(), '注文取消し', '発送済み'), '#upload-form > div:nth-child(6)'); } finally { if (file_exists($csvFileName)) { From 39a13b5cce957b8a595666dbf0422c7dcbf22141 Mon Sep 17 00:00:00 2001 From: Tao Sasaki Date: Fri, 5 Oct 2018 17:28:45 +0900 Subject: [PATCH 117/170] =?UTF-8?q?=E6=97=A5=E6=9C=AC=E8=AA=9E=E3=83=A1?= =?UTF-8?q?=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8=E3=83=99=E3=82=BF=E6=9B=B8?= =?UTF-8?q?=E3=81=8D=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/ProductController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Controller/ProductController.php b/src/Eccube/Controller/ProductController.php index 127f695a6fd..229fe574455 100644 --- a/src/Eccube/Controller/ProductController.php +++ b/src/Eccube/Controller/ProductController.php @@ -463,7 +463,7 @@ public function addCart(Request $request, Product $Product) if (empty($errorMessages)) { // エラーが発生していない場合 $done = true; - array_push($messages, 'カートに追加しました。'); + array_push($messages, trans('front.product.add_cart_complete')); } else { // エラーが発生している場合 $done = false; From 43687126a2d5a53a315f280e146028bb1580a1e2 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Tue, 9 Oct 2018 11:09:03 +0900 Subject: [PATCH 118/170] =?UTF-8?q?package-api=E3=81=AE=E6=8E=A5=E7=B6=9A?= =?UTF-8?q?=E5=85=88=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config/eccube/packages/eccube.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/eccube/packages/eccube.yaml b/app/config/eccube/packages/eccube.yaml index 9eab7f668fa..07c3f93ec6a 100644 --- a/app/config/eccube/packages/eccube.yaml +++ b/app/config/eccube/packages/eccube.yaml @@ -10,7 +10,7 @@ parameters: env(ECCUBE_COOKIE_PATH): '/' env(ECCUBE_COOKIE_LIFETIME): 0 env(ECCUBE_GC_MAXLIFETIME): 1440 - env(ECCUBE_PACKAGE_API_URL): 'https://beta-package-api.ec-cube.net' + env(ECCUBE_PACKAGE_API_URL): 'https://package-api.ec-cube.net' env(ECCUBE_OWNERS_STORE_URL): 'https://www.ec-cube.net' # EC-CUBE parameter From 9b4d956816b1e63171a6c4afa85e1ee05259dc45 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Tue, 9 Oct 2018 19:32:39 +0900 Subject: [PATCH 119/170] =?UTF-8?q?=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E7=94=A8=E3=83=87=E3=83=BC=E3=82=BF=E3=83=87=E3=82=A3?= =?UTF-8?q?=E3=83=AC=E3=82=AF=E3=83=88=E3=83=AA=E3=81=AE=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ app/PluginData/.gitkeep | 0 app/config/eccube/packages/eccube.yaml | 1 + 3 files changed, 3 insertions(+) create mode 100644 app/PluginData/.gitkeep diff --git a/.gitignore b/.gitignore index 0e0d85bd801..1fc0648a8d1 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,8 @@ composer.phar /app/Plugin/* !/app/Plugin/.gitkeep !/app/Plugin/ExamplePlugin +/app/PluginData/* +!/app/PluginData/.gitkeep /app/template/* !/app/template/admin !/app/template/default diff --git a/app/PluginData/.gitkeep b/app/PluginData/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/app/config/eccube/packages/eccube.yaml b/app/config/eccube/packages/eccube.yaml index 07c3f93ec6a..a2dc581314b 100644 --- a/app/config/eccube/packages/eccube.yaml +++ b/app/config/eccube/packages/eccube.yaml @@ -56,6 +56,7 @@ parameters: plugin_html_realdir: '%eccube_html_dir%/plugin/' plugin_html_urlpath: /plugin/ # asset 使う plugin_realdir: '%kernel.project_dir%/app/Plugin' + plugin_data_realdir: '%kernel.project_dir%/app/PluginData' plugin_temp_realdir: /PATH/TO/WEB_ROOT/src/Eccube/Repository/Master/upload/temp_plugin/ # upload_tmp_dir に任せればよい? eccube_price_len: 8 # 最大値で制御したい eccube_search_pmax: 10 From c8d79d8bc8ab223a252a15978ff7a87fd8ef2e5d Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Wed, 10 Oct 2018 09:45:53 +0900 Subject: [PATCH 120/170] =?UTF-8?q?=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7?= =?UTF-8?q?=E3=83=B3=E3=82=924.0.0=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/Eccube/Common/Constant.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d23416b7427..078c7223bef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eccube", - "version": "0.0.0", + "version": "4.0.0", "description": "EC-CUBE EC open platform.", "main": "index.js", "directories": { diff --git a/src/Eccube/Common/Constant.php b/src/Eccube/Common/Constant.php index f886374ae86..8ab4f7a8c31 100644 --- a/src/Eccube/Common/Constant.php +++ b/src/Eccube/Common/Constant.php @@ -18,7 +18,7 @@ class Constant /** * EC-CUBE VERSION. */ - const VERSION = '4.0.0-rc'; + const VERSION = '4.0.0'; /** * Enable value. From 151742f4cc11ab654e0a16dcf4458069e6cc1f96 Mon Sep 17 00:00:00 2001 From: lqdung1992 Date: Mon, 15 Oct 2018 16:13:45 +0900 Subject: [PATCH 121/170] Fix error when payment limit and point use --- src/Eccube/Form/Type/Shopping/OrderType.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Form/Type/Shopping/OrderType.php b/src/Eccube/Form/Type/Shopping/OrderType.php index 70caff410ca..ffe458d7a47 100644 --- a/src/Eccube/Form/Type/Shopping/OrderType.php +++ b/src/Eccube/Form/Type/Shopping/OrderType.php @@ -159,7 +159,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) } $Payments = $this->getPayments($Deliveries); - $Payments = $this->filterPayments($Payments, $Order->getSubtotal()); + $Payments = $this->filterPayments($Payments, $Order->getPaymentTotal()); $form = $event->getForm(); $this->addPaymentForm($form, $Payments); From d59ad41682e701ac8c3eb49344cd32dde68898ee Mon Sep 17 00:00:00 2001 From: lqdung1992 Date: Mon, 15 Oct 2018 19:24:25 +0900 Subject: [PATCH 122/170] Add unit test --- .../Tests/Web/ShoppingControllerTest.php | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/tests/Eccube/Tests/Web/ShoppingControllerTest.php b/tests/Eccube/Tests/Web/ShoppingControllerTest.php index cc86c462096..4215a45d1af 100644 --- a/tests/Eccube/Tests/Web/ShoppingControllerTest.php +++ b/tests/Eccube/Tests/Web/ShoppingControllerTest.php @@ -14,13 +14,16 @@ namespace Eccube\Tests\Web; use Eccube\Entity\Delivery; +use Eccube\Entity\Payment; use Eccube\Entity\PaymentOption; use Eccube\Entity\Master\OrderStatus; use Eccube\Entity\Master\SaleType; +use Eccube\Entity\ProductClass; use Eccube\Repository\BaseInfoRepository; use Eccube\Repository\PaymentRepository; use Eccube\Repository\Master\OrderStatusRepository; use Eccube\Repository\OrderRepository; +use Eccube\Repository\ProductClassRepository; use Eccube\Tests\Fixture\Generator; use Symfony\Component\DomCrawler\Crawler; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; @@ -574,6 +577,79 @@ public function testCompleteWithChangeDeliveryName() $this->verify(); } + /** + * Check can use point when has payment limit + */ + public function testPaymentLimitAndPointCombination() + { + $Customer = $this->createCustomer(); + $Customer->setPoint(99999); + $this->entityManager->flush($Customer); + + $price = 40000; + $pointUse = 40000; + /** @var ProductClass $ProductClass */ + $ProductClass = $this->container->get(ProductClassRepository::class)->find(1); + $ProductClass->setPrice02($price); + $this->entityManager->flush($ProductClass); + + $Delivery = $this->container->get(Generator::class)->createDelivery(); + $Delivery->setSaleType($ProductClass->getSaleType()); + $this->entityManager->flush($Delivery); + + $COD1 = $this->container->get(Generator::class)->createPayment($Delivery, 'COD1', 0, 0, 30000); + $COD2 = $this->container->get(Generator::class)->createPayment($Delivery, 'COD2', 0, 30001, 300000); + + // カート画面 + $this->scenarioCartIn($Customer, 1); + + // 確認画面 + $this->scenarioConfirm($Customer); + + // without use point with payment: COD2 + $this->scenarioRedirectTo($Customer, [ + '_shopping_order' => [ + 'Shippings' => [ + 0 => [ + 'Delivery' => $Delivery->getId(), + 'DeliveryTime' => $Delivery->getDeliveryTimes()->first()->getId(), + ], + ], + 'Payment' => $COD2->getId(), + 'use_point' => 0, + 'message' => $this->getFaker()->realText(), + '_token' => 'dummy', + ], + ]); + $this->assertTrue($this->client->getResponse()->isRedirect($this->generateUrl('shopping'))); + $crawler = $this->client->followRedirect(); + $html = $crawler->filter('body')->html(); + $this->assertNotContains($COD1->getMethod(), $html); + $this->assertContains($COD2->getMethod(), $html); + + // use point with payment: COD1 + $this->scenarioRedirectTo($Customer, [ + '_shopping_order' => [ + 'Shippings' => [ + 0 => [ + 'Delivery' => $Delivery->getId(), + 'DeliveryTime' => $Delivery->getDeliveryTimes()->first()->getId(), + ], + ], + 'Payment' => $COD2->getId(), + 'use_point' => $pointUse, + 'message' => $this->getFaker()->realText(), + '_token' => 'dummy', + ], + ]); + $this->assertTrue($this->client->getResponse()->isRedirect($this->generateUrl('shopping'))); + $crawler = $this->client->followRedirect(); + + $html = $crawler->filter('body')->html(); + $this->assertContains($COD1->getMethod(), $html); + $this->assertNotContains($COD2->getMethod(), $html); + } + /** * @param Delivery $Delivery * @param Payment[] $Payments From 469c434cbae615cdb192eed70b04a7e262d02be6 Mon Sep 17 00:00:00 2001 From: lqdung1992 Date: Mon, 15 Oct 2018 19:45:05 +0900 Subject: [PATCH 123/170] Add remove delivery time in test --- tests/Eccube/Tests/Web/ShoppingControllerTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Eccube/Tests/Web/ShoppingControllerTest.php b/tests/Eccube/Tests/Web/ShoppingControllerTest.php index 4215a45d1af..d93da2f5003 100644 --- a/tests/Eccube/Tests/Web/ShoppingControllerTest.php +++ b/tests/Eccube/Tests/Web/ShoppingControllerTest.php @@ -612,7 +612,7 @@ public function testPaymentLimitAndPointCombination() 'Shippings' => [ 0 => [ 'Delivery' => $Delivery->getId(), - 'DeliveryTime' => $Delivery->getDeliveryTimes()->first()->getId(), + 'DeliveryTime' => null, ], ], 'Payment' => $COD2->getId(), @@ -633,7 +633,7 @@ public function testPaymentLimitAndPointCombination() 'Shippings' => [ 0 => [ 'Delivery' => $Delivery->getId(), - 'DeliveryTime' => $Delivery->getDeliveryTimes()->first()->getId(), + 'DeliveryTime' => null, ], ], 'Payment' => $COD2->getId(), From 846a1e49c39adaf62f18909f4e3db08bb49c134a Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Tue, 16 Oct 2018 15:28:17 +0900 Subject: [PATCH 124/170] Fix price and pointUse There is a need to test to fail in the case of before the change. --- tests/Eccube/Tests/Web/ShoppingControllerTest.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/Eccube/Tests/Web/ShoppingControllerTest.php b/tests/Eccube/Tests/Web/ShoppingControllerTest.php index d93da2f5003..58461feef6a 100644 --- a/tests/Eccube/Tests/Web/ShoppingControllerTest.php +++ b/tests/Eccube/Tests/Web/ShoppingControllerTest.php @@ -579,6 +579,8 @@ public function testCompleteWithChangeDeliveryName() /** * Check can use point when has payment limit + * + * https://github.com/EC-CUBE/ec-cube/issues/3916 */ public function testPaymentLimitAndPointCombination() { @@ -586,8 +588,8 @@ public function testPaymentLimitAndPointCombination() $Customer->setPoint(99999); $this->entityManager->flush($Customer); - $price = 40000; - $pointUse = 40000; + $price = 27777; + $pointUse = 27777; /** @var ProductClass $ProductClass */ $ProductClass = $this->container->get(ProductClassRepository::class)->find(1); $ProductClass->setPrice02($price); From 4e4a0f5976fd5368885858591d2c71dc606871a9 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Wed, 17 Oct 2018 18:09:03 +0900 Subject: [PATCH 125/170] Fix Migrations --- .../Version20181017090225.php | 23 +++++++++++++++++++ app/config/eccube/bundles.php | 1 + .../eccube/packages/doctrine_migrations.yaml | 4 ++++ 3 files changed, 28 insertions(+) create mode 100644 app/DoctrineMigrations/Version20181017090225.php create mode 100644 app/config/eccube/packages/doctrine_migrations.yaml diff --git a/app/DoctrineMigrations/Version20181017090225.php b/app/DoctrineMigrations/Version20181017090225.php new file mode 100644 index 00000000000..cb1b091d448 --- /dev/null +++ b/app/DoctrineMigrations/Version20181017090225.php @@ -0,0 +1,23 @@ + ['all' => true], Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true], Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], + Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['all' => true], Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true], Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], diff --git a/app/config/eccube/packages/doctrine_migrations.yaml b/app/config/eccube/packages/doctrine_migrations.yaml new file mode 100644 index 00000000000..7fcb36d30a0 --- /dev/null +++ b/app/config/eccube/packages/doctrine_migrations.yaml @@ -0,0 +1,4 @@ +doctrine_migrations: + dir_name: "%kernel.project_dir%/app/DoctrineMigrations" + namespace: DoctrineMigrations + organize_migrations: false From ba45244a2ff73c4bda9ce8b9b98c43892fd30259 Mon Sep 17 00:00:00 2001 From: lqdung1992 Date: Thu, 18 Oct 2018 16:22:55 +0900 Subject: [PATCH 126/170] Search text no matter if is in lower or upper case --- html/template/admin/assets/js/function.js | 25 ++++++++++++++ .../template/admin/Content/block.twig | 31 ++--------------- .../template/admin/Content/layout.twig | 31 ++--------------- .../Resource/template/admin/Content/page.twig | 31 ++--------------- .../template/admin/Product/product.twig | 33 ++----------------- 5 files changed, 37 insertions(+), 114 deletions(-) diff --git a/html/template/admin/assets/js/function.js b/html/template/admin/assets/js/function.js index 29555ee41fc..ce381f1e354 100644 --- a/html/template/admin/assets/js/function.js +++ b/html/template/admin/assets/js/function.js @@ -183,3 +183,28 @@ $(window).on('load', function() { icon.addClass('fa-angle-up'); } }); + +var searchWord = function (searchText, el) { + var targetText; + + // 検索ボックスに値が入っていない場合 + if (searchText == '') { + // 全て表示する + el.show(); + return; + } + + // 検索ボックスに値が入ってる場合 + // 表示を全て空にする + el.hide(); + + // 検索ワードが(子を含めて)含まれる要素のみ表示 + el.each(function () { + targetText = $(this).text(); + // 検索対象となるリストに入力された文字列が存在するかどうかを判断 + if (targetText.toLowerCase().indexOf(searchText.toLowerCase()) != -1) { + // 存在する場合はそのリストのテキストを用意した配列に格納 + $(this).show(); + } + }); +}; diff --git a/src/Eccube/Resource/template/admin/Content/block.twig b/src/Eccube/Resource/template/admin/Content/block.twig index 480f2d56cb5..a204d82345d 100644 --- a/src/Eccube/Resource/template/admin/Content/block.twig +++ b/src/Eccube/Resource/template/admin/Content/block.twig @@ -25,35 +25,10 @@ file that was distributed with this source code. {% block javascript %} {% endblock javascript %} diff --git a/src/Eccube/Resource/template/admin/Content/layout.twig b/src/Eccube/Resource/template/admin/Content/layout.twig index 6edec2882f9..d8388ea2981 100644 --- a/src/Eccube/Resource/template/admin/Content/layout.twig +++ b/src/Eccube/Resource/template/admin/Content/layout.twig @@ -153,33 +153,6 @@ file that was distributed with this source code. }); {% endblock javascript %} diff --git a/src/Eccube/Resource/template/admin/Content/page.twig b/src/Eccube/Resource/template/admin/Content/page.twig index f98c09cf39d..de583caa988 100644 --- a/src/Eccube/Resource/template/admin/Content/page.twig +++ b/src/Eccube/Resource/template/admin/Content/page.twig @@ -17,35 +17,10 @@ file that was distributed with this source code. {% block javascript %} {% endblock javascript %} diff --git a/src/Eccube/Resource/template/admin/Product/product.twig b/src/Eccube/Resource/template/admin/Product/product.twig index 7b93313c453..fd4895e6cfa 100644 --- a/src/Eccube/Resource/template/admin/Product/product.twig +++ b/src/Eccube/Resource/template/admin/Product/product.twig @@ -220,37 +220,10 @@ file that was distributed with this source code. confirmFormChange($('#form1'), $('a[data-action="confirm"]'), $('#confirmFormChangeModal')) }); - - {% endblock javascript %} From a02e53e91f6f3dd4bd648992eed167933e284be2 Mon Sep 17 00:00:00 2001 From: lqdung1992 Date: Thu, 18 Oct 2018 16:50:12 +0900 Subject: [PATCH 127/170] Fix html5 validate conflict with ladda spinner --- html/template/admin/assets/js/function.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/template/admin/assets/js/function.js b/html/template/admin/assets/js/function.js index 29555ee41fc..9c65b96eba8 100644 --- a/html/template/admin/assets/js/function.js +++ b/html/template/admin/assets/js/function.js @@ -117,7 +117,7 @@ var toggleBtnBulk = function(checkboxSelector, btnSelector) { /////////// 2重submit制御. if (typeof Ladda !== 'undefined') { - Ladda.bind('button[type=submit]'); + Ladda.bind('button[type=submit]', {timeout: 2000}); } // anchorをクリックした時にformを裏で作って指定のメソッドでリクエストを飛ばす From 922ae11b8673abc2587aff8535c1d942634f4e40 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 18 Oct 2018 17:04:20 +0900 Subject: [PATCH 128/170] Upgrade Chromedriver to 2.43 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7ad5215575c..facc2f815f3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -85,7 +85,7 @@ jobs: - *php_setup - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start - - wget -c -nc --retry-connrefused --tries=0 http://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip + - wget -c -nc --retry-connrefused --tries=0 http://chromedriver.storage.googleapis.com/2.43/chromedriver_linux64.zip - unzip -o -q chromedriver_linux64.zip - sudo mv -f ./chromedriver /usr/local/bin/ - sudo chmod +x /usr/local/bin/chromedriver From 73837b73525c7937bdf4e1b46ddf307fb561af28 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 18 Oct 2018 18:33:55 +0900 Subject: [PATCH 129/170] =?UTF-8?q?=E3=82=AD=E3=83=BC=E3=83=AF=E3=83=BC?= =?UTF-8?q?=E3=83=89=E7=BD=AE=E6=8F=9B=E3=81=A7=E3=81=8D=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=AA=E3=81=8B=E3=81=A3=E3=81=9F=E3=81=AE=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/locale/messages.ja.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Resource/locale/messages.ja.yaml b/src/Eccube/Resource/locale/messages.ja.yaml index aea18d2ebd6..b551932e631 100644 --- a/src/Eccube/Resource/locale/messages.ja.yaml +++ b/src/Eccube/Resource/locale/messages.ja.yaml @@ -870,7 +870,7 @@ admin.order.delivery_note_download_error: 'ダウンロードに失敗しまし admin.order.delivery_note_parameter_error: '出荷IDが指定されていません' admin.order.failed_to_change_status: '%name%: %from% から %to% にはステータス変更できません' admin.order.failed_to_change_status__short: '%from% から %to% にはステータス変更できません' -admin.order.skip_change_status: '%name": ステータス変更をスキップしました' +admin.order.skip_change_status: '%name%: ステータス変更をスキップしました' # 出荷CSV雛形 admin.order.shipping_csv.shipping_id_col: 出荷ID From 2206a8f83a208ef6a40095005d1d4706ed4b91f0 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 25 Oct 2018 13:28:50 +0900 Subject: [PATCH 130/170] Upgrade PHP to 7.2.10 --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 3b748a1d15b..381448cbf7c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -43,7 +43,7 @@ install: #- cinst mysql #- SET PATH=C:\tools\mysql\current\bin\;%PATH% # Set PHP. - - cinst php --version 7.2.9 --allow-empty-checksums + - cinst php --version 7.2.10 --allow-empty-checksums - SET PATH=C:\tools\php72\;%PATH% - copy C:\tools\php72\php.ini-production C:\tools\php72\php.ini - echo date.timezone="Asia/Tokyo" >> C:\tools\php72\php.ini From eb83a849923e841b66ef858ac429cae7164b2cdd Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 25 Oct 2018 13:34:38 +0900 Subject: [PATCH 131/170] Remove cache of Chocolatey --- appveyor.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 381448cbf7c..42a0c48ca87 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -10,8 +10,6 @@ cache: - '%LOCALAPPDATA%\Composer\files' - vendor - bin\.phpunit - - C:\ProgramData\chocolatey\bin -> appveyor.yml - - C:\ProgramData\chocolatey\lib -> appveyor.yml # Fix line endings in Windows. (runs before repo cloning) init: From bab6c1452d146721057e19634db1a94079aaf684 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 25 Oct 2018 13:48:34 +0900 Subject: [PATCH 132/170] Fixed OpenSSL.Light 1.1.1 --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 42a0c48ca87..aba72cf58d7 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -31,7 +31,7 @@ services: # Install scripts. (runs after repo cloning) install: # see https://github.com/phpmd/phpmd/blob/master/appveyor.yml#L10-L13 - - cinst -y OpenSSL.Light + - cinst -y OpenSSL.Light --version 1.1.1 - SET PATH=C:\Program Files\OpenSSL;%PATH% - sc config wuauserv start= auto - net start wuauserv From a613dd49b97b65b496225c2ff857f4e2c8f7d3b6 Mon Sep 17 00:00:00 2001 From: Yangsin Kim Date: Tue, 23 Oct 2018 16:07:21 +0900 Subject: [PATCH 133/170] =?UTF-8?q?README=20=E3=81=AERC=E8=A8=98=E8=BF=B0?= =?UTF-8?q?=E3=82=92=E8=A8=82=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 776f4d298a1..3a4cc5356d6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# EC-CUBE 4.0.0-rc +# EC-CUBE 4.0.0 [![Build Status](https://travis-ci.com/EC-CUBE/ec-cube.svg?branch=4.0)](https://travis-ci.com/EC-CUBE/ec-cube) [![Build status](https://ci.appveyor.com/api/projects/status/lg3uh1539cwln2g6/branch/4.0?svg=true)](https://ci.appveyor.com/project/ECCUBE/ec-cube/branch/4.0) From 0d9d4155f13662b55cd5c6bd856dd9cd38c9340e Mon Sep 17 00:00:00 2001 From: Yangsin Kim Date: Tue, 23 Oct 2018 16:08:09 +0900 Subject: [PATCH 134/170] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3a4cc5356d6..6299d82767a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# EC-CUBE 4.0.0 +# EC-CUBE 4.0 [![Build Status](https://travis-ci.com/EC-CUBE/ec-cube.svg?branch=4.0)](https://travis-ci.com/EC-CUBE/ec-cube) [![Build status](https://ci.appveyor.com/api/projects/status/lg3uh1539cwln2g6/branch/4.0?svg=true)](https://ci.appveyor.com/project/ECCUBE/ec-cube/branch/4.0) From fdf4047cdf99205b5d13cb8c3a94cc10a74ece7b Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Tue, 23 Oct 2018 11:33:54 +0900 Subject: [PATCH 135/170] =?UTF-8?q?=E3=83=95=E3=83=AA=E3=82=AC=E3=83=8A?= =?UTF-8?q?=E3=81=AE=E3=83=97=E3=83=AC=E3=83=BC=E3=82=B9=E3=83=9B=E3=83=AB?= =?UTF-8?q?=E3=83=80=E3=83=BC=E3=81=8C=E4=B8=A1=E6=96=B9=E3=83=A1=E3=82=A4?= =?UTF-8?q?=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=84=E3=82=8B=E3=81=AE?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/template/default/Mypage/change.twig | 2 +- src/Eccube/Resource/template/default/Mypage/delivery_edit.twig | 2 +- src/Eccube/Resource/template/default/Shopping/nonmember.twig | 2 +- .../Resource/template/default/Shopping/shipping_edit.twig | 2 +- .../template/default/Shopping/shipping_multiple_edit.twig | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Eccube/Resource/template/default/Mypage/change.twig b/src/Eccube/Resource/template/default/Mypage/change.twig index 30b458aa41f..9b03b9d554c 100755 --- a/src/Eccube/Resource/template/default/Mypage/change.twig +++ b/src/Eccube/Resource/template/default/Mypage/change.twig @@ -55,7 +55,7 @@ file that was distributed with this source code.
    - {{ form_widget(form.kana.kana01, { 'attr': { 'placeholder': 'common.first_name_kana' }}) }} + {{ form_widget(form.kana.kana01, { 'attr': { 'placeholder': 'common.last_name_kana' }}) }} {{ form_widget(form.kana.kana02, { 'attr': { 'placeholder': 'common.first_name_kana' }}) }} {{ form_errors(form.kana.kana01) }} {{ form_errors(form.kana.kana02) }} diff --git a/src/Eccube/Resource/template/default/Mypage/delivery_edit.twig b/src/Eccube/Resource/template/default/Mypage/delivery_edit.twig index 1a5b7f461bc..2d5cfd18ad2 100755 --- a/src/Eccube/Resource/template/default/Mypage/delivery_edit.twig +++ b/src/Eccube/Resource/template/default/Mypage/delivery_edit.twig @@ -56,7 +56,7 @@ file that was distributed with this source code.
    - {{ form_widget(form.kana.kana01, { 'attr': { 'placeholder': 'common.first_name_kana' }}) }} + {{ form_widget(form.kana.kana01, { 'attr': { 'placeholder': 'common.last_name_kana' }}) }} {{ form_widget(form.kana.kana02, { 'attr': { 'placeholder': 'common.first_name_kana' }}) }} {{ form_errors(form.kana.kana01) }} {{ form_errors(form.kana.kana02) }} diff --git a/src/Eccube/Resource/template/default/Shopping/nonmember.twig b/src/Eccube/Resource/template/default/Shopping/nonmember.twig index beae9a1ae36..ad046e3f69f 100644 --- a/src/Eccube/Resource/template/default/Shopping/nonmember.twig +++ b/src/Eccube/Resource/template/default/Shopping/nonmember.twig @@ -89,7 +89,7 @@ file that was distributed with this source code.
    - {{ form_widget(form.kana.kana01, { 'attr': { 'placeholder': 'common.first_name_kana' }}) }} + {{ form_widget(form.kana.kana01, { 'attr': { 'placeholder': 'common.last_name_kana' }}) }} {{ form_widget(form.kana.kana02, { 'attr': { 'placeholder': 'common.first_name_kana' }}) }} {{ form_errors(form.kana.kana01) }} {{ form_errors(form.kana.kana02) }} diff --git a/src/Eccube/Resource/template/default/Shopping/shipping_edit.twig b/src/Eccube/Resource/template/default/Shopping/shipping_edit.twig index e39534398c1..49500105883 100644 --- a/src/Eccube/Resource/template/default/Shopping/shipping_edit.twig +++ b/src/Eccube/Resource/template/default/Shopping/shipping_edit.twig @@ -61,7 +61,7 @@ file that was distributed with this source code.
    - {{ form_widget(form.kana.kana01, { 'attr': { 'placeholder': 'common.first_name_kana' }}) }} + {{ form_widget(form.kana.kana01, { 'attr': { 'placeholder': 'common.last_name_kana' }}) }} {{ form_widget(form.kana.kana02, { 'attr': { 'placeholder': 'common.first_name_kana' }}) }} {{ form_errors(form.kana.kana01) }} {{ form_errors(form.kana.kana02) }} diff --git a/src/Eccube/Resource/template/default/Shopping/shipping_multiple_edit.twig b/src/Eccube/Resource/template/default/Shopping/shipping_multiple_edit.twig index 3be018084e2..a0fbeaf5cce 100644 --- a/src/Eccube/Resource/template/default/Shopping/shipping_multiple_edit.twig +++ b/src/Eccube/Resource/template/default/Shopping/shipping_multiple_edit.twig @@ -46,7 +46,7 @@ file that was distributed with this source code.
    - {{ form_widget(form.kana.kana01, { 'attr': { 'placeholder': 'common.first_name_kana' }}) }} + {{ form_widget(form.kana.kana01, { 'attr': { 'placeholder': 'common.last_name_kana' }}) }} {{ form_widget(form.kana.kana02, { 'attr': { 'placeholder': 'common.first_name_kana' }}) }} {{ form_errors(form.kana.kana01) }} {{ form_errors(form.kana.kana02) }} From 08808dd4454a8ecc34413a1441c365d93cdec192 Mon Sep 17 00:00:00 2001 From: Tao Sasaki Date: Fri, 5 Oct 2018 19:39:06 +0900 Subject: [PATCH 136/170] =?UTF-8?q?=E6=97=A5=E6=9C=AC=E8=AA=9E=E3=81=8C?= =?UTF-8?q?=E5=A4=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/locale/messages.ja.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Resource/locale/messages.ja.yaml b/src/Eccube/Resource/locale/messages.ja.yaml index b551932e631..d92088833c6 100644 --- a/src/Eccube/Resource/locale/messages.ja.yaml +++ b/src/Eccube/Resource/locale/messages.ja.yaml @@ -1483,7 +1483,7 @@ tooltip.order.order_search_status: 受注の対応状況による絞り込み検 tooltip.order.bulk_actions: チェックを入れた受注に対して、一括処理を行います。充分に確認をしてから実行してください。 tooltip.order.order_info: 受注(注文)の基本情報です。 tooltip.order.order_no: 注文時に自動で採番される管理番号です。 -tooltip.order.order_status: 受注の対応状況を変更できます。ただし、新規受注登録の場合は対応状況の。また、1受注で出荷先が複数ある場合は、全て出荷されると対応状況が「出荷済」となります。 +tooltip.order.order_status: 新規受注登録以外は受注の対応状況を変更できます。1受注で出荷先が複数ある場合は、全て出荷されると対応状況が「出荷済」となります。 tooltip.order.customer_id: 自動的に採番される会員のIDです。 tooltip.order.shipping_info: 出荷先情報を表示します。出荷先の追加も可能です。1受注で複数の出荷先がある場合は「お届け先を編集」から出荷先詳細情報が確認できます。 tooltip.order.shipping_info.tracking_number: お問い合せ番号(出荷伝票番号)がある場合、こちらから入力できます。受注一覧からまとめて入力することも可能です。 From de073740fb9570a579ea270d9d11e4d15bd4bd4f Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 1 Nov 2018 11:29:29 +0900 Subject: [PATCH 137/170] =?UTF-8?q?=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=81=AE=E3=83=9E=E3=82=A4=E3=82=B0=E3=83=AC=E3=83=BC?= =?UTF-8?q?=E3=82=B7=E3=83=A7=E3=83=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config/eccube/services.yaml | 2 +- src/Eccube/Plugin/AbstractPluginManager.php | 32 +++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/app/config/eccube/services.yaml b/app/config/eccube/services.yaml index 692ede8ea5a..0a46d1b6495 100644 --- a/app/config/eccube/services.yaml +++ b/app/config/eccube/services.yaml @@ -71,7 +71,7 @@ services: Plugin\: resource: '../../../app/Plugin/*' - exclude: '../../../app/Plugin/*/{Entity,Resource,ServiceProvider,Tests}' + exclude: '../../../app/Plugin/*/{Entity,Resource,ServiceProvider,Tests,DoctrineMigrations}' Customize\: resource: '../../../app/Customize/*' diff --git a/src/Eccube/Plugin/AbstractPluginManager.php b/src/Eccube/Plugin/AbstractPluginManager.php index 96f54392c0c..96113ab1a66 100644 --- a/src/Eccube/Plugin/AbstractPluginManager.php +++ b/src/Eccube/Plugin/AbstractPluginManager.php @@ -13,12 +13,44 @@ namespace Eccube\Plugin; +use Doctrine\DBAL\Connection; +use Doctrine\DBAL\Migrations\Migration; +use Doctrine\DBAL\Migrations\Configuration\Configuration; use Symfony\Component\DependencyInjection\ContainerInterface; abstract class AbstractPluginManager { const MIGRATION_TABLE_PREFIX = 'migration_'; + /** + * プラグインのマイグレーションを実行する. + * + * PluginManager 実行時に、 Doctrine SchemaUpdate が自動的に行なわれるため、 + * このメソッドは主にデータの更新に使用する. + * + * 引数 $version で指定したバージョンまでマイグレーションする. + * null 又は 'last' を渡すと最新バージョンまでマイグレートする. + * 0 又は 'first' を渡すと最初に戻る。 + * + * @param Connection $connection Doctrine Connection + * @param string $pluginCode プラグインコード + * @param string $version マイグレーション先のバージョン + * @param string $migrationFilePath マイグレーションファイルを格納したファイルパス. 指定しない場合は app/Plugin//DoctrineMigrations を使用する + */ + public function migration(Connection $connection, $pluginCode, $version = null, $migrationFilePath = null) + { + if (!$migrationFilePath) { + $migrationFilePath = __DIR__.'/../../../app/Plugin/'.$pluginCode.'/DoctrineMigrations'; + } + $config = new Configuration($connection); + $config->setMigrationsNamespace('\Plugin\\'.$pluginCode.'\DoctrineMigrations'); + $config->setMigrationsDirectory($migrationFilePath); + $config->registerMigrationsFromDirectory($migrationFilePath); + $config->setMigrationsTableName(self::MIGRATION_TABLE_PREFIX.$pluginCode); + $migration = new Migration($config); + $migration->migrate($version, false); + } + /** * Install the plugin. * From 85cc66039da0f70f8a4bae84ed9deddb994d8e37 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 1 Nov 2018 13:42:22 +0900 Subject: [PATCH 138/170] =?UTF-8?q?=E3=83=9E=E3=82=A4=E3=82=B0=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E3=81=AE=E3=82=B5=E3=83=B3?= =?UTF-8?q?=E3=83=97=E3=83=AB=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Version20181101012712.php | 30 +++++++ .../MigrationSample/Entity/BaseInfo3Trait.php | 30 +++++++ app/Plugin/MigrationSample/PluginManager.php | 83 +++++++++++++++++++ app/Plugin/MigrationSample/composer.json | 12 +++ 4 files changed, 155 insertions(+) create mode 100644 app/Plugin/MigrationSample/DoctrineMigrations/Version20181101012712.php create mode 100644 app/Plugin/MigrationSample/Entity/BaseInfo3Trait.php create mode 100644 app/Plugin/MigrationSample/PluginManager.php create mode 100644 app/Plugin/MigrationSample/composer.json diff --git a/app/Plugin/MigrationSample/DoctrineMigrations/Version20181101012712.php b/app/Plugin/MigrationSample/DoctrineMigrations/Version20181101012712.php new file mode 100644 index 00000000000..31f16e2b03f --- /dev/null +++ b/app/Plugin/MigrationSample/DoctrineMigrations/Version20181101012712.php @@ -0,0 +1,30 @@ +getTable('dtb_base_info'); + if ($Table->hasColumn('migration_sample')) { + $this->addSql('UPDATE dtb_base_info SET migration_sample = ? WHERE id = 1', ['up']); + dump('up'); + } + } + + public function down(Schema $schema) : void + { + $Table = $schema->getTable('dtb_base_info'); + if ($Table->hasColumn('migration_sample')) { + $this->addSql('UPDATE dtb_base_info SET migration_sample = ? WHERE id = 1', ['down']); + dump('down'); + } + } +} diff --git a/app/Plugin/MigrationSample/Entity/BaseInfo3Trait.php b/app/Plugin/MigrationSample/Entity/BaseInfo3Trait.php new file mode 100644 index 00000000000..66cd5edd3ba --- /dev/null +++ b/app/Plugin/MigrationSample/Entity/BaseInfo3Trait.php @@ -0,0 +1,30 @@ +get('doctrine')->getManager(); + dump('update '.self::VERSION); + $this->migration($entityManager->getConnection(), $meta['code']); + } + + /** + * Enable the plugin. + * + * @param array $meta + * @param ContainerInterface $container + */ + public function enable(array $meta, ContainerInterface $container) + { + dump('enable '.self::VERSION); + } + + /** + * Disable the plugin. + * + * @param array $meta + * @param ContainerInterface $container + */ + public function disable(array $meta, ContainerInterface $container) + { + $entityManager = $container->get('doctrine')->getManager(); + dump('disable '.self::VERSION); + $this->migration($entityManager->getConnection(), $meta['code'], '0'); + } + + /** + * Uninstall the plugin. + * + * @param array $meta + * @param ContainerInterface $container + */ + public function uninstall(array $meta, ContainerInterface $container) + { + dump('uninstall '.self::VERSION); + } +} diff --git a/app/Plugin/MigrationSample/composer.json b/app/Plugin/MigrationSample/composer.json new file mode 100644 index 00000000000..641580a775d --- /dev/null +++ b/app/Plugin/MigrationSample/composer.json @@ -0,0 +1,12 @@ +{ + "name": "Eccube/MigrationSample", + "version": "1.0.0", + "description": "マイグレーションのサンプルプラグイン", + "type": "eccube-plugin", + "require": { + "ec-cube/plugin-installer": "~0.0.6" + }, + "extra": { + "code": "MigrationSample" + } +} From c656b35c97e7aa241a8056a4c20953d14a3f0695 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 1 Nov 2018 13:42:47 +0900 Subject: [PATCH 139/170] =?UTF-8?q?=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Plugin/AbstractPluginManager.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Plugin/AbstractPluginManager.php b/src/Eccube/Plugin/AbstractPluginManager.php index 96113ab1a66..bfd6696f599 100644 --- a/src/Eccube/Plugin/AbstractPluginManager.php +++ b/src/Eccube/Plugin/AbstractPluginManager.php @@ -29,8 +29,8 @@ abstract class AbstractPluginManager * このメソッドは主にデータの更新に使用する. * * 引数 $version で指定したバージョンまでマイグレーションする. - * null 又は 'last' を渡すと最新バージョンまでマイグレートする. - * 0 又は 'first' を渡すと最初に戻る。 + * null を渡すと最新バージョンまでマイグレートする. + * 0 を渡すと最初に戻る。 * * @param Connection $connection Doctrine Connection * @param string $pluginCode プラグインコード From 1a4979eb1a306cd116caaf9290a50a291af669fd Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Thu, 1 Nov 2018 14:06:45 +0900 Subject: [PATCH 140/170] Fix inspection --- src/Eccube/Plugin/AbstractPluginManager.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Plugin/AbstractPluginManager.php b/src/Eccube/Plugin/AbstractPluginManager.php index bfd6696f599..9709c02b7d6 100644 --- a/src/Eccube/Plugin/AbstractPluginManager.php +++ b/src/Eccube/Plugin/AbstractPluginManager.php @@ -39,7 +39,7 @@ abstract class AbstractPluginManager */ public function migration(Connection $connection, $pluginCode, $version = null, $migrationFilePath = null) { - if (!$migrationFilePath) { + if (null === $migrationFilePath) { $migrationFilePath = __DIR__.'/../../../app/Plugin/'.$pluginCode.'/DoctrineMigrations'; } $config = new Configuration($connection); From 93bc4f9d1eb0be71fd98e625c10f15aaaf8dbe9e Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Fri, 2 Nov 2018 15:28:19 +0900 Subject: [PATCH 141/170] =?UTF-8?q?services.yaml=20=E3=82=92=E5=9F=BA?= =?UTF-8?q?=E5=BA=95=E3=81=A8=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E3=83=AD=E3=83=BC=E3=83=89=E9=A0=86=E5=BA=8F=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Kernel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Kernel.php b/src/Eccube/Kernel.php index caba0231fcf..3dc58a702fa 100644 --- a/src/Eccube/Kernel.php +++ b/src/Eccube/Kernel.php @@ -116,11 +116,11 @@ public function boot() protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader) { $confDir = $this->getProjectDir().'/app/config/eccube'; + $loader->load($confDir.'/services'.self::CONFIG_EXTS, 'glob'); $loader->load($confDir.'/packages/*'.self::CONFIG_EXTS, 'glob'); if (is_dir($confDir.'/packages/'.$this->environment)) { $loader->load($confDir.'/packages/'.$this->environment.'/**/*'.self::CONFIG_EXTS, 'glob'); } - $loader->load($confDir.'/services'.self::CONFIG_EXTS, 'glob'); $loader->load($confDir.'/services_'.$this->environment.self::CONFIG_EXTS, 'glob'); // プラグインのservices.phpをロードする. From aafde79d6dc817ae0ae46057c18f7c9f7f6597b4 Mon Sep 17 00:00:00 2001 From: Hideki Okajima Date: Mon, 5 Nov 2018 09:36:39 +0900 Subject: [PATCH 142/170] Fix name to composer.json Co-Authored-By: nanasess --- app/Plugin/MigrationSample/composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Plugin/MigrationSample/composer.json b/app/Plugin/MigrationSample/composer.json index 641580a775d..1aad9bc7e88 100644 --- a/app/Plugin/MigrationSample/composer.json +++ b/app/Plugin/MigrationSample/composer.json @@ -1,5 +1,5 @@ { - "name": "Eccube/MigrationSample", + "name": "ec-cube/MigrationSample", "version": "1.0.0", "description": "マイグレーションのサンプルプラグイン", "type": "eccube-plugin", From 67aac6e9436d13a6946d29fc0a5bdd89cf9295e1 Mon Sep 17 00:00:00 2001 From: Juanito Fatas Date: Wed, 7 Nov 2018 23:20:21 +0900 Subject: [PATCH 143/170] Fix typo in services.yaml --- app/config/eccube/services.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/eccube/services.yaml b/app/config/eccube/services.yaml index 0a46d1b6495..f32c19895aa 100644 --- a/app/config/eccube/services.yaml +++ b/app/config/eccube/services.yaml @@ -45,7 +45,7 @@ services: lazy: true public: true - Ecccube\Service\CartService: + Eccube\Service\CartService: lazy: true Eccube\Service\SystemService: From 558cc142982b5df87157ee68b99f95c41f7f4979 Mon Sep 17 00:00:00 2001 From: Kanako Kina Date: Thu, 8 Nov 2018 18:02:28 +0900 Subject: [PATCH 144/170] =?UTF-8?q?=E5=95=86=E5=93=81CSV=E7=99=BB=E9=8C=B2?= =?UTF-8?q?=E3=81=A7message=5Fid=E3=81=8C=E8=A1=A8=E7=A4=BA=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=82=8B=E4=B8=8D=E5=85=B7=E5=90=88=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/Admin/Product/CsvImportController.php | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/Eccube/Controller/Admin/Product/CsvImportController.php b/src/Eccube/Controller/Admin/Product/CsvImportController.php index 018dd5628bb..f5c1eb6349d 100644 --- a/src/Eccube/Controller/Admin/Product/CsvImportController.php +++ b/src/Eccube/Controller/Admin/Product/CsvImportController.php @@ -818,7 +818,7 @@ protected function createProductCategory($row, Product $Product, $data, $headerB if (preg_match('/^\d+$/', $category)) { $Category = $this->categoryRepository->find($category); if (!$Category) { - $message = trans('admin.common.csv_invalid_not_found.target', [ + $message = trans('admin.common.csv_invalid_not_found_target', [ '%line%' => $line, '%name%' => $headerByKey['product_category'], '%target_name%' => $category, @@ -843,16 +843,8 @@ protected function createProductCategory($row, Product $Product, $data, $headerB $categoriesIdList[$Category->getId()] = true; } } - - if (!isset($categoriesIdList[$Category->getId()])) { - $ProductCategory = $this->makeProductCategory($Product, $Category, $sortNo); - $sortNo++; - $this->entityManager->persist($ProductCategory); - $Product->addProductCategory($ProductCategory); - $categoriesIdList[$Category->getId()] = true; - } } else { - $message = trans('admin.common.csv_invalid_not_found.target', [ + $message = trans('admin.common.csv_invalid_not_found_target', [ '%line%' => $line, '%name%' => $headerByKey['product_category'], '%target_name%' => $category, From d475664c44904b03b3e69582ae537648c44d6bbc Mon Sep 17 00:00:00 2001 From: lqdung1992 Date: Fri, 19 Oct 2018 16:08:56 +0900 Subject: [PATCH 145/170] Fix shopping overlay in firefox + other --- src/Eccube/Resource/doctrine/import_csv/dtb_page.csv | 2 +- src/Eccube/Resource/template/default/Shopping/index.twig | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Eccube/Resource/doctrine/import_csv/dtb_page.csv b/src/Eccube/Resource/doctrine/import_csv/dtb_page.csv index c6838e28c4f..efda7fbfe2a 100644 --- a/src/Eccube/Resource/doctrine/import_csv/dtb_page.csv +++ b/src/Eccube/Resource/doctrine/import_csv/dtb_page.csv @@ -36,6 +36,6 @@ id,page_name,url,file_name,edit_type,author,description,keyword,create_date,upda "23","商品購入","shopping","Shopping/index","2",,,,"2017-03-07 10:14:52","2017-03-07 10:14:52","noindex",,"page" "7","MYページ/お届け先一覧","mypage_delivery","Mypage/delivery","2",,,,"2017-03-07 10:14:52","2017-03-07 10:14:52","noindex",,"page" "8","MYページ/お届け先追加","mypage_delivery_new","Mypage/delivery_edit","2",,,,"2017-03-07 10:14:52","2017-03-07 10:14:52","noindex",,"page" -"42","商品購入/お届け先変更","shopping_shipping_edit_change","Shopping/index","2",,,,"2017-03-07 01:15:03","2017-03-07 01:15:03","noindex",,"page" +"42","商品購入/遷移","shopping_redirect_to","Shopping/index","2",,,,"2017-03-07 01:15:03","2017-03-07 01:15:03","noindex",,"page" "44","MYページ/お届け先編集","mypage_delivery_edit","Mypage/delivery_edit","2",,,,"2017-03-07 01:15:05","2017-03-07 01:15:05","noindex",8,"page" "45","商品購入/ご注文確認","shopping_confirm","Shopping/confirm","2",,,,"2017-03-07 01:15:03","2017-03-07 01:15:03","noindex",,"page" diff --git a/src/Eccube/Resource/template/default/Shopping/index.twig b/src/Eccube/Resource/template/default/Shopping/index.twig index 1e2d08d5d0d..7f6e8e1f738 100644 --- a/src/Eccube/Resource/template/default/Shopping/index.twig +++ b/src/Eccube/Resource/template/default/Shopping/index.twig @@ -19,6 +19,9 @@ file that was distributed with this source code. loadingOverlay(); $('#shopping_order_redirect_to').val($(this).attr('data-path')); $('#shopping-form').attr('action', '{{ url("shopping_redirect_to") }}').submit(); + setTimeout(function () { + loadingOverlay("hide"); + }, 2000); }; $('[data-trigger]').each(function() { $(this).on($(this).attr('data-trigger'), $redirectCallback); From 6a31aeae9b6e38b061fd00bc976c98ff776a98c7 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Mon, 12 Nov 2018 11:22:30 +0900 Subject: [PATCH 146/170] =?UTF-8?q?=E3=83=9E=E3=82=A4=E3=82=B0=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Version20181109101907.php | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 app/DoctrineMigrations/Version20181109101907.php diff --git a/app/DoctrineMigrations/Version20181109101907.php b/app/DoctrineMigrations/Version20181109101907.php new file mode 100644 index 00000000000..5002f82d89f --- /dev/null +++ b/app/DoctrineMigrations/Version20181109101907.php @@ -0,0 +1,22 @@ +addSql("UPDATE dtb_page SET page_name = '商品購入/遷移', url = 'shopping_redirect_to' WHERE id = 42"); + } + + public function down(Schema $schema) : void + { + $this->addSql("UPDATE dtb_page SET page_name = '商品購入/お届け先変更', url = 'shopping_shipping_edit_change' WHERE id = 42"); + } +} From f0562ee7fd68d3aaacdf411ef895825a7980f7c5 Mon Sep 17 00:00:00 2001 From: Tao Sasaki Date: Mon, 1 Oct 2018 18:24:01 +0900 Subject: [PATCH 147/170] =?UTF-8?q?=E4=BD=99=E8=A8=88=E3=81=AA=E3=80=82?= =?UTF-8?q?=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/template/admin/Store/plugin_handler.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Resource/template/admin/Store/plugin_handler.twig b/src/Eccube/Resource/template/admin/Store/plugin_handler.twig index 5a6340f3872..464732ff59f 100644 --- a/src/Eccube/Resource/template/admin/Store/plugin_handler.twig +++ b/src/Eccube/Resource/template/admin/Store/plugin_handler.twig @@ -87,7 +87,7 @@ file that was distributed with this source code. {{'admin.store.plugin_handler.836'|trans}}
    -

    {{'admin.store.plugin_handler.837'|trans}}。

    +

    {{'admin.store.plugin_handler.837'|trans}}

    From 0fb7fb16a84595cf9fe8395d16955c71c7035abe Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Mon, 12 Nov 2018 18:01:01 +0900 Subject: [PATCH 148/170] =?UTF-8?q?=E5=9C=A8=E5=BA=AB=E3=81=8C=E3=83=9E?= =?UTF-8?q?=E3=82=A4=E3=83=8A=E3=82=B9=E3=81=AB=E3=81=AA=E3=82=89=E3=81=AA?= =?UTF-8?q?=E3=81=84=E3=82=88=E3=81=86=200=20=E3=83=81=E3=82=A7=E3=83=83?= =?UTF-8?q?=E3=82=AF=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseFlow/Processor/StockReduceProcessor.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Eccube/Service/PurchaseFlow/Processor/StockReduceProcessor.php b/src/Eccube/Service/PurchaseFlow/Processor/StockReduceProcessor.php index 83472f06f84..b28f9b0b586 100644 --- a/src/Eccube/Service/PurchaseFlow/Processor/StockReduceProcessor.php +++ b/src/Eccube/Service/PurchaseFlow/Processor/StockReduceProcessor.php @@ -18,6 +18,7 @@ use Eccube\Entity\ItemHolderInterface; use Eccube\Entity\Order; use Eccube\Entity\ProductStock; +use Eccube\Exception\ShoppingException; use Eccube\Repository\ProductStockRepository; use Eccube\Service\PurchaseFlow\PurchaseContext; @@ -86,9 +87,13 @@ private function eachProductOrderItems(ItemHolderInterface $itemHolder, callable // 在庫に対してロックを実行 $this->entityManager->lock($productStock, LockMode::PESSIMISTIC_WRITE); $this->entityManager->refresh($productStock); + $ProductClass = $item->getProductClass(); $stock = $callback($productStock->getStock(), $item->getQuantity()); + if ($stock < 0) { + throw new ShoppingException(trans('purchase_flow.over_stock', ['%name%' => $ProductClass->formattedProductName()])); + } $productStock->setStock($stock); - $item->getProductClass()->setStock($stock); + $ProductClass->setStock($stock); } } } From d02e949a8ed42994f0a5d5ca5d94ec93bdf10d2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=96=9C=E7=B4=8D=20=E4=BD=B3=E9=82=A3=E5=AD=90?= Date: Tue, 13 Nov 2018 18:12:28 +0900 Subject: [PATCH 149/170] =?UTF-8?q?=E5=9C=A8=E5=BA=AB=E3=81=8C=E7=84=A1?= =?UTF-8?q?=E3=81=84=E5=95=86=E5=93=81=E8=A6=8F=E6=A0=BC=E3=81=AE=E3=82=A8?= =?UTF-8?q?=E3=83=A9=E3=83=BCID=E3=82=92=E6=97=A5=E6=9C=AC=E8=AA=9E?= =?UTF-8?q?=E3=81=A8=E8=8B=B1=E8=AA=9E=E3=81=A7=E5=90=8C=E4=B8=80=E3=81=A8?= =?UTF-8?q?=E3=81=AA=E3=82=8B=E3=82=88=E3=81=86=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Entity/Product.php | 2 +- src/Eccube/Resource/locale/messages.en.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Eccube/Entity/Product.php b/src/Eccube/Entity/Product.php index 99e78315acd..8f499de8d90 100644 --- a/src/Eccube/Entity/Product.php +++ b/src/Eccube/Entity/Product.php @@ -109,7 +109,7 @@ public function _calc() $this->classCategories1[$ProductClass->getClassCategory1()->getId()] = $ProductClass->getClassCategory1()->getName(); $this->classCategories2[$ProductClass->getClassCategory1()->getId()][$ProductClass->getClassCategory2()->getId()] = $ProductClass->getClassCategory2()->getName(); } else { - $this->classCategories1[$ProductClass->getClassCategory1()->getId()] = $ProductClass->getClassCategory1()->getName().($ProductClass->getStockFind() ? '' : trans('product.text.out_of_stock')); + $this->classCategories1[$ProductClass->getClassCategory1()->getId()] = $ProductClass->getClassCategory1()->getName().($ProductClass->getStockFind() ? '' : trans('front.product.out_of_stock_label')); } } } diff --git a/src/Eccube/Resource/locale/messages.en.php b/src/Eccube/Resource/locale/messages.en.php index 891d5e9785b..e707f7dd6e5 100644 --- a/src/Eccube/Resource/locale/messages.en.php +++ b/src/Eccube/Resource/locale/messages.en.php @@ -1783,11 +1783,11 @@ 'class.text.hidden' => '(Hidden)', 'customer.text.error.email_registered' => 'This email address is already registered.', 'delivery.text.hidden' => '(Hidden)', - 'member.text.error.login_id_registered' => 'This login id is already registered.', + 'member.text.error.login_id_registered' => 'This login id +is already registered.', 'payment.text.hidden' => '(Hidden)', 'product.324' => '', 'product.text.please_select' => 'Please select.', - 'product.text.out_of_stock' => '(Out of stock)', + 'front.product.out_of_stock_label' => '(Out of stock)', 'product.327' => '', 'addcart.text.please_select' => 'Please select.', 'addcarttype.330' => '', From 0300f3ba10c441dc4491ef99aa82fd38904a9b7e Mon Sep 17 00:00:00 2001 From: kanako_kina Date: Tue, 13 Nov 2018 19:44:26 +0900 Subject: [PATCH 150/170] =?UTF-8?q?=E4=B8=8D=E8=A6=81=E3=81=AA+=E3=82=92?= =?UTF-8?q?=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/locale/messages.en.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Resource/locale/messages.en.php b/src/Eccube/Resource/locale/messages.en.php index e707f7dd6e5..eb6a464e426 100644 --- a/src/Eccube/Resource/locale/messages.en.php +++ b/src/Eccube/Resource/locale/messages.en.php @@ -1783,7 +1783,7 @@ 'class.text.hidden' => '(Hidden)', 'customer.text.error.email_registered' => 'This email address is already registered.', 'delivery.text.hidden' => '(Hidden)', - 'member.text.error.login_id_registered' => 'This login id +is already registered.', + 'member.text.error.login_id_registered' => 'This login id is already registered.', 'payment.text.hidden' => '(Hidden)', 'product.324' => '', 'product.text.please_select' => 'Please select.', From 6e9606233132ea91057df7cabf756af4d8176129 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Wed, 14 Nov 2018 14:08:53 +0900 Subject: [PATCH 151/170] =?UTF-8?q?fix=20slack=E3=81=AE=E6=8B=9B=E5=BE=85?= =?UTF-8?q?=E3=83=AA=E3=83=B3=E3=82=AF=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6299d82767a..fe6ec064638 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/EC-CUBE/ec-cube/badges/quality-score.png?b=4.0)](https://scrutinizer-ci.com/g/EC-CUBE/ec-cube/?branch=4.0) [![Coverage Status](https://coveralls.io/repos/github/EC-CUBE/ec-cube/badge.svg?branch=4.0)](https://coveralls.io/github/EC-CUBE/ec-cube?branch=4.0) -[![Slack](http://img.shields.io/badge/slack-join%5fchat-brightgreen.svg?style=flat)](https://ec-cube.slack.com/messages) +[![Slack](http://img.shields.io/badge/slack-join%5fchat-brightgreen.svg?style=flat)](https://www.ec-cube.net/rd.php?aid=join-slack) [![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy) @@ -62,7 +62,7 @@ EC-CUBE 4.0の不具合の修正、機能のブラッシュアップを目的と Pull Requestの送信前に、Issueにて提議いただく事も可能です。 Issuesの利用方法については、[こちら](https://github.com/EC-CUBE/ec-cube/wiki/Issues%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95)をご確認ください。 -[Slack](https://ec-cube.slack.com/messages)でも本体の開発に関する意見交換などを行っております。 +[Slack](https://www.ec-cube.net/rd.php?aid=join-slack)でも本体の開発に関する意見交換などを行っております。 From 7ae9dc0ab5372c6ee6dec793503845f6241e0b99 Mon Sep 17 00:00:00 2001 From: yuka kakiuchi Date: Wed, 14 Nov 2018 14:50:02 +0900 Subject: [PATCH 152/170] =?UTF-8?q?=E9=83=B5=E4=BE=BF=E7=95=AA=E5=8F=B7?= =?UTF-8?q?=E6=A4=9C=E7=B4=A2=E3=81=AE=E3=83=AA=E3=83=B3=E3=82=AF=E5=85=88?= =?UTF-8?q?URL=E3=82=92https=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/template/default/Contact/index.twig | 2 +- src/Eccube/Resource/template/default/Entry/index.twig | 2 +- src/Eccube/Resource/template/default/Mypage/change.twig | 2 +- src/Eccube/Resource/template/default/Mypage/delivery_edit.twig | 2 +- src/Eccube/Resource/template/default/Shopping/index.twig | 2 +- src/Eccube/Resource/template/default/Shopping/nonmember.twig | 2 +- .../Resource/template/default/Shopping/shipping_edit.twig | 2 +- .../template/default/Shopping/shipping_multiple_edit.twig | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Eccube/Resource/template/default/Contact/index.twig b/src/Eccube/Resource/template/default/Contact/index.twig index 9d24e94d20f..0e89603a5ff 100644 --- a/src/Eccube/Resource/template/default/Contact/index.twig +++ b/src/Eccube/Resource/template/default/Contact/index.twig @@ -70,7 +70,7 @@ file that was distributed with this source code.
    -
    {{ 'common.search_postal_code'|trans }} +
    {{ 'common.search_postal_code'|trans }}
    {{ form_errors(form.postal_code) }}
    diff --git a/src/Eccube/Resource/template/default/Entry/index.twig b/src/Eccube/Resource/template/default/Entry/index.twig index 85a4dfd5198..b081272ce12 100644 --- a/src/Eccube/Resource/template/default/Entry/index.twig +++ b/src/Eccube/Resource/template/default/Entry/index.twig @@ -78,7 +78,7 @@ file that was distributed with this source code.
    -
    {{ 'common.search_postal_code'|trans }} +
    {{ 'common.search_postal_code'|trans }}
    {{ form_errors(form.postal_code) }}
    diff --git a/src/Eccube/Resource/template/default/Mypage/change.twig b/src/Eccube/Resource/template/default/Mypage/change.twig index 9b03b9d554c..fd9a3be69fa 100755 --- a/src/Eccube/Resource/template/default/Mypage/change.twig +++ b/src/Eccube/Resource/template/default/Mypage/change.twig @@ -85,7 +85,7 @@ file that was distributed with this source code.
    -
    {{ 'common.search_postal_code'|trans }} +
    {{ 'common.search_postal_code'|trans }}
    {{ form_errors(form.postal_code) }}
    diff --git a/src/Eccube/Resource/template/default/Mypage/delivery_edit.twig b/src/Eccube/Resource/template/default/Mypage/delivery_edit.twig index 2d5cfd18ad2..d8c5881c2f7 100755 --- a/src/Eccube/Resource/template/default/Mypage/delivery_edit.twig +++ b/src/Eccube/Resource/template/default/Mypage/delivery_edit.twig @@ -86,7 +86,7 @@ file that was distributed with this source code.
    -
    {{ 'common.search_postal_code'|trans }} +
    {{ 'common.search_postal_code'|trans }}
    {{ form_errors(form.postal_code) }}
    diff --git a/src/Eccube/Resource/template/default/Shopping/index.twig b/src/Eccube/Resource/template/default/Shopping/index.twig index 7f6e8e1f738..4daa600625e 100644 --- a/src/Eccube/Resource/template/default/Shopping/index.twig +++ b/src/Eccube/Resource/template/default/Shopping/index.twig @@ -221,7 +221,7 @@ file that was distributed with this source code.
    - + {{ 'common.search_postal_code'|trans }}
    diff --git a/src/Eccube/Resource/template/default/Shopping/nonmember.twig b/src/Eccube/Resource/template/default/Shopping/nonmember.twig index ad046e3f69f..f907ec74214 100644 --- a/src/Eccube/Resource/template/default/Shopping/nonmember.twig +++ b/src/Eccube/Resource/template/default/Shopping/nonmember.twig @@ -119,7 +119,7 @@ file that was distributed with this source code.
    -
    {{ 'common.search_postal_code'|trans }} +
    {{ 'common.search_postal_code'|trans }}
    {{ form_errors(form.postal_code) }}
    diff --git a/src/Eccube/Resource/template/default/Shopping/shipping_edit.twig b/src/Eccube/Resource/template/default/Shopping/shipping_edit.twig index 49500105883..c149620fa55 100644 --- a/src/Eccube/Resource/template/default/Shopping/shipping_edit.twig +++ b/src/Eccube/Resource/template/default/Shopping/shipping_edit.twig @@ -91,7 +91,7 @@ file that was distributed with this source code.
    -
    {{ 'common.search_postal_code'|trans }} +
    {{ 'common.search_postal_code'|trans }}
    {{ form_errors(form.postal_code) }}
    diff --git a/src/Eccube/Resource/template/default/Shopping/shipping_multiple_edit.twig b/src/Eccube/Resource/template/default/Shopping/shipping_multiple_edit.twig index a0fbeaf5cce..a0055693d9f 100644 --- a/src/Eccube/Resource/template/default/Shopping/shipping_multiple_edit.twig +++ b/src/Eccube/Resource/template/default/Shopping/shipping_multiple_edit.twig @@ -74,7 +74,7 @@ file that was distributed with this source code. {{ 'common.search_postal_code'|trans }}
    {{ form_errors(form.postal_code) }}
    From 54d78186bbd01ed50c69d623e03279019083a3be Mon Sep 17 00:00:00 2001 From: kanako_kina Date: Wed, 14 Nov 2018 18:53:20 +0900 Subject: [PATCH 153/170] =?UTF-8?q?=E3=83=9E=E3=82=B9=E3=82=BF=E3=83=87?= =?UTF-8?q?=E3=83=BC=E3=82=BF=E7=AE=A1=E7=90=86=E3=81=AE=E3=83=98=E3=83=83?= =?UTF-8?q?=E3=83=80=E3=83=BC=E5=AE=9A=E6=95=B0=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Resource/template/admin/Setting/System/masterdata.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Resource/template/admin/Setting/System/masterdata.twig b/src/Eccube/Resource/template/admin/Setting/System/masterdata.twig index 09d2718e3c2..f914d308cc0 100644 --- a/src/Eccube/Resource/template/admin/Setting/System/masterdata.twig +++ b/src/Eccube/Resource/template/admin/Setting/System/masterdata.twig @@ -59,7 +59,7 @@ file that was distributed with this source code. {{ 'admin.setting.system.master_data.id'|trans }} - {{ 'admin.setting.system.master_data.id'|trans }} + {{ 'admin.setting.system.master_data.name'|trans }} From 5943f3418d61ab724a35152740b5e72909a2daf4 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Wed, 14 Nov 2018 19:44:37 +0900 Subject: [PATCH 154/170] =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=94=BB=E9=9D=A2?= =?UTF-8?q?=E3=81=AE=E3=82=A2=E3=82=AF=E3=82=BB=E3=82=B9=E5=88=B6=E9=99=90?= =?UTF-8?q?=E5=BC=B7=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .htaccess | 15 +++++++++++++++ src/Eccube/Controller/Admin/AdminController.php | 4 ++++ .../Admin/Setting/System/SecurityController.php | 5 +++++ src/Eccube/Form/Type/Install/Step3Type.php | 1 + src/Eccube/Resource/locale/validators.ja.yaml | 1 + 5 files changed, 26 insertions(+) diff --git a/.htaccess b/.htaccess index 4f633227d7d..b9200cfc102 100644 --- a/.htaccess +++ b/.htaccess @@ -49,3 +49,18 @@ DirectoryIndex index.php index.html .ht RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpe?g|css|ico|js|svg|map)$ [NC] RewriteRule ^(.*)$ index.php [QSA,L] + +# 管理画面へのBasic認証サンプル +# +# Satisfy Any +# +# AuthType Basic +# AuthName "Please enter username and password" +# AuthUserFile /path/to/.htpasswd +# AuthGroupFile /dev/null +# require valid-user +# +# SetEnvIf Request_URI "^/admin" admin_path +# Order Allow,Deny +# Allow from all +# Deny from env=admin_path diff --git a/src/Eccube/Controller/Admin/AdminController.php b/src/Eccube/Controller/Admin/AdminController.php index 984f1fe948c..82677f2ad4e 100644 --- a/src/Eccube/Controller/Admin/AdminController.php +++ b/src/Eccube/Controller/Admin/AdminController.php @@ -169,6 +169,10 @@ public function login(Request $request) */ public function index(Request $request) { + $adminRoute = $this->eccubeConfig['eccube_admin_route']; + if ($adminRoute === 'admin') { + $this->addWarning('adminは危険です', 'admin'); + } /** * 受注状況. */ diff --git a/src/Eccube/Controller/Admin/Setting/System/SecurityController.php b/src/Eccube/Controller/Admin/Setting/System/SecurityController.php index 17576f14a53..5203fd003d9 100644 --- a/src/Eccube/Controller/Admin/Setting/System/SecurityController.php +++ b/src/Eccube/Controller/Admin/Setting/System/SecurityController.php @@ -45,6 +45,11 @@ public function __construct(TokenStorageInterface $tokenStorage) */ public function index(Request $request, CacheUtil $cacheUtil) { + $adminRoute = $this->eccubeConfig['eccube_admin_route']; + if ($adminRoute === 'admin') { + $this->addWarning('adminは危険です', 'admin'); + } + $builder = $this->formFactory->createBuilder(SecurityType::class); $form = $builder->getForm(); $form->handleRequest($request); diff --git a/src/Eccube/Form/Type/Install/Step3Type.php b/src/Eccube/Form/Type/Install/Step3Type.php index ab32120a8b7..16f8314e778 100644 --- a/src/Eccube/Form/Type/Install/Step3Type.php +++ b/src/Eccube/Form/Type/Install/Step3Type.php @@ -113,6 +113,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'max' => $this->eccubeConfig['eccube_id_max_len'], ]), new Assert\Regex(['pattern' => '/\A\w+\z/']), + new Assert\NotEqualTo(['value' => 'admin', 'message' => 'form_error.admin_is_not_available']), ], ]) ->add('admin_force_ssl', CheckboxType::class, [ diff --git a/src/Eccube/Resource/locale/validators.ja.yaml b/src/Eccube/Resource/locale/validators.ja.yaml index 1b37781a1a6..60f3d7218f6 100644 --- a/src/Eccube/Resource/locale/validators.ja.yaml +++ b/src/Eccube/Resource/locale/validators.ja.yaml @@ -39,6 +39,7 @@ form_error.select_is_future_or_now_date: 生年月日が不正な日付です。 form_error.float_only: 数字と小数点のみ入力できます。 form_error.same_password: 同じパスワードを入力してください。 form_error.same_email: 同じメールアドレスを入力してください。 +form_error.admin_is_not_available: 「admin」は利用できません。 #------------------------------------------------------------------------------------ # Deplicated From 190631b5251e39afb6041cb5ae17fb6ae326eda7 Mon Sep 17 00:00:00 2001 From: kanako_kina Date: Fri, 16 Nov 2018 10:53:46 +0900 Subject: [PATCH 155/170] =?UTF-8?q?=E3=82=A8=E3=83=A9=E3=83=BC=E3=83=A1?= =?UTF-8?q?=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8=E3=81=AE=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E3=80=81=E8=A1=A8=E7=A4=BA=E3=82=BF=E3=82=A4=E3=83=9F=E3=83=B3?= =?UTF-8?q?=E3=82=B0=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/Admin/AdminController.php | 4 +++- .../Admin/Setting/System/SecurityController.php | 6 +++--- src/Eccube/Resource/locale/validators.ja.yaml | 2 +- src/Eccube/Resource/template/admin/index.twig | 9 +++++++++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/Eccube/Controller/Admin/AdminController.php b/src/Eccube/Controller/Admin/AdminController.php index 82677f2ad4e..f50fbd4a2e6 100644 --- a/src/Eccube/Controller/Admin/AdminController.php +++ b/src/Eccube/Controller/Admin/AdminController.php @@ -170,8 +170,9 @@ public function login(Request $request) public function index(Request $request) { $adminRoute = $this->eccubeConfig['eccube_admin_route']; + $is_danger_admin_url = false; if ($adminRoute === 'admin') { - $this->addWarning('adminは危険です', 'admin'); + $is_danger_admin_url = true; } /** * 受注状況. @@ -265,6 +266,7 @@ public function index(Request $request) 'countProducts' => $countProducts, 'countCustomers' => $countCustomers, 'recommendedPlugins' => $recommendedPlugins, + 'is_danger_admin_url' => $is_danger_admin_url, ]; } diff --git a/src/Eccube/Controller/Admin/Setting/System/SecurityController.php b/src/Eccube/Controller/Admin/Setting/System/SecurityController.php index 5203fd003d9..113380dc508 100644 --- a/src/Eccube/Controller/Admin/Setting/System/SecurityController.php +++ b/src/Eccube/Controller/Admin/Setting/System/SecurityController.php @@ -46,9 +46,6 @@ public function __construct(TokenStorageInterface $tokenStorage) public function index(Request $request, CacheUtil $cacheUtil) { $adminRoute = $this->eccubeConfig['eccube_admin_route']; - if ($adminRoute === 'admin') { - $this->addWarning('adminは危険です', 'admin'); - } $builder = $this->formFactory->createBuilder(SecurityType::class); $form = $builder->getForm(); @@ -99,6 +96,9 @@ public function index(Request $request, CacheUtil $cacheUtil) return $this->redirectToRoute('admin_setting_system_security'); } + if ($adminRoute === 'admin') { + $this->addWarning('管理画面URLは、セキュリティのため推測されにくいものを設定してください。', 'admin'); + } return [ 'form' => $form->createView(), diff --git a/src/Eccube/Resource/locale/validators.ja.yaml b/src/Eccube/Resource/locale/validators.ja.yaml index 60f3d7218f6..77e882f9a70 100644 --- a/src/Eccube/Resource/locale/validators.ja.yaml +++ b/src/Eccube/Resource/locale/validators.ja.yaml @@ -39,7 +39,7 @@ form_error.select_is_future_or_now_date: 生年月日が不正な日付です。 form_error.float_only: 数字と小数点のみ入力できます。 form_error.same_password: 同じパスワードを入力してください。 form_error.same_email: 同じメールアドレスを入力してください。 -form_error.admin_is_not_available: 「admin」は利用できません。 +form_error.admin_is_not_available: ディレクトリ名に「admin」を使用することはできません。 #------------------------------------------------------------------------------------ # Deplicated diff --git a/src/Eccube/Resource/template/admin/index.twig b/src/Eccube/Resource/template/admin/index.twig index fccfe4e813b..53245146c11 100644 --- a/src/Eccube/Resource/template/admin/index.twig +++ b/src/Eccube/Resource/template/admin/index.twig @@ -109,6 +109,15 @@ file that was distributed with this source code. {% endblock javascript %} {% block main %} + {% if is_danger_admin_url %} + + {% endif %}
    From a967bbe798b7970d9e823cfec5e51b3e64ca2e4d Mon Sep 17 00:00:00 2001 From: kanako_kina Date: Fri, 16 Nov 2018 11:01:21 +0900 Subject: [PATCH 156/170] =?UTF-8?q?=E3=82=B7=E3=82=B9=E3=83=86=E3=83=A0?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E3=81=B8=E3=81=AE=E9=81=B7=E7=A7=BBURL?= =?UTF-8?q?=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/template/admin/index.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Resource/template/admin/index.twig b/src/Eccube/Resource/template/admin/index.twig index 53245146c11..f9f57373f42 100644 --- a/src/Eccube/Resource/template/admin/index.twig +++ b/src/Eccube/Resource/template/admin/index.twig @@ -112,7 +112,7 @@ file that was distributed with this source code. {% if is_danger_admin_url %}