:root {
  --bg: #f8f3ee;
  --bg-soft: #fcfaf8;
  --card: rgba(255,255,255,.94);
  --text: #2d2a26;
  --muted: #6d675f;
  --accent: #6d57a5;
  --accent-2: #9a86ca;
  --line: rgba(45,42,38,.08);
  --good: #437a52;
  --warn: #d7a327;
  --risk: #c86a2b;
  --critical: #b34141;
  --shadow: 0 24px 60px rgba(109,87,165,.08);
  --radius-xl: 34px;
  --radius-lg: 24px;
  --radius-md: 18px;
  --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: Inter, Arial, sans-serif; background: radial-gradient(circle at top right, rgba(216,204,241,.28), transparent 30%), linear-gradient(180deg, #fdfbf9 0%, #f8f3ee 100%); color: var(--text); line-height: 1.55; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { width: min(var(--max), calc(100% - 32px)); margin: 0 auto; }
.section { padding: 64px 0; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:14px 22px; border-radius:999px; border:none; cursor:pointer; font-weight:600; }
.btn-primary { background: var(--accent); color:#fff; box-shadow: 0 14px 34px rgba(92,75,130,.22); }
.btn-secondary { background:#fff; color:var(--text); border:1px solid rgba(92,75,130,.18); }
.sticky-header { position: sticky; top: 0; z-index: 1000; background: rgba(255,255,255,.86); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(92,75,130,.07); }
.header-inner { display:grid; grid-template-columns: 240px 1fr auto; gap: 24px; align-items:center; min-height: 86px; }
.brand-box { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height: 86px; }
.brand-box-score-lockup { align-items:flex-start; justify-content:center; gap: 2px; }
.brand-score-line { display:flex; align-items:flex-end; gap:6px; }
.brand-score-top { font-family: Georgia, "Times New Roman", serif; font-size: 26px; line-height: 1; letter-spacing: .04em; color:#2A2438; }
.brand-score-inline { font-family: Georgia, "Times New Roman", serif; font-size: 20px; line-height: 1; font-weight: 400; letter-spacing: .08em; color:#8a77b0; transform: translateY(-1px); }
.brand-score-bottom { font-size:11px; line-height:1; letter-spacing: .42em; color:#6f677d; padding-left:2px; margin-top:2px; }
.brand-logo { font-size: 18px; letter-spacing: .52em; font-weight: 500; color:#2A2438; margin-left:.52em; line-height:1; text-align:center; }
.brand-sub { font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:#8e87a7; margin-top:10px; padding-top:10px; width: 210px; border-top:1px solid rgba(92,75,130,.12); text-align:center; }
.header-nav { display:flex; align-items:center; justify-content:center; gap:30px; font-size:14px; color:#2f2b34; }
.header-nav a { font-weight:500; }
.header-nav a:hover { color: var(--accent); }
.header-right { display:flex; align-items:center; gap:14px; justify-self:end; }
.contact-stack { display:flex; flex-direction:column; gap:2px; align-items:flex-end; }
.phone { font-weight:700; white-space:nowrap; color:#1f1b23; font-size:14px; }
.icon-capsule { display:flex; align-items:center; gap:10px; padding:8px 12px; border-radius:999px; border:1px solid rgba(92,75,130,.10); background:rgba(255,255,255,.92); }
.social-link { width:24px; height:24px; color:#544d62; display:inline-flex; align-items:center; justify-content:center; }
.social-link svg { width:20px; height:20px; display:block; }
.btn-mobile-call { display:none; }
.hero { padding: 26px 0 34px; }
.hero-shell { display:grid; grid-template-columns: .97fr 1.03fr; gap: 28px; align-items:stretch; }
.hero-copy { padding: 28px 0 14px; }
.kicker { display:inline-flex; gap:12px; align-items:center; color:var(--accent-2); text-transform:uppercase; letter-spacing:.18em; font-size:12px; font-weight:700; }
.kicker::before, .kicker::after { content:''; width:32px; height:1px; background: rgba(92,75,130,.24); }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; font-weight: 500; margin: 0; }
h1 { font-size: clamp(38px, 5vw, 66px); line-height: .98; margin-top:18px; max-width: 680px; letter-spacing: -.03em; }
h2 { font-size: clamp(32px, 4vw, 48px); line-height: 1.08; margin-bottom: 16px; }
h3 { font-size: 24px; line-height: 1.15; }
p.lead { color: var(--muted); font-size: 18px; max-width: 720px; margin: 18px 0 24px; }
.hero-accent { color: var(--accent); }
.hero-copy-refined { max-width: 610px; }
.hero-points-refined { margin-top: 28px; gap: 12px 30px; }
.hero-controls { margin-top: 28px; }
.hero-points { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px 18px; margin: 24px 0 28px; }
.hero-point, .mini-point { padding-left: 26px; position: relative; color: #4d4842; }
.hero-point::before, .mini-point::before { content:'•'; position:absolute; left:10px; top:-1px; color: var(--accent-2); font-size: 20px; }
.hero-art { min-height: 560px; overflow:hidden; background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(249,245,251,.96)); }
.hero-art-inner { height:100%; padding: 18px; display:flex; flex-direction:column; justify-content:space-between; background: linear-gradient(180deg, rgba(255,255,255,.78), rgba(247,241,250,.94)); }
.score-stage { display:grid; grid-template-columns: .88fr 1.12fr; gap:14px; align-items:stretch; }
.score-panel { border-radius: 28px; background: rgba(255,255,255,.96); border:1px solid rgba(109,87,165,.10); padding: 22px; box-shadow: 0 18px 34px rgba(109,87,165,.06); }
.score { font-size: 66px; line-height:1; color:var(--accent); font-family: Georgia, serif; margin-top: 6px; }
.score-label { color:var(--muted); font-size:12px; text-transform: uppercase; letter-spacing: .18em; }
.score-summary { max-width: 260px; margin-top: 8px; }
.hero-face { border-radius: 28px; overflow:hidden; min-height: 352px; background: linear-gradient(180deg, rgba(255,255,255,.7), rgba(238,228,244,.8)); }
.hero-face img { width:100%; height:100%; object-fit:cover; object-position:center; }
.module-preview { display:grid; gap:12px; margin-top:22px; }
.progress { height:10px; background:#ece7f4; border-radius:999px; overflow:hidden; }
.progress > span { display:block; height:100%; border-radius:999px; background: linear-gradient(90deg, var(--accent), #9c86ca); }
.hero-modules-strip { display:grid; grid-template-columns: repeat(5, 1fr); gap:12px; margin-top:16px; padding: 16px; border-radius: 24px; background: rgba(255,255,255,.94); border:1px solid rgba(109,87,165,.08); }
.hero-module-chip { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; padding:10px 8px; min-height:88px; }
.hero-module-chip span:last-child { font-size:12px; line-height:1.25; color:#5d5866; font-weight:600; }
.hero-module-icon { width:42px; height:42px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:#f6f0ff; color:var(--accent); font-size:22px; }
.hero-art-refined { border-radius: 30px; box-shadow: 0 28px 70px rgba(109,87,165,.10); }
.hero-art-inner-refined { padding: 20px; }
.score-stage-refined { grid-template-columns: .8fr 1.2fr; gap: 12px; min-height: 382px; }
.score-panel-refined { padding: 26px 24px; background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(249,245,251,.94)); }
.module-preview-refined .module-top strong { font-size: 15px; }
.hero-face-refined { min-height: 382px; height: 100%; }
.hero-face-refined img { object-position: center right; }
.hero-face-card-shell { display:flex; align-items:stretch; justify-content:center; padding: 14px; background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,243,250,.94)); }
.hero-face-card-inner { width: 100%; min-height: 100%; height: 100%; display:flex; flex-direction:column; border-radius: 26px; overflow: hidden; background: #fff; box-shadow: 0 18px 36px rgba(109,87,165,.08); border: 1px solid rgba(109,87,165,.08); }
.hero-face-image-wrap { min-height: 250px; flex: 1 1 62%; }
.hero-face-card-inner img { width:100%; height:100%; min-height: 100%; object-fit: cover; object-position: center; display:block; }
.hero-face-stats { display:grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 16px 14px 18px; background: linear-gradient(180deg, #fff, #faf7fd); border-top: 1px solid rgba(109,87,165,.08); }
.hero-ring-card { display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap: 10px; text-align:center; }
.hero-ring { --value: 0; width: 76px; height: 76px; border-radius: 50%; display:grid; place-items:center; background: conic-gradient(var(--accent) calc(var(--value) * 1%), #ece7f4 0); position: relative; }
.hero-ring::before { content:''; position:absolute; inset:7px; border-radius:50%; background:#fff; box-shadow: inset 0 1px 0 rgba(109,87,165,.06); }
.hero-ring span { position:relative; z-index:1; font-size: 16px; font-weight: 700; color: var(--accent); }
.hero-ring-label { font-size: 11px; line-height: 1.35; color: #5d5866; font-weight: 600; max-width: 88px; }
.hero-modules-strip-refined { padding: 18px 16px; gap: 6px; }
.hero-modules-strip-refined .hero-module-chip { min-height: 92px; border-right: 1px solid rgba(109,87,165,.08); }
.hero-modules-strip-refined .hero-module-chip:last-child { border-right: none; }
.hero-modules-strip-refined .hero-module-chip span:last-child { font-size: 11px; letter-spacing: .04em; }
.hero-footer-note { font-size: 12px; padding: 0 6px; }
.grid-3 { display:grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.grid-5 { display:grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.module-card, .benefit-card, .result-card, .admin-card { padding: 22px; }
.methodology-grid { align-items:stretch; }
.methodology-card { text-align:center; padding:20px 16px; }
.methodology-icon { width:54px; height:54px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; margin:0 auto 14px; background:#f3edff; color:var(--accent); font-size:26px; }
.muted { color: var(--muted); }
.cta-bar { display:grid; grid-template-columns: 1fr auto; gap: 18px; align-items:center; padding: 20px 22px; }
.test-shell { padding: 28px; }
.form-grid { display:grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.field { display:grid; gap:8px; }
.field label { font-size: 14px; color:#5d5852; font-weight:600; }
.field input, .field select, .field textarea { min-height: 48px; border-radius: 14px; border:1px solid rgba(92,75,130,.16); background:#fff; padding: 12px 14px; font: inherit; color: var(--text); }
.field textarea { min-height: 90px; resize: vertical; }
.full { grid-column: 1 / -1; }
.checkbox-line { display:flex; gap:10px; align-items:flex-start; font-size: 14px; color: var(--muted); }
.hidden { display:none !important; }
.step-chip { display:inline-flex; align-items:center; gap:10px; padding: 10px 16px; border-radius: 999px; background: rgba(92,75,130,.08); color:var(--accent); font-size:14px; font-weight:600; }
.question-card { padding: 22px; }
.options { display:grid; gap: 10px; margin-top: 14px; }
.option-btn { width:100%; text-align:left; min-height:52px; border-radius:16px; border:1px solid rgba(92,75,130,.18); background:#fff; color:var(--text); padding:14px 16px; cursor:pointer; transition:.18s ease; }
.option-btn:hover, .option-btn.active { border-color: var(--accent); box-shadow: 0 10px 24px rgba(92,75,130,.10); background:#f7f2ff; }
.controls { display:flex; justify-content:space-between; gap:14px; margin-top:24px; flex-wrap:wrap; }
.dashboard { display:grid; grid-template-columns: .9fr 1.1fr; gap:22px; }
.big-score { padding: 28px; }
.big-score-number { font-size: 84px; line-height:1; color: var(--accent); font-family: Georgia, serif; }
.status-pill { display:inline-flex; padding:10px 16px; border-radius:999px; background:rgba(92,75,130,.10); color:var(--accent); font-weight:700; margin-top:14px; }
.module-bars { display:grid; gap:16px; }
.module-bar-row { padding: 18px; border-radius: 20px; border:1px solid rgba(92,75,130,.10); background:#fff; }
.module-top { display:flex; justify-content:space-between; gap:16px; align-items:center; margin-bottom: 10px; }
.factor-list { display:grid; gap: 10px; margin-top: 16px; }
.factor-item { padding: 16px; border-radius: 16px; border:1px solid rgba(92,75,130,.10); background:#fff; }
.tag-good { color: var(--good); }
.tag-warn { color: var(--warn); }
.tag-risk { color: var(--risk); }
.tag-critical { color: var(--critical); }
.footer-note { color: #7b756d; font-size: 13px; }
.admin-layout { display:grid; grid-template-columns: .95fr 1.05fr; gap:18px; align-items:start; }
.admin-list { max-height: 75vh; overflow:auto; }
.admin-row { padding:16px; border-bottom:1px solid rgba(92,75,130,.08); cursor:pointer; }
.admin-row:hover, .admin-row.active { background:#f9f5ff; }
@media (max-width: 980px) {
  .hero-shell, .dashboard, .admin-layout, .score-stage, .score-stage-refined { grid-template-columns: 1fr; }
  .header-inner { grid-template-columns: 1fr; gap: 12px; padding: 12px 0; }
  .header-nav { flex-wrap: wrap; gap: 18px; }
  .header-right { justify-self:stretch; justify-content:center; flex-wrap:wrap; }
  .contact-stack { align-items:center; }
  .brand-box-score-lockup { align-items:center; }
  .grid-5 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: 1fr; }
  .hero-face, .hero-face-refined { min-height: 280px; }
  .hero-face-stats { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
  .hero-points, .form-grid, .hero-modules-strip { grid-template-columns: 1fr; }
  .header-nav { display:none; }
  .icon-capsule { display:none; }
  .phone { font-size:13px; }
  .btn-mobile-call { display:inline-flex; }
  .brand-score-top { font-size: 22px; }
  .brand-score-inline { font-size: 18px; }
  .grid-5 { grid-template-columns: 1fr; }
  .cta-bar { grid-template-columns: 1fr; }
  .container { width: min(var(--max), calc(100% - 20px)); }
  h1 { font-size: 40px; }
  .big-score-number { font-size: 62px; }
  .hero-module-chip { flex-direction:row; justify-content:flex-start; text-align:left; min-height:auto; }
  .hero-face-stats { grid-template-columns: 1fr; }
  .hero-ring-card { flex-direction:row; justify-content:flex-start; text-align:left; }
  .hero-ring-label { max-width: none; }
}
