/* meble7: global styles (every page). Values follow design/meble7-szablon/index.html;
   --muted is a touch darker than the mockup's #746c63 so small text passes WCAG AA (4.5:1). */

@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-300.woff2') format('woff2');font-style:normal;font-weight:300;font-display:swap;unicode-range:U+0000-00FF,U+0100-02AF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2000-206F,U+20A0-20C0,U+2113,U+2122,U+2191,U+2193,U+2212,U+2215,U+2C60-2C7F,U+A720-A7FF,U+FEFF,U+FFFD}
@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0100-02AF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2000-206F,U+20A0-20C0,U+2113,U+2122,U+2191,U+2193,U+2212,U+2215,U+2C60-2C7F,U+A720-A7FF,U+FEFF,U+FFFD}
@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-500.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap;unicode-range:U+0000-00FF,U+0100-02AF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2000-206F,U+20A0-20C0,U+2113,U+2122,U+2191,U+2193,U+2212,U+2215,U+2C60-2C7F,U+A720-A7FF,U+FEFF,U+FFFD}
/* Italiana with the Polish letters added (see assets/fonts/README.txt); renamed as the OFL requires. */
@font-face{font-family:'Italiana Meble7';src:url('../fonts/italiana-meble7-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0100-02AF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2000-206F,U+20A0-20C0,U+2113,U+2122,U+2191,U+2193,U+2212,U+2215,U+2C60-2C7F,U+A720-A7FF,U+FEFF,U+FFFD}

:root{
	--paper:#f3efe8;--ink:#26211d;--muted:#6c645b;--line:rgba(38,33,29,.2);--white:#fff;--accent:#8a5a3b;--green:#52624f;
	--sand:#e9e2d8;--stone:#d7cec2;--dark:#2d2925;--footer:#1f1c19;
	--ease:cubic-bezier(.22,1,.36,1);--gutter:3.25vw;--bar-h:34px;--header-h:92px;--header-h-compact:64px;--sticky-top:var(--wp-admin--admin-bar--height,0px);--serif:'Italiana Meble7',Georgia,serif;--sans:'DM Sans',Arial,sans-serif
}

/* Base */
*,*:before,*:after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;display:flex;flex-direction:column;min-height:calc(100vh - var(--wp-admin--admin-bar--height,0px));min-height:calc(100dvh - var(--wp-admin--admin-bar--height,0px));background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;font-weight:300;line-height:1.45;overflow-x:hidden}
body.locked{overflow:hidden}
/* Full-height column: main grows so the footer always reaches the bottom of short pages. */
body>main{flex:1 0 auto;width:100%}
/* WooCommerce's "store pages only" coming soon screen prints its content inside .wp-site-blocks. */
body>.wp-site-blocks{flex:1 0 auto;display:flex;flex-direction:column;width:100%}
body>.wp-site-blocks>main{flex:1 0 auto;width:100%}
body>.footer{flex-shrink:0}
a{color:inherit;text-decoration:none}
/* Everything clickable shows the pointer, theme and plugin markup alike; zero specificity, so any rule setting another
   cursor (grab, help, default) wins. */
:where(a[href],button,[role=button],[role=link],[role=tab],[role=option],[role=menuitem],summary,select,label[for],label:has(input),input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file],[type=range],[type=color]),.button){cursor:pointer}
:where(button,input,select):disabled,:where([aria-disabled=true]){cursor:default}
img{max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,h5,h6{font-weight:400}
strong,b,th{font-weight:500}
.serif{font-family:var(--serif);font-weight:400}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.skip-link:focus{clip:auto;clip-path:none;height:auto;width:auto;margin:0;left:12px;top:12px;z-index:100;background:var(--paper);color:var(--ink);padding:12px 18px;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}

/* Links and buttons */
.text-link{display:inline-block;padding:0 0 7px;border:0;border-bottom:1px solid currentColor;background:none;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:opacity .2s}
.text-link:hover{opacity:.62}
.eyebrow{display:block;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;margin-bottom:22px}
.button,button.button,input.button,a.button,.wp-element-button,.wp-block-button__link,input[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:14px 28px;border:1px solid var(--ink);border-radius:0;background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:.75rem;font-weight:400;line-height:1.2;letter-spacing:.13em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .25s,color .25s}
.button:hover,button.button:hover,input.button:hover,a.button:hover,.wp-element-button:hover,.wp-block-button__link:hover,input[type=submit]:hover{background:transparent;color:var(--ink)}
.button-outline,.button.alt-outline{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 22px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;cursor:pointer}
.button-outline:hover{background:var(--ink);color:var(--paper)}

/* Forms */
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=search],input[type=url],input[type=date],select,textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line);border-radius:0;background:var(--white);color:var(--ink);font-size:.95rem;font-weight:300}
/* Native selects: the theme's field style with a thin chevron (inline SVG, no request). */
select{-webkit-appearance:none;appearance:none;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2326211d' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px 16px;cursor:pointer}
select::-ms-expand{display:none}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:0;border-color:var(--ink)}
label{font-size:.82rem;letter-spacing:.04em}

/* Info bar */
.no-infobar{--bar-h:0px}
.announcement-text{overflow:hidden;text-overflow:ellipsis}
.announcement a:hover{opacity:.75}
.announcement :focus-visible{outline-color:#f7f3ed}
.announcement{height:var(--bar-h);display:flex;align-items:center;justify-content:center;padding:0 18px;line-height:1.35;background:var(--ink);color:#f7f3ed;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;text-align:center}

/* Header */
/* The slot keeps the expanded height in the flow, so nothing below moves when the header shrinks. */
:root{scroll-padding-top:calc(var(--sticky-top) + var(--header-h-compact) + 16px)}
.scroll-sentinel{position:absolute;top:0;left:0;width:1px;height:calc(var(--bar-h) + 48px);opacity:0;pointer-events:none}
.header-slot{position:sticky;top:var(--sticky-top);z-index:9990;height:var(--header-h);pointer-events:none}
.has-hero .header-slot{margin-bottom:calc(-1 * var(--header-h))}
.site-header{height:var(--header-h);padding:0 var(--gutter);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;position:relative;color:var(--ink);background-color:var(--paper);border-bottom:1px solid var(--line);pointer-events:auto;transition:height .35s var(--ease),background-color .35s ease,color .35s ease,border-color .35s ease,box-shadow .35s ease}
.has-hero .site-header{color:#fff;background-color:rgba(243,239,232,0);border-bottom-color:rgba(255,255,255,.4)}
.is-scrolled .site-header,.is-scrolled .has-hero .site-header{height:var(--header-h-compact);color:var(--ink);background-color:var(--paper);border-bottom-color:var(--line);box-shadow:0 8px 24px -18px rgba(38,33,29,.35)}
.logo{display:inline-block;font-size:2.25rem;line-height:1;transition:font-size .35s var(--ease)}
.is-scrolled .site-header .logo{font-size:1.75rem}
.custom-logo{transition:max-height .35s var(--ease)}
.is-scrolled .site-header .custom-logo{max-height:40px}
.logo svg,.footer-logo svg{display:block;height:1em;width:auto}
.site-header .logo,.site-header .custom-logo-link{justify-self:center}
.custom-logo{display:block;max-height:56px;width:auto}
.desktop-nav .nav-list{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0}
.desktop-nav li{position:relative}
.desktop-nav a,.header-tools .icon-btn{position:relative;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
.desktop-nav .nav-list>li>a:after{content:'';position:absolute;left:0;bottom:-7px;width:0;height:1px;background:currentColor;transition:width .3s}
.desktop-nav .nav-list>li>a:hover:after,.desktop-nav .nav-list>li.current-menu-item>a:not([href*="#"]):after{width:100%}
.desktop-nav .sub-menu{position:absolute;top:calc(100% + 14px);left:-18px;min-width:220px;margin:0;padding:12px 0;list-style:none;background:var(--paper);color:var(--ink);border:1px solid var(--line);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s,transform .2s,visibility .2s}
.desktop-nav .sub-menu:before{content:'';position:absolute;left:0;right:0;top:-15px;height:15px}
.desktop-nav li:hover>.sub-menu,.desktop-nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.desktop-nav .sub-menu a{display:block;padding:9px 18px;font-size:.74rem}
.desktop-nav .sub-menu a:hover{background:var(--sand)}
.header-tools{display:flex;align-items:center;justify-content:flex-end;gap:28px}
.icon-btn{border:0;background:transparent;padding:8px 0;cursor:pointer;display:inline-flex;gap:6px;align-items:center;color:inherit}
.icon-btn .icon{width:19px;height:19px;stroke-width:1.4}
.menu-btn{display:none}
.cart-count{min-width:.6em}

/* Overlays: cart drawer, search panel, mobile menu */
/* Above everything on the page, including plugin layers such as HUSKY's panel (z-index 99) and the WordPress admin bar. */
.overlay{position:fixed;inset:var(--sticky-top) 0 0 0;background:rgba(20,17,15,.46);backdrop-filter:blur(3px);z-index:100001;opacity:0;visibility:hidden;transition:.35s}
.overlay.open{opacity:1;visibility:visible}
.close{border:0;background:none;font-size:1.6rem;line-height:1;cursor:pointer;padding:8px;color:inherit}
.drawer{position:absolute;right:0;top:0;height:100%;width:min(480px,100%);background:var(--paper);color:var(--ink);padding:35px;transform:translateX(100%);transition:transform .55s var(--ease);display:flex;flex-direction:column}
.overlay.open .drawer{transform:translateX(0)}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:28px;border-bottom:1px solid var(--line)}
.drawer-head h2{font-size:2.2rem;margin:0}
.drawer-body{flex:1;display:flex;flex-direction:column;min-height:0}
.drawer-body .widget_shopping_cart_content{flex:1;display:flex;flex-direction:column;min-height:0}
.empty{margin:auto;text-align:center}
.empty h3{font-size:1.9rem;margin:0 0 12px}
.empty p{color:var(--muted);max-width:280px;margin:0 auto 26px}
.woocommerce-mini-cart__empty-message{display:none}

/* Mini-cart in the drawer. Scoped to #cart-overlay so WooCommerce's widget styles (loaded on shop pages) don't apply. */
#cart-overlay .woocommerce-mini-cart{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;list-style:none;margin:0;padding:0}
#cart-overlay .woocommerce-mini-cart-item{position:relative;display:block;min-height:144px;margin:0;padding:22px 52px 22px 96px;border-bottom:1px solid var(--line);font-size:.92rem;line-height:1.4;list-style:none}
#cart-overlay .woocommerce-mini-cart-item::before,#cart-overlay .woocommerce-mini-cart-item::after{content:none}
#cart-overlay .woocommerce-mini-cart-item img{position:absolute;left:0;top:22px;float:none;width:80px;height:100px;margin:0;object-fit:cover;background:var(--stone);box-shadow:none}
#cart-overlay .woocommerce-mini-cart-item img.meble7-fit{object-fit:contain;background:#fff}
/* Accessories („Dobierz do zestawu”, inc/accessories.php): in the drawer's scrolling list after the products, and on the
   product page under the delivery line. */
.meble7-accessories{margin:0;padding:24px 0 6px;list-style:none}
#cart-overlay .meble7-accessories{border-bottom:0}
.meble7-accessories__title{margin:0 0 10px;color:var(--muted);font-family:var(--sans);font-size:.72rem;font-weight:400;letter-spacing:.14em;line-height:1.4;text-transform:uppercase}
.meble7-accessories__list{margin:0;padding:0;list-style:none}
.meble7-accessory{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:14px;align-items:center;margin:0;padding:12px 0;border-top:1px solid var(--line);list-style:none}
.meble7-accessory__image img{display:block;width:64px;height:64px;margin:0;object-fit:cover;background:var(--stone)}
.meble7-accessory__image img.meble7-fit{object-fit:contain;background:#fff}
.meble7-accessory__name{display:block;font-family:var(--serif);font-size:1.05rem;line-height:1.2;overflow-wrap:anywhere}
.meble7-accessory__price{display:block;margin-top:4px;font-size:.88rem;line-height:1.35}
.meble7-accessory__price .dori-omnibus-line{font-size:.78rem;color:var(--muted)}
.meble7-accessory .meble7-accessory__add.button{min-height:40px;margin:0;padding:8px 16px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:.68rem;white-space:nowrap}
.meble7-accessory .meble7-accessory__add.button:hover,.meble7-accessory .meble7-accessory__add.button:focus-visible{background:var(--ink);color:var(--paper)}
.meble7-accessory .meble7-accessory__add.loading{opacity:.55;pointer-events:none}
.meble7-accessory .added_to_cart{display:none}
/* In the drawer the accessories sit in WooCommerce's mini-cart list, whose widget styles (`ul.product_list_widget li`)
   add clearfix pseudo-elements, bold links and floated 32 px images. */
#cart-overlay .meble7-accessories::before,#cart-overlay .meble7-accessories::after,#cart-overlay .meble7-accessory::before,#cart-overlay .meble7-accessory::after{content:none;display:none}
#cart-overlay .meble7-accessories,#cart-overlay .meble7-accessory{margin:0;list-style:none}
#cart-overlay .meble7-accessory{display:grid;padding:12px 0}
#cart-overlay .meble7-accessory img{float:none;width:64px;height:64px;margin:0;box-shadow:none}
#cart-overlay .meble7-accessory a{font-weight:inherit}
#cart-overlay .meble7-accessories{padding-left:0;padding-right:0}
#cart-overlay .meble7-accessory .meble7-accessory__add.button{display:inline-flex;align-items:center;justify-content:center}
/* WooCommerce blocks. The block cart, the checkout summary and the mini cart block draw the Store API's thumbnail in the
   browser, so it gets a square with `contain` on white: a square crop fills it, and a photo much narrower or wider than
   square, served uncropped (inc/product-images.php), shows whole. The product image block (Product Collection) and All
   Products crop the whole photo with an inline `object-fit: cover`, which `meble7-fit` (PHP, or theme.js for All
   Products) overrides; the older product grid blocks print the catalogue's thumbnail. */
.wc-block-cart-item__image img,.wc-block-components-order-summary-item__image img{aspect-ratio:1/1;object-fit:contain;background:#fff}
.wc-block-grid__product-image img.meble7-fit{aspect-ratio:1/1}
.wc-block-components-product-image img.meble7-fit,.wc-block-grid__product-image img.meble7-fit{object-fit:contain!important;background:#fff!important}
#cart-overlay .woocommerce-mini-cart-item>a:not(.remove){display:block;font-family:var(--serif);font-size:1.35rem;font-weight:400;line-height:1.15;margin:0 0 8px;overflow-wrap:anywhere}
#cart-overlay .woocommerce-mini-cart-item dl.variation{margin:0 0 6px;padding:0;border:0;font-size:.8rem;color:var(--muted)}
#cart-overlay .woocommerce-mini-cart-item dl.variation dt,#cart-overlay .woocommerce-mini-cart-item dl.variation dd{display:inline;float:none;margin:0;padding:0}
#cart-overlay .woocommerce-mini-cart-item dl.variation dd::after{content:'';display:block}
#cart-overlay .woocommerce-mini-cart-item dl.variation dd p{display:inline;margin:0}
#cart-overlay .woocommerce-mini-cart-item .quantity{display:block;color:var(--muted);font-size:.85rem;letter-spacing:.02em}
#cart-overlay a.remove{position:absolute;right:-10px;top:12px;left:auto;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:0;font-size:1.4rem;font-weight:300;line-height:1;color:var(--muted)!important;background:none!important}
#cart-overlay a.remove:hover{color:var(--ink)!important}
#cart-overlay .woocommerce-mini-cart__total{flex:none;display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:0;padding:22px 0;border:0;border-bottom:1px solid var(--line)}
#cart-overlay .woocommerce-mini-cart__total::before,#cart-overlay .woocommerce-mini-cart__total::after{content:none}
#cart-overlay .woocommerce-mini-cart__total strong{font-weight:400;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
#cart-overlay .woocommerce-mini-cart__total .amount{font-family:var(--serif);font-size:1.6rem;line-height:1}
#cart-overlay .woocommerce-mini-cart__buttons{flex:none;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0 0;padding:0}
#cart-overlay .woocommerce-mini-cart__buttons::before,#cart-overlay .woocommerce-mini-cart__buttons::after{content:none;display:none}
#cart-overlay .woocommerce-mini-cart__buttons .button{width:100%;min-height:50px;margin:0;padding:12px 10px;float:none;font-size:.72rem;text-align:center}
#cart-overlay .woocommerce-mini-cart__buttons .button:not(.checkout){background:transparent;color:var(--ink)}
#cart-overlay .woocommerce-mini-cart__buttons .button:not(.checkout):hover{background:var(--ink);color:var(--paper)}
#cart-overlay .woocommerce-mini-cart__buttons .button.checkout{background:var(--ink);color:var(--paper)}
#cart-overlay .woocommerce-mini-cart__buttons .button.checkout:hover{background:transparent;color:var(--ink)}
#cart-overlay .blockUI.blockOverlay{background:rgba(243,239,232,.6)!important}

/* Dori Omnibus's lowest-price line, wherever the plugin prints one: price blocks, its shortcode, the cart drawer.
   The theme styles it instead of the plugin's stylesheet (inc/woocommerce.php); the sizes per context are in
   woocommerce.css. The reference and any benefit share one size, typeface and colour, the price's ink (L-24). */
.dori-omnibus-line{display:block;font-family:var(--sans);font-style:normal;font-weight:300;line-height:1.4;letter-spacing:0;text-transform:none;color:var(--ink)}
.dori-omnibus-line__reference,.dori-omnibus-line__benefit,.dori-omnibus-line__amount,.dori-omnibus-line .amount{font:inherit;color:inherit;letter-spacing:inherit}
.dori-omnibus-line__benefit{display:block}
/* The shop's thousands separator is a plain space: keep "1 299,00 zł" on one line. */
.dori-omnibus-line__amount{white-space:nowrap}
/* The window's dates (off unless enabled in the plugin): an "i" that shows them inline on hover and keyboard focus.
   Screen readers always read them. */
.dori-omnibus-line__dates{display:inline-block;margin-inline-start:.25em;cursor:help}
.dori-omnibus-line__dates::before{content:'i';content:'i'/'';display:inline-block;width:1.2em;height:1.2em;border:1px solid currentColor;border-radius:50%;font-size:.8em;font-style:italic;line-height:1.1em;text-align:center;vertical-align:.1em}
.dori-omnibus-line__dates-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.dori-omnibus-line__dates:hover .dori-omnibus-line__dates-text,.dori-omnibus-line__dates:focus .dori-omnibus-line__dates-text{position:static;width:auto;height:auto;overflow:visible;clip-path:none;margin-inline-start:.25em}
/* The price with a public discount code („Z kodem KOD: X zł”), followed by that code's own lowest-price line. The code
   price shares the line's size, typeface, weight and colour (L-24). The pair sits a little apart from the sale's line
   above and tight together, so each lowest price reads with its own price. The code keeps the case the shop typed
   (no text-transform) and one click selects all of it for copying. */
.dori-omnibus-code{display:block;margin-top:8px;font-family:var(--sans);font-style:normal;font-weight:300;line-height:1.4;letter-spacing:0;text-transform:none;color:var(--ink)}
.dori-omnibus-code__amount,.dori-omnibus-code .amount{font:inherit;color:inherit;letter-spacing:inherit;white-space:nowrap}
.dori-omnibus-code__code{font-weight:500;letter-spacing:.03em;white-space:nowrap;-webkit-user-select:all;user-select:all}
.dori-omnibus-code+.dori-omnibus-line{margin-top:2px}
#cart-overlay .dori-omnibus-line{margin-top:4px;font-size:.85rem}
#cart-overlay .dori-omnibus-code{margin-top:6px;font-size:.85rem}
#cart-overlay .dori-omnibus-code+.dori-omnibus-line{margin-top:2px}

.search-panel{position:absolute;top:0;left:0;right:0;background:var(--paper);color:var(--ink);padding:34px 6vw 70px;transform:translateY(-100%);transition:transform .55s var(--ease)}
.overlay.open .search-panel{transform:translateY(0)}
.search-head{display:flex;justify-content:space-between;align-items:center}
.search-head .logo{font-size:2rem}
.search-box{display:flex;align-items:center;border-bottom:1px solid var(--ink);margin:0}
.search-panel .search-box{margin-top:65px}
.search-box .search-field{width:100%;min-height:0;border:0;background:transparent;padding:16px 0;font-family:var(--serif);font-size:clamp(2rem,5vw,5rem);outline:none;color:var(--ink);-webkit-appearance:none;appearance:none}
.search-box .search-field::-webkit-search-cancel-button{display:none}
.search-box .search-field:focus-visible{outline:none}
.search-box:focus-within{box-shadow:0 2px 0 0 var(--ink)}
.search-submit{flex:none;border:0;background:none;padding:12px;cursor:pointer;color:var(--ink)}
.search-submit .icon{width:28px;height:28px;stroke-width:1.2}
.search-suggestions{display:flex;flex-wrap:wrap;gap:22px;margin-top:20px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.suggestion-links{display:flex;flex-wrap:wrap;gap:22px;list-style:none;margin:0;padding:0}
.suggestion-links a:hover{color:var(--ink)}

.mobile-menu{position:absolute;inset:0;background:var(--ink);color:var(--paper);padding:28px;transform:translateX(-100%);transition:transform .55s var(--ease);overflow:auto}
.overlay.open .mobile-menu{transform:translateX(0)}
.mobile-menu .menu-links{margin-top:15vh}
.mobile-list,.mobile-list .sub-menu{list-style:none;margin:0;padding:0}
.mobile-list a{display:block;font-family:var(--serif);font-size:clamp(2.5rem,10vw,4.4rem);line-height:1.18;border-bottom:1px solid rgba(255,255,255,.18)}
.mobile-list .sub-menu a{font-family:var(--sans);font-size:.9rem;letter-spacing:.12em;text-transform:uppercase;line-height:1;padding:16px 0 16px 4px}

/* Footer */
.footer{background:var(--footer);color:#eee8df;padding:80px var(--gutter) 30px}
.footer-top{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:50px;padding-bottom:80px}
.footer-logo{display:block;font-size:4.4rem;line-height:1}
.footer-tag{color:#a9a098;margin:8px 0 0}
.footer-brand-widgets{margin-top:32px;max-width:360px;color:#cfc7bd;font-size:.86rem;line-height:1.6}
.footer-widget+.footer-widget{margin-top:24px}
.footer-widget .footer-heading{margin:0 0 12px}
.footer-widget p{margin:0 0 10px}
.footer-widget ul{list-style:none;margin:0;padding:0}
.footer-widget li{margin:6px 0}
.footer-widget a{display:inline;margin:0;border-bottom:1px solid rgba(238,232,223,.35)}
.footer-widget a:hover{opacity:1;border-bottom-color:currentColor}
.footer-heading{font-family:var(--sans);font-size:.7rem;font-weight:300;text-transform:uppercase;letter-spacing:.17em;margin:12px 0 24px;color:#a9a098}
.footer-links,.legal-links{list-style:none;margin:0;padding:0}
.footer-links a{display:block;margin:10px 0;font-size:.86rem}
.footer a:hover{opacity:.7}
.social-links a{display:inline-flex;align-items:center;gap:10px}
.social-links .icon{width:18px;height:18px;flex:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.footer-bottom{border-top:1px solid rgba(255,255,255,.18);padding-top:24px;display:flex;justify-content:space-between;color:#8f8880;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.legal-links{display:flex;flex-wrap:wrap}
.legal-links li+li:before{content:'\00a0·\00a0'}
.footer :focus-visible{outline-color:#eee8df}

/* Inner pages */
.content-main,.shop-main{padding:64px var(--gutter) 112px;max-width:1440px;margin:0 auto}
.page-header{margin-bottom:48px}
.page-title,.woocommerce-products-header__title,.product_title{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,5vw,5rem);line-height:.98;letter-spacing:-.03em;margin:0}
.page-description{color:var(--muted);max-width:620px;margin-top:18px}
/* Breadcrumbs: a full-width bar under the header, aligned with its gutters, the parts separated by „·”. */
.breadcrumbs-bar{padding:16px var(--gutter) 15px;border-bottom:1px solid var(--line)}
.breadcrumbs-bar+.site-main{padding-top:48px}
.breadcrumbs{margin:0;font-size:.72rem;line-height:1.6;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.breadcrumbs p{margin:0}
.breadcrumbs a:hover{color:var(--ink)}
.breadcrumbs .sep,.breadcrumbs__separator{margin:0 .3em}
.entry-content{max-width:860px}
.entry-content>*:first-child{margin-top:0}
.entry-content>p a,.entry-content>ul a,.entry-content>ol a{border-bottom:1px solid currentColor}
.entry-content h2{font-family:var(--serif);font-size:2.4rem;line-height:1.05;margin:1.6em 0 .5em}
.entry-content h3{font-family:var(--serif);font-size:1.8rem;margin:1.4em 0 .5em}
.entry-thumbnail{margin-bottom:40px}
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px 24px}
.post-card__image img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.post-card__title{font-size:2rem;line-height:1.05;margin:18px 0 10px}
.post-card__excerpt{color:var(--muted);font-size:.92rem}
.no-results{color:var(--muted)}
.search-page-form{max-width:760px;margin-bottom:56px}
.search-page-form .search-field,.not-found__search .search-field{font-size:clamp(1.8rem,3.4vw,3rem)}
/* Utility views (404): copy beside a photo, centred in the space between header and footer. */
.utility-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:0 72px;align-items:center;max-width:1440px;margin:0 auto;padding:64px var(--gutter)}
.utility-copy{max-width:640px}
.utility-copy .page-title{font-size:clamp(2.8rem,6vw,5.6rem);margin-bottom:24px}
.utility-lead{color:var(--muted);font-size:1.02rem;margin:0 0 32px}
.utility-search{max-width:640px;margin:0 0 32px}
.utility-search .search-field{font-size:clamp(1.6rem,3vw,2.6rem)}
.utility-photo{align-self:stretch;min-height:420px;position:relative;overflow:hidden;background:var(--stone)}
.utility-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.category-links{margin:0 0 36px}
.category-links ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.category-links a{display:inline-flex;align-items:center;min-height:40px;padding:8px 16px;border:1px solid var(--line);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;transition:background .25s,color .25s}
.category-links a:hover,.category-links a:focus-visible{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.empty-state{max-width:760px;padding:24px 0 8px}
.empty-state__hint{color:var(--muted);margin:0 0 28px}
.nav-links{display:flex;gap:18px;justify-content:center;margin-top:60px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
.nav-links .current{border-bottom:1px solid currentColor}
.comments-area{max-width:860px;margin-top:70px}

/* Reveal: hidden state only when JavaScript runs (html.js) */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .reveal.visible{opacity:1;transform:none}
.js .reveal:target{opacity:1;transform:none;transition:none}

@media(max-width:900px){
	:root{--header-h:74px;--header-h-compact:56px}
	.site-header{padding:0 20px}
	.is-scrolled .site-header .logo{font-size:1.55rem}
	.desktop-nav{display:none}
	.menu-btn{display:inline-flex;justify-self:start}
	.header-tools .search-label{display:none}
	.header-tools{gap:18px}
	.logo{font-size:1.9rem}
	.footer-top{grid-template-columns:1fr 1fr}
	.footer-top>div:first-child{grid-column:1/-1}
	.footer-bottom{gap:16px;flex-direction:column}
	.footer-logo{font-size:3.7rem}
	.content-main,.shop-main{padding:44px 20px 80px}
	.breadcrumbs-bar{padding:13px 20px 12px}
	.breadcrumbs-bar+.site-main{padding-top:36px}
	.utility-main{grid-template-columns:1fr;gap:40px;padding:44px 20px 64px}
	.utility-photo{min-height:260px;order:-1}
	.post-grid{grid-template-columns:1fr 1fr}
}
/* Below 601px the WordPress admin bar scrolls away with the page, so the header sticks at 0. */
@media(max-width:600px){
	:root{--sticky-top:0px}
}
@media(max-width:560px){
	.announcement{font-size:.62rem;letter-spacing:.06em;padding:0 8px;white-space:nowrap}
	.drawer{padding:24px 20px}
	.search-suggestions{flex-wrap:wrap}
	.footer-top{grid-template-columns:1fr;gap:26px}
	.footer-top>div:first-child{grid-column:auto}
	.post-grid{grid-template-columns:1fr}
}
@media(max-width:380px){
	:root{--bar-h:44px}
	.announcement{white-space:normal}
}
@media(prefers-reduced-motion:reduce){
	html{scroll-behavior:auto}
	.js .reveal{opacity:1;transform:none;transition:none}
	.overlay,.drawer,.search-panel,.mobile-menu,.desktop-nav .sub-menu,.site-header,.logo,.custom-logo{transition:none}
}
