Green Linen Blend Button-Down Shirt & Wide Leg Pants Two-Piece Set

Green Linen Blend Button-Down Shirt & Wide Leg Pants Two-Piece Set

$21.99
people are viewing this right now
Color: green
Size:
Please select a Size
Quantity
Product was out of stock.
Product is unavailable.
Free worldwide shipping

Enjoy free shipping on every order, delivered to your doorstep no matter where you are in the world.

Free returns

Shop with confidence with our hassle-free returns policy, ensuring you love what you buy.

Sustainably made

Designed with the planet in mind, all our products are committed to sustainable practices.

Secure payments

Your payment information is always protected with our advanced, encrypted checkout security.

Description

Description

SPU:DJHH26042706
Season:Spring /Summer
Material:Blended
Style:Casual
Size:XS/S/M/L/XL/2XL/3XL
Tops Size:
SizeLengthBustSleeve Length
CMinchCMinchCMinch
XS6224.89538.06060.0
S6324.89939.06124.0
M6425.210340.66224.4
L6525.610742.16324.8
XL6626.011143.76425.2
2XL6726.411545.36525.6
3XL6826.811946.96626.0
Pants Size:
SizeWaistHipsLength
CMinchCMinchCMinch
XS6526.010040.010542.0
S6927.210440.910641.7
M7429.110842.510742.1
L7931.111244.110842.5
XL8433.111645.710942.9
2XL8935.012047.211043.3
3XL9437.012448.811143.7
*This data was obtained from manually measuring the product, it may be off by 1-2 CM.
Main Features:
Material: Lightweight breathable linen-blend fabric, soft with a natural drape, comfortable for warm weather
Design: Oversized button-down shirt with chest pockets, paired with high-waisted pleated wide leg pants, casual-chic minimalist style
Version: The loose-fitting shirt can be tucked in or worn open, while the high-waisted wide leg pants elongate legs, the monochrome green design is fresh and modern
Occasion: Office casual wear, everyday styling, weekend outings, travel, minimalist fashion
Care Instruction: Cold water gentle machine wash, tumble dry low, no bleach, low-temperature iron if needed
Available Sizes: XS, S, M, L, XL, 2XL, 3XL (consistent with the size range you provided)
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);