/* Font of the current website: Cabin (400-700). */
@font-face { font-family: "Cabin"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../fonts/cabin-tnsBXw.woff2") format("woff2"); unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB; }
@font-face { font-family: "Cabin"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../fonts/cabin-9nsBXw.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Cabin"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../fonts/cabin-Xvqdns.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
:root, html { --font: "Cabin", Arial, sans-serif; }
html, body, button, input, select, textarea, .site-header, .mobile-menu { font-family: "Cabin", Arial, sans-serif; }
h1, h2, h3, h4 { font-family: "Cabin", Arial, sans-serif; }

/* Page content, builder blocks, blog and WooCommerce account/cart/checkout. */

.flo-page { display: block; }
.flo-page .flo-entry { max-width: none; margin: 0; }
.flo-page-wide { padding: 0; }
.flo-page-woo { max-width: 1200px; margin: 0 auto; padding: 50px var(--gutter) 90px; }
.article-body { font-size: 16px; }
.article-body img { max-width: 100%; height: auto; }
.article-body blockquote { margin: 28px 0; padding-left: 22px; border-left: 2px solid var(--line); color: #4c4c47; }
.flo-archive-description { max-width: 620px; margin-top: 24px; color: var(--muted); }
.article-hero { display: block; width: calc(100% - 2 * var(--gutter)); height: auto; }
.page-section .journey-pagination, .navigation.pagination .nav-links { display: flex; justify-content: center; gap: 8px; margin-top: 45px; }
.page-numbers { display: grid; place-items: center; min-width: 45px; min-height: 45px; padding: 0 6px; border: 1px solid var(--line); font-size: 13px; }
.page-numbers.current { background: var(--ink); color: #fff; border-color: var(--ink); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Builder blocks */
.flo-block-section { position: relative; padding: 50px var(--gutter); background-size: cover; background-position: center; }
.flo-block-section.is-dark { color: #fff; }
.flo-block-row { display: flex; flex-wrap: wrap; gap: 0 28px; max-width: 1280px; margin: 0 auto; }
.flo-block-row.w-full-width { max-width: none; }
.flo-block-row.collapse { gap: 0; }
.flo-block-row.va-middle { align-items: center; }
.flo-block-row.ha-center { justify-content: center; }
.flo-block-col { flex: 0 0 calc(var(--span, 12) / 12 * 100% - 28px * (1 - var(--span, 12) / 12)); min-width: 0; }
.flo-block-row.collapse > .flo-block-col { flex-basis: calc(var(--span, 12) / 12 * 100%); }
.flo-block-col > * + * { margin-top: 1em; }
.flo-block-col p, .flo-block-text p, .flo-block-section li { font-size: 15px; line-height: 1.9; }
.flo-block-section h1 { font-size: clamp(34px, 4vw, 60px); line-height: 1.12; letter-spacing: -.04em; }
.flo-block-section h2 { font-size: clamp(26px, 3vw, 42px); line-height: 1.2; letter-spacing: -.03em; }
.flo-block-section h3 { font-size: 22px; line-height: 1.3; }
.flo-block-section a:not(.flo-btn) { text-decoration: underline; text-underline-offset: 4px; }
.flo-block-gap { height: 24px; }
.flo-block-divider { border: 0; border-top: 1px solid var(--line); margin: 24px 0; }
.flo-block-image img { display: block; max-width: 100%; height: auto; }
.flo-block-title h3 { font-size: 22px; letter-spacing: -.02em; }
.flo-btn { display: inline-flex; align-items: center; min-height: 48px; padding: 12px 24px; margin: 4px 12px 4px 0; border: 1px solid var(--shop-dark); background: var(--shop-dark); color: #fff; font-size: 14px; text-decoration: none; }
.flo-btn:hover { background: #444c3b; }
.flo-btn-outline, .flo-btn-underline, .flo-btn-link { background: transparent; color: var(--ink); }
.flo-btn-underline, .flo-btn-link { border-color: transparent; padding-left: 0; text-decoration: underline; text-underline-offset: 4px; }
.flo-btn-outline:hover { background: var(--shop-dark); color: #fff; }
.flo-block-banner { position: relative; display: block; min-height: 250px; background-size: cover; background-position: center; overflow: hidden; color: #fff; }
.flo-block-overlay, .flo-block-banner-link { position: absolute; inset: 0; }
.flo-block-textbox { position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%); z-index: 1; max-width: 100%; }
.flo-block-banner .flo-btn { color: #fff; border-color: #fff; background: transparent; }
.flo-block-slider { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; }
.flo-block-slider > * { flex: 0 0 100%; scroll-snap-align: start; }
.flo-block-gallery { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: 12px; }
.flo-block-gallery img { width: 100%; height: auto; display: block; }
.flo-block-featured, .flo-block-imagebox { display: flex; gap: 14px; align-items: flex-start; }
.flo-block-icon img { width: 28px; height: 28px; object-fit: contain; }
.flo-block-imagebox { display: block; }
.flo-block-imagebox img { width: 100%; height: auto; }
.flo-block-message { padding: 20px 24px; background: var(--shop-paper); }
.flo-block-member { text-align: center; }
.flo-block-member img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; }
.flo-block-member span { display: block; font-size: 13px; color: var(--muted); }
.flo-block-video iframe { max-width: 100%; }
.flo-block-menu { list-style: none; margin: 0; padding: 0; }
.flo-block-menu li { border-bottom: 1px solid var(--line); }
.flo-block-menu a { display: block; padding: 10px 0; text-decoration: none; }
.flo-block-products { display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: 40px 20px; }
.flo-block-posts { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: 28px; }
.flo-card a { display: block; }
.flo-card-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.flo-card h3 { margin: 16px 0 8px; font-size: 20px; line-height: 1.3; }
.flo-accordion details, .flo-accordion-item { border-top: 1px solid var(--line); padding: 14px 0; }
.flo-accordion summary { cursor: pointer; font-size: 15px; }
.flo-hide-for-small { display: block; }
@media (max-width: 849px) {
  .flo-hide-for-small { display: none !important; }
}
@media (min-width: 850px) {
  .flo-show-for-small { display: none !important; }
}
@media (max-width: 849px) {
  .flo-block-col { flex-basis: calc(var(--span-sm, 12) / 12 * 100%); }
  .flo-block-row { gap: 0; }
  .flo-block-products, .flo-block-posts, .flo-block-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flo-block-section { padding: 36px var(--gutter); }
}
@media (min-width: 1100px) {
  .flo-hide-for-medium { display: block; }
}
@media (max-width: 1099px) {
  .flo-hide-for-medium { display: none !important; }
}

/* WooCommerce forms, cart, checkout, account */
.woocommerce form .form-row { margin: 0 0 16px; }
.woocommerce label { display: block; margin-bottom: 6px; font-size: 13px; color: var(--muted); }
.woocommerce input[type="text"], .woocommerce input[type="email"], .woocommerce input[type="tel"], .woocommerce input[type="password"], .woocommerce input[type="number"], .woocommerce textarea, .woocommerce select, .woocommerce .select2-selection { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 0; background: #fff; font: inherit; color: var(--ink); }
.woocommerce select { padding-right: 30px; }
.woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #respond input#submit { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 12px 26px; border: 1px solid var(--shop-dark); border-radius: 0; background: var(--shop-dark); color: #fff; font: inherit; font-size: 14px; cursor: pointer; text-decoration: none; }
.woocommerce button.button:hover, .woocommerce a.button:hover { background: #444c3b; }
.woocommerce button.button.alt, .woocommerce a.button.alt { background: var(--shop-dark); }
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; margin: 0 0 30px; font-size: 14px; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 16px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.woocommerce table.shop_table thead th { font-size: 12px; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); }
.woocommerce table.cart img { width: 80px; height: auto; }
.woocommerce a.remove { display: inline-grid; place-items: center; width: 28px; height: 28px; font-size: 20px; line-height: 1; color: var(--muted); text-decoration: none; }
.woocommerce .cart-collaterals { display: flex; justify-content: flex-end; }
.woocommerce .cart_totals { width: min(100%, 460px); }
.woocommerce .cart_totals h2, .woocommerce-checkout h3, .woocommerce-account h2 { font-size: 24px; letter-spacing: -.02em; margin: 0 0 18px; }
.woocommerce .wc-proceed-to-checkout .button { width: 100%; }
.woocommerce .coupon { display: flex; gap: 10px; }
.woocommerce .coupon input { max-width: 240px; }
.woocommerce-checkout #customer_details { display: block; }
.woocommerce-checkout #order_review { margin-top: 30px; }
.woocommerce-checkout-payment { margin-top: 20px; padding: 24px; background: var(--shop-paper); }
.woocommerce-checkout-payment ul { list-style: none; margin: 0 0 20px; padding: 0; }
.woocommerce-checkout-payment li { padding: 10px 0; }
.woocommerce-checkout-payment input[type="radio"] { width: auto; min-height: 0; margin-right: 8px; }
.woocommerce-checkout-payment .payment_box { margin-top: 10px; font-size: 13px; color: var(--muted); }
.woocommerce #place_order { width: 100%; }
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 50px; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--line); }
.woocommerce-MyAccount-navigation a { display: block; padding: 12px 0; font-size: 14px; }
.woocommerce-MyAccount-navigation .is-active a { font-weight: 500; }
.woocommerce-account:not(.logged-in) .woocommerce, .woocommerce-account .woocommerce:has(.u-columns) { display: block; }
.u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.woocommerce-form-login, .woocommerce-form-register { padding: 0; border: 0; margin: 0; }
.woocommerce-error, .woocommerce-message, .woocommerce-info { list-style: none; }
.woocommerce-error { background: #fbeeee; padding: 16px 20px; }
.woocommerce-store-notice, .demo_store { display: none; }
@media (max-width: 849px) {
  .woocommerce-checkout #customer_details, .u-columns { grid-template-columns: 1fr; gap: 20px; }
  .woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: 24px; }
  .woocommerce table.shop_table_responsive tr td::before { color: var(--muted); }
  .flo-page-woo { padding-top: 30px; }
}
.flo-page-woo .flo-block-section { padding: 0; background: none; }
.flo-page-woo .flo-block-row { max-width: none; }
.flo-page-woo .flo-block-col { flex-basis: 100%; }
.woocommerce .quantity input { width: 80px; }
.woocommerce table.cart .product-quantity { width: 110px; }
.article-hero { height: auto; max-height: 650px; object-fit: cover; }

/* Cart (WooCommerce markup in the design of cart.html) */
.cart-main .cart-line { grid-template-columns: 110px minmax(0, 1fr) 110px 95px; }
.cart-line-image img { width: 100%; height: auto; display: block; }
.cart-line .quantity { display: flex; border: 1px solid #d9dccf; width: fit-content; }
.cart-line .quantity input { width: 56px; min-height: 38px; padding: 0; border: 0; text-align: center; font-size: 13px; }
.cart-line .quantity label { display: none; }
.cart-line-details .remove-item { display: inline-block; width: auto; height: auto; font-size: 11px; margin-top: 4px; color: var(--muted); text-decoration: underline; text-underline-offset: 4px; }
.cart-line-details dl.variation { margin: 8px 0 0; font-size: 12px; color: var(--muted); }
.cart-line-details dl.variation dt, .cart-line-details dl.variation dd, .cart-line-details dl.variation p { display: inline; margin: 0; font-size: 12px; }
.cart-actions { display: flex; flex-wrap: wrap; gap: 12px 25px; align-items: center; justify-content: space-between; padding: 6px 0 20px; }
.coupon-box { flex: 1 1 320px; border: 1px solid var(--line); padding: 14px 18px; font-size: 13px; }
.coupon-box summary { cursor: pointer; }
.coupon-controls { display: flex; gap: 10px; margin-top: 14px; }
.coupon-controls input { flex: 1; max-width: none; }
.cart-update { background: transparent !important; color: var(--ink) !important; min-height: 44px !important; }
.cart-order .cart_totals { width: 100%; float: none; }
.cart-order .cart_totals > h2 { display: none; }
.cart-order table.shop_table { margin: 0 0 24px; border: 0; }
.cart-order table.shop_table th, .cart-order table.shop_table td { padding: 10px 0; border: 0; font-size: 13px; vertical-align: top; }
.cart-order table.shop_table tr.order-total th, .cart-order table.shop_table tr.order-total td { border-top: 1px solid #dddfd5; padding-top: 22px; font-size: 20px; }
.cart-order .woocommerce-shipping-totals ul { list-style: none; margin: 0; padding: 0; }
.cart-order .woocommerce-shipping-destination { font-size: 11px; color: var(--muted); }
.cart-order .shipping-calculator-button { font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.cart-order .wc-proceed-to-checkout { padding: 0; }
.cart-order .wc-proceed-to-checkout a.checkout-button { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 57px; padding: 16px 20px; margin: 0; background: var(--checkout-dark, #21241e); border: 1px solid var(--checkout-dark, #21241e); color: #fff; font-size: 14px; }
.cart-order .wc-proceed-to-checkout a.checkout-button::after { content: "→"; font-size: 20px; }
.cart-order .cross-sells { display: none; }
.cart-related .related-grid .shop-card .product-image { aspect-ratio: 1.15 / 1; }
body.woocommerce-cart .flo-page-woo { max-width: none; padding: 0; }
body.woocommerce-cart .flo-page-woo > .woocommerce > .woocommerce-notices-wrapper { padding: 20px var(--gutter) 0; }
@media (max-width: 1200px) {
  .cart-main .cart-line { grid-template-columns: 90px minmax(0, 1fr) 95px; }
  .cart-line .cart-line-quantity { grid-column: 3; grid-row: 1; align-self: end; }
}
@media (max-width: 900px) {
  .cart-layout { display: block; }
  .cart-order { position: static; margin-top: 30px; }
  .cart-intro { flex-direction: column; align-items: flex-start; }
  .cart-packaging { grid-template-columns: 1fr; margin-top: 30px; }
}

/* Tabs (page builder tab groups) */
.flo-tablist { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 30px; margin-bottom: 30px; border-bottom: 1px solid var(--line); }
.flo-tablist button { padding: 14px 0; border: 0; border-bottom: 2px solid transparent; background: none; font: inherit; font-size: 14px; cursor: pointer; }
.flo-tablist button[aria-selected="true"] { border-color: var(--ink); }
.flo-tab[hidden] { display: none; }
.flo-tab .flo-block-products { margin-bottom: 24px; }

/* Page-builder heroes and editorial rows in the design's look */
.flo-block-section.label-media-left-large { background: var(--paper, #f8f4fa) !important; padding: 0; }
.flo-block-section.label-media-left-large .flo-block-row { max-width: none; align-items: stretch; }
.flo-block-section.label-media-left-large .flo-block-col:first-child { align-self: center; padding: clamp(40px, 6vw, 100px) clamp(28px, 8vw, 130px); }
.flo-block-section.label-media-left-large .flo-block-image { width: 100% !important; height: 100%; }
.flo-block-section.label-media-left-large .flo-block-image img { width: 100%; height: 100%; max-height: 720px; object-fit: cover; }
.flo-block-section.label-media-left-large h1 { font-size: clamp(38px, 4.6vw, 72px); line-height: 1.08; letter-spacing: -.05em; margin: 0 0 18px; }
.flo-block-section.label-media-left-large .lead { font-size: 18px; color: var(--muted); }
.flo-block-banner { background-size: cover; }
.flo-block-col .flo-block-banner { min-height: 300px; }
.flo-block-text h2, .flo-block-col > h2 { font-size: clamp(28px, 3.2vw, 48px); line-height: 1.15; letter-spacing: -.04em; }
.flo-block-section blockquote { margin: 22px 0; padding-left: 22px; border-left: 2px solid var(--line); color: #4c4c47; }

/* Journal cards (blog, looks, tips) */
.flo-block-posts { gap: 36px 28px; }
.flo-block-posts .journal-card img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.flo-block-posts .journal-card h2 { font-size: clamp(20px, 1.8vw, 28px); line-height: 1.3; letter-spacing: -.03em; margin-top: 4px; }
.flo-block-posts .journal-card .shop-eyebrow { margin: 18px 0 10px; }
.flo-block-posts .journal-card time { display: block; margin-top: 8px; font-size: 12px; color: var(--muted); }
.flo-block-posts .journal-card .underlined-link { display: inline-block; margin-top: 14px; }
.flo-block-section.label-media-left-large .flo-block-image { max-height: 720px; overflow: hidden; }
.flo-block-section[style*="min-height:300px"] { min-height: 0 !important; }

/* Keep builder content off the screen edge, also in sections without padding */
.flo-block-row { box-sizing: border-box; width: 100%; padding-left: var(--gutter); padding-right: var(--gutter); }
.flo-block-row.w-full-width, .flo-block-section.label-media-left-large .flo-block-row, .flo-page-woo .flo-block-row { padding-left: 0; padding-right: 0; }
.flo-block-col .flo-block-row, .flo-block-section[style*="padding"] .flo-block-section .flo-block-row { padding-left: 0; padding-right: 0; }
.flo-block-section .flo-block-row.w-full-width .flo-block-col:not(:first-child) { min-width: 0; }
.flo-page-wide > .flo-block-section > :not(.flo-block-row):not(.flo-block-section):not(.flo-block-gap):not(.scroll-to) { margin-left: var(--gutter); margin-right: var(--gutter); }
.flo-page-wide > :not(.flo-block-section):not(.flo-block-row):not(.flo-block-gap):not(.scroll-to) { margin-left: var(--gutter); margin-right: var(--gutter); }

/* Archive controls keep the design's borderless look inside .woocommerce */
.sort-control select, .woocommerce .sort-control select { width: auto; min-height: 0; padding: 10px 24px 10px 0; border: 0; background-color: transparent; }
.filter-dialog select, .catalog-toolbar select { border: 0; }

/* Cart counter, toast, compact colour filter */
.flo-cart-link { position: relative; }
.flo-cart-count { position: absolute; top: 2px; right: 0; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--shop-dark, #21241e); color: #fff; font-size: 10px; line-height: 18px; text-align: center; }
.flo-cart-count[hidden] { display: none; }
.flo-toast { position: fixed; left: 50%; bottom: 28px; z-index: 60; display: flex; align-items: center; gap: 18px; max-width: calc(100vw - 32px); padding: 16px 22px; background: var(--shop-dark, #21241e); color: #fff; font-size: 14px; transform: translate(-50%, 24px); opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s; }
.flo-toast.is-visible { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.flo-toast a { color: #fff; text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.single_add_to_cart_button.is-loading { opacity: .6; }
.filter-colors { display: flex !important; flex-wrap: wrap; gap: 8px !important; margin-top: 18px; }
.filter-colors .filter-option { position: relative; width: 26px; height: 26px; min-height: 0 !important; padding: 0; gap: 0; }
.filter-colors .filter-option .filter-swatch { width: 100%; height: 100%; }
.filter-colors .filter-option.is-selected { text-decoration: none; }
.filter-colors .filter-option.is-selected .filter-swatch { outline: 1px solid var(--ink); outline-offset: 3px; }
.filter-colors .filter-option.is-extra { display: none; }
.filter-colors.is-open .filter-option.is-extra { display: flex; }
.filter-more { margin-top: 14px; padding: 4px 0; }

/* Cart: payment logos and a tidy grand total */
.cart-payment-methods { align-items: center; gap: 8px; }
.cart-payment-methods img { display: block; width: 48px; height: 24px; }
.cart-order table.shop_table tr.order-total td { text-align: right; white-space: normal; }
.cart-order table.shop_table tr.order-total td strong { display: block; font-size: 20px; font-weight: 400; }
.cart-order table.shop_table tr.order-total td small, .cart-order table.shop_table tr.order-total .includes_tax { display: block; margin-top: 4px; font-size: 11px; color: var(--muted); font-weight: 400; }
.cart-order table.shop_table tr.order-total td .includes_tax .woocommerce-Price-amount { font-size: 11px; }
.cart-order table.shop_table tr.order-total th { white-space: nowrap; }
.woocommerce .cart-line-details a.remove-item.remove { display: inline-block; width: auto; height: auto; font-size: 11px; line-height: 1.6; }
.cart-order table.shop_table th { padding-right: 18px; text-align: left; font-weight: 500; }

/* Checkout: form on the left, order summary and pay button on the right */
body.woocommerce-checkout .flo-page-woo { max-width: 1400px; }
form.checkout.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 0 clamp(35px, 5vw, 80px); align-items: start; }
form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; }
form.checkout #customer_details .col-1, form.checkout #customer_details .col-2 { float: none; width: 100%; max-width: none; }
form.checkout #customer_details .col-2 { margin-top: 30px; }
form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; padding: 28px 28px 0; background: var(--shop-paper); }
form.checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; top: 25px; margin: 0; padding: 18px 28px 28px; background: var(--shop-paper); }
form.checkout #order_review table.shop_table { margin-bottom: 20px; }
form.checkout #order_review table.shop_table th, form.checkout #order_review table.shop_table td { padding: 10px 0; border: 0; font-size: 13px; }
form.checkout #order_review table.shop_table .cart_item td { border-bottom: 1px solid #e6e6df; }
form.checkout #order_review tr.order-total th, form.checkout #order_review tr.order-total td { border-top: 1px solid #dddfd5; padding-top: 18px; font-size: 20px; text-align: right; }
form.checkout #order_review tr.order-total th { text-align: left; }
form.checkout #order_review tr.order-total small, form.checkout #order_review tr.order-total .includes_tax { display: block; font-size: 11px; color: var(--muted); }
form.checkout .woocommerce-checkout-payment { margin-top: 0; padding: 0; background: none; }
form.checkout #place_order { min-height: 57px; justify-content: space-between; background: var(--checkout-dark, #21241e); }
form.checkout .woocommerce-privacy-policy-text { font-size: 11px; color: var(--muted); margin: 14px 0; }
@media (max-width: 900px) {
  form.checkout.woocommerce-checkout { display: block; }
  form.checkout #order_review_heading { margin-top: 30px; }
  form.checkout #order_review { position: static; }
}

/* More air, no grey or beige fills on content pages */
.flo-block-section.label-media-left-large { background: #fff !important; }
.flo-block-section + .flo-block-section { margin-top: clamp(40px, 5vw, 90px); }
.flo-block-row + .flo-block-row { margin-top: clamp(36px, 5vw, 80px); }
.flo-block-row { column-gap: clamp(32px, 5vw, 80px); }
.flo-block-col { flex-basis: calc(var(--span, 12) / 12 * 100% - clamp(32px, 5vw, 80px) * (1 - var(--span, 12) / 12)); }
.flo-block-row.collapse > .flo-block-col { flex-basis: calc(var(--span, 12) / 12 * 100%); }
.flo-block-section { padding-top: max(40px, 0px); }
.flo-block-section h2 { margin-bottom: 20px; }
.flo-block-col p + p { margin-top: 1em; }
.flo-block-section blockquote { background: none; }
.flo-block-notice { padding: 18px 22px; border: 1px solid var(--line); font-size: 14px; color: var(--muted); }
.flo-page .flo-block-section:last-child { margin-bottom: clamp(40px, 6vw, 100px); }

/* Sliders from the page builder */
.flo-block-gallery.is-slider { display: flex; overflow-x: auto; gap: 14px; scroll-snap-type: x mandatory; }
.flo-block-gallery.is-slider figure { flex: 0 0 min(100%, 520px); margin: 0; scroll-snap-align: start; }
.flo-block-gallery.is-slider img { width: 100%; height: var(--h, 400px); object-fit: cover; }

/* Articles and pages: text in a reading column, builder blocks wider */
.article-body { max-width: none; padding: clamp(40px, 6vw, 90px) 0 clamp(60px, 8vw, 120px); }
.article-body > :not(.flo-block-section):not(.flo-block-row):not(.scroll-to) { max-width: 800px; margin-left: auto; margin-right: auto; padding-left: var(--gutter); padding-right: var(--gutter); box-sizing: content-box; }
.article-body > .flo-block-section, .article-body > .flo-block-row { margin-top: clamp(40px, 5vw, 80px); margin-bottom: clamp(40px, 5vw, 80px); }
.article-body > p, .article-body > ul, .article-body > ol { margin-top: 1.1em; }
.article-body > h2 { margin-top: clamp(40px, 5vw, 70px); }
.article-body .flo-block-section { padding-left: var(--gutter); padding-right: var(--gutter); }
.article-body .flo-block-row { max-width: 1100px; }
.article-body .flo-block-image { margin-left: auto; margin-right: auto; }
.article-heading { padding-top: clamp(50px, 6vw, 90px); padding-bottom: clamp(30px, 4vw, 60px); }

/* Look and article cards */
.journal-grid { gap: clamp(36px, 4vw, 60px) 28px; }
.flo-block-posts .journal-card, .journal-card { text-align: left; }
.journal-card img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.page-section { padding-top: clamp(50px, 6vw, 90px); padding-bottom: clamp(60px, 8vw, 120px); }

/* Rows only add their own side margin when the section has none */
.flo-block-row { padding-left: 0; padding-right: 0; }
.flo-block-section.no-pad .flo-block-row, .flo-page-wide > .flo-block-row, .article-body > .flo-block-row { padding-left: var(--gutter); padding-right: var(--gutter); }
.flo-block-section.label-media-left-large .flo-block-row, .flo-block-row.w-full-width, .flo-page-woo .flo-block-row, .flo-block-col .flo-block-row { padding-left: 0 !important; padding-right: 0 !important; }
.flo-block-notice { background: #fff; color: #4c4c47; }
.flo-block-notice a { color: inherit; }
.journal-card-placeholder { display: block; aspect-ratio: 4 / 5; background: #f5f5f3; }
.flo-block-row > .flo-block-col:only-child { flex-basis: min(100%, 780px); margin-left: auto; margin-right: auto; }
.flo-block-section.label-media-left-large .flo-block-row > .flo-block-col:only-child { flex-basis: 100%; }
.article-body .flo-block-section > :is(p, ul, ol, h2, h3, h4, blockquote), .article-body .flo-block-row > :is(p, ul, ol, h2, h3, h4) { max-width: 800px; margin-left: auto; margin-right: auto; }
.article-body p.lead { font-size: 18px; }

/* Feedback round: collections, menu, product cards in page blocks, tiles, maatwerk */
.collections .collection-grid { gap: clamp(24px, 3vw, 48px); padding-left: clamp(var(--gutter), 9vw, 170px); padding-right: clamp(var(--gutter), 9vw, 170px); }
.collection-image { aspect-ratio: 4 / 5; }
html .mobile-menu:not([hidden]) { background: #fff; }
.flo-block-featured-title { display: block; margin-bottom: 4px; font-size: 16px; font-weight: 500; }
.flo-block-featured-title a { text-decoration: none !important; }
.flo-block-products .shop-card .product-info, .related-grid .shop-card .product-info { font-size: 14px; }
.flo-block-products .shop-card h3, .flo-block-products .shop-card h3 a { font-size: 14px; font-weight: 400; line-height: 1.5; letter-spacing: 0; text-decoration: none !important; }
.flo-block-section .shop-card a { text-decoration: none; }
.flo-block-products .shop-card .product-info a:hover { text-decoration: underline !important; }
.flo-block-banner .flo-block-textbox { left: 50%; top: auto; bottom: 18px; transform: translateX(-50%); width: 90% !important; text-align: center; }
.flo-block-banner .flo-block-textbox h2 { font-size: clamp(16px, 1.6vw, 22px); line-height: 1.2; letter-spacing: 0; text-transform: uppercase; }
.flo-block-banner .flo-btn { font-size: 12px; padding: 8px 14px; min-height: 0; }
.flo-maatwerk { max-width: 760px; margin: clamp(50px, 7vw, 110px) auto; padding: clamp(40px, 5vw, 70px) var(--gutter) 0; border-top: 1px solid var(--line); text-align: center; }
.flo-maatwerk h2 { font-size: clamp(30px, 3.4vw, 52px); line-height: 1.15; letter-spacing: -.045em; margin: 18px 0; }
.flo-maatwerk p:not(.shop-eyebrow) { color: var(--muted); margin-bottom: 24px; }
.breadcrumbs { padding-left: var(--gutter); padding-right: var(--gutter); }
.collections .section-heading { padding-left: clamp(var(--gutter), 9vw, 170px); padding-right: clamp(var(--gutter), 9vw, 170px); }

/* No filled hover on text-style links, and no divider lines in page content */
.flo-btn-link:hover, .flo-btn-underline:hover { background: transparent; color: inherit; border-color: transparent; }
.flo-block-menu li, .category-guide .flo-block-menu li { border-bottom: 0; }
.flo-block-divider, .category-guide .flo-block-divider { display: none; }
.flo-block-menu a { padding: 6px 0; }
.cart-related { border-top: 0; margin-top: clamp(60px, 8vw, 120px); padding-top: 0; padding-bottom: clamp(60px, 8vw, 110px); }

/* Collections use the same width and gaps as "Nieuw" */
.collections .collection-grid { gap: 22px; padding-left: var(--gutter); padding-right: var(--gutter); }
.collections .section-heading { padding-left: var(--gutter); padding-right: var(--gutter); }

/* Look and article grids: full width, three across, like "Nieuw" on the homepage */
.flo-block-row:has(.flo-block-posts) { max-width: none; }
.flo-block-row > .flo-block-col:has(.flo-block-posts) { flex-basis: 100%; max-width: none; margin: 0; padding-left: 0; padding-right: 0; }
.flo-block-section:has(.flo-block-posts) { padding-left: var(--gutter); padding-right: var(--gutter); }
.flo-block-section:has(.flo-block-posts) .flo-block-row { padding-left: 0; padding-right: 0; }
.flo-block-posts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 22px; }
.flo-block-posts .journal-card { text-align: left; }
@media (max-width: 849px) { .flo-block-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 14px; } }

/* Checkout: labels on the left, amounts on the far right */
form.checkout #order_review table.shop_table { width: 100%; table-layout: auto; }
form.checkout #order_review table.shop_table th { text-align: left; font-weight: 500; padding-right: 20px; }
form.checkout #order_review table.shop_table td { text-align: right; }
form.checkout #order_review table.shop_table td.product-name, form.checkout #order_review table.shop_table .cart_item td:first-child { text-align: left; }
form.checkout #order_review table.shop_table th.product-total, form.checkout #order_review table.shop_table td.product-total { text-align: right; white-space: nowrap; }
form.checkout #order_review table.shop_table thead th:last-child { text-align: right; }
form.checkout #order_review ul#shipping_method, form.checkout #order_review .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; text-align: right; }
form.checkout #order_review .woocommerce-shipping-destination { text-align: right; }

/* Cabin is narrower than the design font: the tight tracking made letters touch */
h1, h2, h3, h4, .campaign-copy h1, .catalog-intro h1, .flo-block-section h1, .flo-block-section h2, .flo-maatwerk h2 { letter-spacing: -.01em !important; }
html .mobile-menu .menu-primary > a { letter-spacing: -.01em; }
.product-info, .price, .shop-card h3 { letter-spacing: 0; }
form.checkout #order_review table.shop_table thead th:last-child, form.checkout #order_review table.shop_table th.product-total { padding-right: 0; }

/* Mobile: columns follow their small-screen span, also in collapsed rows; nothing may widen the page. */
@media (max-width: 849px) {
  .flo-block-row.collapse > .flo-block-col, .flo-block-row > .flo-block-col { flex-basis: calc(var(--span-sm, 12) / 12 * 100%); max-width: 100%; }
  .flo-block-row { max-width: 100%; }
  .flo-block-col { overflow-wrap: anywhere; }
  .flo-block-col img, .flo-block-image { max-width: 100%; }
  .flo-tablist { flex-wrap: wrap; }
}
.flo-zoom { cursor: zoom-in; }
.flo-lightbox-dialog { border: 0; padding: 0; background: transparent; max-width: 96vw; max-height: 96vh; }
.flo-lightbox-dialog::backdrop { background: rgba(0, 0, 0, .78); }
.flo-lightbox-dialog img { display: block; max-width: 96vw; max-height: 92vh; width: auto; height: auto; }
.flo-lightbox-dialog button { position: absolute; top: 8px; right: 8px; width: 44px; height: 44px; border: 0; background: #fff; font-size: 24px; line-height: 1; cursor: pointer; }

/* Icon boxes and shop cards: fixed icon size, consistent spacing between entries. */
.flo-block-icon { flex: 0 0 28px; width: 28px; }
.flo-block-featured p, .flo-block-featured div > p { margin: 0; }
.flo-block-featured + .flo-block-featured, .flo-block-featured + .flo-block-gap + .flo-block-featured { margin-top: 26px; }
.flo-block-featured .flo-block-gap { display: none; }
.flo-block-featured > div > div:not(.flo-block-gap) { font-size: 15px; line-height: 1.9; }
@media (max-width: 849px) {
  .flo-block-row > .flo-block-col + .flo-block-col { margin-top: 26px; }
}
