/* Public presentation. Keep application events and audio controls in their own files. */
:root, html[data-theme="clair"] {
  color-scheme: light;
  --bg: #fff; --bg2: #fff; --bg3: #f6f7f4; --bg4: #eaf0ec;
  --border: #e0e3dd; --border2: #c4ccc5;
  --text: #191c19; --text-dim: #515a53; --text-mute: #636c65;
  --violet: #20251f; --violet-rgb: 32,37,31; --violet-d: #374b3e;
  --violet-l: #335e4b; --indigo: #397c96; --gold: #335e4b; --gold-l: #244b3a;
  --green: #287149; --red: #b83742;
  --font-title: "Inter", "Segoe UI", system-ui, Arial, sans-serif;
  --radius: 14px; --radius-sm: 9px; --radius-lg: 22px;
}
body { font-size: 16px; -webkit-font-smoothing: antialiased; }
.home-bg { display: none; }
.home-header {
  min-height: 112px; padding: 26px max(32px, calc((100vw - 1240px) / 2));
  background: #fff; border-bottom: 1px solid var(--border); gap: 32px;
}
.brand-name { color: var(--text); font-size: 32px; font-weight: 750; letter-spacing: -1.5px; }
.brand-mark { filter: brightness(0); height: 27px; }
.header-tagline { position: static; transform: none; max-width: none; text-align: left; align-items: flex-start; margin-right: auto; }
.ht-title { color: var(--text); font: 600 15px/1.6 var(--font-ui); letter-spacing: 0; }
.ht-sub { font-size: 12px; }
.btn-glass, .btn-primary { border-radius: 14px; min-height: 48px; padding: 13px 24px; font-size: 15px; letter-spacing: 0; font-weight: 650; box-shadow: none; }
.btn-glass-accent, .btn-primary { background: #20251f; border-color: #20251f; color: #fff; box-shadow: none; }
.btn-glass-accent:hover, .btn-primary:hover { background: #374b3e; border-color: #374b3e; box-shadow: none; }
.btn-glass-outline { background: #fff; border: 1.5px solid #242a24; color: var(--text); }
.btn-glass-outline:hover { background: #edf2ee; border-color: #242a24; }
.btn-sm { min-height: 42px; padding: 9px 16px; font-size: 13px; }
:where(button, a, input, select, textarea):focus-visible { outline: 3px solid #397c96; outline-offset: 4px; }
.btn-text-link { color: var(--text); font-weight: 650; }
.btn-text-link:hover { color: #397c96; }
.hero-theme-section {
  display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .85fr);
  gap: 56px 72px; width: min(1240px, calc(100% - 80px)); margin: 0 auto;
  padding: 82px 0 60px; text-align: left; align-items: center; flex: 1;
}
.hero-theme-inner { max-width: 650px; align-items: flex-start; gap: 26px; }
.hero-theme-badge { color: #285d45; background: #e7f0e9; border: 0; border-radius: 7px; padding: 7px 14px; font-size: 12px; letter-spacing: 1.3px; }
.hero-theme-title { color: var(--text); font-size: clamp(44px, 5.2vw, 74px); line-height: 1.05; letter-spacing: -.055em; font-weight: 750; text-shadow: none; text-wrap: balance; }
.hero-theme-sub { color: var(--text-dim); font-size: 19px; line-height: 1.65; max-width: 510px; margin: 0 0 8px; }
.hero-theme-cta { min-height: 64px; padding: 18px 30px !important; font-size: 17px !important; box-shadow: none !important; white-space: normal; text-align: left; }
.hero-theme-cta::after { content: '↗'; display: inline-block; margin-left: 22px; font-size: 22px; line-height: 1; }
.hero-theme-login { font-size: 14px; gap: 8px; justify-content: flex-start; }
.site-footer { background: #f6f7f4; border-top: 1px solid var(--border); padding: 30px 32px; margin-top: auto; }
.footer-inner { max-width: 1240px; margin: auto; }
.footer-brand { font-weight: 750; color: var(--text); font-size: 24px; letter-spacing: -1px; }
.footer-link { color: var(--text-dim); font-size: 13px; }
.footer-link:hover { color: var(--text); }
/* Forms, account and shared public surfaces use the same readable palette. */
.modal-card, .modal-rdv-card { border: 1px solid var(--border); box-shadow: 0 20px 80px #17251d26; border-radius: 22px; }
.modal-title, .account-title, .home-theme-title { color: var(--text); font-weight: 700; letter-spacing: -.6px; }
.modal-title { padding: 0 20px; }
.modal-close { min-width: 40px; min-height: 40px; }
input[type=text], input[type=email], input[type=password], .sexe-choice,
.pay-box, .pay-grid input, .avis-txt { background: #f6f7f4; color: var(--text); border-color: var(--border2); font-size: 16px; }
input[type=text], input[type=email], input[type=password] { padding: 14px; min-height: 50px; }
.modal-overlay, .modal-rdv-overlay { background: #17251d73; backdrop-filter: blur(4px); }
.hero-card, .home-theme-inner, .astrologue-card, .cookie-banner,
.legal-page-card, .emoji-picker { background: #fff; border-color: var(--border); box-shadow: none; }
.cookie-banner { box-shadow: 0 -4px 24px #17251d14; }
.astrologue-card { border-radius: 20px; }
.astrologue-name, .teaser-title { font-weight: 700; }
.astrologues-section { padding-top: 36px; }
.resume-banner, .verif-banner { background: #edf3ee; border-color: #c4ccc5; }
.verif-banner .resume-banner-text { color: var(--text); }
.home-theme-inner { max-width: 1200px; }
.home-theme-left { flex-basis: 40%; }
.home-theme-right { flex: 1 1 50%; min-width: 0; }
.msg-client { background: #dfece3; color: #193b29; }
#queue-overlay .queue-card { background: #fff; border-color: var(--border); }
#welcome-overlay .welcome-text { color: #fff; text-shadow: none; letter-spacing: 0; }
::-webkit-scrollbar-thumb { background: #b8c3b9; }
@media (max-width: 1050px) {
  .home-header { padding: 22px 32px; gap: 24px; }
  .header-tagline { display: none; }
  .hero-theme-section { gap: 44px 36px; padding-top: 60px; }
}
@media (max-width: 720px) {
  .home-header { min-height: 86px; padding: 20px; flex-wrap: wrap; gap: 18px; }
  .brand-name { font-size: 27px; }
  .home-nav { width: auto; margin-left: auto; flex-wrap: wrap; }
  .home-nav .btn-glass { font-size: 13px; min-height: 44px; padding: 10px 14px; }
  .hero-theme-section { width: calc(100% - 40px); grid-template-columns: minmax(0, 1fr); padding: 42px 0; gap: 42px; }
  .hero-theme-inner { gap: 22px; }
  .hero-theme-title { font-size: clamp(42px, 9vw, 60px); max-width: 560px; }
  .hero-theme-sub { font-size: 17px; }
  .hero-theme-cta { width: 100%; text-align: center; padding: 18px 16px !important; font-size: 16px !important; }
  .hero-theme-login { width: 100%; justify-content: center; }
  .site-footer { padding: 28px 20px; }
}
/* Contrast for inherited components that previously assumed a dark backdrop. */
.offer-card, .teaser-card { background: #f6f7f4; }
.offer-card.offer-pop { background: #edf3ee; }
.offer-amount, .pay-line, .hero-title { color: var(--text); text-shadow: none; }
.offer-badge, .teaser-badge, .acc-edit-save, .acc-edit-btn:hover, .acc-rdv-btn:hover { color: #fff; }
.astrologue-avatar { background: #e3ece5; }
.sub-note { background: #e3ece5; color: #244b3a; }
.rdv-slot-btn:hover, .acc-consult-avis:hover { background: #e3ece5; color: #244b3a; }
.acc-rdv-btn.danger, .acc-cancel-btn { color: #a32f43; }
.legal-page-main { width: min(800px, 100%); }
.legal-page-card { padding: 32px; }
.legal-page-card h1 { font-weight: 700; letter-spacing: -.8px; }
@media (max-width: 480px) {
  .legal-page-card { padding: 22px 16px; }
  .modal-title { font-size: 20px; }
}
/* Let the message field shrink beside the existing conversation controls. */
#astro-input { min-width: 0; }
/* Home composition: an everyday scene with four genuine service shortcuts. */
.hero-theme-section { grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:28px; padding:72px 0 64px; align-items:start; }
.hero-theme-inner { position:relative; z-index:2; max-width:none; gap:24px; padding-top:12px; }
.hero-theme-title { font-size:clamp(46px,4.8vw,70px); max-width:740px; }
.hero-theme-sub { max-width:690px; font-size:18px; }
.home-lifestyle { margin:0; min-width:0; border:1.5px solid #20251f; border-radius:24px; overflow:hidden; box-shadow:9px 9px 0 #e8e9e4; }
.home-lifestyle img { width:100%; height:640px; display:block; object-fit:cover; object-position:55% center; }
.home-service-tiles { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; width:calc(100% + 160px); margin:16px 0 12px; }
.home-service-tile { --tile-color:#397c96; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; min-height:185px; padding:20px 12px; border:3px solid var(--tile-color); border-radius:22px; background:#fff; color:#191c19; box-shadow:none; cursor:pointer; font:600 17px/1.3 var(--font-ui); text-align:center; transition:transform .15s; }
.home-service-tile svg { width:55px; height:55px; flex-shrink:0; color:var(--tile-color); }
.service-flash { --tile-color:#537d67; }
.service-carte { --tile-color:#b26447; }
.service-standard { --tile-color:#dec337; }
.home-service-tile:hover { transform:translateY(-4px); box-shadow:none; }
@media(max-width:1050px) {
 .hero-theme-section { width:calc(100% - 48px); gap:24px; padding-top:48px; }
 .home-service-tiles { width:calc(100% + 120px); gap:12px; }
 .home-service-tile { min-height:160px; font-size:15px; padding:16px 8px; }
 .home-lifestyle img { height:610px; }
}
@media(max-width:720px) {
 .hero-theme-section { width:calc(100% - 40px); grid-template-columns:minmax(0,1fr); padding:32px 0 44px; gap:32px; }
 .hero-theme-inner { padding:0; }
 .hero-theme-title { font-size:clamp(40px,9vw,58px); }
 .hero-theme-sub { font-size:17px; }
 .home-service-tiles { width:100%; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:8px 0 10px; }
 .home-service-tile { min-height:160px; font-size:16px; }
 .home-lifestyle { width:100%; }
 .home-lifestyle img { height:auto; max-height:540px; object-position:center; }
}
/* Public navigation and an open portrait frame, with the silhouette in front. */
.home-header { gap:24px; }
.header-tagline { display:none; }
.home-public-nav { display:flex; align-items:center; gap:18px; margin-left:auto; }
.home-public-nav .btn-glass { min-height:54px; padding:14px 24px; }
.home-login-link { display:flex; align-items:center; gap:12px; border:0; background:none; color:var(--text); font:650 16px var(--font-ui); padding:12px 0 12px 8px; cursor:pointer; }
.home-login-link svg { width:25px; height:29px; }
#screen-home:has(#hero-theme-section.hidden) .home-public-nav { display:none; }
#screen-home:not(:has(#hero-theme-section.hidden)) .home-nav { display:none; }
.hero-theme-title { font-weight:650; letter-spacing:-.025em; line-height:1.16; }
.hero-theme-inner { gap:28px; }
.home-service-tile { min-height:195px; gap:20px; font-weight:550; }
.home-service-tile svg { width:72px; height:72px; }
.home-lifestyle { position:relative; isolation:isolate; border:0; border-radius:0; overflow:visible; box-shadow:none; height:650px; margin-top:14px; }
.home-lifestyle::before { content:""; position:absolute; inset:20px 74px 24px 0; z-index:-1; background:#f6f3eb; border:1.5px solid #20251f; border-radius:26px; box-shadow:10px 10px 0 #e8e9e4; }
.home-lifestyle img { position:absolute; bottom:0; left:0; width:100%; height:100%; object-fit:contain; object-position:bottom right; max-height:none; }
.phone-signs { position:absolute; left:24%; top:31%; width:110px; height:82px; color:#b69b16; font-family:"Segoe UI Symbol",Arial,sans-serif; font-size:30px; line-height:1; pointer-events:none; }
.phone-signs span { position:absolute; }
.phone-signs span:nth-child(1) { left:0; top:32px; transform:rotate(-24deg); }
.phone-signs span:nth-child(2) { left:38px; top:0; transform:rotate(-9deg); }
.phone-signs span:nth-child(3) { left:78px; top:24px; transform:rotate(16deg); }
@media(max-width:1050px) {
 .home-public-nav { gap:12px; }
 .home-lifestyle { height:610px; }
 .home-lifestyle::before { right:50px; }
 .home-service-tile svg { width:66px; height:66px; }
 .phone-signs { left:20%; top:34%; transform:scale(.8); transform-origin:bottom left; }
}
@media(max-width:720px) {
 .home-header { gap:18px; }
 .home-public-nav { width:100%; justify-content:space-between; gap:8px; }
 .home-public-nav .btn-glass { padding:11px 13px; min-height:46px; font-size:14px; }
 .home-login-link { padding:10px 0; font-size:14px; gap:6px; }
 .home-login-link svg { width:20px; height:24px; }
 .hero-theme-title { line-height:1.18; letter-spacing:-.02em; }
 .home-service-tile { min-height:175px; }
 .home-lifestyle { width:min(100%,440px); justify-self:center; height:auto; aspect-ratio:1086/1448; margin-top:0; }
 .home-lifestyle img { height:100%; max-height:none; }
 .home-lifestyle::before { right:16%; }
 .phone-signs { left:23%; top:29%; }
}
.hero-offered { position:relative; display:inline-block; white-space:nowrap; padding-bottom:12px; }
.hero-offered svg { position:absolute; left:-2%; bottom:0; width:104%; height:17px; overflow:visible; fill:none; stroke:#e3c43b; stroke-width:4; stroke-linecap:round; }

/* Preserve the original living room and sofa requested for the home portrait. */
.home-lifestyle { border:1.5px solid #20251f; border-radius:26px; overflow:hidden; box-shadow:10px 10px 0 #e8e9e4; }
.home-lifestyle::before { display:none; }
.home-lifestyle img { object-fit:cover; object-position:center; }
.phone-signs { left:23%; top:34%; }
@media(max-width:720px) { .phone-signs { top:32%; } }
/* Two perfectly aligned copies of the SAME photo: scenery inside, shoulder outside. */
.home-lifestyle { height:auto; aspect-ratio:1086/1448; overflow:visible; border:0; border-radius:0; box-shadow:none; }
.home-photo-frame { position:absolute; inset:0 22% 0 0; overflow:hidden; border-radius:26px; box-shadow:9px 10px 0 #e8e9e4; }
.home-photo-frame::after { content:""; position:absolute; inset:0; border:1.5px solid #20251f; border-radius:26px; pointer-events:none; }
.home-photo-frame img { position:absolute; inset:0 auto auto 0; width:128.205128%; height:100%; max-width:none; object-fit:fill; }
.home-lifestyle .home-photo-relief { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; clip-path:polygon(72.744% 36.948%,78.269% 37.638%,82.873% 38.674%,86.648% 40.193%,88.858% 42.472%,90.147% 45.166%,90.792% 48.204%,91.068% 51.796%,90.976% 55.110%,90.792% 58.011%,90.055% 60.635%,88.858% 62.845%,88.490% 64.848%,87.201% 66.920%,85.359% 68.577%,83.425% 70.097%,81.400% 71.478%,79.006% 72.376%,72.744% 73.343%,72.744% 36.948%); }
.phone-signs { z-index:2; color:#163d50; font-weight:700; text-shadow:0 1px 1px #fff,1px 0 1px #fff,-1px 0 1px #fff,0 -1px 1px #fff; }
@media(max-width:1050px) { .home-lifestyle { height:auto; } }

/* A same-page introduction, sharing the existing theme creation flow. */
.home-howto-link { color:var(--text); font:600 15px var(--font-ui); text-decoration:none; padding:12px 0; white-space:nowrap; }
.home-howto-link:hover { text-decoration:underline; text-underline-offset:5px; }
.home-howto { background:#496e5b; color:#fff; padding:76px 24px 64px; scroll-margin-top:24px; }
#screen-home:has(#hero-theme-section.hidden) .home-howto { display:none; }
.howto-inner { width:min(1180px,100%); margin:auto; }
.howto-eyebrow { text-align:center; color:#e4eade; font-size:14px; margin:0 0 16px; }
.home-howto h2 { color:#fff; font:600 clamp(32px,4vw,48px)/1.3 var(--font-ui); text-align:center; margin:0 0 64px; letter-spacing:-.025em; }
.home-howto h2>span { position:relative; white-space:nowrap; }
.home-howto h2 svg { position:absolute; width:118%; height:150%; left:-9%; top:-20%; fill:none; stroke:#edd055; stroke-width:3; pointer-events:none; }
.howto-layout { display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:80px; }
.howto-steps { display:grid; gap:0; }
.howto-step { display:grid; grid-template-columns:42px 1fr 24px; gap:14px; border:0; border-bottom:1px solid #a5b7a6; background:none; color:#eef1e9; text-align:left; padding:28px 0; cursor:pointer; font-family:var(--font-ui); }
.howto-step:first-child { padding-top:0; }
.howto-step[aria-selected=true] { border-color:#edd055; color:white; }
.howto-number { font-size:17px; line-height:1.8; color:#c8d6c8; }
.howto-step[aria-selected=true] .howto-number,.howto-step[aria-selected=true] .howto-arrow { color:#f5da63; }
.howto-step strong { display:block; font-size:23px; line-height:1.35; font-weight:600; }
.howto-step strong+span { display:block; font-size:16px; line-height:1.7; margin-top:16px; color:#e4eade; }
.howto-step[aria-selected=false] strong+span { display:none; }
.howto-arrow { font-size:24px; }
.howto-step:focus-visible { outline:2px solid #f5da63; outline-offset:6px; border-radius:4px; }
.howto-preview { min-width:0; background:#f7f4eb; border:1.5px solid #1c2921; border-radius:28px; box-shadow:12px 12px 0 #345443; color:#20251f; transform:rotate(1deg); }
.howto-panel { padding:30px; min-height:480px; }
.howto-panel[hidden] { display:none; }
.howto-preview-top { display:flex; align-items:center; justify-content:space-between; gap:8px; font-weight:700; font-size:18px; }
.howto-example { font-size:11px; font-weight:500; color:#526355; }
.howto-wheel { width:230px; height:230px; margin:16px auto 8px; position:relative; }
.howto-wheel svg { width:100%; height:100%; stroke:#527860; stroke-width:1.5; }
.howto-wheel .howto-wheel-lines { stroke:#bb8753; }
.howto-wheel>span { position:absolute; inset:0; display:grid; place-items:center; color:#b5931b; font-size:38px; }
.howto-preview-kicker { font-size:12px; color:#496e5b; margin:18px 0 10px; text-transform:uppercase; letter-spacing:.09em; }
.home-howto h3 { font:600 31px/1.17 var(--font-ui); color:#20251f; letter-spacing:-.025em; margin:0 0 14px; }
.howto-panel>p:last-child { font-size:14px; line-height:1.5; color:#526355; margin-bottom:0; }
.howto-formulas { display:grid; gap:10px; margin:28px 0 24px; }
.howto-formulas>div { display:grid; grid-template-columns:40px 1fr; gap:4px 12px; padding:14px; border:1px solid #cfdbce; border-radius:14px; background:#fff; }
.howto-formulas>div>span { grid-row:span 2; font-size:30px; color:#49755d; align-self:center; text-align:center; }
.howto-formulas strong { font-size:16px; font-weight:600; }
.howto-formulas small { font-size:13px; color:#526355; }
.howto-conversation { display:flex; flex-direction:column; gap:14px; margin:35px 0 29px; }
.howto-bubble { background:#e3ebdf; padding:16px 18px; border-radius:18px 18px 4px 18px; margin-left:36px; font-size:15px; line-height:1.5; }
.howto-answer { background:#496e5b; color:white; border-radius:18px 18px 18px 4px; margin:0 36px 0 0; }
.howto-typing { font-size:19px; letter-spacing:4px; color:#496e5b; margin-left:10px; }
.howto-bottom { margin-top:62px; display:flex; justify-content:center; align-items:center; gap:28px; }
.howto-bottom p { font-size:18px; margin:0; }
.howto-bottom .btn-glass { min-height:60px; padding:17px 24px; background:#f2d45a; color:#20251f; border-color:#f2d45a; gap:20px; box-shadow:none; }
.howto-bottom .btn-glass:hover { background:#ffe582; border-color:#ffe582; }
@media(max-width:1050px) {
 .home-public-nav { flex-wrap:wrap; justify-content:flex-end; }
 .home-howto-link { font-size:14px; }
 .howto-layout { gap:36px; }
 .howto-step { grid-template-columns:30px 1fr 20px; gap:8px; }
 .howto-step strong { font-size:20px; }
 .howto-panel { padding:24px; }
 .howto-bottom { gap:20px; }
}
@media(max-width:720px) {
 .home-public-nav { justify-content:space-between; }
 .home-howto-link { width:100%; text-align:center; padding:3px 0 8px; }
 .home-howto { padding:48px 20px; }
 .home-howto h2 { margin-bottom:36px; }
 .howto-layout { grid-template-columns:minmax(0,1fr); gap:32px; }
 .howto-step { padding:22px 0; }
 .howto-step strong { font-size:20px; }
 .howto-step strong+span { font-size:15px; }
 .howto-preview { transform:none; box-shadow:7px 8px 0 #345443; }
 .howto-panel { min-height:460px; padding:23px; }
 .howto-preview-top { font-size:17px; }
 .howto-example { font-size:10px; }
 .howto-wheel { width:210px; height:210px; }
 .home-howto h3 { font-size:28px; }
 .howto-bottom { flex-direction:column; text-align:center; margin-top:40px; gap:18px; }
 .howto-bottom p { font-size:16px; }
 .howto-bottom .btn-glass { width:100%; font-size:15px; }
 .howto-formulas>div { padding:12px; gap:4px 8px; }
 .howto-formulas strong { font-size:14px; }
 .howto-bubble { margin-left:15px; }
 .howto-answer { margin:0 15px 0 0; }
}

/* The brand opens the presentation page without discarding authentication. */
.landing-consult { display:none; }
.public-landing #hero-theme-section { display:grid !important; }
.public-landing #screen-home .home-howto { display:block !important; }
.public-landing #home-theme-banner { display:none !important; }
.public-landing .landing-consult { display:inline-flex; }

/* Larger zodiac illustration in the introductory card. */
.howto-wheel { width:min(100%,360px); height:auto; aspect-ratio:1; margin:0 auto 22px; }
.howto-wheel svg { display:block; stroke-width:1.2; }
.howto-wheel .howto-zodiac { fill:#496e5b; stroke:none; font:20px Georgia,serif; text-anchor:middle; dominant-baseline:central; }

/* Light palette for the interactive natal chart, including saved charts. */
:is(#astro-wheel, #home-theme-wheel, #modal-theme-wheel) svg [fill="#0d0b1a"] { fill:#f6f3eb; }
:is(#astro-wheel, #home-theme-wheel, #modal-theme-wheel) svg [fill="#07050f"] { fill:#fffdf7; }
:is(#astro-wheel, #home-theme-wheel, #modal-theme-wheel) svg [fill="#100d20"] { fill:#edf3ec; }
:is(#astro-wheel, #home-theme-wheel, #modal-theme-wheel) svg [fill="#c4b5fd"] { fill:#496e5b; }
:is(#astro-wheel, #home-theme-wheel, #modal-theme-wheel) svg [fill="#e2d9ff"] { fill:#315c49; }
:is(#astro-wheel, #home-theme-wheel, #modal-theme-wheel) svg [fill="#f87171"] { fill:#ad6248; }
:is(#astro-wheel, #home-theme-wheel, #modal-theme-wheel) svg [fill="#60a5fa"] { fill:#397c96; }
:is(#astro-wheel, #home-theme-wheel, #modal-theme-wheel) svg [stroke="#2a2040"] { stroke:#496e5b; }
:is(#astro-wheel, #home-theme-wheel, #modal-theme-wheel) svg [stroke="#0f0f0f"] { stroke:#8c9b88; }
:is(#astro-wheel, #home-theme-wheel, #modal-theme-wheel) svg [stroke="#3a2a5a"] { stroke:#a7b8a0; }
:is(#astro-wheel, #home-theme-wheel, #modal-theme-wheel) svg [stroke="#2a1f3d"] { stroke:#c4cdbb; }
:is(#astro-wheel, #home-theme-wheel, #modal-theme-wheel) svg [stroke="#7c5cbf"] { stroke:#527860; }
:is(#astro-wheel, #home-theme-wheel, #modal-theme-wheel) svg [stroke="#5b3fa0"] { stroke:#7c9c80; }
#astro-wheel svg g[data-planet].wheel-hl circle { fill:#496e5b !important; stroke:#d8b742 !important; }
#astro-wheel svg g[data-planet].wheel-hl text { fill:#fffdf7 !important; }

/* Full team between the introductory hero and the three-step guide. */
.public-landing #astrologues-section,
#screen-home:has(#hero-theme-section:not(.hidden)) #astrologues-section { display:block !important; }
.public-landing #astrologues-section .teaser-card,
#screen-home:has(#hero-theme-section:not(.hidden)) #astrologues-section .teaser-card { display:none; }
#astrologues-section { padding:64px 24px 80px; scroll-margin-top:100px; }
.home-roster-heading { text-align:center; margin:0 auto 40px; }
.home-roster-heading h2 { font:600 clamp(32px,4vw,48px)/1.2 var(--font-ui); color:#20251f; margin:0 0 18px; letter-spacing:-.025em; }
.home-roster-heading p { color:#607065; font-size:18px; line-height:1.6; margin:0; }
@media(max-width:720px) { #astrologues-section { padding:44px 20px 52px; } .home-roster-heading p { font-size:16px; } }

/* Shared horizontal alignment with the home hero. */
#astrologues-section { padding-left:0; padding-right:0; }
.astrologues-inner { width:min(1240px,calc(100% - 80px)); max-width:none; }
.astrologues-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
@media(max-width:1050px) { .astrologues-inner { width:calc(100% - 48px); } .astrologues-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:720px) { .astrologues-inner { width:calc(100% - 40px); } .astrologues-grid { grid-template-columns:minmax(0,1fr); gap:20px; } }
/* Compact, progressive birth-chart form. */
#modal-theme .theme-card { width:min(580px,calc(100vw - 32px)); padding:28px; max-height:calc(100dvh - 32px); }
#modal-theme .modal-title { font-size:28px; line-height:1.2; margin:12px 30px 14px 0; text-align:left; }
#modal-theme .theme-intro { display:none !important; }
.theme-progress { display:flex; gap:8px; margin:18px 0 24px; }
.theme-progress span { flex:1; border-top:3px solid #dfe6dd; padding-top:10px; font-size:13px; color:#69776d; }
.theme-progress [aria-current=step] { border-color:#496e5b; color:#315c49; font-weight:700; }
#modal-theme .theme-form { display:block; margin:0; }
.theme-step { border:0; padding:0; margin:0; min-width:0; display:grid; gap:14px; }
.theme-step legend { font-size:19px; font-weight:650; color:#315c49; padding:0 0 18px; }
#modal-theme .theme-step input:not([type=radio]) { min-height:48px; height:48px; padding:12px 14px; font-size:15px; width:100%; }
#modal-theme .sexe-choice { padding:12px 14px; margin:0; }
#modal-theme .theme-step-actions { display:flex; gap:12px; margin-top:16px; }
#theme-next { margin-left:auto; }
#modal-theme #theme-submit { width:100%; margin-top:14px; }
#modal-theme:not([data-step="2"]) #theme-submit { display:none !important; }
#modal-theme [hidden] { display:none !important; }
#modal-theme .form-err:empty { display:none; }
@media(max-width:600px) { #modal-theme .theme-card { padding:22px 20px; } #modal-theme .modal-title { font-size:24px; } .theme-progress { margin:16px 0 20px; } }
