/*
Theme Name: Nasma
Theme URI: https://seifweb.com
Author: SeifWeb
Author URI: https://seifweb.com
Description: متجر مغسلة ملابس على WooCommerce: المنيو قائمة أسعار على شكل تذكرة غسيل، واستلام من البيت وتوصيل إليه في كل محافظات عُمان، وغسيل وكي خلال 24 ساعة، ويوم ووقت الاستلام عند إتمام الطلب. عربي أولًا ومصمَّم للهاتف. A laundry store for WooCommerce — a ticket-style price list, home pickup and return across Oman, washed and ironed within 24 hours, pickup day and time at checkout — Arabic first and built for phones.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nasma
Tags: e-commerce, rtl-language-support, custom-logo, custom-menu
*/

/* ---------- Tokens ---------- */
:root {
	--ink: #10221b;
	--ink-2: #3d5a4f;
	--muted: #5b6e66;
	--line: #d9e7df;
	--line-2: #c2d8cb;
	--paper: #ffffff;
	--soft: #f5faf7;
	--mint: #ecfdf3;
	--mint-2: #d5f5e1;
	--green: #15803d;
	--green-dark: #166534;
	--deep: #0f3d2e;
	--deep-2: #145240;
	--on-deep: #e8f5ee;
	--on-deep-2: #b7d9c7;
	--accent-light: #86efac;
	--sale: #b42318;
	--radius: 14px;
	--shadow: 0 1px 2px rgba(16, 34, 27, .05), 0 12px 32px rgba(16, 34, 27, .08);
	--font: "Tajawal", "Segoe UI", Tahoma, sans-serif;
	--gutter: 16px;
	--header-h: 64px;
	--tabbar-h: 62px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 12px); }
body {
	margin: 0; font-family: var(--font); font-size: 16px; line-height: 1.75; color: var(--ink); background: var(--paper);
	-webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
	padding-bottom: calc(var(--tabbar-h) + env(safe-area-inset-bottom));
}
body.no-scroll { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--green-dark); }
h1, h2, h3, h4 { font-family: var(--font); line-height: 1.35; margin: 0 0 .5em; font-weight: 800; }
p { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; border-radius: 6px; }
.site-footer :focus-visible, .ticker :focus-visible, .demo-bar :focus-visible, .contact-band :focus-visible, .minibar :focus-visible, .contact-card :focus-visible, .toast :focus-visible { outline-color: #fff; }
.screen-reader-text, .skip-link:not(:focus) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.skip-link:focus { position: fixed; inset-inline-start: 12px; top: 12px; z-index: 100; background: var(--ink); color: #fff; padding: 10px 16px; border-radius: 8px; }
.container { width: 100%; max-width: 1320px; margin-inline: auto; padding-inline: var(--gutter); }
.icon { flex: none; }
.muted { color: var(--muted); }
.only-desktop { display: none !important; }

/* ---------- Buttons ---------- */
.btn, .button, button.button, a.button, input[type="submit"],
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 0 24px; border: 1px solid transparent; border-radius: 10px;
	font-family: var(--font); font-weight: 700; font-size: 16px; line-height: 1.2; letter-spacing: 0; text-align: center;
	cursor: pointer; transition: background .2s, color .2s, border-color .2s, opacity .2s;
	background: var(--green); color: #fff; text-decoration: none;
}
.btn .icon { width: 19px; height: 19px; }
.btn:hover, .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--green-dark); color: #fff; }
.btn-green { background: var(--green); color: #fff; }
.btn-green:hover { background: var(--green-dark); color: #fff; }
.btn-line { background: #fff; color: var(--ink); border-color: var(--line-2); }
.btn-line:hover { background: var(--mint); color: var(--ink); border-color: var(--green); }
.btn-light { background: #fff; color: var(--deep); }
.btn-light:hover { background: var(--mint); color: var(--deep); }
.btn-ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .6); }
.btn-ghost:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce button.single_add_to_cart_button { background: var(--green); color: #fff; }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce button.single_add_to_cart_button:hover { background: var(--green-dark); color: #fff; }
.btn-sm { min-height: 44px; padding: 0 16px; font-size: 15px; }
.btn-block { width: 100%; }
/* WooCommerce paints disabled buttons in its own purple: keep the brand colour. */
.woocommerce button.button.alt.disabled, .woocommerce button.button.alt:disabled, .woocommerce button.button.alt:disabled[disabled],
.woocommerce button.button.alt.disabled:hover, .woocommerce div.product form.cart .button.disabled {
	background: var(--green) !important; color: #fff !important; opacity: .5; cursor: not-allowed;
}
.icon-btn { display: inline-grid; place-items: center; position: relative; width: 44px; height: 44px; border-radius: 10px; background: transparent; border: 0; cursor: pointer; color: var(--ink); }
.icon-btn:hover { background: var(--mint); color: var(--ink); }
.lang-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 36px; padding: 0 10px; margin-inline-end: 2px; border: 1px solid var(--line-2); border-radius: 8px; background: #fff; color: var(--ink); font-size: 14px; font-weight: 700; line-height: 1; }
.lang-btn:hover { border-color: var(--green); color: var(--ink); }
.lang-btn[lang="en"] { letter-spacing: .04em; }
.lang-link .icon, .lang-foot .icon { width: 18px; height: 18px; }
.lang-foot { display: inline-flex; align-items: center; gap: 6px; }

/* ---------- Care labels (the small sewn-in tag of a garment) ---------- */
.care-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.care-tag {
	position: relative; display: inline-flex; align-items: center; min-height: 32px; padding: 3px 12px; padding-inline-start: 22px;
	background: #fff; color: var(--green-dark); border: 1px solid var(--line-2); border-radius: 3px;
	font-size: 14px; font-weight: 700; line-height: 1.35;
}
.care-tag::before { content: ""; position: absolute; top: 5px; bottom: 5px; inset-inline-start: 9px; border-inline-start: 1.5px dashed currentColor; opacity: .6; }

/* ---------- Demo notice ---------- */
.demo-bar { background: var(--green-dark); color: #fff; font-size: 13px; }
.demo-bar-inner { display: flex; align-items: center; gap: 6px 14px; min-height: 40px; padding-block: 4px; }
.demo-bar p { margin: 0; flex: 1; min-width: 0; line-height: 1.5; }
.demo-bar a { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.demo-bar a:hover { color: var(--mint-2); }
.demo-bar-close { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border: 0; border-radius: 8px; background: none; color: #fff; cursor: pointer; }
.demo-bar-close:hover { background: rgba(255, 255, 255, .14); }
.demo-bar-close .icon { width: 18px; height: 18px; }

/* ---------- Announcement bar ---------- */
.ticker { background: var(--deep); color: var(--on-deep); font-size: 13.5px; font-weight: 500; overflow: hidden; white-space: nowrap; }
.ticker-track { display: flex; width: max-content; animation: nasma-tick 40s linear infinite; }
.ticker:hover .ticker-track { animation-play-state: paused; }
.ticker-group { display: flex; }
.ticker-item { position: relative; display: inline-flex; align-items: center; gap: 7px; padding: 8px 24px; }
.ticker-item .icon { width: 16px; height: 16px; color: var(--accent-light); }
@keyframes nasma-tick { from { transform: translateX(0); } to { transform: translateX(-50%); } }
[dir="rtl"] .ticker-track { animation-name: nasma-tick-rtl; }
@keyframes nasma-tick-rtl { from { transform: translateX(0); } to { transform: translateX(50%); } }

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: 40; background: rgba(255, 255, 255, .96); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px); border-bottom: 1px solid var(--line); }
.site-header.is-scrolled { box-shadow: 0 6px 24px rgba(16, 34, 27, .07); }
.admin-bar .site-header { top: 46px; }
.header-row { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; min-height: var(--header-h); }
.header-row > .icon-btn:first-child { justify-self: start; }
.brand { display: inline-flex; align-items: center; gap: 8px; justify-self: center; color: var(--ink); }
.brand:hover { color: var(--ink); }
.brand-logo { max-height: 44px; width: auto; }
.brand-mark { width: 42px; height: 42px; flex: none; color: var(--green-dark); }
.brand-name { font-weight: 800; font-size: 27px; line-height: 1; white-space: nowrap; }
html[lang^="en"] .brand-name { text-transform: uppercase; letter-spacing: .12em; font-size: 21px; }
.header-actions { display: flex; align-items: center; gap: 2px; justify-self: end; }
.header-cta { margin-inline-start: 8px; }
.nasma-cart-count { position: absolute; top: 4px; inset-inline-end: 2px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: var(--green); color: #fff; font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; }
.nasma-cart-count.is-empty { display: none; }
.nav-list, .drawer-list { list-style: none; margin: 0; padding: 0; }
.main-nav { align-self: stretch; }
.main-nav .nav-list { display: flex; gap: 2px; height: 100%; }
.main-nav .nav-list > li { position: relative; display: flex; align-items: center; }
.main-nav .nav-list a { display: block; padding: 10px 13px; font-weight: 700; font-size: 16px; color: var(--ink-2); white-space: nowrap; }
.main-nav .nav-list a:hover, .main-nav .current-menu-item > a, .main-nav .current-menu-ancestor > a { color: var(--ink); }
.main-nav .nav-list > li > a { position: relative; }
.main-nav .nav-list > li > a::after { content: ""; position: absolute; inset-inline: 13px; bottom: 4px; height: 2px; background: var(--green); transform: scaleX(0); transition: transform .2s; }
.main-nav .nav-list > li:hover > a::after, .main-nav .current-menu-item > a::after, .main-nav .current-menu-ancestor > a::after { transform: scaleX(1); }
.main-nav .menu-item-has-children > a { padding-inline-end: 28px; }
.main-nav .menu-item-has-children > a::before { content: ""; position: absolute; inset-inline-end: 12px; top: 50%; width: 6px; height: 6px; margin-top: -5px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(45deg); }
.main-nav .sub-menu { list-style: none; margin: 0; padding: 8px; position: absolute; top: 100%; inset-inline-start: 0; min-width: 230px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); opacity: 0; visibility: hidden; transform: translateY(6px); transition: .2s; z-index: 5; }
.main-nav .sub-menu a { border-radius: 8px; padding: 9px 12px; }
.main-nav .sub-menu a::after { display: none; }
.main-nav .sub-menu a:hover { background: var(--mint); }
.main-nav li:hover > .sub-menu, .main-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }

/* The menu panel: the groups with their photo and starting price, and a promo card. */
.main-nav .nav-list > li.is-mega { position: static; }
.main-nav .mega-panel {
	position: absolute; top: 100%; left: 50%; width: min(940px, calc(100vw - 48px)); z-index: 5;
	display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 18px; padding: 18px;
	background: #fff; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 16px 16px; box-shadow: var(--shadow);
	opacity: 0; visibility: hidden; transform: translate(-50%, 8px); transition: opacity .2s, transform .2s, visibility .2s;
}
.main-nav li.is-mega:hover > .mega-panel, .main-nav li.is-mega:focus-within > .mega-panel { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.main-nav .mega-panel .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0; min-width: 0; }
.main-nav .mega-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; align-content: start; }
.main-nav .mega-list a { display: flex; align-items: center; gap: 12px; padding: 8px; border: 1px solid var(--line); border-radius: 12px; white-space: normal; color: var(--ink); }
.main-nav .mega-list a:hover { background: var(--mint); border-color: var(--mint-2); }
.mega-thumb { width: 64px; height: 64px; flex: none; border-radius: 8px; object-fit: cover; }
.mega-name { display: grid; min-width: 0; line-height: 1.35; font-weight: 800; }
.mega-from { font-size: 13px; font-weight: 500; color: var(--muted); }
.main-nav .nav-list .mega-promo { position: relative; display: flex; align-items: flex-end; min-height: 180px; padding: 0; border-radius: 12px; overflow: hidden; color: #fff; background: var(--deep); white-space: normal; }
.mega-promo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mega-promo::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(15, 61, 46, .95) 0%, rgba(15, 61, 46, .7) 50%, rgba(15, 61, 46, .1) 100%); }
.mega-promo-text { position: relative; z-index: 2; display: grid; gap: 2px; padding: 14px; line-height: 1.4; }
.mega-promo-text strong { font-size: 16px; font-weight: 800; }
.mega-promo-text span { font-size: 13.5px; color: var(--on-deep); }
.main-nav .nav-list .mega-promo:hover { color: #fff; }
.main-nav .nav-list .mega-promo:hover .mega-promo-text strong { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Drawer ---------- */
.drawer { position: fixed; inset: 0; z-index: 60; }
.drawer-backdrop { position: absolute; inset: 0; background: rgba(16, 34, 27, .45); opacity: 0; transition: opacity .25s; }
.drawer-panel { position: absolute; top: 0; bottom: 0; inset-inline-start: 0; width: min(86vw, 360px); background: #fff; display: flex; flex-direction: column; transform: translateX(100%); transition: transform .25s ease; padding-bottom: env(safe-area-inset-bottom); }
[dir="ltr"] .drawer-panel { transform: translateX(-100%); }
.drawer.is-open .drawer-backdrop { opacity: 1; }
.drawer.is-open .drawer-panel { transform: none; }
.drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 10px var(--gutter); border-bottom: 1px solid var(--line); }
.drawer-head .brand-mark { width: 36px; height: 36px; }
.drawer-head .brand-name { font-size: 24px; }
.drawer-list { flex: 1; overflow: auto; padding: 8px var(--gutter); }
.drawer-list a { display: block; padding: 13px 2px; border-bottom: 1px solid var(--line); font-weight: 700; font-size: 17px; }
.drawer-list .sub-menu { list-style: none; padding-inline-start: 14px; margin: 0; }
.drawer-list .sub-menu a { font-size: 15.5px; font-weight: 500; color: var(--ink-2); padding-block: 10px; }
.drawer-foot { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; padding: 16px var(--gutter); border-top: 1px solid var(--line); }
.drawer-foot > :first-child, .drawer-foot .lang-link { grid-column: 1 / -1; }
.drawer-foot .btn { padding-inline: 12px; }

/* ---------- Sections ---------- */
.section { padding-block: 44px; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.section-head > div { min-width: 0; }
.section-head h2 { font-size: clamp(24px, 6.4vw, 36px); margin: 0; }
.eyebrow { display: inline-block; font-size: 14px; font-weight: 700; color: var(--green-dark); margin-bottom: 4px; }
.section-lead { color: var(--ink-2); max-width: 760px; margin: -6px 0 22px; font-size: 16.5px; }
.link-more { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; font-weight: 700; font-size: 15px; white-space: nowrap; color: var(--green-dark); }
.link-more .icon { width: 18px; height: 18px; }
[dir="ltr"] .link-more .icon { transform: scaleX(-1); }

/* ---------- Home: hero with the 24-hour ring ---------- */
.hero { background: var(--mint); padding-block: 28px 44px; overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; align-items: center; }
.hero-text { min-width: 0; }
.hero-title { font-size: clamp(30px, 8.6vw, 58px); font-weight: 800; line-height: 1.28; margin: 4px 0 14px; }
.hero-title span { display: block; }
.hero-title .is-green { color: var(--green-dark); }
.hero-lead { font-size: 17px; color: var(--ink-2); max-width: 580px; margin-bottom: 0; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0 18px; }
.hero-actions .btn { flex: 1 1 160px; }
.hero-visual { position: relative; min-width: 0; }
.hero-photo { display: none; margin: 0; }

.ring { position: relative; width: min(100%, 380px); margin-inline: auto; padding: 20px; background: #fff; border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow); }
.ring-dial { position: relative; aspect-ratio: 1 / 1; width: 100%; }
.ring-svg { display: block; width: 100%; height: 100%; overflow: visible; }
.ring-track { fill: none; stroke: #e3f3ea; stroke-width: 12; }
.ring-ticks { fill: none; stroke: #9cbcae; stroke-width: 1.6; stroke-linecap: round; }
.ring-arc { fill: none; stroke-width: 12; stroke-linecap: round; animation: nasma-fade .45s ease-out both; }
.arc-1 { stroke: #15803d; animation-delay: .5s; }
.arc-2 { stroke: #1f9d55; animation-delay: .95s; }
.arc-3 { stroke: #4fb67c; animation-delay: 1.4s; }
.arc-4 { stroke: #0f3d2e; animation-delay: 1.85s; }
.ring-needle { fill: none; stroke: var(--ink); stroke-width: 2.5; stroke-linecap: round; }
.ring-knob { fill: #fff; stroke: var(--ink); stroke-width: 3; }
.ring-hand { transform-box: view-box; transform-origin: 50% 50%; animation: nasma-sweep 2.4s cubic-bezier(.45, .05, .2, 1) .4s 1 both; }
@keyframes nasma-sweep { from { transform: rotate(-360deg); } to { transform: rotate(0deg); } }
@keyframes nasma-fade { from { opacity: 0; } to { opacity: 1; } }
.ring-center { position: absolute; inset: 22%; display: grid; place-content: center; justify-items: center; gap: 2px; text-align: center; line-height: 1.3; }
.ring-kicker { font-size: 13px; font-weight: 700; color: var(--muted); }
.ring-slot { display: block; font-size: clamp(16px, 4.8vw, 21px); font-weight: 800; color: var(--green-dark); font-variant-numeric: tabular-nums; }
.ring-note { font-size: 13px; color: var(--ink-2); }
.ring-steps { list-style: none; margin: 0; padding: 0; }
/* A clock turns the same way in both languages, so the four corners are physical, not logical. */
.ring-step { position: absolute; display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px 3px 6px; background: #fff; border: 1px solid var(--line); border-radius: 8px; font-size: 13.5px; font-weight: 700; line-height: 1.4; color: var(--ink); }
.ring-step .icon { width: 16px; height: 16px; color: var(--green-dark); }
.ring-num { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 4px; background: var(--deep); color: #fff; font-size: 11.5px; font-weight: 800; }
.ring-step.s1 { top: 10px; right: 10px; }
.ring-step.s2 { bottom: 10px; right: 10px; }
.ring-step.s3 { bottom: 10px; left: 10px; }
.ring-step.s4 { top: 10px; left: 10px; }

/* ---------- Home: how it works ---------- */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.step { position: relative; display: grid; gap: 6px; align-content: start; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); min-width: 0; }
.step-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.step-num { font-weight: 800; font-size: 30px; line-height: 1; color: var(--green); font-variant-numeric: tabular-nums; }
.step-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: var(--mint); color: var(--green-dark); }
.step-icon .icon { width: 24px; height: 24px; }
.step-title { font-size: 18px; font-weight: 800; }
.step-text { color: var(--ink-2); font-size: 15.5px; }

/* ---------- Home: the menu (category tiles, the ticket, its side card) ---------- */
.menu-sec { background: var(--soft); border-block: 1px solid var(--line); }
.cat-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0 0 22px; }
.cat-tile { position: relative; display: grid; gap: 4px; align-content: start; text-align: center; color: var(--ink); min-width: 0; }
.cat-tile:hover { color: var(--green-dark); }
.cat-img { display: grid; place-items: center; aspect-ratio: 1 / 1; border-radius: 12px; overflow: hidden; background: var(--mint); border: 1px solid var(--line); }
.cat-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.cat-tile:hover .cat-img img { transform: scale(1.04); }
.cat-mark { width: 48px; height: 48px; color: var(--green-dark); }
.cat-name { font-weight: 800; font-size: 14px; line-height: 1.35; margin-top: 4px; overflow-wrap: anywhere; }
.cat-from { font-size: 12.5px; color: var(--muted); line-height: 1.3; }

.ticket-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; }
.ticket {
	--hole: var(--soft);
	position: relative; min-width: 0; margin-top: 8px; margin-bottom: 12px; padding: 22px 16px 0;
	background: #fff; color: var(--ink); border: 1px solid var(--line); border-bottom: 0; border-radius: 4px 4px 0 0;
	box-shadow: 0 10px 30px rgba(16, 34, 27, .07); font-variant-numeric: tabular-nums;
}
/* The perforated top edge of a laundry ticket… */
.ticket::before { content: ""; position: absolute; top: -6px; inset-inline: 8px; height: 12px; background: radial-gradient(circle, var(--hole) 4.5px, transparent 5px) 0 0 / 16px 12px repeat-x; }
/* …and its torn bottom edge. */
.ticket::after { content: ""; position: absolute; bottom: -11px; inset-inline: -1px; height: 12px; background: linear-gradient(135deg, #fff 50%, transparent 50%) 0 0 / 16px 12px repeat-x, linear-gradient(225deg, #fff 50%, transparent 50%) 0 0 / 16px 12px repeat-x; }
.ticket-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding-bottom: 14px; border-bottom: 2px dashed var(--line-2); }
.ticket-mark { width: 40px; height: 40px; color: var(--green-dark); }
.ticket-title { display: grid; line-height: 1.35; min-width: 0; }
.ticket-title strong { font-size: 19px; font-weight: 800; }
.ticket-title span { font-size: 13px; color: var(--muted); }
.ticket-no { display: grid; justify-items: end; font-size: 12px; color: var(--muted); line-height: 1.3; text-align: end; }
.ticket-no span:last-child { font-size: 14px; font-weight: 800; color: var(--ink); letter-spacing: .06em; }
.tk-group { padding-top: 20px; }
.tk-group-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 6px; border-bottom: 2px solid var(--ink); }
.tk-group-head h3 { margin: 0; font-size: 16px; font-weight: 800; color: var(--green-dark); }
.tk-group-head a { display: inline-flex; align-items: center; min-height: 32px; font-size: 13.5px; color: var(--ink-2); text-decoration: underline; text-underline-offset: 3px; }
.tk-list { list-style: none; margin: 0; padding: 0; }
.tk-row { border-bottom: 1px dashed var(--line-2); }
.tk-row:last-child { border-bottom: 0; }
.tk-form { padding: 14px 0; margin: 0; }
.tk-line { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.tk-name { flex: 0 1 auto; min-width: 0; font-weight: 800; font-size: 17px; line-height: 1.4; color: var(--ink); }
.tk-name:hover { color: var(--green-dark); text-decoration: underline; text-underline-offset: 3px; }
.tk-dots { flex: 1 1 20px; min-width: 14px; border-bottom: 2px dotted var(--line-2); transform: translateY(-4px); }
.tk-price { flex: none; font-weight: 800; font-size: 16px; white-space: nowrap; }
.tk-old { color: var(--muted); font-weight: 500; font-size: 13px; margin-inline-end: 2px; }
.tk-unit { font-weight: 500; font-size: 13px; color: var(--muted); margin-inline-start: 4px; }
.tk-ctrl { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 10px; }
.tk-sizes { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; margin-inline-end: auto; padding: 0; border: 0; min-width: 0; }
.tk-size { position: relative; display: inline-flex; }
.tk-size input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.tk-size span { display: inline-flex; align-items: center; min-height: 40px; padding: 0 12px; border: 1px solid var(--line-2); border-radius: 8px; background: #fff; font-weight: 700; font-size: 14px; }
.tk-size input:checked + span { background: var(--deep); border-color: var(--deep); color: #fff; }
.tk-size input:focus-visible + span { outline: 2px solid var(--green); outline-offset: 2px; }
.stepper { display: inline-flex; align-items: center; height: 44px; border: 1px solid var(--line-2); border-radius: 10px; background: #fff; }
.stepper-btn { display: grid; place-items: center; width: 40px; height: 42px; border: 0; background: none; color: var(--ink); cursor: pointer; border-radius: 9px; }
.stepper-btn:hover { background: var(--mint); }
.stepper-btn .icon { width: 18px; height: 18px; }
.stepper-input { width: 42px; height: 42px; padding: 0; border: 0; background: transparent; text-align: center; font-weight: 800; font-size: 16px; -moz-appearance: textfield; appearance: textfield; }
.stepper-input::-webkit-outer-spin-button, .stepper-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.stepper-unit { font-size: 13px; font-weight: 700; color: var(--muted); margin-inline-end: 2px; }
.tk-add { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 16px; border: 0; border-radius: 10px; background: var(--green); color: #fff; font-family: var(--font); font-weight: 700; font-size: 15px; cursor: pointer; transition: background .2s, opacity .2s; }
.tk-add:hover { background: var(--green-dark); color: #fff; }
.tk-add .icon { width: 18px; height: 18px; }
.tk-add.loading { opacity: .6; pointer-events: none; }
.tk-add.added { background: var(--deep); }
.tk-add.loading::after, .tk-add.added::after { display: none !important; }
.tk-ctrl .added_to_cart { display: none !important; }
.tk-help { margin: 10px 0 0; font-size: 13.5px; color: var(--ink-2); line-height: 1.6; }
.tk-total, .carpet-total { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 6px 0 0; padding: 8px 12px; background: var(--mint); border-radius: 8px; font-size: 14.5px; font-weight: 700; color: var(--ink); }
.tk-total output, .carpet-total output { font-weight: 800; color: var(--green-dark); }
.ticket-foot { margin: 18px -16px 0; padding: 16px 16px 26px; border-top: 2px dashed var(--line-2); }
.tk-foot-title { margin: 0 0 6px; font-size: 13px; font-weight: 800; letter-spacing: .04em; color: var(--muted); }
.tk-receipt { font-size: 15px; }
.tk-empty { margin: 0; color: var(--muted); }
.tk-lines { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 4px; }
.tk-lines li, .tk-sum { display: flex; align-items: baseline; gap: 8px; margin: 0; min-width: 0; }
.tk-l-name { min-width: 0; flex: 0 1 auto; }
.tk-l-qty { color: var(--muted); white-space: nowrap; }
.tk-l-sum { flex: none; font-weight: 700; white-space: nowrap; }
.tk-sum { padding-top: 6px; }
.tk-sum > span:first-child { flex: none; }
.tk-sum > span:last-child, .tk-sum > strong { flex: none; white-space: nowrap; }
.tk-sum.is-total { margin-top: 6px; padding-top: 10px; border-top: 2px solid var(--ink); font-size: 17px; font-weight: 800; }
.tk-hint { margin: 6px 0 0; padding: 8px 12px; background: var(--mint); border-radius: 8px; font-size: 13.5px; color: var(--green-dark); font-weight: 700; }
.tk-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin-top: 14px; }

.ticket-aside { display: grid; gap: 16px; min-width: 0; }
.ticket-aside .aside-photo { display: none; margin: 0; }
.aside-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 14px; }
.aside-card { padding: 20px; background: #fff; border: 1px solid var(--line); border-radius: 14px; }
.aside-card h3 { font-size: 18px; margin-bottom: 10px; }
.check-list { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
.check-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; }
.check-list li span { min-width: 0; }
.check-list .icon { width: 20px; height: 20px; margin-top: 3px; color: var(--green); }
.aside-note { margin: 0; padding-top: 12px; border-top: 1px solid var(--line); font-size: 14.5px; color: var(--ink-2); }
.aside-note a { color: var(--green-dark); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* The cart bar that follows the price list on phones. */
.minibar { display: none; }
.minibar-info { display: grid; line-height: 1.35; min-width: 0; }
.minibar-info strong { font-size: 15px; }
.minibar-info span { font-size: 14px; color: var(--on-deep); }

/* ---------- Home: coverage ---------- */
.gov-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.gov { position: relative; display: flex; gap: 10px; align-items: flex-start; padding: 14px; background: #fff; border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
.gov .icon { width: 20px; height: 20px; margin-top: 3px; color: var(--green); }
.gov-text { display: grid; min-width: 0; line-height: 1.45; }
.gov-text strong { font-size: 16px; font-weight: 800; overflow-wrap: anywhere; }
.gov-text span { font-size: 13.5px; color: var(--muted); }
.gov-text a { font-size: 14px; font-weight: 700; color: var(--green-dark); text-decoration: underline; text-underline-offset: 3px; }
.gov-ask { background: var(--mint); border-color: var(--mint-2); }

/* ---------- Home: marquee of what we wash ---------- */
.marquee { background: var(--mint); border-block: 1px solid var(--mint-2); overflow: hidden; white-space: nowrap; }
.marquee-track { display: flex; width: max-content; animation: nasma-tick 50s linear infinite; }
[dir="rtl"] .marquee-track { animation-name: nasma-tick-rtl; }
.marquee-group { display: flex; }
.marquee-item { position: relative; display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; font-size: 18px; font-weight: 800; color: var(--deep); }
.marquee-item .icon { width: 20px; height: 20px; color: var(--green); }

/* ---------- Home: why us ---------- */
.why-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: center; }
.why-photo { margin: 0; min-width: 0; }
.why-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 18px; }
.why-text { min-width: 0; }
.why-text h2 { font-size: clamp(24px, 6.4vw, 36px); }
.why-list { list-style: none; margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.why-item { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--line); min-width: 0; }
.why-item:last-child { border-bottom: 0; }
.why-icon { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 12px; background: var(--mint); color: var(--green-dark); }
.why-icon .icon { width: 24px; height: 24px; }
.why-item > span:last-child { min-width: 0; color: var(--ink-2); font-size: 15.5px; }
.why-item strong { display: block; color: var(--ink); font-size: 17px; font-weight: 800; }

/* ---------- Questions ---------- */
.faq-sec { background: var(--soft); border-top: 1px solid var(--line); }
.faq-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.faq-intro { min-width: 0; }
.faq-intro h2 { font-size: clamp(24px, 6.4vw, 36px); }
.faq-intro p { color: var(--ink-2); }
.faq-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; min-width: 0; }
.faq { background: #fff; border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
.faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 14px 18px; font-weight: 800; font-size: 16.5px; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; flex: none; font-size: 24px; font-weight: 500; line-height: 1; color: var(--green); }
.faq[open] summary::after { content: "–"; }
.faq p { margin: 0; padding: 0 18px 16px; color: var(--ink-2); }

/* ---------- Contact band ---------- */
.contact-band { background: var(--deep); color: var(--on-deep); padding-block: 40px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.contact-band-inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: center; }
.contact-band-inner > div { min-width: 0; }
.contact-band h2 { color: #fff; font-size: clamp(24px, 6vw, 34px); }
.contact-band p { margin: 0; color: var(--on-deep-2); }
.contact-band-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.contact-band .btn-light { color: var(--deep); }
.contact-band .btn-light:hover { color: var(--deep); }
.contact-band .btn-ghost, .contact-band .btn-ghost:hover { color: #fff; }

/* ---------- Product grid (WooCommerce) ---------- */
.woocommerce ul.products, .woocommerce-page ul.products { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; margin: 0 !important; padding: 0; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; clear: none !important; position: relative; display: flex; flex-direction: column; min-width: 0; text-align: start; color: var(--ink); }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; color: var(--ink); text-decoration: none; }
.card-media { position: relative; display: block; aspect-ratio: 1 / 1; margin-bottom: 10px; border-radius: 12px; overflow: hidden; background: var(--soft); border: 1px solid var(--line); }
.woocommerce ul.products li.product .card-media img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; margin: 0; border-radius: 0; }
.woocommerce ul.products li.product .card-media .card-alt { position: absolute; inset: 0; opacity: 0; transition: opacity .35s ease; }
.card-cat { display: block; font-size: 12.5px; color: var(--muted); margin-bottom: 1px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--font); font-size: 16px; font-weight: 800; line-height: 1.45; padding: 0; margin: 0 0 4px; color: var(--ink); }
.woocommerce ul.products li.product .price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; color: var(--ink); font-weight: 800; font-size: 15.5px; margin: 0; font-variant-numeric: tabular-nums; }
.woocommerce ul.products li.product .price del { color: var(--muted); font-weight: 500; font-size: 13px; opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--sale); }
.price-unit { font-size: .82em; font-weight: 500; color: var(--muted); }
.card-care { display: block; margin-top: 4px; font-size: 12.5px; font-weight: 700; color: var(--green-dark); }
.card-badges { position: absolute; top: 8px; inset-inline-start: 8px; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; pointer-events: none; max-width: calc(100% - 64px); }
.woocommerce .card-badges .onsale, .woocommerce ul.products li.product .card-badges .onsale {
	position: static; margin: 0; min-width: 0; min-height: 0; padding: 2px 9px; line-height: 1.6; border-radius: 4px;
	background: var(--sale); color: #fff; font-size: 12.5px; font-weight: 700; font-family: var(--font);
}
.kind-badge { display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 4px; background: #fff; color: var(--green-dark); border: 1px solid var(--line-2); font-size: 12.5px; font-weight: 700; line-height: 1.6; }
.quick-add {
	position: absolute; top: 8px; inset-inline-end: 8px; z-index: 3; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 10px;
	background: var(--green); color: #fff; box-shadow: 0 2px 10px rgba(16, 34, 27, .16); transition: background .2s, color .2s, transform .15s, opacity .2s;
}
.quick-add .icon { width: 20px; height: 20px; }
.quick-add:hover { background: var(--green-dark); color: #fff; }
.quick-add.is-link { background: #fff; color: var(--ink); }
.quick-add.is-link:hover { background: var(--deep); color: #fff; }
.quick-add:active { transform: scale(.94); }
.quick-add.loading { opacity: .6; pointer-events: none; }
.quick-add.added { background: var(--deep); color: #fff; }
.quick-add.loading::after, .quick-add.added::after { display: none !important; }
[dir="ltr"] .quick-add.is-link .icon-arrow { transform: scaleX(-1); }
.woocommerce ul.products li.product a.added_to_cart { display: none; }
.woocommerce .star-rating { display: none; }

/* ---------- The menu page and its groups ---------- */
.shop-wrap { padding-block: 14px 56px; }
.shop-head { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: center; margin: 6px 0 20px; padding: 18px; background: var(--mint); border: 1px solid var(--mint-2); border-radius: 18px; }
.shop-head-text { min-width: 0; }
.shop-head-title { font-size: clamp(28px, 7.4vw, 44px); margin: 2px 0 8px; }
.shop-head-desc { color: var(--ink-2); max-width: 640px; }
.shop-head-desc p { margin: 0 0 12px; }
.shop-head-img { margin: 0; min-width: 0; }
.shop-head-img img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 14px; }
.woocommerce-products-header { margin-bottom: 6px; }
.woocommerce-products-header__title.page-title { font-size: clamp(26px, 7vw, 38px); margin: 4px 0; }
.term-description { color: var(--ink-2); font-size: 15px; max-width: 760px; }
.breadcrumb, .woocommerce .woocommerce-breadcrumb { font-size: 13.5px; color: var(--muted); margin: 0 0 6px; }
.breadcrumb a, .woocommerce .woocommerce-breadcrumb a { color: var(--ink-2); }
.breadcrumb .sep { margin-inline: 6px; opacity: .6; }
.chips { display: flex; gap: 8px; overflow-x: auto; padding: 4px 0 12px; margin-bottom: 6px; scrollbar-width: none; scroll-padding-inline: var(--gutter); }
.chips::-webkit-scrollbar { display: none; }
.chip { position: relative; flex: none; display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 8px; border: 1px solid var(--line-2); background: #fff; font-size: 15px; font-weight: 700; color: var(--ink-2); }
.chip:hover { border-color: var(--green); color: var(--ink); }
.chip.is-active { background: var(--deep); color: #fff; border-color: var(--deep); }
.woocommerce .woocommerce-result-count { margin: 0 0 14px; font-size: 13.5px; color: var(--muted); float: none; }
.woocommerce .woocommerce-ordering { float: none; margin: 0 0 16px; }
.woocommerce .woocommerce-ordering select {
	appearance: none; -webkit-appearance: none; min-height: 44px; padding: 0 16px; padding-inline-end: 40px; border: 1px solid var(--line-2); border-radius: 10px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233d5a4f' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat left 14px center / 18px; font-size: 15px; cursor: pointer; width: 100%;
}
[dir="ltr"] .woocommerce .woocommerce-ordering select { background-position: right 14px center; }
.woocommerce nav.woocommerce-pagination { margin-top: 32px; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: inline-flex; flex-wrap: wrap; gap: 6px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 44px; height: 44px; display: grid; place-items: center; border-radius: 10px; border: 1px solid var(--line-2); background: #fff; padding: 0 10px; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--deep); color: #fff; border-color: var(--deep); }
.woocommerce-info, .woocommerce-message, .woocommerce-error, .woocommerce-noreviews, p.no-comments { border: 1px solid var(--line) !important; border-radius: 12px; background: #fff !important; color: var(--ink) !important; padding: 14px 18px !important; margin: 0 0 18px !important; list-style: none; }
.woocommerce-message { border-color: var(--mint-2) !important; background: var(--mint) !important; }
.woocommerce-error { border-color: #f3c2bd !important; background: #fff5f4 !important; }
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before { display: none; }
.woocommerce-message .button, .woocommerce-info .button { float: none !important; min-height: 40px; margin-inline-start: 12px; }

/* ---------- Product page ---------- */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 4px; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: auto !important; float: none !important; margin: 0 !important; min-width: 0; }
.woocommerce div.product div.images { position: relative; margin-inline: calc(var(--gutter) * -1) !important; }
.woocommerce div.product div.images img { background: var(--soft); }
.woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: 8px; margin-top: 8px; padding-inline: var(--gutter); }
.woocommerce div.product div.images .flex-control-thumbs li { width: 68px !important; }
.woocommerce div.product div.images .flex-control-thumbs img { border-radius: 8px; opacity: .6; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active { opacity: 1; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { top: 12px; background: rgba(255, 255, 255, .95); border-radius: 10px; }
[dir="rtl"] .woocommerce div.product div.images .woocommerce-product-gallery__trigger { left: 12px; right: auto; }
.woocommerce div.product span.onsale { position: absolute; top: 12px; z-index: 3; margin: 0; min-width: 0; min-height: 0; padding: 3px 10px; line-height: 1.6; border-radius: 4px; background: var(--sale); color: #fff; font-size: 13px; font-weight: 700; }
[dir="rtl"] .woocommerce div.product span.onsale { right: 12px; left: auto; }
[dir="ltr"] .woocommerce div.product span.onsale { left: 12px; right: auto; }
.summary-kicker { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 4px; font-size: 14px; font-weight: 700; color: var(--green-dark); }
.woocommerce div.product .product_title { font-size: clamp(26px, 7vw, 38px); margin-bottom: 8px; }
.woocommerce div.product .summary .care-tags { margin: 0 0 14px; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--ink); font-size: 24px; font-weight: 800; display: flex; align-items: baseline; gap: 4px 10px; flex-wrap: wrap; margin-bottom: 10px; font-variant-numeric: tabular-nums; }
.woocommerce div.product p.price del, .woocommerce div.product span.price del { color: var(--muted); font-size: 16px; font-weight: 500; opacity: 1; }
.woocommerce div.product p.price ins, .woocommerce div.product span.price ins { color: var(--sale); text-decoration: none; }
.woocommerce-product-details__short-description { color: var(--ink-2); font-size: 16px; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin: 18px 0; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart.variations_form { display: block; position: relative; }
.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: 8px; border: 0; }
.woocommerce div.product form.cart .variations tr { display: block; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; padding: 0; text-align: start; line-height: 1.5; }
.woocommerce div.product form.cart .variations label { font-weight: 700; font-size: 15px; }
.woocommerce div.product form.cart .variations td.value { position: relative; margin: 8px 0 4px; }
.woocommerce div.product form.cart .variations select { min-height: 44px; border: 1px solid var(--line-2); border-radius: 10px; padding: 0 14px; width: 100%; background: #fff; }
.woocommerce div.product form.cart .variations select.is-replaced { position: absolute !important; top: 0; inset-inline-start: 0; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.option-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.option-btn { display: inline-flex; align-items: center; gap: 8px; min-width: 64px; min-height: 46px; padding: 0 18px; border-radius: 10px; border: 1px solid var(--line-2); background: #fff; font-weight: 700; font-size: 15px; cursor: pointer; transition: .15s; }
.option-btn:hover { border-color: var(--green); }
.option-btn[aria-pressed="true"] { background: var(--deep); border-color: var(--deep); color: #fff; }
.option-btn:disabled { opacity: .4; text-decoration: line-through; cursor: not-allowed; }
form.cart.needs-option .option-buttons { animation: nasma-shake .4s; }
form.cart.needs-option .variations label { color: var(--sale); }
@keyframes nasma-shake { 25% { transform: translateX(-6px); } 50% { transform: translateX(6px); } 75% { transform: translateX(-3px); } }
.woocommerce div.product form.cart .reset_variations { font-size: 13.5px; color: var(--muted); display: inline-block; margin-top: 8px; }
.size-guide { margin: 4px 0 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.size-guide summary { list-style: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; font-weight: 700; font-size: 15px; color: var(--green-dark); cursor: pointer; }
.size-guide summary::-webkit-details-marker { display: none; }
.size-guide summary .icon { width: 20px; height: 20px; }
.size-guide table { width: 100%; border-collapse: collapse; margin: 0; font-size: 14.5px; }
.size-guide th, .size-guide td { padding: 9px 14px; border-top: 1px solid var(--line); text-align: start; vertical-align: top; }
.size-guide th { width: 30%; font-weight: 800; white-space: nowrap; }
.size-guide p { margin: 0; padding: 10px 14px 12px; border-top: 1px solid var(--line); font-size: 13.5px; color: var(--muted); }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; }
.woocommerce div.product .woocommerce-variation-price { margin-bottom: 10px; }
.qty-label { flex: 0 0 100%; font-weight: 700; font-size: 15px; margin-bottom: -4px; }
.qty-help { flex: 0 0 100%; margin: 2px 0 0; font-size: 14px; color: var(--ink-2); line-height: 1.6; }
.carpet-total { flex: 0 0 100%; order: 3; }
.woocommerce .quantity .qty { width: 92px; min-height: 52px; border: 1px solid var(--line-2); border-radius: 10px; text-align: center; background: #fff; font-weight: 800; font-size: 17px; }
.woocommerce div.product form.cart .button { flex: 1 1 180px; min-height: 52px; font-size: 17px; }
.promise { list-style: none; padding: 14px 16px; margin: 0 0 18px; display: grid; gap: 11px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); }
.promise li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; line-height: 1.6; }
.promise li span { min-width: 0; }
.promise .icon { color: var(--green); width: 21px; height: 21px; margin-top: 2px; }
.woocommerce div.product .woocommerce-tabs { grid-column: 1 / -1; margin-top: 8px; min-width: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: 22px; padding: 0; margin: 0 0 14px; border-bottom: 1px solid var(--line); overflow-x: auto; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { position: relative; border: 0; background: none; border-radius: 0; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 10px 0; font-weight: 700; font-size: 16px; color: var(--muted); white-space: nowrap; border-bottom: 2px solid transparent; display: block; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink); border-bottom-color: var(--green); }
.woocommerce div.product .woocommerce-tabs .panel { padding: 0; margin: 0; background: none; border: 0; max-width: 820px; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }
.woocommerce div.product .woocommerce-tabs .panel ul, .woocommerce div.product .woocommerce-tabs .panel ol { padding-inline-start: 1.3em; }
.woocommerce div.product .woocommerce-tabs .panel h3 { font-size: 18px; margin-top: 1.2em; }
.woocommerce div.product .woocommerce-tabs .panel ul.slot-list { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.slot-list li { padding: 6px 12px; border: 1px solid var(--line-2); border-radius: 8px; background: #fff; font-weight: 700; font-variant-numeric: tabular-nums; }
.woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; margin-top: 20px; min-width: 0; }
.woocommerce div.product .related > h2, .woocommerce div.product .upsells > h2 { font-size: 24px; margin-bottom: 16px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { border: 1px solid var(--line-2); border-radius: 10px; background: #fff; padding: 12px 14px; min-height: 48px; font-size: 16px; }
.woocommerce form .form-row label { font-weight: 700; }

/* Phone buy bar */
.buybar { position: fixed; inset-inline: 0; bottom: 0; z-index: 46; display: flex; align-items: center; gap: 12px; padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .97); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid var(--line); box-shadow: 0 -8px 24px rgba(16, 34, 27, .08); }
.buybar-info { flex: 1; min-width: 0; display: grid; line-height: 1.35; }
.buybar-name { font-size: 14px; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.buybar-price { font-weight: 800; font-size: 15px; }
.buybar-price del { color: var(--muted); font-weight: 500; font-size: 12px; }
.buybar-price ins { text-decoration: none; color: var(--sale); }
.buybar .btn { flex: 0 0 auto; min-height: 46px; padding: 0 20px; }
body.single-product .tabbar { display: none; }
body.single-product { padding-bottom: 80px; }

/* Toast */
.toast { position: fixed; z-index: 70; inset-inline: 16px; bottom: calc(var(--tabbar-h) + 14px + env(safe-area-inset-bottom)); margin-inline: auto; max-width: 440px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px; border-radius: 12px; background: var(--deep); color: #fff; font-weight: 700; box-shadow: var(--shadow); opacity: 0; transform: translateY(10px); transition: opacity .25s, transform .25s; }
.toast span { min-width: 0; }
.toast.is-on { opacity: 1; transform: none; }
.toast a { color: var(--accent-light); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
body.single-product .toast { bottom: calc(86px + env(safe-area-inset-bottom)); }
body.home .toast { bottom: calc(var(--tabbar-h) + 84px + env(safe-area-inset-bottom)); }

/* ---------- Pages, cart, checkout, account ---------- */
.page-wrap { padding-block: 20px 56px; }
.page-wrap.narrow { max-width: 820px; }
.page-head h1 { font-size: clamp(28px, 7.4vw, 42px); margin-top: 4px; }
.page-lead { color: var(--ink-2); max-width: 700px; font-size: 17px; }
.entry { font-size: 16.5px; min-width: 0; }
.entry > :first-child { margin-top: 0; }
.entry h2 { font-size: 23px; margin-top: 1.4em; }
.entry h3 { font-size: 19px; margin-top: 1.2em; }
.entry ul, .entry ol { padding-inline-start: 1.3em; }
.entry li { margin-bottom: .35em; }
.narrow-entry { max-width: 820px; margin-top: 28px; }
.page-cta { margin: 24px 0 0; }
:where(.page-wrap:not(.is-store-page)) .entry a:where(:not(.button):not(.btn):not(.wc-block-components-button)) { color: var(--green-dark); text-decoration: underline; text-underline-offset: 3px; }
.is-store-page .entry a:where(:not(.button):not(.btn):not([class*="wc-block"])) { text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-MyAccount-content a:where(:not(.button)) { color: var(--green-dark); }
.entry ul.products { padding: 0; }
.entry ul.products li { margin-bottom: 0; }
.entry ul.products a { color: var(--ink); text-decoration: none; }
.entry ul.products .quick-add, .entry ul.products .quick-add:hover, .entry ul.products .quick-add.added { color: #fff; }
.entry ul.products .quick-add.is-link { color: var(--ink); }
.entry figure { margin: 0 0 1.4em; max-width: 100%; overflow-x: auto; }
.entry table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 12px; overflow: hidden; }
.entry th, .entry td { padding: 12px; border-bottom: 1px solid var(--line); text-align: start; vertical-align: top; overflow-wrap: anywhere; }
.entry th { background: var(--mint); font-weight: 800; }
.credits-table { font-size: 14px; }
.credits-table small { display: block; margin-top: 4px; color: var(--muted); font-size: 12.5px; }
.store-note { display: flex; gap: 10px; align-items: flex-start; padding: 14px 16px; margin: 0 0 20px; border: 1px solid var(--mint-2); border-radius: 12px; background: var(--mint); font-size: 15px; color: var(--ink-2); line-height: 1.7; }
.store-note span { min-width: 0; }
.store-note .icon { color: var(--green-dark); width: 22px; height: 22px; margin-top: 2px; }
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { background: var(--green) !important; color: #fff !important; border-radius: 10px !important; min-height: 52px; font-family: var(--font); font-weight: 700; }
.wc-block-components-button:not(.is-link):hover { background: var(--green-dark) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-block-components-textarea, .wc-blocks-components-select .wc-blocks-components-select__select { border-radius: 10px !important; border-color: var(--line-2) !important; }
.wc-block-components-product-name { font-weight: 700; color: var(--ink) !important; }
.wc-block-components-product-details { font-size: 13.5px; }
.woocommerce table.shop_table { border: 1px solid var(--line); border-radius: 12px; background: #fff; border-collapse: separate; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-top-color: var(--line); padding: 12px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 20px; display: flex; gap: 6px; overflow-x: auto; }
.woocommerce-account .woocommerce-MyAccount-navigation li { position: relative; flex: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: flex; align-items: center; min-height: 40px; padding: 0 16px; border: 1px solid var(--line-2); border-radius: 8px; background: #fff; white-space: nowrap; font-size: 15px; text-decoration: none; color: inherit; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--deep); color: #fff; border-color: var(--deep); }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; }
.woocommerce-account .woocommerce::before, .woocommerce-account .woocommerce::after { display: none; }
.woocommerce form.login, .woocommerce form.register { border: 1px solid var(--line) !important; border-radius: 12px !important; background: #fff; padding: 22px !important; margin: 0 0 18px !important; }
.order-next { margin: 0 0 24px; padding: 18px; border: 1px solid var(--mint-2); border-radius: 14px; background: var(--mint); }
.order-next h2 { font-size: 20px; margin-bottom: 10px; }
.order-next ol { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 10px; }
.order-next li { display: flex; gap: 10px; align-items: flex-start; }
.order-next li span { min-width: 0; }
.order-next .icon { color: var(--green-dark); width: 22px; height: 22px; margin-top: 2px; }
.empty-state { text-align: center; display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 10px; }
.empty-mark { width: 96px; height: 96px; color: var(--green-dark); }
.empty-state .big { font-size: 64px; font-weight: 800; color: var(--green); line-height: 1; }
.empty-state .search-form { width: 100%; }
.empty-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.post-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
.post-card img, .post-cover img { border-radius: 12px; margin-bottom: 10px; }
.faq-page { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; max-width: 900px; }
.service-page .steps, .service-page .gov-grid { margin-top: 8px; }

/* Search form */
.search-form { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--line-2); border-radius: 12px; padding: 5px; padding-inline-start: 14px; max-width: 640px; margin-inline: auto; min-width: 0; }
.search-form:focus-within { border-color: var(--green); box-shadow: 0 0 0 2px var(--green); }
.search-form .icon { color: var(--muted); width: 20px; height: 20px; }
.search-form input[type="search"] { flex: 1; min-width: 0; border: 0; background: transparent; padding: 8px 4px; outline: none; font-size: 16px; text-overflow: ellipsis; }
.search-form .btn { min-height: 42px; padding: 0 18px; }

/* Contact page */
.contact-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start; }
.contact-card { padding: 22px; border-radius: 18px; background: var(--deep); color: var(--on-deep); min-width: 0; }
.contact-card .brand { color: #fff; margin-bottom: 14px; }
.contact-card .brand-mark { color: #fff; }
.contact-card ul { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 14px; }
.contact-card li { display: flex; gap: 12px; align-items: flex-start; }
.contact-card li > span { display: grid; min-width: 0; overflow-wrap: anywhere; }
.contact-card strong { font-weight: 700; font-size: 13.5px; color: var(--on-deep-2); }
.contact-card .icon { color: var(--accent-light); width: 22px; height: 22px; margin-top: 2px; }
.contact-card a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.contact-card .btn-light, .contact-card .btn-light:hover { color: var(--deep); text-decoration: none; }
.contact-card .contact-hint { margin: 14px 0 0; font-size: 14px; color: var(--on-deep-2); }
.contact-form { padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.swst-contact { display: block !important; margin: 0 !important; color: var(--ink); }
.swst-contact .swst-contact-form { padding: 0 !important; border: 0 !important; background: none !important; }
.swst-contact .swst-contact-details { display: none !important; }
.swst-contact h2 { margin-top: 0 !important; font-size: 23px !important; }
.swst-contact .swst-intro { color: var(--muted) !important; }
.swst-contact input:not([type=hidden]), .swst-contact textarea { background: #fff !important; border-color: var(--line-2) !important; }
.swst-contact .swst-submit { font-family: var(--font) !important; background: var(--green) !important; color: #fff !important; }
.swst-contact .swst-trap { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }

/* ---------- Footer ---------- */
.site-footer { background: var(--deep); color: var(--on-deep); padding-top: 40px; font-size: 15px; }
.site-footer a { color: var(--on-deep-2); }
.site-footer a:hover { color: #fff; }
.site-footer .brand { color: #fff; justify-self: start; }
.site-footer .brand-mark { color: #fff; }
.site-footer .btn-light { color: var(--deep); margin-bottom: 16px; }
.site-footer .btn-light:hover { color: var(--deep); background: var(--mint); }
.footer-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; padding-bottom: 20px; }
.footer-brand { padding-bottom: 20px; min-width: 0; }
.footer-brand p { margin: 12px 0 16px; color: var(--on-deep-2); max-width: 400px; }
.footer-col { border-top: 1px solid rgba(255, 255, 255, .12); min-width: 0; }
.footer-col summary { list-style: none; display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 4px 0; cursor: pointer; font-weight: 800; font-size: 16px; color: #fff; }
.footer-col summary::-webkit-details-marker { display: none; }
.footer-col summary::after { content: "+"; font-size: 22px; font-weight: 400; color: var(--on-deep-2); }
.footer-col[open] summary::after { content: "–"; }
.footer-col ul { list-style: none; margin: 0; padding: 0 0 16px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.footer-col li { color: var(--on-deep-2); min-width: 0; }
.footer-contact li { display: flex; gap: 10px; align-items: flex-start; overflow-wrap: anywhere; }
.footer-contact li > span, .footer-contact li > a { min-width: 0; }
.footer-contact .icon { width: 18px; height: 18px; margin-top: 4px; color: var(--accent-light); }
.socials { display: flex; gap: 8px; }
.socials a { position: relative; width: 44px; height: 44px; border-radius: 10px; display: grid; place-items: center; background: rgba(255, 255, 255, .08); }
.socials a:hover { background: var(--green); }
.socials .icon { width: 19px; height: 19px; }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: space-between; align-items: center; border-top: 1px solid rgba(255, 255, 255, .12); padding-block: 16px; font-size: 13.5px; color: var(--on-deep-2); }
.footer-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; }
.site-footer .footer-legal a { color: var(--on-deep); }
.pay-badge { display: inline-flex; align-items: center; gap: 6px; }
.pay-badge .icon { width: 18px; height: 18px; color: var(--accent-light); }

/* ---------- Phone tab bar ---------- */
.tabbar { position: fixed; inset-inline: 0; bottom: 0; z-index: 45; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); background: rgba(255, 255, 255, .97); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom); }
.tabbar a { display: grid; justify-items: center; gap: 2px; padding: 8px 0 6px; font-size: 12px; font-weight: 700; color: var(--muted); min-width: 0; }
.tabbar a > span:last-child { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tabbar .icon { width: 22px; height: 22px; }
.tabbar [aria-current="page"] { color: var(--ink); }
.tabbar [aria-current="page"] .icon { color: var(--green); }
.tab-icon { position: relative; display: inline-grid; }
.tabbar .nasma-cart-count { top: -6px; inset-inline-end: -10px; }

/* ---------- Phones ---------- */
@media (max-width: 599px) {
	.demo-bar { font-size: 12px; }
	.demo-bar-inner { flex-wrap: wrap; }
	.woocommerce .card-badges .onsale, .kind-badge { font-size: 11.5px; padding: 1px 7px; }
	.tk-ctrl { justify-content: flex-start; }
	.tk-ctrl .tk-add { margin-inline-start: auto; }
}

@media (max-width: 380px) {
	.brand-name { font-size: 23px; }
	.brand-mark { width: 36px; height: 36px; }
	html[lang^="en"] .brand-name { font-size: 17px; letter-spacing: .08em; }
	.ticket { padding-inline: 12px; }
	.ticket-foot { margin-inline: -12px; padding-inline: 12px; }
	.tk-name { font-size: 16px; }
	.tk-add { padding: 0 12px; }
	.stepper-btn { width: 36px; }
	.ring { padding: 14px; }
	.ring-step { font-size: 12.5px; padding: 2px 6px 2px 4px; }
	.ring-step .icon { display: none; }
	.cat-name { font-size: 13px; }
}

@media (max-width: 1023px) {
	.header-actions .icon-btn { width: 42px; }
	.header-actions .lang-btn { min-width: 38px; padding: 0 8px; margin-inline-end: 0; }
	.minibar {
		position: sticky; bottom: calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 10px); z-index: 30;
		display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding: 10px; padding-inline-start: 16px;
		background: var(--deep); color: #fff; border-radius: 12px; box-shadow: 0 10px 30px rgba(16, 34, 27, .25);
	}
	.minibar .btn { flex: none; }
}

/* ---------- Larger screens ---------- */
@media (min-width: 600px) {
	:root { --gutter: 24px; }
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 18px; }
	.hero-actions .btn { flex: 0 0 auto; }
	.woocommerce .woocommerce-ordering select { width: auto; }
	.shop-wrap .woocommerce-result-count { float: right !important; }
	[dir="rtl"] .shop-wrap .woocommerce-ordering { float: left !important; }
	[dir="ltr"] .shop-wrap .woocommerce-result-count { float: left !important; }
	[dir="ltr"] .shop-wrap .woocommerce-ordering { float: right !important; }
	.shop-wrap ul.products { clear: both; }
	.steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gov-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cat-row { gap: 16px; }
	.cat-name { font-size: 15.5px; }
	.ticket { padding-inline: 26px; }
	.ticket-foot { margin-inline: -26px; padding-inline: 26px; }
	.tk-actions { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
	.woocommerce div.product div.images { margin-inline: 0 !important; }
	.woocommerce div.product div.images img { border-radius: 16px; }
	.woocommerce div.product div.images .flex-control-thumbs { padding-inline: 0; }
}

@media (min-width: 760px) {
	.shop-head { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); padding: 24px; gap: 28px; }
	.shop-head-img img { aspect-ratio: 4 / 3; }
	.contact-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); gap: 28px; }
	.contact-card, .contact-form { padding: 30px; }
	.ticket-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (min-width: 960px) {
	.section { padding-block: 72px; }
	.section-head { margin-bottom: 24px; }
	.hero { padding-block: 56px 72px; }
	.hero-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 48px; }
	.hero-lead { font-size: 18px; }
	.steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
	.gov-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
	.why-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 56px; }
	.why-photo img { aspect-ratio: 10 / 11; }
	.why-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
	.why-item:nth-last-child(2) { border-bottom: 0; }
	.faq-grid { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 48px; align-items: start; }
	.contact-band-inner { grid-template-columns: minmax(0, 1fr) auto; }
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 22px; }
	.woocommerce div.product { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 56px; align-items: start; margin-top: 12px; }
	.woocommerce div.product div.summary { position: sticky; top: calc(var(--header-h) + 24px); }
	.footer-grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr) minmax(0, .9fr) minmax(0, 1.3fr); gap: 40px; padding-bottom: 40px; }
	.footer-col { border: 0; }
	.footer-col summary { pointer-events: none; min-height: 0; padding: 0 0 12px; }
	.footer-col summary::after { display: none; }
	.woocommerce-account .woocommerce { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; }
	.woocommerce-account .woocommerce-MyAccount-navigation ul { display: grid; }
	.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
}

@media (min-width: 960px) and (hover: hover) {
	.quick-add { opacity: 0; transform: translateY(-4px); }
	.woocommerce ul.products li.product:hover .quick-add, .quick-add:focus-visible, .quick-add.added, .quick-add.loading { opacity: 1; transform: none; }
	.woocommerce ul.products li.product:hover .card-media.has-alt .card-alt { opacity: 1; }
}

/* The header becomes the desktop one when the menu fits. */
@media (min-width: 1024px) {
	:root { --header-h: 76px; }
	body, body.single-product { padding-bottom: 0; }
	.only-mobile { display: none !important; }
	.main-nav.only-desktop { display: flex !important; }
	.icon-btn.only-desktop { display: inline-grid !important; }
	.admin-bar .site-header { top: 32px; }
	.header-row { grid-template-columns: auto minmax(0, 1fr) auto; gap: 24px; }
	.brand { justify-self: start; }
	.main-nav { justify-self: center; }
	.toast, body.single-product .toast, body.home .toast { bottom: 24px; }
	.ticker-track { width: auto; justify-content: center; animation: none; }
	.ticker-group[aria-hidden="true"] { display: none; }
	.ticket-grid { grid-template-columns: minmax(0, 1.55fr) minmax(0, .85fr); gap: 32px; }
	.ticket-aside { position: sticky; top: calc(var(--header-h) + 24px); }
	.ticket-aside .aside-photo { display: block; }
	.cat-row { max-width: 900px; }
}

@media (min-width: 1200px) {
	.header-cta.only-desktop { display: inline-flex !important; }
	/* Wide screens: the photo of clean shirts, with the ring laid over its corner. */
	.hero-visual { padding-bottom: 40px; }
	.hero-photo { display: block; width: 74%; margin-inline-start: auto; }
	.hero-photo img { width: 100%; aspect-ratio: 5 / 6; object-fit: cover; border-radius: 20px; }
	.hero-visual .ring { position: absolute; bottom: 0; inset-inline-start: 0; width: 340px; margin: 0; padding: 16px; }
	.hero-visual .ring-slot { font-size: 19px; }
}

@media (min-width: 1024px) and (max-width: 1199px) {
	.main-nav .nav-list a { padding-inline: 10px; font-size: 15.5px; }
	.main-nav .menu-item-has-children > a { padding-inline-end: 24px; }
	.main-nav .menu-item-has-children > a::before { inset-inline-end: 9px; }
	.main-nav .nav-list > li > a::after { inset-inline: 10px; }
}

/* Touch screens: every control is at least 44px (nothing here shows what another rule hides). */
@media (pointer: coarse) {
	.lang-btn { height: 44px; min-width: 44px; }
	.chip, .link-more, .woocommerce-account .woocommerce-MyAccount-navigation li a, .tk-size span, .tk-group-head a { min-height: 44px; }
	.quick-add { width: 44px; height: 44px; }
	.demo-bar-close { width: 44px; height: 44px; }
	.footer-col li a, .footer-legal a, .demo-bar a, .breadcrumb a, .aside-note a, .gov-text a { display: inline-flex; align-items: center; min-height: 44px; }
	.footer-col ul { gap: 0; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
	.ticker { overflow-x: auto; scrollbar-width: none; }
	.ticker-group[aria-hidden="true"] { display: none; }
	.marquee-track { width: auto; flex-wrap: wrap; justify-content: center; }
	.marquee-group { flex-wrap: wrap; justify-content: center; }
	.marquee-group + .marquee-group { display: none; }
	.cat-tile:hover .cat-img img { transform: none; }
}

/* English pages: the headline fits. */
html[lang^="en"] .hero-title { font-size: clamp(30px, 8vw, 54px); }
