/*
Theme Name: Bazgranie Nocą — Atelier Premium V2
Theme URI: https://bazgranienoca.pl/
Description: Autorska galeria sztuki i WooCommerce — edytorski, spójny motyw premium, oparty na Astra.
Author: Bazgranie Nocą
Version: 2.0.1
Template: astra
Text Domain: bazgranie-atelier
*/

/* 01 / Foundation — a single, canonical design system */
:root {
  --bn-ink: #25221e;
  --bn-deep: #201e1b;
  --bn-stone: #f6f3ed;
  --bn-paper: #fbf9f4;
  --bn-clay: #eae4da;
  --bn-muted: #68615a;
  --bn-brass: #b99d7b;
  --bn-line: #d8d0c5;
  --bn-font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --bn-font-body: 'DM Sans', 'Helvetica Neue', Arial, sans-serif;
  --bn-max: 1440px;
  --bn-gutter: clamp(22px, 5.4vw, 92px);
  --bn-focus: #8e5c28;
}
html { scroll-behavior: smooth; }
body.bn-site { margin: 0; background: var(--bn-stone); color: var(--bn-ink); font-family: var(--bn-font-body); font-size: 16px; -webkit-font-smoothing: antialiased; overflow-x: clip; }
body.bn-site *, body.bn-site *::before, body.bn-site *::after { box-sizing: border-box; }
body.bn-site a { color: inherit; text-decoration: none; }
body.bn-site a:hover { color: var(--bn-ink); }
body.bn-site a:focus-visible, body.bn-site button:focus-visible, body.bn-site input:focus-visible, body.bn-site select:focus-visible, body.bn-site textarea:focus-visible { outline: 3px solid var(--bn-focus); outline-offset: 4px; }
body.bn-site img { max-width: 100%; height: auto; }
body.bn-site h1, body.bn-site h2, body.bn-site h3, body.bn-site h4, body.bn-site p { overflow-wrap: normal; word-break: normal; }
body.bn-site h1, body.bn-site h2, body.bn-site h3, body.bn-site h4 { font-weight: 400; }
.bn-container { width: min(100%, var(--bn-max)); padding-inline: var(--bn-gutter); margin-inline: auto; }
.bn-content { min-height: 55vh; }
.bn-overline { display: block; font: 650 11px/1.5 var(--bn-font-body); letter-spacing: .19em; text-transform: uppercase; color: #826b54; }
.bn-overline--light { color: #ccb391; }
.bn-overline__star { color: var(--bn-brass); padding: 0 9px; }
.bn-skip { position: fixed; z-index: 9999; top: -120px; left: 14px; padding: 15px 20px; background: white; color: #111; }
.bn-skip:focus { top: 12px; }
.bn-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 36px; padding: 17px 22px; min-height: 55px; font: 700 11px/1.2 var(--bn-font-body); letter-spacing: .12em; text-transform: uppercase; border: 1px solid currentColor; transition: background .22s ease, color .22s ease; white-space: nowrap; }
.bn-button span { font-size: 19px; font-weight: 400; line-height: .7; }
.bn-button--light { color: #fffaf3!important; border-color: #f5eee4; }
.bn-button--light:hover { background: #f7f3e9; color: var(--bn-ink)!important; }
.bn-button--dark { background: var(--bn-ink); color: #fffaf3!important; border-color: var(--bn-ink); }
.bn-button--dark:hover { background: #725840; border-color: #725840; color: #fff!important; }
.bn-text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 25px; width: fit-content; font: 650 11px/1.3 var(--bn-font-body); letter-spacing: .12em; text-transform: uppercase; padding-bottom: 10px; border-bottom: 1px solid currentColor; transition: opacity .2s; }
.bn-text-link:hover { opacity: .68; }
.bn-text-link span { font-size: 18px; line-height: 1; font-weight: 400; }
.bn-text-link--light { color: #f5f0e7!important; }
.bn-section-header { display: flex; justify-content: space-between; align-items: end; gap: 25px; padding-bottom: 26px; margin-bottom: 46px; border-bottom: 1px solid var(--bn-line); }
.bn-section-header h2 { font: 400 clamp(49px, 5.4vw, 82px)/.94 var(--bn-font-display); letter-spacing: -.04em; margin: 14px 0 0; color: var(--bn-ink); }
.bn-section-header h2 em { font-weight: 400; color: #937a63; }
.bn-section-header .bn-text-link { margin-bottom: 4px; }
.bn-section-description { max-width: 535px; margin: 22px 0 0; line-height: 1.85; font-size: 15px; color: var(--bn-muted); }

/* 02 / Global masthead. No Astra logo duplicates or stacking navigation. */
.bn-header { position: relative; z-index: 100; background: var(--bn-paper); border-bottom: 1px solid #ded7ce; }
.bn-header__inner { min-height: 106px; display: flex; align-items: center; gap: clamp(18px, 3.1vw, 56px); max-width: 1600px; padding: 13px clamp(24px, 4.5vw, 74px); margin-inline: auto; }
.bn-logo { display: flex; flex-direction: column; flex-shrink: 0; align-items: flex-start; min-width: 192px; color: var(--bn-ink)!important; line-height: .78; letter-spacing: -.055em; }
.bn-logo__main { font: 600 40px/.85 var(--bn-font-display); white-space: nowrap; }
.bn-logo__mark { color: #a88560; }
.bn-logo__second { display: flex; align-items: baseline; font: italic 500 38px/.87 var(--bn-font-display); margin-left: 37px; white-space: nowrap; }
.bn-logo__second small { font: 650 8px/1.1 var(--bn-font-body); letter-spacing: .2em; text-transform: uppercase; color: #9a7f61; margin-left: 13px; }
.bn-primary-nav { display: flex; align-items: center; justify-content: center; gap: clamp(16px, 2vw, 35px); flex: 1; min-width: 0; }
.bn-primary-nav a { position: relative; font: 650 11px/1.3 var(--bn-font-body); text-transform: uppercase; letter-spacing: .12em; white-space: nowrap; padding: 13px 0; color: var(--bn-ink)!important; }
.bn-primary-nav a::after { content: ''; position: absolute; bottom: 5px; height: 1px; left: 0; right: 100%; background: #997656; transition: right .25s; }
.bn-primary-nav a:hover::after, .bn-primary-nav a[aria-current="page"]::after { right: 0; }
.bn-header__actions { display: flex; gap: 22px; align-items: center; flex-shrink: 0; }
.bn-header__gallery { display: inline-flex; align-items: center; justify-content: space-between; gap: 25px; padding: 16px 20px; border: 1px solid var(--bn-ink); font: 700 10px/1.2 var(--bn-font-body); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; color: var(--bn-ink)!important; transition: background .2s, color .2s; }
.bn-header__gallery:hover { background: var(--bn-ink); color: #fff!important; }
.bn-header__gallery span { font-size: 16px; }
.bn-header__cart { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 42px; position: relative; color: var(--bn-ink)!important; }
.bn-cart-count { position: absolute; top: -2px; right: -9px; min-width: 17px; min-height: 17px; padding: 3px; border-radius: 999px; display: inline-grid; place-content: center; font: 700 10px/1 var(--bn-font-body); color: #fff; background: #947557; }
.bn-menu-button { display: none; align-items: center; justify-content: center; flex-direction: column; gap: 6px; background: transparent; padding: 0; width: 45px; height: 45px; border: 1px solid var(--bn-line); border-radius: 0; cursor: pointer; }
.bn-menu-button:hover { background: #eee7dc; }
.bn-menu-button span { width: 21px; height: 1.5px; background: var(--bn-ink); transition: transform .2s; }
.bn-menu-button[aria-expanded="true"] span:first-child { transform: translateY(3.75px) rotate(45deg); }
.bn-menu-button[aria-expanded="true"] span:last-child { transform: translateY(-3.75px) rotate(-45deg); }
.bn-mobile-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--bn-deep); color: #fcf8ef; z-index: 100; box-shadow: 0 22px 45px rgb(0 0 0 / .2); }
.bn-mobile-nav[hidden] { display: none!important; }
.bn-mobile-nav__inner { max-width: 660px; margin: 0 auto; padding: 26px var(--bn-gutter) 37px; }
.bn-mobile-nav a { display: flex; align-items: center; padding: 13px 0; border-bottom: 1px solid rgb(255 255 255 / .18); gap: 22px; font: 500 clamp(28px, 5vw, 39px)/1.05 var(--bn-font-display); color: #faf7f1!important; }
.bn-mobile-nav a small { color: #c9ae8d; font: 700 10px var(--bn-font-body); }
.bn-mobile-nav a span { color: #c9ae8d; margin-left: auto; font: 400 20px var(--bn-font-body); }
.bn-mobile-nav p { color: #c9ae8d; margin: 28px 0 0; font: italic 28px var(--bn-font-display); }
body.bn-navigation-open { overflow: hidden; }

/* 03 / The gallery's hero, not a generic marketing block. */
.bn-hero { min-height: 690px; display: grid; grid-template-columns: 1.01fr .99fr; background: var(--bn-deep); color: #f7f2e8; }
.bn-hero__words { position: relative; padding: clamp(92px, 9vw, 156px) clamp(35px, 5.4vw, 100px) 86px max(var(--bn-gutter), calc((100vw - 1440px) / 2 + 86px)); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.bn-hero h1 { color: #fffaf2!important; font: 400 clamp(88px, 8.7vw, 160px)/.76 var(--bn-font-display); letter-spacing: -.055em; margin: 43px 0 43px; white-space: nowrap; }
.bn-hero h1 em { font-weight: 400; color: #d4bba0; }
.bn-hero__description { max-width: 445px; color: #d8d0c5; font: 400 clamp(15px, 1.1vw, 17px)/1.92 var(--bn-font-body); margin: 0 0 35px; }
.bn-hero__actions { display: flex; align-items: center; gap: 25px; flex-wrap: wrap; }
.bn-hero__index { margin: 55px 0 0; font-size: 10px; letter-spacing: .15em; color: #998d7c; }
.bn-hero__index span { color: #bc9f7c; }
.bn-hero__art { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 58px clamp(35px, 5.3vw, 94px) 44px; background: #34302b; min-width: 0; }
.bn-hero__art>a { display: flex; align-items: center; justify-content: center; flex: 1; width: 100%; min-height: 0; }
.bn-hero__art>a img { display: block; width: 100%; max-height: 590px; height: auto; object-fit: contain; box-shadow: 0 27px 50px rgb(0 0 0 / .14); transition: transform .5s ease; }
.bn-hero__art>a:hover img { transform: scale(1.025); }
.bn-hero__caption { align-self: stretch; display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-top: 20px; padding-top: 15px; border-top: 1px solid rgb(255 255 255 / .18); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: #c7b7a4; }
.bn-hero__caption strong { font-weight: 600; letter-spacing: .08em; }
.bn-hero__caption small { color: #bda78b; }
.bn-category-bar { background: var(--bn-paper); border-bottom: 1px solid var(--bn-line); }
.bn-category-bar__inner { display: flex; gap: clamp(15px, 3vw, 62px); align-items: center; min-height: 102px; justify-content: space-between; }
.bn-category-bar__inner>a { font: 500 14px/1.5 var(--bn-font-body); white-space: nowrap; padding: 8px 0; }
.bn-category-bar__inner>a:hover { color: #916f52; }
.bn-category-bar__inner>a>span { color: #a28567; margin-left: 15px; }
.bn-manifesto { text-align: center; padding-top: 145px; padding-bottom: 155px; }
.bn-manifesto h2 { font: 400 clamp(65px, 7.5vw, 119px)/.83 var(--bn-font-display); letter-spacing: -.045em; margin: 35px 0; color: var(--bn-ink); }
.bn-manifesto h2 em { color: #987c60; }
.bn-manifesto>p:last-child { max-width: 645px; margin: 0 auto; font: 400 16px/1.85 var(--bn-font-body); color: var(--bn-muted); }
.bn-featured { padding-bottom: 140px; }
.bn-artwork-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(35px, 6vw, 98px); align-items: start; }
.bn-artwork-card { min-width: 0; display: block; }
.bn-artwork-card--offset { margin-top: 128px; }
.bn-artwork-card__visual { background: var(--bn-clay); padding: clamp(26px, 5vw, 74px); display: grid; place-items: center; overflow: hidden; }
.bn-artwork-card__visual img { width: 100%; aspect-ratio: 1; object-fit: contain; transition: transform .5s; }
.bn-artwork-card:hover img { transform: scale(1.035); }
.bn-artwork-card__meta { display: flex; align-items: start; justify-content: space-between; gap: 16px; padding-top: 26px; }
.bn-artwork-card__meta h3 { color: var(--bn-ink); font: 400 clamp(34px, 3vw, 49px)/1 var(--bn-font-display); margin: 7px 0 0; }
.bn-artwork-card__price { font: 500 13px/1.5 var(--bn-font-body); white-space: nowrap; color: var(--bn-muted); }
.bn-poster-section { padding: 120px 0 135px; background: #ece6dc; }
.bn-poster-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(15px, 2vw, 30px); }
.bn-poster { min-width: 0; }
.bn-poster__visual { overflow: hidden; display: grid; place-items: center; padding: clamp(13px, 2vw, 30px); background: #ddd4c6; }
.bn-poster__visual img { display: block; width: 100%; height: auto; aspect-ratio: 4/5; object-fit: contain; transition: transform .5s; }
.bn-poster:hover img { transform: scale(1.035); }
.bn-poster__detail { display: flex; justify-content: space-between; align-items: baseline; gap: 9px; padding-top: 18px; }
.bn-poster__detail h3 { font: 500 clamp(27px, 2.4vw, 36px)/1 var(--bn-font-display); margin: 0; color: var(--bn-ink); }
.bn-poster__detail span { font-size: 12px; color: var(--bn-muted); white-space: nowrap; }
.bn-artist { display: grid; grid-template-columns: 1fr 1fr; min-height: 760px; background: var(--bn-paper); }
.bn-artist__image { background: var(--bn-clay); min-height: 620px; }
.bn-artist__image img { display: block; width: 100%; height: 100%; max-height: 880px; object-fit: cover; }
.bn-artist__content { padding: clamp(70px, 9vw, 140px) clamp(30px, 7.5vw, 132px); display: flex; align-items: center; }
.bn-artist__content h2 { font: 400 clamp(69px, 7vw, 112px)/.84 var(--bn-font-display); letter-spacing: -.045em; margin: 30px 0 33px; color: var(--bn-ink); }
.bn-artist__content h2 em { color: #9e7e5f; }
.bn-artist__content p { font: 400 16px/1.92 var(--bn-font-body); max-width: 455px; color: var(--bn-muted); margin: 0 0 38px; }
.bn-belief { text-align: center; background: var(--bn-deep); padding: clamp(105px, 11vw, 165px) 0; color: #f7f3eb; }
.bn-belief h2 { color: #f7f3eb!important; font: 400 clamp(57px, 6.2vw, 103px)/.89 var(--bn-font-display); letter-spacing: -.04em; margin: 26px 0 0; }
.bn-belief h2 em { color: #d5b99b; }
.bn-contact-strip { display: flex; align-items: center; justify-content: space-between; gap: 45px; padding-block: 100px; }
.bn-contact-strip h2 { font: 400 clamp(49px, 5vw, 75px)/.95 var(--bn-font-display); margin: 13px 0 15px; color: var(--bn-ink); }
.bn-contact-strip h2 em { color: #97795a; }
.bn-contact-strip p { font: 400 15px/1.8 var(--bn-font-body); margin: 0; color: var(--bn-muted); }

/* 04 / Premium inner pages. Full-width hero plus a readable editorial body. */
.bn-inner-hero { background: var(--bn-deep); color: #f9f4eb; padding: clamp(95px, 10vw, 150px) 0 clamp(83px, 9vw, 125px); }
.bn-inner-hero__columns { display: grid; grid-template-columns: 1.18fr .82fr; align-items: end; gap: clamp(38px, 6vw, 92px); }
.bn-inner-hero h1 { color: #f8f3ea!important; font: 400 clamp(76px, 9vw, 138px)/.82 var(--bn-font-display); letter-spacing: -.05em; margin: 34px 0 0; }
.bn-inner-hero h1 em { color: #d1b394; }
.bn-inner-hero__columns>p { max-width: 420px; margin: 0 0 10px; color: #e0d5c8; font: 400 clamp(15px, 1.3vw, 18px)/1.85 var(--bn-font-body); }
.bn-story { padding-block: clamp(95px, 10vw, 165px); display: grid; grid-template-columns: 1.04fr .96fr; gap: clamp(50px, 8vw, 140px); align-items: start; }
.bn-story__portrait { background: var(--bn-clay); }
.bn-story__portrait img { width: 100%; display: block; aspect-ratio: 4/4.5; object-fit: cover; }
.bn-story__content { padding-top: clamp(0px, 4vw, 80px); }
.bn-story__content h2 { font: 400 clamp(62px, 6vw, 96px)/.88 var(--bn-font-display); letter-spacing: -.04em; margin: 28px 0 38px; color: var(--bn-ink); }
.bn-story__content h2 em { color: #947458; }
.bn-story__content p { font: 400 16px/1.95 var(--bn-font-body); color: #5e5852; max-width: 525px; margin: 0 0 24px; }
.bn-story__content .bn-button { margin-top: 18px; }
.bn-story-bottom { background: #ece6da; padding: clamp(85px, 9vw, 133px) 0; }
.bn-story-bottom__grid { display: grid; grid-template-columns: .56fr 1fr .89fr; gap: 35px; align-items: start; }
.bn-story-bottom__grid h2 { font: 400 clamp(55px, 5vw, 82px)/.89 var(--bn-font-display); letter-spacing: -.04em; color: var(--bn-ink); margin: 0; }
.bn-story-bottom__grid h2 em { color: #947458; }
.bn-story-bottom__grid p { color: #645e58; font: 400 16px/1.9 var(--bn-font-body); margin: 0; }

/* 05 / Contact and forms — usable fields, no default tiny plugin widgets. */
.bn-contact-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(45px, 8vw, 130px); padding-block: clamp(95px, 10vw, 150px); }
.bn-contact-layout__intro { background: #ebe4d9; padding: clamp(40px, 5vw, 75px); align-self: start; }
.bn-contact-layout__intro h2, .bn-contact-layout__form h2 { font: 400 clamp(55px, 5vw, 82px)/.9 var(--bn-font-display); margin: 27px 0; color: var(--bn-ink); }
.bn-contact-layout__intro h2 em, .bn-contact-layout__form h2 em { color: #947458; }
.bn-contact-layout p { font: 400 16px/1.85 var(--bn-font-body); color: var(--bn-muted); }
.bn-contact-layout__intro .bn-text-link { margin-top: 26px; }
.bn-contact-layout__form { padding-top: 25px; min-width: 0; }
.bn-contact-layout__form>p { max-width: 500px; }
.bn-contact-layout__form .wpforms-container { margin: 36px 0 0; }
.bn-contact-layout__form .wpforms-form { width: 100%; }
.bn-contact-layout__form .wpforms-field-label, .bn-contact-layout__form .wpforms-field-sublabel { color: var(--bn-ink); font: 600 13px/1.5 var(--bn-font-body); }
.bn-contact-layout__form .wpforms-field-label { margin-bottom: 9px; }
.bn-contact-layout__form .wpforms-field { padding: 11px 0!important; }
.bn-contact-layout__form .wpforms-field input:not([type="checkbox"]):not([type="radio"]), .bn-contact-layout__form .wpforms-field textarea, .bn-contact-layout__form .wpforms-field select { display: block; width: 100%; max-width: 100%!important; min-height: 52px; padding: 13px 15px; font: 400 15px/1.5 var(--bn-font-body); color: var(--bn-ink); background: #fffdfa; border: 1px solid #cfc4b5; border-radius: 0; box-shadow: none; }
.bn-contact-layout__form .wpforms-field textarea { min-height: 150px; resize: vertical; }
.bn-contact-layout__form .wpforms-field input:focus, .bn-contact-layout__form .wpforms-field textarea:focus { border-color: var(--bn-ink); }
.bn-contact-layout__form button[type="submit"], .bn-contact-layout__form input[type="submit"] { display: inline-block; background: var(--bn-ink); color: white; min-height: 55px; border: 0; border-radius: 0; padding: 15px 32px; font: 700 11px var(--bn-font-body); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.bn-contact-layout__form button[type="submit"]:hover { background: #765a40; }
.bn-contact-layout__form .wpforms-error { font-size: 13px; line-height: 1.4; }

/* 06 / Journal and single-article typography. */
.bn-journal { padding-block: clamp(87px, 8vw, 130px); }
.bn-journal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(30px, 4vw, 62px); }
.bn-journal-card { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }
.bn-journal-card__image { width: 100%; background: #e7e0d7; overflow: hidden; margin-bottom: 23px; }
.bn-journal-card__image img { width: 100%; aspect-ratio: 1.12; height: auto; object-fit: cover; display: block; transition: transform .45s; }
.bn-journal-card:hover .bn-journal-card__image img { transform: scale(1.04); }
.bn-journal-card h3 { font: 400 clamp(32px, 3.2vw, 48px)/1.07 var(--bn-font-display); color: var(--bn-ink); margin: 15px 0 15px; overflow-wrap: break-word; hyphens: auto; }
.bn-journal-card p { font: 400 14px/1.85 var(--bn-font-body); color: var(--bn-muted); margin: 0 0 20px; }
.bn-journal-card__more { font: 700 11px/1.4 var(--bn-font-body); letter-spacing: .13em; text-transform: uppercase; border-bottom: 1px solid #9d856e; padding-bottom: 7px; margin-top: auto; }
.bn-pagination { display: flex; align-items: center; gap: 11px; padding-top: 50px; font-size: 13px; }
.bn-pagination .page-numbers { display: inline-grid; place-content: center; min-width: 36px; min-height: 36px; border: 1px solid var(--bn-line); padding: 7px; }
.bn-pagination .current { background: var(--bn-ink); color: white; }
.bn-article-page { max-width: 1200px; }
.bn-article { padding-block: clamp(83px, 9vw, 145px); }
.bn-article__header { max-width: 1010px; margin-bottom: 50px; }
.bn-article__header h1 { font: 400 clamp(64px, 8vw, 119px)/.89 var(--bn-font-display); letter-spacing: -.04em; margin: 24px 0; color: var(--bn-ink); }
.bn-article__lead { font: 400 18px/1.8 var(--bn-font-body); color: var(--bn-muted); max-width: 780px; }
.bn-article__cover { margin: 0 auto 75px; background: #eee8df; }
.bn-article__cover img { width: 100%; display: block; max-height: 850px; object-fit: contain; }
.bn-article__content { max-width: 760px; margin: 0 auto; }
.bn-article__footer { display: flex; justify-content: space-between; gap: 30px; border-top: 1px solid var(--bn-line); max-width: 760px; margin: 70px auto 0; padding-top: 25px; }
.bn-prose { color: #49443f; font: 400 16px/1.95 var(--bn-font-body); }
.bn-prose p { margin: 0 0 22px; }
.bn-prose h2 { font: 400 clamp(40px, 4.3vw, 64px)/1.03 var(--bn-font-display); color: var(--bn-ink); margin: 55px 0 22px; }
.bn-prose h3 { font: 500 clamp(30px, 3vw, 42px)/1.1 var(--bn-font-display); color: var(--bn-ink); margin: 35px 0 15px; }
.bn-prose img { height: auto; }
.bn-prose a { color: #74553b!important; text-decoration: underline!important; text-underline-offset: 3px; }
.bn-prose ul, .bn-prose ol { margin: 0 0 25px 22px; }
.bn-prose li { margin-bottom: 8px; }
.bn-prose blockquote { border-left: 2px solid var(--bn-brass); padding-left: 28px; font: italic 32px/1.25 var(--bn-font-display); }
.bn-generic-page { padding-block: clamp(74px, 8vw, 125px); }
.bn-generic-page__heading { max-width: 1050px; padding-bottom: 45px; margin-bottom: 45px; border-bottom: 1px solid var(--bn-line); }
.bn-generic-page__heading h1 { font: 400 clamp(59px, 7vw, 105px)/.92 var(--bn-font-display); letter-spacing: -.04em; margin: 18px 0 0; }
.bn-generic-page>.bn-prose { max-width: 860px; }
.bn-generic-page--commerce>.bn-prose { max-width: none; }
.bn-missing { padding-block: 145px 180px; }
.bn-missing h1 { font: 400 clamp(70px, 9vw, 135px)/.8 var(--bn-font-display); margin: 25px 0 35px; }
.bn-missing h1 em { color: #97795e; }
.bn-missing>p:not(.bn-overline) { max-width: 500px; font-size: 16px; line-height: 1.8; margin: 0 0 30px; }

/* 07 / WooCommerce archives and product details — native behaviour, premium look. */
.bn-store { background: var(--bn-stone); }
.bn-store-hero { background: var(--bn-paper); border-bottom: 1px solid var(--bn-line); padding: clamp(65px, 6.5vw, 103px) 0 58px; }
.bn-store-hero__row { display: flex; align-items: end; justify-content: space-between; gap: 55px; }
.bn-store-hero__row h1 { font: 400 clamp(72px, 8vw, 119px)/.83 var(--bn-font-display); letter-spacing: -.048em; color: var(--bn-ink); margin: 21px 0 0; }
.bn-store-hero__row p { max-width: 445px; color: var(--bn-muted); font: 400 16px/1.85 var(--bn-font-body); margin: 0 0 1px; }
.bn-store-categories { display: flex; align-items: center; gap: clamp(20px, 3vw, 52px); padding-top: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--bn-line); flex-wrap: wrap; }
.bn-store-categories a { color: #766f68!important; font: 600 11px/1.3 var(--bn-font-body); letter-spacing: .13em; text-transform: uppercase; padding-bottom: 8px; border-bottom: 1px solid transparent; }
.bn-store-categories a:hover, .bn-store-categories a[aria-current="page"] { color: var(--bn-ink)!important; border-bottom-color: var(--bn-ink); }
.bn-store__content { padding-block: 50px 130px; }
.bn-store--single .bn-store__content { padding-top: 55px; }
.bn-site.woocommerce-page #content, .bn-site .woocommerce, .bn-site .woocommerce-page { font-family: var(--bn-font-body); }
.bn-store .woocommerce-result-count { color: #777068; font: 500 12px/1.5 var(--bn-font-body); letter-spacing: .05em; margin: 16px 0 42px; }
.bn-store .woocommerce-ordering { margin: 0 0 42px; }
.bn-store .woocommerce-ordering select { color: var(--bn-ink); background: var(--bn-paper); font: 500 13px var(--bn-font-body); border: 1px solid var(--bn-line); border-radius: 0; padding: 13px 17px; min-height: 45px; }
.bn-store ul.products { display: grid!important; grid-template-columns: repeat(3, minmax(0, 1fr))!important; gap: 73px clamp(24px, 4vw, 62px)!important; align-items: start; margin: 0!important; padding: 0!important; list-style: none; }
.bn-store ul.products::before, .bn-store ul.products::after { display: none!important; content: none!important; }
.bn-store ul.products li.product { box-sizing: border-box; float: none!important; clear: none!important; min-width: 0; width: 100%!important; max-width: none!important; margin: 0!important; padding: 0!important; background: transparent!important; text-align: left!important; border: 0!important; }
.bn-store ul.products li.product a.woocommerce-LoopProduct-link { display: block; }
.bn-store ul.products li.product .astra-shop-thumbnail-wrap { display: block; overflow: hidden; background: var(--bn-clay); padding: clamp(16px, 2vw, 36px); margin: 0 0 21px; }
.bn-store ul.products li.product .astra-shop-thumbnail-wrap img, .bn-store ul.products li.product a img, .bn-store ul.products li.product img { display: block; margin: 0!important; width: 100%!important; aspect-ratio: 1/1; height: auto!important; min-height: 0; object-fit: contain!important; object-position: center!important; background: transparent; transition: transform .4s ease; }
.bn-store ul.products li.product:hover img { transform: scale(1.025); }
.bn-store ul.products li.product .woocommerce-loop-product__title { font: 500 clamp(33px, 3vw, 46px)/1.08 var(--bn-font-display)!important; color: var(--bn-ink)!important; margin: 0 0 12px!important; padding: 0!important; min-height: 0!important; overflow-wrap: break-word; }
.bn-store ul.products li.product .price { font: 500 14px/1.4 var(--bn-font-body)!important; color: #625b55!important; margin: 0 0 14px; }
.bn-store ul.products li.product .star-rating { color: #94775b; margin-bottom: 14px; }
.bn-store ul.products li.product a.button, .bn-store ul.products li.product button.button { display: inline-flex; width: fit-content; border: 0; border-bottom: 1px solid var(--bn-ink); border-radius: 0; background: transparent!important; color: var(--bn-ink)!important; padding: 10px 0 8px!important; margin: 2px 0 0!important; font: 700 10px/1.4 var(--bn-font-body)!important; letter-spacing: .13em; text-transform: uppercase; min-height: 0; box-shadow: none; }
.bn-store ul.products li.product a.button:hover { color: #967759!important; border-bottom-color: #967759; }
.bn-store ul.products li.product .added_to_cart { margin-left: 13px; font-size: 11px; color: #7a5c42; }
.bn-store span.onsale { border-radius: 0; background: var(--bn-ink); color: white; font: 700 10px var(--bn-font-body); letter-spacing: .12em; min-width: 0; min-height: 0; line-height: 1.3; padding: 9px 12px; }
.bn-store .woocommerce-breadcrumb { color: #8b8177; font: 500 11px/1.6 var(--bn-font-body); text-transform: uppercase; letter-spacing: .09em; margin: 0 0 37px; }
.bn-store .woocommerce-breadcrumb a { color: #635a50; }
.bn-breadcrumb-sep { display: inline-block; padding: 0 10px; color: #b29f89; }
.bn-store nav.woocommerce-pagination ul { border: 0; display: flex; gap: 7px; }
.bn-store nav.woocommerce-pagination ul li { border: 0; }
.bn-store nav.woocommerce-pagination ul li a, .bn-store nav.woocommerce-pagination ul li span { border: 1px solid var(--bn-line); padding: 13px 16px; background: transparent; color: var(--bn-ink); }
.bn-store nav.woocommerce-pagination ul li span.current { background: var(--bn-ink); color: #fff; }
.bn-store .woocommerce-info, .bn-store .woocommerce-message { background: #eae4d9; border-top-color: #b79a7d; color: var(--bn-ink); padding: 23px; }
.bn-store .woocommerce-info::before, .bn-store .woocommerce-message::before { color: #856848; }
.bn-store .woocommerce-error { background: #f8e9e6; }
/* Single product media: do not crop the artwork or distort its proportions. */
.bn-store div.product { display: block; }
.bn-store div.product div.images { width: min(58%, 760px)!important; margin-bottom: 60px; }
.bn-store div.product div.summary { width: 37%!important; float: right; margin-bottom: 60px; }
.bn-store div.product div.images .woocommerce-product-gallery__wrapper { background: #ebe4da; }
.bn-store div.product div.images img { display: block; object-fit: contain!important; object-position: center; width: 100%; height: auto; max-height: 760px; background: #ebe4da; }
.bn-store div.product div.images .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 15px; }
.bn-store div.product div.images .flex-control-thumbs li { max-width: 100px; }
.bn-store div.product .product_title { font: 400 clamp(55px, 5vw, 85px)/.95 var(--bn-font-display)!important; letter-spacing: -.04em; color: var(--bn-ink)!important; margin: 8px 0 22px; }
.bn-store div.product p.price, .bn-store div.product span.price { font: 500 22px/1.4 var(--bn-font-body); color: var(--bn-ink); margin-bottom: 25px; }
.bn-store div.product .woocommerce-product-details__short-description { color: #615951; font: 400 15px/1.9 var(--bn-font-body); margin: 0 0 26px; }
.bn-store div.product .stock { color: #4b674a; font-size: 13px; }
.bn-store div.product .out-of-stock { color: #96604f; }
.bn-store div.product form.cart { margin: 25px 0; display: flex; gap: 10px; flex-wrap: wrap; }
.bn-store div.product form.cart .quantity input { border-radius: 0; border-color: var(--bn-line); background: #fffdfa; min-height: 50px; }
.bn-store div.product form.cart .single_add_to_cart_button, .bn-store a.button, .bn-store button.button { border-radius: 0; min-height: 52px; background: var(--bn-ink); border: 1px solid var(--bn-ink); color: #fff; font: 700 11px var(--bn-font-body); letter-spacing: .12em; text-transform: uppercase; padding: 17px 24px; }
.bn-store div.product form.cart .single_add_to_cart_button:hover, .bn-store a.button:hover, .bn-store button.button:hover { background: #69513a; border-color: #69513a; color: #fff; }
.bn-store div.product .product_meta { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--bn-line); color: #6f685f; font: 400 12px/2 var(--bn-font-body); }
.bn-store div.product .product_meta a { color: #55483a; text-decoration: underline; text-underline-offset: 3px; }
.bn-store div.product .woocommerce-tabs { clear: both; padding-top: 25px; margin-top: 40px; border-top: 1px solid var(--bn-line); }
.bn-store div.product .woocommerce-tabs ul.tabs { padding-left: 0; margin: 0 0 32px; border: 0; }
.bn-store div.product .woocommerce-tabs ul.tabs::before { border-color: var(--bn-line); }
.bn-store div.product .woocommerce-tabs ul.tabs li { border: 0; border-radius: 0; background: transparent; padding: 0 26px 0 0; }
.bn-store div.product .woocommerce-tabs ul.tabs li::before, .bn-store div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.bn-store div.product .woocommerce-tabs ul.tabs li a { color: #7e756b; font: 700 11px var(--bn-font-body); text-transform: uppercase; letter-spacing: .11em; }
.bn-store div.product .woocommerce-tabs ul.tabs li.active a { color: var(--bn-ink); }
.bn-store div.product .woocommerce-tabs h2, .bn-store .related.products>h2, .bn-store .upsells.products>h2 { font: 400 clamp(39px, 4vw, 60px)/1 var(--bn-font-display); color: var(--bn-ink); margin: 12px 0 28px; }
.bn-store div.product .woocommerce-tabs .panel { font: 400 15px/1.9 var(--bn-font-body); color: #514b45; max-width: 920px; }
.bn-store div.product .woocommerce-tabs .panel p { margin-bottom: 18px; }
.bn-store div.product .woocommerce-tabs .panel a { color: #7d5b3d; text-decoration: underline; }
.bn-store .related.products, .bn-store .upsells.products { clear: both; padding-top: 60px; }

/* 08 / Checkout, cart and account pages: style only, do not alter business logic. */
.bn-site .woocommerce form .form-row input.input-text, .bn-site .woocommerce form .form-row textarea, .bn-site .woocommerce input.input-text, .bn-site .woocommerce select, .bn-site .woocommerce .select2-container .select2-selection { background: #fffdfa; border: 1px solid #cfc5b7; border-radius: 0; min-height: 45px; font-size: 15px; color: var(--bn-ink); }
.bn-site .woocommerce form .form-row label { font-size: 13px; font-weight: 600; color: var(--bn-ink); }
.bn-site .woocommerce form.checkout h3, .bn-site .woocommerce .cart_totals h2 { font: 400 44px var(--bn-font-display); color: var(--bn-ink); }
.bn-site .woocommerce table.shop_table { border: 1px solid var(--bn-line); border-collapse: separate; }
.bn-site .woocommerce table.shop_table th, .bn-site .woocommerce table.shop_table td { border-color: var(--bn-line); padding: 13px; }
.bn-site .woocommerce .cart_totals, .bn-site .woocommerce-checkout #order_review { background: #eee9df; padding: 27px; }
.bn-site .woocommerce #payment { background: #eee8de; border-radius: 0; }
.bn-site .woocommerce #payment div.payment_box { background: #e0d8ca; color: var(--bn-ink); }
.bn-site .woocommerce #payment div.payment_box::before { border-bottom-color: #e0d8ca; }
.bn-site .woocommerce .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 35px; padding: 0; }
.bn-site .woocommerce .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--bn-line); padding: 11px 0; }
.bn-site .woocommerce a.button, .bn-site .woocommerce button.button, .bn-site .woocommerce input.button { color: #fff; background: var(--bn-ink); border: 1px solid var(--bn-ink); border-radius: 0; font: 700 11px var(--bn-font-body); text-transform: uppercase; letter-spacing: .1em; padding: 14px 19px; }
.bn-site .woocommerce a.button:hover, .bn-site .woocommerce button.button:hover, .bn-site .woocommerce input.button:hover { background: #69513a; color: #fff; }
.bn-site .bn-generic-page--commerce .woocommerce { max-width: 1150px; }

/* 09 / Full-width, carefully structured footer — strong contrast everywhere. */
.bn-footer { background: var(--bn-deep); color: #f8f3ea; }
.bn-footer__inner { max-width: 1580px; padding: 0 var(--bn-gutter); margin: 0 auto; }
.bn-footer__lead { padding: clamp(95px, 10vw, 155px) 0 80px; border-bottom: 1px solid #595045; display: flex; align-items: end; justify-content: space-between; gap: 50px; }
.bn-footer .bn-overline { color: #d1b393; }
.bn-footer__lead h2 { color: #f9f4ec!important; font: 400 clamp(72px, 8vw, 133px)/.8 var(--bn-font-display); letter-spacing: -.048em; margin: 25px 0 0; }
.bn-footer__lead h2 em { color: #d2b89a; }
.bn-footer__contact { display: flex; align-items: center; justify-content: space-between; gap: 40px; min-width: 265px; padding: 19px 0; border-bottom: 1px solid #b9a284; color: #f8f3ea!important; font: 650 11px/1.4 var(--bn-font-body); text-transform: uppercase; letter-spacing: .1em; }
.bn-footer__contact:hover { color: #d5b998!important; }
.bn-footer__contact span { font-size: 21px; }
.bn-footer__columns { padding: 74px 0 85px; display: grid; grid-template-columns: 1.85fr 1fr 1fr 1.2fr; gap: clamp(28px, 4.6vw, 75px); }
.bn-footer__brand { display: block; color: #f9f4ec!important; font: 400 clamp(42px, 3.7vw, 62px)/.9 var(--bn-font-display); letter-spacing: -.04em; margin-bottom: 25px; white-space: nowrap; }
.bn-footer__brand em { color: #d1b393; }
.bn-footer__about p, .bn-footer__note p { color: #c9bfb1; line-height: 1.85; font-size: 13px; max-width: 300px; margin-bottom: 22px; }
.bn-footer__links h3, .bn-footer__note h3 { color: #d1b393!important; font: 700 10px/1.5 var(--bn-font-body); text-transform: uppercase; letter-spacing: .19em; margin: 0 0 23px; }
.bn-footer__links a { display: block; color: #e9e0d3!important; width: fit-content; font: 400 13px/1.55 var(--bn-font-body); margin: 0 0 13px; }
.bn-footer__links a:hover { color: #d1b393!important; }
.bn-footer__social, .bn-footer__note a { display: inline-block; font: 650 11px var(--bn-font-body); text-transform: uppercase; letter-spacing: .11em; color: #f8f3ea!important; padding-bottom: 7px; border-bottom: 1px solid #ab9072; }
.bn-footer__bottom { display: flex; justify-content: space-between; gap: 20px; padding: 22px 0 32px; border-top: 1px solid #595045; font: 500 10px/1.5 var(--bn-font-body); letter-spacing: .13em; color: #b9ae9f; text-transform: uppercase; }

/* 10 / Responsive rhythm — typesetting, not merely shrinking everything. */
@media (max-width: 1330px) {
  .bn-header__inner { gap: 20px; }
  .bn-primary-nav { gap: 19px; }
  .bn-header__gallery { padding: 14px 13px; gap: 15px; }
  .bn-logo { min-width: 170px; }
  .bn-logo__main { font-size: 36px; }
  .bn-logo__second { font-size: 35px; }
  .bn-hero__words { padding-left: var(--bn-gutter); padding-right: 35px; }
  .bn-hero h1 { font-size: clamp(83px, 8.3vw, 126px); }
}
@media (max-width: 1050px) {
  .bn-header__inner { min-height: 90px; }
  .bn-primary-nav, .bn-header__gallery { display: none; }
  .bn-menu-button { display: inline-flex; }
  .bn-mobile-nav:not([hidden]) { display: block; }
  .bn-header__actions { margin-left: auto; gap: 23px; }
  .bn-hero { min-height: 630px; }
  .bn-hero h1 { font-size: clamp(72px, 8vw, 102px); white-space: normal; }
  .bn-hero__words { padding-block: 95px 85px; }
  .bn-hero__art { padding-inline: 35px; }
  .bn-category-bar__inner { gap: 22px; }
  .bn-category-bar .bn-overline { display: none; }
  .bn-story-bottom__grid { grid-template-columns: 1fr 1fr; }
  .bn-story-bottom__grid>.bn-overline { grid-column: 1 / -1; }
  .bn-store ul.products { grid-template-columns: repeat(3, minmax(0, 1fr))!important; gap: 55px 25px!important; }
  .bn-store ul.products li.product .woocommerce-loop-product__title { font-size: 34px!important; }
  .bn-footer__columns { grid-template-columns: 1.4fr 1fr 1fr; }
  .bn-footer__note { grid-column: 1 / -1; }
}
@media (max-width: 800px) {
  .bn-header__inner { min-height: 84px; }
  .bn-hero { display: flex; flex-direction: column; }
  .bn-hero__words { padding: 86px var(--bn-gutter) 60px; }
  .bn-hero h1 { font-size: clamp(80px, 13.5vw, 118px); margin: 32px 0; }
  .bn-hero__index { margin-top: 32px; }
  .bn-hero__art { min-height: 440px; padding: 38px var(--bn-gutter) 35px; }
  .bn-hero__art>a img { max-height: 520px; width: min(100%, 560px); }
  .bn-category-bar__inner { flex-wrap: wrap; justify-content: flex-start; gap: 7px 25px; padding-block: 21px; }
  .bn-manifesto { padding-block: 110px; }
  .bn-artwork-grid { gap: 25px; }
  .bn-artwork-card--offset { margin-top: 90px; }
  .bn-poster-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 33px 22px; }
  .bn-artist { grid-template-columns: 1fr; }
  .bn-artist__image { min-height: 0; max-height: 620px; }
  .bn-artist__image img { height: 550px; }
  .bn-artist__content { padding-block: 90px; }
  .bn-inner-hero__columns { grid-template-columns: 1fr; gap: 25px; }
  .bn-inner-hero__columns>p { max-width: 650px; }
  .bn-story { grid-template-columns: 1fr; gap: 48px; }
  .bn-story__portrait img { max-height: 600px; object-fit: cover; }
  .bn-contact-layout { grid-template-columns: 1fr; gap: 60px; }
  .bn-contact-layout__intro { padding: 52px; }
  .bn-journal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 50px 25px; }
  .bn-store-hero__row { flex-direction: column; align-items: start; gap: 17px; }
  .bn-store ul.products { grid-template-columns: repeat(2, minmax(0, 1fr))!important; gap: 52px 22px!important; }
  .bn-store div.product div.images, .bn-store div.product div.summary { width: 100%!important; float: none; }
  .bn-store div.product div.summary { max-width: 650px; margin: 15px 0 60px; }
  .bn-footer__lead { display: block; }
  .bn-footer__contact { width: fit-content; margin-top: 38px; }
}
@media (max-width: 600px) {
  :root { --bn-gutter: 22px; }
  .bn-header__inner { padding: 14px 21px; min-height: 80px; }
  .bn-logo { min-width: 145px; }
  .bn-logo__main { font-size: 32px; }
  .bn-logo__second { font-size: 31px; margin-left: 30px; }
  .bn-logo__second small { display: none; }
  .bn-header__actions { gap: 15px; }
  .bn-hero__words { padding-top: 67px; padding-bottom: 50px; }
  .bn-hero h1 { font-size: clamp(65px, 15.6vw, 94px); line-height: .82; }
  .bn-hero__actions { align-items: flex-start; flex-direction: column; gap: 22px; }
  .bn-hero__art { min-height: 355px; }
  .bn-hero__caption { font-size: 9px; letter-spacing: .05em; }
  .bn-category-bar__inner { display: grid; grid-template-columns: 1fr; gap: 0; }
  .bn-category-bar__inner>a { border-bottom: 1px solid var(--bn-line); padding: 13px 0; }
  .bn-category-bar__inner>a:last-child { border-bottom: 0; }
  .bn-manifesto { padding-block: 85px 100px; }
  .bn-manifesto h2 { font-size: clamp(55px, 11.8vw, 81px); margin: 25px 0; }
  .bn-manifesto>p:last-child { font-size: 15px; }
  .bn-featured { padding-bottom: 88px; }
  .bn-section-header { flex-direction: column; align-items: start; gap: 24px; margin-bottom: 32px; }
  .bn-section-header h2 { font-size: 55px; }
  .bn-artwork-grid { grid-template-columns: 1fr; gap: 47px; }
  .bn-artwork-card--offset { margin: 0; }
  .bn-artwork-card__visual { padding: 32px; }
  .bn-artwork-card__meta h3 { font-size: 42px; }
  .bn-poster-section { padding-block: 88px; }
  .bn-poster-grid { gap: 30px 15px; }
  .bn-poster__visual { padding: 13px; }
  .bn-poster__detail { flex-direction: column; gap: 7px; }
  .bn-poster__detail h3 { font-size: 33px; }
  .bn-artist__image img { height: 390px; }
  .bn-artist__content { padding: 83px var(--bn-gutter); }
  .bn-artist__content h2 { font-size: clamp(65px, 13vw, 88px); }
  .bn-belief { padding-block: 90px; }
  .bn-belief h2 { font-size: clamp(54px, 11vw, 75px); }
  .bn-contact-strip { display: block; padding-block: 80px; }
  .bn-contact-strip .bn-button { margin-top: 32px; }
  .bn-inner-hero { padding-block: 80px; }
  .bn-inner-hero h1 { font-size: clamp(68px, 12.4vw, 96px); margin-top: 25px; }
  .bn-story { padding-block: 85px; }
  .bn-story__content h2 { font-size: 65px; }
  .bn-story-bottom__grid { grid-template-columns: 1fr; gap: 25px; }
  .bn-story-bottom__grid>.bn-overline { grid-column: auto; }
  .bn-contact-layout { padding-block: 75px; }
  .bn-contact-layout__intro { padding: 36px 27px; }
  .bn-contact-layout__intro h2, .bn-contact-layout__form h2 { font-size: 58px; }
  .bn-journal { padding-block: 82px; }
  .bn-journal-grid { grid-template-columns: 1fr; gap: 54px; }
  .bn-journal-card h3 { font-size: 43px; }
  .bn-article { padding-block: 75px; }
  .bn-article__header h1 { font-size: clamp(55px, 12vw, 83px); }
  .bn-article__footer { display: grid; justify-content: start; }
  .bn-store-hero { padding-block: 65px 45px; }
  .bn-store-hero__row h1 { font-size: clamp(71px, 13vw, 100px); }
  .bn-store__content { padding-top: 32px; padding-bottom: 100px; }
  .bn-store-categories { gap: 15px 19px; }
  .bn-store .woocommerce-ordering, .bn-store .woocommerce-result-count { width: 100%; float: none; margin: 0 0 16px; }
  .bn-store ul.products { grid-template-columns: 1fr!important; gap: 48px!important; }
  .bn-store ul.products li.product .astra-shop-thumbnail-wrap { padding: 32px; }
  .bn-store ul.products li.product .woocommerce-loop-product__title { font-size: 41px!important; }
  .bn-store div.product .product_title { font-size: 58px!important; }
  .bn-store div.product form.cart { gap: 12px; }
  .bn-footer__lead { padding-top: 95px; padding-bottom: 65px; }
  .bn-footer__lead h2 { font-size: clamp(65px, 12vw, 95px); }
  .bn-footer__columns { grid-template-columns: 1fr 1fr; gap: 43px 26px; padding-block: 67px; }
  .bn-footer__about { grid-column: 1 / -1; }
  .bn-footer__note { grid-column: 1 / -1; }
  .bn-footer__brand { font-size: 50px; }
  .bn-footer__bottom { flex-direction: column; gap: 7px; }
}
@media (max-width: 365px) {
  .bn-logo { min-width: 125px; }
  .bn-logo__main { font-size: 29px; }
  .bn-logo__second { font-size: 28px; }
  .bn-header__actions { gap: 7px; }
  .bn-menu-button { width: 40px; height: 41px; }
  .bn-hero h1 { font-size: 61px; }
  .bn-poster-grid { grid-template-columns: 1fr; }
  .bn-contact-layout__intro h2 { font-size: 52px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms!important; animation-duration: .01ms!important; }
}

/* WooCommerce templates render ul.products directly inside .bn-store (no nested .woocommerce wrapper).
   Selectors above intentionally target that actual markup. */
/* QA fixes: category grid must clear WooCommerce sort floats; mobile contact title must fit. */
.bn-store ul.products { clear: both!important; }
@media(max-width: 600px) { .bn-inner-hero--contact h1 { font-size: clamp(50px, 12vw, 69px)!important; } }

/* Editors may assign a native WordPress menu to this registered theme location. */
.bn-nav-items { list-style: none; display: flex; align-items: center; gap: clamp(16px, 2vw, 35px); margin: 0; padding: 0; }
.bn-nav-items li { margin: 0; padding: 0; }
.bn-nav-items li.current-menu-item>a::after { right: 0; }
@media (max-width: 1330px) { .bn-nav-items { gap: 19px; } }
/* Very narrow displays (320px): long Polish words must not push the viewport. */
@media(max-width:365px) {
  .bn-contact-strip h2 { font-size: clamp(38px, 11vw, 45px); }
  .bn-footer__brand { font-size: clamp(37px, 11vw, 46px); }
}
/* Legacy legal / delivery content: normalize editorial type despite old inline CMS styles. */
.bn-generic-page:not(.bn-generic-page--commerce) .bn-prose h2,
.bn-generic-page:not(.bn-generic-page--commerce) .bn-prose h3,
.bn-generic-page:not(.bn-generic-page--commerce) .bn-prose h4 {
  font-family: var(--bn-font-display)!important;
  font-size: clamp(33px, 3.8vw, 52px)!important;
  font-weight: 500!important;
  line-height: 1.07!important;
  letter-spacing: -.02em!important;
  color: var(--bn-ink)!important;
  margin-block: 37px 17px!important;
}
.bn-generic-page:not(.bn-generic-page--commerce) .bn-prose p[style],
.bn-generic-page:not(.bn-generic-page--commerce) .bn-prose li[style] {
  font-family: var(--bn-font-body)!important;
  font-size: 15px!important;
  line-height: 1.9!important;
  color: #514b45!important;
  margin-bottom: 18px!important;
}
.bn-generic-page .bn-prose table { width: 100%; border-collapse: collapse; }
.bn-generic-page .bn-prose th, .bn-generic-page .bn-prose td { padding: 12px 14px; border: 1px solid var(--bn-line); text-align: left; }
/* WooCommerce block-based cart/checkout, if the site's pages use Blocks rather than shortcodes. */
.bn-generic-page--commerce .wc-block-components-button,
.bn-generic-page--commerce .wc-block-cart__submit-button,
.bn-generic-page--commerce .wc-block-components-checkout-place-order-button {
  color: white!important; background: var(--bn-ink)!important; border-radius: 0!important;
  min-height: 52px; font: 700 12px var(--bn-font-body); letter-spacing: .07em;
}
.bn-generic-page--commerce .wc-block-components-text-input input,
.bn-generic-page--commerce .wc-block-components-combobox input,
.bn-generic-page--commerce .wc-block-components-form .wc-block-components-text-input input {
  border-radius: 0!important; border-color: var(--bn-line)!important; background: #fffdfa!important;
}
.bn-generic-page--commerce .wc-block-components-sidebar,
.bn-generic-page--commerce .wc-block-cart-items { background: transparent; }
