:root {
  --charcoal: #1f1f22;
  --black: #131314;
  --line: #2b2b2e;
  --cream: #efeae3;
  --cream-soft: #f3f1ec;
  --cyan: #2cadc5;
  --gold: #bea64c;
  --gold-warm: #d4a057;
  --slate: #667380;
  --plum: #36233b;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--charcoal);
  color: var(--cream);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
.container { width: min(1120px, calc(100% - 48px)); margin: 0 auto; }
h1, h2, h3 { font-family: Arapey, Georgia, serif; font-weight: 400; line-height: 1.15; margin: 0; }
h1 { max-width: 900px; margin: 0 auto 24px; text-align: center; font-size: clamp(3rem, 7vw, 6rem); color: var(--cream-soft); }
h2 { font-size: clamp(3rem, 5vw, 5rem); color: var(--cream); }
p { line-height: 1.7; }
.section-dark { position: relative; overflow: hidden; isolation: isolate; }
.image-bg {
  position: absolute;
  inset: 0;
  z-index: -3;
  background-image: var(--bg-image), linear-gradient(135deg, var(--fallback-1), var(--fallback-2));
  background-size: cover;
  background-position: center;
}
.image-bg.muted { opacity: .55; filter: brightness(.8); }

.hero { min-height: 760px; display: flex; align-items: center; }
.hero .image-bg { background-position: bottom center; opacity: .8; }
.hero-overlay {
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(to bottom, rgba(45, 27, 61, .7), rgba(61, 38, 69, .6), rgba(74, 48, 80, .72));
}
.hero-inner { position: relative; z-index: 2; padding: 80px 0 120px; text-align: center; }
.brand { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; margin-bottom: 56px; text-decoration: none; }
.brand-logo { max-height: clamp(128px, 14vw, 176px); width: auto; object-fit: contain; }
.brand-fallback-mark, .brand-fallback-title, .brand-fallback-subtitle { display: none; }
.brand.brand-fallback .brand-fallback-mark {
  width: 82px; height: 82px; display: grid; place-items: center; border: 1px solid rgba(190,166,76,.5); border-radius: 50%; color: var(--gold); font-size: 42px; box-shadow: 0 0 60px rgba(44,173,197,.12);
}
.brand.brand-fallback .brand-fallback-title { display: block; margin-top: 14px; font-family: Arapey, Georgia, serif; font-size: clamp(2.5rem, 5vw, 4.7rem); letter-spacing: .03em; color: var(--cream-soft); }
.brand.brand-fallback .brand-fallback-subtitle { display: block; color: var(--gold); letter-spacing: .22em; text-transform: uppercase; font-size: .8rem; }
.intro { max-width: 760px; margin: 0 auto 28px; font-size: 1.25rem; color: rgba(243,241,236,.9); }
.location { display: flex; align-items: center; justify-content: center; gap: 10px; color: var(--cyan); font-size: 1.08rem; margin: 0 0 40px; }
.button { display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 8px; padding: 18px 28px; text-decoration: none; font-weight: 600; transition: transform .2s ease, filter .2s ease, opacity .2s ease; }
.button:hover { transform: translateY(-2px); filter: brightness(1.08); }
.button-primary { background: var(--cyan); color: var(--charcoal); box-shadow: 0 0 20px rgba(44,173,197,.3), 0 4px 12px rgba(0,0,0,.2); }
.button-full { width: 100%; margin-top: 24px; }
.button-large { padding: 22px 36px; font-size: 1.15rem; }
.celestial-lines { position: absolute; inset: 0; z-index: -1; opacity: .18; pointer-events: none; background-image: radial-gradient(circle at 10% 20%, transparent 0 115px, var(--gold) 116px 117px, transparent 118px), radial-gradient(circle at 90% 80%, transparent 0 160px, var(--gold) 161px 162px, transparent 163px), linear-gradient(35deg, transparent 0 64%, rgba(190,166,76,.24) 64.1% 64.25%, transparent 64.4%); }

.services { padding: 112px 0; background: linear-gradient(to bottom, #36233b, #1a1a1c, #131314); }
.ornament-field { position: absolute; inset: 0; opacity: .18; background-image: radial-gradient(circle at 5% 15%, transparent 0 99px, var(--gold) 100px 101px, transparent 102px), radial-gradient(circle at 95% 85%, transparent 0 149px, var(--gold) 150px 151px, transparent 152px), radial-gradient(circle at 50% 50%, transparent 0 199px, var(--gold) 200px 201px, transparent 202px), radial-gradient(circle at 25% 35%, var(--gold) 0 3px, transparent 4px), radial-gradient(circle at 75% 65%, var(--gold) 0 3px, transparent 4px); pointer-events: none; }
.section-heading { position: relative; z-index: 1; text-align: center; max-width: 820px; margin: 0 auto 48px; }
.section-heading p { color: rgba(239,234,227,.92); font-size: 1.06rem; margin: 20px auto 0; }
.divider { display: block; height: 1px; width: 48px; background: rgba(44,173,197,.5); margin: 24px auto 0; }
.service-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.service-card { background: rgba(243,241,236,.08); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; backdrop-filter: blur(6px); transition: border-color .3s ease, transform .3s ease; }
.service-card:hover { border-color: rgba(44,173,197,.45); transform: translateY(-3px); }
.service-card-image { min-height: 256px; position: relative; display: flex; align-items: center; overflow: hidden; background-image: var(--card-image); background-size: cover; background-position: center; }
.service-card-fallback { position: absolute; inset: 0; z-index: -1; }
.chart-fallback { background: radial-gradient(circle at center, rgba(190,166,76,.15) 0 2px, transparent 3px), repeating-conic-gradient(from 0deg, rgba(190,166,76,.22) 0deg 1deg, transparent 1deg 30deg), radial-gradient(circle at center, transparent 0 35%, rgba(190,166,76,.23) 35.3% 35.8%, transparent 36.1% 52%, rgba(190,166,76,.18) 52.3% 52.8%, transparent 53.1%), linear-gradient(135deg, #2d1b3d, #1f1f22); }
.location-fallback { background: linear-gradient(135deg, #3d2645, #1f1f22); }
.image-overlay, .gold-overlay { position: absolute; inset: 0; }
.image-overlay { background: linear-gradient(to right, rgba(31,31,34,.88), rgba(31,31,34,.5), transparent); }
.gold-overlay { background: var(--gold-warm); opacity: .15; }
.service-title-wrap { position: relative; z-index: 1; padding: 32px; }
.service-title-wrap h3 { font-size: clamp(2.35rem, 4vw, 3.4rem); font-weight: 700; color: var(--cream); text-shadow: 0 2px 4px rgba(0,0,0,.5); }
.service-title-wrap p { color: var(--cyan); margin: 8px 0 0; opacity: .95; }
.service-card-body { padding: 40px; }
.service-card-body > p { color: rgba(239,234,227,.85); margin-top: 0; }
.meta strong { color: var(--cyan); }
.text-link { display: inline-flex; align-items: center; gap: 10px; color: var(--cyan); text-underline-offset: 4px; letter-spacing: .03em; transition: opacity .2s ease; }
.text-link:hover { opacity: .8; }

.sessions { padding: 80px 0 120px; }
.sessions .image-bg { filter: brightness(.55); }
.sessions-overlay { position: absolute; inset: 0; z-index: -2; background: linear-gradient(to bottom, #131314 0%, rgba(31,31,34,.62) 22%, rgba(31,31,34,.66) 70%, #131314 100%); }
.steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin: 0 0 48px; }
.step-card, .info-box, .bio-card { background: rgba(31,31,34,.72); border: 1px solid rgba(44,173,197,.22); border-radius: 10px; backdrop-filter: blur(3px); }
.step-card { padding: 32px; text-align: center; }
.step-number { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 20px; border-radius: 50%; border: 2px solid var(--cyan); background: rgba(44,173,197,.25); font-family: Arapey, Georgia, serif; font-size: 2rem; color: var(--cyan); }
.step-card h3 { color: var(--cyan); font-size: 1.7rem; }
.step-card p { color: rgba(239,234,227,.84); }
.info-box { max-width: 760px; margin: 0 auto 96px; padding: 32px; text-align: center; border-color: rgba(44,173,197,.34); }
.sparkle { color: var(--cyan); font-size: 2rem; }
.info-box p { color: rgba(239,234,227,.9); font-size: 1.05rem; }
.info-box .accent { color: rgba(44,173,197,.95); font-weight: 600; }
.bio-section { position: relative; text-align: center; }
.bio-section h2 { margin-bottom: 48px; }
.hummingbird-watermark { position: absolute; width: min(900px, 96vw); height: auto; left: 50%; top: 50%; transform: translate(-50%, -50%); opacity: .03; pointer-events: none; z-index: 0; }
.bio-card { position: relative; z-index: 1; max-width: 780px; margin: 0 auto; padding: 48px; border-color: rgba(44,173,197,.16); box-shadow: 0 0 40px rgba(44,173,197,.08); }
.profile-wrap { width: 192px; height: 192px; margin: 0 auto 28px; border-radius: 50%; overflow: hidden; border: 2px solid var(--cyan); }
.profile-wrap img { width: 100%; height: 100%; object-fit: cover; }
.bio-card h3 { font-size: 2.6rem; color: var(--cyan); margin-bottom: 28px; }
.bio-copy { text-align: left; }
.bio-copy p { color: rgba(239,234,227,.92); font-size: 1.08rem; }
.read-more { display: block; margin: 30px auto 0; background: none; border: 0; color: var(--cyan); font: inherit; font-size: 1.08rem; cursor: pointer; }
.read-more:hover { opacity: .82; }

.final-cta { padding: 190px 0; text-align: center; }
.cta-overlay { position: absolute; inset: 0; z-index: -2; background: linear-gradient(135deg, rgba(45,27,61,.88) 0%, rgba(61,38,69,.88) 50%, rgba(74,48,80,.9) 100%); }
.cta-inner { position: relative; z-index: 1; }
.final-cta h2 { margin-bottom: 20px; }
.final-cta p { color: rgba(239,234,227,.9); font-size: 1.2rem; margin-bottom: 34px; }
.cta-hummingbird { position: absolute; width: min(600px, 80vw); left: 50%; top: 50%; transform: translate(-50%, -50%); opacity: .12; filter: brightness(.7); z-index: -1; }
.cta-stars { position: absolute; inset: 0; pointer-events: none; opacity: .2; background-image: radial-gradient(circle at 10% 20%, var(--gold) 0 2px, transparent 3px), radial-gradient(circle at 30% 14%, var(--gold) 0 1.5px, transparent 2.5px), radial-gradient(circle at 86% 28%, var(--gold) 0 2.5px, transparent 3.5px), radial-gradient(circle at 14% 70%, var(--gold) 0 2px, transparent 3px), radial-gradient(circle at 78% 76%, var(--gold) 0 2px, transparent 3px); }
.site-footer { border-top: 1px solid var(--line); background: var(--charcoal); padding: 28px 0; }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.footer-inner p { margin: 0; color: var(--slate); font-size: .9rem; }

@media (max-width: 900px) {
  .service-grid, .steps-grid { grid-template-columns: 1fr; }
  .hero { min-height: auto; }
  .footer-inner { justify-content: center; text-align: center; }
}
@media (max-width: 640px) {
  .container { width: min(100% - 32px, 1120px); }
  .hero-inner { padding: 56px 0 88px; }
  .services { padding: 76px 0; }
  .service-card-body, .bio-card { padding: 28px; }
  .service-title-wrap { padding: 24px; }
  .location { flex-direction: column; font-size: 1rem; }
  .final-cta { padding: 120px 0; }
  .brand.brand-fallback .brand-fallback-mark { width: 66px; height: 66px; font-size: 34px; }
}
