/* ==========================================================================
   ByColor — main stylesheet
   Ciepły, jasny minimalizm. Tokens → base → layout → components → responsive.
   ========================================================================== */

/* --- Design tokens ------------------------------------------------------- */
:root {
	/* Neutral surfaces */
	--cream: #FBF7EF;        /* page background */
	--sand: #F4ECDA;         /* promo bar / beige fields */
	--sand-border: #EADFC9;
	--wash-default: #F1F0E2; /* olive section wash */
	--canvas: #FFFFFF;
	--card-border: #EBE2D2;
	--card-border-2: #ECE4D3;
	--footer-bg: #F7F0E3;
	--poster-placeholder: #EFE7D6;

	/* Text */
	--ink: #241F19;
	--ink-2: #33302A;
	--text-soft: #57503F;
	--text-soft-2: #6F685A;
	--muted: #8A7E6B;
	--muted-2: #9A9080;
	--price-strike: #B3A992;

	/* Accent (brand default = Olive) */
	--accent: #97A776;
	--accent-strong: #849465;
	--wash: var(--wash-default);

	/* Buttons (brand default = Terracotta) */
	--btn-bg: #B75F3B;
	--btn-text: #FBF5EC;
	--btn-border: #A9522F;

	/* Extra accents */
	--badge-new-bg: #E0A94A;

	/* Typography */
	--font-head: 'Newsreader', Georgia, 'Times New Roman', serif;
	--font-body: 'Jost', system-ui, -apple-system, sans-serif;
	--font-mono: 'DM Mono', ui-monospace, monospace;

	/* Geometry */
	--container: 1360px;
	--gutter: 48px;
	--radius: 4px;      /* fields / cards default (Miękkie) */
	--radius-card: 10px;
	--radius-img: 4px;
	--radius-btn: 3px;
	--radius-pill: 999px;
	--poster-ratio: 496 / 700;

	--shadow-card: 0 14px 28px -18px rgba(60, 45, 25, 0.5);
	--shadow-card-hover: 0 26px 44px -20px rgba(60, 45, 25, 0.55);
	--transition: transform 0.35s ease, box-shadow 0.35s ease;
}

/* --- Base ---------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--cream);
	color: var(--ink-2);
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.7;
	overflow-x: hidden;
}
::selection { background: #DBE0C4; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }

h1, h2, h3, h4 { font-family: var(--font-head); font-weight: 400; color: var(--ink); margin: 0 0 0.5em; }
h1 { font-size: 46px; line-height: 1.08; letter-spacing: -0.01em; }
h2 { font-size: 34px; line-height: 1.15; }
h3 { font-size: 20px; }
p { margin: 0 0 1em; }

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	width: 1px; height: 1px; overflow: hidden;
}
.skip-link:focus {
	position: fixed; left: 12px; top: 12px; z-index: 999;
	background: var(--btn-bg); color: var(--btn-text);
	padding: 10px 16px; border-radius: var(--radius-btn); clip: auto; width: auto; height: auto;
}

/* --- Layout utilities ---------------------------------------------------- */
.container { max-width: var(--container); margin: 0 auto; padding-inline: var(--gutter); width: 100%; }
.section { padding-block: 66px; }
.section--tight { padding-block: 40px; }
.section__head { text-align: center; margin-bottom: 40px; }
.section__head h2 { font-size: 38px; margin: 0; }
.section__head p { color: var(--text-soft-2); margin-top: 10px; }

.eyebrow {
	font-family: var(--font-mono);
	text-transform: uppercase;
	letter-spacing: 0.28em;
	font-size: 11px;
	color: var(--muted);
	display: inline-block;
}

/* --- Buttons ------------------------------------------------------------- */
.btn {
	display: inline-block;
	background: var(--btn-bg);
	color: var(--btn-text);
	border: 1px solid var(--btn-border);
	text-decoration: none;
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 14px 30px;
	border-radius: var(--radius-btn);
	cursor: pointer;
	transition: filter 0.2s ease, transform 0.2s ease;
}
.btn:hover { filter: brightness(0.96); }
.btn:active { transform: translateY(1px); }
.btn--block { display: block; width: 100%; text-align: center; }
.btn--ghost { background: transparent; color: var(--ink-2); border-color: var(--card-border); }
.btn:disabled, .btn[aria-disabled="true"] {
	background: #EDE6D6; color: #A89D86; border-color: #DCD3BE; cursor: default; filter: none;
}
.link-cta {
	display: inline-block;
	color: var(--accent-strong);
	text-decoration: none;
	font-weight: 600;
	border-bottom: 2px solid var(--accent);
	padding-bottom: 2px;
}

/* --- Promo bar ----------------------------------------------------------- */
.promo-bar { background: var(--sand); color: #6B6250; border-bottom: 1px solid var(--sand-border); }
.promo-bar__inner {
	display: flex; align-items: center; justify-content: space-between;
	padding-block: 9px; font-size: 13px; letter-spacing: 0.02em;
}

/* --- Header / nav -------------------------------------------------------- */
.site-header { background: var(--cream); border-bottom: 1px solid var(--card-border-2); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding-block: 18px; }
.brand { text-decoration: none; display: flex; flex-direction: column; line-height: 1; }
.brand__name { font-family: var(--font-head); font-size: 28px; font-weight: 600; color: var(--ink-2); letter-spacing: 0.01em; }
.brand__tag { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.42em; color: #97917F; margin-top: 3px; padding-left: 2px; }

.primary-nav__list { list-style: none; display: flex; align-items: center; gap: 26px; margin: 0; padding: 0; flex-wrap: wrap; justify-content: center; }
.primary-nav__list a { font-size: 14.5px; color: #45413A; text-decoration: none; font-weight: 500; transition: color 0.2s ease; }
.primary-nav__list a:hover, .primary-nav__list .current-menu-item > a { color: var(--accent-strong); }

/* Hamburger (mobile only — shown via the ≤720px query) */
.nav-burger { display: none; width: 42px; height: 42px; align-items: center; justify-content: center; background: none; border: none; padding: 0; margin: -6px -6px -6px 0; cursor: pointer; color: var(--ink); }
.nav-burger__box { position: relative; display: block; width: 22px; height: 2px; background: currentColor; border-radius: 2px; transition: background 0.2s ease; }
.nav-burger__box::before, .nav-burger__box::after { content: ""; position: absolute; left: 0; width: 22px; height: 2px; background: currentColor; border-radius: 2px; transition: transform 0.25s ease; }
.nav-burger__box::before { top: -7px; }
.nav-burger__box::after { top: 7px; }
.is-nav-open .nav-burger__box { background: transparent; }
.is-nav-open .nav-burger__box::before { transform: translateY(7px) rotate(45deg); }
.is-nav-open .nav-burger__box::after { transform: translateY(-7px) rotate(-45deg); }
.primary-nav__extra { display: none; }

.nav-utils { display: flex; align-items: center; gap: 20px; }
.nav-util { font-size: 13px; color: #45413A; text-decoration: none; font-weight: 600; display: flex; align-items: center; gap: 6px; }
.nav-util:hover { color: var(--accent-strong); }
.cart-count { background: var(--btn-bg); color: var(--btn-text); border-radius: var(--radius-pill); font-size: 11px; padding: 2px 7px; font-weight: 600; }

/* --- Footer -------------------------------------------------------------- */
.site-footer { background: var(--footer-bg); border-top: 1px solid var(--card-border-2); margin-top: 60px; }
.site-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; padding-block: 56px; }
.footer-tagline { color: var(--text-soft-2); max-width: 280px; margin: 16px 0; font-size: 14.5px; }
.footer-ig { color: var(--accent-strong); text-decoration: none; font-weight: 600; }
.footer-col__title { font-family: var(--font-body); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-2); margin-bottom: 16px; }
.footer-menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.footer-menu a { color: var(--text-soft); text-decoration: none; font-size: 14.5px; }
.footer-menu a:hover { color: var(--accent-strong); }
.footer-menu--contact li { color: var(--text-soft); font-size: 14.5px; }
.site-footer__bar { border-top: 1px solid var(--card-border-2); padding-block: 20px; font-size: 13px; color: var(--muted); }

/* --- Hero ---------------------------------------------------------------- */
.hero {
	position: relative; width: 100%; height: 620px;
	background-color: #E8E0D0; overflow: hidden;
}
.hero__photo { position: absolute; inset: 0; background-size: cover; background-position: center 78%; }
.hero__fade-b { position: absolute; inset: 0; background: linear-gradient(to top, rgba(232, 224, 208, 0) 45%, rgba(232, 224, 208, 0.28) 100%); }
.hero__fade-l { position: absolute; inset: 0; background: linear-gradient(to right, rgba(232, 224, 208, 0.96) 0%, rgba(232, 224, 208, 0.8) 26%, rgba(232, 224, 208, 0.25) 50%, rgba(232, 224, 208, 0) 66%); }
.hero__inner { position: relative; z-index: 2; height: 100%; display: grid; grid-template-columns: 1fr 1.15fr; gap: 40px; align-items: center; }
.hero__copy { max-width: 440px; }
.hero__copy h1 { font-size: 52px; margin: 0 0 20px; color: #2B2822; text-wrap: balance; }
.hero__copy p { font-size: 16px; line-height: 1.65; color: #4E4838; margin: 0 0 30px; max-width: 400px; }
.poster-frame { background: linear-gradient(135deg, #D8C39C 0%, #C3A87E 100%); padding: 7px; border-radius: 2px; box-shadow: 0 26px 44px -24px rgba(40, 30, 15, 0.55); }
.poster-frame > div { background: var(--cream); padding: 8px; }
.poster-frame .poster-img { aspect-ratio: var(--poster-ratio); background-color: var(--poster-placeholder); background-size: contain; background-position: center; background-repeat: no-repeat; }
/* --- Rooms grid ---------------------------------------------------------- */
.rooms-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.room-tile { text-decoration: none; display: block; }
.room-tile__img { position: relative; aspect-ratio: 3/3.4; border-radius: 6px; overflow: hidden; background-color: var(--wash); background-size: cover; background-position: center; display: flex; align-items: flex-end; justify-content: center; padding: 12px; }
.room-tile__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(40, 38, 28, 0.28), rgba(40, 38, 28, 0) 50%); }
.room-tile__mark { position: relative; z-index: 2; width: 52px; height: 52px; border-radius: 50%; background: rgba(255, 255, 255, 0.92); display: flex; align-items: center; justify-content: center; font-family: var(--font-head); font-size: 22px; color: var(--accent); font-weight: 600; }
.room-tile__name { font-size: 15px; font-weight: 600; color: var(--ink-2); margin-top: 12px; text-align: center; }

/* --- Tabs (Nowości / Bestsellery) --------------------------------------- */
.tabs { display: flex; align-items: center; gap: 28px; }
.tab { background: none; border: none; font-family: var(--font-head); font-size: 30px; color: var(--muted); cursor: pointer; padding: 0 0 6px; border-bottom: 2px solid transparent; }
.tab[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--accent); }

/* Featured products: five equal poster cards with a subtle editorial rhythm. */
.polecane-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; flex-wrap: wrap; margin-bottom: 34px; }
.polecane-intro { max-width: 560px; }
.polecane-kicker { color: var(--accent-strong); font-size: 12px; font-weight: 600; letter-spacing: 0.13em; margin: 0 0 8px; text-transform: uppercase; }
.polecane-title { color: var(--ink); font-family: var(--font-head); font-size: 38px; font-weight: 400; line-height: 1.1; margin: 0; }
.polecane-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.btn--sm { padding: 11px 22px; font-size: 12px; }
.featured-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; align-items: start; }
.featured-card { display: block; text-decoration: none; transition: var(--transition); }
.featured-card:nth-child(even) { margin-top: 24px; }
.featured-card:hover { transform: translateY(-5px); }
.featured-card__frame { aspect-ratio: 4 / 5; background: linear-gradient(145deg, #E8DFCF, #F5EFE4); border: 1px solid var(--card-border); border-radius: var(--radius-img); box-shadow: var(--shadow-card); display: flex; align-items: center; justify-content: center; padding: 14px; overflow: hidden; transition: var(--transition); }
.featured-card:hover .featured-card__frame { box-shadow: var(--shadow-card-hover); }
.featured-card__frame img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; filter: drop-shadow(0 7px 7px rgba(35, 28, 18, 0.14)); transition: transform 0.7s ease; }
.featured-card:hover .featured-card__frame img { transform: scale(1.03); }
.featured-card__name { color: var(--ink-2); font-family: var(--font-head); font-size: 18px; font-weight: 400; line-height: 1.2; margin: 12px 0 4px; }
.featured-card__price { color: var(--accent-strong); font-size: 13px; font-weight: 600; }

/* --- Product card -------------------------------------------------------- */
.product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; }
.product-card { position: relative; text-decoration: none; display: block; transition: var(--transition); }
.product-card:hover { transform: translateY(-6px); }
.product-card__media { position: relative; width: 100%; background: transparent; border: 0; padding: 0; overflow: hidden; }
.product-card__img { --product-card-img-pad: 18px; position: relative; width: 100%; height: 0; padding-top: 125%; background: linear-gradient(145deg, #E8DFCF, #F5EFE4); border: 1px solid var(--card-border); border-radius: var(--radius-img); box-shadow: var(--shadow-card); overflow: hidden; }
.product-card:hover .product-card__img { box-shadow: var(--shadow-card-hover); }
.product-card__img img { position: absolute; inset: var(--product-card-img-pad); display: block; width: calc(100% - (2 * var(--product-card-img-pad))); height: calc(100% - (2 * var(--product-card-img-pad))); max-width: none; max-height: none; border: 0; padding: 0; box-shadow: none; filter: drop-shadow(0 12px 9px rgba(35, 28, 18, 0.32)); object-fit: contain; object-position: center; transition: transform 0.7s ease; }
.product-card:hover .product-card__img img { transform: scale(1.04); }
.product-card__body { padding-top: 14px; }
.product-card__name { font-family: var(--font-head); font-size: 18px; color: var(--ink-2); margin: 0; }
.product-card__price { color: var(--accent-strong); font-weight: 600; font-size: 14px; margin-top: 4px; }
.product-card__cat { color: var(--muted); font-size: 12px; margin-top: 2px; }

.badge { position: absolute; z-index: 3; font-weight: 600; }
.badge--new { top: 20px; left: 20px; background: var(--badge-new-bg); color: #fff; border-radius: 3px; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; padding: 4px 9px; }
.badge--save { background: var(--accent); color: #fff; border-radius: var(--radius-pill); font-size: 12px; padding: 4px 12px; }

/* --- Category header + filters ------------------------------------------ */
.page-hero { background: var(--wash); text-align: center; padding-block: 60px; }
.page-hero h1 { font-size: 44px; margin: 0 0 10px; }
.page-hero p { color: var(--text-soft-2); margin: 0; }

.filter-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-block: 34px; }
.chips { display: flex; gap: 10px; flex-wrap: wrap; }
/* Blog: category chips are the only control — centre them (per the design). */
.blog .filter-bar, .blog .chips { justify-content: center; }
.chip {
	border: 1px solid #DDD3BE; background: transparent; color: #5B5344;
	font-family: var(--font-body); font-weight: 500; font-size: 13px;
	padding: 8px 16px; border-radius: var(--radius-pill); cursor: pointer; text-decoration: none;
	transition: all 0.2s ease;
}
.chip:hover { border-color: var(--accent); }
.chip.is-active, .chip[aria-current="true"] { background: var(--btn-bg); color: var(--btn-text); border-color: var(--btn-border); }
.result-count { color: var(--muted); font-size: 14px; }
.category-description { margin-top: 54px; padding-top: 34px; border-top: 1px solid var(--card-border); }
.category-description > * { max-width: 820px; }
.category-description p { color: var(--text-soft); line-height: 1.8; margin: 0 0 1em; }
.category-description h2, .category-description h3 { font-family: var(--font-head); color: var(--ink); margin: 1.2em 0 0.4em; font-weight: 400; }

.archive-sentinel { height: 1px; }
.archive-sentinel.is-loading { height: 64px; position: relative; }
.archive-sentinel.is-loading::after { content: ""; position: absolute; left: 50%; top: 18px; width: 28px; height: 28px; margin-left: -14px; border: 3px solid var(--card-border); border-top-color: var(--accent); border-radius: 50%; animation: bycolor-spin 0.7s linear infinite; }
@keyframes bycolor-spin { to { transform: rotate(360deg); } }

.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 46px; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 10px; border: 1px solid var(--card-border); border-radius: var(--radius-btn); text-decoration: none; color: var(--ink-2); font-size: 14px; }
.pagination .page-numbers.current { background: var(--btn-bg); color: var(--btn-text); border-color: var(--btn-border); }

/* --- Single product ------------------------------------------------------ */
.breadcrumb { font-size: 13px; color: var(--muted); padding-block: 20px; }
.breadcrumb a { color: var(--text-soft-2); text-decoration: none; }
.crumb-sep { color: var(--price-strike); margin-inline: 4px; }

.product-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: start; }
.product-gallery { display: grid; grid-template-columns: 74px 1fr; gap: 16px; align-items: start; }
.product-gallery--single { grid-template-columns: 1fr; }
.product-gallery__thumbs { display: flex; flex-direction: column; gap: 12px; }
.product-gallery__thumb { border: 1px solid var(--card-border); border-radius: var(--radius-img); padding: 4px; cursor: pointer; background: var(--canvas); display: block; transition: border-color 0.2s ease; }
.product-gallery__thumb.is-active { border-color: var(--btn-bg); }
.product-gallery__thumb .poster-img { display: block; aspect-ratio: var(--poster-ratio); background-size: contain; background-position: center; background-repeat: no-repeat; width: 100%; }
.product-gallery__main { background: var(--canvas); border: 1px solid var(--card-border); border-radius: var(--radius-img); padding: 0; overflow: hidden; box-shadow: var(--shadow-card); }
.product-gallery__main .poster-img { display: block; aspect-ratio: var(--product-image-ratio, var(--poster-ratio)); background-color: var(--poster-placeholder); background-size: contain; background-position: center; background-repeat: no-repeat; width: 100%; transition: background-image 0.2s ease; }

.product-summary__eyebrow { font-family: var(--font-mono); text-transform: uppercase; letter-spacing: 0.2em; font-size: 12px; color: var(--btn-bg); }
.product-summary h1 { font-size: 40px; margin: 8px 0 10px; }
.product-summary__set-info { display: flex; align-items: center; gap: 12px; margin: 4px 0 18px; padding: 12px 0; border-top: 1px solid var(--card-border); border-bottom: 1px solid var(--card-border); color: var(--text-soft-2); }
.product-summary__set-count { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; background: var(--accent); color: #fff; font-family: var(--font-head); font-size: 22px; }
.product-summary__set-info strong { display: block; margin-bottom: 2px; color: var(--ink-2); font-size: 14px; }
.product-summary__set-info > span:last-child > span { display: block; font-size: 12px; line-height: 1.45; }
.product-summary .price { font-family: var(--font-head); font-size: 32px; color: var(--ink); margin-bottom: 4px; }
.product-summary .price del { color: var(--price-strike); font-size: 0.7em; margin-right: 8px; }
.product-summary .price ins { text-decoration: none; }
.product-summary__note { font-size: 13px; color: var(--muted); margin: 0 0 22px; }
.option-group { margin-bottom: 22px; }
.option-group__label { display: block; font-size: 13px; font-weight: 600; color: var(--text-soft); margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.05em; }
.option-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.size-chip, .margin-chip {
	border: 1px solid #D8CDB8; background: #fff; color: #4A4234;
	font-family: var(--font-body); font-weight: 500; font-size: 13px;
	padding: 10px 16px; border-radius: var(--radius-btn); cursor: pointer;
}
.size-chip.is-active, .margin-chip.is-active { background: var(--btn-bg); color: var(--btn-text); border-color: var(--btn-bg); }

.qty-row { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.qty-stepper { display: inline-flex; align-items: center; border: 1px solid #D8CDB8; border-radius: var(--radius-btn); overflow: hidden; }
.qty-stepper button { width: 42px; height: 46px; background: #fff; border: none; font-size: 18px; cursor: pointer; color: var(--ink-2); }
.qty-stepper input { width: 48px; height: 46px; border: none; text-align: center; font-family: var(--font-body); font-size: 15px; -moz-appearance: textfield; }
.qty-stepper input::-webkit-outer-spin-button, .qty-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; }
.add-row { display: flex; gap: 12px; align-items: stretch; }
.add-row .btn { flex: 1; }
.fav-btn { width: 52px; border: 1px solid var(--card-border); background: #fff; border-radius: var(--radius-btn); font-size: 18px; cursor: pointer; color: var(--btn-bg); }

.perks { display: flex; gap: 22px; flex-wrap: wrap; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--card-border); }
.perks li { list-style: none; display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-soft-2); }
.perks .mark { color: var(--accent); }

.product-summary__intro { font-size: 15px; line-height: 1.7; color: var(--text-soft); margin: 0 0 26px; max-width: 480px; }
.product-summary__intro p { margin: 0 0 0.6em; }

/* Full-bleed description section (mockup: wash bg, tagline H2 + white Informacje card) */
.product-desc { background: var(--wash); margin-top: 40px; }
.product-desc__inner { max-width: var(--container); margin: 0 auto; padding: 64px var(--gutter); display: grid; grid-template-columns: 1.4fr 1fr; gap: 64px; align-items: start; }
.product-desc__body > h1:first-child, .product-desc__body > h2:first-child { margin-top: 0; }
.product-desc__body h1, .product-desc__body h2 { font-family: var(--font-head); font-weight: 400; font-size: 30px; color: var(--ink); margin: 0 0 18px; line-height: 1.2; }
.product-desc__body h3 { font-family: var(--font-head); font-weight: 400; font-size: 20px; color: var(--ink); margin: 1.2em 0 0.4em; }
.product-desc__body p { font-size: 15px; line-height: 1.75; color: var(--text-soft); margin: 0 0 16px; }
.product-desc__body ul { color: var(--text-soft); font-size: 15px; line-height: 1.7; }
.product-desc__card { background: var(--canvas); border: 1px solid #EAE0CE; border-radius: 8px; padding: 28px 30px; }
.product-desc__card-title { font-family: var(--font-head); font-size: 20px; color: var(--ink); margin-bottom: 14px; }
.spec-row { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid #F0E8D8; font-size: 14px; }
.spec-row:last-child { border-bottom: none; }
.spec-row__k { color: var(--muted); }
.spec-row__v { color: var(--ink-2); font-weight: 500; text-align: right; }
.spec-row__detail { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.35; white-space: nowrap; }

/* --- Cart ---------------------------------------------------------------- */
/* Cart & checkout are full-width commerce layouts — opt them out of the 720px
   .article reading width that page.php applies to every page's content. */
.woocommerce-cart .article, .woocommerce-checkout .article { max-width: none; }
.woocommerce-cart .entry-content .container, .woocommerce-checkout .entry-content .container { max-width: none; padding-inline: 0; }

.cart-layout { display: grid; grid-template-columns: 1.6fr 1fr; gap: 40px; align-items: start; }
.cart-item { display: grid; grid-template-columns: 72px 1fr 132px 84px 28px; gap: 18px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--card-border); }
.cart-item__price { text-align: right; font-weight: 600; }
.cart-item__thumb { border: 0; border-radius: var(--radius-img); padding: 0; background: transparent; overflow: hidden; }
.cart-item__thumb .poster-img, .cart-item__thumb img { display: block; aspect-ratio: var(--cart-image-ratio, var(--poster-ratio)); background-size: contain; background-position: center; background-repeat: no-repeat; object-fit: contain; width: 100%; }
.cart-item__thumb .poster-img--exact-ratio { background-size: cover; }
.cart-item__name { font-family: var(--font-head); font-size: 18px; color: var(--ink-2); }
.cart-item__variant { display: flex; flex-wrap: wrap; gap: 3px 12px; color: var(--muted); font-size: 13px; }
.cart-item__variant-row { display: inline-flex; gap: 4px; }
.cart-item__variant-row strong { font-weight: 600; }
.cart-item__remove { background: none; border: none; color: var(--muted); font-size: 16px; cursor: pointer; }
.cart-item__qty .qty-fixed { display: inline-block; min-width: 40px; text-align: center; font-weight: 600; }
/* Pin the cart stepper to a uniform width — a global input width rule otherwise
   lets the number field flex, so steppers came out different sizes per row. */
.cart-item__qty .qty-stepper { width: 132px; }
.cart-item__qty .qty-stepper button { flex: 0 0 42px; width: 42px; }
.cart-item__qty .qty-stepper input { flex: 0 0 48px; width: 48px; min-width: 0; }
.cart-actions { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 22px; flex-wrap: wrap; }
.js-cart .cart-update-btn { display: none; } /* steppers auto-update; button is the no-JS fallback */

.cart-summary, .order-summary { background: var(--canvas); border: 1px solid var(--card-border); border-radius: var(--radius-card); padding: 28px; }
.summary-row { display: flex; justify-content: space-between; padding: 8px 0; font-size: 14.5px; color: var(--text-soft); }
.summary-row--total { border-top: 1px solid var(--card-border); margin-top: 10px; padding-top: 16px; align-items: baseline; font-size: 16px; font-weight: 600; color: var(--ink); }
.ship-note { background: var(--wash); border-radius: var(--radius); padding: 12px 14px; font-size: 13px; color: var(--text-soft); margin-block: 14px; }
.ship-note--ok { color: var(--accent-strong); font-weight: 600; }
.coupon-row { display: flex; gap: 8px; margin-block: 16px; }
.coupon-row input { flex: 1; }
.secure-note { font-size: 12px; color: var(--muted); text-align: center; margin-top: 14px; }

/* --- Forms --------------------------------------------------------------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="search"], input[type="number"], select, textarea {
	width: 100%; font-family: var(--font-body); font-size: 15px; color: var(--ink-2);
	background: #fff; border: 1px solid #D8CDB8; border-radius: var(--radius);
	padding: 12px 14px;
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--accent); outline-offset: 1px; border-color: var(--accent); }
label { font-size: 13px; color: var(--text-soft); }

/* --- Checkout ------------------------------------------------------------ */
.checkout-narrow { max-width: 1080px; }
.steps { display: flex; align-items: center; justify-content: center; gap: 14px; margin-block: 30px; font-size: 13px; color: var(--muted); }
.steps .step.is-active { color: var(--ink); font-weight: 600; }
.radio-cards { display: grid; gap: 12px; }
.radio-cards--2 { grid-template-columns: 1fr 1fr; }
.radio-card { display: flex; align-items: center; gap: 12px; border: 1px solid #DDD3BE; background: #fff; padding: 14px 16px; border-radius: var(--radius); cursor: pointer; }
.radio-card.is-active { border-color: var(--accent-strong); background: var(--wash); }
.radio-card__dot { flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; border: 2px solid #CDBFA6; }
.radio-card.is-active .radio-card__dot { border-color: var(--accent-strong); background: radial-gradient(circle, var(--accent-strong) 0 5px, transparent 6px); }
.radio-card__price { margin-left: auto; font-weight: 600; color: var(--ink-2); }

/* --- Set builder --------------------------------------------------------- */
.set-layout { display: grid; grid-template-columns: 1fr 1.2fr; gap: 44px; align-items: start; }
.set-preview { position: sticky; top: 24px; background: var(--wash); border-radius: var(--radius-card); padding: 30px; }
.set-slots { display: flex; align-items: flex-end; justify-content: center; gap: 16px; margin-bottom: 22px; }
.set-slot { flex: 1 1 0; min-width: 0; }
.set-slot--landscape { flex-grow: 1.45; }
.set-slot--portrait.set-slot--big { flex-grow: 1.15; }
.set-slot--square { flex-grow: 1.2; }
.set-slot__visual { display: flex; align-items: flex-end; justify-content: center; height: 320px; }
.set-slot__frame { position: relative; background: #fff; border: 1px solid var(--card-border); border-radius: var(--radius-img); padding: 8px; }
.set-slot__image { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; }
.set-slot:not(.set-slot--empty) .set-slot__frame { overflow: hidden; padding: 0; background: transparent; border-color: #D5C6AD; box-shadow: 0 5px 14px rgba(61, 53, 43, 0.08); }
.set-slot--replacing .set-slot__frame { outline: 3px solid var(--btn-bg); outline-offset: 4px; }
.set-slot__change { position: absolute; top: 8px; right: 8px; z-index: 3; border: 1px solid #D8CDB8; border-radius: var(--radius-pill); background: rgba(255, 253, 248, 0.94); color: var(--ink-2); padding: 7px 11px; font-family: var(--font-body); font-size: 12px; font-weight: 600; line-height: 1; cursor: pointer; box-shadow: 0 4px 12px rgba(61, 53, 43, 0.16); }
.set-slot__change:hover { background: #fff; }
.set-slot--replacing .set-slot__change { border-color: var(--btn-bg); background: var(--btn-bg); color: #fff; }
.set-slot--portrait .set-slot__frame { width: 100%; max-width: 210px; }
.set-slot--portrait:not(.set-slot--big) .set-slot__frame { width: 92%; }
.set-slot--portrait .set-slot__image { width: 100%; height: auto; }
.set-slot--landscape .set-slot__frame { width: 100%; transform: translateY(-30px); }
.set-slot--landscape .set-slot__image { width: 100%; }
.set-slot--square .set-slot__frame { width: 88%; transform: translateY(-14px); }
.set-slot--square .set-slot__image { width: 100%; }
.set-slot--empty .set-slot__visual { height: 320px; }
.set-slot--empty .set-slot__frame { border-style: dashed; display: flex; align-items: center; justify-content: center; width: 100%; min-height: 160px; color: var(--muted); font-size: 12px; text-align: center; }
.set-slot select { margin-top: 8px; font-size: 13px; padding: 8px 10px; }
.progress { height: 8px; background: #E7E0CF; border-radius: var(--radius-pill); overflow: hidden; margin-block: 16px; }
.progress__bar { height: 100%; background: var(--accent); transition: width 0.3s ease; }
.set-price { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; justify-content: center; }
.set-price__now { font-family: var(--font-head); font-size: 30px; color: var(--ink); }
.set-price__old { text-decoration: line-through; color: var(--price-strike); }
/* The base .badge rule is position:absolute (for poster-card badges); reset it
   so the "−20%" save badge sits inline in the price row instead of overlapping. */
.set-price .badge--save { position: static; align-self: center; }

.set-picker { min-width: 0; }
.set-picker__tools { display: flex; flex-direction: column; gap: 14px; margin-bottom: 18px; }
.set-picker__chips { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; }
.set-picker__grid { max-height: 620px; overflow-y: auto; padding: 4px 8px 4px 4px; }
.set-picker__masonry { width: 100%; min-width: 0; columns: 3; column-gap: 16px; }
.set-poster { position: relative; display: inline-block; width: 100%; min-width: 0; max-width: 100%; margin: 0 0 18px; padding: 0; border: 0; background: transparent; color: var(--ink-2); font: inherit; text-align: left; vertical-align: top; break-inside: avoid; cursor: pointer; }
.set-poster__img { display: block; width: 100%; height: auto; border: 1px solid #D7CBB7; border-radius: var(--radius-img); background: var(--poster-placeholder); transition: box-shadow 0.2s ease, transform 0.2s ease; }
.set-poster:hover .set-poster__img { transform: translateY(-3px); }
.set-poster:disabled { cursor: default; opacity: 0.45; }
.set-poster:disabled:hover .set-poster__img { transform: none; }
.set-poster:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: var(--radius-img); }
.set-poster.is-selected .set-poster__img { box-shadow: 0 0 0 3px var(--accent), 0 10px 22px rgba(63, 60, 48, 0.16); }
.set-poster__num { position: absolute; top: 9px; right: 9px; width: 28px; height: 28px; border-radius: 50%; display: none; align-items: center; justify-content: center; background: var(--accent); color: #fff; font-size: 13px; font-weight: 700; box-shadow: 0 2px 8px rgba(53, 62, 38, 0.22); }
.set-poster.is-selected .set-poster__num { display: flex; }
.set-poster__name { display: block; overflow: hidden; margin-top: 8px; color: var(--ink-2); font-size: 13px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.set-picker__more { display: block; width: 100%; margin-top: 4px; }
.set-picker__empty { text-align: center; color: var(--muted); padding: 40px 0; }

/* --- Collections / Instagram / Benefits ---------------------------------- */
.collection-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.collection-tile { position: relative; aspect-ratio: 3/2.1; border-radius: var(--radius-card); overflow: hidden; text-decoration: none; display: flex; align-items: flex-end; padding: 22px; background-size: cover; background-position: center; }
.collection-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(30, 26, 18, 0.62), rgba(30, 26, 18, 0) 60%); }
.collection-tile__label { position: relative; z-index: 2; color: #fff; }
.collection-tile__label strong { font-family: var(--font-head); font-size: 22px; font-weight: 500; display: block; }
.collection-tile__label span { font-size: 13px; opacity: 0.85; }

.benefits-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.benefit { text-align: center; }
.benefit__icon { width: 56px; height: 56px; border-radius: 50%; background: var(--accent); color: #fff; display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; font-size: 22px; }
.benefit h3 { font-size: 18px; margin-bottom: 8px; }
.benefit p { color: var(--text-soft-2); font-size: 14px; }

.ig-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; width: 100%; max-width: 1320px; margin-inline: auto; }
.ig-tile { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--radius-img); background-color: transparent; background-size: contain; background-position: center; background-repeat: no-repeat; }
.ig-tile::after { content: ""; position: absolute; inset: 0; background: rgba(30, 26, 18, 0); transition: background 0.3s ease; }
.ig-tile:hover::after { background: rgba(30, 26, 18, 0.25); }
.ig-tile__type { position: absolute; top: 10px; right: 10px; z-index: 2; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: rgba(30, 26, 18, 0.64); color: #fff; font-size: 11px; }

.set-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.set-card { background: var(--canvas); border: 1px solid var(--card-border); border-radius: var(--radius-card); padding: 22px; box-shadow: var(--shadow-card); }
.set-card__gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: center; gap: 12px; min-height: 220px; margin-bottom: 18px; padding: 18px 4px 12px; background: transparent; border: 0; overflow: visible; }
.set-card__gallery .poster-frame { position: relative; min-width: 0; padding: 5px; background: repeating-linear-gradient(7deg, rgba(100, 69, 34, 0.05) 0, rgba(100, 69, 34, 0.05) 1px, transparent 1px, transparent 7px), linear-gradient(135deg, #DEC49A 0%, #C7A677 48%, #E2CBA4 100%); border: 1px solid #B89464; border-radius: 1px; box-shadow: inset 0 0 0 1px rgba(255, 249, 232, 0.46), 0 5px 8px -7px rgba(52, 37, 21, 0.34); }
.set-card__gallery .poster-frame::before { content: ""; position: absolute; inset: 1px; z-index: 2; border: 1px solid rgba(255, 247, 224, 0.38); pointer-events: none; }
.set-card__gallery .poster-frame::after { content: ""; position: absolute; inset: 5px; z-index: 2; border: 1px solid rgba(100, 69, 34, 0.14); pointer-events: none; }
.set-card__gallery .poster-frame > div { position: relative; z-index: 1; padding: 3px; background: #FCFAF5; box-shadow: inset 0 0 0 1px rgba(117, 92, 58, 0.08); }
.set-card__gallery .poster-img { aspect-ratio: var(--poster-ratio); background-color: #F8F4EB; border: 0; box-shadow: none; }
.set-card__gallery .poster-frame:nth-child(2) { position: relative; z-index: 1; transform: translateY(-7px) scale(1.04); }

/* --- Blog ---------------------------------------------------------------- */
.blog-featured { display: grid; grid-template-columns: 1.2fr 1fr; gap: 30px; background: var(--canvas); border: 1px solid var(--card-border); border-radius: var(--radius-card); overflow: hidden; margin-bottom: 40px; text-decoration: none; transition: var(--transition); box-shadow: 0 26px 44px -26px rgba(60, 45, 25, 0.45); }
.blog-featured:hover { transform: translateY(-4px); box-shadow: 0 34px 56px -24px rgba(60, 45, 25, 0.5); }
.blog-featured__img { background-size: cover; background-position: center; min-height: 320px; }
.blog-featured__body { padding: 40px; }
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.post-card { text-decoration: none; display: block; background: var(--canvas); border: 1px solid var(--card-border); border-radius: var(--radius-card); overflow: hidden; transition: var(--transition); box-shadow: 0 26px 44px -26px rgba(60, 45, 25, 0.45); }
.post-card:hover { transform: translateY(-6px); box-shadow: 0 34px 56px -24px rgba(60, 45, 25, 0.5); }
.post-card__img { aspect-ratio: 3/2; background-size: cover; background-position: center; background-color: var(--wash); }
.post-card__body { padding: 22px; }
.post-meta { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
.post-card__title { font-family: var(--font-head); font-size: 21px; color: var(--ink-2); margin: 8px 0; }
.post-card__excerpt { color: var(--text-soft-2); font-size: 14px; }
.post-cat-pill { display: inline-block; background: var(--wash); color: var(--accent-strong); border-radius: var(--radius-pill); font-size: 12px; padding: 4px 12px; font-weight: 600; }

.article { max-width: 720px; margin: 0 auto; }
.article__lead { font-family: var(--font-head); font-style: italic; font-size: 22px; color: var(--text-soft); line-height: 1.5; }
/* Cover was a full-width container child (~1264px); align it to the reading
   width so it reads as an article image, not a giant banner. */
.article__cover { max-width: 720px; aspect-ratio: 16/9; border-radius: var(--radius-card); overflow: hidden; margin: 28px auto; background-size: cover; background-position: center; }
/* Consecutive button blocks (e.g. "Zobacz plakaty …") sit on one line instead
   of each taking a full-width row; they wrap only if they run out of space. */
.entry-content .wp-block-buttons { display: inline-flex; flex-wrap: wrap; gap: 10px; vertical-align: top; margin: 4px 10px 12px 0; }
.article blockquote { border-left: 3px solid var(--accent); background: var(--wash); margin: 26px 0; padding: 18px 24px; font-family: var(--font-head); font-style: italic; }
.article-author { display: flex; align-items: center; gap: 12px; margin-block: 18px; }
.article-author__avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--accent); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--font-head); }

/* --- Variable product form ---------------------------------------------- */
.bycolor-native-attr { display: none; }
.variations { margin-bottom: 8px; }
.single_variation { margin-block: 6px 16px; }
.single_variation .price { font-size: 26px; margin: 0; }
.woocommerce-variation-availability { color: var(--text-soft-2); font-size: 13px; }
.reset_variations { font-size: 13px; }
/* WooCommerce wraps related in <section class="related products"> — grid must
   target the <ul>, not the section (which also carries the .products class). */
.related-products .related.products { display: block; }
.related-products ul.products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; }
/* WooCommerce's clearfix ul.products::before/::after become phantom grid items
   and shove every card one cell over (4th wraps to a new row). Remove them. */
.related-products ul.products::before, .related-products ul.products::after { content: none; display: none; }
.related-products ul.products > li, .related-products ul.products > .product-card { margin: 0; width: auto; }
.related-products h2 { font-size: 30px; text-align: center; margin-bottom: 30px; }

/* --- WooCommerce misc glue ---------------------------------------------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	list-style: none; border-radius: var(--radius); padding: 14px 18px; margin-bottom: 20px;
	background: var(--wash); border-left: 3px solid var(--accent); font-size: 14px;
}
.woocommerce-error { border-left-color: var(--btn-bg); }
.woo-main { padding-block: 20px 60px; }

/* Style WooCommerce's own buttons like our .btn */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .button.alt, .checkout-button,
.single_add_to_cart_button, #place_order, .wc-proceed-to-checkout .button {
	display: inline-block; background: var(--btn-bg); color: var(--btn-text);
	border: 1px solid var(--btn-border); font-family: var(--font-body); font-weight: 600;
	font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; padding: 14px 30px;
	border-radius: var(--radius-btn); cursor: pointer; text-decoration: none;
}
.wc-proceed-to-checkout .button, #place_order { width: 100%; text-align: center; }
.woocommerce .button.disabled, .single_add_to_cart_button.disabled { opacity: 0.55; }

/* WooCommerce ships .button.alt wrapped in :where() (near-zero specificity) and
   colours it purple; force our terracotta on the primary/checkout buttons so
   load order can't leave the default showing through. */
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.wc-proceed-to-checkout a.checkout-button, .woocommerce #place_order,
.woocommerce .single_add_to_cart_button {
	background: var(--btn-bg) !important; color: var(--btn-text) !important; border-color: var(--btn-border) !important;
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover,
.wc-proceed-to-checkout a.checkout-button:hover, .woocommerce #place_order:hover,
.woocommerce .single_add_to_cart_button:hover {
	background: var(--btn-border) !important;
}

/* Total row: keep "Razem" and the amount on one line; drop the VAT suffix to a
   small muted note underneath instead of inheriting the 28px serif. */
.summary-row--total > span:last-child { display: inline-flex; flex-direction: column; align-items: flex-end; font-family: var(--font-head); font-size: 28px; font-weight: 400; }
.summary-row--total .includes_tax { display: block; margin-top: 4px; font-family: var(--font-body); font-size: 12px; font-weight: 400; color: var(--muted); text-align: right; }

/* Coupon form inside the summary box (matches the cart mockup). */
.cart-coupon { display: flex; gap: 8px; margin: 4px 0 18px; }
.cart-coupon .input-text { flex: 1; min-width: 0; border: 1px solid var(--card-border); background: #fff; padding: 11px 14px; font-size: 13px; border-radius: var(--radius-btn); }
.cart-coupon .btn { white-space: nowrap; padding: 11px 16px; }

/* Checkout — ByColor two-column layout (form left, order review right) */
.woocommerce-checkout form.checkout { display: block; }
.checkout-cols { display: grid; grid-template-columns: 1.35fr 1fr; gap: 48px; align-items: start; }
.checkout-main .col2-set, .checkout-main #customer_details { display: block; width: auto; float: none; }
/* WooCommerce floats .col-1/.col-2 to 48% — un-float so billing fills the column. */
.checkout-main .col2-set .col-1, .checkout-main .col2-set .col-2 { float: none; width: auto; padding: 0; margin: 0; }
.checkout-main .col2-set .col-2 { margin-top: 8px; }

.woocommerce-checkout h3, #order_review_heading { font-family: var(--font-head); font-weight: 400; font-size: 24px; color: var(--ink); margin: 0 0 14px; }
.woocommerce-checkout .woocommerce-shipping-fields h3, .woocommerce-checkout .woocommerce-additional-fields h3 { font-size: 20px; margin-top: 8px; }

/* Fields: two-up grid with full-width inputs */
.woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 12px; }
.woocommerce-billing-fields__field-wrapper > .form-row { grid-column: 1 / -1; margin: 0; }
/* WC gives .form-row-first/last width:47%+float; in our grid that shrinks them
   to ~47% of the cell. Reset so they fill their columns like the other fields. */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first { grid-column: 1 / 2; width: auto; float: none; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: 2 / 3; width: auto; float: none; }
/* PL locale forces postcode/city to full width; pin them side by side by ID. */
.woocommerce-billing-fields__field-wrapper > #billing_postcode_field { grid-column: 1 / 2; }
.woocommerce-billing-fields__field-wrapper > #billing_city_field { grid-column: 2 / 3; }
.woocommerce-shipping-fields__field-wrapper, .woocommerce-additional-fields .form-row { display: grid; gap: 9px; }
.woocommerce form .form-row { margin: 0 0 9px; padding: 0; }
.woocommerce-checkout .form-row label { display: block; font-size: 12.5px; color: var(--text-soft); margin-bottom: 3px; }
.woocommerce-checkout .input-text,
.woocommerce-checkout input[type="text"], .woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"], .woocommerce-checkout input[type="password"],
.woocommerce-checkout textarea, .woocommerce-checkout select {
	width: 100%; border: 1px solid var(--card-border); background: #fff; padding: 11px 14px;
	font-family: var(--font-body); font-size: 14px; color: var(--ink); border-radius: var(--radius-btn);
}
.woocommerce-checkout .select2-container { width: 100% !important; }
.woocommerce-checkout .select2-container--default .select2-selection--single { height: 48px; display: flex; align-items: center; border: 1px solid var(--card-border); border-radius: var(--radius-btn); background: #fff; }

/* Order review box (mirrors the cart summary) */
#order_review { background: var(--wash); border: 1px solid var(--card-border); border-radius: var(--radius-card); padding: 28px; position: sticky; top: 20px; }
.woocommerce-checkout-review-order-table { width: 100%; border-collapse: collapse; margin-bottom: 6px; }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { text-align: left; padding: 10px 0; border-bottom: 1px solid var(--card-border); font-size: 14px; color: var(--text-soft); vertical-align: top; }
.woocommerce-checkout-review-order-table td.product-total, .woocommerce-checkout-review-order-table th { text-align: right; }
.woocommerce-checkout-review-order-table td.product-name { text-align: left; color: var(--ink-2); }
.woocommerce-checkout-review-order-table .product-quantity { color: var(--muted); }
.woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout-review-order-table .order-total td { border-bottom: none; padding-top: 14px; color: var(--ink); }
.woocommerce-checkout-review-order-table .order-total .amount { font-family: var(--font-head); font-size: 24px; }
.woocommerce-checkout-review-order-table .order-total .includes_tax { display: block; margin-top: 2px; font-family: var(--font-body); font-size: 12px; font-weight: 400; color: var(--muted); }
.woocommerce-checkout-review-order-table .order-total .includes_tax .amount,
.summary-row--total .includes_tax .amount { font-size: inherit; font-weight: 400; font-family: var(--font-body); }
/* Thumbnail + qty badge in the order-review product rows (matches the mockup). */
.woocommerce-checkout-review-order-table .cart_item .product-name { display: flex; align-items: center; gap: 12px; }
.review-thumb { position: relative; flex: 0 0 46px; width: 46px; background: #fff; border: 1px solid var(--card-border); border-radius: var(--radius); padding: 4px; }
.review-thumb .poster-img { display: block; aspect-ratio: var(--poster-ratio); background-size: contain; background-position: center; background-repeat: no-repeat; background-color: var(--poster-placeholder); }
.review-thumb__qty { position: absolute; top: -8px; right: -8px; min-width: 19px; height: 19px; padding: 0 4px; border-radius: 999px; background: var(--accent); color: #fff; font-size: 10px; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.review-name__text { min-width: 0; }

/* Shipping radio rows inside the summary */
#order_review #shipping_method { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
#order_review #shipping_method li { display: flex; align-items: center; gap: 8px; }

/* Distraction-free checkout header (logo + reassurance) */
.site-header--checkout .site-header__inner { justify-content: space-between; }
.checkout-secure { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-soft); }
.checkout-secure__mark { color: var(--accent-strong); }

/* Step bar + hide the default page H1 on checkout */
.woocommerce-checkout .section__head { display: none; }
.checkout-steps { display: flex; align-items: center; gap: 12px; font-size: 13px; margin-bottom: 24px; }
.checkout-steps__step { color: var(--muted); text-decoration: none; }
.checkout-steps__step.is-current { color: var(--accent-strong); font-weight: 600; }
.checkout-steps__sep { color: var(--card-border); }

/* Left-column section titles (Metoda płatności) */
.checkout-section { margin-top: 8px; }
.checkout-section__title { font-family: var(--font-head); font-weight: 400; font-size: 24px; color: var(--ink); margin: 0 0 14px; }

/* Payment methods as a two-column card grid (per the design) */
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
/* WooCommerce puts a clearfix ::before/::after on lists; in a grid they become
   phantom grid items and shove the cards into the wrong cells. Kill them. */
.woocommerce-checkout #payment ul.payment_methods::before,
.woocommerce-checkout #payment ul.payment_methods::after { content: none; display: none; }
.woocommerce-checkout #payment ul.payment_methods li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border: 1px solid var(--card-border); background: #fff; border-radius: var(--radius-btn); padding: 14px 16px; align-content: flex-start; }
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] { flex: 0 0 auto; width: 18px; height: 18px; min-width: 18px; margin: 0; display: inline-block; accent-color: var(--accent-strong); }
.woocommerce-checkout #payment ul.payment_methods li label { flex: 1; margin: 0; font-size: 14px; font-weight: 500; display: inline-flex; align-items: center; gap: 8px; }
.woocommerce-checkout #payment ul.payment_methods li label img { max-height: 22px; width: auto; }
.woocommerce-checkout #payment .payment_box { flex: 0 0 100%; background: var(--canvas); border-radius: var(--radius); padding: 12px 14px; font-size: 13px; color: var(--text-soft); margin: 4px 0 0; }
.woocommerce-checkout #payment .payment_box::before { display: none; }
.woocommerce-checkout #payment .payment_box p:last-child { margin-bottom: 0; }

/* Place-order block inside the summary column */
.checkout-side .place-order { padding: 18px 0 0; margin-top: 6px; border-top: 1px solid var(--card-border); }
.checkout-side .place-order #place_order { width: 100%; margin-top: 6px; }
.checkout-consent { font-size: 11.5px; color: var(--muted); text-align: center; line-height: 1.5; margin: 12px 0 0; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--text-soft); margin-bottom: 14px; }
.woocommerce-checkout .woocommerce-privacy-policy-text { font-size: 12px; color: var(--muted); }
/* Coupons are applied in the cart; hide the checkout coupon toggle (per design). */
.woocommerce-checkout .woocommerce-form-coupon-toggle, .woocommerce-checkout .checkout_coupon { display: none; }
/* Single-country store: hide the static "Kraj / region: Polska" row (value still
   submitted). WooCommerce's locale JS sets display:block inline, so !important. */
.woocommerce-checkout #billing_country_field { display: none !important; }

@media (max-width: 1080px) {
	.checkout-cols { grid-template-columns: 1fr; }
	#order_review { position: static; }
	.related-products ul.products { grid-template-columns: repeat(2, 1fr); }
}

/* Contact page ------------------------------------------------------------ */
/* Wider than the 720px article reading width so the two columns can breathe. */
.bycolor-contact-page .article { max-width: 1040px; }
.contact-layout { display: grid; grid-template-columns: 1fr 1.2fr; gap: 56px; align-items: start; }
.contact-info__title { font-family: var(--font-head); font-weight: 400; font-size: 28px; color: var(--ink); margin: 0 0 14px; }
.contact-info p { color: var(--text-soft); }
.contact-info__list { list-style: none; padding: 0; margin: 20px 0; display: flex; flex-direction: column; gap: 12px; }
.contact-info__list li { font-size: 15px; }
.contact-info__k { display: inline-block; min-width: 74px; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; }
.contact-info__note { font-size: 13px; color: var(--muted); border-top: 1px solid var(--card-border); padding-top: 16px; margin-top: 4px; }
.contact-form-col { background: var(--wash); border: 1px solid var(--card-border); border-radius: var(--radius-card); padding: 30px; }
.contact-form__title { font-family: var(--font-head); font-weight: 400; font-size: 22px; color: var(--ink); margin: 0 0 18px; }
.contact-form__row { display: flex; flex-direction: column; margin-bottom: 14px; }
.contact-form__row label { font-size: 12.5px; color: var(--text-soft); margin-bottom: 5px; }
.contact-form input[type="text"], .contact-form input[type="email"], .contact-form textarea {
	width: 100%; border: 1px solid var(--card-border); background: #fff; padding: 12px 14px;
	font-family: var(--font-body); font-size: 14px; color: var(--ink); border-radius: var(--radius-btn);
}
.contact-form textarea { resize: vertical; min-height: 130px; }
.contact-form__err { color: var(--btn-border); font-size: 12px; margin-top: 4px; }
.contact-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.contact-form .btn--block { margin-top: 4px; }
.contact-notice { border-radius: var(--radius); padding: 14px 16px; font-size: 14px; margin-bottom: 18px; }
.contact-notice--ok { background: #fff; border-left: 3px solid var(--accent); color: var(--accent-strong); font-weight: 600; }
.contact-notice--error { background: #fff; border-left: 3px solid var(--btn-bg); color: var(--btn-border); }
@media (max-width: 1080px) { .contact-layout { grid-template-columns: 1fr; } }

/* --- Responsive ---------------------------------------------------------- */
@media (max-width: 1080px) {
	:root { --gutter: 28px; }
	.product-grid { grid-template-columns: repeat(3, 1fr); }
	.rooms-grid { grid-template-columns: repeat(4, 1fr); }
	.ig-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 756px; }
	.product-layout, .cart-layout, .set-layout, .product-desc__inner, .blog-featured, .radio-cards--2 { grid-template-columns: 1fr; }
	.featured-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.hero { height: auto; padding-block: 40px; }
	.hero__inner { grid-template-columns: 1fr; }
	.site-footer__grid { grid-template-columns: 1fr 1fr; }
	.collection-grid, .benefits-grid, .blog-grid, .set-cards { grid-template-columns: repeat(2, 1fr); }
	/* Set builder stacks here — drop the sticky preview (the picker scrolled over
	   it) and let the picker grid flow instead of internal-scrolling. */
	.set-preview { position: static; }
	.set-picker__grid { max-height: none; overflow: visible; }
}
@media (max-width: 720px) {
	:root { --gutter: 18px; }
	h1 { font-size: 34px; }
	.hero__copy h1 { font-size: 38px; }
	.product-grid, .rooms-grid, .collection-grid, .benefits-grid, .blog-grid { grid-template-columns: repeat(2, 1fr); }
	.ig-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; max-width: none; }
	.set-picker__masonry { columns: 2; column-gap: 12px; }
	.set-poster { margin-bottom: 16px; }
	.set-preview { padding: 22px 18px; }
	.set-slots { gap: 10px; }
	.set-slot__visual, .set-slot--empty .set-slot__visual { height: 220px; }
	.set-slot--landscape .set-slot__frame { transform: translateY(-18px); }
	.set-slot--square .set-slot__frame { transform: translateY(-8px); }
	.set-slot select { padding-inline: 7px; }
	.featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 14px; }
	.featured-card:nth-child(even) { margin-top: 0; }
	.polecane-head { align-items: flex-start; flex-direction: column; gap: 22px; }
	.polecane-title { font-size: 32px; }
	.polecane-actions { justify-content: space-between; width: 100%; }
	.tab { font-size: 25px; }
	/* Set cards each hold three mini posters — 2-per-row makes them tiny/unreadable,
	   so go full-width on phones (thumbnails become large enough to see). */
	.set-cards { grid-template-columns: 1fr; }
	.set-card__gallery { gap: 14px; }
	.section { padding-block: 44px; }
	.product-gallery { grid-template-columns: 1fr; }
	.product-gallery__thumbs { flex-direction: row; }

	/* Mobile navigation: hamburger toggles a full-width dropdown panel. */
	.site-header__inner { position: relative; gap: 14px; }
	.nav-burger { display: flex; }
	.nav-utils { margin-left: auto; gap: 16px; }
	.nav-utils .nav-util:not(.nav-util--cart) { display: none; }
	.primary-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; z-index: 60; background: var(--cream); border-top: 1px solid var(--card-border); border-bottom: 1px solid var(--card-border); box-shadow: 0 24px 34px -22px rgba(60, 45, 25, 0.45); padding: 4px var(--gutter) 14px; }
	.site-header.is-nav-open .primary-nav { display: block; }
	.primary-nav__list { flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; }
	.primary-nav__list li { width: 100%; }
	.primary-nav__list a { display: block; padding: 13px 2px; border-bottom: 1px solid var(--card-border); font-size: 15px; }
	.primary-nav__extra { display: flex; gap: 22px; padding: 14px 2px 2px; }
	.primary-nav__extra a { color: var(--accent-strong); font-weight: 600; text-decoration: none; font-size: 14px; }
}

@media (max-width: 560px) {
	/* Cart row: fixed columns (~388px) overflow phones — reflow to thumb+name
	   on top, then the stepper / price / remove on a second row. */
	.cart-item { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; }
	.cart-item__thumb { width: 56px; flex: none; }
	.cart-item__info { flex: 1 1 55%; min-width: 0; }
	.cart-item__qty { order: 3; }
	.cart-item__price { order: 4; margin-left: auto; font-weight: 600; }
	.cart-item__remove { order: 5; }
	/* Payment method cards stack rather than squeeze into two columns. */
	.woocommerce-checkout #payment ul.payment_methods { grid-template-columns: 1fr; }
}

/* ── Autopay (BlueMedia) checkout compatibility ─────────────────────────
 * The Autopay plugin ships payment-channel layout fixes ONLY for
 * body.theme-astra (see its frontend.css "Compatibility with Astra theme").
 * On our classic bycolor checkout the bank/BLIK channel tiles otherwise
 * overflow and misalign. Replicate the plugin's Astra fixes for theme-bycolor
 * and lay the channels out as a responsive grid that fits the payment column. */
.theme-bycolor .woocommerce-checkout #payment .payment_method_bluemedia img { margin: 0; }
.theme-bycolor .payment_box.payment_method_bluemedia > .bm-payment-channels-wrapper { margin-left: 0; }
.theme-bycolor .woocommerce-checkout #payment ul.wc_payment_methods li.payment_method_bluemedia ul#shipping_method li { padding-left: 0; }

/* "Szybka płatność" row logo in the methods list — keep it modest. */
.theme-bycolor #payment ul.wc_payment_methods .payment_method_bluemedia > label > img {
	width: auto;
	height: 34px;
	margin-left: 10px;
}

/* Bank/BLIK channel tiles → responsive grid inside the payment column. */
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channels-wrapper ul.woocommerce-shipping-methods { display: block; }
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channels-wrapper ul.woocommerce-shipping-methods > div > li { list-style: none; }
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channels-wrapper ul.woocommerce-shipping-methods > div > li > ul {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
	gap: 8px;
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
	width: 100%;
}
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channel-item,
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channel-group-item {
	border: 1px solid var(--card-border) !important;
	border-radius: 10px;
	margin: 0 !important;
	padding: 8px 6px;
}
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channel-item.selected,
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channel-item.bm-selected-group,
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channel-group-item.selected {
	border-color: var(--accent, #c06e52) !important;
}
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channel-item > label,
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channel-group-item > label {
	flex-direction: column;
	align-items: center;
	gap: 6px;
	min-height: 58px;
	text-align: center;
	cursor: pointer;
}
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channel-method-logo,
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channel-group-method-logo {
	max-width: 60px;
	width: 100%;
	height: auto;
}
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channel-method-name,
.theme-bycolor #payment .payment_method_bluemedia .bm-payment-channel-group-method-name {
	font-size: 11px;
	line-height: 1.2;
	word-wrap: break-word;
}
