/* ============================================================
   Ezoterium — strona doradcy (doradca.php)

   Kolor systemu wjeżdża zmiennymi --c / --c-… ustawianymi na <body>,
   więc jeden arkusz obsługuje wszystkie pięć klimatów.
   ============================================================ */

:root {
  --bg: #07061a;
  --ink: #f4eefe;
  --ink-soft: rgba(238, 233, 252, .9);
  --ink-mute: rgba(226, 220, 248, .78);
  --ink-faint: rgba(214, 208, 240, .6);
  --serif-display: 'Cormorant Garamond', Georgia, serif;
  --serif-text: 'Manrope', 'Segoe UI', system-ui, sans-serif;
  /* półprzezroczyste pola na treść */
  --panel: rgba(13, 10, 36, .55);
  --panel-strong: rgba(13, 10, 36, .68);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--serif-text);
  -webkit-text-size-adjust: 100%;
}

body { overflow-x: hidden; }

h1, h2 { font-family: var(--serif-display); font-weight: 500; }

:focus-visible {
  outline: 2px solid var(--c-light, #f3e6c4);
  outline-offset: 3px;
}

/* ---------- animacje ---------- */
@keyframes tw     { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
@keyframes dr     { 0%, 100% { transform: translateY(6px) rotate(var(--r, 0deg)); opacity: .28; } 50% { transform: translateY(-10px) rotate(var(--r, 0deg)); opacity: .55; } }
@keyframes nebula { 0%, 100% { transform: scale(1) translate(0, 0); } 50% { transform: scale(1.08) translate(2%, -2%); } }
@keyframes riseIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* ============================================================
   NIEBO — tło w klimacie systemu
   ============================================================ */

.adv__sky {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.adv__nebula {
  position: absolute;
  inset: -12%;
  background:
    radial-gradient(46% 38% at 24% 18%, var(--c-14) 0%, transparent 70%),
    radial-gradient(52% 44% at 78% 74%, var(--c-10) 0%, transparent 72%),
    radial-gradient(120% 90% at 50% 12%, #16103a 0%, #0c0828 46%, var(--bg) 100%);
  animation: nebula 26s ease-in-out infinite;
}

.adv__vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 100% at 50% 40%, transparent 55%, rgba(4, 3, 14, .7) 100%);
}

.star {
  position: absolute;
  left: var(--l); top: var(--t);
  width: var(--s); height: var(--s);
  border-radius: 50%;
  background: #fff;
  opacity: .5;
  animation: tw var(--du) ease-in-out var(--d) infinite;
}

.glyph {
  position: absolute;
  left: var(--l); top: var(--t);
  font-size: var(--s);
  line-height: 1;
  color: var(--c-30);
  text-shadow: 0 0 18px var(--c-22);
  animation: dr var(--du) ease-in-out var(--d) infinite;
}

.tcard {
  position: absolute;
  left: var(--l); top: var(--t);
  width: var(--s);
  aspect-ratio: 5 / 8;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--c-30);
  border-radius: 12% / 8%;
  background: linear-gradient(160deg, var(--c-14), rgba(10, 7, 30, .5));
  color: var(--c-45);
  font-size: calc(var(--s) * .42);
  animation: dr var(--du) ease-in-out var(--d) infinite;
}

.constellation {
  position: absolute;
  width: min(420px, 44vw);
  color: var(--c-70);
  fill: currentColor;
  opacity: .5;
}
.constellation--a { left: 4%; top: 10%; }
.constellation--b { right: 3%; bottom: 12%; }

/* ============================================================
   GÓRNA BELKA
   ============================================================ */

.topbar {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px clamp(16px, 4vw, 36px);
}

.topbar__back,
.topbar__go {
  font-size: 12.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ink-mute);
  white-space: nowrap;
}
.topbar__back:hover, .topbar__go:hover { color: #fff; }
.topbar__go { color: var(--c-light); }

.topbar__mark {
  font-size: 13px;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--c-light);
  text-shadow: 0 0 18px var(--c-45);
}

@media (max-width: 560px) {
  .topbar__go { display: none; }
}

/* ============================================================
   TREŚĆ
   ============================================================ */

.page {
  position: relative;
  z-index: 1;
  padding: clamp(10px, 3vh, 30px) clamp(16px, 4vw, 36px) clamp(40px, 7vh, 80px);
}

.card {
  width: 100%;
  max-width: 820px;
  margin: 0 auto;
  animation: riseIn .6s ease both;
}

.eyebrow {
  font-size: 11.5px;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--c-light);
  opacity: .85;
}

/* ---------- pola na treść ---------- */

.hero, .about, .quote, .review {
  border: 1px solid var(--c-22);
  border-radius: 18px;
  background: var(--panel);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 14px 38px rgba(0, 0, 0, .4), inset 0 0 40px var(--c-10);
}

/* ---------- nagłówek: duże zdjęcie + wizytówka ---------- */

.hero {
  display: grid;
  grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
  gap: clamp(20px, 3.5vw, 36px);
  align-items: center;
  padding: clamp(18px, 3vw, 30px);
}

.hero__photo {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid var(--c-45);
  border-radius: 14px;
  background: linear-gradient(160deg, var(--c-14), rgba(9, 6, 26, .8));
  box-shadow: 0 18px 44px rgba(0, 0, 0, .5), 0 0 44px var(--c-22);
}
.hero__photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 50% 30%;
  display: block;
}
.hero__silhouette {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-45);
}

.hero__name {
  margin: 12px 0 0;
  font-size: clamp(30px, 5vw, 46px);
  line-height: 1.05;
  color: var(--ink);
}

.hero__lead {
  margin: 12px 0 0;
  font-family: var(--serif-display);
  font-style: italic;
  font-size: clamp(16px, 2.2vw, 20px);
  line-height: 1.45;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.hero__tags {
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.hero__tag {
  padding: 5px 14px;
  border: 1px solid var(--c-30);
  border-radius: 20px;
  background: var(--c-10);
  font-size: 12.5px;
  letter-spacing: .08em;
  color: var(--c-light);
  white-space: nowrap;
}

/* zaproszenie — cytat doradcy obok zdjęcia */
.hero__invite {
  margin: 18px 0 0;
  padding-left: 14px;
  border-left: 2px solid var(--c-45);
  font-family: var(--serif-display);
  font-style: italic;
  font-size: clamp(16px, 2.2vw, 19px);
  line-height: 1.55;
  color: rgba(244, 238, 254, .92);
  text-wrap: pretty;
}

/* ---------- przycisk ---------- */

.cta {
  display: inline-block;
  margin-top: 20px;
  padding: 12px 26px;
  border: 1px solid var(--c);
  border-radius: 26px;
  background: var(--c-14);
  color: var(--c-light);
  font-size: 13px;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: 0 0 22px var(--c-22);
  transition: background .3s ease, color .3s ease, box-shadow .3s ease;
}
.cta:hover {
  background: var(--c-30);
  color: #fff;
  box-shadow: 0 0 34px var(--c-45);
}

/* ---------- dłuższy opis ---------- */

.about {
  margin-top: clamp(18px, 3vh, 28px);
  padding: clamp(20px, 3vw, 30px) clamp(20px, 3.2vw, 34px);
}

.about__head {
  margin: 0;
  font-size: clamp(20px, 2.8vw, 26px);
  color: var(--ink);
}

.about p {
  margin: 14px 0 0;
  font-size: 16px;
  line-height: 1.72;
  color: var(--ink-soft);
  text-wrap: pretty;
}

/* ---------- kilka słów od doradcy ---------- */

.quote {
  position: relative;
  margin: clamp(18px, 3vh, 28px) 0 0;
  padding: clamp(24px, 3.4vw, 34px) clamp(22px, 3.4vw, 34px) clamp(22px, 3vw, 30px);
}
.quote::before {
  content: '„';
  position: absolute;
  top: -12px; left: 18px;
  font-family: var(--serif-display);
  font-size: 74px;
  line-height: 1;
  color: var(--c-light);
  opacity: .32;
  pointer-events: none;
}

.quote__label {
  position: relative;
  font-size: 11.5px;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--c-light);
  opacity: .8;
  text-align: center;
}

.quote p {
  position: relative;
  margin: 14px 0 0;
  font-family: var(--serif-display);
  font-style: italic;
  font-size: clamp(18px, 2.6vw, 23px);
  line-height: 1.55;
  color: rgba(244, 238, 254, .94);
  text-align: center;
  text-wrap: pretty;
}

.quote__sign {
  margin: 16px 0 0;
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ink-faint);
  text-align: center;
}

/* ---------- opinie ---------- */

.reviews { margin-top: clamp(24px, 4vh, 40px); }

.reviews__head { text-align: center; }
.reviews__title {
  margin: 10px 0 0;
  font-size: clamp(22px, 3.2vw, 30px);
  color: var(--ink);
}

.reviews__grid {
  margin-top: clamp(18px, 3vh, 28px);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 16px;
}

.review {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 18px 20px 16px;
  border-radius: 14px;
}

.review__stars {
  font-size: 13px;
  letter-spacing: .22em;
  color: var(--c-light);
  text-shadow: 0 0 12px var(--c-45);
}

.review__text {
  margin: 12px 0 0;
  flex: 1;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.review__author {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--c-22);
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--c-light);
  opacity: .8;
}

/* ---------- stopka ---------- */

.foot {
  margin-top: clamp(26px, 4.5vh, 44px);
  padding-top: clamp(20px, 3vh, 30px);
  border-top: 1px solid var(--c-22);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.foot .cta { margin-top: 0; }

.foot__back {
  font-size: 12.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-mute);
  text-decoration: none;
}
.foot__back:hover { color: #fff; }

/* ---------- wąskie ekrany ---------- */

@media (max-width: 640px) {
  .hero {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
  .hero__photo { width: min(260px, 74vw); }
  .hero__tags { justify-content: center; }
  .hero__invite { text-align: left; }
}
