@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:ital,wght@0,400;1,400&display=swap');
:root{--plum:#40274e;--gold:#a98347;--muted:#746c77;--line:#e5dce5;--cream:#fbf8f3}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--cream);color:var(--plum);font:16px/1.7 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,summary{cursor:pointer}:focus-visible{outline:3px solid var(--gold);outline-offset:4px}img{display:block;width:100%;height:auto;object-fit:cover}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:400;line-height:1.15}h1{font-size:clamp(44px,4.8vw,76px);letter-spacing:-2.5px}h2{font-size:clamp(32px,3.2vw,47px);letter-spacing:-1px}h3{font-size:25px}em{color:#967139}p{color:var(--muted);margin:18px 0}.wrap{max-width:1240px;margin-inline:auto;width:calc(100% - 96px)}.topbar{padding:8px 48px;background:#2c1937;color:#efe6f1;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.7px}header{position:sticky;top:0;z-index:10;background:#fbf8f3f5;border-bottom:1px solid var(--line);padding:21px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:10px;font:26px Georgia,serif;white-space:nowrap}.brand b{font-weight:400;color:var(--gold)}.brand small{display:block;font:8px/2.4 Arial;letter-spacing:2px}.brand-symbol{font-size:43px;color:var(--gold)}nav{display:flex;gap:24px;font-size:13px}nav a[aria-current],nav a:hover{color:var(--gold)}.button{display:inline-flex;justify-content:center;align-items:center;gap:24px;background:var(--plum);color:white;border:1px solid var(--plum);border-radius:5px;padding:15px 23px;font-size:13px;font-weight:600}.button:hover{background:#624274}.header-cta{padding:12px 17px;font-size:12px}.text-link{font-size:13px;font-weight:600;display:inline-flex;justify-content:space-between;gap:24px}.text-link:hover{color:var(--gold)}.eyebrow{display:block;font-size:10px;letter-spacing:2px;font-weight:700;color:var(--gold);margin-bottom:20px}.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:58px;align-items:center;padding-block:58px 62px}.hero-copy>p{max-width:490px;font-size:17px;line-height:1.8;margin:25px 0 29px}.actions{display:flex;align-items:center;gap:26px}.hero-notes{display:flex;gap:22px;margin-top:31px;font-size:11px;color:var(--muted)}.hero-art{position:relative}.hero-art img{height:500px;border-radius:160px 160px 12px 12px}.image-caption{position:absolute;bottom:22px;left:22px;right:22px;background:#fbf8f3ef;padding:16px 22px;border-radius:4px}.image-caption span{font-size:8px;letter-spacing:2px;display:block;color:var(--gold)}.image-caption b{font:21px Georgia}.specialties{display:flex;justify-content:center;gap:40px;flex-wrap:wrap;padding:23px 30px;background:#f0e9f1;border-block:1px solid var(--line);font-size:10px;letter-spacing:1.8px;color:#73577f}.section{padding-block:78px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:33px}.section-heading p{max-width:290px;font-size:14px;margin:0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.service-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;scroll-margin-top:120px;display:flex;flex-direction:column}.card-photo{position:relative;overflow:hidden}.service-card img{height:220px}.card-photo>span{position:absolute;bottom:14px;left:17px;background:#fffef8ed;font-size:10px;padding:4px 12px;border-radius:20px}.card-body{padding:26px;display:flex;flex-direction:column;flex:1}.card-body p{font-size:14px;line-height:1.8}.card-body .text-link{border-top:1px solid var(--line);padding-top:17px;margin-top:auto}.card-body details{font-size:12px;margin-bottom:20px;color:var(--muted)}.card-body h2{font-size:28px}.split{display:grid;grid-template-columns:1fr 1fr;gap:74px;align-items:center;padding-block:48px}.split img{height:480px;border-radius:10px}.checks{padding:0;list-style:none;margin:26px 0;font-size:14px}.checks li{padding:7px 0}.checks li:before{content:'✧';color:var(--gold);margin-right:13px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;border-top:1px solid var(--line);padding-top:28px}.steps article>span{font:30px Georgia;color:#bba475;display:block;margin-bottom:25px}.steps h3{font-size:23px}.steps p{font-size:13px}.topics{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:30px}.topics a{display:flex;justify-content:space-between;border:1px solid var(--line);border-radius:5px;padding:24px;font-size:14px;background:#fff}.topics a:hover{background:#eee4f0}.cta{display:grid;grid-template-columns:1fr 1fr;gap:90px;background:var(--plum);color:white;padding:50px 60px;border-radius:12px;margin-block:50px 80px}.cta p{color:#e0d3e5;max-width:340px}.cta em,.cta .eyebrow{color:#dfc08f}.light{background:var(--cream);color:var(--plum)}footer{background:#f0e9ef;padding:58px 48px 25px}.footer-grid{max-width:1240px;margin:auto;display:grid;grid-template-columns:1.6fr 1fr 1.3fr;gap:60px}.footer-grid h3{font:600 12px Arial;margin-bottom:18px}.footer-grid p,.footer-grid a:not(.brand){font-size:13px}.footer-grid>div>a:not(.brand){display:block;margin-bottom:9px}.footer-bottom{border-top:1px solid #dbd0df;padding-top:22px;margin:35px auto 0;max-width:1240px;display:flex;gap:28px;flex-wrap:wrap;font-size:10px;color:var(--muted)}.whatsapp{position:fixed;bottom:20px;right:22px;background:#306950;color:white;padding:10px 19px;border-radius:25px;box-shadow:0 3px 15px #0002;font-size:12px;z-index:12}.page-intro{padding-block:62px 48px}.page-intro p{max-width:700px;font-size:17px}.filters{background:#f0e9ef;padding:25px;border-radius:10px;margin-bottom:22px}.search{display:block;font-size:12px;max-width:450px;margin-bottom:20px}.filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.filter-buttons button{border:1px solid #d3c4d9;border-radius:20px;padding:8px 16px;background:transparent;color:var(--plum);font-size:12px}.filter-buttons button[aria-pressed=true]{background:var(--plum);color:white}.directory #resultCount{font-size:12px}.narrow{max-width:850px}.faq details{border-bottom:1px solid var(--line);padding:24px 0}.faq summary{font:23px Georgia}.faq p{font-size:15px}.reading{padding-block:32px}.reading img{max-height:380px;border-radius:12px;margin-bottom:30px}.reading h2{margin-top:35px}.booking{display:grid;grid-template-columns:.8fr 1.4fr;gap:70px;padding-bottom:80px}.booking aside>a{display:block;font-size:15px;margin-top:10px}.booking aside img{height:200px;border-radius:9px;margin-top:28px}.booking form{padding:32px;background:white;border:1px solid var(--line);border-radius:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label{font-size:12px;font-weight:600}.full{grid-column:1/-1}input:not([type=checkbox]),select,textarea{display:block;width:100%;padding:12px;border:1px solid #dcd2df;border-radius:5px;background:#fff;color:var(--plum);margin-top:8px;min-width:0}textarea{resize:vertical}.consent{font-size:11px;display:block;margin:25px 0}.consent a{text-decoration:underline}.small{font-size:12px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.8 Arial;background:var(--cream);padding:20px}.menu-toggle{display:none}.skip{position:absolute;top:-100px;background:#fff;padding:12px;z-index:100}.skip:focus{top:0}[hidden]{display:none!important}
@media(max-width:1100px){nav{gap:14px}.header-cta{display:none}.hero{gap:30px}.hero-art img{height:430px}.actions{gap:15px;flex-wrap:wrap}.cards{gap:18px}.card-body{padding:20px}.split{gap:40px}.hero-notes{flex-wrap:wrap;gap:10px}}@media(max-width:760px){.wrap{width:calc(100% - 40px)}.topbar{padding:8px 20px;font-size:9px}.topbar span{display:none}header{padding:14px 20px}.brand{font-size:24px}.brand-symbol{font-size:33px}.menu-toggle{display:block;border:1px solid var(--line);background:transparent;padding:5px 12px;border-radius:5px;color:var(--plum)}nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);padding:20px;box-shadow:0 12px 20px #0001}nav.open{display:grid;grid-template-columns:1fr 1fr;gap:20px}.hero{grid-template-columns:1fr;padding-block:40px;gap:32px}h1{font-size:50px;letter-spacing:-2px}.hero-art img{height:380px}.hero-copy>p{font-size:16px}.hero-notes{font-size:10px}.specialties{gap:15px;font-size:8px}.cards{grid-template-columns:1fr}.service-card img{height:240px}.section{padding-block:46px}.section-heading{display:block}.section-heading>a,.section-heading p{margin-top:20px}.split{grid-template-columns:1fr;gap:30px;padding-block:25px}.split img{height:320px}.steps{grid-template-columns:1fr 1fr;gap:24px}.topics{grid-template-columns:1fr 1fr;gap:10px}.topics a{padding:16px;font-size:12px}.cta{grid-template-columns:1fr;gap:10px;padding:30px;margin-block:35px 50px}footer{padding:35px 20px}.footer-grid{grid-template-columns:1fr;gap:24px}.footer-bottom{gap:14px}.page-intro{padding-block:38px 25px}.booking{grid-template-columns:1fr;gap:30px}.booking form{padding:20px}.form-grid{grid-template-columns:1fr}.booking aside img{display:none}.filter-buttons button{font-size:11px}.whatsapp{bottom:14px;right:14px}.eyebrow{font-size:9px}.page-intro p{font-size:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}


/* hero portrait: a full-length cut-out on white, so show all of it
   inside the arch instead of cropping it like a landscape photo */
.hero-art img.hero-portrait{object-fit:contain;object-position:center bottom;background:#fff;}
/* solid card so the portrait doesn't ghost through it */
.hero-art .image-caption{position:static;margin-top:12px;background:#fbf8f3;box-shadow:none;text-align:center;}

/* contact page: the purple zodiac portrait needs its own proportions */
.booking aside img.contact-portrait{height:auto;aspect-ratio:880/780;border-radius:12px;}


/* ===== resources page: astrologer directory ============================ */
.astrologers{padding-top:10px;}
.astrologer-lead{max-width:640px;margin-bottom:28px;}
.astrologer-lead h2{margin:0 0 14px;}
.astrologer-lead p{margin:0;}

.astro-filters-row{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end;margin-bottom:14px;}
.astro-filters-row .search{flex:1 1 260px;}
#astroState{margin:0 0 22px;font-size:13px;letter-spacing:.04em;color:var(--gold);}

.astro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.astro-card{background:#fff;border:1px solid var(--line);border-radius:10px;
  display:flex;flex-direction:column;overflow:hidden;}
.astro-top{position:relative;display:grid;place-items:center;padding:30px 0 22px;
  background:linear-gradient(160deg,#fbf8f3,#f4ede1);border-bottom:1px solid var(--line);}
.astro-avatar{width:86px;height:86px;border-radius:50%;display:grid;place-items:center;
  background:#fff;border:1px solid var(--line);color:var(--gold);
  font-size:26px;font-weight:700;letter-spacing:1px;}
.astro-flag{position:absolute;top:12px;right:12px;background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:4px 10px;font-size:10px;letter-spacing:1px;
  text-transform:uppercase;color:var(--gold);}

.astro-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1;}
.astro-body h3{margin:0 0 6px;font-size:20px;}
.astro-meta{margin:0 0 12px;font-size:13px;}
.astro-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;}
.astro-tags span{background:#fbf8f3;border:1px solid var(--line);border-radius:999px;
  padding:4px 10px;font-size:11px;letter-spacing:.03em;}
.astro-bio{margin:0;font-size:13.5px;line-height:1.65;
  display:none;padding-bottom:14px;}
.astro-card.open .astro-bio{display:block;}
.astro-price{margin:auto 0 16px;padding-top:14px;border-top:1px dashed var(--line);
  display:flex;flex-direction:column;gap:2px;text-align:center;}
.astro-price strong{font-size:19px;}
.astro-price span{font-size:11.5px;letter-spacing:.02em;}

.astro-acts{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.astro-ghost,.astro-consult{border-radius:8px;padding:11px 10px;font-size:13px;
  font-family:inherit;text-align:center;cursor:pointer;text-decoration:none;
  border:1px solid var(--line);background:#fff;color:inherit;}
.astro-ghost:hover{border-color:var(--gold);}
.astro-consult{background:var(--gold);border-color:var(--gold);color:#fff;font-weight:600;}
.astro-consult:hover{filter:brightness(1.06);}

.astro-note{margin:26px 0 0;padding:16px 18px;border-left:2px solid var(--gold);
  background:#fbf8f3;font-size:13px;line-height:1.7;}
.astro-note:empty{display:none;}

@media (max-width:980px){ .astro-grid{grid-template-columns:repeat(2,1fr);gap:18px;} }
@media (max-width:640px){ .astro-grid{grid-template-columns:1fr;} }

/* The portrait stays still while its decorative gold orbit rotates. */
.portrait-orbit{position:relative;isolation:isolate;aspect-ratio:1;margin:28px 0 14px;border-radius:50%;background:radial-gradient(circle at 48% 38%,#43236a,#201039 78%);box-shadow:0 16px 38px #26123826;overflow:hidden;}
.booking aside .portrait-orbit img.contact-portrait{display:block;position:absolute;inset:9%;width:82%;height:82%;aspect-ratio:1;border-radius:50%;object-fit:cover;object-position:50% 42%;margin:0;}
.portrait-orbit-ring{position:absolute;inset:1%;background:url('assets/zodiac-orbit.svg') center/contain no-repeat;animation:zodiac-orbit 75s linear infinite;pointer-events:none;}
.orbit-toggle{display:block;margin:0 auto 24px;padding:8px 14px;border:1px solid var(--line);border-radius:30px;background:transparent;color:var(--muted);font:inherit;font-size:12px;cursor:pointer;}
.orbit-toggle:hover{border-color:var(--gold);color:var(--ink);}
.orbit-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:4px;}
.portrait-orbit.is-paused .portrait-orbit-ring{animation-play-state:paused;}
@keyframes zodiac-orbit{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.portrait-orbit-ring{animation:none}.orbit-toggle{display:none}}
