/* Fonts are served from this site (public/fonts): no request to Google, nothing that blocks the first paint. */
@font-face { font-family: 'Baloo 2'; font-style: normal; font-weight: 600 800; font-display: swap; src: url('/fonts/baloo2-latin-ext.woff2?v=63a324521e') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Baloo 2'; font-style: normal; font-weight: 600 800; font-display: swap; src: url('/fonts/baloo2-latin.woff2?v=ae196042c8') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 400 800; font-display: swap; src: url('/fonts/nunito-latin-ext.woff2?v=4fcdc09b70') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 400 800; font-display: swap; src: url('/fonts/nunito-latin.woff2?v=76388dbfe3') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  /* ---- Colour tokens. Every colour on the site comes from here; [data-theme="dark"] below redefines them. ---- */
  color-scheme: light;
  --ink: #25213b;              /* text (brand navy) */
  --ink-soft: #5f5880;         /* muted text */
  --bg: #eaf6f1;               /* page background */
  --card: #ffffff;             /* cards and panels */
  --raised: #ffffff;           /* menus, sheets, popovers: one step above the cards */
  --field: #ffffff;            /* the inside of form fields */
  --border: #dce9e3;           /* dividers and card outlines */
  --field-border: #77877f;     /* the outline of a form field (3:1 against the surface, WCAG 1.4.11) */
  --border-strong: #25213b;    /* emphasised outlines */
  --navy: #25213b;             /* the deep brand bands (for mentors, the sign-up panel) */
  --on-navy: #ffffff;
  --inverse: #25213b;          /* small "reversed" pieces: the active chip or tab, tooltips, toasts */
  --on-inverse: #ffffff;
  --white: #ffffff;            /* white that stays white in both themes (avatar initials) */
  --accent: #ff6f59;           /* brand coral (fills and decoration) */
  --accent-dark: #e8543d;
  --mint: #ddf3ea;             /* brand mint (soft green fills) */
  --sun: #ffe7a3;              /* brand sun (soft yellow fills) */
  --on-sun: #25213b;
  /* Text-safe versions (AA contrast) of the brand colours: --accent, --accent2, --gold and --red stay for fills and decoration. */
  --accent-strong: #cf4129;    /* buttons and other fills that carry --on-accent text */
  --accent-strong-hover: #b73820;
  --on-accent: #ffffff;
  --accent-text: #b8341f;      /* coral text and links */
  --accent2: #3db88e;
  --accent2-strong: #1b7f5f;   /* green fills that carry --on-accent2 text */
  --on-accent2: #ffffff;
  --accent2-text: #1f6f56;     /* green text on soft green */
  --accent2-light: #6fd4b0;
  --gold: #f4a93b;
  --gold-text: #9a5b00;        /* star ratings */
  --red: #d1567e;
  --red-strong: #b3365c;       /* error text */
  /* Soft fills for badges, banners and icon tiles, each with the text colour that goes on it */
  --mint-soft: #e3f7ef;  --mint-line: #bfe8d6;  --mint-banner-ink: #17563f;
  --sun-soft: #fdf0d9;   --sun-tint: #fff7e3;   --sun-ink: #7a4f10;
  --pink-soft: #fbe6ee;  --pink-ink: #8d2244;
  --lav-soft: #ece7f7;   --gray-soft: #ecebf2;
  --coral-soft: #fde8e2; --coral-tint: #fff9f7;
  --skeleton-a: #e2eee9; --skeleton-b: #eef6f2;
  --connector: #9cc7b8;  --dot: #b9d3c9;        --grip: #c5d9d0;
  --pw-2: #d9822b;       --pw-3: #b39a1a;
  --blob-peach: #ffd9c4; --blob-mint: #bdeedb;  --blob-sun: #ffe7a3;
  --header-bg: rgba(234, 246, 241, 0.92);
  --glass: rgba(255, 255, 255, 0.55);
  --glass-strong: rgba(255, 255, 255, 0.96);
  --scrim: rgba(37, 33, 59, 0.5);
  --shadow-rgb: 37, 33, 59;
  --accent-rgb: 255, 111, 89;
  --accent2-rgb: 61, 184, 142;
  --accent-strong-rgb: 207, 65, 41;
  --on-accent-rgb: 255, 255, 255;
  --on-navy-rgb: 255, 255, 255;
  /* Google's sign-in button (Google's own light and dark button colours) */
  --gbtn-bg: #ffffff; --gbtn-border: #747775; --gbtn-ink: #1f1f1f; --gbtn-hover: #f0f0f0; --gbtn-active: #e6e6e6; --gbtn-shadow: rgba(60, 64, 67, 0.3);
  --radius: 22px;
  --radius-sm: 14px;
  font-size: 16px;
}

/* Dark theme: a designed palette (deep violet-navy surfaces, the same coral and mint), not an inversion. Chosen with the choice
   in Settings or the header ("System" follows the device); public/js/theme-init.js sets data-theme before the page paints. */
[data-theme="dark"] {
  color-scheme: dark;
  --ink: #f3f1fa;
  --ink-soft: #b7b3c8;
  --bg: #15131f;
  --card: #1f1c2e;
  --raised: #29253b;
  --field: #15131f;
  --border: #34304a;
  --field-border: #7d7899;
  --border-strong: #8d88a8;
  --navy: #0f0d18;
  --on-navy: #f3f1fa;
  --inverse: #f3f1fa;
  --on-inverse: #15131f;
  --accent: #ff7a66;
  --accent-dark: #ff9583;
  --mint: #1e3a33;
  --sun: #ffe7a3;
  --on-sun: #25213b;
  --accent-strong: #ff7a66;
  --accent-strong-hover: #ff9583;
  --on-accent: #15131f;
  --accent-text: #ff9a88;
  --accent2: #3db88e;
  --accent2-strong: #3db88e;
  --on-accent2: #0f0d18;
  --accent2-text: #7fd9b8;
  --accent2-light: #6fd4b0;
  --gold: #f4b95a;
  --gold-text: #f8c56b;
  --red: #e0698f;
  --red-strong: #ff93b0;
  --mint-soft: #1e3a33;  --mint-line: #2c5a4d;  --mint-banner-ink: #a6e6cb;
  --sun-soft: #6b5a1e;   --sun-tint: #332d1c;   --sun-ink: #ffe7a3;
  --pink-soft: #4a2436;  --pink-ink: #ffb3c7;
  --lav-soft: #38334f;   --gray-soft: #2b2840;
  --coral-soft: #3f2530; --coral-tint: #2b2029;
  --skeleton-a: #29253b; --skeleton-b: #34304a;
  --connector: #4d6b62;  --dot: #4b4666;        --grip: #4b4666;
  --pw-2: #e0913f;       --pw-3: #c9b02a;
  --blob-peach: #3b2b33; --blob-mint: #1c332d;  --blob-sun: #3b3620;
  --header-bg: rgba(21, 19, 31, 0.92);
  --glass: rgba(31, 28, 46, 0.6);
  --glass-strong: rgba(31, 28, 46, 0.96);
  --scrim: rgba(0, 0, 0, 0.62);
  --shadow-rgb: 0, 0, 0;
  --accent-strong-rgb: 255, 122, 102;
  --on-accent-rgb: 21, 19, 31;
  --on-navy-rgb: 243, 241, 250;
  --gbtn-bg: #131314; --gbtn-border: #8e918f; --gbtn-ink: #e3e3e3; --gbtn-hover: #1f1f20; --gbtn-active: #2a2a2b; --gbtn-shadow: rgba(0, 0, 0, 0.5);
}


* { box-sizing: border-box; }
[hidden] { display: none !important; }

body {
  margin: 0;
  font-family: 'Nunito', system-ui, sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.55;
  position: relative;
  overflow-x: hidden;
}

h1, h2, h3 { font-family: 'Baloo 2', 'Nunito', sans-serif; font-weight: 700; }
.mono, .price, code { font-family: 'Nunito', sans-serif; font-variant-numeric: tabular-nums; }

.container { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.muted { color: var(--ink-soft); }
.small { font-size: 0.82rem; }

@keyframes float-blob {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(18px, -22px) scale(1.05); }
  66% { transform: translate(-14px, 14px) scale(0.97); }
}
@keyframes fade-up {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes pop-in {
  from { opacity: 0; transform: scale(0.9); }
  to { opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

/* Skip link for keyboard users */
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 200; background: var(--inverse); color: var(--on-inverse); padding: 12px 18px; border-radius: 999px; font-weight: 800; text-decoration: none; }
.skip-link:focus { left: 16px; outline: 3px solid var(--accent); outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
:focus-visible { outline: 3px solid var(--accent-strong); outline-offset: 2px; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Breadcrumbs ------------------------------------------------------------------------------------- */
.breadcrumb { margin: 0 0 18px; }
.breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; padding: 0; font-size: 0.85rem; font-weight: 700; }
.breadcrumb li { display: inline-flex; align-items: center; gap: 6px; color: var(--ink-soft); min-width: 0; }
.breadcrumb li + li::before { content: '›'; color: var(--ink-soft); font-weight: 800; }
.breadcrumb a { color: var(--ink-soft); text-decoration: none; display: inline-flex; align-items: center; min-height: 32px; }
.breadcrumb a:hover { color: var(--accent-text); text-decoration: underline; }
.breadcrumb [aria-current="page"] { color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 60vw; }

/* Header ----------------------------------------------------------------------------------------------
   Desktop (1024px and up): logo, links, language, account buttons. Below 1024px the links and buttons live in a
   full-height menu panel (.mobile-menu, opened by nav.js). */
.nav {
  position: sticky; top: 0; z-index: 20;
  background: var(--header-bg);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
  padding-top: env(safe-area-inset-top);
  transition: transform 0.25s ease;
}
.nav.nav-hidden { transform: translateY(-100%); }
.nav-inner { display: flex; align-items: center; gap: 20px; padding: 14px 24px; min-height: 68px; }
/* The logo is the image from /brand (see public/js/header.js): 36px high, 30px on tablets, 28px on phones. */
.logo { display: inline-flex; align-items: center; flex: 0 0 auto; min-height: 44px; line-height: 0; text-decoration: none; white-space: nowrap; }
.logo img { display: block; height: 36px; width: auto; }
@media (max-width: 1023px) { .logo img { height: 30px; } }
@media (max-width: 639px) { .logo img { height: 28px; } }
@media (max-width: 359px) { .logo-pic[data-mark] img { aspect-ratio: 1 / 1; } } /* the symbol on its own is square */
.nav-links { display: flex; gap: 24px; flex: 1; white-space: nowrap; }
.nav-links a { color: var(--ink-soft); text-decoration: none; font-weight: 700; font-size: 0.92rem; transition: color 0.15s; display: inline-flex; align-items: center; min-height: 44px; }
.nav-links a:hover { color: var(--accent-text); }
.nav-right { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.nav-actions { display: flex; gap: 10px; align-items: center; white-space: nowrap; }
/* Room in the header (the page is at most 1120px wide, so a wide screen has no more room than a 1120px one): a signed-in person has
   Dashboard, Settings (and Admin) and Log out to fit, so only "Browse experts" stays of the marketing links. Georgian words are longer:
   there the FAQ link always leaves the header (it is in the footer), and under 1100px so do "How it works" and "For mentors". */
.nav-right { gap: 10px; }
.nav.is-authed .nl-extra { display: none; }
html[lang="ka"] .nav-links .nl-faq { display: none; }
@media (min-width: 1024px) and (max-width: 1279px) {
  .nav-inner { gap: 14px; }
  .nav-links { gap: 18px; }
}
@media (min-width: 1024px) and (max-width: 1099px) {
  html[lang="ka"] .nl-extra { display: none; }
}

.lang-toggle {
  display: flex; border: none; background: var(--card); border-radius: 999px; padding: 3px; gap: 2px;
  box-shadow: 0 2px 8px -3px rgba(var(--shadow-rgb), 0.18);
}
.lang-btn {
  border: none; background: transparent; padding: 6px 13px; border-radius: 999px;
  font-family: 'Nunito', sans-serif; font-size: 0.76rem; font-weight: 800; letter-spacing: 0.03em;
  cursor: pointer; color: var(--ink-soft); transition: all 0.18s ease;
}
.lang-btn.active { background: var(--accent-strong); color: var(--on-accent); }
.lang-toggle-lg .lang-btn { padding: 10px 22px; font-size: 0.88rem; }

/* Buttons */
.btn {
  font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 0.92rem; border-radius: 999px;
  padding: 11px 22px; border: none; cursor: pointer;
  transition: transform 0.18s cubic-bezier(.34,1.56,.64,1), box-shadow 0.18s ease, opacity 0.15s, background 0.15s;
  text-decoration: none; display: inline-flex; align-items: center; justify-content: center;
}
.btn:hover { transform: translateY(-2px) scale(1.03); }
.btn:active { transform: translateY(0) scale(0.98); }
.btn:disabled { opacity: 0.55; cursor: not-allowed; transform: none; }
.btn-primary { background: var(--accent-strong); color: var(--on-accent); box-shadow: 0 8px 20px -8px rgba(var(--accent-strong-rgb), 0.6); }
.btn-primary:hover { background: var(--accent-strong-hover); }
.btn-ghost { background: transparent; color: var(--ink); }
.btn-outline { background: var(--card); color: var(--ink); border: 2px solid var(--border); }
.btn-outline:hover { border-color: var(--accent); color: var(--accent-text); }
.btn-lg { padding: 15px 30px; font-size: 1rem; }
.btn-block { width: 100%; padding: 15px; }
.btn-sm { padding: 8px 18px; font-size: 0.83rem; }

/* Hero */
.hero { position: relative; padding: 90px 0 76px; overflow: hidden; }
.hero-blob {
  position: absolute; border-radius: 50%; filter: blur(2px); opacity: 0.55; z-index: 0;
  animation: float-blob 9s ease-in-out infinite;
}
.hero-blob.b1 { width: 280px; height: 280px; background: var(--blob-peach); top: -60px; right: -40px; animation-duration: 11s; }
.hero-blob.b2 { width: 180px; height: 220px; background: var(--blob-mint); bottom: -30px; right: 220px; border-radius: 45% 55% 60% 40%; animation-duration: 8s; animation-delay: -3s; }
.hero-blob.b3 { width: 120px; height: 120px; background: var(--blob-sun); top: 60px; right: 380px; animation-duration: 7s; animation-delay: -1.5s; }
.hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 40px; align-items: center; }
.hero-text { max-width: 560px; animation: fade-up 0.7s ease both; }
.hero h1 { font-size: 3.2rem; line-height: 1.08; margin: 0 0 20px; letter-spacing: -0.01em; text-wrap: balance; }
.hero h1 em { color: var(--accent-strong); font-style: normal; }
.hero-sub { font-size: 1.12rem; color: var(--ink-soft); margin: 0 0 32px; max-width: 480px; }
.hero-actions { display: flex; gap: 14px; margin-bottom: 44px; flex-wrap: wrap; }
.hero-stats { display: flex; gap: 40px; flex-wrap: wrap; }
.hero-stats div { display: flex; flex-direction: column; }
.hero-stats strong { font-size: 1.6rem; font-family: 'Baloo 2', sans-serif; color: var(--accent-text); }
.hero-stats span { font-size: 0.78rem; color: var(--ink-soft); font-weight: 700; }
.hero-cta-banner {
  background: var(--card); border: none; border-radius: var(--radius-sm);
  padding: 18px 20px; max-width: 480px; font-size: 0.94rem; position: relative;
  box-shadow: 0 10px 26px -14px rgba(var(--shadow-rgb), 0.28);
  animation: pop-in 0.5s cubic-bezier(.34,1.56,.64,1) 0.3s both;
}
.hero-cta-banner::before {
  content: "✦ NEW"; position: absolute; top: -12px; left: 20px; background: var(--accent2-strong); color: var(--on-accent2);
  font-size: 0.68rem; font-weight: 800; letter-spacing: 0.04em;
  padding: 3px 12px; border-radius: 999px;
}
.hero-cta-banner a { color: var(--accent-text); font-weight: 800; text-decoration: none; }

.hero-seal { justify-self: center; width: 100%; max-width: 300px; position: relative; z-index: 1; }
.hero-seal svg { width: 100%; height: auto; }
.orb-spin { animation: orb-rotate 16s linear infinite; transform-box: fill-box; transform-origin: 50% 50%; }
.orb-bob { animation: orb-bob 4s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 50%; }
@keyframes orb-rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes orb-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* How it works */
.how { padding: 70px 0; }
.how h2 { font-size: 2rem; margin-bottom: 40px; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.step {
  background: var(--card); padding: 28px 24px; border-radius: var(--radius);
  box-shadow: 0 10px 26px -18px rgba(var(--shadow-rgb), 0.3);
  transition: transform 0.25s cubic-bezier(.34,1.56,.64,1);
}
.step:hover { transform: translateY(-4px) rotate(-1deg); }
.step-num {
  display: flex; align-items: center; justify-content: center; width: 36px; height: 36px;
  border-radius: 50%; background: var(--accent2-strong); color: var(--on-accent2); font-weight: 800;
  font-size: 0.95rem; margin-bottom: 16px;
}
.step h3 { margin: 0 0 8px; font-size: 1.1rem; font-weight: 800; }
.step p { margin: 0; color: var(--ink-soft); font-size: 0.92rem; }

/* Experts */
.experts { padding: 30px 0 90px; }
.experts h2 { font-size: 2rem; margin-bottom: 26px; }
.browse-toolbar { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.search-input {
  flex: 1; min-width: 220px; padding: 12px 18px; border-radius: 999px; border: 2px solid var(--border);
  font-family: 'Nunito', sans-serif; font-size: 0.94rem; background: var(--card); color: var(--ink);
  transition: border-color 0.15s;
}
.search-input:focus { border-color: var(--accent); }
.sort-select {
  padding: 12px 18px; border-radius: 999px; border: 2px solid var(--border);
  font-family: 'Nunito', sans-serif; font-weight: 700; font-size: 0.88rem; background: var(--card); color: var(--ink);
}
.filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 36px; }
.chip {
  border: 2px solid var(--border); background: var(--card); padding: 9px 18px; border-radius: 999px;
  font-weight: 700; font-size: 0.85rem; cursor: pointer; color: var(--ink-soft); transition: all 0.18s ease;
}
.chip:hover { border-color: var(--accent); color: var(--accent-text); transform: translateY(-1px); }
.chip.active { background: var(--inverse); border-color: var(--inverse); color: var(--on-inverse); }

.expert-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.expert-card {
  background: var(--card); border: none; border-radius: var(--radius); padding: 22px;
  display: flex; flex-direction: column; gap: 12px; position: relative;
  box-shadow: 0 10px 26px -18px rgba(var(--shadow-rgb), 0.3);
  transition: transform 0.25s cubic-bezier(.34,1.56,.64,1), box-shadow 0.25s ease;
  text-decoration: none; color: inherit;
  animation: fade-up 0.5s ease backwards;
}
.expert-card:nth-child(2) { animation-delay: 0.06s; }
.expert-card:nth-child(3) { animation-delay: 0.12s; }
.expert-card:nth-child(4) { animation-delay: 0.18s; }
.expert-card:nth-child(n+5) { animation-delay: 0.24s; }
.step { animation: fade-up 0.6s ease backwards; }
.step:nth-child(2) { animation-delay: 0.1s; }
.step:nth-child(3) { animation-delay: 0.2s; }
.expert-card:hover { transform: translateY(-5px) rotate(-0.5deg); box-shadow: 0 18px 34px -16px rgba(var(--shadow-rgb), 0.38); }
.card-top { display: flex; align-items: center; gap: 12px; }
.avatar {
  width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 1.02rem; color: var(--white); flex-shrink: 0; font-family: 'Baloo 2', sans-serif;
}
.avatar-lg { width: 76px; height: 76px; font-size: 1.5rem; }
.card-name { font-weight: 800; font-size: 1.02rem; font-family: 'Baloo 2', sans-serif; }
.card-role { font-size: 0.83rem; color: var(--ink-soft); font-weight: 600; }
.card-bio { font-size: 0.89rem; color: var(--ink-soft); flex-grow: 1; }
.card-bottom { display: flex; align-items: center; justify-content: space-between; padding-top: 10px; border-top: 2px dashed var(--border); }
.rating { font-size: 0.82rem; color: var(--gold-text); font-weight: 800; }
.price { font-weight: 800; color: var(--ink); }
.price span { font-weight: 600; color: var(--ink-soft); font-size: 0.75rem; }

/* Become a mentor */
.become { background: var(--navy); padding: 60px 0; color: var(--on-navy); position: relative; overflow: hidden; }
.become-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; position: relative; z-index: 1; }
.become h2 { margin: 0 0 8px; font-size: 1.7rem; color: var(--on-navy); }
.become p { margin: 0; opacity: 0.75; }
.become .btn-primary { background: var(--accent-strong); }

/* Footer */
.footer { padding: 52px 0 calc(28px + env(safe-area-inset-bottom)); border-top: 1px solid var(--border); background: var(--glass); }
.footer p { color: var(--ink-soft); font-size: 0.85rem; margin: 0; font-weight: 600; }
.footer-top { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 32px; }
.footer-brand .logo { display: inline-flex; }
.footer-brand p { margin: 8px 0 0; max-width: 280px; font-size: 0.92rem; }
.footer .footer-contact { margin-top: 12px; }
.footer-contact a { color: var(--accent-text); font-weight: 800; text-decoration: none; overflow-wrap: anywhere; }
.footer-contact a:hover { text-decoration: underline; }
.footer-social { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 16px 0 0; }
.footer-social a {
  display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%;
  background: var(--card); color: var(--ink); border: 2px solid var(--border); transition: border-color 0.15s, color 0.15s;
}
.footer-social a:hover { border-color: var(--accent); color: var(--accent-text); }
.footer-col h2 { font-family: 'Nunito', sans-serif; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink); margin: 0 0 10px; }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.footer-col a { display: inline-flex; align-items: center; min-height: 40px; color: var(--ink-soft); font-size: 0.92rem; font-weight: 700; text-decoration: none; }
.footer-col a:hover, .footer-col a:focus-visible { color: var(--accent-text); text-decoration: underline; }
.footer a:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 6px; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 30px; padding-top: 20px; border-top: 1px dashed var(--border); }
.footer-lang { display: flex; align-items: center; gap: 10px; }
@media (max-width: 860px) {
  .footer-top { grid-template-columns: repeat(3, 1fr); }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .footer-top { grid-template-columns: 1fr 1fr; gap: 20px; }
  .footer-col a { min-height: 44px; }
}

/* Auth pages */
.auth-page { display: flex; justify-content: center; padding: 64px 24px 100px; }
.auth-card {
  background: var(--card); border: none; border-radius: var(--radius);
  padding: 38px 34px; width: 100%; max-width: 420px;
  box-shadow: 0 16px 40px -20px rgba(var(--shadow-rgb), 0.35);
  animation: pop-in 0.4s cubic-bezier(.34,1.56,.64,1) both;
}
.auth-card h1 { font-size: 1.6rem; margin: 0 0 6px; }
.auth-card > .muted { margin: 0 0 22px; font-size: 0.9rem; }
.auth-switch { text-align: center; margin-top: 16px; font-size: 0.88rem; color: var(--ink-soft); }
.auth-switch a { color: var(--accent-text); font-weight: 800; text-decoration: none; margin-left: 4px; }

form label {
  display: block; font-size: 0.85rem; font-weight: 800; margin-bottom: 15px; color: var(--ink-soft);
}
form input, form textarea, form select {
  width: 100%; margin-top: 6px; padding: 11px 16px; border-radius: var(--radius-sm); border: 2px solid var(--field-border);
  font-family: 'Nunito', sans-serif; font-size: 1rem; color: var(--ink); resize: vertical; background: var(--field);
  transition: border-color 0.15s;
}
form input:focus, form textarea:focus, form select:focus { border-color: var(--accent); }
form .hint { display: block; font-weight: 500; color: var(--ink-soft); font-size: 0.76rem; margin-top: 4px; }
.form-error { color: var(--red-strong); font-size: 0.85rem; margin: -6px 0 14px; min-height: 1em; font-weight: 600; }

/* Expert profile page */
.expert-page { padding: 46px 24px 100px; max-width: 640px; }
.expert-hero { display: flex; align-items: center; gap: 18px; margin-bottom: 16px; }
.expert-hero h1 { margin: 0 0 4px; font-size: 1.7rem; }
.expert-bio { color: var(--ink-soft); margin-bottom: 30px; }
.ask-card {
  background: var(--card); border: none; border-radius: var(--radius); padding: 24px;
  box-shadow: 0 10px 26px -18px rgba(var(--shadow-rgb), 0.3);
}
.ask-card-head { display: flex; justify-content: space-between; align-items: center; font-weight: 800; margin-bottom: 18px; }
.booking-result { text-align: center; padding: 10px 0; }
.success-icon {
  width: 56px; height: 56px; border-radius: 50%; background: var(--mint-soft); color: var(--accent2-strong);
  font-size: 1.5rem; display: flex; align-items: center; justify-content: center; margin: 0 auto 14px;
  animation: pop-in 0.4s cubic-bezier(.34,1.56,.64,1) both;
}

.reviews-section { margin-top: 36px; }
.reviews-title { font-size: 1.15rem; margin: 0 0 16px; }
.review-card { border-top: 1px solid var(--border); padding: 14px 0; }
.review-card:first-of-type { border-top: none; }
.review-top { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.review-stars { color: var(--gold-text); letter-spacing: 1px; }
.review-text { margin: 0; font-size: 0.92rem; color: var(--ink); }

/* Dashboard */
.dash { padding: 46px 24px 100px; max-width: 760px; }
.dash h1 { margin: 0 0 30px; }
.dash-section { margin-bottom: 38px; }
.dash-section h2 { font-size: 1.15rem; margin-bottom: 14px; font-weight: 800; }
.booking-card {
  background: var(--card); border: none; border-radius: var(--radius);
  padding: 20px 22px; margin-bottom: 14px;
  box-shadow: 0 8px 22px -18px rgba(var(--shadow-rgb), 0.3);
}
.booking-top { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.booking-top .avatar { width: 40px; height: 40px; font-size: 0.88rem; }
.booking-amount { margin-left: auto; text-align: right; font-weight: 800; }
.booking-question { color: var(--ink); font-size: 0.93rem; margin: 0 0 8px; }
.booking-answer { background: var(--mint-soft); border-radius: var(--radius-sm); padding: 14px 16px; font-size: 0.9rem; }
.answer-form textarea { margin-bottom: 10px; }
.answer-form .q-meta { margin-bottom: 8px; }
.answer-review { display: grid; gap: 10px; }
.answer-review-title { margin: 0; font-size: 1.05rem; }
.answer-review-title:focus { outline: none; }
.answer-warn { margin: 0; padding: 10px 14px; border-radius: var(--radius-sm); background: var(--sun-soft); color: var(--sun-ink); font-weight: 800; font-size: 0.9rem; }
.answer-preview { margin: 0; padding: 14px 16px; border-radius: var(--radius-sm); background: var(--card); border: 2px solid var(--border); font-size: 0.92rem; white-space: pre-wrap; overflow-wrap: anywhere; max-height: 320px; overflow: auto; }
.answer-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.mv-note { margin: 0 0 10px; padding: 10px 14px; border-radius: var(--radius-sm); background: var(--sun-soft); color: var(--sun-ink); font-size: 0.88rem; }
.unfinished { margin-top: 18px; }
.unfinished-toggle { margin-bottom: 10px; }
.pay-notice { margin: 0 0 12px; padding: 10px 14px; border-radius: var(--radius-sm); font-weight: 800; font-size: 0.9rem; }
.pay-notice.cancelled { background: var(--sun-soft); color: var(--sun-ink); }
.pay-notice.failed { background: var(--pink-soft); color: var(--red-strong); }
.pay-notice:focus { outline: 3px solid var(--accent-strong); outline-offset: 2px; }
.review-form textarea { margin: 8px 0 10px; width: 100%; padding: 10px 14px; border-radius: var(--radius-sm); border: 2px solid var(--border); font-family: inherit; font-size: 0.88rem; }
.star-picker { display: flex; gap: 4px; margin-bottom: 4px; }
.star-btn { background: none; border: none; font-size: 1.5rem; color: var(--border); cursor: pointer; padding: 0; line-height: 1; transition: transform 0.12s; }
.star-btn:hover { transform: scale(1.2); }
.star-btn.filled { color: var(--gold-text); }
.review-submitted { margin-top: 10px; }
.review-submitted .review-text { margin-top: 4px; font-size: 0.88rem; color: var(--ink-soft); }

.badge {
  display: inline-block; font-size: 0.7rem; font-weight: 800; padding: 4px 12px; border-radius: 999px;
}
.badge-pending_payment { color: var(--sun-ink); background: var(--sun-soft); }
.badge-paid { color: var(--accent2-text); background: var(--mint-soft); }
.badge-answered { color: var(--ink); background: var(--lav-soft); }
.badge-rejected { color: var(--red-strong); background: var(--pink-soft); }
.badge-refunded { color: var(--red-strong); background: var(--pink-soft); }
.badge-expired { color: var(--ink-soft); background: var(--gray-soft); }
.booking-note { margin: 0 0 8px; font-size: 0.84rem; color: var(--ink-soft); font-weight: 600; }

/* Settings */
.settings { padding: 46px 24px 100px; max-width: 640px; }
.settings h1 { margin: 0 0 30px; }
.settings-card {
  background: var(--card); border: none; border-radius: var(--radius);
  padding: 26px; margin-bottom: 22px;
  box-shadow: 0 10px 26px -18px rgba(var(--shadow-rgb), 0.3);
}
.settings-card h2 { font-size: 1.1rem; margin: 0 0 16px; }
.settings-card h3 { font-size: 0.94rem; margin: 0 0 6px; font-weight: 800; }
.checkbox-row { display: flex; align-items: center; gap: 10px; font-size: 0.92rem; margin-bottom: 4px; cursor: pointer; font-weight: 700; }
.checkbox-row input { width: auto; margin: 0; accent-color: var(--accent); }
#mentorForm { display: grid; gap: 0; margin-top: 16px; }
.payouts-box { margin-top: 16px; padding-top: 16px; border-top: 1px dashed var(--border); }

.verify-banner {
  background: var(--sun-soft); color: var(--sun-ink); border-bottom: 1px solid var(--border);
  text-align: center; padding: 12px 16px; font-size: 0.88rem; font-weight: 700;
}
.verify-banner a { color: var(--accent-text); font-weight: 800; text-decoration: none; margin-left: 6px; }

/* Pages that fill in after they load start tall enough for the footer to begin below the fold, so it never jumps. */
.expert-wrap, .dash, .settings { min-height: 85vh; }
.breadcrumb { min-height: 34px; }

/* Before launch (prelaunch mode): a slim note under the header, and the home page's Browse section
   shows the waiting list instead of the expert search. */
.launch-banner {
  background: var(--mint-soft); color: var(--mint-banner-ink); border-bottom: 1px solid var(--border);
  text-align: center; padding: 12px 16px; font-size: 0.92rem; font-weight: 700;
}
.launch-banner a { color: var(--accent-text); font-weight: 800; margin-left: 6px; }
.launch-banner-admin { border: 1px solid var(--mint-line); border-radius: var(--radius-sm); text-align: left; margin: 0 0 18px; }
[data-launch="prelaunch"] .browse-toolbar,
[data-launch="prelaunch"] .filters { display: none; }

/* The waiting-list form (home page and expert profile) */
.empty-wait { width: 100%; margin-top: 18px; }
.waitlist-form { background: var(--card); border-radius: var(--radius); padding: 22px; text-align: left; box-shadow: 0 10px 26px -18px rgba(var(--shadow-rgb), 0.3); }
.waitlist-form h3 { margin: 0 0 14px; font-size: 1.1rem; font-weight: 800; }
.waitlist-row { display: grid; grid-template-columns: 1.4fr 1fr auto; gap: 12px; align-items: end; }
.waitlist-row label { margin-bottom: 0; }
.waitlist-row .btn { min-height: 46px; }
.waitlist-form .hint { margin: 12px 0 4px; }
.waitlist-form .hint a { color: var(--accent-text); font-weight: 800; }
.waitlist-error { margin: 6px 0 0; }
.waitlist-done { background: var(--mint-soft); color: var(--accent2-text); padding: 16px 20px; border-radius: var(--radius-sm); font-weight: 800; margin: 0; }
.ask-panel .waitlist-form { padding: 0; background: none; box-shadow: none; }
.ask-panel .waitlist-form h3 { display: none; } /* the panel's own heading already says it */
.ask-panel .waitlist-row { grid-template-columns: 1fr; }
.ask-panel .waitlist-row .btn { width: 100%; }
@media (max-width: 720px) {
  .waitlist-row { grid-template-columns: 1fr; }
  .waitlist-row .btn { width: 100%; }
}

/* Settings tabs */
.tabs { display: flex; gap: 8px; margin: 0 0 24px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.tab {
  flex: 0 0 auto; min-height: 44px; border: 2px solid var(--border); background: var(--card); padding: 9px 20px; border-radius: 999px;
  font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 0.9rem; cursor: pointer; color: var(--ink-soft); transition: all 0.18s ease;
}
.tab[hidden], .tab-panel[hidden] { display: none; }
.tab:hover { border-color: var(--accent); color: var(--accent); }
.tab.active { background: var(--inverse); border-color: var(--inverse); color: var(--on-inverse); }
.tab:focus-visible, .vt-action summary:focus-visible, .vt-why summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }

/* How we verify mentors (home) */
.verify-how { padding: 70px 0; background: var(--glass); }
.verify-how h2 { font-size: 2rem; margin: 0 0 10px; }
.verify-sub { max-width: 640px; margin: 0 0 32px; color: var(--ink-soft); font-size: 1.02rem; }
.verify-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 18px; margin-bottom: 30px; }
.verify-card { background: var(--card); border-radius: var(--radius); padding: 22px; box-shadow: 0 10px 26px -18px rgba(var(--shadow-rgb), 0.3); }
.verify-card h3 { margin: 10px 0 6px; font-size: 1.05rem; font-weight: 800; }
.verify-card p { margin: 0; color: var(--ink-soft); font-size: 0.9rem; }
.verify-ico { color: var(--accent2-strong); background: var(--mint-soft); padding: 9px; box-sizing: content-box; border-radius: 14px; }
.verify-legend-title { margin: 0 0 10px; font-weight: 800; }

/* Report this mentor */
.report-section { margin-top: 28px; padding-top: 12px; border-top: 1px dashed var(--border); }
.report-box { margin-top: 10px; }
.report-box summary, .report-login a { cursor: pointer; color: var(--ink-soft); font-size: 0.85rem; font-weight: 700; min-height: 44px; display: inline-flex; align-items: center; }
.report-box summary:hover, .report-login a:hover { color: var(--accent-text); }
.report-box summary:focus-visible, .report-login a:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 6px; }
.report-form { display: grid; gap: 0; margin-top: 8px; max-width: 460px; }
.report-form .btn { justify-self: start; }
.report-login { margin: 0; }
.mv-suspend { margin-top: 16px; padding-top: 12px; border-top: 1px dashed var(--border); }

/* Trust badges */
.trust-row { display: flex; flex-wrap: wrap; gap: 6px; }
.trust-list { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.trust-badge {
  position: relative; display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px;
  background: var(--mint-soft); color: var(--accent2-text); font-size: 0.76rem; font-weight: 800; line-height: 1.3;
}
.trust-badge-lg { font-size: 0.85rem; padding: 7px 14px; min-height: 36px; cursor: help; }
.trust-badge-lg:not([tabindex]) { cursor: default; }
.trust-icon { flex: 0 0 auto; }
.trust-tip {
  position: absolute; left: 0; top: calc(100% + 8px); z-index: 30; width: max-content; max-width: min(280px, 80vw);
  background: var(--inverse); color: var(--on-inverse); padding: 10px 14px; border-radius: var(--radius-sm); font-size: 0.8rem; font-weight: 600; line-height: 1.45;
  box-shadow: 0 12px 30px -10px rgba(var(--shadow-rgb), 0.5); opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity 0.15s, transform 0.15s;
  pointer-events: none;
}
.trust-badge-lg:hover .trust-tip, .trust-badge-lg:focus .trust-tip { opacity: 1; visibility: visible; transform: none; }
.trust-badge-lg:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }

/* Verification tab: progress tracker */
.vt-summary-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
.vt-summary-head h2 { margin: 0; }
.vt-bar { height: 12px; background: var(--border); border-radius: 999px; overflow: hidden; margin: 14px 0 6px; }
.vt-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--accent2), var(--accent2-light)); border-radius: 999px; transition: width 0.5s ease; }
.vt-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.vt-main-list { margin-bottom: 22px; }
.vt-step {
  display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; background: var(--card); border-radius: var(--radius);
  padding: 18px; box-shadow: 0 10px 26px -18px rgba(var(--shadow-rgb), 0.3);
}
.vt-group { background: var(--glass); border: 2px dashed var(--border); border-radius: var(--radius); padding: 14px; }
.vt-group .vt-step { box-shadow: none; }
.vt-group-title { margin: 0 0 10px; }
.vt-icon {
  width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 1.1rem; background: var(--gray-soft); color: var(--ink-soft);
}
.vt-passed > .vt-icon { background: var(--accent2-strong); color: var(--on-accent2); }
.vt-pending > .vt-icon { background: var(--sun-soft); color: var(--sun-ink); }
.vt-failed > .vt-icon { background: var(--pink-soft); color: var(--red-strong); }
.vt-head { display: flex; justify-content: space-between; gap: 8px; align-items: center; flex-wrap: wrap; }
.vt-head h3 { margin: 0; font-size: 1rem; }
.vt-main p { margin: 4px 0 0; }
.vt-action { margin-top: 10px; }
.vt-action summary, .vt-why summary { cursor: pointer; font-weight: 800; color: var(--accent-text); min-height: 44px; display: flex; align-items: center; }
.vt-action-body { padding-top: 6px; }
.vt-form { display: grid; gap: 0; margin-top: 8px; }
.vt-form .btn { justify-self: start; }
.vt-files, .vt-slots { list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 8px; }
.vt-files li, .vt-slots li { display: flex; justify-content: space-between; gap: 10px; align-items: center; flex-wrap: wrap; background: var(--bg); border-radius: var(--radius-sm); padding: 8px 12px; font-size: 0.9rem; word-break: break-word; }
.vt-buttons { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.vt-soon { margin: 8px 0 0; padding: 10px 14px; border-radius: var(--radius-sm); background: var(--sun-soft); color: var(--sun-ink); font-size: 0.9rem; }
.vt-why ul { margin: 12px 0; padding-left: 20px; display: grid; gap: 8px; font-size: 0.92rem; }
@media (max-width: 560px) {
  .vt-step { grid-template-columns: 32px minmax(0, 1fr); gap: 10px; padding: 14px; }
  .vt-icon { width: 32px; height: 32px; font-size: 0.95rem; }
}

/* Toast */
.toast {
  position: fixed; bottom: calc(28px + env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%) translateY(30px) scale(0.9);
  background: var(--inverse); color: var(--on-inverse); padding: 13px 24px; border-radius: 999px; font-size: 0.9rem; font-weight: 700;
  opacity: 0; pointer-events: none; transition: all 0.3s cubic-bezier(.34,1.56,.64,1); z-index: 1001; max-width: 90vw; text-align: center;
  box-shadow: 0 12px 30px -10px rgba(var(--shadow-rgb), 0.5);
}
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }

@media (max-width: 860px) {
  .hero-inner { grid-template-columns: 1fr; }
  .hero-seal { display: none; }
}
@media (max-width: 560px) {
  .container { padding: 0 16px; }
  .auth-page, .expert-page, .dash, .settings { padding-left: 16px; padding-right: 16px; }
}
@media (max-width: 720px) {
  .hero h1 { font-size: 2.3rem; }
  .steps { grid-template-columns: 1fr; }
  .hero-stats { gap: 26px; }
  .become-inner { flex-direction: column; text-align: center; }
}

/* Footer links, legal pages, signup consent */
.consent { margin: 14px 0 0; text-align: center; line-height: 1.5; }
.consent a { color: var(--accent-text); font-weight: 800; }
.legal { max-width: 760px; padding-top: 48px; padding-bottom: 72px; }
.legal h1 { font-size: 2rem; margin: 0 0 6px; }
.legal-intro { font-size: 1.05rem; margin: 18px 0 8px; }
.legal-section { margin-top: 30px; }
.legal-section h2 { font-size: 1.15rem; margin: 0 0 8px; }
.legal-section p { line-height: 1.7; margin: 0 0 10px; }
/* Menu button and panel (below 1024px) ------------------------------------------------------------------- */
.nav-toggle {
  display: none; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; margin-left: auto;
  background: var(--card); border: 1px solid var(--border); border-radius: 999px; color: var(--ink); cursor: pointer;
}
.nav-toggle svg { width: 22px; height: 22px; }
.mobile-menu { position: fixed; inset: 0; z-index: 1000; }
.mobile-menu[hidden] { display: none; }
.mm-backdrop { position: absolute; inset: 0; background: var(--scrim); opacity: 0; transition: opacity 0.25s ease; }
.mm-panel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(100%, 420px); background: var(--raised);
  display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain;
  padding: max(14px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) 20px;
  border-radius: 28px 0 0 28px; box-shadow: -18px 0 50px -20px rgba(var(--shadow-rgb), 0.45);
  transform: translateX(100%); transition: transform 0.26s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.mobile-menu.is-open .mm-backdrop { opacity: 1; }
.mobile-menu.is-open .mm-panel { transform: none; }
.mm-head { display: flex; align-items: center; justify-content: space-between; min-height: 56px; }
.mm-close {
  display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0;
  background: var(--card); border: 1px solid var(--border); border-radius: 999px; color: var(--ink); cursor: pointer;
}
.mm-close svg { width: 22px; height: 22px; }
.mm-links { display: grid; margin: 10px 0 8px; }
.mm-links a {
  display: flex; align-items: center; min-height: 58px; padding: 0 4px; color: var(--ink); text-decoration: none;
  font-family: 'Baloo 2', 'Nunito', sans-serif; font-weight: 700; font-size: 1.3rem; border-bottom: 1px solid var(--border);
}
.mm-links a:hover, .mm-links a:focus-visible { color: var(--accent-text); }
.mm-lang { margin: 20px 0 8px; }
.mm-lang .lang-toggle { display: inline-flex; }
.mm-lang .lang-btn { min-height: 44px; padding: 0 22px; font-size: 0.9rem; }
.mm-actions { display: grid; gap: 10px; margin-top: auto; padding-top: 24px; }
html.menu-open, html.menu-open body { overflow: hidden; }
@media (max-width: 1023px) {
  .nav-inner { padding: 8px 16px; gap: 12px; min-height: 60px; }
  .nav-links, .nav-right .nav-actions { display: none !important; }
  .nav-right { margin-left: auto; }
  .nav-toggle { display: inline-flex; margin-left: 0; }
}
@media (max-width: 639px) {
  .mm-panel { width: 100%; border-radius: 0; box-shadow: none; }
}
/* Touch targets: everything you can tap is at least 44 px high on phones and tablets. */
@media (max-width: 1023px), (pointer: coarse) {
  .btn, .btn-sm, .chip, .tab, .lang-btn, .sort-select, .search-input { min-height: 44px; }
  .checkbox-row { min-height: 44px; }
  .star-btn { min-width: 44px; min-height: 44px; }
}

/* Empty marketplace */
.empty-state {
  grid-column: 1 / -1; text-align: center; padding: 44px 24px; background: var(--card);
  border: 2px dashed var(--border); border-radius: var(--radius);
}
.empty-state h3 { margin: 0 0 8px; font-size: 1.3rem; }
.empty-state p { margin: 0 auto 20px; max-width: 460px; color: var(--ink-soft); }
.empty-rich { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; max-width: 640px; margin: 0 auto; padding: 20px 0; }
.empty-rich h3 { margin: 4px 0 0; font-size: 1.5rem; }
.empty-rich p { margin: 0; color: var(--ink-soft); max-width: 480px; }
.empty-art { width: 220px; max-width: 70%; height: auto; }
/* About, contact, error pages */
.about-actions, .error-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 34px; }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-card { max-width: 520px; }
.contact-card textarea { width: 100%; }
.contact-done { font-weight: 700; line-height: 1.6; margin: 8px 0 0; }
.error-page { text-align: center; padding-top: 72px; padding-bottom: 96px; max-width: 560px; }
.error-code { font-family: 'Baloo 2', 'Nunito', sans-serif; font-weight: 800; font-size: 6.5rem; line-height: 1; margin: 0; color: var(--accent-strong); }
.error-page h1 { margin: 6px 0 10px; font-size: 1.8rem; }
.error-actions { justify-content: center; }
/* Fake bank page (development only) */
.mock-amount { font-family: 'Baloo 2', 'Nunito', sans-serif; font-weight: 800; font-size: 2.4rem; margin: 6px 0 14px; }
.mock-actions { display: grid; gap: 10px; }

/* Earnings (mentor dashboard) and payouts (admin) */
.earn-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; margin: 6px 0 12px; }
.earn-card { background: var(--card); border-radius: var(--radius-sm); padding: 16px 18px; box-shadow: 0 10px 26px -18px rgba(var(--shadow-rgb), 0.35); }
.earn-card span { display: block; color: var(--ink-soft); font-size: 0.82rem; font-weight: 700; }
.earn-card strong { display: block; font-family: 'Baloo 2', 'Nunito', sans-serif; font-size: 1.5rem; margin-top: 2px; }
.earn-card.warn strong { color: var(--red-strong); }
.earn-h { margin: 22px 0 8px; font-size: 1.05rem; }
.earn-list { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 8px; }
.earn-list li { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.2fr) auto; gap: 12px; align-items: center; background: var(--card); border-radius: var(--radius-sm); padding: 12px 16px; font-size: 0.92rem; }
.earn-list li strong { text-align: right; white-space: nowrap; }
.payout-toolbar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.payout-pay { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-top: 10px; }
.payout-pay input { flex: 1 1 220px; }
.dev-ff { border-top: 1px dashed var(--border); padding-top: 10px; }
.dev-ff input { flex: 0 0 96px; width: 96px; }
.iban-line { letter-spacing: 0.04em; user-select: all; }
@media (max-width: 560px) {
  .earn-list li { grid-template-columns: 1fr auto; }
  .earn-list li span:nth-child(2) { grid-column: 1 / -1; order: 3; }
}.payout-pay input, .reject-note-input {
  padding: 10px 16px; border-radius: var(--radius-sm); border: 2px solid var(--border); background: var(--field);
  font-family: 'Nunito', sans-serif; font-size: 0.92rem; color: var(--ink);
}
.payout-pay input:focus, .reject-note-input:focus { border-color: var(--accent); }
/* Mentor verification review (admin) */
.badge-muted { background: var(--gray-soft); color: var(--ink-soft); }
.mv-body { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 14px; }
.mv-steps { display: grid; gap: 10px; margin: 12px 0; }
.mv-step, .mv-group { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 12px 14px; }
.mv-group { display: grid; gap: 10px; background: var(--bg); }
.mv-group .mv-step { border-style: dashed; }
.mv-step-head { display: flex; justify-content: space-between; gap: 10px; align-items: center; flex-wrap: wrap; }
.mv-evidence { list-style: none; margin: 8px 0 0; padding: 0; font-size: 0.88rem; word-break: break-word; }
.mv-decide { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 10px; }
.mv-decide input { flex: 1 1 220px; }
.mv-final { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-top: 14px; }
.mv-reject { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-left: auto; }
.mv-decide input, .mv-reject input {
  padding: 10px 14px; border-radius: var(--radius-sm); border: 2px solid var(--border); background: var(--field);
  font-family: 'Nunito', sans-serif; font-size: 0.9rem; color: var(--ink);
}
.mv-decide input:focus, .mv-reject input:focus { border-color: var(--accent); }
.mv-credentials, .mv-kyc { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 12px 14px; margin: 10px 0; }
.mv-docs { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.mv-docs li { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; word-break: break-word; }
.mv-audit { margin-top: 14px; }
.mv-audit summary { cursor: pointer; font-weight: 700; padding: 6px 0; }
.mv-audit summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 6px; }
/* Footer: brand and three link columns. Two by two on tablets, stacked on phones. */
@media (max-width: 1023px) {
  .footer-top { grid-template-columns: 1fr 1fr; gap: 30px 28px; }
}
@media (max-width: 639px) {
  .footer { padding-top: 40px; }
  .footer-top { grid-template-columns: 1fr; gap: 26px; }
  .footer-col a { min-height: 44px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 14px; }
}
@media (pointer: coarse) { .footer-col a { min-height: 44px; } }
img, svg, video { max-width: 100%; }

/* Browse: search, filters, count ---------------------------------------------------------------------------- */
.browse-controls { display: flex; align-items: center; gap: 14px; }
.filters-btn { display: none; gap: 8px; }
.filters-count {
  min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--accent-strong); color: var(--on-accent);
  font-size: 0.78rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center;
}
.result-count { margin: 0; font-weight: 700; font-size: 0.9rem; color: var(--ink-soft); white-space: nowrap; }
.filters-slot .filters { margin-bottom: 36px; }
@media (max-width: 639px) {
  .browse-toolbar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-bottom: 14px; }
  .search-input { width: 100%; min-width: 0; font-size: 1rem; }
  .filters-btn { display: inline-flex; }
  .browse-controls { justify-content: space-between; }
  .sort-slot:not(:has(select)) { display: none; }
  .filters-slot { display: none; }
}

/* Bottom sheet (phones): Browse's filters and the expert page's question form ------------------------------ */
.sheet { position: fixed; inset: 0; z-index: 1000; }
.sheet[hidden] { display: none; }
.sheet-backdrop { position: absolute; inset: 0; background: var(--scrim); opacity: 0; transition: opacity 0.25s ease; }
.sheet-panel {
  position: absolute; left: 0; right: 0; bottom: 0; max-height: 90vh; max-height: 90dvh; display: flex; flex-direction: column;
  background: var(--raised); border-radius: 26px 26px 0 0; box-shadow: 0 -18px 50px -20px rgba(var(--shadow-rgb), 0.45);
  transform: translateY(100%); transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1);
  padding-bottom: env(safe-area-inset-bottom);
}
.sheet.is-open .sheet-backdrop { opacity: 1; }
.sheet.is-open .sheet-panel { transform: none; }
.sheet-grip { width: 44px; height: 5px; border-radius: 999px; background: var(--grip); margin: 10px auto 0; flex: 0 0 auto; }
.sheet-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 20px 4px; flex: 0 0 auto; }
.sheet-head h2 { margin: 0; font-size: 1.3rem; }
.sheet-close {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; cursor: pointer;
  background: var(--card); border: 1px solid var(--border); border-radius: 999px; color: var(--ink);
}
.sheet-body { overflow-y: auto; overscroll-behavior: contain; padding: 4px 20px 12px; flex: 1 1 auto; }
.sheet-label { margin: 14px 0 8px; font-weight: 800; font-size: 0.82rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-soft); }
.sheet-body .sort-select { width: 100%; min-height: 48px; font-size: 1rem; }
.sheet-body .filters { margin: 0 0 8px; gap: 10px; }
.sheet-foot { display: flex; gap: 10px; padding: 12px 20px; border-top: 1px solid var(--border); flex: 0 0 auto; background: var(--raised); }
.sheet-foot .btn { flex: 1 1 0; }
.sheet-foot .btn-primary { flex: 2 1 0; }
html.sheet-open, html.sheet-open body { overflow: hidden; }
@media (min-width: 640px) { .sheet { display: none !important; } }
/* Forms on tablets and phones: fields as wide as the card, 16px text (so iOS does not zoom in), room to tap */
@media (max-width: 1023px) {
  input, select, textarea { font-size: 16px; }
  .forgot-row a, .auth-switch a { min-height: 44px; }
  .form-error { font-size: 0.9rem; }
}
@media (min-width: 640px) and (max-width: 860px) {
  .auth-page .auth-card { max-width: 560px; }
}
/* Tap targets on tablets and phones: the logo, language buttons and small links are at least 44px */
@media (max-width: 1023px), (pointer: coarse) {
  .lang-btn { min-width: 44px; }
  .breadcrumb a { min-height: 44px; }
  a.tag { min-height: 44px; }
  .plain-link { display: inline-flex; align-items: center; min-height: 44px; }
}@media (max-width: 1023px) {
  .search-input, .sort-select, .payout-pay input, .mv-decide input, .mv-reject input, .reject-note-input, .waitlist-form input, .waitlist-form select { font-size: 16px; }
}
/* Before launch the panel is the waiting-list form: no card inside a card */
.prelaunch-panel .waitlist-form { background: transparent; box-shadow: none; padding: 6px 0 0; }
.prelaunch-panel .waitlist-form h3 { font-size: 1.05rem; }
/* On a phone the footer starts below the fold while the page fills in, so it never jumps into view */
@media (max-width: 639px) {
  .expert-wrap, .dash, .settings { min-height: 100vh; min-height: 100svh; }
}@media (max-width: 1023px) { .breadcrumb { min-height: 44px; } }
/* Theme choice: the header button with its menu (desktop), the three-way switch in the menu panel (phones) ---------------------- */
.theme-switch { position: relative; }
.theme-btn {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border-radius: 999px;
  background: var(--card); border: 1px solid var(--border); color: var(--ink); cursor: pointer;
  box-shadow: 0 2px 8px -3px rgba(var(--shadow-rgb), 0.18);
}
.theme-btn:hover { border-color: var(--accent); color: var(--accent-text); }
.theme-menu {
  position: absolute; right: 0; top: calc(100% + 8px); z-index: 60; min-width: 168px; padding: 6px;
  background: var(--raised); border: 1px solid var(--border); border-radius: var(--radius-sm); box-shadow: 0 16px 36px -14px rgba(var(--shadow-rgb), 0.45);
}
.theme-menu[hidden] { display: none; }
.theme-item {
  display: flex; align-items: center; gap: 10px; width: 100%; min-height: 44px; padding: 0 12px; border: none; border-radius: 10px;
  background: transparent; color: var(--ink); font: 700 0.92rem 'Nunito', sans-serif; text-align: left; cursor: pointer;
}
.theme-item::before { content: ''; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--field-border); flex: 0 0 auto; }
.theme-item[aria-checked="true"]::before { border-color: var(--accent-strong); background: var(--accent-strong); }
.theme-item:hover { background: var(--gray-soft); }
.theme-item:focus-visible { outline: 3px solid var(--accent-strong); outline-offset: -3px; }
.mm-theme { margin: 6px 0 8px; display: grid; gap: 8px; }
.mm-label { font-size: 0.8rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink-soft); }
.theme-seg { display: inline-flex; width: max-content; max-width: 100%; padding: 3px; gap: 2px; border-radius: 999px; background: var(--card); box-shadow: 0 2px 8px -3px rgba(var(--shadow-rgb), 0.18); }
.theme-seg-btn { min-height: 44px; padding: 0 20px; border: none; border-radius: 999px; background: transparent; color: var(--ink-soft); font: 800 0.9rem 'Nunito', sans-serif; cursor: pointer; }
.theme-seg-btn[aria-checked="true"] { background: var(--accent-strong); color: var(--on-accent); }
@media (max-width: 1023px) { .theme-switch { display: none; } }

/* A short colour fade when the theme is switched by hand (added by public/js/theme-init.js for a third of a second; never on load) */
html.theme-switching, html.theme-switching *, html.theme-switching *::before, html.theme-switching *::after {
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, fill 0.25s ease, stroke 0.25s ease !important;
}

/* Dark theme details */
.avatar-photo { box-shadow: 0 0 0 1px var(--border); } /* a photo never melts into the page */
::placeholder { color: var(--ink-soft); opacity: 0.85; }
input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {
  -webkit-text-fill-color: var(--ink); box-shadow: 0 0 0 100px var(--field) inset; caret-color: var(--ink);
}
[data-theme="dark"] img.doc-preview { filter: none; }