/* Gurus marketplace MVP. */
.gm-empty {
grid-column: 1 / -1;
padding: clamp(2rem, 6vw, 3.5rem) 1.5rem;
text-align: center;
color: var(--text-soft);
background: rgba(255, 255, 255, 0.6);
border: 1px dashed rgba(47, 128, 85, 0.25);
border-radius: 18px;
}

.gm-empty p {
margin: 0;
font-size: 1.02rem;
}

.guru-market {
background:
linear-gradient(180deg, #fbfefb 0%, #f3faf6 38%, #ffffff 100%);
color: var(--text);
}

.gm-hero {
padding: clamp(1.35rem, 3vw, 2.2rem) clamp(1rem, 4vw, 2.5rem);
background:
linear-gradient(150deg, rgba(248, 253, 250, 0.96), rgba(231, 245, 236, 0.9)),
linear-gradient(90deg, rgba(212, 160, 23, 0.08), rgba(125, 212, 174, 0.13));
border-bottom: 1px solid rgba(47, 128, 85, 0.12);
}

.gm-hero__inner {
max-width: var(--maxw);
margin: 0 auto;
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: clamp(1.4rem, 4vw, 3rem);
align-items: center;
}

.gm-eyebrow {
display: inline-flex;
align-items: center;
gap: 0.45rem;
margin-bottom: 0.9rem;
padding: 0.32rem 0.78rem;
border: 1px solid rgba(47, 128, 85, 0.24);
border-radius: 999px;
background: rgba(255, 255, 255, 0.62);
color: var(--sage-dk);
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.16em;
text-transform: uppercase;
}

.gm-eyebrow::before {
content: "";
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--sky);
box-shadow: 0 0 0 5px rgba(125, 212, 174, 0.2);
}

.gm-hero h1 {
max-width: 15ch;
font-size: clamp(2rem, 4.4vw, 3.25rem);
line-height: 1.04;
color: var(--ink-900);
}

.gm-hero__copy > p {
max-width: 64ch;
margin-top: 0.78rem;
font-size: 1rem;
color: var(--text-soft);
}

.gm-actions {
display: flex;
flex-wrap: wrap;
gap: 0.75rem;
margin-top: 1.1rem;
}

.guru-market .btn--primary {
background: #2f6f52;
color: #fff;
box-shadow: 0 18px 34px -22px rgba(47, 111, 82, 0.75);
}

.gm-hero__panel {
display: grid;
gap: 0.45rem;
padding: clamp(1.1rem, 2.4vw, 1.45rem);
border: 1px solid rgba(47, 128, 85, 0.14);
border-radius: 18px;
background: rgba(255, 255, 255, 0.78);
box-shadow: var(--shadow-sm);
}

.gm-hero__panel span {
font-size: 0.82rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--sage-dk);
}

.gm-hero__panel strong {
font-family: var(--font-heading);
font-size: clamp(2.2rem, 4vw, 3rem);
line-height: 1;
color: var(--ink-900);
}

.gm-hero__panel small {
font-size: 0.98rem;
color: var(--text-soft);
}

.gm-hero__metrics {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 0.6rem;
margin-top: 0.72rem;
}

.gm-hero__metrics span {
display: grid;
gap: 0.1rem;
padding: 0.7rem;
border-radius: 12px;
background: rgba(237, 247, 241, 0.84);
text-align: center;
letter-spacing: 0;
text-transform: none;
font-weight: 700;
color: var(--text-soft);
}

.gm-hero__metrics b {
font-family: var(--font-heading);
font-size: 1.35rem;
line-height: 1;
color: var(--sage-dk);
}

.gm-wrap {
max-width: var(--maxw);
margin: 0 auto;
padding: clamp(1.45rem, 3.5vw, 2.4rem) clamp(1rem, 4vw, 2.5rem);
}

.gm-head {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(260px, 460px);
gap: 1rem 2rem;
align-items: end;
margin-bottom: 1.5rem;
}

.gm-head > p {
color: var(--text-soft);
font-size: 1rem;
}

.gm-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1.05rem;
}

.gm-card {
display: grid;
grid-template-columns: minmax(190px, 0.86fr) minmax(0, 1.14fr);
grid-template-rows: auto 1fr auto;
grid-template-areas:
"media body"
"media chips"
"media actions";
gap: 0.85rem;
min-width: 0;
border: 1px solid rgba(30, 77, 50, 0.12);
border-radius: 18px;
background:
linear-gradient(135deg, color-mix(in srgb, var(--guru-accent, #2f6f52) 8%, transparent), transparent 38%),
rgba(255, 255, 255, 0.9);
box-shadow: var(--shadow-sm);
overflow: hidden;
padding: 0.86rem;
transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.gm-card:hover {
transform: translateY(-3px);
border-color: color-mix(in srgb, var(--guru-accent, #2f6f52) 36%, transparent);
box-shadow: 0 20px 45px -28px rgba(30, 77, 50, 0.38);
}

.gm-card__media {
grid-area: media;
display: grid;
grid-template-rows: auto auto;
gap: 0.62rem;
min-width: 0;
}

.gm-card__photo {
position: relative;
display: grid;
place-items: center;
width: 100%;
min-height: 255px;
aspect-ratio: 4 / 5;
margin: 0;
border: 1px dashed color-mix(in srgb, var(--guru-accent, #2f6f52) 42%, transparent);
border-radius: 18px 18px 46px 18px;
background:
radial-gradient(circle at 50% 22%, color-mix(in srgb, var(--guru-accent, #2f6f52) 15%, transparent), transparent 34%),
linear-gradient(180deg, rgba(255, 255, 255, 0.84), rgba(237, 247, 241, 0.92)),
repeating-linear-gradient(45deg, color-mix(in srgb, var(--guru-accent, #2f6f52) 7%, transparent) 0 8px, transparent 8px 16px);
overflow: hidden;
color: var(--text-soft);
font-size: 0.84rem;
font-weight: 700;
}

.gm-card__photo::before {
content: "";
position: absolute;
inset: 0.78rem;
border: 1px solid color-mix(in srgb, var(--guru-accent, #2f6f52) 18%, transparent);
border-radius: 14px 14px 38px 14px;
pointer-events: none;
}

.gm-photo-empty {
position: relative;
z-index: 1;
display: grid;
gap: 0.16rem;
place-items: center;
width: min(78%, 180px);
padding: 0.95rem;
border-radius: 999px;
background: rgba(255, 255, 255, 0.72);
box-shadow: inset 0 0 0 1px rgba(47, 128, 85, 0.08);
text-align: center;
}

.gm-photo-empty b {
font-size: 0.88rem;
color: var(--ink-900);
}

.gm-photo-empty small {
font-size: 0.72rem;
font-weight: 700;
color: var(--text-soft);
}

.gm-card__photo.has-photo {
border-style: solid;
background: #f7fbf8;
}

.gm-card__photo img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
}

.gm-upload {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0;
}

.gm-upload input {
position: absolute;
inline-size: 1px;
block-size: 1px;
opacity: 0;
pointer-events: none;
}

.gm-upload label,
.gm-upload button {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 34px;
padding: 0.4rem 0.72rem;
border: 1px solid rgba(47, 128, 85, 0.2);
border-radius: 999px;
background: #fff;
color: var(--sage-dk);
font: inherit;
font-size: 0.78rem;
font-weight: 700;
cursor: pointer;
}

.gm-upload button {
color: var(--text-soft);
}

.gm-upload label:hover,
.gm-upload button:hover {
background: rgba(237, 247, 241, 0.9);
}

.gm-card__body {
grid-area: body;
display: grid;
gap: 0.55rem;
align-self: start;
padding: 0.08rem 0.05rem 0;
}

.gm-card h3 {
font-size: clamp(1.45rem, 2.2vw, 1.9rem);
color: var(--ink-900);
}

.gm-card__role {
font-weight: 700;
color: var(--gold);
}

.gm-card__desc,
.gm-card__best,
.gm-card__available {
font-size: 0.9rem;
line-height: 1.55;
color: var(--text-soft);
}

.gm-card__best b {
color: var(--ink-900);
}

.gm-card__available {
padding: 0.58rem 0.7rem;
border-radius: 12px;
background: color-mix(in srgb, var(--guru-accent, #2f6f52) 10%, #fff);
font-weight: 700;
color: var(--ink-900);
}

.gm-card__facts {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.5rem;
margin: 0;
}

.gm-card__facts div {
min-width: 0;
padding: 0.58rem 0.65rem;
border-radius: 12px;
background: rgba(249, 253, 251, 0.96);
border: 1px solid rgba(47, 128, 85, 0.08);
}

.gm-card__facts dt {
font-size: 0.66rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--sage-dk);
}

.gm-card__facts dd {
margin: 0.12rem 0 0;
font-size: 0.85rem;
font-weight: 700;
color: var(--text);
overflow-wrap: anywhere;
}

.gm-card__actions {
grid-area: actions;
align-self: end;
padding: 0;
}

.gm-card__actions .btn {
width: 100%;
justify-content: center;
}

.gm-card__chips {
grid-area: chips;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 0.45rem;
align-self: end;
}

.gm-card__chips span,
.gm-card__chips strong {
display: grid;
place-items: center;
min-height: 42px;
padding: 0.42rem 0.5rem;
border-radius: 12px;
background: rgba(255, 255, 255, 0.74);
border: 1px solid rgba(47, 128, 85, 0.1);
font-size: 0.76rem;
font-weight: 700;
line-height: 1.2;
text-align: center;
color: var(--text-soft);
}

.gm-card__chips strong {
background: var(--ink-900);
border-color: var(--ink-900);
color: #fff;
}

.gm-process {
padding: 0 clamp(1rem, 4vw, 2.5rem) clamp(3rem, 6vw, 4.5rem);
}

.gm-process__inner {
max-width: var(--maxw);
margin: 0 auto;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 1rem;
}

.gm-process article {
display: grid;
gap: 0.45rem;
padding: 1.2rem;
border-radius: 16px;
background: #fff;
border: 1px solid rgba(47, 128, 85, 0.12);
box-shadow: var(--shadow-sm);
}

.gm-process span {
display: grid;
place-items: center;
width: 34px;
height: 34px;
border-radius: 50%;
background: var(--sage-dk);
color: #fff;
font-weight: 700;
}

.gm-process h3 {
font-size: 1.22rem;
color: var(--ink-900);
}

.gm-process p {
font-size: 0.94rem;
color: var(--text-soft);
}

.gm-modal {
position: fixed;
inset: 0;
z-index: 1200;
display: none;
align-items: flex-start;
justify-content: center;
padding: clamp(1rem, 5vh, 2rem) 1rem;
background: rgba(20, 42, 30, 0.58);
backdrop-filter: blur(6px);
overflow-y: auto;
}

.gm-modal.is-open {
display: flex;
}

.gm-modal__panel {
position: relative;
width: min(760px, 100%);
border-radius: 18px;
background: var(--cream);
box-shadow: 0 30px 80px rgba(20, 42, 30, 0.28);
padding: clamp(1rem, 3vw, 1.5rem);
animation: gmModalIn 220ms ease-out;
}

@keyframes gmModalIn {
from { opacity: 0; transform: translateY(16px); }
to { opacity: 1; transform: translateY(0); }
}

.gm-modal__close {
position: absolute;
top: 0.9rem;
right: 0.9rem;
z-index: 2;
width: 38px;
height: 38px;
border: 1px solid rgba(47, 128, 85, 0.14);
border-radius: 50%;
background: #fff;
color: var(--ink-900);
font: inherit;
font-weight: 700;
cursor: pointer;
}

.gm-modal__close:hover {
background: rgba(237, 247, 241, 0.9);
}

.gm-form {
display: grid;
gap: 1rem;
}

.gm-modal__head {
padding-right: 3rem;
}

.gm-modal__head h2 {
font-size: clamp(1.6rem, 4vw, 2.3rem);
color: var(--ink-900);
}

.gm-modal__head p:last-child {
margin-top: 0.45rem;
color: var(--text-soft);
}

.gm-form__summary {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.8rem;
padding: 0.75rem 0.85rem;
border-radius: 14px;
background: rgba(237, 247, 241, 0.82);
border: 1px solid rgba(47, 128, 85, 0.1);
color: var(--text-soft);
}

.gm-form__summary strong {
white-space: nowrap;
color: var(--ink-900);
}

.gm-form__grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.85rem;
}

.gm-form label {
display: grid;
gap: 0.32rem;
min-width: 0;
font-size: 0.82rem;
font-weight: 700;
color: var(--ink-900);
}

.gm-form input,
.gm-form select,
.gm-form textarea {
width: 100%;
border: 1px solid rgba(47, 128, 85, 0.16);
border-radius: 12px;
background: #fff;
color: var(--text);
font: inherit;
font-size: 0.94rem;
padding: 0.72rem 0.78rem;
outline: none;
}

.gm-form textarea {
resize: vertical;
min-height: 112px;
}

.gm-form input:focus,
.gm-form select:focus,
.gm-form textarea:focus {
border-color: transparent;
box-shadow: var(--ring);
}

.gm-form__wide {
display: grid;
}

.gm-form__total {
display: grid;
gap: 0.1rem;
padding: 0.85rem 1rem;
border-radius: 14px;
background: #fff;
border: 1px solid rgba(212, 160, 23, 0.28);
}

.gm-form__total span {
font-size: 0.78rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--gold);
}

.gm-form__total strong {
font-family: var(--font-heading);
font-size: 1.8rem;
line-height: 1.05;
color: var(--ink-900);
}

.gm-form__total small {
color: var(--text-soft);
}

.gm-form__error {
min-height: 1.3rem;
font-size: 0.9rem;
font-weight: 700;
color: #b24834;
}

.gm-form__success {
display: grid;
gap: 0.3rem;
padding: 0.9rem 1rem;
border-radius: 14px;
background: rgba(47, 128, 85, 0.12);
border: 1px solid rgba(47, 128, 85, 0.2);
color: var(--text);
}

.gm-form__success b {
color: var(--ink-900);
}

.gm-form__success span {
color: var(--text-soft);
}

.gm-form__actions {
display: flex;
justify-content: flex-end;
gap: 0.7rem;
}

@media (max-width: 980px) {
.gm-hero__inner,
.gm-head {
grid-template-columns: 1fr;
}
.gm-hero h1 {
max-width: 15ch;
}
.gm-grid {
grid-template-columns: 1fr;
}
}

@media (max-width: 680px) {
.gm-hero {
padding-top: 1.6rem;
}
.gm-hero__metrics,
.gm-grid,
.gm-process__inner,
.gm-form__grid {
grid-template-columns: 1fr;
}
.gm-hero h1 {
max-width: none;
}
.gm-card__facts {
grid-template-columns: 1fr;
}
.gm-card {
grid-template-columns: 1fr;
grid-template-areas:
"media"
"body"
"chips"
"actions";
}
.gm-card__photo {
min-height: 260px;
aspect-ratio: 4 / 3;
border-radius: 18px;
}
.gm-card__photo::before {
border-radius: 13px;
}
.gm-card__chips {
grid-template-columns: 1fr;
}
.gm-form__summary,
.gm-form__actions {
align-items: stretch;
flex-direction: column;
}
.gm-form__actions .btn {
justify-content: center;
}
}

/* Free session booking */
.gm-form__tz,
.gm-form__note {
margin: 0;
font-size: 0.88rem;
color: var(--text-soft);
}
.gm-form__note {
padding: 0.7rem 0.9rem;
border-radius: 12px;
background: rgba(191, 145, 65, 0.12);
color: var(--text);
font-weight: 700;
}
.gm-form.is-done .gm-form__grid,
.gm-form.is-done .gm-form__wide,
.gm-form.is-done .gm-form__tz,
.gm-form.is-done .gm-form__note,
.gm-form.is-done #guruSubmit {
display: none;
}
.gm-mine h2 {
margin: 0 0 0.6rem;
}
.gm-mine h3 {
margin: 1rem 0 0.5rem;
font-size: 1rem;
}
.gm-mine__list {
display: grid;
gap: 0.6rem;
margin: 0;
padding: 0;
list-style: none;
}
.gm-mine__item {
display: grid;
gap: 0.35rem;
padding: 0.85rem 1rem;
border: 1px solid rgba(0, 0, 0, 0.08);
border-radius: 14px;
background: #fff;
overflow-wrap: anywhere;
}
.gm-mine__meta {
font-size: 0.9rem;
color: var(--text-soft);
}
/* Join + Cancel capsules side by side, a little smaller than the default button */
.gm-mine__actions {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.gm-mine__btn {
padding: 0.55rem 1.1rem;
font-size: 0.9rem;
line-height: 1.2;
min-height: 40px;
justify-content: center;
}
.gm-mine__note {
margin: 0 0 0.6rem;
font-size: 0.88rem;
color: var(--text-soft);
}
.gm-mine__notice {
margin: 0 0 0.7rem;
padding: 0.7rem 0.9rem;
border-radius: 12px;
background: rgba(47, 128, 85, 0.1);
font-size: 0.92rem;
}
.gm-mine__notice[hidden] {
display: none;
}
.gm-sr-only {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0 0 0 0);
white-space: nowrap;
}
