/* PCR Konsultacje — kreator rezerwacji i strona odwołania.
   Kolory i kroje z tokenów --pcrb-* (z zestawu Elementora, gdy jest), z wartościami zapasowymi. */

.pcrb {
	--pcrb-primary: var(--pcrb-color-primary, #557256);
	--pcrb-ink: var(--pcrb-color-text, #3f444b);
	--pcrb-soft: var(--pcrb-color-soft, #f4f1ea);
	--pcrb-line: #e2e6e2;
	--pcrb-danger: #b32d2e;
	--pcrb-radius: 10px;
	position: relative;
	max-width: 760px;
	margin: 0 auto;
	color: var(--pcrb-ink);
	font-family: var(--pcrb-font-body, inherit);
	line-height: 1.55;
	box-sizing: border-box;
}
.pcrb *, .pcrb *::before, .pcrb *::after { box-sizing: border-box; }

/* Twardy reset naszych przycisków: zestaw Elementora i motyw stylują globalnie każdy <button>
   (wypełnienie, kolory, krój). Wszystko, co ma wyglądać jak przycisk, dostaje style niżej. */
/* `:where()` ma zerową specyficzność, więc reset przegrywa z KAŻDĄ klasą niżej —
   inaczej `.pcrb button` (klasa + element) wygrywał ze `.pcrb-slot` (sama klasa). */
:where(.pcrb button) { all: unset; box-sizing: border-box; cursor: pointer; font: inherit; color: inherit; line-height: inherit; text-align: center; }
.pcrb button:focus-visible { outline: 2px solid var(--pcrb-primary); outline-offset: 2px; }
.pcrb button:disabled { cursor: default; }
.pcrb p { margin: 0 0 .75rem; }
.pcrb p:last-child { margin-bottom: 0; }

.pcrb__steps { display: flex; gap: 0; list-style: none; margin: 0 0 1.5rem; padding: 0; counter-reset: pcrb; }
.pcrb__step { flex: 1; position: relative; padding: .5rem .25rem .5rem 0; font-size: .85rem; color: #8a8f96; border-bottom: 3px solid var(--pcrb-line); }
.pcrb__step::before { counter-increment: pcrb; content: counter(pcrb); display: inline-block; width: 1.5rem; height: 1.5rem; margin-right: .4rem; border-radius: 50%; background: var(--pcrb-line); color: #fff; font-size: .75rem; line-height: 1.5rem; text-align: center; font-weight: 700; }
.pcrb__step.is-active { color: var(--pcrb-primary); border-color: var(--pcrb-primary); font-weight: 600; }
.pcrb__step.is-active::before, .pcrb__step.is-done::before { background: var(--pcrb-primary); }
.pcrb__step.is-done { color: var(--pcrb-primary); border-color: var(--pcrb-primary); }
.pcrb__step.is-done::before { content: "✓"; }

.pcrb__panel { background: #fff; border: 1px solid var(--pcrb-line); border-radius: var(--pcrb-radius); padding: 1.5rem; }
@media (max-width: 600px) { .pcrb__panel { padding: 1rem; } .pcrb__step { font-size: .75rem; } .pcrb__step::before { display: none; } }

.pcrb__title { margin: 0 0 1rem; font-family: var(--pcrb-font-heading, inherit); font-size: 1.4rem; color: var(--pcrb-primary); font-weight: 600; }
.pcrb__hint { margin: -.5rem 0 1rem; color: #6b7280; font-size: .95rem; }
.pcrb__loading, .pcrb__empty { color: #6b7280; margin: .5rem 0; }
.pcrb__error { color: var(--pcrb-danger); background: #fcf0f1; border-left: 4px solid var(--pcrb-danger); padding: .6rem .9rem; border-radius: 4px; margin: 0 0 1rem; }
.pcrb__nav { margin: 0 0 1rem; }
.pcrb__button--small { padding: .45rem 1rem; font-size: .9rem; }

.pcrb .pcrb__button, .pcrb a.pcrb__button { display: inline-block; padding: .8rem 1.6rem; border: 2px solid var(--pcrb-primary); border-radius: 999px; background: var(--pcrb-primary); color: #fff !important; font: inherit; font-weight: 600; line-height: 1.2; cursor: pointer; text-decoration: none !important; transition: filter .15s; }
.pcrb__button:hover { filter: brightness(1.08); }
.pcrb__button:disabled { opacity: .6; cursor: wait; }
.pcrb .pcrb__button--ghost { background: transparent; color: var(--pcrb-primary) !important; }
.pcrb .pcrb__button--danger { background: var(--pcrb-danger); border-color: var(--pcrb-danger); }

/* Psycholodzy */
.pcrb-cards { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.pcrb-card { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; gap: 1.25rem; align-items: start; text-align: left; padding: 1.25rem; border: 1px solid var(--pcrb-line); border-radius: var(--pcrb-radius); background: #fff; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.pcrb-card:hover, .pcrb-card:focus-visible { border-color: var(--pcrb-primary); box-shadow: 0 4px 18px rgba(0,0,0,.06); outline: none; }
/* Zdjęcia są portretami: kadrujemy od góry, żeby nie ucinać głowy. */
.pcrb-card__img { width: 112px; height: 112px; object-fit: cover; object-position: 50% 15%; border-radius: 50%; background: var(--pcrb-soft); display: block; flex: none; }
.pcrb-card__body { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.pcrb-card__name { font-size: 1.15rem; color: var(--pcrb-primary); }
.pcrb-card__title { color: #6b7280; font-size: .9rem; }
.pcrb-card__meta { font-size: .85rem; color: #6b7280; }
.pcrb-card__desc { margin-top: .5rem; }
.pcrb-card__bio { font-size: .92rem; line-height: 1.5; margin: 0; overflow-wrap: anywhere; }
.pcrb-card__bio--full p { margin: 0 0 .6rem; }
.pcrb-card__bio[hidden] { display: none; }
.pcrb .pcrb-card__more { display: inline-block; margin-top: .35rem; color: var(--pcrb-primary); font-size: .85rem; text-decoration: underline; }
.pcrb .pcrb-card__cta { align-self: center; white-space: nowrap; padding: .6rem 1.3rem; }
@media (max-width: 640px) {
	.pcrb-card { grid-template-columns: 72px minmax(0, 1fr); gap: .9rem; padding: 1rem; }
	.pcrb-card__img { width: 72px; height: 72px; }
	.pcrb .pcrb-card__cta { grid-column: 1 / -1; justify-self: stretch; text-align: center; }
}

/* Forma */
.pcrb-modes { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.pcrb-mode { display: flex; flex-direction: column; gap: .25rem; padding: 1.25rem 1rem; border: 2px solid var(--pcrb-line); border-radius: var(--pcrb-radius); background: #fff; cursor: pointer; font: inherit; color: inherit; text-align: center; }
.pcrb-mode strong { font-size: 1.1rem; color: var(--pcrb-primary); }
.pcrb-mode span { font-size: .85rem; color: #6b7280; }
.pcrb-mode:hover, .pcrb-mode:focus-visible { border-color: var(--pcrb-primary); outline: none; }
@media (max-width: 480px) { .pcrb-modes { grid-template-columns: 1fr; } }

/* Kalendarz */
.pcrb-cal__head { display: flex; align-items: center; justify-content: space-between; margin: 0 0 .75rem; }
.pcrb-cal__head strong { text-transform: capitalize; }
.pcrb-cal__nav { display: inline-flex; align-items: center; justify-content: center; width: 2.2rem; height: 2.2rem; border: 1px solid var(--pcrb-line); border-radius: 50%; background: #fff; cursor: pointer; font-size: 1.3rem; line-height: 1; color: var(--pcrb-primary); }
.pcrb-cal__nav:disabled { opacity: .3; cursor: default; }
.pcrb-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .3rem; }
.pcrb-cal__wd { text-align: center; font-size: .75rem; color: #8a8f96; padding: .25rem 0; text-transform: uppercase; letter-spacing: .04em; }
.pcrb-cal__day { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; min-height: 2.4rem; border: 1px solid transparent; border-radius: 8px; background: transparent; font: inherit; color: #b5b9be; cursor: default; }
.pcrb-cal__day--pad { visibility: hidden; }
.pcrb-cal__day.is-today { border-color: var(--pcrb-line); }
.pcrb-cal__day.is-available { background: var(--pcrb-soft); color: var(--pcrb-ink); font-weight: 600; cursor: pointer; }
.pcrb-cal__day.is-available:hover, .pcrb-cal__day.is-available:focus-visible { border-color: var(--pcrb-primary); outline: none; }
.pcrb-cal__day.is-selected { background: var(--pcrb-primary); color: #fff; }

.pcrb-slots { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--pcrb-line); }
.pcrb-slots__title { margin: 0 0 .75rem; font-size: 1rem; }
.pcrb-slots__list { display: flex; flex-wrap: wrap; gap: .5rem; }
.pcrb-slot { display: inline-block; padding: .55rem 1.1rem; border: 2px solid var(--pcrb-line); border-radius: 999px; background: #fff; font: inherit; font-weight: 600; color: var(--pcrb-ink); cursor: pointer; }
.pcrb-slot:hover, .pcrb-slot:focus-visible { border-color: var(--pcrb-primary); color: var(--pcrb-primary); outline: none; }

/* Formularz */
.pcrb-summary { display: flex; flex-direction: column; gap: .15rem; padding: .9rem 1.1rem; margin: 0 0 1.25rem; background: var(--pcrb-soft); border-left: 4px solid var(--pcrb-primary); border-radius: 4px; }
.pcrb-form__grid { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 560px) { .pcrb-form__grid { grid-template-columns: 1fr; } }
.pcrb-field { margin: 0 0 1rem; }
.pcrb-field__label { display: block; margin: 0 0 .3rem; font-size: .9rem; font-weight: 600; }
.pcrb-field__input { width: 100%; padding: .7rem .9rem; border: 1px solid #cfd4d9; border-radius: 8px; font: inherit; color: inherit; background: #fff; }
.pcrb-field__input:focus { border-color: var(--pcrb-primary); outline: none; box-shadow: 0 0 0 3px rgba(85,114,86,.15); }
.pcrb-field__input.is-invalid { border-color: var(--pcrb-danger); }
.pcrb-field--consent.is-invalid .pcrb-consent { color: var(--pcrb-danger); }
.pcrb-consent { display: flex; gap: .6rem; align-items: flex-start; font-size: .85rem; color: #6b7280; cursor: pointer; }
.pcrb-consent input { margin-top: .25rem; flex: none; }

/* Gotowe */
.pcrb-done { text-align: center; padding: 1rem 0; }
.pcrb-done__icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--pcrb-primary); color: #fff; font-size: 2rem; margin-bottom: 1rem; }

/* Strona odwołania */
.pcrb-cancel { padding: 3rem 1rem; }
.pcrb-cancel__card { max-width: 560px; margin: 0 auto; background: #fff; border: 1px solid var(--pcrb-line); border-radius: var(--pcrb-radius); padding: 2rem; }
.pcrb-cancel h1 { margin: 0 0 1rem; font-size: 1.6rem; color: var(--pcrb-primary); font-family: var(--pcrb-font-heading, inherit); }
.pcrb-cancel__facts { display: grid; grid-template-columns: auto 1fr; gap: .4rem 1rem; margin: 0 0 1.25rem; }
.pcrb-cancel__facts dt { color: #6b7280; }
.pcrb-cancel__facts dd { margin: 0; font-weight: 600; }
.pcrb-cancel__contact { margin-top: 1.5rem; font-size: .9rem; color: #6b7280; }

/* Strona formularza otwierana tokenem */
.pcrb-form-page { padding: 2rem 1rem 3rem; }
.pcrb-form-page__inner { max-width: 760px; margin: 0 auto; }
.pcrb-form-page__header h1 { margin: 0 0 .5rem; font-size: 1.8rem; color: var(--pcrb-primary); font-family: var(--pcrb-font-heading, inherit); }
.pcrb-form-page__meta { margin: 0 0 1.5rem; color: #6b7280; }
.pcrb-form-page__form { background: #fff; border: 1px solid var(--pcrb-line); border-radius: var(--pcrb-radius); padding: 1.5rem; }
.pcrb-form-page__message { max-width: 560px; margin: 0 auto; }
