/* ============================================================
   Content pages (templates/page/page.php, components/page-*.php).
   After the canvas "Poster Bazaar — poprawki UI/UX stron treści"
   (Oct 2026): one H1 (44/34/33 px), sections in H2 28 px, Caslon
   always 400, reading column 720 px inside the 1700 px container,
   buttons 18/700 and 48 px tall without capitals, the one beige.
   ============================================================ */

.pb-page {
    --pb-ink: #23231f;
    --pb-heading: #2a2a2a;
    --pb-body: #3a3a34;
    --pb-muted: #6b6a62;
    --pb-line: #e8e1d5;
    --pb-line-warm: #e5ded2;
    --pb-field: rgba(0, 0, 0, .1);
    display: flex;
    flex-direction: column;
    gap: 56px;
    /* Top gap: the shared --pb-top-gap on .wd-content-layout (style.css). */
    padding: 0 0 32px;
    color: var(--pb-body);
    font-size: 16px;
    line-height: 1.6;
}

.pb-page h1,
.pb-page h2,
.pb-page h3 {
    margin: 0;
    color: var(--pb-heading);
    font-family: var(--font-heading);
    font-weight: 400;
}

.pb-page p {
    margin: 0;
}

.pb-page a:not(.pb-btn) {
    color: var(--color-primary);
}

.pb-page a:not(.pb-btn):hover {
    color: var(--color-primary-dark);
}

.pb-page :focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
}

/* ---- Page head -------------------------------------------------- */

.pb-page__head {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 720px;
}

.pb-crumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    color: #767676;
    font-size: 12px;
    line-height: 1.6;
}

.pb-page .pb-crumbs a {
    color: #767676;
}

.pb-crumbs [aria-current] {
    color: var(--pb-ink);
}

.pb-page__title {
    font-size: 44px;
    line-height: 1.08;
    letter-spacing: -.005em;
}

.pb-page__lead {
    color: var(--pb-body);
    font-size: 18px;
}

.pb-page__intro {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.pb-page__eyebrow {
    color: var(--pb-muted);
    font-size: 13px;
    font-weight: 600;
}

.pb-page__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 4px;
}

/* With a photo: copy left, photo right, the copy up to 640px. */
.pb-page__head--split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 56px;
    align-items: center;
    max-width: none;
}

.pb-page__head--split .pb-page__intro {
    max-width: 640px;
}

.pb-page__media {
    overflow: hidden;
    border-radius: 12px;
    aspect-ratio: 4 / 3;
    background: var(--color-surface-warm);
}

.pb-page__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* The crumbs sit above the head, as on every other page; closer to it
   than one section to the next. */
.pb-page > .pb-crumbs + .pb-page__head {
    margin-top: -36px;
}

/* Facts with icons under the lead, two columns. */
.pb-page__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 24px;
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
}

.pb-page__facts li {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--pb-body);
    font-size: 15px;
}

.pb-page__fact-icon {
    display: inline-flex;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--color-surface-warm);
    color: var(--color-primary);
}

.pb-page__fact-icon svg {
    width: 22px;
    height: 22px;
}

.pb-page__facts li {
    gap: 12px;
}

/* ---- Buttons ---------------------------------------------------- */

.pb-page .pb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 0 24px;
    border: 0;
    border-radius: var(--radius-base, 5px);
    background: var(--color-primary);
    color: #fff;
    font-family: var(--font-body);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
    text-transform: none;
    cursor: pointer;
    transition: background-color var(--transition-base, .2s);
}

.pb-page .pb-btn:hover,
.pb-page .pb-btn:focus-visible {
    background: var(--color-primary-dark);
    color: #fff;
}

.pb-page .pb-btn--secondary {
    border: 1.5px solid var(--pb-heading);
    background: #fff;
    color: var(--pb-heading);
}

.pb-page .pb-btn--secondary:hover,
.pb-page .pb-btn--secondary:focus-visible {
    background: var(--color-surface-warm);
    color: var(--pb-heading);
}

.pb-page .pb-btn[disabled] {
    opacity: .7;
    cursor: progress;
}

/* ---- Form fields ------------------------------------------------ */

.pb-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 24px;
    align-content: start;
}

.pb-form__field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pb-form__field--wide,
.pb-form__note,
.pb-form__actions {
    grid-column: 1 / -1;
}

.pb-form label {
    color: var(--pb-ink);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
}

.pb-page .pb-form input[type="text"],
.pb-page .pb-form input[type="email"],
.pb-page .pb-form select,
.pb-page .pb-form textarea {
    width: 100%;
    height: 48px;
    box-sizing: border-box;
    padding: 0 14px;
    border: 1px solid var(--pb-field);
    border-radius: var(--radius-base, 5px);
    background-color: #fff;
    color: var(--pb-ink);
    font-family: var(--font-body);
    font-size: 16px;
    box-shadow: none;
}

.pb-page .pb-form textarea {
    height: auto;
    min-height: 180px;
    padding: 12px 14px;
    line-height: 1.5;
    resize: vertical;
}

.pb-page .pb-form input:focus,
.pb-page .pb-form select:focus,
.pb-page .pb-form textarea:focus {
    border-color: var(--color-primary);
}

.pb-page .pb-form [aria-invalid="true"] {
    border-color: var(--color-error-text);
}

.pb-form__hint,
.pb-form__note {
    color: var(--pb-muted);
    font-size: 13px;
    line-height: 1.5;
}

.pb-form__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 20px;
}

.pb-form__status {
    color: var(--pb-body);
    font-size: 15px;
}

.pb-form__status:empty {
    display: none;
}

.pb-form__status.is-ok {
    color: var(--color-success-text);
}

.pb-form__status.is-error {
    color: var(--color-error-text);
}

.pb-form__hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* ---- Contact: form beside the details --------------------------- */

.pb-contact {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: 56px;
    align-items: start;
}

.pb-contact__form {
    max-width: 760px;
}

.pb-contact__aside {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.pb-contact__card {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 28px;
    border-radius: 10px;
    background: var(--color-surface-warm);
}

.pb-page .pb-contact__title {
    font-size: 22px;
    line-height: 1.3;
}

.pb-contact__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-contact__item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin: 0;
    color: var(--pb-body);
}

.pb-contact__item > svg {
    flex: none;
    width: 20px;
    height: 20px;
    margin-top: 3px;
    color: var(--color-primary);
}

.pb-contact__label {
    display: block;
    color: var(--pb-muted);
    font-size: 13px;
}

.pb-contact__item a {
    font-weight: 600;
}

.pb-contact__hours {
    display: block;
    font-size: 15px;
}

.pb-contact__links ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-contact__links li {
    margin: 0;
}

.pb-page .pb-contact__links a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 52px;
    padding: 0 4px;
    border-bottom: 1px solid var(--pb-line-warm);
    color: var(--pb-ink);
    font-weight: 600;
    text-decoration: none;
}

.pb-page .pb-contact__links a:hover {
    color: var(--color-primary);
}

.pb-contact__links svg {
    flex: none;
    width: 18px;
    height: 18px;
}

/* ---- Sections --------------------------------------------------- */

.pb-sec {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.pb-page .pb-sec__title {
    font-size: 28px;
    line-height: 1.2;
}

/* A section on the beige band. */
.pb-band {
    padding: 40px 48px;
    border-radius: 12px;
    background: var(--color-surface-warm);
}

/* Title (and a sentence) on the left third, the rest on the right. */
.pb-aside {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 56px;
    align-items: start;
}

.pb-aside__head {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Cards: an icon and a label. */
.pb-cards__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-cards__item {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 20px;
    border: 1px solid var(--pb-line);
    border-radius: 10px;
    color: var(--pb-ink);
    font-weight: 600;
}

.pb-cards__item svg {
    width: 28px;
    height: 28px;
    color: var(--color-primary);
}

/* Call me back: copy beside one phone field. */
.pb-callback {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 48px;
    align-items: center;
}

.pb-callback__copy {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.pb-callback__form {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pb-callback__form label {
    color: var(--pb-ink);
    font-size: 15px;
    font-weight: 600;
}

.pb-callback__row {
    display: flex;
    gap: 8px;
}

.pb-page .pb-callback__row input {
    flex: 1 1 200px;
    min-width: 0;
    height: 48px;
    box-sizing: border-box;
    padding: 0 14px;
    border: 1px solid var(--pb-field);
    border-radius: var(--radius-base, 5px);
    background: #fff;
    color: var(--pb-ink);
    font-family: var(--font-body);
    font-size: 16px;
}

.pb-page .pb-callback__row input[aria-invalid="true"] {
    border-color: var(--color-error-text);
}

.pb-callback__row .pb-btn {
    flex: none;
    white-space: nowrap;
}

/* Checklist: two columns of ticks. */
.pb-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 40px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-checklist li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin: 0;
}

.pb-checklist svg {
    flex: none;
    width: 20px;
    height: 20px;
    margin-top: 3px;
    color: var(--color-primary);
}

/* Steps: the number in Caslon. */
.pb-steps {
    gap: 32px;
    padding: 48px;
}

.pb-steps__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 32px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-steps__item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
}

.pb-steps__number {
    color: var(--pb-ink);
    font-family: var(--font-heading);
    font-size: 44px;
    line-height: 1;
}

.pb-page .pb-steps__title {
    font-size: 22px;
    line-height: 1.3;
}

.pb-steps__item p {
    font-size: 15px;
}

/* Gallery: a static grid of 16:10 photos. */
.pb-gallery__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-gallery__item {
    overflow: hidden;
    margin: 0;
    border-radius: 10px;
    aspect-ratio: 16 / 10;
    background: var(--color-surface-warm);
}

.pb-gallery__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pb-gallery__head {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pb-gallery__head p {
    color: var(--pb-muted);
    font-size: 15px;
}

.pb-gallery__link {
    display: block;
    width: 100%;
    height: 100%;
    cursor: zoom-in;
}

.pb-gallery__link:hover .pb-gallery__img {
    transform: scale(1.02);
}

.pb-gallery__img {
    transition: transform .3s ease;
}

@media (prefers-reduced-motion: reduce) {
    .pb-gallery__img {
        transition: none;
    }
}

/* The photo larger, over a dark backdrop. */
.pb-lightbox {
    width: 100vw;
    max-width: none;
    height: 100vh;
    max-height: none;
    margin: 0;
    padding: 56px 72px;
    box-sizing: border-box;
    border: 0;
    background: transparent;
}

.pb-lightbox::backdrop {
    background: rgba(23, 23, 20, .9);
}

.pb-lightbox[open] {
    display: flex;
    align-items: center;
    justify-content: center;
}

.pb-lightbox__figure {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    max-width: 100%;
    max-height: 100%;
    margin: 0;
}

.pb-lightbox__img {
    display: block;
    max-width: 100%;
    max-height: calc(100vh - 150px);
    border-radius: 6px;
    object-fit: contain;
}

.pb-lightbox__caption {
    color: #f3efe8;
    font-size: 14px;
    text-align: center;
}

.pb-page .pb-lightbox__btn {
    position: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .14);
    color: #fff;
    cursor: pointer;
}

.pb-page .pb-lightbox__btn:hover,
.pb-page .pb-lightbox__btn:focus-visible {
    background: rgba(255, 255, 255, .26);
}

.pb-lightbox__btn svg {
    width: 24px;
    height: 24px;
}

.pb-lightbox__close {
    top: 16px;
    right: 16px;
}

.pb-lightbox__prev,
.pb-lightbox__next {
    top: 50%;
    transform: translateY(-50%);
}

.pb-lightbox__prev {
    left: 12px;
}

.pb-lightbox__next {
    right: 12px;
}

/* FAQ: an accordion. */
.pb-faq__item {
    border-bottom: 1px solid var(--pb-line);
}

.pb-faq__item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 56px;
    padding: 8px 0;
    list-style: none;
    cursor: pointer;
}

.pb-faq__item summary::-webkit-details-marker {
    display: none;
}

.pb-page .pb-faq__q {
    font-size: 18px;
    line-height: 1.35;
}

.pb-faq__item svg {
    flex: none;
    width: 20px;
    height: 20px;
    color: var(--pb-heading);
}

.pb-faq__item .pb-faq__minus,
.pb-faq__item[open] .pb-faq__plus {
    display: none;
}

.pb-faq__item[open] .pb-faq__minus {
    display: block;
}

.pb-faq__a {
    max-width: 720px;
    padding: 0 0 18px;
}

/* Inquiry: the form in a card. */
.pb-inquiry__form {
    padding: 32px;
    border: 1px solid var(--pb-line);
    border-radius: 10px;
}

.pb-inquiry__aside {
    font-size: 15px;
}

.pb-form__consent {
    display: flex;
    grid-column: 1 / -1;
    gap: 10px;
    align-items: flex-start;
}

.pb-page .pb-form__consent input {
    flex: none;
    width: 20px;
    height: 20px;
    margin: 2px 0 0;
    accent-color: var(--color-primary);
}

.pb-page .pb-form__consent label {
    color: var(--pb-body);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    cursor: pointer;
}

.pb-form__consent input[aria-invalid="true"] {
    outline: 2px solid var(--color-error-text);
    outline-offset: 2px;
}

/* ---- Profile (the Instagram bio): one narrow centred column ----- */

.pb-page--profile {
    gap: 32px;
    max-width: 480px;
    margin-inline: auto;
    padding-top: 32px;
}

.pb-page--profile .pb-page__head {
    align-items: center;
    text-align: center;
}

.pb-page--profile .pb-page__intro {
    align-items: center;
    gap: 8px;
}

.pb-page__logo {
    display: block;
    width: 88px;
    height: 88px;
    border: 1px solid var(--pb-line);
    border-radius: 50%;
    object-fit: cover;
}

.pb-page--profile .pb-page__title {
    margin-top: 8px;
    font-size: 28px;
    line-height: 1.15;
}

.pb-page--profile .pb-page__lead {
    color: var(--pb-muted);
    font-family: var(--font-heading);
    font-size: 16px;
    font-style: italic;
}

.pb-page .pb-page__handle {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 15px;
}

/* Link rows. */
.pb-links__list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-links__list li {
    margin: 0;
}

.pb-page a.pb-links__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 56px;
    box-sizing: border-box;
    padding: 8px 16px;
    border: 1px solid var(--pb-line);
    border-radius: 8px;
    background: #fff;
    color: var(--pb-ink);
    font-size: 17px;
    font-weight: 700;
    text-decoration: none;
}

.pb-page a.pb-links__row:hover {
    border-color: var(--pb-ink);
    color: var(--pb-ink);
}

.pb-links__row small {
    display: block;
    color: var(--pb-muted);
    font-size: 13px;
    font-weight: 400;
}

.pb-page a.pb-links__row--main,
.pb-page a.pb-links__row--main:hover {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: #fff;
}

.pb-page a.pb-links__row--main:hover {
    border-color: var(--color-primary-dark);
    background: var(--color-primary-dark);
}

.pb-links__row svg {
    flex: none;
    width: 20px;
    height: 20px;
}

.pb-links__chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
}

.pb-links__chips-label {
    color: var(--pb-ink);
    font-weight: 700;
}

.pb-links__chips ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-links__chips li {
    margin: 0;
}

.pb-page .pb-links__chips a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid #cfc8bb;
    border-radius: 999px;
    color: var(--pb-ink);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
}

.pb-page .pb-links__chips a:hover {
    border-color: var(--pb-ink);
}

/* Newest posts as rows. */
.pb-posts {
    gap: 12px;
}

.pb-page--profile .pb-sec__title {
    font-size: 22px;
    line-height: 1.3;
}

.pb-posts__list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-posts__list li {
    margin: 0;
}

.pb-page a.pb-posts__row {
    display: flex;
    gap: 14px;
    align-items: center;
    min-height: 72px;
    color: var(--pb-ink);
    text-decoration: none;
}

.pb-posts__thumb {
    flex: none;
    overflow: hidden;
    width: 72px;
    height: 72px;
    border-radius: 8px;
    background: var(--color-surface-warm);
}

.pb-posts__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pb-posts__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pb-posts__cat {
    color: var(--color-primary);
    font-size: 13px;
    font-weight: 600;
}

.pb-posts__title {
    font-family: var(--font-heading);
    font-size: 17px;
    line-height: 1.3;
}

.pb-page a.pb-posts__row:hover .pb-posts__title {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* The newsletter card inside the page keeps the column's width. */
.pb-page--profile .pb-newsletter--compact {
    margin: 0;
    padding: 0;
}

/* ---- Size pages ------------------------------------------------- */

.pb-sizes {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 8px;
}

.pb-sizes__label {
    color: var(--pb-ink);
    font-size: 18px;
    font-weight: 700;
}

.pb-sizes__tiles {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-sizes__tiles li {
    margin: 0;
}

.pb-page a.pb-sizes__tile {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 56px;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 2px solid rgba(0, 0, 0, .075);
    border-radius: 8px;
    background: #fff;
    color: var(--pb-ink);
    text-decoration: none;
}

.pb-page a.pb-sizes__tile:hover {
    border-color: rgba(0, 0, 0, .25);
}

.pb-page a.pb-sizes__tile.is-current {
    border-color: var(--pb-ink);
    background: var(--color-surface-warm);
}

.pb-sizes__tile b {
    font-size: 16px;
    font-weight: 700;
}

.pb-sizes__tile span {
    color: var(--pb-muted);
    font-size: 13px;
    line-height: 1.35;
}

.pb-sizes__facts {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--pb-body);
    font-size: 15px;
}

.pb-sizes__facts li {
    margin: 0;
}

/* The four sizes on a wall above a 160 cm sideboard, to one scale:
   --cm is one centimetre (the size guide on the poster page does the same). */
.pb-compare {
    --cm: 2.4px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 0;
    padding: 28px 32px 24px;
    border-radius: 12px;
    background: var(--color-surface-warm);
}

.pb-compare__caption,
.pb-compare__note {
    color: var(--pb-muted);
    font-size: 14px;
}

.pb-page .pb-compare__caption a {
    color: var(--pb-ink);
    font-weight: 600;
}

.pb-compare__scene {
    display: flex;
    flex-direction: column;
    align-items: center;
    overflow: hidden;
    padding-top: 8px;
}

.pb-compare__wall {
    display: flex;
    align-items: flex-end;
    gap: calc(12 * var(--cm));
    margin: 0;
    padding: 0 0 calc(22 * var(--cm));
    list-style: none;
}

.pb-compare__poster {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: calc(var(--w) * var(--cm));
    height: calc(var(--h) * var(--cm));
    margin: 0;
    border: 1.5px solid #dfd8cb;
    background: #fff;
    box-shadow: 0 6px 14px rgba(35, 35, 31, .10);
    opacity: .6;
}

.pb-compare__poster.is-current {
    border-color: var(--pb-ink);
    box-shadow: 0 10px 22px rgba(35, 35, 31, .22);
    opacity: 1;
    transform: translateY(-3px);
}

.pb-compare__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pb-compare__label {
    position: relative;
    margin-bottom: 6px;
    padding: 1px 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .9);
    color: var(--pb-muted);
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

.pb-compare__poster.is-current .pb-compare__label {
    background: var(--color-primary);
    color: #fff;
}

.pb-compare__sideboard {
    display: block;
    width: calc(160 * var(--cm));
    height: calc(80 * var(--cm));
    margin-bottom: calc(-40 * var(--cm));
    fill: #d8cdbd;
    stroke: #c2b5a1;
    stroke-width: .6;
}

.pb-compare__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.pb-note {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 18px 24px;
    border-radius: 10px;
    background: var(--color-surface-warm);
    color: var(--pb-body);
}

.pb-note svg {
    flex: none;
    width: 22px;
    height: 22px;
    margin-top: 1px;
    color: var(--color-primary);
}

/* A text link with an arrow: sage, underlined, 44px tall. */
.pb-page a.pb-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    font-size: 16px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.pb-link svg {
    width: 18px;
    height: 18px;
}

.pb-products-sec__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px 24px;
}

/* Rooms: the whole card is the link. */
.pb-rooms__head {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pb-rooms__list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-rooms__list li {
    margin: 0;
}

.pb-page a.pb-rooms__card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    height: 100%;
    box-sizing: border-box;
    padding: 24px;
    border: 1px solid var(--pb-line);
    border-radius: 10px;
    color: var(--pb-body);
    text-decoration: none;
}

.pb-page a.pb-rooms__card:hover {
    border-color: var(--pb-ink);
    color: var(--pb-body);
}

.pb-rooms__card > svg {
    width: 28px;
    height: 28px;
    color: var(--color-primary);
}

.pb-page .pb-rooms__title {
    font-size: 20px;
    line-height: 1.3;
}

.pb-rooms__card p {
    flex: 1 1 auto;
    font-size: 15px;
}

.pb-rooms__more {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* SEO article beside the questions. */
.pb-seo {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 56px;
    align-items: start;
}

.pb-prose {
    max-width: 720px;
}

.pb-doc .pb-prose {
    max-width: none;
}

.pb-prose h2 {
    margin: 0 0 16px;
    font-size: 28px;
    line-height: 1.2;
}

.pb-prose h3 {
    margin: 24px 0 12px;
    font-size: 22px;
    line-height: 1.3;
}

.pb-prose p,
.pb-prose ul,
.pb-prose ol {
    margin: 0 0 14px;
}

.pb-prose ul,
.pb-prose ol {
    padding-left: 22px;
}

.pb-prose li {
    margin-bottom: 6px;
}

.pb-prose strong {
    color: var(--pb-ink);
}

.pb-seo__faq .pb-faq {
    gap: 8px;
}

@media (max-width: 1280px) and (min-width: 1025px) {
    .pb-compare {
        --cm: 1.9px;
    }
}

/* ---- Questions in topics ---------------------------------------- */

.pb-topics__tiles ul {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-topics__tiles li {
    margin: 0;
}

.pb-page a.pb-topics__tile {
    display: flex;
    flex-direction: column;
    gap: 6px;
    height: 100%;
    box-sizing: border-box;
    padding: 22px;
    border: 1px solid var(--pb-line);
    border-radius: 10px;
    color: var(--pb-body);
    text-decoration: none;
}

.pb-page a.pb-topics__tile:hover {
    border-color: var(--pb-ink);
}

.pb-topics__tile-title {
    color: var(--pb-heading);
    font-family: var(--font-heading);
    font-size: 20px;
    line-height: 1.25;
}

.pb-topics__tile-count {
    color: var(--pb-muted);
    font-size: 14px;
}

.pb-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 56px;
    align-items: flex-start;
}

.pb-topics__menu {
    position: sticky;
    top: 100px;
    flex: 1 1 220px;
    max-width: 260px;
}

.pb-topics__menu ul {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-topics__menu li {
    margin: 0;
}

.pb-page .pb-topics__menu a {
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 0 12px;
    border-radius: 8px;
    color: var(--pb-ink);
    font-weight: 600;
    text-decoration: none;
}

.pb-page .pb-topics__menu a:hover {
    background: var(--color-surface-warm);
    color: var(--pb-ink);
}

/* The topic being read. */
.pb-page .pb-topics__menu a.is-current {
    box-shadow: inset 3px 0 0 var(--color-primary);
    background: var(--color-surface-warm);
    color: var(--color-primary-dark);
}

.pb-topics__list {
    display: flex;
    flex: 999 1 560px;
    flex-direction: column;
    gap: 48px;
    min-width: 0;
    max-width: 760px;
}

.pb-topics__topic {
    scroll-margin-top: 100px;
}

.pb-topics__topic .pb-sec__title {
    margin-bottom: 8px;
}

.pb-faq__a p,
.pb-faq__a ul {
    margin: 0 0 10px;
}

.pb-faq__a ul {
    padding-left: 22px;
}

/* A closing band: copy beside the buttons. */
.pb-cta {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px 32px;
}

.pb-cta__copy {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-width: 640px;
}

/* ---- Posters by colour ------------------------------------------ */

.pb-colors__nav ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-colors__nav li {
    margin: 0;
}

.pb-page a.pb-colors__chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    box-sizing: border-box;
    padding: 0 16px 0 10px;
    border: 1px solid #cfc8bb;
    border-radius: 999px;
    background: #fff;
    color: var(--pb-ink);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
}

.pb-page a.pb-colors__chip:hover {
    border-color: var(--pb-ink);
}

.pb-colors__dot {
    flex: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    box-shadow: inset 0 0 0 1px rgba(35, 35, 31, .12);
}

.pb-colors__dot--big {
    width: 40px;
    height: 40px;
}

.pb-colors__color {
    scroll-margin-top: 100px;
}

.pb-colors__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px 24px;
    padding-top: 32px;
    border-top: 1px solid var(--pb-line);
}

.pb-colors__title {
    display: flex;
    align-items: center;
    gap: 16px;
}

.pb-colors__mood {
    color: var(--pb-muted);
    font-family: var(--font-heading);
    font-size: 16px;
    font-style: italic;
}

/* ---- Order tracking --------------------------------------------- */

.pb-tracking {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: 56px;
    align-items: start;
}

.pb-tracking__main {
    min-width: 0;
}

.pb-tracking__main .woocommerce-form-track-order {
    box-sizing: border-box;
    margin: 0;
    padding: 32px;
    border: 1px solid var(--pb-line);
    border-radius: 10px;
}

/* WoodMart lays the tracking form out its own way; ours: the two fields
   side by side, the button under them. */
.pb-page .pb-tracking__main .pb-track {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 24px;
    align-items: start;
}

.pb-page .pb-tracking__main .pb-track > *,
.pb-page .pb-tracking__main .pb-track input {
    width: 100%;
    max-width: none;
    margin: 0;
    flex: none;
}

.pb-page .pb-tracking__main .pb-track .pb-form__actions {
    grid-column: 1 / -1;
}

.pb-page .pb-track .pb-btn {
    min-width: 240px;
}

.pb-tracking__help {
    display: flex;
    flex-direction: column;
    gap: 20px;
    box-sizing: border-box;
    padding: 28px;
    border-radius: 10px;
    background: var(--color-surface-warm);
}

.pb-tracking__steps {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-tracking__steps li {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin: 0;
}

.pb-tracking__steps svg,
.pb-tracking__note svg {
    flex: none;
    width: 22px;
    height: 22px;
    margin-top: 2px;
    color: var(--color-primary);
}

.pb-tracking__steps b {
    display: block;
    color: var(--pb-ink);
    font-weight: 700;
}

.pb-tracking__steps span {
    font-size: 15px;
}

.pb-tracking__note {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding-top: 16px;
    border-top: 1px solid var(--pb-line-warm);
    font-size: 14px;
}

/* The result WooCommerce prints after a search. */
.pb-tracking__main .woocommerce-notices-wrapper:empty {
    display: none;
}

.pb-tracking__main .order-info {
    margin: 0 0 24px;
    font-size: 17px;
}

.pb-tracking__main mark {
    background: none;
    color: var(--pb-ink);
    font-weight: 700;
}

/* ---- Legal documents -------------------------------------------- */

.pb-doc__tabs ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-doc__tabs li {
    margin: 0;
}

.pb-page .pb-doc__tabs a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    box-sizing: border-box;
    padding: 0 18px;
    border: 1px solid #cfc8bb;
    border-radius: 999px;
    color: var(--pb-ink);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
}

.pb-page .pb-doc__tabs a:hover {
    border-color: var(--pb-ink);
}

.pb-page .pb-doc__tabs a.is-current {
    border-color: var(--pb-ink);
    background: var(--pb-ink);
    color: #fff;
}

.pb-doc {
    padding-top: 40px;
    border-top: 1px solid var(--pb-line);
}

.pb-doc__toc-title {
    display: block;
    padding: 0 12px 8px;
    color: var(--pb-muted);
    font-size: 13px;
}

.pb-page .pb-doc__toc a {
    min-height: 40px;
    font-size: 15px;
    font-weight: 400;
}

/* The text flows as a document, not as the topic list's spaced column,
   and takes all the width beside the contents. */
.pb-doc__text.pb-topics__list {
    display: block;
    max-width: none;
    color: var(--pb-body);
    font-size: 17px;
    line-height: 1.75;
}

.pb-doc__text h2 {
    margin: 48px 0 16px;
    font-size: 28px;
}

.pb-doc__text h2:first-child {
    margin-top: 0;
}

.pb-doc__text h3 {
    margin: 28px 0 12px;
}

.pb-doc__text p,
.pb-doc__text ul,
.pb-doc__text ol {
    margin: 0 0 12px;
}

.pb-doc__text li {
    margin-bottom: 6px;
}

.pb-doc__text li > p {
    margin: 0;
}

.pb-doc__text li > ul,
.pb-doc__text li > ol {
    margin: 6px 0 0;
}

@media print {
    .pb-doc__toc,
    .pb-doc__tabs,
    .pb-doc__top,
    .pb-crumbs {
        display: none;
    }

    .pb-doc__text.pb-topics__list {
        max-width: none;
        font-size: 12pt;
    }
}

.pb-doc__top {
    margin-top: 32px;
    font-weight: 600;
}

/* ---- Tablet ----------------------------------------------------- */

@media (max-width: 1024px) {
    .pb-page__title {
        font-size: 34px;
    }

    .pb-contact,
    .pb-page__head--split,
    .pb-aside,
    .pb-callback,
    .pb-tracking,
    .pb-seo {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .pb-gallery__grid,
    .pb-rooms__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ---- Phone ------------------------------------------------------ */

@media (max-width: 767px) {
    .pb-page {
        gap: 32px;
        padding: 0 0 56px;
    }
    /* The bio page has no shop header; it keeps its own top space. */
    .pb-page--profile {
        padding-top: 24px;
    }

    .pb-page__title {
        font-size: 33px;
    }

    .pb-page__lead {
        font-size: 17px;
    }

    .pb-form {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .pb-page .pb-btn {
        width: 100%;
    }

    .pb-contact__card {
        padding: 22px;
    }

    .pb-page .pb-sec__title {
        font-size: 26px;
    }

    .pb-band,
    .pb-steps {
        padding: 28px 20px;
    }

    .pb-callback__row {
        flex-direction: column;
    }

    .pb-page .pb-callback__row input {
        flex: none;
    }

    .pb-checklist,
    .pb-gallery__grid {
        grid-template-columns: 1fr;
    }

    .pb-cards__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .pb-cards__item {
        padding: 16px;
    }

    .pb-inquiry__form {
        padding: 20px;
    }

    .pb-lightbox {
        padding: 64px 8px;
    }

    .pb-lightbox__prev,
    .pb-lightbox__next {
        top: auto;
        bottom: 12px;
        transform: none;
    }

    .pb-page__actions .pb-btn {
        flex: 1 1 100%;
    }

    .pb-sizes__tiles {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pb-compare {
        padding: 20px 16px 16px;
    }

    .pb-compare {
        --cm: 1.3px;
    }

    .pb-rooms__list {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .pb-topics__tiles ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .pb-page a.pb-topics__tile {
        padding: 16px;
    }

    .pb-topics__menu {
        display: none;
    }

    .pb-colors__head .pb-btn {
        width: 100%;
    }

    .pb-tracking__main .woocommerce-form-track-order,
    .pb-tracking__help {
        padding: 20px;
    }

    .pb-page .pb-tracking__main .pb-track {
        grid-template-columns: 1fr;
    }

    .pb-page a.pb-rooms__card {
        padding: 18px;
    }

    .pb-note {
        padding: 14px 16px;
        font-size: 15px;
    }
}

/* ---- Stages (Jak powstają) ------------------------------------- */

.pb-stages {
    display: flex;
    flex-direction: column;
    gap: 72px;
}

.pb-stage {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 56px;
    align-items: center;
}

/* Without a photo: the number large on the left, the text beside it. */
.pb-stage:not(.pb-stage--photo) {
    grid-template-columns: 160px minmax(0, 720px);
    gap: 40px;
    align-items: start;
}

.pb-stage--photo.pb-stage--flip .pb-stage__media {
    order: 2;
}

.pb-stage--photo.pb-stage--flip .pb-stage__copy {
    justify-self: end;
}

.pb-stage__media {
    overflow: hidden;
    border-radius: 12px;
    aspect-ratio: 4 / 3;
    background: var(--color-surface-warm);
}

.pb-stage__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pb-stage__number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: var(--color-surface-warm);
    color: var(--pb-heading);
    font-family: var(--font-heading);
    font-size: 56px;
    line-height: 1;
}

.pb-stage__copy {
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-width: 600px;
}

.pb-stage__label {
    color: var(--pb-muted);
    font-family: var(--font-heading);
    font-size: 15px;
}

.pb-page .pb-stage__title {
    font-size: 28px;
    line-height: 1.2;
}

.pb-stage__text {
    color: var(--pb-body);
}

.pb-stage__facts {
    color: var(--pb-muted);
    font-size: 15px;
}

/* ---- Points on the band ---------------------------------------- */

.pb-points {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.pb-points__list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 32px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pb-points__item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    color: var(--pb-body);
    font-size: 15px;
}

.pb-page .pb-points__title {
    font-size: 22px;
    line-height: 1.3;
}

@media (max-width: 1024px) {
    .pb-stage,
    .pb-stage--photo.pb-stage--flip {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    .pb-stage--photo.pb-stage--flip .pb-stage__media {
        order: 0;
    }

    .pb-stage--photo.pb-stage--flip .pb-stage__copy {
        justify-self: start;
    }

    .pb-stage:not(.pb-stage--photo) {
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 20px;
    }

    .pb-stage__number {
        width: 72px;
        height: 72px;
        font-size: 34px;
    }

    .pb-points__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
    }
}

@media (max-width: 767px) {
    .pb-stages {
        gap: 48px;
    }

    .pb-page .pb-stage__title {
        font-size: 24px;
    }

    /* The number above the text: beside it, it took a quarter of the width. */
    .pb-stage:not(.pb-stage--photo) {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
    }

    .pb-stage__number {
        width: 56px;
        height: 56px;
        font-size: 28px;
    }

    .pb-page__facts {
        grid-template-columns: minmax(0, 1fr);
    }

    .pb-points__list {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Stages as cards while there are no photos: two by two, each with its
   number in a beige circle. */
.pb-stages--cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.pb-stages--cards .pb-stage {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 32px;
    border: 1px solid var(--pb-line);
    border-radius: 12px;
}

.pb-stages--cards .pb-stage__number {
    width: 64px;
    height: 64px;
    font-size: 30px;
}

.pb-stages--cards .pb-stage__copy {
    flex: 1 1 auto;
    max-width: none;
    gap: 10px;
}

.pb-stages--cards .pb-stage__facts {
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid var(--pb-line);
}

/* Points: an icon on white, in the brand colour. */
.pb-points__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: 6px;
    border-radius: 50%;
    background: #fff;
    color: var(--color-primary);
}

.pb-points__icon svg {
    width: 26px;
    height: 26px;
}

/* The dark closing band, with best-selling posters beside the copy. */
.pb-cta--dark {
    background: var(--color-primary-dark);
    color: #e2dfd2;
}

.pb-page .pb-cta--dark .pb-sec__title {
    color: #fff;
}

.pb-page .pb-cta--dark .pb-btn:not(.pb-btn--secondary) {
    background: #fff;
    color: #23231f;
}

.pb-page .pb-cta--dark .pb-btn:not(.pb-btn--secondary):hover {
    background: #f3efe8;
}

.pb-page .pb-cta--dark .pb-btn--secondary {
    border-color: #fff;
    background: transparent;
    color: #fff;
}

.pb-page .pb-cta--dark .pb-btn--secondary:hover {
    background: rgba(255, 255, 255, .1);
    color: #fff;
}

.pb-cta--posters {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "copy posters" "actions posters";
    align-items: center;
    gap: 24px 48px;
    padding: 48px;
}

.pb-cta--posters .pb-cta__copy {
    grid-area: copy;
    align-self: end;
}

.pb-cta--posters .pb-page__actions {
    grid-area: actions;
    align-self: start;
}

.pb-cta__posters {
    grid-area: posters;
    display: flex;
    justify-content: center;
    gap: 16px;
}

.pb-cta__poster {
    flex: 0 1 150px;
    transform: rotate(-3deg);
}

.pb-cta__poster:nth-child(2) {
    transform: translateY(-12px) rotate(2deg);
}

.pb-cta__poster:nth-child(3) {
    transform: rotate(-1deg);
}

.pb-cta__poster img {
    display: block;
    width: 100%;
    height: auto;
    box-shadow: 0 10px 18px rgba(0, 0, 0, .35), 0 2px 5px rgba(0, 0, 0, .25);
}

@media (max-width: 1024px) {
    .pb-stages--cards {
        grid-template-columns: minmax(0, 1fr);
    }

    .pb-cta--posters {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas: "copy" "posters" "actions";
        padding: 32px 24px;
    }
}

@media (max-width: 767px) {
    .pb-stages--cards .pb-stage {
        padding: 24px 20px;
    }

    .pb-cta__poster {
        flex-basis: 30%;
    }
}

/* ---- The gallery creator (create-your-gallery.php) -------------- */

/* The bar above the creator: the set discount works here too. */
.pb-gw-notice {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 6px 24px;
    margin: 0 0 20px;
    padding: 12px 18px;
    border-radius: 10px;
    background: var(--color-primary-dark);
    color: #e2dfd2;
    font-size: 15px;
    line-height: 1.5;
}

.pb-gw-notice p {
    margin: 0;
}

.pb-gw-notice strong {
    color: #fff;
}

.pb-gw-notice a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: #fff;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.pb-gw-notice a:hover {
    color: #f3efe8;
}

/* The long text under the creator, a content-page section on its own. */
.pb-page--embed {
    padding-top: 64px;
}
