/* =====================================================================
   Nollé Atelier – styly šablony
   1. Základ   2. Hlavička   3. Hero   4. Drop / karty   5. O značce
   6. Patička  7. Stránky    8. Obchod 9. Detail produktu
   10. Formuláře/košík/pokladna/účet   11. Modal   12. Responzivita
   ===================================================================== */

/* 1. Základ ----------------------------------------------------------- */
:root {
	color-scheme: light;
	--ink: #20201f;
	--muted: #77736f;
	--paper: #f8f7f5;
	--white: #fff;
	--line: #e7e4e1;
	--lilac: #d9d4e7;
	--lilac-soft: #eeebf2;
	--lilac-line: #dcd7e3;
	--card: #e9e5e4;
	--text-soft: #615e5a;
	--error: #9c3b3b;
	--serif: "Bodoni Moda", "Bodoni 72", "Didot", "Bodoni MT", "Times New Roman", serif;
	--sans: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--gutter: clamp(22px, 5vw, 76px);
	--radius: 0;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
body.modal-open { overflow: hidden; }
a { color: inherit; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { margin-top: 0; font-family: var(--serif); font-weight: 400; }
p { margin-top: 0; }
button { font: inherit; color: inherit; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
.skip-link:focus { left: 16px; top: 16px; width: auto; height: auto; clip: auto; z-index: 100; padding: 10px 14px; background: var(--ink); color: #fff; }

.eyebrow {
	margin: 0 0 24px;
	color: var(--muted);
	font-size: 11px;
	letter-spacing: .24em;
	line-height: 1.6;
	text-transform: uppercase;
}
.button, .nolle button.button, .nolle a.button, .nolle input[type="submit"], .nolle .wc-block-components-button,
.nolle .woocommerce-button, .nolle .woocommerce-Button, .nolle .checkout-button, .nolle #place_order {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	padding: 0 24px;
	border: 1px solid var(--ink);
	border-radius: var(--radius);
	background: var(--ink);
	color: var(--white);
	font-family: var(--sans);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: .15em;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .2s ease, color .2s ease, opacity .2s ease;
}
.button:hover, .nolle button.button:hover, .nolle a.button:hover, .nolle input[type="submit"]:hover,
.nolle .woocommerce-button:hover, .nolle .woocommerce-Button:hover, .nolle .checkout-button:hover, .nolle #place_order:hover {
	background: transparent;
	color: var(--ink);
}
.nolle .button.alt, .nolle button.button.alt, .nolle a.button.alt, .nolle input.button.alt { background: var(--ink); color: var(--white); border-color: var(--ink); }
.nolle .button.alt:hover, .nolle button.button.alt:hover, .nolle a.button.alt:hover, .nolle input.button.alt:hover { background: transparent; color: var(--ink); }
.nolle button.button.alt.disabled, .nolle button.button.alt:disabled, .nolle button.button.alt.disabled:hover, .nolle .single_add_to_cart_button.disabled, .nolle .single_add_to_cart_button.disabled:hover { background: transparent; color: var(--muted); border-color: #cfcbc7; opacity: 1; cursor: not-allowed; }
.button--small { min-height: 42px; padding: 0 18px; font-size: 10px; }
.button--ghost, .nolle a.button--ghost { background: transparent; color: var(--ink); }
.button--ghost:hover { background: var(--ink); color: var(--white); }
.nolle .button:disabled, .nolle button.button:disabled, .nolle .button.disabled, .nolle button.button.disabled:hover { opacity: 1; cursor: not-allowed; background: transparent; color: var(--muted); border-color: #cfcbc7; }
.text-link {
	background: none;
	border: 0;
	padding: 0;
	color: var(--ink);
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: opacity .2s ease;
}
.text-link:hover { opacity: .6; }

/* 2. Hlavička --------------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 20;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	min-height: 82px;
	padding: 0 var(--gutter);
	background: var(--paper);
	transition: box-shadow .25s ease;
}
.site-header.is-scrolled { box-shadow: 0 1px 0 var(--line); }
.header-nav { display: flex; gap: 28px; }
.wordmark {
	grid-column: 2;
	color: var(--ink);
	font-family: var(--serif);
	font-size: clamp(22px, 2.1vw, 29px);
	letter-spacing: .13em;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
}
.wordmark--logo img { max-height: 44px; width: auto; }
.header-actions { display: flex; justify-content: flex-end; gap: 4px; }
.header-link {
	position: relative;
	display: inline-flex;
	width: 46px;
	height: 46px;
	align-items: center;
	justify-content: center;
	color: var(--ink);
	text-decoration: none;
	transition: opacity .2s ease;
}
.header-link svg { width: 24px; height: 24px; }
.header-link:hover { opacity: .6; }
.lang-switcher { display: inline-flex; align-items: center; gap: 8px; margin-right: 12px; font-size: 11px; letter-spacing: .16em; }
.lang-item { color: var(--muted); text-decoration: none; transition: color .2s ease; }
.lang-item:hover { color: var(--ink); }
.lang-item.is-active { color: var(--ink); }
.lang-sep { color: var(--line); }
.cart-count {
	position: absolute;
	top: 6px;
	right: 4px;
	display: none;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	border-radius: 9px;
	background: var(--ink);
	color: #fff;
	font-size: 10px;
	line-height: 17px;
	text-align: center;
}
.cart-count.is-visible { display: block; }

/* 3. Hero ------------------------------------------------------------- */
.hero {
	display: grid;
	grid-template-columns: minmax(370px, .82fr) minmax(0, 1.18fr);
	min-height: min(760px, calc(100svh - 82px));
	background: var(--white);
}
.hero-copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(44px, 8vw, 128px);
	padding-right: clamp(34px, 7vw, 110px);
}
.hero h1 {
	max-width: 560px;
	margin-bottom: 21px;
	font-size: clamp(43px, 5.2vw, 76px);
	letter-spacing: -.035em;
	line-height: .99;
}
.hero-description {
	max-width: 360px;
	margin-bottom: 32px;
	color: var(--text-soft);
	font-size: 16px;
	line-height: 1.75;
}
.hero-photo { position: relative; min-height: 500px; overflow: hidden; background: #d8d4d0; }
.hero-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 44%; }
.photo-note {
	position: absolute;
	right: 24px;
	bottom: 22px;
	color: #fff;
	font-size: 10px;
	letter-spacing: .2em;
	text-shadow: 0 1px 8px #0007;
	text-transform: uppercase;
}

/* 4. Drop / karty produktů ------------------------------------------- */
.drop-section, .shop-section {
	padding: clamp(76px, 9vw, 124px) clamp(24px, 6vw, 88px) clamp(88px, 10vw, 136px);
	background: var(--paper);
}
.drop-heading { max-width: 660px; margin: 0 auto 45px; text-align: center; }
.drop-heading .eyebrow { margin-bottom: 16px; }
.drop-heading h1, .drop-heading h2, .about h2 {
	margin-bottom: 20px;
	font-size: clamp(37px, 5vw, 62px);
	letter-spacing: -.025em;
	line-height: 1.06;
}
.drop-description { max-width: 490px; margin: 0 auto; color: #625f5c; font-size: 16px; line-height: 1.75; }
.drop-empty { text-align: center; color: var(--muted); }

.product-grid, .nolle ul.products {
	display: grid;
	max-width: 1320px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(14px, 2.5vw, 34px) clamp(14px, 2.5vw, 34px);
	margin: 0 auto;
	padding: 0;
	list-style: none;
}
.nolle ul.products::before, .nolle ul.products::after { display: none; }
.nolle ul.products li.product { width: auto; margin: 0; float: none; }
.product-card { min-width: 0; }
.product-visual {
	position: relative;
	display: flex;
	min-height: clamp(280px, 34vw, 470px);
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: var(--card);
	text-decoration: none;
}
.product-visual img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 42%;
	transition: transform .55s ease;
}
.product-card:hover .product-visual img { transform: scale(1.025); }
.product-card.is-soldout .product-visual img { filter: saturate(.6); opacity: .85; }
.product-monogram {
	position: relative;
	z-index: 1;
	color: rgb(32 32 31 / .76);
	font-family: var(--serif);
	font-size: clamp(56px, 8vw, 104px);
	letter-spacing: .04em;
	line-height: 1;
}
.product-tag {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 1;
	padding: 9px 11px;
	background: rgb(255 255 255 / .9);
	color: var(--ink);
	font-size: 10px;
	letter-spacing: .13em;
	text-transform: uppercase;
}
.product-info { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 17px 0 0; }
.product-info h3 { margin: 0; font-size: clamp(23px, 2.4vw, 31px); line-height: 1.15; }
.product-info h3 a { text-decoration: none; }
.product-info p { margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.product-price { padding-top: 8px; font-size: 13px; letter-spacing: .06em; white-space: nowrap; }
.product-price del { color: var(--muted); margin-right: 6px; }
.product-price ins { text-decoration: none; }

/* 5. O značce --------------------------------------------------------- */
.about { display: grid; grid-template-columns: 1fr; min-height: 420px; background: var(--lilac-soft); }
.about--with-image { grid-template-columns: .78fr 1.22fr; }
.about-image { position: relative; min-height: 420px; border-right: 1px solid var(--lilac-line); overflow: hidden; }
.about-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.about-copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	max-width: 980px;
	margin: 0 auto;
	padding: clamp(50px, 8vw, 110px) var(--gutter);
}
.about--with-image .about-copy { margin: 0; }
.about h2 { margin-bottom: 18px; font-size: clamp(34px, 4.4vw, 54px); }
.about-copy > p:not(.eyebrow) { max-width: 560px; margin-bottom: 0; color: #5d5962; font-size: 16px; line-height: 1.8; }

/* 6. Patička ---------------------------------------------------------- */
.site-footer { padding: 22px var(--gutter) 26px; background: var(--paper); color: var(--muted); font-size: 12px; border-top: 1px solid var(--line); }
.footer-row { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.footer-row--legal { padding-top: 14px; margin-top: 10px; border-top: 1px solid var(--line); align-items: flex-start; }
.footer-row--copy { min-height: 0; padding-top: 10px; }
.site-footer a { text-decoration: none; }
.site-footer a:hover { color: var(--ink); }
.footer-brand { color: var(--ink); font-family: var(--serif); letter-spacing: .14em; }
.footer-nav, .footer-contact, .footer-legal { display: flex; gap: 22px; flex-wrap: wrap; }
.footer-nav li, .footer-legal li { display: inline; list-style: none; margin: 0; padding: 0; }
.footer-company { margin: 0; max-width: 520px; line-height: 1.6; }

/* 7. Stránky ---------------------------------------------------------- */
.page-section { padding: clamp(60px, 8vw, 110px) var(--gutter) clamp(80px, 10vw, 130px); background: var(--white); }
.page-section--center { text-align: center; }
.page-section--center .page-narrow > * { margin-left: auto; margin-right: auto; }
.page-narrow { max-width: 760px; margin: 0 auto; }
.page-heading { margin-bottom: 40px; }
.page-heading h1, .page-section h1 { font-size: clamp(36px, 4.6vw, 58px); letter-spacing: -.025em; line-height: 1.05; margin-bottom: 16px; }
.lead { color: var(--text-soft); font-size: 17px; line-height: 1.7; max-width: 520px; margin-bottom: 30px; }
.entry-content { font-size: 16px; line-height: 1.8; color: #3e3c3a; }
.entry-content h2 { font-size: clamp(26px, 3vw, 34px); margin: 44px 0 14px; }
.entry-content h3 { font-size: 22px; margin: 32px 0 10px; }
.entry-content p, .entry-content ul, .entry-content ol { margin-bottom: 18px; }
.entry-content a { text-decoration: underline; text-underline-offset: 3px; }
.entry-content table { width: 100%; border-collapse: collapse; font-size: 14px; margin-bottom: 24px; }
.entry-content th, .entry-content td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; }
.entry-content th { font-weight: 400; color: var(--muted); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.entry-content .wp-block-image { margin: 30px 0; }
.entry-title a { text-decoration: none; }
.entry { padding: 26px 0; border-bottom: 1px solid var(--line); }

/* 8. Obchod ----------------------------------------------------------- */
.nolle .woocommerce-notices-wrapper:empty { display: none; }
.nolle .woocommerce-message, .nolle .woocommerce-info, .nolle .woocommerce-error, .nolle .wc-block-components-notice-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 18px;
	max-width: 1320px;
	margin: 0 auto 36px;
	padding: 16px 20px;
	border: 1px solid var(--line);
	border-top: 2px solid var(--ink);
	background: var(--white);
	color: var(--ink);
	font-size: 14px;
	list-style: none;
}
.nolle .woocommerce-message::before, .nolle .woocommerce-info::before, .nolle .woocommerce-error::before { display: none; }
.nolle .woocommerce-error { border-top-color: var(--error); color: var(--error); }
.nolle .woocommerce-error li { margin: 0; }
.nolle .woocommerce-message .button { margin-left: auto; order: 2; }
.nolle .woocommerce-pagination { margin-top: 50px; text-align: center; }
.nolle .woocommerce-pagination ul { display: inline-flex; gap: 6px; list-style: none; padding: 0; margin: 0; border: 0; }
.nolle .woocommerce-pagination li { border: 0; }
.nolle .woocommerce-pagination a, .nolle .woocommerce-pagination span { display: inline-block; min-width: 40px; padding: 10px 12px; border: 1px solid var(--line); text-decoration: none; font-size: 12px; letter-spacing: .1em; }
.nolle .woocommerce-pagination .current { background: var(--ink); color: #fff; border-color: var(--ink); }
.nolle .woocommerce-no-products-found { text-align: center; }

/* 9. Detail produktu -------------------------------------------------- */
.nolle.single-product .shop-section { padding-top: clamp(36px, 5vw, 70px); background: var(--white); }
.nolle div.product { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(30px, 6vw, 90px); max-width: 1320px; margin: 0 auto; }
.nolle div.product div.images, .nolle div.product div.images.woocommerce-product-gallery { width: auto; float: none; margin: 0; }
.nolle div.product .woocommerce-product-gallery__wrapper { margin: 0; }
.nolle div.product .woocommerce-product-gallery__image { background: var(--card); }
.nolle div.product .woocommerce-product-gallery__image img { width: 100%; }
.nolle div.product .flex-control-thumbs { display: flex; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.nolle div.product .flex-control-thumbs li { width: calc(20% - 7px); margin: 0; }
.nolle div.product .flex-control-thumbs img { opacity: .6; cursor: pointer; }
.nolle div.product .flex-control-thumbs img.flex-active, .nolle div.product .flex-control-thumbs img:hover { opacity: 1; }
.nolle div.product .woocommerce-product-gallery__trigger { top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 50%; background: rgb(255 255 255 / .9); z-index: 5; }
.nolle div.product div.summary { width: auto; float: none; margin: 0; position: sticky; top: 100px; align-self: start; padding-top: clamp(0px, 2vw, 24px); }
.nolle div.product .summary .eyebrow { margin-bottom: 14px; }
.nolle div.product .product_title { font-size: clamp(34px, 4vw, 52px); letter-spacing: -.025em; line-height: 1.05; margin-bottom: 14px; }
.nolle div.product p.price, .nolle div.product span.price { font-family: var(--sans); font-size: 15px; letter-spacing: .08em; color: var(--ink); margin-bottom: 22px; }
.nolle div.product p.price del { color: var(--muted); opacity: 1; margin-right: 8px; }
.nolle div.product p.price ins { text-decoration: none; font-weight: 400; }
.nolle div.product .woocommerce-product-details__short-description { color: var(--text-soft); line-height: 1.75; max-width: 440px; margin-bottom: 26px; }
.nolle div.product form.cart { margin: 0 0 22px; }
.nolle div.product table.variations { margin: 0 0 18px; border: 0; }
.nolle div.product table.variations td, .nolle div.product table.variations th { padding: 0 0 10px; border: 0; vertical-align: middle; }
.nolle div.product table.variations th.label { width: 1%; padding-right: 14px; }
.nolle div.product table.variations label { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.nolle div.product .reset_variations { display: inline-block; margin: 6px 0 0 2px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.nolle div.product .woocommerce-variation-price { margin-bottom: 12px; }
.nolle div.product .woocommerce-variation-availability p { margin: 0 0 12px; font-size: 13px; color: var(--muted); }
.nolle div.product .woocommerce-variation-add-to-cart, .nolle div.product form.cart:not(.variations_form) { display: flex; align-items: stretch; gap: 10px; }
.nolle div.product .quantity { display: inline-flex; }
.nolle div.product .quantity .qty { width: 64px; min-height: 48px; padding: 0 8px; border: 1px solid var(--ink); background: transparent; text-align: center; font: inherit; }
.nolle div.product .single_add_to_cart_button { flex: 1; }
.nolle div.product .stock { font-size: 13px; color: var(--muted); margin: 0 0 14px; }
.nolle div.product .out-of-stock { color: var(--error); }
.product-links { display: flex; flex-wrap: wrap; gap: 8px 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.nolle div.product .woocommerce-tabs { grid-column: 1 / -1; max-width: 760px; margin: clamp(30px, 5vw, 70px) 0 0; padding: 0; }
.nolle div.product .woocommerce-tabs ul.tabs { display: flex; gap: 26px; margin: 0 0 22px; padding: 0; border-bottom: 1px solid var(--line); overflow: visible; }
.nolle div.product .woocommerce-tabs ul.tabs::before, .nolle div.product .woocommerce-tabs ul.tabs::after, .nolle div.product .woocommerce-tabs ul.tabs li::before, .nolle div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.nolle div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; background: none; border-radius: 0; box-shadow: none; }
.nolle div.product .woocommerce-tabs ul.tabs li a { display: block; padding: 0 0 12px; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; font-weight: 400; color: var(--muted); text-decoration: none; border-bottom: 1px solid transparent; margin-bottom: -1px; }
.nolle div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink); border-bottom-color: var(--ink); }
.nolle div.product .woocommerce-tabs .panel { padding: 0; margin: 0; box-shadow: none; }
.nolle div.product .woocommerce-tabs .panel h2:first-child { display: none; }
.nolle div.product .woocommerce-tabs .panel { color: #3e3c3a; line-height: 1.8; }
.nolle div.product table.woocommerce-product-attributes { border: 0; font-size: 14px; }
.nolle div.product table.woocommerce-product-attributes th, .nolle div.product table.woocommerce-product-attributes td { padding: 10px 0; border: 0; border-bottom: 1px solid var(--line); background: none; font-style: normal; }
.nolle div.product table.woocommerce-product-attributes th { font-weight: 400; color: var(--muted); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; width: 40%; }
.nolle div.product table.woocommerce-product-attributes td p { margin: 0; }

/* 10. Formuláře, košík, pokladna, účet ------------------------------- */
.nolle .shop-section.shop-section--page, .nolle.woocommerce-cart .shop-section, .nolle.woocommerce-checkout .shop-section, .nolle.woocommerce-account .shop-section, .nolle.woocommerce-order-received .shop-section { background: var(--white); }
.nolle.woocommerce-cart .page-section, .nolle.woocommerce-checkout .page-section, .nolle.woocommerce-account .page-section { background: var(--white); }
.nolle.woocommerce-cart .page-narrow, .nolle.woocommerce-checkout .page-narrow { max-width: 1320px; }
.nolle.woocommerce-account .page-narrow { max-width: 1100px; }
/* Košík: položky vlevo, souhrn vpravo */
.nolle.woocommerce-cart .entry-content > .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 40px clamp(40px, 6vw, 90px); align-items: start; }
.nolle.woocommerce-cart .entry-content > .woocommerce > .woocommerce-notices-wrapper, .nolle.woocommerce-cart .entry-content > .woocommerce > .woocommerce-message, .nolle.woocommerce-cart .entry-content > .woocommerce > .cart-empty, .nolle.woocommerce-cart .entry-content > .woocommerce > .return-to-shop { grid-column: 1 / -1; }
.nolle.woocommerce-cart .entry-content > .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
.nolle.woocommerce-cart form.woocommerce-cart-form { min-width: 0; }
.nolle.woocommerce-cart .cart-collaterals { position: sticky; top: 100px; padding: 28px; background: var(--paper); border: 1px solid var(--line); }
.nolle.woocommerce-cart .cart-collaterals .cart_totals { max-width: none; }
.nolle .page-section input[type="text"], .nolle .page-section input[type="email"], .nolle .page-section input[type="tel"], .nolle .page-section input[type="password"], .nolle .page-section input[type="number"], .nolle .page-section input[type="search"], .nolle .page-section textarea, .nolle .page-section select, .nolle .select2-container .select2-selection--single {
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 1px solid #cfcbc7;
	border-radius: var(--radius);
	background: var(--white);
	color: var(--ink);
	font: inherit;
	font-size: 15px;
	line-height: 1.4;
	outline: none;
	transition: border-color .2s ease;
}
.nolle .page-section input:focus, .nolle .page-section textarea:focus, .nolle .page-section select:focus { border-color: var(--ink); }
.nolle .select2-container .select2-selection--single { height: 48px; }
.nolle .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 26px; padding-left: 0; color: var(--ink); }
.nolle .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }
.nolle .page-section label { display: block; margin-bottom: 6px; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.nolle .page-section label .required { color: var(--error); text-decoration: none; }
.nolle .page-section .form-row { margin: 0 0 16px; padding: 0; }
.nolle .page-section .form-row-first, .nolle .page-section .form-row-last { width: calc(50% - 8px); float: left; }
.nolle .page-section .form-row-last { float: right; }
.nolle .page-section .form-row-wide { clear: both; }
.nolle .page-section .woocommerce-input-wrapper { display: block; }
.nolle .page-section .woocommerce-form__label-for-checkbox, .nolle .page-section .woocommerce-form__label-for-checkbox span { display: inline; text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--ink); }
.nolle .page-section input[type="checkbox"], .nolle .page-section input[type="radio"] { width: auto; min-height: 0; margin-right: 8px; accent-color: var(--ink); }
.nolle .page-section h2, .nolle .page-section h3 { font-size: clamp(24px, 2.6vw, 30px); margin: 0 0 20px; }
.nolle .page-section .woocommerce-form-login-toggle .woocommerce-info, .nolle .page-section .woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 20px; }

/* Košík (klasický shortcode) */
.nolle table.shop_table { width: 100%; border: 0; border-collapse: collapse; margin: 0 0 30px; font-size: 14px; border-radius: 0; }
.nolle table.shop_table th, .nolle table.shop_table td { padding: 16px 10px; border: 0; border-bottom: 1px solid var(--line); vertical-align: middle; text-align: left; }
.nolle table.shop_table th { font-weight: 400; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.nolle table.shop_table td.product-thumbnail { width: 90px; }
.nolle table.shop_table td.product-thumbnail img { width: 70px; background: var(--card); }
.nolle table.shop_table td.product-name { font-family: var(--serif); font-size: 20px; }
.nolle table.shop_table td.product-name a { text-decoration: none; }
.nolle table.shop_table td.product-name .variation { font-family: var(--sans); font-size: 12px; color: var(--muted); margin: 4px 0 0; display: flex; gap: 6px; }
.nolle table.shop_table td.product-name .variation p, .nolle table.shop_table td.product-name .variation dt, .nolle table.shop_table td.product-name .variation dd { margin: 0; padding: 0; border: 0; font-weight: 400; }
.nolle table.shop_table td.product-remove a.remove { width: 26px; height: 26px; line-height: 24px; color: var(--muted) !important; font-size: 20px; border: 1px solid var(--line); border-radius: 50%; }
.nolle table.shop_table td.product-remove a.remove:hover { background: var(--ink); color: #fff !important; border-color: var(--ink); }
.nolle table.shop_table td.product-quantity .qty { width: 64px; min-height: 42px; text-align: center; padding: 0 6px; }
.nolle table.shop_table td.actions { padding: 20px 0 0; }
.nolle table.shop_table td.actions .coupon { display: flex; gap: 10px; float: left; }
.nolle table.shop_table td.actions .coupon label { display: none; }
.nolle table.shop_table td.actions .coupon input[type="text"] { width: 180px; min-height: 42px; }
.nolle table.shop_table td.actions .button { min-height: 42px; }
.nolle .cart-collaterals .cart_totals { width: 100%; max-width: 440px; margin-left: auto; float: none; }
.nolle .cart-collaterals .cart_totals h2 { font-size: 24px; margin-bottom: 14px; }
.nolle .cart_totals table.shop_table th { width: 40%; }
.nolle .cart_totals .order-total td { font-size: 18px; }
.nolle .wc-proceed-to-checkout { padding: 10px 0 0; }
.nolle .wc-proceed-to-checkout a.checkout-button { display: flex; width: 100%; font-size: 12px; }
.nolle .cart-empty, .nolle .return-to-shop { text-align: center; }
.nolle .return-to-shop .button { margin-top: 10px; }
.nolle .shipping-calculator-button { font-size: 12px; }

.nolle ul#shipping_method label, .nolle .page-section ul#shipping_method label { display: inline; text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--ink); }
.nolle ul#shipping_method { list-style: none; margin: 0; padding: 0; }
.nolle ul#shipping_method li { margin: 0 0 8px; }
.nolle.woocommerce-cart table.shop_table tr.woocommerce-shipping-totals td { text-align: left; }
.nolle .woocommerce-shipping-destination { font-size: 13px; color: var(--muted); }

/* Pokladna (klasický shortcode) */
.nolle form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 460px; grid-template-rows: auto 1fr; gap: 16px clamp(30px, 5vw, 70px); align-items: start; }
.nolle form.checkout .col2-set { width: auto; grid-column: 1; grid-row: 1 / span 2; }
.nolle form.checkout .col2-set .col-1, .nolle form.checkout .col2-set .col-2 { width: auto; float: none; }
.nolle form.checkout .col2-set .col-2 { margin-top: 30px; }
.nolle form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; }
.nolle form.checkout #order_review { grid-column: 2; grid-row: 2; align-self: start; position: sticky; top: 100px; padding: 28px; background: var(--paper); border: 1px solid var(--line); }
.nolle form.checkout #order_review table.shop_table { margin-bottom: 24px; }
.nolle form.checkout #order_review table.shop_table td.product-name { font-family: var(--sans); font-size: 14px; }
.nolle form.checkout #order_review table.shop_table .product-quantity { color: var(--muted); }
.nolle form.checkout #order_review table.shop_table tfoot th { color: var(--ink); text-transform: none; letter-spacing: 0; font-size: 14px; }
.nolle form.checkout #order_review table.shop_table .order-total td, .nolle form.checkout #order_review table.shop_table .order-total th { font-size: 17px; }
.nolle form.checkout #order_review ul#shipping_method { list-style: none; padding: 0; margin: 0; }
.nolle form.checkout #order_review ul#shipping_method li { margin: 0 0 8px; }
.nolle form.checkout #order_review ul#shipping_method label { display: inline; text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--ink); }
.nolle #payment { background: none; border-radius: 0; }
.nolle #payment ul.payment_methods { padding: 0 0 18px; border-bottom: 1px solid var(--line); list-style: none; }
.nolle #payment ul.payment_methods li { padding: 10px 0; font-size: 14px; }
.nolle #payment ul.payment_methods li label { display: inline; text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--ink); }
.nolle #payment div.payment_box { margin: 10px 0 0; padding: 14px 16px; background: var(--white); border: 1px solid var(--line); border-radius: 0; font-size: 13px; color: var(--text-soft); }
.nolle #payment div.payment_box::before { display: none; }
.nolle #payment div.place-order { padding: 18px 0 0; }
.nolle #payment #place_order { width: 100%; display: flex; font-size: 12px; line-height: 1.4; padding: 12px 24px; text-align: center; }
.nolle .woocommerce-terms-and-conditions-wrapper { margin: 14px 0; font-size: 13px; color: var(--text-soft); }
.nolle .woocommerce-privacy-policy-text p { margin-bottom: 12px; }
.nolle.woocommerce-checkout .woocommerce-form-login-toggle, .nolle.woocommerce-checkout .woocommerce-form-coupon-toggle { grid-column: 1 / -1; }
.nolle .woocommerce-checkout-review-order-table .product-thumbnail { display: none; }
.nolle #ship-to-different-address { font-size: 14px; }
.nolle #ship-to-different-address label { display: inline-flex; align-items: center; gap: 8px; text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--ink); }
.nolle form.checkout .woocommerce-additional-fields { margin-top: 10px; }

/* Děkovná stránka */
.nolle .woocommerce-order { max-width: 760px; margin: 0 auto; }
.nolle .woocommerce-thankyou-order-received { font-family: var(--serif); font-size: clamp(30px, 3.6vw, 42px); line-height: 1.1; margin-bottom: 26px; }
.nolle .thankyou-note { padding: 18px 20px; background: var(--lilac-soft); border-left: 2px solid var(--ink); font-size: 15px; line-height: 1.6; margin-bottom: 24px; }
.nolle ul.woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin: 0 0 30px; padding: 0; list-style: none; }
.nolle ul.woocommerce-order-overview li { margin: 0; padding: 14px 16px; border: 1px solid var(--line); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); float: none; }
.nolle ul.woocommerce-order-overview li strong { display: block; margin-top: 6px; font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--ink); font-weight: 400; }
.nolle .woocommerce-bacs-bank-details { margin: 0 0 30px; padding: 24px; background: var(--paper); border: 1px solid var(--line); }
.nolle .woocommerce-bacs-bank-details h2 { font-size: 22px; margin-bottom: 8px; }
.nolle .woocommerce-bacs-bank-details h3 { font-size: 16px; font-family: var(--sans); letter-spacing: .1em; text-transform: uppercase; margin: 16px 0 8px; }
.nolle ul.wc-bacs-bank-details, .nolle ul.order_details.bacs_details { display: block; list-style: none; padding: 0; margin: 0; font-size: 15px; }
.nolle ul.wc-bacs-bank-details li, .nolle ul.order_details.bacs_details li { display: flex; justify-content: space-between; gap: 16px; float: none; width: auto; margin: 0; padding: 10px 0; border: 0; border-bottom: 1px solid var(--line); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); line-height: 1.5; }
.nolle ul.order_details.bacs_details li strong { display: block; font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--ink); font-weight: 400; text-align: right; }
.nolle .woocommerce-order-details, .nolle .woocommerce-customer-details { margin-top: 30px; }
.nolle .woocommerce-customer-details address { padding: 18px 20px; border: 1px solid var(--line); font-style: normal; line-height: 1.7; }
.nolle .woocommerce-columns--addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.nolle .woocommerce-columns--addresses .col-1, .nolle .woocommerce-columns--addresses .col-2 { width: auto; float: none; }

/* Můj účet */
.nolle .woocommerce-MyAccount-navigation { width: auto; float: none; margin-bottom: 30px; }
.nolle .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0; padding: 0 0 16px; border-bottom: 1px solid var(--line); list-style: none; }
.nolle .woocommerce-MyAccount-navigation li a { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; color: var(--muted); }
.nolle .woocommerce-MyAccount-navigation li.is-active a, .nolle .woocommerce-MyAccount-navigation li a:hover { color: var(--ink); }
.nolle .woocommerce-MyAccount-content { width: auto; float: none; font-size: 15px; line-height: 1.7; }
.nolle .woocommerce-MyAccount-content .woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.nolle .woocommerce-MyAccount-content .woocommerce-Address { width: auto; float: none; }
.nolle .woocommerce-MyAccount-content address { padding: 18px 20px; border: 1px solid var(--line); font-style: normal; }
.nolle .woocommerce-MyAccount-content .edit { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.nolle.woocommerce-account .u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 70px); }
.nolle.woocommerce-account .u-columns .col-1, .nolle.woocommerce-account .u-columns .col-2 { width: auto; float: none; }
.nolle form.login, .nolle form.register, .nolle form.woocommerce-ResetPassword { padding: 0; border: 0; margin: 0; }
.nolle form.login .woocommerce-form-login__submit, .nolle form.register .woocommerce-form-register__submit { margin-top: 10px; }
.nolle .lost_password { font-size: 13px; }
.nolle table.woocommerce-orders-table td .button { min-height: 36px; padding: 0 12px; font-size: 10px; margin-right: 6px; }

/* 11. Modal ----------------------------------------------------------- */
.modal { position: fixed; inset: 0; z-index: 60; display: flex; align-items: center; justify-content: center; padding: 20px; }
.modal[hidden] { display: none; }
.modal-backdrop { position: absolute; inset: 0; background: rgb(32 32 31 / .45); }
.modal-box { position: relative; width: min(680px, 100%); max-height: calc(100vh - 40px); overflow: auto; padding: clamp(28px, 4vw, 48px); background: var(--white); }
.modal-box h2 { font-size: clamp(26px, 3vw, 34px); margin-bottom: 18px; padding-right: 40px; }
.modal-close { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border: 0; background: none; cursor: pointer; }
.modal-close svg { width: 22px; height: 22px; }

/* 12. Responzivita ---------------------------------------------------- */
@media (min-width: 1450px) { .hero { min-height: 780px; } }
@media (max-width: 1000px) {
	.nolle div.product { grid-template-columns: 1fr; gap: 34px; }
	.nolle div.product .summary { position: static; }
	.nolle form.checkout { grid-template-columns: 1fr; }
	.nolle.woocommerce-cart .entry-content > .woocommerce { grid-template-columns: 1fr; }
	.nolle.woocommerce-cart .cart-collaterals { position: static; }
	.nolle form.checkout .col2-set { grid-row: auto; }
	.nolle form.checkout #order_review_heading, .nolle form.checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
}
@media (max-width: 760px) {
	.site-header { min-height: 66px; padding: 0 18px; grid-template-columns: auto 1fr auto; }
	.header-nav { display: none; }
	.wordmark { font-size: 19px; letter-spacing: .1em; grid-column: 2; text-align: center; }
	.header-link { width: 42px; height: 42px; }
	.lang-switcher { margin-right: 4px; gap: 6px; font-size: 10px; }
	.hero { position: relative; display: block; min-height: max(620px, calc(100svh - 66px)); background: #423f42; }
	.hero-photo { position: absolute; inset: 0; min-height: 0; }
	.hero-photo::after { position: absolute; inset: 35% 0 0; background: linear-gradient(180deg, transparent 0%, rgb(19 17 20 / .15) 23%, rgb(19 17 20 / .76) 100%); content: ""; }
	.hero-photo img { object-position: 50% 41%; }
	.hero-copy { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; padding: 52px 25px 46px; color: #fff; }
	.hero-copy .eyebrow { color: rgb(255 255 255 / .8); margin-bottom: 14px; }
	.hero h1 { max-width: 500px; margin-bottom: 13px; font-size: clamp(42px, 12vw, 60px); }
	.hero-description { max-width: 390px; margin-bottom: 23px; color: rgb(255 255 255 / .9); font-size: 15px; line-height: 1.6; }
	.hero .button { min-height: 46px; border-color: #fff; background: #fff; color: var(--ink); }
	.hero .button:hover { background: transparent; color: #fff; }
	.photo-note { right: 16px; bottom: 14px; z-index: 1; font-size: 9px; }
	.drop-section, .shop-section { padding: 74px 22px 86px; }
	.drop-heading { margin-bottom: 30px; }
	.product-grid, .nolle ul.products { grid-template-columns: 1fr; gap: 30px; }
	.product-visual { min-height: min(112vw, 480px); }
	.product-monogram { font-size: 110px; }
	.about--with-image { grid-template-columns: 1fr; }
	.about-image { min-height: 260px; border-right: 0; border-bottom: 1px solid var(--lilac-line); }
	.about-copy { padding: 54px 28px 62px; }
	.site-footer { padding: 20px 22px 24px; font-size: 11px; }
	.footer-row { flex-direction: column; align-items: flex-start; gap: 12px; }
	.page-section { padding: 50px 22px 70px; }
	.nolle .page-section .form-row-first, .nolle .page-section .form-row-last { width: 100%; float: none; }
	.nolle table.shop_table td.actions .coupon { float: none; margin-bottom: 12px; }
	.nolle table.shop_table td.actions .coupon input[type="text"] { width: 100%; }
	.nolle.woocommerce-cart table.shop_table td.product-name { font-size: 17px; }
	.nolle .woocommerce-columns--addresses, .nolle .woocommerce-MyAccount-content .woocommerce-Addresses, .nolle.woocommerce-account .u-columns { grid-template-columns: 1fr; }
	.nolle div.product .flex-control-thumbs li { width: calc(25% - 6px); }
}
@media (max-width: 380px) {
	.wordmark { font-size: 16px; }
	.header-link { width: 38px; }
	.hero-copy { padding-right: 20px; padding-left: 20px; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: .01ms !important; }
}
