1<!doctype html> 2<html class='no-js' lang='ja'> 3 <head> 4 <meta charset='utf-8'> 5 <meta http-equiv='X-UA-Compatible' content='IE=edge'> 6 <meta name='viewport' content='width=device-width,initial-scale=1'> 7 <meta name='theme-color' content=''> 8 <link rel='canonical' href='https://furniture.mateli.jp/pages/cad'> 9 <link rel='preconnect' href='https://cdn.shopify.com' crossorigin><link rel='icon' type='image/png' href='//furniture.mateli.jp/cdn/shop/files/mateli_icon_da0f4bb3-9b56-4e9e-a91c-39bf3ca59da3.png?crop=center&height=32&v=1677212935&width=32'><link rel='preconnect' href='https://fonts.shopifycdn.com' crossorigin><title>CADãã¼ã¿ãã¦ã³ãã¼ã IDçºè¡ç³è« 10 – mateli</title> 11 12 13 <meta name='description' content='â« IDããæã¡ã®æ¹ã¯ãã¡ããããã°ã¤ã³ CADãã¼ã¿ãã¦ã³ãã¼ãã®ãå©ç¨ã叿ãããæ¹ã¯ãä¸è¨ãã©ã¼ã ããå ¥åå¾ãéä¿¡ãã¿ã³ãæ¼ãã¦ãã ããããã©ã¼ã ã®è¨å ¥æ¼ããããå ´åããã¦ã³ãã¼ãã«å¿ è¦ãªãã¹ã¯ã¼ãçãå±ãã¾ããã®ã§ã注æãã ããã Loading⦠ãåçãããã¨ããããã¾ãã IDã¨ãã¹ã¯ã¼ããçºè¡ãããã¾ãããã¡ã¼ã«ãã確èªãã ããã¾ãã Copyright 2018 mateli . All Rights Reserved'> 14 15 16 17 18<meta property="og:site_name" content="mateli"> 19<meta property="og:url" content="https://furniture.mateli.jp/pages/cad"> 20<meta property="og:title" content="CADãã¼ã¿ãã¦ã³ãã¼ã IDçºè¡ç³è«"> 21<meta property="og:type" content="website"> 22<meta property="og:description" content="â« IDããæã¡ã®æ¹ã¯ãã¡ããããã°ã¤ã³ CADãã¼ã¿ãã¦ã³ãã¼ãã®ãå©ç¨ã叿ãããæ¹ã¯ãä¸è¨ãã©ã¼ã ããå ¥åå¾ãéä¿¡ãã¿ã³ãæ¼ãã¦ãã ããããã©ã¼ã ã®è¨å ¥æ¼ããããå ´åããã¦ã³ãã¼ãã«å¿ è¦ãªãã¹ã¯ã¼ãçãå±ãã¾ããã®ã§ã注æãã ããã Loading⦠ãåçãããã¨ããããã¾ãã IDã¨ãã¹ã¯ã¼ããçºè¡ãããã¾ãããã¡ã¼ã«ãã確èªãã ããã¾ãã Copyright 2018 mateli . All Rights Reserved"><meta property="og:image" content="https://furniture.mateli.jp/cdn/shop/files/mateli_logo_bce55c79-6cb5-4c56-bbc7-05d9142eeaec.png?v=1659501345"> 23 <meta property="og:image:secure_url" content="https://furniture.mateli.jp/cdn/shop/files/mateli_logo_bce55c79-6cb5-4c56-bbc7-05d9142eeaec.png?v=1659501345"> 24 <meta property="og:image:width" content="1200"> 25 <meta property="og:image:height" content="628"><meta name="twitter:card" content="summary_large_image"> 26<meta name="twitter:title" content="CADãã¼ã¿ãã¦ã³ãã¼ã IDçºè¡ç³è«"> 27<meta name="twitter:description" content="â« IDããæã¡ã®æ¹ã¯ãã¡ããããã°ã¤ã³ CADãã¼ã¿ãã¦ã³ãã¼ãã®ãå©ç¨ã叿ãããæ¹ã¯ãä¸è¨ãã©ã¼ã ããå ¥åå¾ãéä¿¡ãã¿ã³ãæ¼ãã¦ãã ããããã©ã¼ã ã®è¨å ¥æ¼ããããå ´åããã¦ã³ãã¼ãã«å¿ è¦ãªãã¹ã¯ã¼ãçãå±ãã¾ããã®ã§ã注æãã ããã Loading⦠ãåçãããã¨ããããã¾ãã IDã¨ãã¹ã¯ã¼ããçºè¡ãããã¾ãããã¡ã¼ã«ãã確èªãã ããã¾ãã Copyright 2018 mateli . All Rights Reserved"> 28 29 30 31 32 33
33<script src='//furniture.mateli.jp/cdn/shop/t/204/assets/constants.min.js?v=53064991202694776191790902731' defer='defer'></script>
33 34
34<script src='//furniture.mateli.jp/cdn/shop/t/204/assets/pubsub.min.js?v=178039640156621776291790902732' defer='defer'></script>
34 35
35<script src='//furniture.mateli.jp/cdn/shop/t/204/assets/global.min.js?v=22516999696991639911790902731' defer='defer'></script>
35 36 37 � 38
38<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
38<meta name="facebook-domain-verification" content="hmor7lmqhr92ntcbslsm7hwdrk058e"> 39<meta name="google-site-verification" content="teoodq49eS6h7BCGkK0ZB4gR3uuShRDDiiqxtm7HVqw"> 40<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/51723370679/digital_wallets/dialog"> 41<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
41<script async="async" src="/checkouts/internal/preloads.js?locale=ja-US&default_configuration_id=180388098"></script>
vendor: 1 bytes, line 41
41
42<script id="shopify-features" type="application/json">{"accessToken":"32d6f846d2c34ea6ca55868b0b533788","betas":["rich-media-storefront-analytics"],"domain":"furniture.mateli.jp","predictiveSearch":false,"shopId":51723370679,"locale":"ja"}</script>
vendor: 1 bytes, line 42
42
43<script>var Shopify = Shopify || {}; 44Shopify.shop = "mateli-ec.myshopify.com"; 45Shopify.locale = "ja"; 46Shopify.currency = {"active":"JPY","rate":"1.0"}; 47Shopify.country = "US"; 48Shopify.theme = {"name":"Mateli_3.3.8.2_setchair_guide_order","id":166957416706,"schema_name":"Dawn","schema_version":"8.0.0","theme_store_id":null,"role":"main"}; 49Shopify.theme.handle = "null"; 50Shopify.theme.style = {"id":null,"handle":null}; 51Shopify.cdnHost = "furniture.mateli.jp/cdn"; 52Shopify.routes = Shopify.routes || {}; 53Shopify.routes.root = "/"; 54Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 55Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 56Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 57Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 57
57
58<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 58
58
59<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 59
59
60<script> 61 window.Shopify = window.Shopify || {}; 62 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 63 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 64 window.Shopify.SignInWithShop.eligible = true; 65</script>
vendor: 1 bytes, line 65
65
66<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 66
66
67<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.ja.esm.js"></script>
vendor: 1 bytes, line 67
67
68<script type="module"> 69 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.ja.esm.js"); 70 71 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 72 73</script>
vendor: 1 bytes, line 73
73
74<script> 75 window.Shopify = window.Shopify || {}; 76 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 77 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.ja.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.ja.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.ja.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.ja.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.ja.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.ja.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.ja.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.ja.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.ja.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.ja.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.ja.esm.js"],"listener":["modules/v2/loader.listener.ja.esm.js"],"pay-button":["modules/v2/loader.pay-button.ja.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.ja.esm.js"],"shop-button":["modules/v2/loader.shop-button.ja.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.ja.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.ja.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.ja.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.ja.esm.js"],"shop-login":["modules/v2/loader.shop-login.ja.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.ja.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.ja.esm.js"]}; 78</script>
vendor: 1 bytes, line 78
78
79<script>(function() { 80 var isLoaded = false; 81 function asyncLoad() { 82 if (isLoaded) return; 83 isLoaded = true; 84 var urls = ["https:\/\/chimpstatic.com\/mcjs-connected\/js\/users\/dc049718af7b0e546c7f705c3\/e71acb5cdf38366061444b6e5.js?shop=mateli-ec.myshopify.com","https:\/\/omnisnippet1.com\/platforms\/shopify.js?source=scriptTag\u0026v=2025-11-20T00\u0026shop=mateli-ec.myshopify.com"]; 85 for (var i = 0; i < urls.length; i++) { 86 var s = document.createElement('script'); 87 s.type = 'text/javascript'; 88 s.async = true; 89 s.src = urls[i]; 90 var x = document.getElementsByTagName('script')[0]; 91 x.parentNode.insertBefore(s, x); 92 } 93 }; 94 if(window.attachEvent) { 95 window.attachEvent('onload', asyncLoad); 96 } else { 97 window.addEventListener('load', asyncLoad, false); 98 } 99})();</script>
vendor: 1 bytes, line 99
99
100<script id="__st">var __st={"a":51723370679,"offset":32400,"reqid":"88356304-5ad3-4844-b23c-c46705102c8b-1791441980","pageurl":"furniture.mateli.jp\/pages\/cad","s":"pages-103291715842","u":"0e2f7bd448bd","p":"page","rtyp":"page","rid":103291715842};</script>
vendor: 1 bytes, line 100
100
101<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 101
101
102<script id="form-persister">!function(){'use strict';const t='contact',e='new_comment',n=[[t,t],['blogs',e],['comments',e],[t,'customer']],o='password',r='form_key',c=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',o],s=()=>{try{return window.sessionStorage}catch{return}},i='__shopify_v',u=t=>t.elements[r],a=function(){const t=[...n].map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(',');var e;return e=t,()=>e?[...document.querySelectorAll(e)].map((t=>t.form)):[]}();function m(t){const e=u(t);a().includes(t)&&(!e||!e.value)&&function(t){try{if(!s())return;!function(t){const e=s();if(!e)return;const n=u(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){u(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:r})),t.elements[r].value=e}(t,e),function(t,e){const n=s();if(!n)return;const r=[...t.querySelectorAll(`input[type='${o}']`)].map((({name:t})=>t)),u=[...c,...r],a={};for(const[o,c]of new FormData(t).entries())u.includes(o)||(a[o]=c);n.setItem(e,JSON.stringify({[i]:1,action:t.action,data:a}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(t)}const f=t=>{if('true'===t.dataset.persistBound)return;const e=function(t,e){const n=function(t){return'function'==typeof t.submit?t.submit:HTMLFormElement.prototype.submit}(t).bind(t);return function(){let t;return()=>{t||(t=!0,(()=>{try{e(),n()}catch(t){(t=>{console.error('form submit failed',t)})(t)}})(),setTimeout((()=>t=!1),250))}}()}(t,(()=>{m(t)}));!function(t,e){if('function'==typeof t.submit&&'function'==typeof e)try{t.submit=e}catch{}}(t,e),t.addEventListener('submit',(t=>{t.preventDefault(),e()})),t.dataset.persistBound='true'};!function(){function t(t){const e=(t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form})(t);e&&m(e)}document.addEventListener('submit',t),document.addEventListener('DOMContentLoaded',(()=>{const e=a();for(const t of e)f(t);var n;n=document.body,new window.MutationObserver((t=>{for(const e of t)if('childList'===e.type&&e.addedNodes.length)for(const t of e.addedNodes)1===t.nodeType&&'FORM'===t.tagName&&a().includes(t)&&f(t)})).observe(n,{childList:!0,subtree:!0,attributes:!1}),document.removeEventListener('submit',t)}))}()}();</script>
vendor: 1 bytes, line 102
102
103<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//furniture.mateli.jp/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 103
103
104<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//furniture.mateli.jp/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
104<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 104
104
105<script> 106 window.Shopify = window.Shopify || {}; 107 window.Shopify.MCP = window.Shopify.MCP || {}; 108 window.Shopify.MCP.enabled = true; 109 window.Shopify.MCP.shop = "mateli-ec.myshopify.com"; 110 window.Shopify.MCP.mcpEndpoint = "https:\/\/furniture.mateli.jp\/api\/mcp"; 111 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question â e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}]; 112</script>
vendor: 1 bytes, line 112
112
113<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/furniture.mateli.jp\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 114</script>
vendor: 1 bytes, line 114
114
115<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://furniture.mateli.jp/cdn/shopifycloud/portable-wallets/latest/portable-wallets.ja.js",t.type="module",document.head.appendChild(t)}}; 116</script>
vendor: 1 bytes, line 116
116
117<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 118 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 119</script>
vendor: 1 bytes, line 119
119
120<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 121</script>
121 122
123<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
123 124 125 <meta name='p:domain_verify' content='c33514facba0b5d348544ca6dc387307'> 126 <meta name='google-site-verification' content='FpmwT3OfSz1ZiwcL65XlqGYOy19zRQ3D-plR4eToOB4'> 127 <!-- <meta name="google-site-verification" content="jm2TDnpjwgyvD7kV3Q7TncwPzmJHR-vUUNC_pmDu7Wk" /> --> 128 129 � 130 131<style> 132 133 :root { 134 --font-body-family: 'Noto Sans JP', sans-serif; 135 --font-body-style: normal; 136 --font-body-weight: 400; 137 --font-body-weight-bold: 700; 138 --font-heading-family: 'Noto Sans JP', sans-serif; 139 --font-heading-style: normal; 140 --font-heading-weight: 400; 141 142 --font-body-scale: 1.0; 143 --font-heading-scale: 1.0; 144 145 --color-base-text: 18,18, 18; 146 --color-shadow: 18, 18, 18; 147 --color-base-background-1: 255, 255, 255; 148 --color-base-background-2: 243, 243, 243; 149 --color-base-solid-button-labels: 255, 255, 255; 150 --color-base-outline-button-labels: 18, 18, 18; 151 --color-base-accent-1: 42, 173, 205; 152 --color-base-accent-2: 42, 173, 205; 153 --payment-terms-background-color: #ffffff; 154 155 --gradient-base-background-1: #ffffff; 156 --gradient-base-background-2: #f3f3f3; 157 --gradient-base-accent-1: #2aadcd; 158 --gradient-base-accent-2: #2aadcd; 159 160 --media-padding: px; 161 --media-border-opacity: 0.05; 162 --media-border-width: 1px; 163 --media-radius: 0px; 164 --media-shadow-opacity: 0.0; 165 --media-shadow-horizontal-offset: 0px; 166 --media-shadow-vertical-offset: 4px; 167 --media-shadow-blur-radius: 5px; 168 --media-shadow-visible: 0; 169 170 --page-width: 120rem; 171 --page-width-margin: 0rem; 172 173 --product-card-image-padding: 0.0rem; 174 --product-card-corner-radius: 0.0rem; 175 --product-card-text-alignment: left; 176 --product-card-border-width: 0.0rem; 177 --product-card-border-opacity: 0.1; 178 --product-card-shadow-opacity: 0.0; 179 --product-card-shadow-visible: 0; 180 --product-card-shadow-horizontal-offset: 0.0rem; 181 --product-card-shadow-vertical-offset: 0.4rem; 182 --product-card-shadow-blur-radius: 0.5rem; 183 184 --collection-card-image-padding: 0.0rem; 185 --collection-card-corner-radius: 0.0rem; 186 --collection-card-text-alignment: left; 187 --collection-card-border-width: 0.0rem; 188 --collection-card-border-opacity: 0.1; 189 --collection-card-shadow-opacity: 0.0; 190 --collection-card-shadow-visible: 0; 191 --collection-card-shadow-horizontal-offset: 0.0rem; 192 --collection-card-shadow-vertical-offset: 0.4rem; 193 --collection-card-shadow-blur-radius: 0.5rem; 194 195 --blog-card-image-padding: 0.0rem; 196 --blog-card-corner-radius: 0.0rem; 197 --blog-card-text-alignment: left; 198 --blog-card-border-width: 0.0rem; 199 --blog-card-border-opacity: 0.1; 200 --blog-card-shadow-opacity: 0.0; 201 --blog-card-shadow-visible: 0; 202 --blog-card-shadow-horizontal-offset: 0.0rem; 203 --blog-card-shadow-vertical-offset: 0.4rem; 204 --blog-card-shadow-blur-radius: 0.5rem; 205 206 --badge-corner-radius: 4.0rem; 207 208 --popup-border-width: 1px; 209 --popup-border-opacity: 0.1; 210 --popup-corner-radius: 0px; 211 --popup-shadow-opacity: 0.0; 212 --popup-shadow-horizontal-offset: 0px; 213 --popup-shadow-vertical-offset: 4px; 214 --popup-shadow-blur-radius: 5px; 215 216 --drawer-border-width: 1px; 217 --drawer-border-opacity: 0.1; 218 --drawer-shadow-opacity: 0.0; 219 --drawer-shadow-horizontal-offset: 0px; 220 --drawer-shadow-vertical-offset: 4px; 221 --drawer-shadow-blur-radius: 5px; 222 223 --spacing-sections-desktop: 0px; 224 --spacing-sections-mobile: 0px; 225 226 --grid-desktop-vertical-spacing: 8px; 227 --grid-desktop-horizontal-spacing: 8px; 228 --grid-mobile-vertical-spacing: 4px; 229 --grid-mobile-horizontal-spacing: 4px; 230 231 --text-boxes-border-opacity: 0.1; 232 --text-boxes-border-width: 0px; 233 --text-boxes-radius: 0px; 234 --text-boxes-shadow-opacity: 0.0; 235 --text-boxes-shadow-visible: 0; 236 --text-boxes-shadow-horizontal-offset: 0px; 237 --text-boxes-shadow-vertical-offset: 4px; 238 --text-boxes-shadow-blur-radius: 5px; 239 240 --buttons-radius: 0px; 241 --buttons-radius-outset: 0px; 242 --buttons-border-width: 1px; 243 --buttons-border-opacity: 1.0; 244 --buttons-shadow-opacity: 0.0; 245 --buttons-shadow-visible: 0; 246 --buttons-shadow-horizontal-offset: 0px; 247 --buttons-shadow-vertical-offset: 4px;
248 --buttons-shadow-blur-radius: 5px; 249 --buttons-border-offset: 0px; 250 251 --inputs-radius: 0px; 252 --inputs-border-width: 1px; 253 --inputs-border-opacity: 0.55; 254 --inputs-shadow-opacity: 0.0; 255 --inputs-shadow-horizontal-offset: 0px; 256 --inputs-margin-offset: 0px; 257 --inputs-shadow-vertical-offset: 4px; 258 --inputs-shadow-blur-radius: 5px; 259 --inputs-radius-outset: 0px; 260 261 --variant-pills-radius: 40px; 262 --variant-pills-border-width: 1px; 263 --variant-pills-border-opacity: 0.55; 264 --variant-pills-shadow-opacity: 0.0; 265 --variant-pills-shadow-horizontal-offset: 0px; 266 --variant-pills-shadow-vertical-offset: 4px; 267 --variant-pills-shadow-blur-radius: 5px; 268 269 --mateli-background-1: #F1F3F4; 270 --mateli-background-2: #E5E5E5; 271 --mateli-background-3: #C1C1C9; 272 --mateli-background-4: #787A82; 273 --mateli-light-grey: #f2f3f4; 274 --mateli-orange: #E08D55; 275 276 --mateli-text-1: #262728; 277 --mateli-text-2: #E6E6E6; 278 --mateli-text-3: #676970; 279 280 --slider-button-size: 26px; 281 --section-padding-h: 9vw; 282 --section-padding-w: 5.5vw; 283 --section-padding-b: 12vw; 284 } 285 286 *, 287 *::before, 288 *::after { 289 box-sizing: inherit; 290 } 291 292 html { 293 box-sizing: border-box; 294 font-size: calc(var(--font-body-scale) * 62.5%); 295 height: 100%; 296 } 297 298 body { 299 display: grid; 300 grid-template-rows: auto auto 1fr auto; 301 grid-template-columns: 100%; 302 min-height: 100%; 303 margin: 0; 304 font-size: 1.5rem; 305 letter-spacing: 0.06rem; 306 line-height: calc(1 + 0.8 / var(--font-body-scale)); 307 font-family: var(--font-body-family); 308 font-style: var(--font-body-style); 309 font-weight: var(--font-body-weight); 310 color: var(--mateli-text-1); 311 } 312 /* 313 body, input, button, select, textarea, optgroup { 314 font-family: var(--font-body-family); 315 font-weight: var(--font-body-weight); 316 } 317 */ 318 319 h2, 320 h3, 321 h4 { 322 font-family: var(--font-heading-family); 323 margin: 0; 324 } 325 a { 326 text-decoration: none; 327 color: inherit; 328 } 329 strong, b { 330 font-weight: 600; 331 } 332 @media screen and (min-width: 750px) { 333 body { 334 font-size: 1.4rem; 335 } 336 } 337 @media screen and (max-width: 640px) {} 338 339</style> 340 341 <link href="//furniture.mateli.jp/cdn/shop/t/204/assets/base.min.css?v=148960582916239262651790902731" rel="stylesheet" type="text/css" media="all" /> 342 343 �<link rel='preconnect' href='https://fonts.googleapis.com'> 344 <link rel='preconnect' href='https://fonts.gstatic.com' crossorigin><link 345 rel='stylesheet' 346 href='//furniture.mateli.jp/cdn/shop/t/204/assets/component-predictive-search.css?v=24120902156609398701790902730' 347 media='print' 348 onload="this.media='all'" 349 > 350 <link 351 rel='preload' 352 as='style' 353 href='https://fonts.googleapis.com/css2?family=Cinzel:wght@500&family=Fira+Sans:wght@200;300;400;500&family=Noto+Sans+JP:wght@200;300;400;700&display=swap' 354 onload="this.onload=null;this.rel='stylesheet'" 355 > 356 <noscript> 357 <link rel='stylesheet' href='https://fonts.googleapis.com/css2?family=Cinzel:wght@500&family=Fira+Sans:wght@200;300;400;500&family=Noto+Sans+JP:wght@200;300;400;700&display=swap'> 358 </noscript><style> 359 .drawer { 360 position: fixed; 361 top: 0; 362 left: 0; 363 width: 100vw; 364 height: 100%; 365 visibility: hidden; 366 z-index: 1000; 367 } 368 .drawer.active { 369 visibility: visible; 370 } 371 </style> 372 373 <style> 374 .swiper-wrapper { 375 z-index: 1; 376 } 377 378 .swiper-sub-title { 379 display: flex; 380 justify-content: flex-end; 381 flex-direction: row; 382 align-items: center; 383 column-gap: 10px; 384 padding-top: 4.95vw; 385 width: 100%; 386 } 387 .swiper-sub-title a { 388 display: flex; 389 flex-direction: row; 390 flex-wrap: wrap; 391 align-items: center; 392 column-gap: 9px; 393 letter-spacing: 0; 394 } 395 .swiper-sub-title svg { 396 background-color: var(--mateli-orange); 397 width: 45px; 398 height: 15px; 399 border-radius: 12px; 400 padding: 1px 2px; 401 } 402 .swiper-pagination-bullet { 403 width: 2.5vw !important; 404 height: 2.5vw !important; 405 margin: 0 1.1vw !important; 406 } 407 .header-wrapper { 408 min-height: 95px; 409 height: 95px; 410 background-color: var(--mateli-background-1); 411 } 412 .announcement-bar-section { 413 min-height: 34px; 414 height: 34px; 415 } 416 .section-header.shopify-section-group-header-group { 417 top: 0; 418 } 419 .content-for-layout a, 420 .content-for-layout .rte a, 421 .content-for-layout a.link-text { 422 color: var(--mateli-orange); 423 text-decoration: underline; 424 } 425 .swiper-super-wrapper a, 426 .icon-slider-collection-link-wrapper a, 427 .product-grid a, 428 .top-collage.mateli_category_furniture a { 429 color: var(--mateli-text-1);
430 text-decoration: none; 431 } 432 433 @media screen and (min-width: 500px) { 434 .swiper-pagination-bullet { 435 width: 2.3vw !important; 436 height: 2.3vw !important; 437 margin: 0 0.8vw !important; 438 } 439 } 440 @media screen and (min-width: 600px) { 441 .swiper-sub-title svg { 442 width: 54px; 443 height: 21px; 444 } 445 } 446 @media screen and (min-width: 700px) { 447 .swiper-pagination-bullet { 448 width: 2vw !important; 449 height: 2vw !important; 450 margin: 0 0.6vw !important; 451 } 452 } 453 @media screen and (min-width: 750px) { 454 .menu-drawer { 455 width: unset !important; 456 } 457 button.slider-button { 458 display: none; 459 } 460 } 461 @media screen and (min-width: 800px) { 462 body { 463 font-size: 1.6rem; 464 } 465 .swiper-pagination-bullet { 466 width: 12px !important; 467 height: 12px !important; 468 margin-left: 6px !important; 469 margin-right: 6px !important; 470 } 471 } 472 @media screen and (min-width: 900px) { 473 :root { 474 /* Font update 2026/01/06 475 --font-heading-weight: 600; 476 --font-body-weight: 300; 477 */ 478 --section-padding-h: 5vw; 479 --section-padding-b: 5vw; 480 --section-padding-w: 4.505vw; 481 } 482 .header { 483 padding-top: 1.7vw; 484 padding-bottom: 1.7vw; 485 } 486 ul.list-menu.list-menu--inline { 487 column-gap: 1vw; 488 } 489 .swiper-sub-title svg { 490 width: 5vw; 491 height: 1.8vw; 492 } 493 } 494 @media screen and (min-width: 990px) { 495 .announcement-bar-section { 496 min-height: 37px; 497 height: 37px; 498 } 499 } 500 @media screen and (min-width: 1200px) { 501 :root { 502 --section-padding-h: 50px; 503 --section-padding-b: 50px; 504 --section-padding-w: 100px; 505 } 506 .swiper-sub-title svg { 507 height: 15px; 508 width: 55px; 509 padding-top: 2px; 510 padding-bottom: 2px; 511 } 512 } 513 </style> 514 515 516 517 518 519 520 �� 521 522 523 524 525 526
526<script type='text/javascript'> 527 (function () { 528 function loadClarity() { 529 if (window.clarity) return; // already loaded 530 531 (function (c, l, a, r, i, t, y) { 532 c[a] = 533 c[a] || 534 function () { 535 (c[a].q = c[a].q || []).push(arguments); 536 }; 537 t = l.createElement(r); 538 t.async = 1; 539 t.src = 'https://www.clarity.ms/tag/' + i; 540 y = l.getElementsByTagName(r)[0]; 541 y.parentNode.insertBefore(t, y); 542 })(window, document, 'clarity', 'script', 'rju6qijnpw'); 543 } 544 545 if ('requestIdleCallback' in window) { 546 requestIdleCallback(loadClarity, { timeout: 2000 }); 547 } else { 548 window.addEventListener('load', loadClarity); 549 } 550 })(); 551 </script>
551 552 553
553<script defer> 554 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 555 556 function checkShopify() { 557 if (typeof Shopify !== 'undefined') { 558 if (Shopify.designMode) { 559 document.documentElement.classList.add('shopify-design-mode'); 560 } 561 } else { 562 requestAnimationFrame(checkShopify); // wait until Shopify is available 563 } 564 } 565 566 checkShopify(); 567 </script>
567 568 569 570 <!-- Desktop-only fonts --> 571 572 573 <link 574 rel='stylesheet' 575 href='https://fonts.googleapis.com/css2?family=Cinzel&display=swap' 576 media='(min-width: 900px)' 577 > 578 579 580 581 � 582
582<script> 583 window.MATELI = window.MATELI || {}; 584 window.MATELI.themeTag = 'Mateli_3.3.8.2_setchair_guide_order'; 585 </script>
585 586
586<script src="https://cdn.shopify.com/extensions/01a11803-c1c3-747a-9931-294298cc9c0a/forms-2614/assets/shopify-forms-loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 586
586
587<script src="https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-selleasy.js" type="text/javascript" defer="defer"></script>
587 588<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
589<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 51723370679,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 589
589
590<script> 591 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 592</script>
vendor: 1 bytes, line 592
592
593<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
593).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 51723370679,storefrontBaseUrl: "https://furniture.mateli.jp",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://furniture.mateli.jp/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b"],webPixelsConfigList: [{"id":"1951400194","configuration":"{\"mailchimp_store_id\":\"store_mwxf6i9v3zgxrekkqb9b\", \"mailchimp_user_id\":\"218230546\",\"mailchimp_list_id\":\"b1d49b7cc1\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e357a49eadeb6216a959d63fa3fb8f55","type":"APP","apiClientId":2585307,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]}
593,{"id":"1682702594","configuration":"{\"apiURL\":\"https:\/\/api.omnisend.com\",\"appURL\":\"https:\/\/app.omnisend.com\",\"brandID\":\"64a3b9eeab1e3fef0fad9344\",\"trackingURL\":\"https:\/\/wt.omnisendlink.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"1e2b45bbee5b360dff908f60423b89f8","type":"APP","apiClientId":186001,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"831684866","configuration":"{\"url\":\"https:\/\/events.realtimestack.com\",\"shop\":\"mateli-ec.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"dbfdb96740f735f157780aa894ac9113","type":"APP","apiClientId":4759791,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"457670914","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-SZJ7D3KB3M\\\",\\\"GT-NMKVSFP\\\"],\\\"target_country\\\":\\\"JP\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-SZJ7D3KB3M\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-SZJ7D3KB3M\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-SZJ7D3KB3M\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-SZJ7D3KB3M\\\",\\\"MC-YE7C4DY8MX\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-SZJ7D3KB3M\\\",\\\"MC-YE7C4DY8MX\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-SZJ7D3KB3M\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-SZJ7D3KB3M\\\",\\\"MC-YE7C4DY8MX\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-SZJ7D3KB3M\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-SZJ7D3KB3M\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-SZJ7D3KB3M\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-SZJ7D3KB3M\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"161054978","configuration":"{\"pixel_id\":\"346109873848229\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"103350530","configuration":"{\"tagID\":\"2612730055771\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"65798402","configuration":"{\"accountID\":\"selleasy-metrics-track\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"50acfdcd7b118f50e52df83f64624d06","type":"APP","apiClientId":5519923,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]}
593,"dataSharingState":"unrestricted"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"mateli","paymentSettings":{"currencyCode":"JPY"},"myshopifyDomain":"mateli-ec.myshopify.com","countryCode":"JP","storefrontUrl":"https:\/\/furniture.mateli.jp"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://furniture.mateli.jp/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"166957416706","themePublished":"true","eventMetadataId":"09d3afb0-e0aa-4c37-a4f5-22d495745ccd","pageType":"page","resourceId":"103291715842","shopId":"51723370679","storefrontBaseUrl":"https:\/\/furniture.mateli.jp","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
593<script> 594 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 595 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 596 window.ShopifyAnalytics.meta.currency = 'JPY'; 597 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":103291715842,"requestId":"88356304-5ad3-4844-b23c-c46705102c8b-1791441980"}}; 598 for (var attr in meta) { 599 window.ShopifyAnalytics.meta[attr] = meta[attr]; 600 } 601</script>
vendor: 1 bytes, line 601
601
602<script class="analytics"> 603 (function () { 604 var customDocumentWrite = function(content) { 605 var jquery = null; 606 607 if (window.jQuery) { 608 jquery = window.jQuery; 609 } else if (window.Checkout && window.Checkout.$) { 610 jquery = window.Checkout.$; 611 } 612 613 if (jquery) { 614 jquery('body').append(content); 615 } 616 }; 617 618 var hasLoggedConversion = function(token) { 619 if (token) { 620 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 621 } 622 return false; 623 } 624 625 var setCookieIfConversion = function(token) { 626 if (token) { 627 var twoMonthsFromNow = new Date(Date.now()); 628 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 629 630 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 631 } 632 } 633 634 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 635 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 636 if (trekkie.integrations) { 637 return; 638 } 639 trekkie.methods = [ 640 'identify', 641 'page', 642 'ready', 643 'track', 644 'trackForm', 645 'trackLink' 646 ]; 647 trekkie.factory = function(method) { 648 return function() { 649 var args = Array.prototype.slice.call(arguments); 650 args.unshift(method); 651 trekkie.push(args); 652 if (method == 'track' || method == 'page') { 653 var pageUrl; 654 try { 655 pageUrl = window.location.href; 656 } catch (e) {} 657 var pageReferrer; 658 try { 659 pageReferrer = document.referrer; 660 } catch (e) {} 661 try { 662 if (window.__TREKKIE_SHIM_QUEUE == null) { 663 window.__TREKKIE_SHIM_QUEUE = []; 664 } 665 window.__TREKKIE_SHIM_QUEUE.push({ 666 from: 'trekkie-stub', 667 method: method, 668 args: args.slice(1), 669 pageContext: { 670 url: pageUrl, 671 referrer: pageReferrer 672 } 673 }); 674 } catch (e) { 675 // no-op 676 } 677 } 678 return trekkie; 679 }; 680 }; 681 for (var i = 0; i < trekkie.methods.length; i++) { 682 var key = trekkie.methods[i]; 683 trekkie[key] = trekkie.factory(key); 684 } 685 trekkie.load = function(config) { 686 trekkie.config = config || {}; 687 trekkie.config.initialDocumentCookie = document.cookie; 688 var first = document.getElementsByTagName('script')[0]; 689var script = document.createElement('script'); 690script.type = 'text/javascript'; 691script.onerror = function(e) { 692 var scriptFallback = document.createElement('script'); 693 scriptFallback.type = 'text/javascript'; 694 scriptFallback.onerror = function(error) { 695 var Monorail = { 696 produce: function produce(monorailDomain, schemaId, payload) { 697 var currentMs = new Date().getTime(); 698 var event = { 699 schema_id: schemaId, 700 payload: payload, 701 metadata: { 702 event_created_at_ms: currentMs, 703 event_sent_at_ms: currentMs 704 } 705 }; 706 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 707 }, 708 sendRequest: function sendRequest(endpointUrl, payload) { 709 // Try the sendBeacon API 710 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 711 var blobData = new window.Blob([payload], { 712 type: 'text/plain' 713 }); 714 715 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 716 return true; 717 } // sendBeacon was not successful 718 719 } // XHR beacon 720 721 var xhr = new XMLHttpRequest(); 722 723 try { 724 xhr.open('POST', endpointUrl); 725 xhr.setRequestHeader('Content-Type', 'text/plain'); 726 xhr.send(payload); 727 } catch (e) { 728 console.log(e); 729 } 730 731 return false; 732 }, 733 isIos12: function isIos12() { 734 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 735 } 736 }; 737 Monorail.produce('monorail-edge.shopifysvc.com', 738 'trekkie_storefront_load_errors/1.1', 739 {shop_id: 51723370679, 740 theme_id: 166957416706, 741 app_name: "storefront", 742 context_url: window.location.href, 743 source_url: "//furniture.mateli.jp/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"}); 744 745 }; 746 scriptFallback.async = true; 747 scriptFallback.src = '//furniture.mateli.jp/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 748 first.parentNode.insertBefore(scriptFallback, first); 749}; 750script.async = true; 751script.src = '//furniture.mateli.jp/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 752first.parentNode.insertBefore(script, first); 753 754 }; 755 trekkie.load( 756 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":51723370679,"isMerchantRequest":null,"themeId":166957416706,"themeCityHash":"17960553727087791378","contentLanguage":"ja","currency":"JPY","eventMetadataId":"09d3afb0-e0aa-4c37-a4f5-22d495745ccd"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 757 ); 758 759 var loaded = false;
760 trekkie.ready(function() { 761 if (loaded) return; 762 loaded = true; 763 764 window.ShopifyAnalytics.lib = window.trekkie; 765 766 var originalDocumentWrite = document.write; 767 document.write = customDocumentWrite; 768 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 769 document.write = originalDocumentWrite; 770 771 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 772 var token = match? match[1]: undefined; 773 if (!hasLoggedConversion(token)) { 774 setCookieIfConversion(token); 775 776 } 777 }); 778 779 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":103291715842,"requestId":"88356304-5ad3-4844-b23c-c46705102c8b-1791441980","shopifyEmitted":true}); 780 781 var eventsListenerScript = document.createElement('script'); 782 eventsListenerScript.async = true; 783 eventsListenerScript.src = "//furniture.mateli.jp/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 784 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 785})();</script>
785 786
786<script> 787 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 788 window.ga = function ga() { 789 (window.ga.q = window.ga.q || []).push(arguments); 790 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 791 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 792 } 793 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 794 }; 795 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 796 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 797 } 798 } 799</script>
vendor: 1 bytes, line 799
799
800<script 801 defer 802 src="https://furniture.mateli.jp/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.0.min.js" 803 data-application="storefront-renderer" 804 data-shop-id="51723370679" 805 data-render-region="gcp-us-central1" 806 data-page-type="page" 807 data-theme-instance-id="166957416706" 808 data-theme-name="Dawn" 809 data-theme-version="8.0.0" 810 data-monorail-region="shop_domain" 811 data-resource-timing-sampling-rate="10" 812 data-shs="true" 813 data-shs-beacon="true" 814 data-shs-export-with-fetch="true" 815 data-shs-logs-sample-rate="1" 816 data-shs-beacon-endpoint="https://furniture.mateli.jp/api/collect" 817></script>
817 818<meta name="shopify-y" content="d914d940-acfa-4bb2-9b63-36af5e2e9990" data-expiration="1822999580000"><meta name="shopify-s" content="9eb409a7-93aa-4a81-86a2-830c60735398" data-expiration="1791443780000"><meta name="new-cookie-storage-activated" content="t"> 819</head> 820 821 <body class='gradient'> 822 <a class='skip-to-content-link button visually-hidden' href='#MainContent'> 823 ã³ã³ãã³ãã«é²ã 824 </a> 825
826<script src='//furniture.mateli.jp/cdn/shop/t/204/assets/cart.js?v=119570459610097587301790902731' defer='defer'></script>
826 827 828<style> 829 .drawer { 830 visibility: hidden; 831 } 832 .cart-item .product-option dt { 833 font-weight: 600; 834 } 835 .cart-drawer__form .product-option { 836 display: flex; 837 gap: 5px; 838 flex-wrap: wrap; 839 } 840 841 .cart-drawer .cart-drawer__form .cart-items thead th:nth-child(2) { 842 padding-left: 15px; 843 } 844 .drawer__contents .cart-item { 845 padding-left: 0; 846 } 847 .cart-drawer .cart-drawer__form .cart-items tr .cart-item__media { 848 position: relative; 849 grid-column: 1/1; 850 grid-row: 1/2; 851 width: 100%; 852 padding: 15px 0 0; 853 } 854 855 .cart-drawer .cart-drawer__form .cart-item__details { 856 grid-row: 1/2; 857 grid-column: 2/5; 858 } 859 .cart-drawer .cart-drawer__form .cart-items .cart-item__quantity { 860 grid-column: 1 / 4 !important; 861 grid-row: 2 / 2; 862 justify-content: center; 863 display: flex; 864 } 865 .cart-drawer .cart-drawer__form .cart-items tr .cart-item__totals { 866 grid-row: 2 / 2; 867 grid-column: 4 / 5; 868 display: flex; 869 align-items: center; 870 flex-direction: column; 871 padding: 0; 872 justify-content: center; 873 padding-bottom: 15px; 874 } 875 .cart-drawer .cart-drawer__form .cart-item .cart-item__totals::before { 876 content: 'åè¨'; 877 } 878 .cart-special-option { 879 line-height: 1.5em; 880 padding: 0.5em 1em; 881 white-space: normal; 882 color: #ff0000; 883 font-family: inherit; 884 font-size: 13px; 885 background-color: #e7e7e7; 886 margin-top: 12px !important; 887 } 888 .cart-item__remove-placeholder { 889 display: block !important; 890 width: 45px; 891 margin: 0.5rem 0 0 1.5rem; 892 } 893 .cart-special-option-warning h5 { 894 font-weight: 700; 895 margin: 3px 0; 896 } 897 .cart-special-option-warning p, 898 .cart-special-option-warning ul { 899 margin: 0; 900 font-size: 12px; 901 word-break: auto-phrase; 902 } 903 .cart-special-option-warning ul { 904 padding-left: 25px; 905 } 906 #CartDrawer-Form .cart-item.inventory-check .cart-item__totals.right::before { 907 display: none; 908 } 909 #CartDrawer-Form .cart-item.inventory-check .cart-item__totals.right { 910 padding-bottom: 0; 911 } 912 @media only screen and (min-width: 750px) { 913 .cart-special-option-warning h5 { 914 font-size: calc(var(--font-heading-scale) * 1.2rem); 915 } 916 } 917</style> 918 919 920 921 922<cart-drawer class='drawer is-empty'> 923 <div id='CartDrawer' class='cart-drawer'> 924 <div id='CartDrawer-Overlay' class='cart-drawer__overlay'></div> 925 <div 926 class='drawer__inner' 927 role='dialog' 928 aria-modal='true' 929 aria-label='ããªãã®ã«ã¼ã' 930 tabindex='-1' 931 ><div class='drawer__inner-empty'> 932 <div class='cart-drawer__warnings center'> 933 <div class='cart-drawer__empty-content'> 934 <div class='cart__empty-text h2'>ã«ã¼ãã¯ç©ºã§ã</div> 935 <button 936 class='drawer__close' 937 type='button' 938 onclick="this.closest('cart-drawer').close()" 939 aria-label='éãã' 940 > 941 <svg 942 xmlns="http://www.w3.org/2000/svg" 943 aria-hidden="true" 944 focusable="false" 945 class="icon icon-close" 946 fill="none" 947 viewBox="0 0 18 17" 948> 949 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 950</svg> 951 952 </button> 953 <a href='/collections/all' class='button'> 954 è²·ãç©ãç¶ãã 955 </a><p class='cart__login-title h3'>ã¢ã«ã¦ã³ãããæã¡ã§ãã?</p> 956 <p class='cart__login-paragraph'> 957 <a href="/account/login" class="link underlined-link">ãã°ã¤ã³</a>ãããã¨ã§ããã§ãã¯ã¢ã¦ããã¹ãã¼ãã£ã¼ã«è¡ãã¾ãã 958 </p></div> 959 </div></div><div class='drawer__header'> 960 <div class='drawer__heading h2'>ããªãã®ã«ã¼ã</div> 961 <button 962 class='drawer__close' 963 type='button' 964 onclick="this.closest('cart-drawer').close()" 965 aria-label='éãã' 966 > 967 <svg 968 xmlns="http://www.w3.org/2000/svg" 969 aria-hidden="true" 970 focusable="false"
971 class="icon icon-close" 972 fill="none" 973 viewBox="0 0 18 17" 974> 975 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 976</svg> 977 978 </button> 979 </div> 980 <cart-drawer-items 981 982 class=' is-empty' 983 984 > 985 <form 986 action='/cart' 987 id='CartDrawer-Form' 988 class='cart__contents cart-drawer__form' 989 method='post' 990 > 991 <div id='CartDrawer-CartItems' class='drawer__contents js-contents'><p id='CartDrawer-LiveRegionText' class='visually-hidden' role='status'></p> 992 <p id='CartDrawer-LineItemStatus' class='visually-hidden' aria-hidden='true' role='status'> 993 èªã¿è¾¼ã¿ä¸â¦ 994 </p> 995 </div> 996 <div id='CartDrawer-CartErrors' role='alert'></div> 997 </form> 998 </cart-drawer-items> 999 <div class='drawer__footer'><!-- Start blocks --> 1000 <!-- Subtotals --> 1001 1002 <div class='cart-drawer__footer' > 1003 <div class='totals' role='status'> 1004 <div class='totals__subtotal h2'>å°è¨</div> 1005 <p class='totals__subtotal-value'>Â¥0</p> 1006 </div> 1007 1008 <div></div> 1009 1010 <small class='tax-note caption-large rte'>ç¨ã¨<a href="/policies/shipping-policy">é éæ</a>ã¯è³¼å ¥æç¶ãæã«è¨ç®ããã¾ã�</small> 1011 </div> 1012 1013 <!-- CTAs --> 1014 1015 <div class='cart__ctas' > 1016 <button type='submit' class='cart__update-button button button--secondary' form='CartDrawer-Form'> 1017 è³¼å ¥æç¶ãã«é²ã 1018 </button> 1019 1020 <noscript> 1021 <button 1022 type='submit' 1023 id='CartDrawer-Checkout' 1024 class='cart__checkout-button button' 1025 name='checkout' 1026 form='CartDrawer-Form' 1027 1028 disabled 1029 1030 > 1031 ãè³¼å ¥æç¶ã㸠1032 </button> 1033 </noscript> 1034 </div> 1035 </div> 1036 </div> 1037 </div> 1038</cart-drawer> 1039
1040<script> 1041 document.addEventListener('DOMContentLoaded', function () { 1042 function isIE() { 1043 const ua = window.navigator.userAgent; 1044 const msie = ua.indexOf('MSIE '); 1045 const trident = ua.indexOf('Trident/'); 1046 1047 return msie > 0 || trident > 0; 1048 } 1049 1050 if (!isIE()) return; 1051 const cartSubmitInput = document.createElement('input'); 1052 cartSubmitInput.setAttribute('name', 'checkout'); 1053 cartSubmitInput.setAttribute('type', 'hidden'); 1054 document.querySelector('#cart').appendChild(cartSubmitInput); 1055 document.querySelector('#checkout').addEventListener('click', function (event) { 1056 document.querySelector('#cart').submit(); 1057 }); 1058 }); 1059</script>
1059 1060<!-- BEGIN sections: header-group --> 1061<div id="shopify-section-sections--23888045408514__header_2_m9NeVx" class="shopify-section shopify-section-group-header-group section-header"><link rel="stylesheet" href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-list-menu.min.css?v=108004255603861305101790902731" media="print" onload="this.media='all'"> 1062<link rel="stylesheet" href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-search.min.css?v=92541243337534023161790902730" media="print" onload="this.media='all'"> 1063<link rel="stylesheet" href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-menu-drawer.min.css?v=714920848680375651790902731" media="print" onload="this.media='all'"> 1064<link rel="stylesheet" href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-cart-notification.min.css?v=129849710190701587641790902731" media="print" onload="this.media='all'"> 1065<link rel="stylesheet" href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-cart-items.min.css?v=7102220040226984331790902731" media="print" onload="this.media='all'"><link rel="stylesheet" href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-cart-drawer.min.css?v=168640238602359414671790902731" media="print" onload="this.media='all'"> 1066 <noscript><link href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-cart-drawer.min.css?v=168640238602359414671790902731" rel="stylesheet" type="text/css" media="all" /></noscript> 1067 1068 1069 1070<link rel="stylesheet" href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-cart.min.css?v=167432168725399137441790902731" media="print" onload="this.media='all'"> 1071<link rel="stylesheet" href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-totals.min.css?v=27010040447872204751790902731" media="print" onload="this.media='all'"> 1072<link rel="stylesheet" href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-price.min.css?v=127117214635422420591790902730" media="print" onload="this.media='all'"> 1073<link rel="stylesheet" href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-discounts.min.css?v=61058650067499349141790902730" media="print" onload="this.media='all'"> 1074<link rel="stylesheet" href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-loading-overlay.min.css?v=11224687867389226121790902730" media="print" onload="this.media='all'"><noscript><link href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-list-menu.min.css?v=108004255603861305101790902731" rel="stylesheet" type="text/css" media="all" /></noscript> 1075<noscript><link href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-search.min.css?v=92541243337534023161790902730" rel="stylesheet" type="text/css" media="all" /></noscript> 1076<noscript><link href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-menu-drawer.min.css?v=714920848680375651790902731" rel="stylesheet" type="text/css" media="all" /></noscript> 1077<noscript><link href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-cart-notification.min.css?v=129849710190701587641790902731" rel="stylesheet" type="text/css" media="all" /></noscript> 1078<noscript><link href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-cart-items.min.css?v=7102220040226984331790902731" rel="stylesheet" type="text/css" media="all" /></noscript>
1078<script src="//furniture.mateli.jp/cdn/shop/t/204/assets/details-disclosure.min.js?v=113062086430855551821790902731" defer="defer"></script>
vendor: 2 bytes, line 1078
1078
1079<script src="//furniture.mateli.jp/cdn/shop/t/204/assets/details-modal.min.js?v=70385360863995498871790902731" defer="defer"></script>
vendor: 2 bytes, line 1079
1079
1080<script src="//furniture.mateli.jp/cdn/shop/t/204/assets/cart-notification.min.js?v=164016035822012113881790902731" defer="defer"></script>
vendor: 2 bytes, line 1080
1080
1081<script src="//furniture.mateli.jp/cdn/shop/t/204/assets/search-form.min.js?v=167880595181429635231790902731" defer="defer"></script>
1081<script src="//furniture.mateli.jp/cdn/shop/t/204/assets/cart-drawer.min.js?v=95308948832625359561790902731" defer="defer"></script>
1081<svg xmlns="http://www.w3.org/2000/svg" class="hidden"> 1082 <symbol id="icon-search" viewbox="0 0 18 19" fill="none"> 1083 <path fill-rule="evenodd" clip-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z" fill="currentColor"/> 1084 </symbol> 1085 1086 <symbol id="icon-reset" class="icon icon-close" fill="none" viewBox="0 0 18 18" stroke="currentColor"> 1087 <circle r="8.5" cy="9" cx="9" stroke-opacity="0.2"/> 1088 <path d="M6.82972 6.82915L1.17193 1.17097" stroke-linecap="round" stroke-linejoin="round" transform="translate(5 5)"/> 1089 <path d="M1.22896 6.88502L6.77288 1.11523" stroke-linecap="round" stroke-linejoin="round" transform="translate(5 5)"/> 1090 </symbol> 1091 1092 <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17"> 1093 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 1094 </symbol> 1095</svg> 1096 1097 1098<style> 1099 header-drawer { 1100 justify-self: start; 1101 }@media screen and (min-width: 990px) { 1102 header-drawer { 1103 display: none; 1104 } 1105 }.menu-drawer-container { 1106 display: flex; 1107 } 1108 1109 .list-menu { 1110 list-style: none; 1111 padding: 0; 1112 margin: 0; 1113 } 1114 1115 .list-menu--inline { 1116 display: inline-flex; 1117 flex-wrap: wrap; 1118 } 1119 1120 summary.list-menu__item { 1121 padding-right: 2.7rem; 1122 } 1123 1124 .list-menu__item { 1125 display: flex;
1126 align-items: center; 1127 line-height: calc(1 + 0.3 / var(--font-body-scale)); 1128 } 1129 1130 .list-menu__item--link { 1131 text-decoration: none; 1132 padding-bottom: 1rem; 1133 padding-top: 1rem; 1134 line-height: calc(1 + 0.8 / var(--font-body-scale)); 1135 } 1136 1137 @media screen and (min-width: 750px) { 1138 .list-menu__item--link { 1139 padding-bottom: 0.5rem; 1140 padding-top: 0.5rem; 1141 } 1142 1143 } 1144 1145 .header { 1146 padding: 10px 3rem 10px 3rem; 1147 } 1148 1149 .section-header { 1150 position: sticky; /* This is for fixing a Safari z-index issue. PR #2147 */ 1151 margin-bottom: 0px; 1152 } 1153 1154 @media screen and (min-width: 750px) { 1155 .section-header { 1156 margin-bottom: 0px; 1157 } 1158 } 1159 1160 @media screen and (min-width: 990px) { 1161 .header { 1162 padding-top: 20px; 1163 padding-bottom: 20px; 1164 } 1165 } 1166 1167 @media (min-width: 990px) { 1168 .header__inline-menu a, .header__inline-menu span { 1169 font-weight: 600; 1170 } 1171 } 1172 1173 .header-wrapper { 1174 background-color: var(--mateli-background-1); 1175 min-height: 95px; 1176 } 1177 .shopify-section-header-sticky.scrolled-past-header .header-wrapper { 1178 min-height: auto; 1179 } 1180 #menu-drawer { 1181 background-color: var(--mateli-background-2); 1182 box-shadow: inset 0px 2px 10px gray; 1183 } 1184 /** General **/ 1185 .link, .customer a{ 1186 text-decoration: none; 1187 color: inherit; 1188 } 1189 1190 /** Header **/ 1191 .header { 1192 grid-template-areas: "heading icons"; 1193 grid-template-columns: 2fr 2fr; 1194 padding: 10px 1rem 10px 1rem; 1195 } 1196 .menu-drawer__navigation { 1197 margin: 0 50px; 1198 padding: 35px 0; 1199 } 1200 .menu-drawer__navigation-container { 1201 display: flex; 1202 flex-direction: column; 1203 } 1204 .header__icon svg { 1205 height: 20px; 1206 width: 20px; 1207 margin-right: 3px; 1208 } 1209 .cart-count-bubble { 1210 background-color: rgb(42, 173, 205); 1211 } 1212 span.menu-txt, .search-txt, .cart-title,.login-title { 1213 font-size: 9px; 1214 font-family: var(--font-body-family); 1215 width: 100%; 1216 text-align: center; 1217 display: block; 1218 font-weight: 600; 1219 } 1220 .login-title { 1221 letter-spacing: -1px; 1222 } 1223 .header__icon.header__icon--cart { 1224 display: flex; 1225 flex-direction: column; 1226 justify-content: flex-end; 1227 } 1228 .header__icon.header__icon--search, .header__icon.header__icon--menu,.header__icon.header__icon--account account-icon { 1229 display: flex; 1230 flex-direction: column; 1231 justify-content: flex-end; 1232 } 1233 .header__icon.header__icon--account account-icon { 1234 height: 100%; 1235 } 1236 .menu-drawer-container:not(.menu-opening) .menu-txt.menu-menu { 1237 display: block; 1238 } 1239 .menu-drawer-container.menu-opening .menu-txt.menu-menu { 1240 display: none; 1241 } 1242 .menu-drawer-container:not(.menu-opening) .menu-txt.menu-close { 1243 display: none; 1244 } 1245 .menu-drawer-container.menu-opening .menu-txt.menu-close { 1246 display: block; 1247 } 1248 .menu-header { 1249 display: flex; 1250 flex-direction: row; 1251 justify-content: flex-start; 1252 align-items: center; 1253 height: fit-content; 1254 padding: 35px 0; 1255 column-gap: 9px; 1256 margin: 0 50px; 1257 border-bottom: 1px solid #262728; 1258 } 1259 1260 .menu-header-h2 { 1261 font-family: var(--font-cinzel); 1262 font-weight: 400; 1263 font-size: 5.6vw; 1264 line-height: normal; 1265 color: #333; 1266 } 1267 1268 .menu-header span { 1269 font-family: var(--font-body-family); 1270 line-height: normal; 1271 font-size: 3.5vw; 1272 font-size: 3.5vw; 1273 margin-bottom: 3px; 1274 } 1275 .menu-button-wrapper { 1276 padding: 35px 0; 1277 display: flex; 1278 flex-direction: row; 1279 justify-content: center; 1280 column-gap: 15px; 1281 max-width: 100%; 1282 flex-wrap: wrap; 1283 row-gap: 4.6vw; 1284 margin: 0 50px; 1285 border-bottom: 1px solid #262728; 1286 } 1287 .menu-drawer__navigation { 1288 border-bottom: 1px solid #262728; 1289 } 1290 .menu-button-wrapper a { 1291 padding: 10px 10px; 1292 width: calc((100% / 2) - 10px); 1293 text-align: center; 1294 border: 1px solid var(--mateli-background-4); 1295 color: #333; 1296 min-width: fit-content; 1297 font-size: 3.5vw; 1298 } 1299 1300 .menu-button-wrapper a:first-child { 1301 background-color: var(--mateli-background-4); 1302 } 1303 .menu-button.button-1 { 1304 color: white; 1305 } 1306 .menu-drawer__navigation .menu-eng { 1307 font-size: 5vw; 1308 line-height: normal; 1309 } 1310 1311 .menu-drawer__navigation .menu-jp { 1312 font-size: 3.5vw; 1313 line-height: normal; 1314 } 1315 1316 1317 .menu-drawer__navigation li a { 1318 display: flex; 1319 flex-direction: row; 1320 justify-content: flex-start;
1321 align-items: center; 1322 column-gap: 15px; 1323 } 1324 .menu-drawer__footer ul.menu-drawer__menu.list-menu { 1325 padding: 1vw 0 1vw 3vw; 1326 } 1327 1328 /** Package 01 2025/02 **/ 1329 .header__icon span { 1330 display: flex; 1331 align-items: center; 1332 justify-content: flex-end; 1333 flex-direction: column; 1334 } 1335 .header__icon span { 1336 height: unset; 1337 } 1338 .header__search { 1339 line-height: unset; 1340 } 1341 .header__heading-logo { 1342 width: 140px; 1343 } 1344 .header__icons { 1345 padding-right: .8rem; 1346 } 1347 .header__icon--cart { 1348 margin-right: unset; 1349 } 1350 .menu-drawer { 1351 width: 100%; 1352 } 1353 sticky-header { 1354 padding: 20px 0; 1355 /* ponytail: deliberate snap - header shrink fires every scroll direction change (frequency rule) and padding is a layout prop; restore a transform-based shrink if motion is wanted */ 1356 } 1357 .header:not(.drawer-menu).page-width { 1358 padding: 0 1.5rem; 1359 } 1360 .header__heading, .header__heading-link { 1361 justify-self: start; 1362 } 1363 .section-header.scrolled-past-header sticky-header { 1364 padding: 5px 0; 1365 } 1366 1367 .section-header.scrolled-past-header img.header__heading-logo { 1368 width: 90%; 1369 height: auto; 1370 margin: auto; 1371 display: block; 1372 max-width: 140px; 1373 } 1374 .shopify-section-group-header-group .announcement-bar-section { 1375 width: 100%; 1376 min-height: 34px; 1377 display: block; 1378 position: relative; 1379 top: 0; 1380 } 1381 p.announcement-bar__message { 1382 font-family: var(--font-body-family), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important; 1383 font-weight: 400 !important; 1384 font-size: 11px; 1385 line-height: 14px; 1386 } 1387 .announcement-bar { 1388 background: #e4e1dc; 1389 color: #000000; 1390 } 1391 .section-header.scrolled-past-header .announcement-bar-section { 1392 display: none; 1393 } 1394 .section-header.scrolled-past-header .header-wrapper { 1395 min-height: unset; 1396 height: fit-content; 1397 } 1398 @media screen and (min-width: 990px) and (max-width: 1150px){ 1399 .header__submenu .header__submenu .header__menu-item { 1400 font-size: 11px; 1401 } 1402 } 1403 @media screen and (min-width: 750px){ 1404 .header:not(.drawer-menu).page-width { 1405 padding: 0 5rem; 1406 } 1407 } 1408 @media screen and (min-width: 990px) { 1409 .header { 1410 grid-template-areas: "heading navigation icons"; 1411 grid-template-columns: 1fr 3fr 1fr; 1412 padding-top: 1.5vw; 1413 padding-bottom: 1.5vw; 1414 } 1415 .header__icon.header__icon--cart { 1416 row-gap: 4px; 1417 } 1418 .header__icon.header__icon--search, .header__icon.header__icon--menu, .header__icon.header__icon--account account-icon { 1419 row-gap: 4px; 1420 } 1421 .header:not(.drawer-menu).page-width { 1422 padding-left: 5rem; 1423 padding-right: 5rem; 1424 } 1425 .section-header { 1426 position: relative; 1427 } 1428 .shopify-section-group-header-group .announcement-bar-section { 1429 min-height: 37px; 1430 } 1431 } 1432 1433</style><sticky-header data-sticky-type="on-scroll-up" class="header-wrapper color-background-1 gradient header-wrapper--border-bottom"> 1434 <header class="header header--middle-left header--mobile-center page-width header--has-menu " data-section-id="header" data-section-type="header" data-section-settings='{ 1435 "showNewsletter": false 1436 }'> 1437<a href="/" class="header__heading-link link link--text focus-inset"><img 1438 src="//furniture.mateli.jp/cdn/shop/files/mateli_logo_500373e0-a218-465a-ae10-8dbdcc905cc5_145x_2x_1.webp?v=1677212524&width=500" 1439 srcset=" 1440 //furniture.mateli.jp/cdn/shop/files/mateli_logo_500373e0-a218-465a-ae10-8dbdcc905cc5_145x_2x_1.webp?v=1677212524&width=70 70w, 1441 //furniture.mateli.jp/cdn/shop/files/mateli_logo_500373e0-a218-465a-ae10-8dbdcc905cc5_145x_2x_1.webp?v=1677212524&width=140 140w, 1442 //furniture.mateli.jp/cdn/shop/files/mateli_logo_500373e0-a218-465a-ae10-8dbdcc905cc5_145x_2x_1.webp?v=1677212524&width=280 280w 1443 " 1444 sizes="140px" 1445 1446 sizes="140px" 1447 width="140" 1448 height="39" 1449 class="header__heading-logo motion-reduce" 1450 alt="æ ªå¼ä¼ç¤¾mateli(ãããª) â ç¾å®¹å¨å ·ã»ç¾å®¹æ©å¨ ãã´å¤§" 1451 loading="eager" 1452 ></a> 1453 1454 � 1455<style> 1456 ul.list-menu.list-menu--inline li a { 1457 color: var(--mateli-text-1);
1458 } 1459 @media screen and (min-width: 990px) { 1460 details[open]>#HeaderMenu-MenuList-2 { 1461 z-index: 9; 1462 width: 100%; 1463 height: fit-content; 1464 padding: 3vw; 1465 top: 65px; 1466 left: 0; 1467 right: 0; 1468 position: absolute; 1469 } 1470 .global-settings-popup, .header__submenu.global-settings-popup { 1471 background-color: unset; 1472 box-shadow: unset; 1473 border: 0; 1474 } 1475 1476 details[open]#Details-HeaderMenu-2 { 1477 position: unset; 1478 } 1479 .header__submenu .header__submenu { 1480 background-color: transparent; 1481 padding: unset; 1482 margin: unset; 1483 } 1484 .list-menu--inline { 1485 align-items: center; 1486 } 1487 #HeaderMenu-MenuList-2 { 1488 display: flex; 1489 flex-direction: row; 1490 justify-content: space-between; 1491 position: relative; 1492 left: unset; 1493 top: unset; 1494 max-width: var(--page-width); 1495 margin: auto; 1496 min-width: unset; 1497 flex-wrap: wrap; 1498 width: 100%; 1499 column-gap: 1vw; 1500 padding: 1rem 1vw; 1501 } 1502 #details-subHeaderMenu { 1503 position: absolute; 1504 top: 7.3vw; 1505 margin: auto; 1506 width: 100%; 1507 left: 0; 1508 background-color: var(--mateli-background-1); 1509 z-index: 400; 1510 } 1511 #HeaderMenu-MenuList-2 .sub-menu-child { 1512 width: calc(25% - 1vw); 1513 } 1514 } 1515 @media screen and (min-width: 1200px) { 1516 #details-subHeaderMenu { 1517 top: 95px; 1518 } 1519 } 1520</style> 1521 1522<nav class="header__inline-menu"> 1523 <ul class="list-menu list-menu--inline" role="list"><li><a 1524 id="HeaderMenu-å ¨ã«ãã´ãªã¼ããæ¢ã" 1525 href="/pages/categories" 1526 class="header__menu-item list-menu__item link link--text focus-inset" 1527 1528 > 1529 <span 1530 >å ¨ã«ãã´ãªã¼ããæ¢ã</span> 1531 </a></li><li><header-menu> 1532 <details id="Details-HeaderMenu-2"> 1533 <summary 1534 id="HeaderMenu-åå" 1535 class="header__menu-item list-menu__item link focus-inset" 1536 > 1537 <span 1538 >åå</span><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 1539</summary> 1540 <div id="details-subHeaderMenu"> 1541 <ul 1542 id="HeaderMenu-MenuList-2" 1543 class="header__submenu list-menu list-menu--disclosure color- gradient caption-large motion-reduce global-settings-popup" 1544 role="list" 1545 tabindex="-1" 1546 ><li class="sub-menu-child"> 1547 <div class="mateli_submenu_2"> 1548 <ul id="HeaderMenu-SubMenuList-åå-nbsp-" 1549 class="header__submenu list-menu motion-reduce"><li class="sub-menu-grandchild"> 1550 <a id="HeaderMenu-åå-nbsp-ã¹ã¿ã¤ãªã³ã°ãã§ã¢" 1551 href="/collections/stylingchair" 1552 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1553 > 1554 ã¹ã¿ã¤ãªã³ã°ãã§ã¢ 1555 </a> 1556 </li><li class="sub-menu-grandchild"> 1557 <a id="HeaderMenu-åå-nbsp-ã¯ã´ã³" 1558 href="/collections/wagon" 1559 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1560 > 1561 ã¯ã´ã³ 1562 </a> 1563 </li><li class="sub-menu-grandchild"> 1564 <a id="HeaderMenu-åå-nbsp-ãã¼ãã¼ã·ã§ã³" 1565 href="/collections/partition" 1566 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1567 > 1568 ãã¼ãã¼ã·ã§ã³ 1569 </a> 1570 </li>
1570<li class="sub-menu-grandchild"> 1571 <a id="HeaderMenu-åå-nbsp-çæ¿" 1572 href="/collections/signboard" 1573 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1574 > 1575 çæ¿ 1576 </a> 1577 </li><li class="sub-menu-grandchild"> 1578 <a id="HeaderMenu-åå-nbsp-ã¤ã³ããªã¢é貨" 1579 href="/collections/interior-goods" 1580 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1581 > 1582 ã¤ã³ããªã¢é貨 1583 </a> 1584 </li></ul> 1585 </div></li><li class="sub-menu-child"> 1586 <div class="mateli_submenu_2"> 1587 <ul id="HeaderMenu-SubMenuList-åå-nbsp-" 1588 class="header__submenu list-menu motion-reduce"><li class="sub-menu-grandchild"> 1589 <a id="HeaderMenu-åå-nbsp-ã¹ãã¼ã«-ã«ãããã§ã¢" 1590 href="/collections/stool" 1591 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1592 > 1593 ã¹ãã¼ã« / ã«ãããã§ã¢ 1594 </a> 1595 </li><li class="sub-menu-grandchild"> 1596 <a id="HeaderMenu-åå-nbsp-ã»ããé¢-ãã¼ãã«-ã«ã¦ã³ã¿ã¼" 1597 href="/collections/surface-counter" 1598 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1599 > 1600 ã»ããé¢ / ãã¼ãã« / ã«ã¦ã³ã¿ã¼ 1601 </a> 1602 </li><li class="sub-menu-grandchild"> 1603 <a id="HeaderMenu-åå-nbsp-ãã§ã¢-å¾ åæ¤ å" 1604 href="/collections/chair" 1605 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1606 > 1607 ãã§ã¢ / å¾ åæ¤ å 1608 </a> 1609 </li><li class="sub-menu-grandchild"> 1610 <a id="HeaderMenu-åå-nbsp-ãã©ã¤ã¤ã¼ãã«ãã¼" 1611 href="/collections/dryer-holder" 1612 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1613 > 1614 ãã©ã¤ã¤ã¼ãã«ãã¼ 1615 </a> 1616 </li><li class="sub-menu-grandchild"> 1617 <a id="HeaderMenu-åå-nbsp-ã¢ã¦ãã¬ãã" 1618 href="/collections/outlet" 1619 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1620 > 1621 ã¢ã¦ãã¬ãã 1622 </a> 1623 </li></ul> 1624 </div></li><li class="sub-menu-child"> 1625 <div class="mateli_submenu_2"> 1626 <ul id="HeaderMenu-SubMenuList-åå-nbsp-" 1627 class="header__submenu list-menu motion-reduce"><li class="sub-menu-grandchild"> 1628 <a id="HeaderMenu-åå-nbsp-ãã¬ããµã¼" 1629 href="/collections/dresser" 1630 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1631 > 1632 ãã¬ããµã¼ 1633 </a> 1634 </li>
1634<li class="sub-menu-grandchild"> 1635 <a id="HeaderMenu-åå-nbsp-ã¬ã¸ã«ã¦ã³ã¿ã¼-ã¬ã»ãã·ã§ã³" 1636 href="/collections/reception-counter" 1637 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1638 > 1639 ã¬ã¸ã«ã¦ã³ã¿ã¼ / ã¬ã»ãã·ã§ã³ 1640 </a> 1641 </li><li class="sub-menu-grandchild"> 1642 <a id="HeaderMenu-åå-nbsp-ãµãã³å®¶å ·" 1643 href="/collections/salon-furnitures" 1644 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1645 > 1646 ãµãã³å®¶å · 1647 </a> 1648 </li><li class="sub-menu-grandchild"> 1649 <a id="HeaderMenu-åå-nbsp-ã³ã³ã»ã³ããã©ã°" 1650 href="/collections/plug" 1651 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1652 > 1653 ã³ã³ã»ã³ããã©ã° 1654 </a> 1655 </li><li class="sub-menu-grandchild"> 1656 <a id="HeaderMenu-åå-nbsp-æ°åå" 1657 href="/collections/new-item" 1658 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1659 > 1660 æ°åå 1661 </a> 1662 </li></ul> 1663 </div></li><li class="sub-menu-child"> 1664 <div class="mateli_submenu_2"> 1665 <ul id="HeaderMenu-SubMenuList-åå-nbsp-" 1666 class="header__submenu list-menu motion-reduce"><li class="sub-menu-grandchild"> 1667 <a id="HeaderMenu-åå-nbsp-ãã©ã¼é¡-é¡" 1668 href="/collections/salon-mirror" 1669 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1670 > 1671 ãã©ã¼é¡/é¡ 1672 </a> 1673 </li><li class="sub-menu-grandchild"> 1674 <a id="HeaderMenu-åå-nbsp-ã·ã£ã³ãã¼ãã£ãããã" 1675 href="/collections/shampoo" 1676 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1677 > 1678 ã·ã£ã³ãã¼ãã£ãããã 1679 </a> 1680 </li><li class="sub-menu-grandchild"> 1681 <a id="HeaderMenu-åå-nbsp-ãã¤ã«ãã¼ãã«" 1682 href="/collections/nailtable" 1683 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1684 > 1685 ãã¤ã«ãã¼ãã« 1686 </a> 1687 </li><li class="sub-menu-grandchild"> 1688 <a id="HeaderMenu-åå-nbsp-ç §æ-é»ç" 1689 href="/collections/lights" 1690 class="header__menu-item list-menu__item link link--text focus-inset caption-large" 1691 > 1692 ç §æ/é»ç 1693 </a> 1694 </li></ul> 1695 </div></li></ul> 1696 </div> 1697 </details> 1698 </header-menu></li><li><a 1699 id="HeaderMenu-ã·ã§ããã¬ã¤ã" 1700 href="/pages/guide" 1701 class="header__menu-item list-menu__item link link--text focus-inset" 1702 1703 >
1704 <span 1705 >ã·ã§ããã¬ã¤ã</span> 1706 </a></li><li><a 1707 id="HeaderMenu-ãããã質å" 1708 href="/pages/question" 1709 class="header__menu-item list-menu__item link link--text focus-inset" 1710 1711 > 1712 <span 1713 >ãããã質å</span> 1714 </a></li></ul> 1715</nav> 1716�<div class="header__icons"> 1717 1718 1719<style> 1720 .header__icon span.search-svg { 1721 height: calc(100% - 16px); 1722 } 1723 1724/** Package 01 - 2025/02 **/ 1725.header__icon .icon { 1726 height: 20px; 1727 width: 20px; 1728 fill: none; 1729 vertical-align: middle; 1730 margin-right: 3px; 1731} 1732details .header__icon-close { 1733 display: none; 1734} 1735details[open] .header__icon-close { 1736 display: inline-block; 1737} 1738</style> 1739<details-modal class="header__search"> 1740 <details> 1741 <summary 1742 class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" 1743 aria-haspopup="dialog" 1744 aria-label="æ¤ç´¢" 1745 > 1746 <span class="search-svg"> 1747 <span class="svg-wrapper header__icon-search"><svg fill="none" class="icon icon-search" viewBox="0 0 18 19"><path fill="currentColor" fill-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 1 1 2.85 3.5a5.784 5.784 0 0 1 8.18 8.18m.26 1.12a6.78 6.78 0 1 1 .72-.7l5.4 5.4a.5.5 0 1 1-.71.7z" clip-rule="evenodd"/></svg> 1748</span> 1749 <span class="svg-wrapper header__icon-close"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 1750</span> 1751 </span> 1752 <div class="search-txt">ãµã¼ã</div> 1753 </summary> 1754 <div 1755 class="search-modal modal__content gradient" 1756 role="dialog" 1757 aria-modal="true" 1758 aria-label="æ¤ç´¢" 1759 > 1760 <div class="modal-overlay"></div> 1761 <div 1762 class="search-modal__content search-modal__content-bottom" 1763 tabindex="-1" 1764 ><predictive-search class="search-modal__form" data-loading-text="èªã¿è¾¼ã¿ä¸â¦"><form action="/search" method="get" role="search" class="search search-modal__form"> 1765 <div class="field"> 1766 <input 1767 class="search__input field__input" 1768 id="Search-In-Modal" 1769 type="search" 1770 name="q" 1771 value="" 1772 placeholder="æ¤ç´¢"role="combobox" 1773 aria-expanded="false" 1774 aria-owns="predictive-search-results" 1775 aria-controls="predictive-search-results" 1776 aria-haspopup="listbox" 1777 aria-autocomplete="list" 1778 autocorrect="off" 1779 autocomplete="off" 1780 autocapitalize="off" 1781 spellcheck="false"> 1782 <label class="field__label" for="Search-In-Modal">æ¤ç´¢</label> 1783 <input type="hidden" name="options[prefix]" value="last"> 1784 <button 1785 type="reset" 1786 class="reset__button field__button hidden" 1787 aria-label="æ¤ç´¢ã¯ã¼ããã¯ãªã¢ãã" 1788 > 1789 <span class="svg-wrapper"><svg fill="none" stroke="currentColor" class="icon icon-close" viewBox="0 0 18 18"><circle cx="9" cy="9" r="8.5" stroke-opacity=".2"/><path stroke-linecap="round" stroke-linejoin="round" d="M11.83 11.83 6.172 6.17M6.229 11.885l5.544-5.77"/></svg> 1790</span> 1791 </button> 1792 <button class="search__button field__button" aria-label="æ¤ç´¢"> 1793 <span class="svg-wrapper"><svg fill="none" class="icon icon-search" viewBox="0 0 18 19"><path fill="currentColor" fill-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 1 1 2.85 3.5a5.784 5.784 0 0 1 8.18 8.18m.26 1.12a6.78 6.78 0 1 1 .72-.7l5.4 5.4a.5.5 0 1 1-.71.7z" clip-rule="evenodd"/></svg> 1794</span> 1795 </button> 1796 </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search>Liquid error (snippets/header-search line 105): Could not find asset snippets/loading-spinner.liquid</div> 1797
1798 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button 1799 type="button" 1800 class="search-modal__close-button modal__close-button link link--text focus-inset" 1801 aria-label="éãã" 1802 > 1803 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 1804</span> 1805 </button> 1806 </div> 1807 </div> 1808 </details> 1809</details-modal> 1810�<a href="/account/login" class="header__icon header__icon--account link focus-inset small-hide medium-hide"> 1811 <account-icon> 1812 <span class="svg-wrapper"><svg 1813 xmlns="http://www.w3.org/2000/svg" 1814 aria-hidden="true" 1815 focusable="false" 1816 class="icon icon-account" 1817 fill="none" 1818 viewBox="0 0 18 19" 1819> 1820 <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35z" fill="currentColor"> 1821</svg> 1822</span> 1823 <div class="login-title">ãã°ã¤ã³</div> 1824 </account-icon> 1825 </a><a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble"> 1826 1827 <span class="svg-wrapper cart-empty"><?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 700 700"> <defs> <style> .cart_icon-1 { fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 26px; } </style> </defs><g> <g id="_cart_icon_layer_1" data-name="cart_icon_layer_1"> <path class="cart_icon-1" d="M160,116.7h490l-66.7,233.3H195.9M616.7,483.3H216.7L150,50H50M250,616.7c0,18.4-14.9,33.3-33.3,33.3s-33.3-14.9-33.3-33.3,14.9-33.3,33.3-33.3,33.3,14.9,33.3,33.3ZM616.7,616.7c0,18.4-14.9,33.3-33.3,33.3s-33.3-14.9-33.3-33.3,14.9-33.3,33.3-33.3,33.3,14.9,33.3,33.3Z"/> </g> </g></svg></span> 1828 1829 <span class="cart-title">ã«ã¼ã</span> 1830 <span class="visually-hidden">ã«ã¼ã</span></a> 1831<style> 1832 .menu-sub-arrow svg { 1833 width: 2.98vw; 1834 } 1835 .menu-sub-arrow .menu_icon2 { 1836 fill: var(--mateli-background-4); 1837 } 1838 .menu-sub-arrow .menu_icon1 { 1839 fill: white; 1840 } 1841 .sub-title_submenu:not(.selected) .menu-drawer_sub-title { 1842 display: none; 1843 } 1844 .sub-title_submenu.selected .menu-drawer_sub-title { 1845 width: 100%; 1846 padding-left: 5vw; 1847 display: flex; 1848 flex-direction: row; 1849 flex-wrap: wrap; 1850 justify-content: space-between; 1851 margin-top: 5px; 1852 } 1853 .sub-title_submenu .menu-sub-arrow { 1854 transform: rotate(0deg); 1855 transition: all 300ms 0s ease; 1856 } 1857 .sub-title_submenu.selected .menu-sub-arrow { 1858 transform: rotate(90deg); 1859 transition: all 300ms 0s ease; 1860 } 1861 .menu-drawer_sub-title .title-sub { 1862 width: calc((100% / 2) - 5px); 1863 } 1864 1865 .menu-drawer_sub-button { 1866 display: flex; 1867 flex-direction: row; 1868 justify-content: flex-start; 1869 align-items: center; 1870 column-gap: 15px; 1871 padding: 1vw 0; 1872 } 1873 1874 .menu-sub-arrow { 1875 height: fit-content; 1876 line-height: normal; 1877 } 1878 .menu-drawer_sub-title .title-sub a { 1879 padding: 5px 0; 1880 cursor: pointer; 1881 font-size: 3vw; 1882 letter-spacing: 0; 1883 } 1884 .menu-drawer__menu.has-submenu { 1885 } 1886 1887 .menu-drawer__navigation .menu-drawer__menu.has-submenu .menu-jp { 1888 margin-top: 4px; 1889 } 1890 1891 .menu-drawer__navigation .menu-drawer__menu.has-submenu .menu-sub-arrow { 1892 margin-top: 6px; 1893 } 1894 li:not(.sub-title_submenu) a { 1895 padding: 0; 1896 } 1897 a.breadcrumbs__link, 1898 li.breadcrumbs__item a { 1899 letter-spacing: 0.5px; 1900 font-size: 11.2px; 1901 } 1902 .sub-title_submenu.sub-title-contact.selected .title-sub { 1903 width: 100%; 1904 } 1905 .menu-drawer__navigation-2 { 1906 margin: 0 50px; 1907 padding: 35px 0; 1908 } 1909 nav.menu-drawer__navigation-2 li a, 1910 nav.menu-drawer__navigation-3 li a { 1911 font-size: 3.5vw; 1912 } 1913 .menu-header, 1914 .menu-button-wrapper, 1915 .menu-drawer__navigation, 1916 .menu-drawer__navigation-2, 1917 .menu-drawer__navigation-3 { 1918 padding: 5.5vw 0; 1919 margin: 0 6.2vw; 1920 } 1921 1922 .drawer__footer-submenu { 1923 display: none; 1924 } 1925 .menu-drawer__footer.selected .drawer__footer-submenu { 1926 display: flex; 1927 flex-direction: column; 1928 margin-top: 5px; 1929 } 1930 .drawer__footer-title span { 1931 font-size: 5vw; 1932 line-height: 4.8vw; 1933 } 1934 1935 ul.menu-drawer__menu.list-menu { 1936 padding: 1vw 0; 1937 } 1938 .menu-drawer__footer.drawer__footer-2 { 1939 padding: 6vw 0; 1940 } 1941 .drawer__footer-title.drawer__footer-subtitle { 1942 display: flex; 1943 column-gap: 15px; 1944 } 1945 @media screen and (min-width: 500px) { 1946 .menu-header, 1947 .menu-button-wrapper, 1948 .menu-drawer__navigation, 1949 .menu-drawer__navigation-2, 1950 .menu-drawer__navigation-3 { 1951 padding: 7.25vw 0; 1952 margin: 0 13.2vw; 1953 } 1954 .menu-drawer_sub-title .title-sub a { 1955 font-size: 2.7vw; 1956 } 1957 } 1958</style> 1959<header-drawer data-breakpoint='tablet'> 1960 <details id='Details-menu-drawer-container' class='menu-drawer-container'> 1961 <summary 1962 class='header__icon header__icon--menu header__icon--summary link focus-inset' 1963 aria-label='ã¡ãã¥ã¼' 1964 >
1965 <span class='menu-svg'><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-hamburger" viewBox="0 0 18 16"><path fill="currentColor" d="M1 .5a.5.5 0 1 0 0 1h15.71a.5.5 0 0 0 0-1zM.5 8a.5.5 0 0 1 .5-.5h15.71a.5.5 0 0 1 0 1H1A.5.5 0 0 1 .5 8m0 7a.5.5 0 0 1 .5-.5h15.71a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5"/></svg> 1966<svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 1967</span> 1968 <span class='menu-txt menu-menu'>ã¡ãã¥ã¼</span> 1969 <span class='menu-txt menu-close'>éãã</span> 1970 </summary> 1971 <div id='menu-drawer' class='gradient menu-drawer motion-reduce color-'> 1972 <div class='menu-drawer__inner-container'> 1973 <div class='menu-drawer__navigation-container'> 1974 <div class='menu-header'> 1975 <div class='menu-header-h2'>MENU</div> 1976 <span>ã¡ãã¥ã¼</span> 1977 </div> 1978 <div class='menu-button-wrapper'> 1979 <a 1980 href='/account/login' 1981 class='' 1982 > 1983 <div class='menu-button button-1'>ãã°ã¤ã³</div> 1984 </a> 1985 <a href='/account/register'> 1986 <div class='menu-button button-2'>æ°è¦ä¼å¡ç»é²</div> 1987 </a> 1988 <a href='/pages/recently-viewed-products' style='display: none;'> 1989 <div class='menu-button button-3'>é²è¦§å±¥æ´</div> 1990 </a> 1991 </div> 1992 <nav class='menu-drawer__navigation'> 1993 <ul class='menu-drawer__menu has-submenu list-menu' role='list'> 1994 <li> 1995 <a href='/'> 1996 <span class='menu-eng'>TOP</span> 1997 <span class='menu-jp'>ããããã¼ã¸</span> 1998 </a> 1999 </li> 2000 <li class='sub-title_submenu'> 2001 <div class='menu-drawer_sub-wrapper'> 2002 <div class='menu-drawer_sub-button'> 2003 <span class='menu-eng'>CATEGORIES</span> 2004 <span class='menu-jp'>ååã«ãã´ãªã¼</span> 2005 <div class='menu-sub-arrow'> 2006 <svg 2007 id='_menu_icon_2' 2008 data-name='menu_icon 2' 2009 xmlns='http://www.w3.org/2000/svg'
2010 viewBox='0 0 17.52 26.58' 2011 > 2012 <defs> 2013 <style> 2014 .menu_icon1 { 2015 fill: #4d4d4d; 2016 } 2017 .menu_icon2 { 2018 fill: #fff; 2019 } 2020 </style> 2021 </defs> 2022 <g id="text"> 2023 <g> 2024 <path class="menu_icon2" d="M2.65,0h12.21c1.46,0,2.65,1.19,2.65,2.65v21.27c0,1.46-1.19,2.65-2.65,2.65H2.65c-1.46,0-2.65-1.19-2.65-2.65V2.65C0,1.19,1.19,0,2.65,0Z"></path> 2025 <polygon class="menu_icon1" points="6.16 20.54 5.63 20.01 12.35 13.29 5.63 6.57 6.16 6.04 13.41 13.29 6.16 20.54"></polygon> 2026 </g> 2027 </g> 2028 </svg> 2029 </div> 2030 </div> 2031 <div class='menu-drawer_sub-title'> 2032 <div class='title-sub'> 2033 <a href='/collections/stylingchair'>ã¹ã¿ã¤ãªã³ã°ãã§ã¢</a> 2034 </div> 2035 <div class='title-sub'> 2036 <a href='/collections/dresser'>ãã¬ããµã¼</a> 2037 </div> 2038 <div class='title-sub'> 2039 <a href='/collections/reception-counter'>ã¬ã»ãã·ã§ã³ã«ã¦ã³ã¿ã¼</a> 2040 </div> 2041 <div class='title-sub'> 2042 <a href='/collections/shampoo'>ã·ã£ã³ãã¼ãã£ãããã</a> 2043 </div> 2044 <div class='title-sub'> 2045 <a href='/collections/salon-mirror'>ãã©ã¼é¡ / é¡</a> 2046 </div> 2047 <div class='title-sub'> 2048 <a href='/collections/wagon'>ã¯ã´ã³</a> 2049 </div> 2050 <div class='title-sub'> 2051 <a href='/collections/surface-counter'>ãã¼ãã« / ã«ã¦ã³ã¿ã¼</a> 2052 </div> 2053 <div class='title-sub'> 2054 <a href='/collections/stool'>ã¹ãã¼ã« / ã«ãããã§ã¢</a> 2055 </div> 2056 <div class='title-sub'> 2057 <a href='/collections/partition'>ãã¼ãã¼ã·ã§ã³</a> 2058 </div> 2059 <div class='title-sub'> 2060 <a href='/collections/chair'>ãã§ã¢ / å¾ åæ¤ å</a> 2061 </div> 2062 <div class='title-sub'> 2063 <a href='/collections/salon-furnitures'>ãµãã³å®¶å ·</a> 2064 </div> 2065 <div class='title-sub'> 2066 <a href='/collections/nailtable'>ãã¤ã«ãã¼ãã«</a> 2067 </div> 2068 <div class='title-sub'> 2069 <a href='/collections/signboard'>çæ¿</a> 2070 </div> 2071 <div class='title-sub'> 2072 <a href='/collections/dryer-holder'>ãã©ã¤ã¤ã¼ãã«ãã¼</a> 2073 </div> 2074 <div class='title-sub'> 2075 <a href='/collections/plug'>ã³ã³ã»ã³ããã©ã°</a> 2076 </div> 2077 <div class='title-sub'> 2078 <a href='/collections/lights'>ç §æ / é»ç</a> 2079 </div> 2080 <div class='title-sub'> 2081 <a href='/collections/interior-goods'>ã¤ã³ããªã¢é貨</a> 2082 </div> 2083 <div class='title-sub'> 2084 <a href='/collections/outlet'>ã¢ã¦ãã¬ãã</a> 2085 </div> 2086 <div class='title-sub'> 2087 <a href='/collections/new-item'>æ°åå</a> 2088 </div> 2089 </div> 2090 </div> 2091 </li> 2092 <li> 2093 <a href='/blogs/news'>
2094 <span class='menu-eng'>NEWS</span> 2095 <span class='menu-jp'>ãã¥ã¼ã¹</span> 2096 </a> 2097 </li> 2098 <li> 2099 <a href='/pages/mateli-video'> 2100 <span class='menu-eng'>VIDEOS</span> 2101 <span class='menu-jp'>åååç»</span> 2102 </a> 2103 </li> 2104 <li> 2105 <a href='/pages/reservation'> 2106 <span class='menu-eng'>SHOWROOM</span> 2107 <span class='menu-jp'>ã·ã§ã¼ã«ã¼ã </span> 2108 </a> 2109 </li> 2110 <li class='sub-title_submenu sub-title-contact'> 2111 <div class='menu-drawer_sub-wrapper'> 2112 <div class='menu-drawer_sub-button'> 2113 <span class='menu-eng'>CONTACT</span> 2114 <span class='menu-jp'>ãåãåãã</span> 2115 <div class='menu-sub-arrow'> 2116 <svg 2117 id='_menu_icon_2' 2118 data-name='menu_icon 2' 2119 xmlns='http://www.w3.org/2000/svg'
2120 viewBox='0 0 17.52 26.58' 2121 > 2122 <defs> 2123 <style> 2124 .menu_icon1 { 2125 fill: #4d4d4d; 2126 } 2127 .menu_icon2 { 2128 fill: #fff; 2129 } 2130 </style> 2131 </defs> 2132 <g id="text"> 2133 <g> 2134 <path class="menu_icon2" d="M2.65,0h12.21c1.46,0,2.65,1.19,2.65,2.65v21.27c0,1.46-1.19,2.65-2.65,2.65H2.65c-1.46,0-2.65-1.19-2.65-2.65V2.65C0,1.19,1.19,0,2.65,0Z"></path> 2135 <polygon class="menu_icon1" points="6.16 20.54 5.63 20.01 12.35 13.29 5.63 6.57 6.16 6.04 13.41 13.29 6.16 20.54"></polygon> 2136 </g> 2137 </g> 2138 </svg> 2139 </div> 2140 </div> 2141 <div class='menu-drawer_sub-title'> 2142 <div class='title-sub'> 2143 <a href='/pages/contact-maintenance-line'>åæä¸è¯ã»ã¡ã³ããã³ã¹ã»ä¿®ç</a> 2144 </div> 2145 <div class='title-sub'> 2146 <a href='/pages/support'>ãåãåãã</a> 2147 </div> 2148 </div> 2149 </div> 2150 </li> 2151 </ul> 2152 </nav> 2153 2154 <nav class='menu-drawer__navigation-3 '> 2155 <div class='menu-drawer__footer drawer__footer-1 sub-title_submenu selected'> 2156 <div class='drawer__footer-title drawer__footer-subtitle'> 2157 <span>ãè²·ãç©ã¬ã¤ã</span> 2158 <div class='menu-sub-arrow'> 2159 <svg 2160 id='_menu_icon_2' 2161 data-name='menu_icon 2' 2162 xmlns='http://www.w3.org/2000/svg'
2163 viewBox='0 0 17.52 26.58' 2164 > 2165 <defs> 2166 <style> 2167 .menu_icon1 { 2168 fill: #4d4d4d; 2169 } 2170 .menu_icon2 { 2171 fill: #fff; 2172 } 2173 </style> 2174 </defs> 2175 <g id="text"> 2176 <g> 2177 <path class="menu_icon2" d="M2.65,0h12.21c1.46,0,2.65,1.19,2.65,2.65v21.27c0,1.46-1.19,2.65-2.65,2.65H2.65c-1.46,0-2.65-1.19-2.65-2.65V2.65C0,1.19,1.19,0,2.65,0Z"></path> 2178 <polygon class="menu_icon1" points="6.16 20.54 5.63 20.01 12.35 13.29 5.63 6.57 6.16 6.04 13.41 13.29 6.16 20.54"></polygon> 2179 </g> 2180 </g> 2181 </svg> 2182 </div> 2183 </div> 2184 <ul class='menu-drawer__menu list-menu drawer__footer-submenu'> 2185 <li> 2186 <a href='/pages/guide'>ã·ã§ããã¬ã¤ã</a> 2187 </li> 2188 <li> 2189 <a href='/pages/question'>ãããã質åä¸è¦§</a> 2190 </li> 2191 <li> 2192 <a href='/policies/refund-policy'>è¿åã»äº¤æã«ã¤ãã¦</a> 2193 </li> 2194 <li> 2195 <a href='/policies/shipping-policy'>é éã»éæã«ã¤ãã¦</a> 2196 </li> 2197 <li> 2198 <a href='/pages/cad'>å³é¢ãã¦ã³ãã¼ã</a> 2199 </li> 2200 </ul> 2201 </div> 2202 <div class='menu-drawer__footer drawer__footer-2 sub-title_submenu'> 2203 <div class='drawer__footer-title drawer__footer-subtitle'> 2204 <span>ã客æ§ãµãã¼ã</span> 2205 <div class='menu-sub-arrow'> 2206 <svg 2207 id='_menu_icon_2' 2208 data-name='menu_icon 2' 2209 xmlns='http://www.w3.org/2000/svg'
2210 viewBox='0 0 17.52 26.58' 2211 > 2212 <defs> 2213 <style> 2214 .menu_icon1 { 2215 fill: #4d4d4d; 2216 } 2217 .menu_icon2 { 2218 fill: #fff; 2219 } 2220 </style> 2221 </defs> 2222 <g id="text"> 2223 <g> 2224 <path class="menu_icon2" d="M2.65,0h12.21c1.46,0,2.65,1.19,2.65,2.65v21.27c0,1.46-1.19,2.65-2.65,2.65H2.65c-1.46,0-2.65-1.19-2.65-2.65V2.65C0,1.19,1.19,0,2.65,0Z"></path> 2225 <polygon class="menu_icon1" points="6.16 20.54 5.63 20.01 12.35 13.29 5.63 6.57 6.16 6.04 13.41 13.29 6.16 20.54"></polygon> 2226 </g> 2227 </g> 2228 </svg> 2229 </div> 2230 </div> 2231 <ul class='menu-drawer__menu list-menu drawer__footer-submenu'> 2232 <li> 2233 <a href='/pages/contact-maintenance-line'>ä¿®çã®ãåãåãã</a> 2234 </li> 2235 <li> 2236 <a href='/pages/contact-2'>ãåãåãã</a> 2237 </li> 2238 <li> 2239 <a href='/pages/maintenance'>ã¡ã³ããã³ã¹</a> 2240 </li> 2241 <li> 2242 <a href='https://www.mateli.jp/forms/order_inquiries_and_stock_confirmation/'>è¦ç©æ¸ã»æ³¨æãã©ã¼ã </a> 2243 </li> 2244 <li> 2245 <a href='https://www.mateli.jp/forms/agency_quotation_and_order/index.php' 2246 >代çåºè¦ç©æ¸ã»æ³¨æãã©ã¼ã </a 2247 > 2248 </li> 2249 <li> 2250 <a href='https://cdn.shopify.com/s/files/1/0517/2337/0679/files/order_sheet_new2024.pdf?v=1728028347' 2251 >代çåºå°ç¨ãªã¼ãã¼ãã©ã¼ã </a 2252 > 2253 </li> 2254 <li> 2255 <a href='/pages/contract'>代çåºå¥ç´</a> 2256 </li> 2257 </ul> 2258 </div> 2259 <div class='menu-drawer__footer drawer__footer-3 sub-title_submenu'> 2260 <div class='drawer__footer-title drawer__footer-subtitle'> 2261 <span>ãããªã«ã¤ãã¦</span> 2262 <div class='menu-sub-arrow'> 2263 <svg 2264 id='_menu_icon_2' 2265 data-name='menu_icon 2' 2266 xmlns='http://www.w3.org/2000/svg'
2267 viewBox='0 0 17.52 26.58' 2268 > 2269 <defs> 2270 <style> 2271 .menu_icon1 { 2272 fill: #4d4d4d; 2273 } 2274 .menu_icon2 { 2275 fill: #fff; 2276 } 2277 </style> 2278 </defs> 2279 <g id="text"> 2280 <g> 2281 <path class="menu_icon2" d="M2.65,0h12.21c1.46,0,2.65,1.19,2.65,2.65v21.27c0,1.46-1.19,2.65-2.65,2.65H2.65c-1.46,0-2.65-1.19-2.65-2.65V2.65C0,1.19,1.19,0,2.65,0Z"></path> 2282 <polygon class="menu_icon1" points="6.16 20.54 5.63 20.01 12.35 13.29 5.63 6.57 6.16 6.04 13.41 13.29 6.16 20.54"></polygon> 2283 </g> 2284 </g> 2285 </svg> 2286 </div> 2287 </div> 2288 <ul class='menu-drawer__menu list-menu drawer__footer-submenu'> 2289 <li> 2290 <a href='https://www.mateli.jp/'>ã³ã¼ãã¬ã¼ããµã¤ã</a> 2291 </li> 2292 <li> 2293 <a href='https://www.mateli.jp/webcatalog/index.html'>WEB ã«ã¿ãã°</a> 2294 </li> 2295 <li> 2296 <a href='https://www.mateli.jp/forms/catalog/index.php'>ã«ã¿ãã°è«æ±</a> 2297 </li> 2298 <li> 2299 <a href='https://www.mateli.jp/forms/samples_request/index.php'>ãµã³ãã«è«æ±</a> 2300 </li> 2301 <li> 2302 <a href='/pages/mag-register'>ã¡ã¼ã«ãã¬ã¸ã³ç»é²</a> 2303 </li> 2304 <li> 2305 <a href='https://g.page/r/CaJtR0QSZghGEAE/review'>å£ã³ããåéä¸</a> 2306 </li> 2307 </ul> 2308 </div> 2309 </nav> 2310 </div> 2311 </div> 2312 </div> 2313 </details> 2314</header-drawer>
2315<script type='text/javascript'> 2316 window.addEventListener('load', function () { 2317 const subTitles = document.querySelectorAll('.sub-title_submenu'); 2318 2319 subTitles.forEach(function (subTitle) { 2320 subTitle.addEventListener('click', function (event) { 2321 // Only toggle if the click is not on a link inside the element 2322 if (!event.target.closest('a')) { 2323 subTitle.classList.toggle('selected'); 2324 } 2325 }); 2326 }); 2327 }); 2328</script>
2328 2329</div> 2330 </header> 2331</sticky-header>
2331<script> 2332 class StickyHeader extends HTMLElement { 2333 constructor() { 2334 super(); 2335 } 2336 2337 connectedCallback() { 2338 this.header = document.querySelector('.section-header'); 2339 this.headerIsAlwaysSticky = this.getAttribute('data-sticky-type') === 'always' || this.getAttribute('data-sticky-type') === 'reduce-logo-size'; 2340 this.headerBounds = {}; 2341 2342 this.setHeaderHeight(); 2343 2344 window.matchMedia('(max-width: 990px)').addEventListener('change', this.setHeaderHeight.bind(this)); 2345 2346 if (this.headerIsAlwaysSticky) { 2347 this.header.classList.add('shopify-section-header-sticky'); 2348 }; 2349 2350 this.currentScrollTop = 0; 2351 this.preventReveal = false; 2352 this.predictiveSearch = this.querySelector('predictive-search'); 2353 2354 this.onScrollHandler = this.onScroll.bind(this); 2355 this.hideHeaderOnScrollUp = () => this.preventReveal = true; 2356 2357 this.addEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp); 2358 window.addEventListener('scroll', this.onScrollHandler, false); 2359 2360 this.createObserver(); 2361 } 2362 2363 setHeaderHeight() { 2364 document.documentElement.style.setProperty('--header-height', `${this.header.offsetHeight}px`); 2365 } 2366 2367 disconnectedCallback() { 2368 this.removeEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp); 2369 window.removeEventListener('scroll', this.onScrollHandler); 2370 } 2371 2372 createObserver() { 2373 let observer = new IntersectionObserver((entries, observer) => { 2374 this.headerBounds = entries[0].intersectionRect; 2375 observer.disconnect(); 2376 }); 2377 2378 observer.observe(this.header); 2379 } 2380 2381 onScroll() { 2382 const scrollTop = window.pageYOffset || document.documentElement.scrollTop; 2383 2384 if (this.predictiveSearch && this.predictiveSearch.isOpen) return; 2385 2386 if (scrollTop > this.currentScrollTop && scrollTop > this.headerBounds.bottom) { 2387 this.header.classList.add('scrolled-past-header'); 2388 if (this.preventHide) return; 2389 requestAnimationFrame(this.hide.bind(this)); 2390 } else if (scrollTop < this.currentScrollTop && scrollTop > this.headerBounds.bottom) { 2391 this.header.classList.add('scrolled-past-header'); 2392 if (!this.preventReveal) { 2393 requestAnimationFrame(this.reveal.bind(this)); 2394 } else { 2395 window.clearTimeout(this.isScrolling); 2396 2397 this.isScrolling = setTimeout(() => { 2398 this.preventReveal = false; 2399 }, 66); 2400 2401 requestAnimationFrame(this.hide.bind(this)); 2402 } 2403 } else if (scrollTop <= this.headerBounds.top) { 2404 this.header.classList.remove('scrolled-past-header'); 2405 requestAnimationFrame(this.reset.bind(this)); 2406 } 2407 2408 this.currentScrollTop = scrollTop; 2409 } 2410 2411 hide() { 2412 if (this.headerIsAlwaysSticky) return; 2413 this.header.classList.add('shopify-section-header-hidden', 'shopify-section-header-sticky'); 2414 this.closeMenuDisclosure(); 2415 this.closeSearchModal(); 2416 } 2417 reveal() { 2418 if (this.headerIsAlwaysSticky) return; 2419 this.header.classList.add('shopify-section-header-sticky', 'animate'); 2420 this.header.classList.remove('shopify-section-header-hidden'); 2421 } 2422 2423 reset() { 2424 if (this.headerIsAlwaysSticky) return; 2425 this.header.classList.remove('shopify-section-header-hidden', 'shopify-section-header-sticky', 'animate'); 2426 } 2427 2428 closeMenuDisclosure() { 2429 this.disclosures = this.disclosures || this.header.querySelectorAll('header-menu'); 2430 this.disclosures.forEach(disclosure => typeof disclosure.close === 'function' && disclosure.close()); 2431 } 2432 2433 closeSearchModal() { 2434 this.searchModal = this.searchModal || this.header.querySelector('details-modal'); 2435 if (this.searchModal && typeof this.searchModal.close === 'function') this.searchModal.close(false); 2436 } 2437 } 2438 2439 customElements.define('sticky-header', StickyHeader); 2440</script>
2440 2441
2442<script type="application/ld+json"> 2443 { 2444 "@context": "http://schema.org", 2445 "@type": "Organization", 2446 "name": "mateli", 2447 2448 "logo": "https:\/\/furniture.mateli.jp\/cdn\/shop\/files\/mateli_logo_500373e0-a218-465a-ae10-8dbdcc905cc5_145x_2x_1.webp?v=1677212524\u0026width=500", 2449 2450 "sameAs": [ 2451 "", 2452 "https:\/\/www.facebook.com\/mateli.jp\/", 2453 "https:\/\/jp.pinterest.com\/mateli0214\/", 2454 "https:\/\/www.instagram.com\/mateli.co\/?hl=ja", 2455 "", 2456 "", 2457 "", 2458 "", 2459 "" 2460 ], 2461 "url": "https:\/\/furniture.mateli.jp\/pages\/cad" 2462 } 2463</script>
2463 2464</div> 2465<!-- END sections: header-group --> 2466 2467 <main 2468 id='MainContent' 2469 class='content-for-layout focus-none' 2470 role='main' 2471 tabindex='-1' 2472 > 2473 <style> 2474 .breadcrumbs { 2475 text-decoration: none; 2476 width: 100%; 2477 margin-top: 6px; 2478 } 2479 .breadcrumbs a { 2480 text-decoration: none; 2481 color: var(--mateli-text-1); 2482 } 2483 2484 .breadcrumbs__list { 2485 list-style-type: none; 2486 margin: 0; 2487 padding: 0; 2488 line-height: 18px; 2489 margin-bottom: 8px; 2490 margin-top: 2px; 2491 display: flex; 2492 flex-wrap: wrap; 2493 flex-direction: row; 2494 align-items: center; 2495 justify-content: flex-start; 2496 gap: 5px; 2497 } 2498 2499 .breadcrumbs__item { 2500 display: flex; 2501 flex-direction: row; 2502 align-items: center; 2503 gap: 5px; 2504 line-height: 10px; 2505 width: fit-content; 2506 } 2507 .breadcrumbs__item a { 2508 text-decoration: none; 2509 color: black; 2510 } 2511 .breadcrumbs__item:not(:last-child):after { 2512 border-style: solid; 2513 border-width: 0.1em 0.1em 0 0; 2514 content: ''; 2515 display: inline-block; 2516 height: 0.2em; 2517 margin: 0; 2518 position: relative; 2519 transform: rotate(45deg); 2520 vertical-align: middle; 2521 width: 0.2em;
2522 margin-top: 1px; 2523 } 2524 2525 .breadcrumbs__link { 2526 text-decoration: none; 2527 color: black; 2528 font-family: 2529 var(--font-body-family), 2530 -apple-system, 2531 BlinkMacSystemFont, 2532 Segoe UI, 2533 Roboto, 2534 Ubuntu, 2535 Helvetica Neue, 2536 sans-serif, 2537 Apple Color Emoji, 2538 Segoe UI Emoji, 2539 Segoe UI Symbol; 2540 font-size: 0.8em; 2541 } 2542 2543 .breadcrumbs__link[aria-current='page'] { 2544 color: inherit; 2545 font-weight: normal; 2546 text-decoration: none; 2547 } 2548 2549 .breadcrumbs__link[aria-current='page']:hover, 2550 .breadcrumbs__link[aria-current='page']:focus { 2551 text-decoration: underline; 2552 } 2553 @media screen and (min-width: 900px) { 2554 .breadcrumbs__list { 2555 margin-top: 10px; 2556 } 2557 } 2558 </style><nav 2559 class='breadcrumbs page-width' 2560 role='navigation' 2561 aria-label='breadcrumbs' 2562 > 2563 <ol class='breadcrumbs__list'> 2564 <li class='breadcrumbs__item'> 2565 <a class='breadcrumbs__link' href='/'>ãã¼ã </a> 2566 </li><li class='breadcrumbs__item'> 2567 <a 2568 class='breadcrumbs__link' 2569 href='/pages/cad' 2570 aria-current='page' 2571 >CADãã¼ã¿ãã¦ã³ãã¼ã IDçºè¡ç³è«</a> 2572 </li></ol> 2573 </nav>
2573<script type='application/ld+json'> 2574 { 2575 "@context": "https://schema.org", 2576 "@type": "BreadcrumbList", 2577 "itemListElement": [{ 2578 "@type": "ListItem", 2579 "position": 1, 2580 "name": "ãã¼ã ", 2581 "item": "https:\/\/furniture.mateli.jp\/" 2582 },{ 2583 "@type": "ListItem", 2584 "position": 2, 2585 "name": "CADãã¼ã¿ãã¦ã³ãã¼ã IDçºè¡ç³è«", 2586 "item": "https:\/\/furniture.mateli.jp\/pages\/cad" 2587 }] 2588 } 2589 </script>
2589 2590 <section id="shopify-section-template--23888047210754__main" class="shopify-section section"><link rel="stylesheet" href="//furniture.mateli.jp/cdn/shop/t/204/assets/section-main-page.css?v=171954480266013350391790902731" media="print" onload="this.media='all'"> 2591<link rel="stylesheet" href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-rte.css?v=73320129801962619391790902730" media="print" onload="this.media='all'"> 2592 2593<noscript><link href="//furniture.mateli.jp/cdn/shop/t/204/assets/section-main-page.css?v=171954480266013350391790902731" rel="stylesheet" type="text/css" media="all" /></noscript> 2594<noscript><link href="//furniture.mateli.jp/cdn/shop/t/204/assets/component-rte.css?v=73320129801962619391790902730" rel="stylesheet" type="text/css" media="all" /></noscript><style data-shopify>.section-template--23888047210754__main-padding { 2595 padding-top: 21px; 2596 padding-bottom: 21px; 2597 } 2598 2599 .delivery_table tr:nth-child(odd) { 2600 background-color: #eee; 2601 } 2602 2603 @media screen and (min-width: 750px) { 2604 .section-template--23888047210754__main-padding { 2605 padding-top: 28px; 2606 padding-bottom: 28px; 2607 } 2608 }</style><div class="page-width page-width--narrow section-template--23888047210754__main-padding"> 2609 2610 <h1 class="main-page-title page-title h0"> 2611 CADãã¼ã¿ãã¦ã³ãã¼ã IDçºè¡ç³è« 2612 </h1> 2613 2614 <div class="rte"> 2615 <style><!-- 2616.form-signin { 2617 width: 100%; 2618 max-width: 640px; 2619 margin: 0 auto; 2620 letter-spacing: 0.05em; 2621 padding: 15px; 2622 font-size: 1.01rem; 2623 line-height: 1.5; 2624 color: #212529; 2625 font-family: "Yu Gothic", "游ã´ã·ãã¯", YuGothic, "ãã©ã®ãè§ã´ Pro", 2626 "Hiragino Kaku Gothic Pro", "ã¡ã¤ãªãª", "Meiryo", sans-serif; 2627 } 2628 .header-img { 2629 text-align: center; 2630 margin-bottom: 1.5rem; 2631 display: inline-block; 2632 width: 100%; 2633 } 2634 .header-img img { 2635 margin: auto; 2636 } 2637 .CADform h2 { 2638 text-align: center; 2639 margin: 3rem 0 2rem; 2640 font-weight: 500; 2641 line-height: 1.2; 2642 border: 0; 2643 color: black; 2644 } 2645 .login_btn { 2646 text-align: center; 2647 margin-bottom: 1rem; 2648 } 2649 .login_btn a { 2650 display: inline-block; 2651 border: 1px solid #ced4da; 2652 padding: 1rem 2rem; 2653 margin-bottom: 2rem; 2654 color: #007bff !important; 2655 text-decoration: none !important; 2656 background-color: transparent; 2657 } 2658 .small { 2659 font-size: 90%; 2660 font-weight: 400; 2661 text-align: left; 2662 letter-spacing: 0.1em; 2663 } 2664 h5 span.mandatory { 2665 font-size: 0.7rem; 2666 background-color: #ff0000; 2667 padding: 0.4rem 0.7rem; 2668 margin-left: 1rem; 2669 color: #fff; 2670 } 2671 hr { 2672 margin-bottom: 1rem; 2673 margin-top: 1rem; 2674 border: 0; 2675 border-top: 1px solid rgba(0, 0, 0, 0.1); 2676 } 2677 p { 2678 margin-top: 0; 2679 margin-bottom: 1rem; 2680 } 2681 .rte h5 { 2682 margin: 2.2em 0 0.7em; 2683 font-weight: bold; 2684 font-size: 1.25rem; 2685 color: black; 2686 } 2687 label { 2688 display: inline-block; 2689 margin-bottom: 0.5rem; 2690 } 2691 .form-control { 2692 display: block; 2693 width: 100%; 2694 line-height: 1.5; 2695 color: #495057; 2696 background-color: #fff; 2697 background-clip: padding-box; 2698 border: 1px solid #ced4da; 2699 border-radius: 0.25rem; 2700 transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; 2701 } 2702 .form-signin .form-control { 2703 position: relative; 2704 height: auto; 2705 padding: 10px; 2706 font-size: 16px; 2707 box-sizing: border-box; 2708 } 2709 .form-control:focus { 2710 color: #495057; 2711 background-color: #fff; 2712 border-color: #80bdff; 2713 outline: 0; 2714 box-shadow: 0 0 0 0.2rem rgb(0 123 255 / 25%); 2715 } 2716 .row { 2717 margin-bottom: 3rem; 2718 } 2719 .text-danger { 2720 color: #dc3545; 2721 } 2722 .btn-group-lg > .btn, 2723 .btn-lg { 2724 padding: 0.5rem 1rem; 2725 font-size: 1.25rem; 2726 line-height: 1.5; 2727 border-radius: 0.3rem; 2728 } 2729 .btn-primary { 2730 color: #fff; 2731 background-color: #007bff; 2732 border-color: #007bff; 2733 } 2734 .btn-primary.disabled, 2735 .btn-primary:disabled { 2736 color: #fff; 2737 background-color: #007bff; 2738 border-color: #007bff; 2739 opacity: 0.65; 2740 } 2741 .btn-block { 2742 display: block; 2743 width: 100%; 2744 } 2745 .checkbox { 2746 margin-bottom: 3rem; 2747 width: 100%; 2748 border: 0; 2749 height: auto; 2750 margin-top: 2rem; 2751 box-shadow: none; 2752 } 2753 .scroll.small { 2754 border-top: 1px solid #ddd; 2755 padding-top: 2rem; 2756 margin-top: 1rem; 2757 margin-bottom: 2rem; 2758 } 2759 p.mt-5.mb-5.text-center { 2760 margin: 3rem 0 0 0; 2761 } 2762 iframe[src^="https://docs.google.com/forms/d/e"] 2763 { 2764 width: 100%; 2765 } 2766 #CADthankyou { 2767 display: none; 2768 } 2769 .CADform { 2770 max-width: 640px; 2771 margin: auto; 2772 } 2773 2774 @media screen and (max-width: 675px) { 2775 #iframeCAD { 2776 height: 3730px; 2777 } 2778 p.mt-5.mb-5.text-center { 2779 margin: 0; 2780 } 2781 } 2782 @media screen and (max-width: 520px) { 2783 #iframeCAD { 2784 height: 3765px; 2785 } 2786 } 2787 @media screen and (max-width: 490px) { 2788 #iframeCAD { 2789 height: 3900px; 2790 } 2791 } 2792 @media screen and (max-width: 430px) { 2793 #iframeCAD { 2794 height: 4020px; 2795 } 2796 } 2797 @media screen and (max-width: 400px) { 2798 #iframeCAD { 2799 height: 4100px; 2800 } 2801 } 2802 @media screen and (max-width: 375px) { 2803 #iframeCAD { 2804 height: 4240px; 2805 } 2806 } 2807 @media screen and (max-width: 340px) { 2808 #iframeCAD { 2809 height: 4440px; 2810 } 2811 } 2812 .hidden { 2813 display: none!important; 2814 } 2815 .visible { 2816 display: block!important; 2817 } 2818--></style>
2819<script type="text/javascript">// <![CDATA[ 2820var count = 0; 2821 //alert("cout first : " + count); 2822// ]]></script>
2822 2823<div class="CADform"> 2824<div class="header-img"> 2825<p class="login_btn"><a href="https://www.mateli.jp/cad/download">â« IDããæã¡ã®æ¹ã¯ãã¡ããããã°ã¤ã³</a></p> 2826<p class="small">CADãã¼ã¿ãã¦ã³ãã¼ãã®ãå©ç¨ã叿ãããæ¹ã¯ãä¸è¨ãã©ã¼ã ããå ¥åå¾ãéä¿¡ãã¿ã³ãæ¼ãã¦ãã ããããã©ã¼ã ã®è¨å ¥æ¼ããããå ´åããã¦ã³ãã¼ãã«å¿ è¦ãªãã¹ã¯ã¼ãçãå±ãã¾ããã®ã§ã注æãã ããã</p> 2827<hr class=""> 2828<iframe src="https://docs.google.com/forms/d/e/1FAIpQLSfQxzStfn9ypu0LL1bln2fQCCUKt38Gjvfj3Ab_xrhqyHcNDQ/viewform?embedded=true" width="640" height="3740" frameborder="0" marginheight="0" marginwidth="0" id="iframeCAD" scrolling="no" onload="onMyFrameLoad(this)">Loadingâ¦</iframe> 2829<div id="CADthankyou"> 2830<h5>ãåçãããã¨ããããã¾ãã</h5> 2831<p>IDã¨ãã¹ã¯ã¼ããçºè¡ãããã¾ãããã¡ã¼ã«ãã確èªãã ããã¾ãã</p> 2832</div> 2833<p class="mt-5 mb-5 text-muted text-center small">Copyright 2018 mateli . All Rights Reserved</p> 2834</div>
2835<script type="text/javascript">// <![CDATA[ 2836//If the iframe load again after the initialisation, then its complete 2837 function onMyFrameLoad() { 2838 //alert("count out : " + count); 2839 count++; 2840 if (count > 1) { 2841 //alert("count int : " + count); 2842 2843 var iframe = document.getElementById("iframeCAD"); 2844 var thankyou = document.getElementById("CADthankyou"); 2845 iframe.classList.toggle("hidden"); 2846 thankyou.classList.toggle("visible"); 2847 } 2848 } 2849// ]]></script>
2849 2850</div> 2851 </div> 2852</div> 2853 2854 2855<style> #shopify-section-template--23888047210754__main .h0 {font-size: 2em; text-align: center;} #shopify-section-template--23888047210754__main .rte h6 {margin: 2.5em 0 0.6em; font-family: "ITC Avant Garde Gothic", sans-serif; font-size: 15px; padding: 0.5em 0; border-top: 2px solid #534842; border-bottom: 2px solid #534842;} </style></section><section id="shopify-section-template--23888047210754__17364041759039079a" class="shopify-section section"><div class="page-width"><div id="shopify-block-AWjJuZHNKR09lS24wN__forms_inline_h7kjKj" class="shopify-block shopify-app-block"><div 2856 id='AWjJuZHNKR09lS24wN__forms_inline_h7kjKj' 2857 data-form-root='true' 2858 data-forms-id='forms-root-' 2859 data-forms-text-color='#202020' 2860 data-forms-button-background-color='#202020' 2861 data-forms-button-label-color='#FFFFFF' 2862 data-forms-links-color='#1878B9' 2863 data-forms-errors-color='#E02229' 2864 data-forms-text-alignment='center' 2865 data-forms-alignment='center' 2866 data-forms-padding-top='0' 2867 data-forms-padding-right='0' 2868 data-forms-padding-bottom='0' 2869 data-forms-padding-left='0' 2870></div> 2871
2872<script> 2873 window['ShopifyForms'] = { 2874 ...window['ShopifyForms'], 2875 currentPageType: "page" 2876 }; 2877</script>
2877 2878 2879 2880</div>�</div> 2881 2882 2883</section>�</main> 2884 2885 <!-- BEGIN sections: footer-group --> 2886<div id="shopify-section-sections--23888045375746__footer_2_MLkJHY" class="shopify-section shopify-section-group-footer-group"><style> 2887 /* ========================================= 2888 1. GLOBAL LAYOUT & WRAPPERS 2889 ========================================= */ 2890 .shopify-section-group-footer-group { 2891 background-color: #787A82; 2892 padding: calc(var(--section-padding-h) / 2 ) var(--section-padding-w); 2893 } 2894 2895 .footer-mateli-wrapper { 2896 max-width: var(--page-width); 2897 margin: auto; 2898 display: grid; 2899 grid-template-areas: 2900 "social" 2901 "logo" 2902 "menu" 2903 "copyright"; 2904 } 2905 2906 .shopify-section-group-footer-group a:hover { 2907 color: white; 2908 } 2909 2910 /* ========================================= 2911 2. LOGO SECTION 2912 ========================================= */ 2913 .footer-logo { 2914 grid-area: logo; 2915 text-align: center; 2916 margin-top: 24px; 2917 } 2918 2919 .footer-logo svg { 2920 max-width: 150px; 2921 width: 50vw; 2922 } 2923 2924 /* ========================================= 2925 3. SOCIAL MEDIA ICONS 2926 ========================================= */ 2927 .footer-block.footer-1 { 2928 padding-top: 2.2vw; 2929 grid-area: social; 2930 } 2931 2932 .list-unstyled.list-social { 2933 display: flex; 2934 flex-direction: row; 2935 justify-content: center; 2936 column-gap: 3.4vw; 2937 } 2938 2939 .list-social__item svg { 2940 width: 22px; 2941 color: white; 2942 height: 22px; 2943 } 2944 2945 /* ========================================= 2946 4. FOOTER MENU SYSTEM 2947 ========================================= */ 2948 /* --- Menu Wrapper --- */ 2949 .footer-menu-wrapper { 2950 display: flex; 2951 flex-direction: row; 2952 justify-content: space-between; 2953 flex-wrap: wrap; 2954 column-gap: 2px; 2955 padding: 23px 0 30px 0; 2956 cursor: pointer; 2957 grid-area: menu; 2958 border-bottom: 1px solid white; 2959 } 2960 2961 /* --- Menu Titles & Accordion Triggers --- */ 2962 .footer-menu-title { 2963 color: white; 2964 font-size: 2.72vw; 2965 text-align: left; 2966 display: flex; 2967 justify-content: center; 2968 column-gap: 2vw; 2969 align-items: center; 2970 height: fit-content; 2971 width: calc(33% - 5px); 2972 } 2973 2974 /* Arrow Animation */ 2975 .footer-menu-title-arrow { 2976 height: max-content; 2977 display: flex; 2978 flex-direction: column; 2979 flex-wrap: wrap; 2980 align-content: center; 2981 } 2982 2983 .footer-menu-title-arrow svg { 2984 width: 10px; 2985 height: 15px; 2986 } 2987 2988 .footer-menu-title.selected .footer-menu-title-arrow { 2989 transform: rotate(90deg); 2990 margin-left: 1px; 2991 } 2992 2993 .footer-menu-title.selected .footer-menu-title-block { 2994 border-bottom: 1px solid; 2995 } 2996 2997 /* --- Menu Links & Content --- */ 2998 .footer-block__details-content:not(.selected) { 2999 display: none; 3000 } 3001 3002 .footer-block__details-content.selected { 3003 order: 3; 3004 width: 100%; 3005 display: flex; 3006 flex-direction: row; 3007 justify-content: flex-start; 3008 flex-wrap: wrap; 3009 column-gap: 8px; 3010 margin-top: 14px; 3011 height: fit-content; 3012 } 3013 3014 .footer-block__details-content li { 3015 text-align: center; 3016 padding: 6px 0px; 3017 width: 100%; 3018 } 3019 3020 .footer-block__details-content li a { 3021 font-size: 2.5vw; 3022 color: white; 3023 text-align: center; 3024 width: 100%; 3025 padding: 0; 3026 display: block; 3027 font-weight: 400; 3028 } 3029 3030 /* ========================================= 3031 5. SUB-FOOTER (Copyright & Links) 3032 ========================================= */ 3033 .footer-subs { 3034 display: flex; 3035 flex-direction: column; 3036 align-items: center; 3037 row-gap: 10px; 3038 padding-bottom: 1vw; 3039 grid-area: copyright; 3040 } 3041 3042 .footer-subs a { 3043 width: calc(50% - 3px); 3044 text-align: center; 3045 font-size: 10.2px; 3046 color: white; 3047 } 3048 3049 .sub-menu { 3050 display: flex; 3051 flex-direction: row; 3052 justify-content: space-between; 3053 gap: 5px; 3054 color: white; 3055 margin-top: 20px; 3056 flex-wrap: wrap; 3057 align-items: center; 3058 width: 100%; 3059 } 3060 3061 .sub-copyright { 3062 text-align: center; 3063 color: white; 3064 } 3065 3066 .sub-copyright span { 3067 color: white; 3068 font-size: 3.5vw; 3069 } 3070 3071 /* ========================================= 3072 6. SPECIFIC OVERRIDES & ALIGNMENT 3073 ========================================= */ 3074 .footer-title-1 { grid-area: title1; } 3075 .footer-title-2 { grid-area: title2; } 3076 .footer-title-3 { grid-area: title3; } 3077 3078 .footer-menu-title.footer-title-1 { justify-content: flex-start; } 3079 .footer-menu-title.footer-title-2 { justify-content: center; } 3080 .footer-menu-title.footer-title-3 { justify-content: flex-end; } 3081 3082 /* ========================================= 3083 7. UNCLASSIFIED / OBSCURE CSS 3084 ========================================= */ 3085 #footer-block-1 a { 3086 text-align: left; 3087 } 3088 #footer-block-3 a { 3089 text-align: right; 3090 } 3091 3092 /* ========================================= 3093 8. MEDIA QUERIES 3094 ========================================= */ 3095 @media screen and (min-width: 450px) { 3096 .footer-menu-title, .sub-copyright span { 3097 font-size: 2.6vw; 3098 } 3099 .footer-subs a { 3100 width: fit-content; 3101 font-size: 11px; 3102 } 3103 3104 .footer-block__details-content li a { 3105 font-size: 2.4vw; 3106 } 3107 } 3108 3109 @media screen and (min-width: 500px) { 3110 .footer-menu-title { 3111 font-size: 2.6vw; 3112 } 3113 .sub-copyright span { 3114 font-size: 2.6vw; 3115 } 3116 .footer-block__details-content li a { 3117 font-size: 2.5vw; 3118 } 3119 } 3120 3121 @media screen and (min-width: 500px) { 3122 .footer-subs a { 3123 font-size: 13px; 3124 } 3125 } 3126 3127 @media screen and (min-width: 650px) { 3128 .footer-menu-title { 3129 font-size: 2.2vw; 3130 } 3131 .footer-subs a, .sub-copyright span { 3132 font-size: 2.2vw; 3133 } 3134 .footer-block__details-content li a { 3135 font-size: 1.82vw; 3136 } 3137 } 3138 3139 @media screen and (min-width: 900px) { 3140 .footer-subs { 3141 display: flex; 3142 flex-direction: row-reverse; 3143 justify-content: space-between; 3144 margin: 0; 3145 padding: 0; 3146 width: 100%; 3147 order: 3; 3148 border-top: 1px solid white; 3149 row-gap: 22px; 3150 } 3151 .footer-menu-wrapper { 3152 display: flex; 3153 flex-direction: row; 3154 flex-wrap: wrap; 3155 justify-content: flex-end; 3156 column-gap: 1vw; 3157 } 3158 3159 .footer-logo { 3160 display: block; 3161 width: 35%; 3162 order: 2; 3163 margin-top: 0;
3164 text-align: left; 3165 } 3166 .footer-logo svg { 3167 max-width: 200px; 3168 margin-top: 1vw; 3169 } 3170 .footer-subs a, .sub-copyright span { 3171 font-size: 12px; 3172 } 3173 3174 .footer-menu-wrapper { 3175 width: 65%; 3176 order: 2; 3177 border-bottom: 0; 3178 padding: 0; 3179 } 3180 3181 .footer-block.footer-1 { 3182 width: 100%; 3183 order: 3; 3184 padding-top: 0; 3185 } 3186 li:not(.sub-title_submenu) a { 3187 padding: 0; 3188 } 3189 .footer-mateli-wrapper { 3190 display: flex; 3191 flex-direction: row; 3192 justify-content: space-between; 3193 flex-wrap: wrap; 3194 } 3195 3196 .list-unstyled.list-social { 3197 column-gap: 1.6vw; 3198 justify-content: flex-start; 3199 } 3200 .footer-menu-title { 3201 order: 1; 3202 margin: 0; 3203 padding: 0 0.5vw 0 0; 3204 font-size: 1.5vw; 3205 text-align: left; 3206 justify-content: flex-start; 3207 } 3208 3209 .footer-block__details-content:not(.selected) { 3210 display: block; 3211 order: 3; 3212 } 3213 3214 .footer-menu-title .footer-menu-title-block { 3215 border-bottom: 1px solid; 3216 padding-right: 0; 3217 width: 100%; 3218 font-size: 1.7vw; 3219 } 3220 .footer-menu-title-arrow { 3221 display: none; 3222 } 3223 .footer-block__details-content.selected { 3224 display: flex; 3225 flex-direction: column; 3226 margin-top: 0; 3227 } 3228 3229 .footer-block__details-content li { 3230 width: 100%; 3231 text-align: left; 3232 } 3233 3234 .footer-block__details-content li a { 3235 font-size: 12px; 3236 text-align: left; 3237 } 3238 3239 .footer-block__details-content#footer-block-1, .footer-title-1 { 3240 width: calc(31% - 2.48vw); 3241 } 3242 .footer-block__details-content#footer-block-2, .footer-title-2 { 3243 width: calc(39% - 0.15vw); 3244 } 3245 .footer-block__details-content#footer-block-3, .footer-title-3 { 3246 width: calc(33% - 3.61vw); 3247 } 3248 #footer-block-3 a { 3249 text-align: left; 3250 } 3251 .sub-menu, .sub-copyright { 3252 margin-top: 10px; 3253 } 3254 .list-social__item svg { 3255 width: 32px; 3256 color: white; 3257 height: 32px; 3258 } 3259 .sub-copyright { 3260 width: 35%; 3261 text-align: left; 3262 } 3263 3264 .sub-menu { 3265 width: calc(65% - 20px); 3266 justify-content: flex-end; 3267 gap: 2.2em; 3268 } 3269 } 3270 3271 @media screen and (min-width: 1200px) { 3272 .footer-block.footer-1 { 3273 padding: 5px 0; 3274 } 3275 3276 .footer-subs a, .sub-copyright span { 3277 font-size: 14px; 3278 } 3279 3280 .footer-block__details-content li a { 3281 font-size: 14px; 3282 } 3283 3284 .footer-menu-title .footer-menu-title-block { 3285 font-size: 18px; 3286 } 3287 3288 .footer-menu-wrapper { 3289 width: 590px; 3290 } 3291 .footer-block__details-content#footer-block-1, .footer-title-1 { 3292 width: 160px; 3293 } 3294 .footer-block__details-content#footer-block-2, .footer-title-2 { 3295 width: 220px; 3296 } 3297 .footer-block__details-content#footer-block-3, .footer-title-3 { 3298 width: 160px; 3299 } 3300 } 3301 3302 @media screen and (min-width: 1600px) { 3303 .footer-block__details-content#footer-block-1, .footer-title-1 { 3304 width: 158px; 3305 } 3306 .footer-menu-title { 3307 padding: 0; 3308 } 3309 .footer-menu-wrapper { 3310 column-gap: 25px; 3311 } 3312 } 3313</style> 3314 3315<div class="footer-mateli-wrapper"> 3316 <div class="footer-logo"> 3317 <svg id="_footer_arrowã¼_2" data-name="footer_arrowã¼ 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 190.86 52.35"> <defs> <style> .mateli_logo-1 { fill: var(--mateli-text-2); } </style> </defs> <g id="text"> <g> <path class="mateli_logo-1" d="M178.39,3.32v31.19h-6.49V3.32h6.49ZM190.86,34.51V11.74h-6.49v22.77h6.49M190.86,3.32h-6.49v5.58h6.49V3.32ZM62.01,11.74v22.77h6.36v-13.5c0-1.35.44-4.67,3.73-4.67,1.27,0,2.14.28,2.65,1.39.55,1.14.55,1.77.55,2.33v14.45h6.37v-13.66c0-1.3.48-4.51,3.7-4.51s3.24,3.09,3.24,3.84v14.34h6.37v-15.37c0-5.38-3.01-8.23-7.32-8.23s-6.06,2.73-6.85,4.12c-.51-1.27-1.66-4.12-6.09-4.12-2.62,0-5.22,1.11-6.78,4.15l-.07-3.32h-5.85ZM115.87,25.88v-2.22c-1.14.57-1.7.67-6.5,1.47-1.93.32-4.31.68-4.31,2.85,0,2.49,4,2.62,4.51,2.62,4.75,0,6.29-3.84,6.29-4.71M116.55,34.51c-.64-1.03-.64-2.1-.68-2.65-.99,1.1-3.13,3.52-8.67,3.52-3.16,0-8.82-.64-8.82-7.2,0-1.94.55-3.68,2.61-5.11,1.71-1.1,3.93-1.42,10.65-2.37,2.23-.31,4.24-.59,4.24-2.46,0-2.61-2.58-2.73-4.16-2.73-5.9,0-5.93,1.94-5.93,3.05h-6.26c.2-1.39.48-3.76,2.93-5.5,2.37-1.65,6.92-2.13,9.14-2.13,3.49,0,10.66.95,10.66,7.4v13.05c0,.72.39,2.18,1.1,2.62v.51h-6.8ZM140.92,15.67v-3.92h-5.06v-6.37h-6.5v6.37h-4.16v3.92h4.16v13.07c0,1.97.87,4.67,3.37,5.78,1.66.76,3.28.87,4.47.87s2.37-.08,3.71-.2v-4.99h-1.9c-1.82,0-3.16-.32-3.16-2.57v-11.96h5.06ZM149.58,20.46h11.65c-.25-.75-.53-1.63-1.28-2.58-1.02-1.26-2.49-2.21-4.67-2.21-4.15,0-5.22,3.29-5.7,4.79M149.55,24.5c.15,4.31,2.56,6.13,5.93,6.13,3.83,0,4.88-2.05,5.3-2.93h6.45c-.47,1.52-.83,2.5-2.09,3.84-2.42,2.61-5.71,3.84-9.67,3.84-7.17,0-12.43-4.28-12.43-12.23,0-8.71,6.21-12.24,12.11-12.24,3.8,0,6.7,1.35,8.79,3.41,3.33,3.28,3.64,7.59,3.8,10.18h-18.2Z"/> <g> <path class="mateli_logo-1" d="M80.6,47.91c.32-.1.59-.25.82-.43.23-.18.39-.4.51-.65.12-.25.18-.52.18-.8,0-.32-.04-.57-.14-.78-.1-.2-.25-.38-.43-.52-.19-.16-.43-.28-.72-.38-.29-.1-.62-.19-1.01-.29-.41-.11-.74-.2-.98-.26-.23-.06-.4-.13-.52-.2-.12-.06-.
331719-.14-.2-.22-.03-.08-.05-.18-.05-.31,0-.14.04-.27.1-.38.07-.1.17-.2.29-.27.12-.07.26-.13.42-.17.16-.02.32-.05.51-.05.87,0,1.32.31,1.35.93h1.17c-.05-1.21-.9-1.81-2.59-1.81-.37,0-.7.05-1,.14-.3.09-.55.22-.76.38-.21.16-.38.36-.49.58-.12.23-.18.48-.18.75,0,.29.05.54.13.74.09.2.22.36.4.5.18.14.41.26.68.35.27.09.59.19.98.29.4.09.71.18.95.26.24.07.43.14.57.21.13.07.22.16.27.25.05.1.07.21.07.36,0,.31-.13.56-.37.75-.24.19-.6.29-1.09.29-1.04,0-1.57-.4-1.58-1.18h-1.15c.07,1.38.99,2.08,2.76,2.08.39,0,.75-.05,1.07-.16Z"/> <rect class="mateli_logo-1" x="83.93" y="39.02" width="1.16" height="1.23"/> <rect class="mateli_logo-1" x="83.93" y="41.47" width="1.16" height="6.45"/> <path class="mateli_logo-1" d="M95.83,41.47h-1.16v6.45h1.16v-4.62c.58-.7,1.16-1.05,1.74-1.05.44,0,.74.12.93.35.19.24.28.62.28,1.14v4.17h1.16v-4.22c0-1.57-.73-2.36-2.18-2.36-.71,0-1.35.32-1.92.95v-.82Z"/> <path class="mateli_logo-1" d="M116.73,41.38c-.1-.02-.2-.03-.28-.04-.08,0-.16-.01-.25-.01-.65,0-1.21.35-1.68,1.05v-.92h-1.15v6.45h1.15v-4.55c.42-.61.92-.91,1.5-.91.29,0,.51.02.71.08v-1.15Z"/> <path class="mateli_logo-1" d="M136.9,47.92h1.14v-6.45h-1.14v4.62c-.54.7-1.11,1.04-1.74,1.04-.43,0-.74-.12-.92-.34-.19-.23-.27-.61-.27-1.14v-4.18h-1.15v4.23c0,1.58.72,2.38,2.18,2.38.71,0,1.35-.32,1.91-.97v.81Z"/> <path class="mateli_logo-1" d="M143.81,47.93c.29-.09.57-.22.79-.39.23-.18.43-.39.57-.65.15-.26.24-.56.28-.9h-1.16c-.01.2-.06.39-.14.53-.08.14-.19.27-.31.37-.14.1-.29.17-.46.21-.17.04-.34.07-.52.07-.58,0-1.03-.21-1.36-.64-.33-.42-.49-1.03-.49-1.84,0-.4.04-.76.13-1.07.09-.31.21-.57.38-.77.17-.21.35-.37.58-.49.23-.1.48-.16.76-.16.18,0,.35.03.52.08.17.05.32.13.46.23.13.1.23.23.31.38.08.14.13.32.14.51h1.16c-.04-.32-.13-.62-.26-.87-.14-.25-.32-.47-.55-.65-.22-.18-.49-.31-.78-.42-.31-.1-.64-.14-1.01-.14-.45,0-.86.08-1.23.22-.37.15-.68.36-.95.64-.27.29-.48.64-.62,1.05-.15.42-.22.9-.22,1.45s.07,1.04.22,1.46c.14.41.34.77.62,1.05.27.28.58.5.95.65.36.14.78.22,1.23.22.34,0,.66-.05.95-.14Z"/> <path class="mateli_logo-1" d="M149.46,47.07c-.08.02-.18.03-.27.03-.09.01-.2.01-.3.01-.1,0-.18-.01-.27-.03-.08-.02-.14-.07-.2-.14-.04-.07-.09-.17-.11-.31-.03-.14-.05-.31-.05-.54v-3.72h1.04v-.9h-1.04v-1.58h-1.15v1.58h-.79v.9h.79v3.66c0,.3.01.58.04.83.02.24.08.45.18.62.1.16.25.3.46.39.21.09.5.14.86.14.15,0,.28-.01.43-.02.13-.01.26-.04.39-.06v-.86Z"/> <path class="mateli_logo-1" d="M154.28,47.91c.32-.1.59-.25.82-.43.23-.18.4-.4.51-.65.12-.25.18-.52.18-.8,0-.32-.05-.57-.14-.78-.09-.2-.24-.38-.43-.52-.19-.16-.43-.28-.71-.38-.29-.1-.63-.19-1.01-.29-.41-.11-.74-.2-.97-.26-.24-.06-.41-.13-.53-.2-.12-.06-.18-.14-.21-.22-.02-.08-.04-.18-.04-.31,0-.14.03-.27.11-.38.06-.1.16-.2.29-.27.12-.07.25-.13.42-.17.16-.02.33-.05.51-.05.86,0,1.32.31,1.36.93h1.16c-.05-1.21-.91-1.81-2.58-1.81-.37,0-.71.05-1,.14-.3.09-.55.22-.76.38-.21.16-.37.36-.48.58-.12.23-.17.48-.17.75,0,.29.04.54.13.74.08.2.21.36.39.5.17.14.4.26.67.35.28.09.6.19.99.29.38.09.7.18.95.26.25.07.43.14.57.21.13.07.22.16.27.25.06.1.08.21.08.36,0,.31-.13.56-.37.75-.24.19-.6.29-1.08.29-1.05,0-1.58-.4-1.59-1.18h-1.15c.07,1.38.99,2.08,2.75,2.08.39,0,.76-.05,1.08-.16Z"/> <path class="mateli_logo-1" d="M66.47,39.02v2.95c-.46-.42-1.06-.63-1.76-.63-.4,0-.76.08-1.09.24-.34.16-.61.38-.86.68-.25.29-.43.65-.57,1.07-.13.42-.2.89-.2,1.42s.06.97.18,1.38c.12.41.29.77.53,1.05.22.29.5.51.82.66.32.16.7.24,1.11.24.72,0,1.33-.3,1.84-.91v.76h1.15v-8.9h-1.15ZM66.47,46.09c-.53.73-1.12,1.09-1.74,1.09-.49,0-.88-.2-1.15-.61-.28-.4-.42-1.01-.42-1.81,0-.85.15-1.48.44-1.91.3-.42.69-.63,1.17-.63.63,0,1.2.27,1.7.79v3.09Z"/> <path class="mateli_logo-1" d="M75.45,44.69c0-.53-.07-1.01-.21-1.42-.14-.42-.34-.77-.6-1.05-.27-.29-.58-.5-.96-.65-.37-.15-.79-.23-1.25-.23-.44,0-.84.08-1.21.23-.36.15-.68.37-.95.66-.27.29-.47.64-.62,1.06-.15.42-.21.89-.21,1.42s.07,1.02.22,1.43c.16.41.36.78.64,1.06.28.29.61.5.99.65.39.15.81.23,1.28.23.36,0,.69-.05,1.01-.14.31-.09.59-.22.84-.39.24-.18.44-.39.6-.65.16-.26.27-.56.31-.9h-1.16c-.01.19-.07.36-.16.51-.09.15-.22.27-.37.38-.15.1-.31.17-.5.22-.19.05-.38.07-.57.07-.25,0-.5-.04-.72-.13-.24-.09-.43-.22-.61-.4-.17-.18-.32-.41-.43-.69-.11-.28-.18-.61-.2-1h4.85v-.27ZM70.62,44.07c.04-.32.13-.6.24-.83.11-.24.24-.43.39-.59.16-.15.34-.26.54-.34.19-.08.41-.12.63-.12.48,0,.89.16,1.21.46.32.3.53.77.63,1.4h-3.64Z"/> <path class="mateli_logo-1" d="M91.34,41.47v.5c-.48-.42-1.06-.63-1.77-.63-.39,0-.76.08-1.09.24-.32.16-.61.38-.86.68-.24.29-.43.65-.56,1.07-.13.42-.2.89-.2,1.42s.06.97.17,1.38c.12.41.29.77.52,1.05.22.29.5.51.83.66.32.16.7.24,1.11.24.71,0,1.32-.3,1.84-.91v.31c0,.44-.05.81-.12,1.09-.09.28-.19.5-.34.67-.14.16-.32.27-.53.33-.2.06-.44.09-.69.09-.95,0-1.41-.36-1.41-1.07h-1.19c0,.29.06.56.18.81.12.24.29.45.52.61.22.17.5.3.83.39.32.1.68.14,1.09.14,1.87,0,2.8-1.04,2.8-3.11v-5.95h-1.14ZM91.34,46.07c-.54.74-1.12,1.11-1.76,1.11-.48,0-.87-.2-1.15-.61-.27-.4-.42-1.01-.42-1.81,0-.85.15-1.48.44-1.91.3-.42.69-.63,1.18-.63.62,0,1.2.27,1.7.77v3.09Z"/> <path class="mateli_logo-1" d="M111.41,43.28c-.12-.41-.29-.76-.52-1.04-.22-.29-.49-.51-.82-.66-.32-.16-.7-.24-1.12-.24-.72,0-1.33.31-1.84.9v-.76h-1.15v8.93h1.15v-2.97c.47.43,1.06.65,1.76.
331765.39,0,.76-.08,1.08-.24.34-.16.62-.39.87-.69.24-.3.43-.66.57-1.09.13-.42.2-.9.2-1.41s-.06-.97-.18-1.37ZM109.99,46.55c-.29.42-.69.63-1.18.63-.64,0-1.2-.26-1.69-.77v-3.08c.53-.74,1.11-1.12,1.74-1.12.51,0,.89.21,1.16.62.27.4.41,1.01.41,1.82s-.14,1.48-.43,1.9Z"/> <path class="mateli_logo-1" d="M123.43,43.27c-.14-.41-.35-.76-.61-1.05-.27-.29-.58-.5-.95-.65-.38-.15-.8-.23-1.27-.23-.44,0-.84.08-1.21.22-.38.15-.69.36-.95.64-.26.29-.47.64-.62,1.05-.14.42-.21.9-.21,1.45s.07,1.04.21,1.46c.15.41.36.77.62,1.05.27.28.58.5.95.65.37.14.77.22,1.21.22s.86-.08,1.23-.22c.36-.15.69-.36.96-.65.25-.28.46-.64.61-1.05.15-.42.22-.91.22-1.46s-.07-1.01-.21-1.43ZM121.96,46.55c-.34.43-.79.63-1.35.63s-1.01-.21-1.35-.64c-.33-.42-.5-1.03-.5-1.84,0-.4.04-.76.13-1.07.09-.31.22-.57.38-.77.16-.21.35-.37.58-.49.22-.1.48-.16.75-.16s.52.05.75.16c.22.11.42.25.58.46.16.21.29.47.38.77.09.31.14.68.14,1.1,0,.82-.16,1.44-.5,1.85Z"/> <path class="mateli_logo-1" d="M129.49,39.02v2.95c-.47-.42-1.06-.63-1.76-.63-.4,0-.77.08-1.09.24-.34.16-.62.38-.87.68-.24.29-.43.65-.56,1.07-.13.42-.2.89-.2,1.42s.06.97.18,1.38c.12.41.3.77.52,1.05.23.29.5.51.82.66.32.16.7.24,1.11.24.72,0,1.32-.3,1.84-.91v.76h1.15v-8.9h-1.15ZM129.49,46.09c-.53.73-1.12,1.09-1.75,1.09-.49,0-.87-.2-1.15-.61-.28-.4-.42-1.01-.42-1.81,0-.85.15-1.48.45-1.91.3-.42.68-.63,1.18-.63.62,0,1.19.27,1.69.79v3.09Z"/> </g> <g> <path class="mateli_logo-1" d="M.62,31.83c1.1,5,3.63,9.46,7.13,12.93,2.83-7.51,7.33-19.49,7.33-19.49,0,0-9.06,4.1-14.47,6.56Z"/> <path class="mateli_logo-1" d="M20.65.59c-5.08,1.09-9.62,3.66-13.14,7.25,7.48,2.81,19.8,7.45,19.8,7.45,0,0-4.22-9.32-6.66-14.69Z"/> <path class="mateli_logo-1" d="M4.12,12.09C1.51,16.16,0,20.99,0,26.18v.23c7.31-3.31,19.13-8.68,19.13-8.68,0,0-9.48-3.56-15.01-5.64Z"/> <path class="mateli_logo-1" d="M48.02,40.59c2.7-4.09,4.29-8.96,4.33-14.21-7.3,3.3-19.1,8.65-19.1,8.65,0,0,9.21,3.46,14.77,5.56Z"/> <path class="mateli_logo-1" d="M40.5,4.26C36.38,1.58,31.46,0,26.18,0h-.1c3.29,7.28,8.75,19.34,8.75,19.34,0,0,3.59-9.53,5.67-15.08Z"/> <path class="mateli_logo-1" d="M51.82,20.92c-1.03-5.1-3.55-9.65-7.08-13.2-2.81,7.49-7.44,19.79-7.44,19.79,0,0,9.12-4.14,14.52-6.58Z"/> <path class="mateli_logo-1" d="M12.01,48.16c4.06,2.63,8.9,4.17,14.11,4.18-3.32-7.32-8.58-18.9-8.58-18.9,0,0-3.43,9.16-5.53,14.72Z"/> <path class="mateli_logo-1" d="M31.55,51.79c5-1.04,9.48-3.53,13-6.97-7.52-2.84-19.49-7.33-19.49-7.33,0,0,4.02,8.88,6.48,14.3Z"/> </g> </g> </g></svg> 3318 </div> 3319 <div class="footer-block footer-1"> 3320 <div class="footer-sns"><ul class="footer__list-social list-unstyled list-social"><li class="list-social__item"> 3321 <a href="https://www.facebook.com/mateli.jp/" class="link list-social__link" ><svg aria-hidden="true" focusable="false" class="icon icon-facebook" viewBox="0 0 18 18"> 3322 <path fill="currentColor" d="M16.42.61c.27 0 .5.1.69.28.19.2.28.42.28.7v15.44c0 .27-.1.5-.28.69a.94.94 0 01-.7.28h-4.39v-6.7h2.25l.31-2.65h-2.56v-1.7c0-.4.1-.72.28-.93.18-.2.5-.32 1-.32h1.37V3.35c-.6-.06-1.27-.1-2.01-.1-1.01 0-1.83.3-2.45.9-.62.6-.93 1.44-.93 2.53v1.97H7.04v2.65h2.24V18H.98c-.28 0-.5-.1-.7-.28a.94.94 0 01-.28-.7V1.59c0-.27.1-.5.28-.69a.94.94 0 01.7-.28h15.44z"> 3323</svg> 3324<span class="visually-hidden">Facebook</span> 3325 </a> 3326 </li><li class="list-social__item"> 3327 <a href="https://www.instagram.com/mateli.co/?hl=ja" class="link list-social__link" ><svg aria-hidden="true" focusable="false" class="icon icon-instagram" viewBox="0 0 18 18"> 3328 <path fill="currentColor" d="M8.77 1.58c2.34 0 2.62.01 3.54.05.86.04 1.32.18 1.63.3.41.17.7.35 1.01.66.3.3.5.6.65 1 .12.32.27.78.3 1.64.05.92.06 1.2.06 3.54s-.01 2.62-.05 3.54a4.79 4.79 0 01-.3 1.63c-.17.41-.35.7-.66 1.01-.3.3-.6.5-1.01.66-.31.12-.77.26-1.63.3-.92.04-1.2.05-3.54.05s-2.62 0-3.55-.05a4.79 4.79 0 01-1.62-.3c-.42-.16-.7-.35-1.01-.66-.31-.3-.5-.6-.66-1a4.87 4.87 0 01-.3-1.64c-.04-.92-.05-1.2-.05-3.54s0-2.62.05-3.54c.04-.86.18-1.32.3-1.63.16-.41.35-.7.66-1.01.3-.3.6-.5 1-.65.32-.12.78-.27 1.63-.3.93-.05 1.2-.06 3.55-.06zm0-1.58C6.39 0 6.09.01 5.15.05c-.93.04-1.57.2-2.13.4-.57.23-1.06.54-1.55 1.02C1 1.96.7 2.45.46 3.02c-.22.56-.37 1.2-.4 2.13C0 6.1 0 6.4 0 8.77s.01 2.68.05 3.61c.04.94.2 1.57.4 2.13.23.58.54 1.07 1.02 1.56.49.48.98.78 1.55 1.01.56.22 1.2.37 2.13.4.94.05 1.24.06 3.62.06 2.39 0 2.68-.01 3.62-.05.93-.04 1.57-.2 2.13-.41a4.27 4.27 0 001.55-1.01c.49-.49.79-.98 1.01-1.56.22-.55.37-1.19.41-2.13.04-.93.05-1.23.05-3.61 0-2.39 0-2.68-.05-3.62a6.47 6.47 0 00-.4-2.13 4.27 4.27 0 00-1.02-1.55A4.35 4.35 0 0014.52.46a6.43 6.43 0 00-2.13-.41A69 69 0 008.77 0z"/>
3329 <path fill="currentColor" d="M8.8 4a4.5 4.5 0 100 9 4.5 4.5 0 000-9zm0 7.43a2.92 2.92 0 110-5.85 2.92 2.92 0 010 5.85zM13.43 5a1.05 1.05 0 100-2.1 1.05 1.05 0 000 2.1z"> 3330</svg> 3331<span class="visually-hidden">Instagram</span> 3332 </a> 3333 </li><li class="list-social__item"> 3334 <a href="https://jp.pinterest.com/mateli0214/" class="link list-social__link" ><svg aria-hidden="true" focusable="false" class="icon icon-pinterest" viewBox="0 0 17 18"> 3335 <path fill="currentColor" d="M8.48.58a8.42 8.42 0 015.9 2.45 8.42 8.42 0 011.33 10.08 8.28 8.28 0 01-7.23 4.16 8.5 8.5 0 01-2.37-.32c.42-.68.7-1.29.85-1.8l.59-2.29c.14.28.41.52.8.73.4.2.8.31 1.24.31.87 0 1.65-.25 2.34-.75a4.87 4.87 0 001.6-2.05 7.3 7.3 0 00.56-2.93c0-1.3-.5-2.41-1.49-3.36a5.27 5.27 0 00-3.8-1.43c-.93 0-1.8.16-2.58.48A5.23 5.23 0 002.85 8.6c0 .75.14 1.41.43 1.98.28.56.7.96 1.27 1.2.1.04.19.04.26 0 .07-.03.12-.1.15-.2l.18-.68c.05-.15.02-.3-.11-.45a2.35 2.35 0 01-.57-1.63A3.96 3.96 0 018.6 4.8c1.09 0 1.94.3 2.54.89.61.6.92 1.37.92 2.32 0 .8-.11 1.54-.33 2.21a3.97 3.97 0 01-.93 1.62c-.4.4-.87.6-1.4.6-.43 0-.78-.15-1.06-.47-.27-.32-.36-.7-.26-1.13a111.14 111.14 0 01.47-1.6l.18-.73c.06-.26.09-.47.09-.65 0-.36-.1-.66-.28-.89-.2-.23-.47-.35-.83-.35-.45 0-.83.2-1.13.62-.3.41-.46.93-.46 1.56a4.1 4.1 0 00.18 1.15l.06.15c-.6 2.58-.95 4.1-1.08 4.54-.12.55-.16 1.2-.13 1.94a8.4 8.4 0 01-5-7.65c0-2.3.81-4.28 2.44-5.9A8.04 8.04 0 018.48.57z"> 3336</svg> 3337<span class="visually-hidden">Pinterest</span> 3338 </a> 3339 </li></ul></div> 3340 </div> 3341 <div class="footer-menu-wrapper"><div class="footer-menu-title footer-title-1" data-target="footer-block-1"> 3342 <div class="footer-menu-title-block"> 3343 ãè²·ãç©ã¬ã¤ã 3344 </div> 3345 <div class="footer-menu-title-arrow"><svg id="_footer_arrowã¼_2" data-name="footer_arrowã¼_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 11.39 17.56"> <defs> <style> .cls-1 { fill: none; stroke: #676970; stroke-miterlimit: 10; stroke-width: .75px; } .cls-2 { fill: #e6e6e6; } </style> </defs> <g id="text"> <g> <rect class="cls-2" width="11.39" height="17.56" rx="1.54" ry="1.54" transform="translate(11.39 17.56) rotate(180)"/> <polyline class="cls-1" points="3.75 4.03 8.5 8.78 3.75 13.53"/> </g> </g></svg></div> 3346 </div> 3347 <ul class="footer-block__details-content list-unstyled" id="footer-block-1"><li> 3348 <a href="/pages/guide" class="link link--text list-menu__item list-menu__item--link"> 3349 ã·ã§ããã¬ã¤ã 3350 </a> 3351 </li><li> 3352 <a href="/pages/question" class="link link--text list-menu__item list-menu__item--link"> 3353 ãããã質åä¸è¦§ 3354 </a> 3355 </li><li> 3356 <a href="/policies/refund-policy" class="link link--text list-menu__item list-menu__item--link"> 3357 è¿åã»äº¤æã«ã¤ã㦠3358 </a> 3359 </li><li> 3360 <a href="/policies/shipping-policy" class="link link--text list-menu__item list-menu__item--link"> 3361 é éã»éæã«ã¤ã㦠3362 </a> 3363 </li><li> 3364 <a href="/pages/cad" class="link link--text list-menu__item list-menu__item--link list-menu__item--active"> 3365 å³é¢ãã¦ã³ãã¼ã 3366 </a> 3367 </li></ul> 3368 <div class="footer-menu-title footer-title-2" data-target="footer-block-2"> 3369 <div class="footer-menu-title-block"> 3370 ã客æ§ãµãã¼ã 3371 </div> 3372 <div class="footer-menu-title-arrow"><svg id="_footer_arrowã¼_2" data-name="footer_arrowã¼_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 11.39 17.56"> <defs> <style> .cls-1 { fill: none; stroke: #676970; stroke-miterlimit: 10; stroke-width: .75px; } .cls-2 { fill: #e6e6e6; } </style> </defs> <g id="text"> <g> <rect class="cls-2" width="11.39" height="17.56" rx="1.54" ry="1.54" transform="translate(11.39 17.56) rotate(180)"/> <polyline class="cls-1" points="3.75 4.03 8.5 8.78 3.75 13.53"/> </g> </g></svg></div> 3373 </div> 3374 <ul class="footer-block__details-content list-unstyled" id="footer-block-2"><li> 3375 <a href="/pages/contact-maintenance-line" class="link link--text list-menu__item list-menu__item--link"> 3376 ä¸å ·åã»ä¿®çã®ãåãåãã 3377 </a> 3378 </li><li> 3379 <a href="/pages/support" class="link link--text list-menu__item list-menu__item--link"> 3380 ãåãåãã 3381 </a> 3382 </li><li> 3383 <a href="/pages/maintenance" class="link link--text list-menu__item list-menu__item--link"> 3384 ã»ããæ¤ åã¡ã³ããã³ã¹ 3385 </a> 3386 </li><li> 3387 <a href="https://www.mateli.jp/forms/order_inquiries_and_stock_confirmation/" class="link link--text list-menu__item list-menu__item--link"> 3388 è¦ç©æ¸ã»æ³¨æãã©ã¼ã 3389 </a> 3390 </li><li> 3391 <a href="https://www.mateli.jp/forms/agency_quotation_and_order/index.php" class="link link--text list-menu__item list-menu__item--link"> 3392 代çåºè¦ç©æ¸ã»æ³¨æãã©ã¼ã 3393 </a> 3394 </li><li> 3395 <a href="https://cdn.shopify.com/s/files/1/0517
3395/2337/0679/files/order_sheet_2pages.pdf?v=1771986752" class="link link--text list-menu__item list-menu__item--link"> 3396 代çåºå°ç¨ãªã¼ãã¼ãã©ã¼ã 3397 </a> 3398 </li><li> 3399 <a href="https://www.mateli.jp/forms/agency_contract/index.php" class="link link--text list-menu__item list-menu__item--link"> 3400 代çåºå¥ç´ 3401 </a> 3402 </li></ul> 3403 <div class="footer-menu-title footer-title-3" data-target="footer-block-3"> 3404 <div class="footer-menu-title-block"> 3405 ãããªã«ã¤ã㦠3406 </div> 3407 <div class="footer-menu-title-arrow"><svg id="_footer_arrowã¼_2" data-name="footer_arrowã¼_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 11.39 17.56"> <defs> <style> .cls-1 { fill: none; stroke: #676970; stroke-miterlimit: 10; stroke-width: .75px; } .cls-2 { fill: #e6e6e6; } </style> </defs> <g id="text"> <g> <rect class="cls-2" width="11.39" height="17.56" rx="1.54" ry="1.54" transform="translate(11.39 17.56) rotate(180)"/> <polyline class="cls-1" points="3.75 4.03 8.5 8.78 3.75 13.53"/> </g> </g></svg></div> 3408 </div> 3409 <ul class="footer-block__details-content list-unstyled" id="footer-block-3"><li> 3410 <a href="https://www.mateli.jp/" class="link link--text list-menu__item list-menu__item--link"> 3411 ã³ã¼ãã¬ã¼ããµã¤ã 3412 </a> 3413 </li><li> 3414 <a href="https://www.mateli.jp/webcatalog/index.html" class="link link--text list-menu__item list-menu__item--link"> 3415 WEB ã«ã¿ãã° 3416 </a> 3417 </li><li> 3418 <a href="https://www.mateli.jp/forms/catalog/index.php" class="link link--text list-menu__item list-menu__item--link"> 3419 ã«ã¿ãã°è«æ± 3420 </a> 3421 </li><li> 3422 <a href="https://www.mateli.jp/forms/samples_request/index.php" class="link link--text list-menu__item list-menu__item--link"> 3423 ãµã³ãã«è«æ± 3424 </a> 3425 </li><li> 3426 <a href="/pages/mag-register" class="link link--text list-menu__item list-menu__item--link"> 3427 ã¡ã¼ã«ãã¬ã¸ã³ç»é² 3428 </a> 3429 </li><li> 3430 <a href="https://g.page/r/CaJtR0QSZghGEAE/review" class="link link--text list-menu__item list-menu__item--link"> 3431 å£ã³ããåéä¸ 3432 </a> 3433 </li><li> 3434 <a href="https://sp.mateli.jp/" class="link link--text list-menu__item list-menu__item--link"> 3435 åºèè¨è¨ 3436 </a> 3437 </li></ul> 3438 3439 </div> 3440 <div class="footer-subs"> 3441 <div class="sub-menu sub-1"> 3442 <a href='/policies/legal-notice'>ç¹å®åå弿³ã«åºã¥ã表è¨</a> 3443 <a href='/policies/terms-of-service'>å©ç¨è¦ç´</a> 3444 <a href="/policies/privacy-policy">ãã©ã¤ãã·ã¼ããªã·ã¼</a> 3445 <a href="/pages/license">å¤ç©å¶æ¥è¨±å¯</a> 3446 </div> 3447 <div class="sub-copyright"><span>© Copyright 2026 mateli.co.,Ltd.</span></div> 3448 </div> 3449</div> 3450
3451<script type="text/javascript"> 3452 document.addEventListener('DOMContentLoaded', function () { 3453 // Smooth scroll to top when clicking footer logo 3454 const footerLogo = document.querySelector('.footer-logo'); 3455 3456 if (footerLogo) { 3457 footerLogo.addEventListener('click', (e) => { 3458 e.preventDefault(); // Prevent default link behavior if it's an <a> tag 3459 window.scrollTo({ 3460 top: 0, 3461 behavior: 'smooth' // Smooth scroll 3462 }); 3463 }); 3464 } 3465 3466 // Footer menu accordion for mobile (<900px) 3467 if (window.innerWidth < 900) { 3468 const footerTitles = document.querySelectorAll('.footer-menu-title'); 3469 3470 footerTitles.forEach(title => { 3471 title.addEventListener('click', function (event) { 3472 // Only proceed if the clicked element is not inside a link 3473 if (!event.target.closest('a')) { 3474 const targetDivId = this.getAttribute('data-target'); 3475 const targetDiv = document.getElementById(targetDivId); 3476 3477 if (!targetDiv) return; 3478 3479 // If already selected => hide this 3480 if (this.classList.contains('selected')) { 3481 this.classList.remove('selected'); 3482 targetDiv.classList.remove('selected'); 3483 } 3484 // Otherwise, hide all others first 3485 else { 3486 // Remove 'selected' from all titles and blocks 3487 document.querySelectorAll('.footer-menu-title.selected, .footer-block__details-content.selected') 3488 .forEach(el => el.classList.remove('selected')); 3489 3490 // Then toggle the clicked one 3491 this.classList.add('selected'); 3492 targetDiv.classList.add('selected'); 3493 } 3494 } 3495 }); 3496 }); 3497 } 3498 }); 3499</script>
3499 3500 3501 3502 3503</div> 3504<!-- END sections: footer-group --> 3505 3506 <link href="//furniture.mateli.jp/cdn/shop/t/204/assets/extra_correction.css?v=180442015371414041831790902731" rel="stylesheet" type="text/css" media="all" /> 3507 3508 <ul hidden> 3509 <li id='a11y-refresh-page-message'>é¸æçµæãé¸ã¶ã¨ããã¼ã¸ãå ¨é¢çã«æ´æ°ããã¾ãã</li> 3510 <li id='a11y-new-window-message'>æ°ããã¦ã£ã³ãã¦ã§éãã¾ãã</li> 3511 </ul> 3512 3513
3513<script> 3514 window.shopUrl = 'https://furniture.mateli.jp'; 3515 window.routes = { 3516 cart_add_url: '/cart/add', 3517 cart_change_url: '/cart/change', 3518 cart_update_url: '/cart/update', 3519 cart_url: '/cart', 3520 predictive_search_url: '/search/suggest', 3521 }; 3522 3523 window.cartStrings = { 3524 error: `ã«ã¼ããã¢ãããã¼ãããã¨ãã«ã¨ã©ã¼ãçºçãã¾ãããããä¸åº¦ã試ããã ããã`, 3525 quantityError: `ãã®ã¢ã¤ãã ã¯[quantity]åããã«ã¼ãã«è¿½å ãããã¨ãã§ãã¾ããã`, 3526 }; 3527 3528 window.variantStrings = { 3529 addToCart: `ã«ã¼ãã«è¿½å `, 3530 soldOut: `SOLD OUT`, 3531 unavailable: `å©ç¨ã§ãã¾ãã`, 3532 unavailable_with_option: `[value]ã¯å©ç¨ã§ãã¾ãã`, 3533 }; 3534 3535 window.accessibilityStrings = { 3536 imageAvailable: `ã®ã£ã©ãªã¼ãã¥ã¼ã§ç»å ([index]) ãå©ç¨ã§ããããã«ãªãã¾ãã`, 3537 shareSuccess: `ãªã³ã¯ãã¯ãªãããã¼ãã«ã³ãã¼ããã¾ãã`, 3538 pauseSlideshow: `ã¹ã©ã¤ãã·ã§ã¼ã䏿忢ãã`, 3539 playSlideshow: `ã¹ã©ã¤ãã·ã§ã¼ãåçãã`, 3540 }; 3541 </script>
3541<script src='//furniture.mateli.jp/cdn/shop/t/204/assets/predictive-search.min.js?v=143682996007816233751790902731' defer='defer'></script>
3541 3542 3543 3544
3544<script> 3545/** 3546 * GLOBAL CART MONITOR 3547 * 3548 * Purpose: Automatically manages the special delivery fee product in the cart based on: 3549 * 1. Presence of assembly delivery items (çµç«é é, çµã¿ç«ã¦é é, åºå é é) 3550 * 2. Current date falling within the special delivery period 3551 * 3552 * Behavior: 3553 * - If cart has assembly delivery items AND within date range â Ensure special product is added 3554 * - If cart has NO assembly delivery items OR outside date range â Ensure special product is removed 3555 * - Monitors all cart operations (add, update, change, clear) and re-checks state 3556 * 3557 * Integration: 3558 * - Function is exposed globally as window.checkAndAddSpecialProduct() 3559 * - Can be called by other scripts (e.g., shipping option changes) 3560 */ 3561(function() { 3562 'use strict'; 3563 3564 // ========================================== 3565 // DEBUG CONFIGURATION 3566 // ========================================== 3567 // Set to false to disable all debug logging in production 3568 const DEBUG = false; 3569 3570 // Helper function for conditional logging 3571 const debugLog = (...args) => { if (DEBUG) console.log(...args); }; 3572 const debugError = (...args) => { if (DEBUG) console.error(...args); }; 3573 3574 debugLog('[Global Cart Monitor] Loading...'); 3575 3576 // ========================================== 3577 // CONFIGURATION - Loaded from Theme Settings 3578 // ========================================== 3579 3580 const CONFIG = { enabled: false }; 3581 debugLog('[Global Cart Monitor] Not configured - missing theme settings'); 3582 3583 3584 // Exit early if not configured 3585 if (!CONFIG.enabled) { 3586 debugLog('[Global Cart Monitor] Monitor disabled'); 3587 return; 3588 } 3589 3590 // Prevent concurrent executions 3591 let isProcessing = false; 3592 3593 // Cooldown to prevent excessive rapid checks 3594 let lastCheckTime = 0; 3595 const CHECK_COOLDOWN_MS = 500; // Minimum 0.5 second between checks 3596 3597 3598 // ========================================== 3599 // HELPER FUNCTIONS 3600 // ========================================== 3601 3602 /** 3603 * Smart cart UI update function 3604 * Compares current cart state with fetched cart state 3605 * - If only special product changed: inject/remove just that item (preserves JS handlers) 3606 * - If other changes detected: full page refresh 3607 */ 3608 async function updateCartUI() { 3609 try { 3610 debugLog('[Global Cart Monitor] Checking if we need to update cart UI...'); 3611 3612 // Get current cart items from DOM first 3613 const currentCartItems = getCurrentCartItemNames(); 3614 3615 // If no cart items in DOM, we're likely on a product page with closed drawer 3616 // No point in updating UI that doesn't exist 3617 if (currentCartItems.length === 0) { 3618 debugLog('[Global Cart Monitor] No cart UI elements found in DOM - skipping update'); 3619 debugLog('[Global Cart Monitor] (This is normal on product pages with drawer closed)'); 3620 return; 3621 } 3622 3623 debugLog('[Global Cart Monitor] Found', currentCartItems.length, 'items in DOM - proceeding with update check'); 3624 3625 // Get current cart from API 3626 const response = await fetch('/cart.js'); 3627 const apiCart = await response.json(); 3628 3629 debugLog('[Global Cart Monitor] Comparing cart states:', { 3630 apiItemCount: apiCart.items.length, 3631 domItemCount: currentCartItems.length 3632 }); 3633 3634 // Check if only the special product changed 3635 const onlySpecialProductChanged = isOnlySpecialProductDifferent(currentCartItems, apiCart.items); 3636 3637 if (onlySpecialProductChanged) { 3638 debugLog('[Global Cart Monitor] Only special product changed - updating DOM without refresh'); 3639 3640 // Find if special product exists in API cart 3641 const specialProductInApi = apiCart.items.find(item => 3642 item.variant_id.toString() === CONFIG.specialVariantId.toString() 3643 ); 3644 3645 if (specialProductInApi) { 3646 // Add special product to DOM 3647 await injectSpecialProductToDOM(specialProductInApi); 3648 } else { 3649 // Remove special product from DOM 3650 await removeSpecialProductFromDOM(); 3651 } 3652 3653 // Update all UI 3654 await updateAllCartUIComponents(); 3655 } else { 3656 debugLog('[Global Cart Monitor] Other cart changes detected'); 3657 // Update all UI components (Drawer, Page, Bubble) 3658 await updateAllCartUIComponents(); 3659 } 3660 3661 } catch (error) { 3662 debugError('[Global Cart Monitor] Error updating cart UI:', error); 3663 debugError('[Global Cart Monitor] Error details:', error.message, error.stack); 3664 debugLog('ð REFRESH [updateCartUI ERROR] - Would reload page here'); 3665 // TEMPORARILY DISABLED FOR DEBUGGING - Fallback to page refresh on error 3666 // setTimeout(() => window.location.reload(), 100); 3667 } 3668 } 3669 3670 /** 3671 * Gets current cart item product names from DOM 3672 * Reads actual product titles displayed in the cart drawer or cart page 3673 */ 3674 function getCurrentCartItemNames() { 3675 const items = []; 3676 3677 // Check for cart drawer items first (most common on product pages) 3678 const drawerContainer = document.querySelector('#CartDrawer-CartItems'); 3679 if (drawerContainer) { 3680 const drawerItems = drawerContainer.querySelectorAll('.cart-item__details .cart-item__name');
3681 drawerItems.forEach(nameElement => { 3682 const productName = nameElement.textContent.trim(); 3683 if (productName) items.push(productName); 3684 }); 3685 debugLog('[Global Cart Monitor] Found drawer items by name:', items); 3686 return items; 3687 } 3688 3689 // Check for cart page items 3690 const pageItems = document.querySelectorAll('.mateli-main-cart-item .cart-item__name'); 3691 if (pageItems.length > 0) { 3692 pageItems.forEach(nameElement => { 3693 const productName = nameElement.textContent.trim(); 3694 if (productName) items.push(productName); 3695 }); 3696 debugLog('[Global Cart Monitor] Found cart page items by name:', items); 3697 return items; 3698 } 3699 3700 debugLog('[Global Cart Monitor] No cart items found in DOM'); 3701 return items; 3702 } 3703 3704 /** 3705 * Checks if only the special product is different between DOM and API 3706 * Compares by product titles/names instead of variant IDs 3707 */ 3708 function isOnlySpecialProductDifferent(domNames, apiItems) { 3709 // Get product titles from API (excluding special product) 3710 const domProducts = domNames.filter(name => name !== CONFIG.specialProductTitle); 3711 const apiProducts = apiItems 3712 .map(item => item.product_title || item.title) 3713 .filter(title => title !== CONFIG.specialProductTitle); 3714 3715 // Check if non-special items are identical 3716 if (domProducts.length !== apiProducts.length) { 3717 debugLog('[Global Cart Monitor] Different item counts (excluding special):', { 3718 dom: domProducts.length, 3719 api: apiProducts.length 3720 }); 3721 return false; 3722 } 3723 3724 // Sort and compare 3725 const sortedDom = [...domProducts].sort(); 3726 const sortedApi = [...apiProducts].sort(); 3727 3728 const identical = sortedDom.every((name, index) => name === sortedApi[index]); 3729 3730 if (!identical) { 3731 debugLog('[Global Cart Monitor] Non-special items differ'); 3732 debugLog('[Global Cart Monitor] DOM products:', sortedDom); 3733 debugLog('[Global Cart Monitor] API products:', sortedApi); 3734 return false; 3735 } 3736 3737 // Check if special product status changed 3738 const specialInDom = domNames.includes(CONFIG.specialProductTitle); 3739 const specialInApi = apiItems.some(item => 3740 (item.product_title || item.title) === CONFIG.specialProductTitle 3741 ); 3742 3743 const specialChanged = specialInDom !== specialInApi; 3744 debugLog('[Global Cart Monitor] Special product status:', { 3745 inDom: specialInDom, 3746 inApi: specialInApi, 3747 changed: specialChanged 3748 }); 3749 3750 return specialChanged; 3751 } 3752 3753 /** 3754 * Injects special product HTML into cart DOM 3755 */ 3756 async function injectSpecialProductToDOM(productData) { 3757 debugLog('[Global Cart Monitor] Injecting special product into DOM - updating all UI'); 3758 await updateAllCartUIComponents(); 3759 } 3760 3761 /** 3762 * Removes special product from DOM 3763 */ 3764 async function removeSpecialProductFromDOM() { 3765 debugLog('[Global Cart Monitor] Removing special product from DOM - updating all UI'); 3766 await updateAllCartUIComponents(); 3767 } 3768 3769 /** 3770 * Updates all available Cart UI components (Drawer, Page, Bubble) in one go 3771 * Uses Shopify Section Rendering API 3772 */ 3773 async function updateAllCartUIComponents() { 3774 debugLog('[Global Cart Monitor] Updating all UI components...'); 3775 3776 const sectionsToFetch = ['cart-icon-bubble']; 3777 3778 // Check for Drawer 3779 const drawerContainer = document.querySelector('cart-drawer'); 3780 if (drawerContainer) sectionsToFetch.push('cart-drawer'); 3781 3782 // Check for Cart Page (Dynamic Section Detection) 3783 let cartPageSectionId = null; 3784 let cartPageSectionEl = null; 3785 3786 // Try finding #cart as user suggested, or common selectors 3787 const cartEl = document.getElementById('cart') || document.querySelector('.cart') || document.querySelector('form[action="/cart"]'); 3788 if (cartEl) { 3789 cartPageSectionEl = cartEl.closest('.shopify-section'); 3790 if (cartPageSectionEl) { 3791 // Extract ID from shopify-section-{id} 3792 // Note: Section Rendering API expects the SECTION ID (e.g. 'main-cart-items' or UUID) 3793 cartPageSectionId = cartPageSectionEl.id.replace(/^shopify-section-/, ''); 3794 if (cartPageSectionId) { 3795 sectionsToFetch.push(cartPageSectionId); 3796 debugLog('[Global Cart Monitor] Detected dynamic cart section:', cartPageSectionId); 3797 } 3798 } 3799 } 3800 3801 // Fallback: Check for static main-cart-items if dynamic detection failed 3802 if (!cartPageSectionId) { 3803 const staticItemsSection = document.getElementById('shopify-section-main-cart-items'); 3804 if (staticItemsSection) sectionsToFetch.push('main-cart-items'); 3805 3806 const staticFooterSection = document.getElementById('shopify-section-main-cart-footer'); 3807 if (staticFooterSection) sectionsToFetch.push('main-cart-footer'); 3808 } 3809 3810 try { 3811 debugLog('[Global Cart Monitor] Fetching sections:', sectionsToFetch); 3812 3813 const response = await fetch(`${window.location.pathname}?sections=${sectionsToFetch.join(',')}`); 3814 const data = await response.json(); 3815 3816 // 1. Update Cart Bubble 3817 const bubbleHtml = data['cart-icon-bubble']; 3818 if (bubbleHtml) { 3819 let bubbleSection = document.getElementById('cart-icon-bubble'); 3820 if (!bubbleSection) bubbleSection = document.getElementById('shopify-section-cart-icon-bubble'); 3821 if (!bubbleSection) bubbleSection = document.querySelector('.cart-count-bubble')?.closest('.shopify-section'); 3822 3823 if (bubbleSection) { 3824 if (bubbleSection.id.startsWith('shopify-section')) { 3825 bubbleSection.innerHTML = bubbleHtml; 3826 } else { 3827 bubbleSection.innerHTML = bubbleHtml; 3828 } 3829 debugLog('[Global Cart Monitor] Updated cart-icon-bubble'); 3830 } 3831 } 3832 3833 // 2. Update Drawer 3834 const drawerHtml = data['cart-drawer']; 3835 if (drawerHtml && drawerContainer) { 3836 const doc = new DOMParser().parseFromString(drawerHtml, 'text/html'); 3837 // Update items (using ID) 3838 const itemsContainer = drawerContainer.querySelector('#CartDrawer-CartItems'); 3839 const newItems = doc.getElementById('CartDrawer-CartItems'); 3840 if (itemsContainer && newItems) { 3841 itemsContainer.innerHTML = newItems.innerHTML; 3842 } 3843 3844 // Update footer 3845 const footer = drawerContainer.querySelector('.drawer__footer'); 3846 const newFooter = doc.querySelector('.drawer__footer'); 3847 if (footer && newFooter) { 3848 footer.innerHTML = newFooter.innerHTML; 3849 } 3850 debugLog('[Global Cart Monitor] Updated drawer content'); 3851 } 3852 3853 // 3. Update Cart Page Section (Dynamic) 3854 if (cartPageSectionId && data[cartPageSectionId]) { 3855 cartPageSectionEl.innerHTML = data[cartPageSectionId]; 3856 debugLog('[Global Cart Monitor] Updated cart page section'); 3857 } 3858 3859 // 4. Update Static Cart Sections (Fallback) 3860 if (data['main-cart-items']) { 3861 const s = document.getElementById('shopify-section-main-cart-items'); 3862 if (s) s.innerHTML = data['main-cart-items']; 3863 } 3864 if (data['main-cart-footer']) { 3865 const s = document.getElementById('shopify-section-main-cart-footer'); 3866 if (s) s.innerHTML = data['main-cart-footer']; 3867 } 3868 3869 } catch (e) { 3870 debugError('[Global Cart Monitor] Failed to update UI components:', e); 3871 } 3872 } 3873 3874 // Expose globally so other IIFEs (like CartOrderFixer) can use it 3875 window.updateAllCartUIComponents = updateAllCartUIComponents; 3876 debugLog('[Global Cart Monitor] Exposed updateAllCartUIComponents globally'); 3877 3878 /** 3879 * Checks if cart contains any assembly delivery items 3880 * Searches for keywords in product and variant titles 3881 * 3882 * @param {Object} cartData - Cart object from Shopify API 3883 * @returns {boolean} True if assembly delivery items found 3884 */
3885 function hasAssemblyDeliveryItems(cartData) { 3886 if (!cartData || !cartData.items) { 3887 debugLog('[Global Cart Monitor] No cart data or items array'); 3888 return false; 3889 } 3890 3891 debugLog('[Global Cart Monitor] Scanning', cartData.items.length, 'items for assembly delivery keywords...'); 3892 3893 return cartData.items.some(item => { 3894 const fullTitle = (item.product_title || '') + ' ' + (item.variant_title || ''); 3895 // Keywords: çµç«é é (assembly delivery), çµã¿ç«ã¦é é (assembly delivery alt), åºå é é (in-store delivery) 3896 const hasKeyword = fullTitle.includes('çµç«é é') || fullTitle.includes('çµã¿ç«ã¦é é') || fullTitle.includes('åºå é é'); 3897 3898 if (hasKeyword) { 3899 debugLog('[Global Cart Monitor] Found assembly delivery item:', { 3900 title: fullTitle, 3901 variantId: item.variant_id, 3902 sku: item.sku 3903 }); 3904 } 3905 3906 return hasKeyword; 3907 }); 3908 } 3909 3910 3911 // ========================================== 3912 // MAIN CHECK FUNCTION (Exposed Globally) 3913 // ========================================== 3914 3915 /** 3916 * Main function that checks cart state and adds/removes special product as needed 3917 * This function is exposed globally and can be called by other scripts 3918 * 3919 * Flow: 3920 * 1. Check if already processing (prevent race conditions) 3921 * 2. Verify current date is within special period 3922 * 3. Fetch current cart state 3923 * 4. Check for assembly delivery items 3924 * 5. Check for special product in cart 3925 * 6. Take action based on state comparison 3926 */ 3927 async function checkAndAddSpecialProduct(options = {}) { 3928 const { force = false } = options; 3929 3930 // Guard: Cooldown check to prevent excessive rapid checks (can be bypassed with force) 3931 const now = Date.now(); 3932 const timeSinceLastCheck = now - lastCheckTime; 3933 3934 if (!force && timeSinceLastCheck < CHECK_COOLDOWN_MS) { 3935 debugLog(`[Global Cart Monitor] Cooldown active - skipping check (${timeSinceLastCheck}ms since last check, need ${CHECK_COOLDOWN_MS}ms)`); 3936 return; 3937 } 3938 3939 // Guard: Prevent concurrent executions 3940 if (isProcessing) { 3941 debugLog('[Global Cart Monitor] Already processing, skipping duplicate execution'); 3942 return; 3943 } 3944 3945 // Update last check time 3946 lastCheckTime = now; 3947 3948 // Check if we're within the special delivery date range 3949 const today = new Date(); 3950 debugLog('[Global Cart Monitor] Date check:', { 3951 today: today.toISOString().split('T')[0], 3952 specialStart: CONFIG.specialStartDate.toISOString().split('T')[0], 3953 specialEnd: CONFIG.specialEndDate.toISOString().split('T')[0], 3954 withinRange: today >= CONFIG.specialStartDate && today <= CONFIG.specialEndDate 3955 }); 3956 3957 if (today < CONFIG.specialStartDate || today > CONFIG.specialEndDate) { 3958 debugLog('[Global Cart Monitor] Outside special date range - no action needed'); 3959 return; 3960 } 3961 3962 debugLog('[Global Cart Monitor] Within special date range - proceeding with cart check'); 3963 isProcessing = true; 3964 3965 try { 3966 // Fetch current cart state 3967 debugLog('[Global Cart Monitor] Fetching cart state from /cart.js...'); 3968 const response = await fetch('/cart.js'); 3969 const cart = await response.json(); 3970 3971 debugLog('[Global Cart Monitor] Cart state:', { 3972 itemCount: cart.item_count, 3973 totalPrice: cart.total_price, 3974 currency: cart.currency 3975 }); 3976 3977 // Check for assembly delivery items 3978 const hasAssemblyDelivery = hasAssemblyDeliveryItems(cart); 3979 debugLog('[Global Cart Monitor] Assembly delivery check result:', hasAssemblyDelivery); 3980 3981 // Check if special product is already in cart 3982 const specialProductItem = cart.items.find(item => 3983 item.variant_id.toString() === CONFIG.specialVariantId.toString() 3984 ); 3985 3986 debugLog('[Global Cart Monitor] Special product status:', { 3987 inCart: !!specialProductItem, 3988 variantId: specialProductItem?.variant_id, 3989 quantity: specialProductItem?.quantity, 3990 key: specialProductItem?.key 3991 }); 3992 3993 // ========================================== 3994 // DECISION LOGIC 3995 // ========================================== 3996 3997 // CASE 1: Has assembly delivery but NO special product â ADD 3998 if (hasAssemblyDelivery && !specialProductItem) { 3999 debugLog('[Global Cart Monitor] ACTION: Adding special product'); 4000 debugLog('[Global Cart Monitor] Reason: Cart has assembly delivery items but missing special fee product'); 4001 4002 const addResponse = await fetch('/cart/add.js', { 4003 method: 'POST', 4004 headers: { 'Content-Type': 'application/json' }, 4005 body: JSON.stringify({ 4006 items: [{ id: CONFIG.specialVariantId, quantity: 1 }] 4007 }) 4008 }); 4009 4010 if (addResponse.ok) { 4011 const addedItem = await addResponse.json(); 4012 debugLog('[Global Cart Monitor] Special product added successfully:', addedItem); 4013 await updateCartUI(); 4014 } else { 4015 const errorData = await addResponse.json(); 4016 debugError('[Global Cart Monitor] Failed to add special product:', { 4017 status: addResponse.status, 4018 error: errorData 4019 }); 4020 } 4021 } 4022 // CASE 2: Has special product but NO assembly delivery â REMOVE 4023 else if (!hasAssemblyDelivery && specialProductItem) { 4024 debugLog('[Global Cart Monitor] ACTION: Removing special product'); 4025 debugLog('[Global Cart Monitor] Reason: No assembly delivery items found in cart'); 4026 4027 const removeResponse = await fetch('/cart/change.js', { 4028 method: 'POST', 4029 headers: { 'Content-Type': 'application/json' }, 4030 body: JSON.stringify({ 4031 id: specialProductItem.key, 4032 quantity: 0 4033 }) 4034 }); 4035 4036 if (removeResponse.ok) { 4037 const updatedCart = await removeResponse.json(); 4038 debugLog('[Global Cart Monitor] Special product removed successfully'); 4039 debugLog('[Global Cart Monitor] Updated cart item count:', updatedCart.item_count); 4040 await updateCartUI(); 4041 } else { 4042 const errorData = await removeResponse.json(); 4043 debugError('[Global Cart Monitor] Failed to remove special product:', { 4044 status: removeResponse.status, 4045 error: errorData 4046 }); 4047 } 4048 } 4049 // CASE 3: Both present or both absent â No action needed 4050 else { 4051 debugLog('[Global Cart Monitor] Cart state is correct - no action needed'); 4052 debugLog('[Global Cart Monitor] Current state:', { 4053 hasAssemblyDelivery, 4054 hasSpecialProduct: !!specialProductItem, 4055 decision: 'No change required' 4056 }); 4057 } 4058 4059 } catch (error) { 4060 debugError('[Global Cart Monitor] Error during cart check:', error); 4061 debugError('[Global Cart Monitor] Stack trace:', error.stack); 4062 } finally { 4063 // Reset processing flag after a small delay 4064 setTimeout(() => { 4065 isProcessing = false; 4066 debugLog('[Global Cart Monitor] Processing flag released'); 4067 }, 300); 4068 } 4069 } 4070 4071 // ========================================== 4072 // EXPOSE FUNCTION GLOBALLY 4073 // ========================================== 4074 4075 /** 4076 * Make the check function available to other scripts 4077 * Usage: window.checkAndAddSpecialProduct() 4078 */ 4079 window.checkAndAddSpecialProduct = checkAndAddSpecialProduct; 4080 debugLog('[Global Cart Monitor] Function exposed globally as window.checkAndAddSpecialProduct()'); 4081 4082 // ========================================== 4083 // EVENT LISTENERS FOR CART CHANGES 4084 // ========================================== 4085 4086 /** 4087 * Listen to Shopify's native cart events 4088 * Trigger our special product check AFTER Shopify completes its cart operations 4089 */ 4090 4091 // Listen for Shopify's cart update events
4092 document.addEventListener('cart:updated', () => { 4093 debugLog('[Global Cart Monitor] cart:updated event detected'); 4094 debugLog('[Global Cart Monitor] Scheduling cart check in 100ms...'); 4095 setTimeout(checkAndAddSpecialProduct, 100); 4096 }); 4097 4098 // Listen for custom events from cart drawer/page 4099 document.addEventListener('cart:refresh', () => { 4100 debugLog('[Global Cart Monitor] cart:refresh event detected'); 4101 debugLog('[Global Cart Monitor] Scheduling cart check in 100ms...'); 4102 setTimeout(checkAndAddSpecialProduct, 100); 4103 }); 4104 4105 // Listen for Shopify sections rendering (when cart updates) 4106 document.addEventListener('shopify:section:load', (event) => { 4107 if (event.detail && event.detail.sectionId && event.detail.sectionId.includes('cart')) { 4108 debugLog('[Global Cart Monitor] Cart section loaded:', event.detail.sectionId); 4109 debugLog('[Global Cart Monitor] Scheduling cart check in 150ms...'); 4110 setTimeout(checkAndAddSpecialProduct, 150); 4111 } 4112 }); 4113 4114 // Also listen for page visibility changes (when user returns to tab) 4115 document.addEventListener('visibilitychange', () => { 4116 if (!document.hidden) { 4117 debugLog('[Global Cart Monitor] Page became visible, performing check...'); 4118 setTimeout(checkAndAddSpecialProduct, 200); 4119 } 4120 }); 4121 4122 // Listen for Shopify's form submission complete event 4123 document.addEventListener('submit', (event) => { 4124 if (event.target && event.target.querySelector('[name="id"]')) { 4125 debugLog('[Global Cart Monitor] Form submission detected, scheduling check...'); 4126 setTimeout(checkAndAddSpecialProduct, 500); 4127 } 4128 }); 4129 4130 // Watch for cart icon bubble updates (indicates cart changed) 4131 const cartBubble = document.querySelector('.cart-count-bubble'); 4132 if (cartBubble) { 4133 const observer = new MutationObserver(() => { 4134 debugLog('[Global Cart Monitor] Cart count changed, scheduling check...'); 4135 setTimeout(checkAndAddSpecialProduct, 100); 4136 }); 4137 observer.observe(cartBubble, { childList: true, characterData: true, subtree: true }); 4138 debugLog('[Global Cart Monitor] Watching cart count bubble for changes'); 4139 } 4140 4141 // Listen for remove button clicks to trigger faster updates 4142 document.addEventListener('click', (event) => { 4143 if (event.target.closest('cart-remove-button') || event.target.closest('.cart-remove') || event.target.closest('[name="minus"]')) { 4144 debugLog('[Global Cart Monitor] Cart interaction detected (remove/minus), scheduling check...'); 4145 // Wait longer (1.5s) to ensure Shopify's native update finishes first 4146 setTimeout(() => checkAndAddSpecialProduct({ force: true }), 1500); 4147 } 4148 }); 4149 4150 debugLog('[Global Cart Monitor] Event listeners installed for cart changes'); 4151 4152 // ========================================== 4153 // INITIALIZATION 4154 // ========================================== 4155 4156 /** 4157 * Run initial check on page load 4158 * Delayed to ensure DOM and other scripts are ready 4159 */ 4160 if (document.readyState === 'loading') { 4161 debugLog('[Global Cart Monitor] Waiting for DOMContentLoaded...'); 4162 document.addEventListener('DOMContentLoaded', () => { 4163 debugLog('[Global Cart Monitor] DOM ready, scheduling initial check in 300ms...'); 4164 setTimeout(() => checkAndAddSpecialProduct({ force: true }), 300); 4165 }); 4166 } else { 4167 debugLog('[Global Cart Monitor] DOM already loaded, scheduling initial check in 300ms...'); 4168 setTimeout(() => checkAndAddSpecialProduct({ force: true }), 300); 4169 } 4170 4171 debugLog('[Global Cart Monitor] Initialized successfully'); 4172 4173})(); 4174 4175</script>
4175 4176
4177<script> 4178/** 4179 * ============================================================================ 4180 * CART ORDER FIXER 4181 * ============================================================================ 4182 * 4183 * File: global-cart-monitor.liquid (second
4183<script> block) 4184 * Author: Mateli Dev Team 4185 * Updated: 2026-02-27 4186 * 4187 * PURPOSE: 4188 * Shopify does not guarantee cart item ordering on the checkout page. 4189 * Products with a price of Â¥0 ("free items", e.g. assembly options) that 4190 * appear BEFORE paid items in the cart object can cause the checkout page 4191 * to display items in the wrong order, leading to customer confusion. 4192 * 4193 * This script ensures free items are always at the END of the cart, 4194 * after all paid items. 4195 * 4196 * STRATEGY: 4197 * Shopify always adds newly added items to the TOP of the cart. 4198 * We exploit this by: 4199 * 1. Detecting if any paid item sits after a free item (wrong order) 4200 * 2. Removing only the misplaced paid items (via /cart/update.js, bulk) 4201 * 3. Re-adding those paid items (via /cart/add.js) â they go to the top 4202 * 4. Free items naturally stay at the bottom â correct order â 4203 * 4204 * TIMING: 4205 * - Runs automatically 500ms after page load 4206 * - Can be triggered manually via window.fixCartOrder() 4207 * 4208 * UI REFRESH: 4209 * After reordering, the script refreshes the UI without a full page reload: 4210 * - Cart drawer (#CartDrawer-CartItems) â via Section Rendering API 4211 * - Cart icon bubble â via Section Rendering API 4212 * - Cart page (#main-cart-items) â targeted innerHTML replacement 4213 * (only the .card-item-frame content is replaced, not the entire section) 4214 * 4215 * DEPENDENCIES: 4216 * - window.updateAllCartUIComponents() from the Global Cart Monitor IIFE 4217 * (exposed globally on line ~348 of this file) 4218 * - Shopify Section Rendering API (?sections=...) 4219 * 4220 * EXPOSED GLOBALS: 4221 * - window.fixCartOrder() â trigger a cart order check + fix 4222 * ============================================================================ 4223 */ 4224(function () { 4225 'use strict'; 4226 4227 // ========================================================================== 4228 // LOGGING SYSTEM 4229 // ========================================================================== 4230 // Set FIX_DEBUG to false to silence all logs in production. 4231 // Errors are always logged regardless of this flag. 4232 // 4233 // Log format: [CartOrderFixer][Tag] Message 4234 // Tags used: 4235 // Init â Initialization / setup 4236 // Check â Order detection logic 4237 // Backup â Saving original cart state 4238 // Detect â Identifying which items need to move 4239 // Remove â Removing items from cart (/cart/update.js) 4240 // Re-add â Adding items back (/cart/add.js) 4241 // Verify â Post-fix verification 4242 // UI â Cart UI refresh operations 4243 // Main â Top-level flow control 4244 // ========================================================================== 4245 4246 const FIX_DEBUG = false; 4247 4248 const FixLog = { 4249 /** 4250 * Formats a log message with the standard prefix. 4251 * @param {string} tag - Category tag (e.g. 'Check', 'Remove', 'UI') 4252 * @param {string} msg - Human-readable message 4253 * @returns {string} Formatted string 4254 */ 4255 _fmt(tag, msg) { 4256 return `[CartOrderFixer][${tag}] ${msg}`; 4257 }, 4258 4259 /** Standard info log (only when FIX_DEBUG is true) */ 4260 info(tag, msg, ...data) { 4261 if (FIX_DEBUG) console.log(this._fmt(tag, msg), ...data); 4262 }, 4263 4264 /** Warning log (only when FIX_DEBUG is true) */ 4265 warn(tag, msg, ...data) { 4266 if (FIX_DEBUG) console.warn(this._fmt(tag, msg), ...data); 4267 }, 4268 4269 /** Error log (ALWAYS logged, even in production) */ 4270 error(tag, msg, ...data) { 4271 console.error(this._fmt(tag, msg), ...data); 4272 }, 4273 4274 /** Opens a collapsed console group for visual organisation */ 4275 group(tag, label) { 4276 if (FIX_DEBUG) console.groupCollapsed(this._fmt(tag, label)); 4277 }, 4278 4279 /** Closes the current console group */ 4280 groupEnd() { 4281 if (FIX_DEBUG) console.groupEnd(); 4282 }, 4283 4284 /** 4285 * Logs a label and then renders data as a console.table. 4286 * Useful for comparing cart item lists side-by-side. 4287 */ 4288 table(tag, label, data) { 4289 if (FIX_DEBUG) { 4290 console.log(this._fmt(tag, label)); 4291 console.table(data); 4292 } 4293 }, 4294 }; 4295 4296 // ========================================================================== 4297 // STATE 4298 // ========================================================================== 4299 4300 /** Prevents concurrent runs of fixCartOrder() */ 4301 let isFixing = false; 4302 4303 // ========================================================================== 4304 // HELPER: ORDER DETECTION 4305 // ========================================================================== 4306 4307 /** 4308 * Checks whether the cart item order is incorrect. 4309 * 4310 * "Incorrect" means: at least one PAID item (final_price > 0) appears 4311 * AFTER a FREE item (final_price === 0) in the cart array. 4312 * 4313 * @param {Array} items - Array of cart item objects from /cart.js 4314 * @returns {boolean} true if the cart needs reordering 4315 */
4316 function cartNeedsReorder(items) { 4317 let seenFree = false; 4318 for (const item of items) { 4319 if (item.final_price === 0) { 4320 seenFree = true; 4321 } else if (seenFree) { 4322 // Found a paid item after a free item â wrong order 4323 return true; 4324 } 4325 } 4326 return false; 4327 } 4328 4329 /** 4330 * Returns free items that are NOT already at the tail of the cart. 4331 * (Currently unused â kept for reference/debugging.) 4332 * 4333 * @param {Array} items - Array of cart item objects from /cart.js 4334 * @returns {Array} Misplaced free items 4335 */ 4336 function getMisplacedFreeItems(items) { 4337 let lastPaidIndex = -1; 4338 for (let i = items.length - 1; i >= 0; i--) { 4339 if (items[i].final_price > 0) { 4340 lastPaidIndex = i; 4341 break; 4342 } 4343 } 4344 return items.filter((item, idx) => item.final_price === 0 && idx < lastPaidIndex); 4345 } 4346 4347 // ========================================================================== 4348 // HELPER: UI REFRESH â MAIN ENTRY POINT 4349 // ========================================================================== 4350 4351 /** 4352 * Refreshes all cart-related UI components after a reorder operation. 4353 * 4354 * Strategy: 4355 * 1. If window.updateAllCartUIComponents exists (from Global Cart Monitor), 4356 * use it to update the drawer + bubble, then do a targeted cart page refresh. 4357 * 2. Otherwise, fall back to fetching sections manually via the 4358 * Shopify Section Rendering API. 4359 * 4360 * The cart page refresh is TARGETED: only the item list (.card-item-frame) 4361 * and footer totals are replaced â not the entire section (which would 4362 * destroy event listeners, CSS, and JavaScript state). 4363 */ 4364 async function refreshCartUI() { 4365 FixLog.group('UI', 'ð UI Refresh â start'); 4366 4367 try { 4368 // ââ Path A: Use the global helper from Global Cart Monitor ââ 4369 if (typeof window.updateAllCartUIComponents === 'function') { 4370 FixLog.info('UI', 'Found window.updateAllCartUIComponents() â using it for drawer + bubble'); 4371 await window.updateAllCartUIComponents(); 4372 FixLog.info('UI', 'â Drawer & bubble updated via global helper'); 4373 4374 // The global helper handles drawer + bubble, but not our custom cart page. 4375 // We handle the cart page table separately with a targeted refresh. 4376 await refreshCartPageTable(); 4377 4378 FixLog.info('UI', 'â UI Refresh complete (Path A: global helper)'); 4379 return; 4380 } 4381 4382 // ââ Path B: Fallback â manually fetch sections ââ 4383 FixLog.warn('UI', 'window.updateAllCartUIComponents not found â using manual fallback'); 4384 await refreshUIManualFallback(); 4385 FixLog.info('UI', 'â UI Refresh complete (Path B: manual fallback)'); 4386 4387 } catch (err) { 4388 FixLog.error('UI', 'â UI refresh failed:', err.message); 4389 FixLog.error('UI', 'Stack:', err.stack); 4390 } finally { 4391 FixLog.groupEnd(); 4392 } 4393 } 4394 4395 // ========================================================================== 4396 // HELPER: UI REFRESH â MANUAL FALLBACK 4397 // ========================================================================== 4398 4399 /** 4400 * Fallback UI refresh when window.updateAllCartUIComponents is not available. 4401 * Fetches sections directly from the Shopify Section Rendering API and 4402 * injects the updated HTML into the DOM. 4403 * 4404 * Sections fetched: 4405 * - cart-icon-bubble (always) 4406 * - cart-drawer (if drawer element exists) 4407 * - warehouse-cart section (if on cart page, detected via #cart form) 4408 */ 4409 async function refreshUIManualFallback() { 4410 const sectionsToFetch = ['cart-icon-bubble']; 4411 4412 // ââ Detect available UI components ââ 4413 const drawerEl = document.querySelector('cart-drawer'); 4414 if (drawerEl) { 4415 sectionsToFetch.push('cart-drawer'); 4416 FixLog.info('UI', 'Detected cart drawer in DOM'); 4417 } 4418 4419 // Detect cart page section by finding the #cart form and walking up to 4420 // its parent .shopify-section wrapper
4421 let cartPageSectionId = null; 4422 const cartForm = document.getElementById('cart') 4423 || document.querySelector('form[action="/cart"]'); 4424 if (cartForm) { 4425 const sectionEl = cartForm.closest('.shopify-section'); 4426 if (sectionEl) { 4427 cartPageSectionId = sectionEl.id.replace(/^shopify-section-/, ''); 4428 if (cartPageSectionId) { 4429 sectionsToFetch.push(cartPageSectionId); 4430 FixLog.info('UI', 'Detected cart page section: ' + cartPageSectionId); 4431 } 4432 } 4433 } 4434 4435 FixLog.info('UI', 'Fetching ' + sectionsToFetch.length + ' section(s): ' + sectionsToFetch.join(', ')); 4436 const res = await fetch(window.location.pathname + '?sections=' + sectionsToFetch.join(',')); 4437 const data = await res.json(); 4438 FixLog.info('UI', 'Sections fetched â HTTP ' + res.status); 4439 4440 // ââ 1. Update cart icon bubble ââ 4441 const bubble = document.getElementById('cart-icon-bubble'); 4442 if (bubble && data['cart-icon-bubble']) { 4443 bubble.innerHTML = data['cart-icon-bubble']; 4444 FixLog.info('UI', 'â Cart icon bubble updated'); 4445 } else { 4446 FixLog.info('UI', 'âï¸ Cart icon bubble â no update needed'); 4447 } 4448 4449 // ââ 2. Update cart drawer ââ 4450 if (drawerEl && data['cart-drawer']) { 4451 const doc = new DOMParser().parseFromString(data['cart-drawer'], 'text/html'); 4452 4453 // Replace drawer items 4454 const currentItems = drawerEl.querySelector('#CartDrawer-CartItems'); 4455 const newItems = doc.getElementById('CartDrawer-CartItems'); 4456 if (currentItems && newItems) { 4457 currentItems.innerHTML = newItems.innerHTML; 4458 FixLog.info('UI', 'â Cart drawer items updated'); 4459 } 4460 4461 // Replace drawer footer (subtotal, checkout button, etc.) 4462 const currentFooter = drawerEl.querySelector('.drawer__footer'); 4463 const newFooter = doc.querySelector('.drawer__footer'); 4464 if (currentFooter && newFooter) { 4465 currentFooter.innerHTML = newFooter.innerHTML; 4466 FixLog.info('UI', 'â Cart drawer footer updated'); 4467 } 4468 } else { 4469 FixLog.info('UI', 'âï¸ Cart drawer â not present or no data'); 4470 } 4471 4472 // ââ 3. Update cart page (targeted â items table + footer only) ââ 4473 if (cartPageSectionId && data[cartPageSectionId]) { 4474 FixLog.info('UI', 'Updating cart page section (targeted)...'); 4475 const doc = new DOMParser().parseFromString(data[cartPageSectionId], 'text/html'); 4476 4477 // Replace only the card-item-frame container (the product list table) 4478 const currentContainer = document.querySelector('#main-cart-items .card-item-frame.js-contents'); 4479 const newContainer = doc.querySelector('.card-item-frame.js-contents'); 4480 if (currentContainer && newContainer) { 4481 currentContainer.innerHTML = newContainer.innerHTML; 4482 FixLog.info('UI', 'â Cart page items table updated (targeted)'); 4483 } else { 4484 FixLog.warn('UI', 'â ï¸ Could not find .card-item-frame.js-contents for targeted update'); 4485 } 4486 4487 // Replace footer totals 4488 const currentPageFooter = document.getElementById('main-cart-footer'); 4489 const newPageFooter = doc.getElementById('main-cart-footer'); 4490 if (currentPageFooter && newPageFooter) { 4491 const currentContents = currentPageFooter.querySelector('.js-contents'); 4492 const newContents = newPageFooter.querySelector('.js-contents'); 4493 if (currentContents && newContents) { 4494 currentContents.innerHTML = newContents.innerHTML; 4495 FixLog.info('UI', 'â Cart page footer/totals updated'); 4496 } 4497 } 4498 } else { 4499 FixLog.info('UI', 'âï¸ Cart page â not on cart page or no section data'); 4500 } 4501 } 4502 4503 // ========================================================================== 4504 // HELPER: UI REFRESH â CART PAGE TABLE (TARGETED) 4505 // ========================================================================== 4506 4507 /** 4508 * Performs a targeted refresh of only the cart page items table. 4509 * 4510 * Called after window.updateAllCartUIComponents() (which handles the 4511 * drawer and bubble) to additionally refresh the cart page content. 4512 * 4513 * Only executes if #main-cart-items is found in the DOM (i.e. we are 4514 * on the /cart page). 4515 * 4516 * What gets replaced: 4517 * - .card-item-frame.js-contents â the product list table 4518 * - #main-cart-footer .js-contents â the subtotal / totals section 4519 * 4520 * What is NOT replaced: 4521 * - CSS, JavaScript, delivery options, notes, chuuijikou, etc. 4522 */ 4523 async function refreshCartPageTable() { 4524 const mainCartItems = document.getElementById('main-cart-items'); 4525 4526 if (!mainCartItems) { 4527 FixLog.info('UI', 'Not on cart page (no #main-cart-items found) â skipping table refresh'); 4528 return; 4529 } 4530 4531 FixLog.info('UI', 'ð On cart page â performing targeted table refresh...'); 4532 4533 try { 4534 // Read the section ID from the data-id attribute set by Shopify 4535 // (e.g. <div id="main-cart-items" data-id="template--12345__warehouse-cart">) 4536 const sectionId = mainCartItems.dataset.id; 4537 if (!sectionId) { 4538 FixLog.warn('UI', 'No data-id attribute found on #main-cart-items â cannot fetch section'); 4539 return; 4540 } 4541 FixLog.info('UI', 'Section ID: ' + sectionId); 4542 4543 // Fetch fresh HTML for this section 4544 const res = await fetch(window.location.pathname + '?sections=' + sectionId); 4545 const data = await res.json(); 4546 const html = data[sectionId]; 4547 4548 if (!html) { 4549 FixLog.warn('UI', 'Section Rendering API returned no HTML for: ' + sectionId); 4550 return; 4551 } 4552 FixLog.info('UI', 'Section HTML fetched (' + html.length + ' chars)'); 4553 4554 const doc = new DOMParser().parseFromString(html, 'text/html'); 4555 4556 // ââ Replace cart items table ââ 4557 const currentContainer = mainCartItems.querySelector('.card-item-frame.js-contents'); 4558 const newContainer = doc.querySelector('.card-item-frame.js-contents'); 4559 4560 if (currentContainer && newContainer) { 4561 currentContainer.innerHTML = newContainer.innerHTML; 4562 FixLog.info('UI', 'â Cart page items table refreshed'); 4563 } else { 4564 FixLog.warn('UI', 'â ï¸ .card-item-frame.js-contents not found â table not refreshed'); 4565 FixLog.info('UI', ' currentContainer found:', !!currentContainer); 4566 FixLog.info('UI', ' newContainer found:', !!newContainer); 4567 } 4568 4569 // ââ Replace footer totals ââ 4570 const currentFooter = document.getElementById('main-cart-footer'); 4571 if (currentFooter) { 4572 const newFooter = doc.getElementById('main-cart-footer'); 4573 if (newFooter) { 4574 const currentContents = currentFooter.querySelector('.js-contents'); 4575 const newContents = newFooter.querySelector('.js-contents'); 4576 if (currentContents && newContents) { 4577 currentContents.innerHTML = newContents.innerHTML; 4578 FixLog.info('UI', 'â Cart page footer/totals refreshed'); 4579 } 4580 } 4581 } 4582 4583 } catch (err) {
4584 FixLog.error('UI', 'â Failed to refresh cart page table:', err.message); 4585 } 4586 } 4587 4588 // ========================================================================== 4589 // MAIN FUNCTION: fixCartOrder() 4590 // ========================================================================== 4591 4592 /** 4593 * Main entry point â checks cart order and fixes it if needed. 4594 * 4595 * Flow: 4596 * Step 1 â Fetch current cart from /cart.js 4597 * Step 2 â Check if any paid item appears after a free item 4598 * Step 3 â Save original cart state (for logging / comparison) 4599 * Step 4 â Identify which paid items need to move to the front 4600 * Step 5 â Build the re-add payload (preserving properties & selling plans) 4601 * Step 6 â Bulk-remove misplaced paid items via /cart/update.js 4602 * Step 7 â Re-add paid items via /cart/add.js (they go to top) 4603 * Step 8 â Verify the final cart order is correct 4604 * Step 9 â Refresh all cart UI (drawer, bubble, cart page) 4605 * 4606 * @returns {Promise<void>} 4607 */ 4608 async function fixCartOrder() { 4609 // ââ Guard: prevent concurrent runs ââ 4610 if (isFixing) { 4611 FixLog.warn('Main', 'fixCartOrder() already running â skipping duplicate call'); 4612 return; 4613 } 4614 isFixing = true; 4615 FixLog.group('Main', 'ð§ fixCartOrder() â start'); 4616 4617 try { 4618 // ââââââââââââââââââââââââââââââââââââââââââââ 4619 // STEP 1: Fetch current cart 4620 // ââââââââââââââââââââââââââââââââââââââââââââ 4621 FixLog.info('Step 1', 'Fetching cart from /cart.js ...'); 4622 const cartRes = await fetch('/cart.js', { 4623 headers: { 'Content-Type': 'application/json' } 4624 }); 4625 FixLog.info('Step 1', 'HTTP ' + cartRes.status); 4626 4627 const cart = await cartRes.json(); 4628 const items = cart.items; 4629 4630 FixLog.info('Step 1', 'Cart contains ' + items.length + ' item(s), total: Â¥' + (cart.total_price / 100).toLocaleString()); 4631 FixLog.table('Step 1', 'Current cart order:', items.map((item, idx) => ({ 4632 '#': idx + 1, 4633 title: item.title, 4634 price: 'Â¥' + (item.final_price / 100).toLocaleString(), 4635 qty: item.quantity, 4636 is_free: item.final_price === 0 ? 'ð FREE' : '', 4637 variant_id: item.variant_id, 4638 key: item.key 4639 }))); 4640 4641 // Short-circuit if cart is too small to have an ordering problem 4642 if (items.length < 2) { 4643 FixLog.info('Step 1', 'Cart has fewer than 2 items â nothing to reorder'); 4644 return; 4645 } 4646 4647 // ââââââââââââââââââââââââââââââââââââââââââââ 4648 // STEP 2: Check if reorder is needed 4649 // ââââââââââââââââââââââââââââââââââââââââââââ 4650 FixLog.info('Step 2', 'Checking cart order...'); 4651 if (!cartNeedsReorder(items)) { 4652 FixLog.info('Step 2', 'â Cart order is CORRECT â all paid items come before free items'); 4653 FixLog.info('Step 2', 'No action needed. Exiting.'); 4654 return; 4655 } 4656 4657 FixLog.warn('Step 2', 'â ï¸ WRONG ORDER DETECTED â at least one paid item appears after a free item'); 4658 4659 // ââââââââââââââââââââââââââââââââââââââââââââ 4660 // STEP 3: Save original cart state 4661 // ââââââââââââââââââââââââââââââââââââââââââââ 4662 const originalCart = JSON.parse(JSON.stringify(items)); 4663 FixLog.info('Step 3', 'Original cart state saved (' + originalCart.length + ' items)'); 4664 4665 // ââââââââââââââââââââââââââââââââââââââââââââ 4666 // STEP 4: Identify paid items that need to move 4667 // ââââââââââââââââââââââââââââââââââââââââââââ 4668 // 4669 // Find the FIRST free item in the cart. Any paid item whose index 4670 // is greater than this free item's index is "misplaced" and needs 4671 // to be moved to the front. 4672 // 4673 const firstFreeIndex = items.findIndex(item => item.final_price === 0); 4674 FixLog.info('Step 4', 'First free item is at index ' + firstFreeIndex + 4675 ' ("' + items[firstFreeIndex].title + '")'); 4676 4677 const paidItemsToMove = items.filter((item, idx) => { 4678 if (item.final_price === 0) return false; 4679 return idx > firstFreeIndex; 4680 }); 4681 4682 FixLog.info('Step 4', paidItemsToMove.length + ' paid item(s) found after free items â these need to move'); 4683 FixLog.table('Step 4', 'Paid items to move:', paidItemsToMove.map(item => ({ 4684 title: item.title,
4685 price: 'Â¥' + (item.final_price / 100).toLocaleString(), 4686 qty: item.quantity, 4687 variant_id: item.variant_id, 4688 key: item.key 4689 }))); 4690 4691 if (paidItemsToMove.length === 0) { 4692 FixLog.info('Step 4', 'No paid items to move (edge case) â exiting'); 4693 return; 4694 } 4695 4696 // ââââââââââââââââââââââââââââââââââââââââââââ 4697 // STEP 5: Build re-add payload 4698 // ââââââââââââââââââââââââââââââââââââââââââââ 4699 // 4700 // We need to preserve: 4701 // - variant_id â identifies the product variant 4702 // - quantity â how many of this item 4703 // - properties â custom line item properties (e.g. assembly notes) 4704 // - selling_plan â subscription plan, if any 4705 // 4706 FixLog.info('Step 5', 'Building re-add payload...'); 4707 const paidItemsPayload = paidItemsToMove.map(item => { 4708 const entry = { 4709 id: item.variant_id, 4710 quantity: item.quantity 4711 }; 4712 4713 // Preserve custom line item properties 4714 if (item.properties && Object.keys(item.properties).length > 0) { 4715 entry.properties = item.properties; 4716 FixLog.info('Step 5', ' ð Preserving properties for "' + item.title + '":', item.properties); 4717 } 4718 4719 // Preserve selling plan (subscriptions) 4720 if (item.selling_plan_allocation && item.selling_plan_allocation.selling_plan) { 4721 entry.selling_plan = item.selling_plan_allocation.selling_plan.id; 4722 FixLog.info('Step 5', ' ð Preserving selling plan for "' + item.title + '": ' + 4723 item.selling_plan_allocation.selling_plan.id); 4724 } 4725 4726 return entry; 4727 }); 4728 FixLog.info('Step 5', 'Payload ready for ' + paidItemsPayload.length + ' item(s)'); 4729 4730 // ââââââââââââââââââââââââââââââââââââââââââââ 4731 // STEP 6: Remove misplaced paid items (bulk) 4732 // ââââââââââââââââââââââââââââââââââââââââââââ 4733 // 4734 // Uses /cart/update.js with { updates: { key: 0, key: 0, ... } } 4735 // This sets each item's quantity to 0 (removes it) in a SINGLE API call. 4736 // 4737 const updates = {}; 4738 for (const item of paidItemsToMove) { 4739 updates[item.key] = 0; 4740 } 4741 4742 FixLog.info('Step 6', 'Removing ' + Object.keys(updates).length + ' paid item(s) via POST /cart/update.js ...'); 4743 FixLog.info('Step 6', 'Request body:', JSON.stringify({ updates }, null, 2)); 4744 4745 const updateRes = await fetch('/cart/update.js', { 4746 method: 'POST', 4747 headers: { 'Content-Type': 'application/json' }, 4748 body: JSON.stringify({ updates }) 4749 }); 4750 const updatedCart = await updateRes.json(); 4751 4752 FixLog.info('Step 6', 'HTTP ' + updateRes.status + ' â cart now has ' + updatedCart.items.length + ' item(s)'); 4753 FixLog.table('Step 6', 'Cart after removal:', updatedCart.items.map((item, idx) => ({ 4754 '#': idx + 1, 4755 title: item.title, 4756 price: 'Â¥' + (item.final_price / 100).toLocaleString(), 4757 is_free: item.final_price === 0 ? 'ð FREE' : '' 4758 }))); 4759 4760 // ââââââââââââââââââââââââââââââââââââââââââââ 4761 // STEP 7: Re-add paid items (they go to top) 4762 // ââââââââââââââââââââââââââââââââââââââââââââ 4763 // 4764 // Uses /cart/add.js with { items: [...] } 4765 // Shopify places newly added items at the TOP of the cart, 4766 // so after this call the order will be: 4767 // [newly added paid items] â [remaining free items] 4768 // 4769 FixLog.info('Step 7', 'Re-adding ' + paidItemsPayload.length + ' paid item(s) via POST /cart/add.js ...'); 4770 FixLog.info('Step 7', 'Request body:', JSON.stringify({ items: paidItemsPayload }, null, 2)); 4771 4772 const addRes = await fetch('/cart/add.js', { 4773 method: 'POST', 4774 headers: { 'Content-Type': 'application/json' }, 4775 body: JSON.stringify({ items: paidItemsPayload }) 4776 }); 4777 4778 if (!addRes.ok) { 4779 const errorBody = await addRes.text(); 4780 FixLog.error('Step 7', 'â /cart/add.js failed â HTTP ' + addRes.status); 4781 FixLog.error('Step 7', 'Response:', errorBody); 4782 return; 4783 } 4784 FixLog.info('Step 7', 'HTTP ' + addRes.status + ' â items re-added successfully'); 4785 4786 // ââââââââââââââââââââââââââââââââââââââââââââ 4787 // STEP 8: Verify final cart order 4788 // ââââââââââââââââââââââââââââââââââââââââââââ 4789 FixLog.info('Step 8', 'Fetching final cart state for verification...'); 4790 const verifyRes = await fetch('/cart.js', { headers: { 'Content-Type': 'application/json' } }); 4791 const verifyCart = await verifyRes.json(); 4792 4793 FixLog.info('Step 8', 'Final cart: ' + verifyCart.items.length + ' item(s), total: Â¥' +
4794 (verifyCart.total_price / 100).toLocaleString()); 4795 FixLog.table('Step 8', 'Final cart order:', verifyCart.items.map((item, idx) => ({ 4796 '#': idx + 1, 4797 title: item.title, 4798 price: 'Â¥' + (item.final_price / 100).toLocaleString(), 4799 qty: item.quantity, 4800 is_free: item.final_price === 0 ? 'ð FREE' : '' 4801 }))); 4802 4803 // Compare item counts to detect data loss 4804 const originalCount = originalCart.reduce((sum, i) => sum + i.quantity, 0); 4805 const finalCount = verifyCart.items.reduce((sum, i) => sum + i.quantity, 0); 4806 const originalTotalQty = originalCart.length; 4807 const finalTotalQty = verifyCart.items.length; 4808 4809 FixLog.info('Step 8', 'Item count comparison: ' + originalCount + ' â ' + finalCount + 4810 ' (line items: ' + originalTotalQty + ' â ' + finalTotalQty + ')'); 4811 4812 if (originalCount !== finalCount) { 4813 FixLog.error('Step 8', 'â QUANTITY MISMATCH! Original total qty: ' + originalCount + 4814 ', Final total qty: ' + finalCount + ' â something went wrong!'); 4815 } 4816 4817 const orderIsCorrect = !cartNeedsReorder(verifyCart.items); 4818 if (orderIsCorrect) { 4819 FixLog.info('Step 8', 'ð Cart order is now CORRECT â paid items first, free items at the end'); 4820 } else { 4821 FixLog.warn('Step 8', 'â ï¸ Cart order is STILL incorrect after fix! May need manual intervention.'); 4822 } 4823 4824 // ââââââââââââââââââââââââââââââââââââââââââââ 4825 // STEP 9: Refresh all cart UI 4826 // ââââââââââââââââââââââââââââââââââââââââââââ 4827 FixLog.info('Step 9', 'Refreshing cart UI (drawer, bubble, cart page)...'); 4828 await refreshCartUI(); 4829 FixLog.info('Step 9', 'â All cart UI components refreshed'); 4830 4831 } catch (err) { 4832 FixLog.error('Main', 'â Unhandled exception during cart order fix:'); 4833 FixLog.error('Main', 'Message: ' + err.message); 4834 FixLog.error('Main', 'Stack: ' + err.stack); 4835 } finally { 4836 isFixing = false; 4837 FixLog.info('Main', 'ð fixCartOrder() â end'); 4838 FixLog.groupEnd(); 4839 } 4840 } 4841 4842 // ========================================================================== 4843 // EXPOSE GLOBALLY 4844 // ========================================================================== 4845 4846 window.fixCartOrder = fixCartOrder; 4847 FixLog.info('Init', 'ð Exposed globally as window.fixCartOrder()'); 4848 4849 // ========================================================================== 4850 // AUTO-RUN ON PAGE LOAD 4851 // ========================================================================== 4852 4853 /** 4854 * Schedules fixCartOrder() to run 500ms after DOM ready. 4855 * The delay ensures Shopify's own cart scripts have initialised first. 4856 */ 4857 function runOnLoad() { 4858 FixLog.info('Init', 'â±ï¸ Scheduling fixCartOrder() in 500ms...'); 4859 setTimeout(fixCartOrder, 500); 4860 } 4861 4862 // Only auto-run on the cart page â no need to reorder on product pages 4863 const isCartPage = window.location.pathname === '/cart' 4864 || window.location.pathname.startsWith('/cart?'); 4865 4866 if (isCartPage) { 4867 if (document.readyState === 'loading') { 4868 FixLog.info('Init', 'DOM still loading â will run after DOMContentLoaded'); 4869 document.addEventListener('DOMContentLoaded', runOnLoad); 4870 } else { 4871 FixLog.info('Init', 'DOM already loaded â scheduling immediately'); 4872 runOnLoad(); 4873 } 4874 FixLog.info('Init', 'â CartOrderFixer initialised (cart page detected)'); 4875 } else { 4876 FixLog.info('Init', 'âï¸ Not on cart page â auto-run skipped (use window.fixCartOrder() to run manually)'); 4877 } 4878 4879})(); 4880</script>
4880 4881 4882 4883 4884 4885 <style> 4886 #mc-modal { 4887 --mc-cream: #f4eee2; 4888 --mc-arc: #b4b1b4; 4889 --mc-btn: #938b83; 4890 --mc-btn-text: #fff; 4891 --mc-title: #6f6f6f; 4892 --mc-text: #8a8580; 4893 position: fixed; 4894 left: 0px; 4895 bottom: 0px; 4896 z-index: 9999; 4897 width: min(440px, calc(100vw - 40px)); 4898 transform: translateX(calc(-100% - 40px)); 4899 opacity: 0; 4900 transition: 4901 transform 0.42s cubic-bezier(0.22, 0.61, 0.36, 1), 4902 opacity 0.42s ease; 4903 pointer-events: none; 4904 } 4905 #mc-modal.is-visible { 4906 transform: none; 4907 opacity: 1; 4908 pointer-events: auto; 4909 } 4910 #mc-modal .mc-card { 4911 position: relative; 4912 overflow: hidden; 4913 width: 100%; 4914 background: var(--mc-cream); 4915 border-radius: 6px; 4916 padding: 28px 28px 0px; 4917 text-align: center; 4918 box-shadow: 0 12px 38px rgba(0, 0, 0, 0.26); 4919 } 4920 #mc-modal .mc-close { 4921 position: absolute; 4922 top: 8px; 4923 right: 14px; 4924 border: 0; 4925 background: none; 4926 font-size: 26px; 4927 line-height: 1; 4928 cursor: pointer; 4929 color: #9a948c; 4930 opacity: 0.8; 4931 z-index: 2; 4932 } 4933 #mc-modal .mc-close:hover { 4934 opacity: 1; 4935 } 4936 #mc-modal .mc-logo { 4937 width: 168px; 4938 height: auto; 4939 margin: 4px auto 16px; 4940 display: block; 4941 } 4942 #mc-modal .mc-title { 4943 display: block; 4944 margin: 0; 4945 color: rgba(51, 51, 51, 1); 4946 width: auto; 4947 height: auto; 4948 font-size: 38px; 4949 position: relative; 4950 font-style: normal; 4951 text-align: center; 4952 flex-shrink: 0; 4953 font-family: 4954 Fira Sans, 4955 sans-serif; 4956 font-weight: 300; 4957 line-height: 1.1em; 4958 text-transform: none; 4959 top: unset; 4960 left: unset; 4961 transition-duration: 0s; 4962 transition-delay: 0s; 4963 transform: none; 4964 right: auto; 4965 bottom: auto; 4966 letter-spacing: normal; 4967 } 4968 #mc-modal .mc-title small { 4969 display: block; 4970 margin-top: 2px; 4971 color: rgba(103, 105, 112, 1); 4972 width: auto; 4973 height: auto; 4974 font-size: 25px; 4975 max-width: 350px; 4976 position: relative; 4977 font-style: normal; 4978 text-align: center; 4979 flex-shrink: 0; 4980 font-family: 4981 Noto Sans JP, 4982 sans-serif; 4983 font-weight: 300; 4984 line-height: 1.25em; 4985 top: unset; 4986 left: unset; 4987 transition-duration: 0s; 4988 transition-delay: 0s; 4989 transform: none; 4990 right: auto; 4991 bottom: auto; 4992 letter-spacing: normal; 4993 } 4994 #mc-modal .mc-sub { 4995 margin: 12px 4px 18px; 4996 color: rgba(51, 51, 51, 1); 4997 width: auto; 4998 height: auto; 4999 max-width: 350px; 5000 position: relative; 5001 font-style: normal; 5002 text-align: center; 5003 flex-shrink: 0; 5004 font-family: 5005 Noto Sans JP, 5006 sans-serif; 5007 font-weight: 200; 5008 line-height: 1.25em; 5009 font-size: 18px; 5010 margin-top: 18px; 5011 top: unset; 5012 left: unset; 5013 transition-duration: 0s; 5014 transition-delay: 0s; 5015 transform: none; 5016 right: auto; 5017 bottom: auto; 5018 letter-spacing: normal; 5019 } 5020 #mc-modal .mc-form { 5021 display: flex; 5022 flex-direction: column; 5023 gap: 11px; 5024 align-items: center; 5025 } 5026 #mc-modal input[type='email'] { 5027 width: 100%; 5028 max-width: 290px; 5029 padding: 12px 18px; 5030 font: inherit; 5031 border: 1px solid #e2dccf; 5032 border-radius: 24px; 5033 background: #fff; 5034 color: #4a4a4a; 5035 text-align: center; 5036 } 5037 #mc-modal input[type='email']::placeholder { 5038 color: #bdb6ab; 5039 } 5040 #mc-modal button[type='submit'] { 5041 width: 100%; 5042 max-width: 290px; 5043 padding: 12px; 5044 font: inherit; 5045 cursor: pointer; 5046 border: 0; 5047 border-radius: 24px; 5048 background: var(--mc-btn); 5049 color: var(--mc-btn-text); 5050 letter-spacing: 0.3em; 5051 transition: opacity 0.2s; 5052 } 5053 #mc-modal button[type='submit']:hover { 5054 opacity: 0.9; 5055 } 5056 #mc-modal .mc-success { 5057 display: none; 5058 color: var(--mc-title); 5059 margin: 12px 4px 18px; 5060 color: rgba(51, 51, 51, 1); 5061 width: auto; 5062 height: auto; 5063 max-width: 350px; 5064 position: relative; 5065 font-style: normal; 5066 text-align: center; 5067 flex-shrink: 0; 5068 font-family: 5069 Noto Sans JP, 5070 sans-serif; 5071 font-weight: 200; 5072 line-height: 1.25em; 5073 font-size: 18px; 5074 margin-top: 18px;
5075 top: unset; 5076 left: unset; 5077 transition-duration: 0s; 5078 transition-delay: 0s; 5079 transform: none; 5080 right: auto; 5081 bottom: auto; 5082 letter-spacing: normal; 5083 } 5084 #mc-modal.is-done .mc-form { 5085 display: none; 5086 } 5087 #mc-modal.is-done .mc-success { 5088 display: block; 5089 } 5090 #mc-modal .mc-mail-block { 5091 width: 100%; 5092 position: relative; 5093 display: flex; 5094 height: 150px; 5095 margin-top: 50px; 5096 } 5097 #mc-modal .mc-mail-wrap { 5098 position: absolute; 5099 left: 50%; 5100 bottom: 90px; 5101 z-index: 1; 5102 transform: translate(-50%, 150px); 5103 opacity: 0; 5104 transition: 5105 transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1), 5106 opacity 0.4s ease; 5107 transition-delay: 0.62s; 5108 } 5109 #mc-modal.is-visible .mc-mail-wrap { 5110 transform: translate(-50%, 0); 5111 opacity: 1; 5112 } 5113 #mc-modal .mc-mail { 5114 display: block; 5115 width: 44px; 5116 height: auto; 5117 } 5118 #mc-modal .mc-card::after { 5119 content: ''; 5120 position: absolute; 5121 left: 50%; 5122 bottom: 0; 5123 transform: translate(-50%, 150px); 5124 opacity: 0; 5125 transition: 5126 transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1), 5127 opacity 0.35s ease; 5128 transition-delay: 0.42s; 5129 width: 170%; 5130 height: 150px; 5131 background-color: #b2acaf; 5132 /* horizontal 50% = corners meet in a dome; vertical 90px = dome height */ 5133 border-radius: 50% 50% 0 0 / 90px 90px 0 0; 5134 z-index: 0; 5135 } 5136 #mc-modal.is-visible .mc-card::after { 5137 transform: translate(-50%, 0); 5138 opacity: 1; 5139 } 5140 /* teaser pill: desktop hidden, mobile shown (see media query) */ 5141 #mc-modal .mc-bubble { 5142 display: none; 5143 } 5144 #mc-modal .mc-bubble-close, 5145 #mc-modal .mc-bubble-open { 5146 border: 0; 5147 background: none; 5148 color: inherit; 5149 font: inherit; 5150 cursor: pointer; 5151 } 5152 @media (max-width: 600px) { 5153 /* container = bottom-left anchor; children manage their own slide */ 5154 #mc-modal { 5155 left: 0; 5156 right: auto; 5157 bottom: 0; 5158 width: auto; 5159 transform: none; 5160 opacity: 1; 5161 pointer-events: none; 5162 } 5163 #mc-modal.is-visible { 5164 transform: none; 5165 } 5166 /* the teaser pill, shown first */ 5167 #mc-modal .mc-bubble { 5168 display: flex; 5169 align-items: center; 5170 gap: 4px; 5171 margin: 0 0 14px 14px; 5172 padding: 9px 18px 9px 12px; 5173 pointer-events: auto; 5174 background: #7d7a80; 5175 color: #fff; 5176 border-radius: 26px; 5177 box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28); 5178 transform: translateY(180%); 5179 opacity: 0; 5180 transition: 5181 transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1), 5182 opacity 0.4s ease; 5183 } 5184 #mc-modal.is-visible .mc-bubble { 5185 transform: none; 5186 opacity: 1; 5187 } 5188 #mc-modal.is-expanded .mc-bubble { 5189 transform: translateY(180%); 5190 opacity: 0; 5191 pointer-events: none; 5192 } 5193 #mc-modal .mc-bubble-close { 5194 font-size: 20px; 5195 line-height: 1; 5196 padding: 0 2px; 5197 opacity: 0.9; 5198 } 5199 #mc-modal .mc-bubble-open { 5200 font-size: 15px; 5201 } 5202 /* full card = bottom sheet, hidden until the pill is tapped */ 5203 #mc-modal .mc-card { 5204 position: fixed; 5205 left: 0; 5206 right: 0; 5207 bottom: 0; 5208 width: auto; 5209 pointer-events: auto; 5210 border-radius: 12px 12px 0 0; 5211 transform: translateY(105%); 5212 transition: transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1); 5213 } 5214 #mc-modal.is-expanded .mc-card { 5215 transform: none; 5216 } 5217 } 5218 @media (prefers-reduced-motion: reduce) { 5219 #mc-modal { 5220 transition: opacity 0.3s ease; 5221 } 5222 #mc-modal .mc-mail-wrap { 5223 transition: none; 5224 transition-delay: 0s; 5225 transform: translate(-50%, 0); 5226 opacity: 1; 5227 } 5228 #mc-modal .mc-card::after { 5229 transition: none; 5230 transition-delay: 0s; 5231 transform: translate(-50%, 0); 5232 opacity: 1; 5233 } 5234 } 5235</style> 5236 5237<aside id='mc-modal' role='complementary' aria-label='ã¡ã¼ã«ãã¬ã¸ã³' aria-hidden='true'> 5238 <div class='mc-bubble'> 5239 <button type='button' class='mc-bubble-close' aria-label='éãã'>×</button> 5240 <button type='button' class='mc-bubble-open'>ã¡ã«ãã¬ç»é²ã¯ãã¡ããã</button> 5241 </div> 5242 <div class='mc-card'> 5243 <button type='button' class='mc-close' aria-label='éãã'>×</button> 5244 <img 5245 class='mc-logo' 5246 src='//furniture.mateli.jp/cdn/shop/t/204/assets/mailchimp-modal-logo.webp?v=102144260001229804851790902732' 5247 alt='mateli' 5248 width='168' 5249 height='46' 5250 loading='lazy' 5251 ><p class='mc-title'> 5252 MAIL MAGAZINE<small>ã¡ã¼ã«ãã¬ã¸ã³</small> 5253 </p> 5254 <p class='mc-sub'>
5254ãå¾ãªå²å¼ååãè¿æ¥çºå£²ã®ææ°æ å ±ãªã© ã¡ã¼ã«ãã¬ã¸ã³é ä¿¡ä¸ï¼</p> 5255 <form class='mc-form' action='https://mateli.us10.list-manage.com/subscribe/post?u=dc049718af7b0e546c7f705c3&id=b1d49b7cc1&f_id=008546e4f0' method='post' target='mc-iframe' novalidate> 5256 <input 5257 type='email' 5258 name='EMAIL' 5259 placeholder='[email protected]' 5260 required 5261 aria-label='[email protected]' 5262 autocomplete='email' 5263 > 5264 <button type='submit'>ç»é²</button><input type='hidden' name='tags' value='14576570'><div aria-hidden='true' style='position:absolute;left:-5000px'> 5265 <input type='text' name='b_dc049718af7b0e546c7f705c3_b1d49b7cc1' tabindex='-1' value=''> 5266 </div> 5267 </form> 5268 <div class='mc-success'>ãç»é²ãããã¨ããããã¾ãï¼</div> 5269 <div class='mc-mail-block'> 5270 <div class='mc-mail-wrap' aria-hidden='true'> 5271 <img 5272 class='mc-mail' 5273 src='//furniture.mateli.jp/cdn/shop/t/204/assets/mailchimp-modal-mail.webp?v=184114491170813382431790902732' 5274 alt='' 5275 width='44' 5276 height='44' 5277 loading='lazy' 5278 > 5279 </div> 5280 </div> 5281 </div> 5282 <iframe name='mc-iframe' title='mc' style='display:none' aria-hidden='true'></iframe> 5283</aside> 5284
5285<script> 5286 (function () { 5287 var DEBUG = false; // DEV: ignore once-per-session, show every refresh 5288 var KEY = 'mc_modal_seen'; 5289 if (!DEBUG) { try { if (sessionStorage.getItem(KEY)) return; } catch (e) {} } 5290 var panel = document.getElementById('mc-modal'); 5291 if (!panel) return; 5292 var form = panel.querySelector('.mc-form'); 5293 5294 function open() { 5295 panel.setAttribute('aria-hidden', 'false'); 5296 requestAnimationFrame(function () { panel.classList.add('is-visible'); }); 5297 if (!DEBUG) { try { sessionStorage.setItem(KEY, '1'); } catch (e) {} } 5298 } 5299 function close() { 5300 panel.classList.remove('is-visible'); 5301 panel.classList.remove('is-expanded'); 5302 panel.setAttribute('aria-hidden', 'true'); 5303 } 5304 5305 panel.querySelector('.mc-close').addEventListener('click', close); 5306 var bubbleOpen = panel.querySelector('.mc-bubble-open'); 5307 var bubbleClose = panel.querySelector('.mc-bubble-close'); 5308 if (bubbleOpen) bubbleOpen.addEventListener('click', function () { panel.classList.add('is-expanded'); }); 5309 if (bubbleClose) bubbleClose.addEventListener('click', close); 5310 document.addEventListener('keydown', function (e) { if (e.key === 'Escape') close(); }); 5311 form.addEventListener('submit', function () { 5312 panel.classList.add('is-done'); // POST goes to the hidden iframe 5313 setTimeout(close, 2600); 5314 }); 5315 5316 var DELAY = DEBUG ? 500 : 4000; 5317 if (DELAY > 0) { setTimeout(open, DELAY); } 5318 else if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', open); } 5319 else { open(); } 5320 })(); 5321</script>
5321 5322 5323 <div id="shopify-block-AM05QbkZpaG5MWU93V__18228966181090706294" class="shopify-block shopify-app-block"> 5324 5325 5326
5326<script type="module" src="https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-upsell.js" defer="defer"></script>
5326 5327
5327<script type="module" src="https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-upsell-components.esm.js" defer="defer"></script>
5327 5328 5329 5330
5331<script> 5332 5333 5334 5335</script>
5335 5336
5337<script> 5338 5339 window.lbInitMode = "immediate"; 5340 5341 window.lbComponentSrc = "https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-upsell-components.esm.js";</script>
5341 5342
5343<script type="text/javascript" src="https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-utils.js" defer="defer"></script>
5343 5344 5345</div>
5345<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
5345 5346</body> 5347</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.