:root {
  --bg: #090f18;
  --bg-soft: #0d1521;
  --panel: #101a28;
  --line: rgba(255,255,255,.09);
  --text: #f2f4f7;
  --muted: #b0b8c4;
  --gold: #c9a15a;
  --gold-light: #e3c58e;
  --white: #fff;
  --container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: "DM Sans", sans-serif;
  font-size: 17px;
  line-height: 1.65;
  overflow-x: hidden;
}
body:before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.012) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.012) 1px, transparent 1px);
  background-size: 70px 70px;
  mask-image: linear-gradient(to bottom, black, transparent 85%);
  z-index: -1;
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
img { max-width: 100%; display: block; }
.container { width: min(var(--container), calc(100% - 48px)); margin: 0 auto; }

.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  border-bottom: 1px solid transparent;
  transition: .35s ease;
}
.site-header.scrolled {
  background: rgba(7,12,20,.88);
  backdrop-filter: blur(18px);
  border-color: var(--line);
}
.nav-wrap { height: 82px; display: flex; align-items: center; justify-content: space-between; }
.brand img { width: 168px; height: 66px; object-fit: contain; mix-blend-mode: screen; filter: brightness(1.08) contrast(1.05); }
.nav { display: flex; align-items: center; gap: 34px; font-size: 15px; color: #d0d6de; font-weight: 500; }
.nav a { transition: color .2s ease; }
.nav a:hover { color: #fff; }
.nav-cta { border: 1px solid rgba(201,161,90,.55); padding: 12px 18px; color: #fff !important; }
.nav-cta span { color: var(--gold-light); margin-left: 7px; }

.menu-toggle { display:none; background:none; border:0; width:42px; height:42px; padding:8px; }
.menu-toggle span { display:block; height:1px; background:#fff; margin:6px 0; }

.hero {
  min-height: 860px;
  height: 100vh;
  max-height: 980px;
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.hero-media {
  position: absolute;
  inset: 0;
  background: url("assets/hero-skyline.jpg") center / cover no-repeat;
  transform: scale(1.04);
}
.hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(7,12,20,.88) 0%, rgba(7,12,20,.62) 48%, rgba(7,12,20,.35) 100%),
    linear-gradient(180deg, rgba(7,12,20,.25) 0%, rgba(7,12,20,.55) 100%);
}
.hero-orb { position:absolute; border-radius:50%; filter:blur(1px); pointer-events:none; }
.hero-orb-one { width:520px; height:520px; right:-150px; top:20%; background:radial-gradient(circle,rgba(201,161,90,.08),transparent 68%); }
.hero-orb-two { width:620px; height:620px; left:-380px; bottom:-300px; background:radial-gradient(circle,rgba(45,78,112,.18),transparent 68%); }
.hero-content { position:relative; z-index:2; padding-top:70px; }
.eyebrow, .section-label, .insight-meta {
  font-size: 12px; letter-spacing: .22em; color: #c0c7d0; font-weight:600;
}
.eyebrow { display:flex; align-items:center; gap:14px; color:#d5dbe3; }
.eyebrow i { width:36px; height:1px; background:var(--gold); display:inline-block; }
.hero h1 {
  font-family: Manrope, sans-serif;
  font-size: clamp(52px, 7vw, 96px);
  line-height: .98;
  letter-spacing: -.065em;
  font-weight: 600;
  margin: 28px 0 26px;
  max-width: 900px;
}
.hero h1 span { color: var(--gold-light); }
.hero-copy { max-width: 560px; font-size: 19px; color:#d4dae2; line-height:1.75; }
.hero-actions { display:flex; gap:14px; margin-top:38px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:54px; padding:0 24px; font-size:14px; letter-spacing:.04em; font-weight:600; transition:.25s ease; cursor:pointer; border:0; }
.btn-primary { background:linear-gradient(135deg,#d3b170,#ad813e); color:#0a1018; font-weight:700; box-shadow:0 10px 30px rgba(201,161,90,.12); }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 14px 36px rgba(201,161,90,.22); }
.btn-primary:disabled { opacity:.7; transform:none; cursor:wait; }
.btn-ghost { border:1px solid rgba(255,255,255,.28); color:#e8edf3; background:rgba(8,14,22,.25); }
.btn-ghost:hover { border-color:rgba(255,255,255,.45); background:rgba(255,255,255,.06); }
.scroll-indicator { position:absolute; right:35px; bottom:40px; display:flex; flex-direction:column; align-items:center; gap:12px; color:#c5ccd6; font-size:11px; letter-spacing:.25em; z-index:2; }
.scroll-indicator i { width:1px; height:55px; background:linear-gradient(var(--gold),transparent); }

.stats-bar {
  background: #070c13;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 36px 0;
}
.stats-bar-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.stat-item {
  padding: 8px 20px 8px 0;
  border-right: 1px solid var(--line);
}
.stat-item:last-child { border-right: 0; }
.stat-item strong {
  display: block;
  font: 600 clamp(28px, 3.4vw, 42px)/1.1 Manrope, sans-serif;
  letter-spacing: -.04em;
  color: var(--gold-light);
}
.stat-item span {
  display: block;
  margin-top: 8px;
  color: #c2c9d2;
  font-size: 14px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 500;
}

.section { padding: 120px 0; }
.intro { background:linear-gradient(180deg,#0a111b,#0c141f); }
.intro-grid { display:grid; grid-template-columns:180px 1fr; gap:80px; }
.section-label { display:flex; align-items:center; gap:12px; height:22px; }
.section-label span { color:var(--gold); }
.section-label div { height:1px; width:42px; background:rgba(201,161,90,.6); }
.section-label small { font-size:12px; letter-spacing:.2em; text-transform:uppercase; }
.kicker { color:var(--gold-light); text-transform:uppercase; letter-spacing:.18em; font-size:13px; font-weight:600; margin:0 0 18px; }
.intro-content h2, .section-heading h2, .strategy-head h2, .why-copy h2, .contact-copy h2 {
  font-family:Manrope,sans-serif; font-size:clamp(34px,4.1vw,58px); line-height:1.12; letter-spacing:-.04em; font-weight:500; margin:0;
}
.intro-content h2 { max-width:900px; }
.muted { color:var(--muted); font-size:18px; line-height:1.8; max-width:720px; }
.intro-content .muted { margin:22px 0 0; }
.heading-copy { margin: 18px 0 0; }
.text-link { display:inline-block; margin-top:32px; font-size:15px; color:#e8edf2; border-bottom:1px solid rgba(201,161,90,.5); padding-bottom:7px; }
.text-link span { color:var(--gold); margin-left:9px; }

.intro-visual {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 28px;
  margin-top: 72px;
  align-items: stretch;
}
.photo-frame {
  margin: 0;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  min-height: 420px;
}
.photo-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 420px;
}
.photo-frame figcaption {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 28px 26px 24px;
  background: linear-gradient(transparent, rgba(7,12,20,.92));
  color: #d7dde5;
  font-size: 16px;
  line-height: 1.5;
}
.photo-frame figcaption span {
  display: block;
  color: var(--gold-light);
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  margin-bottom: 8px;
  font-weight: 600;
}
.intro-highlights {
  display: grid;
  gap: 0;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.018);
}
.intro-highlights article {
  padding: 28px 26px;
  border-bottom: 1px solid var(--line);
}
.intro-highlights article:last-child { border-bottom: 0; }
.intro-highlights h3 {
  font: 600 18px/1.3 Manrope, sans-serif;
  margin: 0 0 10px;
  letter-spacing: -.02em;
}
.intro-highlights p {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.7;
}

.solutions { background:#090f18; }

.modules {
  background: linear-gradient(180deg, #090f18 0%, #0c141f 100%);
  padding-bottom: 60px;
  overflow: visible;
}
.modules-head {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 80px;
  align-items: start;
  margin-bottom: 28px;
}
.modules-head h2 {
  font-family: Manrope, sans-serif;
  font-size: clamp(34px, 4.1vw, 58px);
  line-height: 1.12;
  letter-spacing: -.04em;
  font-weight: 500;
  margin: 0;
  max-width: 760px;
}
.modules-hint {
  margin: 14px 0 0;
  color: #9aa4b2;
  font-size: 13px;
}
.modules-carousel-wrap {
  position: relative;
  margin-top: 36px;
  overflow: hidden;
  width: 100%;
}
.modules-carousel {
  display: flex;
  width: max-content;
  animation: modules-marquee 35s linear infinite;
}
.modules-carousel-set {
  display: flex;
  gap: 24px;
  padding-right: 24px;
  flex-shrink: 0;
}
.module-card {
  width: 320px;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 28px;
  background: #fff;
  color: #1d2430;
  box-shadow: 0 18px 40px rgba(0,0,0,.22);
  border: 1px solid rgba(255,255,255,.08);
}
.module-card-media {
  width: 100%;
  height: 240px;
  overflow: hidden;
  border-radius: 28px 28px 0 0;
  background: #e6ebf1;
}
.module-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  display: block;
}
@keyframes modules-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.module-card-body {
  padding: 24px;
}
.module-card-body h3 {
  margin: 0;
  font: 600 18px/1.3 Manrope, sans-serif;
  letter-spacing: -.02em;
  color: #151b24;
}
.module-card-body p {
  margin: 10px 0 0;
  color: #5d6775;
  font-size: 14px;
  line-height: 1.6;
}

.section-heading { display:grid; grid-template-columns:180px 1fr; gap:80px; align-items:start; margin-bottom:70px; }
.section-heading h2 { max-width:760px; }
.solution-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.solution-card { min-height:340px; padding:34px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); position:relative; overflow:hidden; transition:.35s ease; background:rgba(255,255,255,.008); }
.solution-card:after { content:""; position:absolute; inset:auto -20% -50% -20%; height:180px; background:radial-gradient(circle,rgba(201,161,90,.09),transparent 70%); opacity:0; transition:.35s; }
.solution-card:hover { background:rgba(255,255,255,.025); transform:translateY(-4px); }
.solution-card:hover:after { opacity:1; }
.card-number { font-size:13px; color:#8b95a3; letter-spacing:.16em; font-weight:600; }
.card-icon { color:var(--gold); font-size:28px; margin-top:28px; }
.solution-card h3 { font:600 24px Manrope,sans-serif; letter-spacing:-.03em; margin:14px 0 12px; }
.solution-card p { color:#c0c8d2; font-size:16px; line-height:1.75; max-width:320px; }
.solution-card a { position:absolute; bottom:28px; left:34px; font-size:14px; color:#e4e8ee; z-index:2; }
.solution-card a span { color:var(--gold); margin-left:7px; }

.why { background: #0b121c; }
.why-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.why-copy h2 { max-width: 560px; margin-bottom: 22px; }
.why-list {
  list-style: none;
  margin: 32px 0 0;
  padding: 0;
  display: grid;
  gap: 18px;
}
.why-list li {
  padding-left: 18px;
  border-left: 2px solid var(--gold);
  color: var(--muted);
  font-size: 17px;
  line-height: 1.7;
}
.why-list strong { color: #eef1f5; font-weight: 600; }
.why-photo { margin: 0; overflow: hidden; border: 1px solid var(--line); min-height: 460px; }
.why-photo img { width: 100%; height: 100%; object-fit: cover; min-height: 460px; }

.statement { position:relative; padding:170px 0; overflow:hidden; }
.statement-media {
  position: absolute;
  inset: 0;
  background: url("assets/insight-macro.jpg") center / cover no-repeat;
  filter: saturate(.7);
}
.statement:after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(6,10,16,.78);
}
.statement-content { position:relative; z-index:1; text-align:center; max-width:900px; }
.quote-mark { font:100px Georgia,serif; color:var(--gold); opacity:.5; display:block; height:80px; }
.statement-content p { font:500 clamp(32px,4.6vw,58px)/1.15 Manrope,sans-serif; letter-spacing:-.04em; margin:0; }
.gold-line { width:60px; height:1px; background:var(--gold); margin:35px auto 16px; }
.statement-caption { color:#d0d6de; font-size:13px; letter-spacing:.22em; font-weight:600; }

.strategy { background:#0c141f; }
.strategy-head { display:grid; grid-template-columns:180px 1fr; gap:80px; margin-bottom:85px; }
.process { display:grid; grid-template-columns:repeat(4,1fr); position:relative; }
.process:before { content:""; position:absolute; left:0; right:0; top:16px; height:1px; background:var(--line); }
.process-item { position:relative; padding-right:28px; }
.process-item > span { display:flex; align-items:center; justify-content:center; width:32px; height:32px; border:1px solid rgba(201,161,90,.55); background:#0c141f; color:var(--gold); font-size:12px; font-weight:600; position:relative; z-index:1; }
.process-dot { width:5px; height:5px; border-radius:50%; background:var(--gold); position:absolute; top:13px; left:13px; opacity:0; }
.process-item h3 { font:600 22px Manrope,sans-serif; margin:28px 0 12px; }
.process-item p { color:#c0c8d2; font-size:16px; line-height:1.75; max-width:250px; }

.insights { background:#0b121c; }
.insight-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:18px; }
.insight-card { border:1px solid var(--line); background: rgba(255,255,255,.015); display:flex; flex-direction:column; transition:.3s; overflow:hidden; }
.insight-card:hover { transform:translateY(-5px); border-color:rgba(201,161,90,.25); }
.insight-visual { height:230px; position:relative; overflow:hidden; }
.insight-card.large .insight-visual { height:280px; }
.insight-visual img { width:100%; height:100%; object-fit:cover; }
.insight-visual span {
  position:absolute; top:18px; left:18px; z-index:1;
  font-size:12px; letter-spacing:.22em; color:#fff; font-weight:600;
  background: rgba(8,14,22,.55); padding: 7px 10px; backdrop-filter: blur(8px);
}
.insight-body { padding: 22px 20px 26px; display:flex; flex-direction:column; flex:1; }
.insight-meta { margin: 0 0 12px; font-size:12px; color:#b7bfc9; }
.insight-meta i { display:inline-block; width:5px; height:5px; border-radius:50%; background:var(--gold); margin:0 8px 1px; }
.insight-card h3 { font:600 22px/1.3 Manrope,sans-serif; letter-spacing:-.03em; margin:0 0 12px; }
.insight-card p { color: var(--muted); font-size: 16px; line-height: 1.7; margin: 0 0 22px; }
.insight-card a { margin-top: auto; font-size:15px; color:#e6ebf0; }
.insight-card a span { color:var(--gold); margin-left:8px; }

.contact { position:relative; background:#080e16; overflow:hidden; }
.contact:before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(201,161,90,.025),transparent 50%); }
.contact-glow { position:absolute; width:650px; height:650px; border-radius:50%; right:-300px; top:-250px; background:radial-gradient(circle,rgba(201,161,90,.11),transparent 68%); }
.contact-grid { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.contact-copy h2 { max-width:570px; margin-bottom:22px; }
.contact-copy .muted { max-width:520px; }
.inline-mail { color: var(--gold-light); border-bottom: 1px solid rgba(201,161,90,.45); }
.contact-points { display: grid; gap: 18px; margin-top: 32px; }
.contact-detail { display:flex; gap:14px; align-items:flex-start; }
.contact-detail > span { color:var(--gold); font-size: 16px; line-height: 1.4; }
.contact-detail b, .contact-detail small { display:block; }
.contact-detail b { font-size:16px; font-weight:600; }
.contact-detail small { color:#b3bbc6; font-size:15px; margin-top:4px; line-height:1.5; }
.contact-photo { margin: 28px 0 0; overflow: hidden; border: 1px solid var(--line); max-height: 220px; }
.contact-photo img { width: 100%; height: 220px; object-fit: cover; }

.contact-form { border:1px solid var(--line); background:rgba(255,255,255,.018); padding:36px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.contact-form label { display:block; color:#c5ccd5; font-size:13px; letter-spacing:.08em; margin-bottom:18px; font-weight:600; text-transform: uppercase; }
.contact-form input, .contact-form select, .contact-form textarea {
  width:100%; border:0; border-bottom:1px solid rgba(255,255,255,.16); outline:0; background:transparent; color:#eef1f5; padding:12px 0; margin-top:6px; resize:vertical; font-size:16px; letter-spacing:0; font-weight:400; text-transform:none;
}
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color:var(--gold); }
.contact-form input::placeholder, .contact-form textarea::placeholder { color:#6d7785; }
.contact-form select option { background:#101a28; }
.hp-field { position:absolute; left:-9999px; height:0; width:0; opacity:0; }
.full { width:100%; margin-top:4px; }
.form-note { display:block; color:#9aa4b2; font-size:13px; margin-top:16px; line-height:1.6; }
.form-success { font-size:15px; margin-top:14px; min-height:20px; line-height:1.5; }
.form-success.ok { color:#b9d69d; }
.form-success.err { color:#e8b4b4; }

.footer { background:#060b11; padding:65px 0 30px; border-top:1px solid var(--line); }
.footer-top { display:grid; grid-template-columns:1fr 1.2fr 1fr; align-items:center; padding-bottom:48px; border-bottom:1px solid var(--line); gap: 24px; }
.footer-brand img { width:160px; height:62px; object-fit:contain; mix-blend-mode:screen; }
.footer-blurb p { color:#c2c9d2; font-size:16px; line-height:1.7; margin: 0 0 10px; }
.footer-mail { color: var(--gold-light); font-size: 15px; }
.footer-nav { display:flex; flex-wrap:wrap; gap:14px 22px; justify-content:flex-end; align-items:center; }
.footer-nav a { font-size:15px; color:#c5ccd5; }
.back-top { letter-spacing:.04em; color:#e4e9ef !important; }
.footer-docs {
  padding: 28px 0 8px;
  border-bottom: 1px solid var(--line);
}
.footer-docs-title {
  margin: 0 0 16px;
  color: #d7dde5;
  font-size: 13px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
}
.footer-docs-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px 18px;
}
.footer-docs-grid a {
  color: #c5ccd5;
  font-size: 14px;
  line-height: 1.4;
  border-bottom: 1px solid transparent;
  padding-bottom: 2px;
  transition: color .2s ease, border-color .2s ease;
}
.footer-docs-grid a:hover {
  color: var(--gold-light);
  border-color: rgba(201,161,90,.45);
}
.footer-bottom { display:flex; justify-content:space-between; padding:25px 0 12px; color:#9aa4b2; font-size:14px; }
.footer-bottom div { display:flex; gap:22px; }
.disclaimer { color:#8b95a3; font-size:13px; line-height:1.7; max-width:920px; margin:15px 0 0; }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .8s ease,transform .8s ease; }
.reveal.visible { opacity:1; transform:none; }
.delay-1 { transition-delay:.08s; }
.delay-2 { transition-delay:.16s; }
.delay-3 { transition-delay:.24s; }
.delay-4 { transition-delay:.32s; }

@media (max-width: 900px) {
  .container { width:min(var(--container),calc(100% - 32px)); }
  .nav { position:absolute; top:82px; left:16px; right:16px; display:none; flex-direction:column; align-items:stretch; gap:0; padding:12px; background:#0b121c; border:1px solid var(--line); }
  .nav.open { display:flex; }
  .nav a { padding:14px; }
  .nav-cta { text-align:center; margin-top:5px; }
  .menu-toggle { display:block; }
  .hero { min-height:760px; }
  .hero h1 { font-size:clamp(44px,11vw,72px); }
  .hero-copy { font-size: 17px; }
  .intro-grid,.section-heading,.strategy-head,.modules-head { grid-template-columns:1fr; gap:24px; }
  .intro-visual, .why-grid { grid-template-columns:1fr; }
  .solution-grid { grid-template-columns:1fr 1fr; }
  .process { grid-template-columns:1fr 1fr; gap:45px 0; }
  .process:before { display:none; }
  .stats-bar-grid { grid-template-columns:1fr 1fr; gap: 24px 12px; }
  .stat-item:nth-child(2) { border-right: 0; }
  .insight-grid { grid-template-columns:1fr; }
  .contact-grid { grid-template-columns:1fr; gap:48px; }
  .footer-top { grid-template-columns:1fr; }
  .footer-nav { justify-content:flex-start; }
  .footer-docs-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 560px) {
  body { font-size: 16px; }
  .nav-wrap { height:70px; }
  .brand img { width:140px; height:55px; }
  .nav { top:70px; }
  .hero { min-height:720px; }
  .hero-content { padding-top:35px; }
  .eyebrow { font-size:11px; }
  .hero h1 { margin-top:22px; }
  .hero-copy { font-size:16px; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .scroll-indicator { display:none; }
  .section { padding:80px 0; }
  .muted, .solution-card p, .process-item p, .insight-card p { font-size:16px; }
  .solution-grid,.process,.stats-bar-grid { grid-template-columns:1fr; }
  .stat-item { border-right:0; border-bottom:1px solid var(--line); padding-bottom:18px; }
  .stat-item:last-child { border-bottom:0; }
  .solution-card { min-height:300px; }
  .field-row { grid-template-columns:1fr; gap:0; }
  .contact-form { padding:24px 20px; }
  .footer-bottom { flex-direction:column; gap:15px; }
  .footer-docs-grid { grid-template-columns:1fr; }
  .module-card { width: 280px; }
  .modules-carousel-set { gap: 16px; }
  .modules-carousel { gap: 16px; }
  .module-card-media { height: 210px; }
  .photo-frame, .photo-frame img { min-height: 280px; }
  .why-photo, .why-photo img { min-height: 280px; }
}

.schedule-cta {
  margin: 28px 0 0;
}
.schedule-cta-note {
  margin: 10px 0 0;
  color: #aeb8c8;
  font-size: 14px;
  line-height: 1.5;
}

.schedule-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.65);
  backdrop-filter: blur(8px);
  z-index: 200;
}
.schedule-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
  z-index: 201;
}
.schedule-modal[hidden] {
  display: none;
}
.schedule-modal-inner {
  width: min(1120px, 100%);
  max-height: min(85vh, 820px);
  overflow: hidden;
  background: rgba(12, 20, 31, .92);
  border: 1px solid var(--line);
  box-shadow: 0 20px 70px rgba(0,0,0,.45);
}
.schedule-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 22px 14px;
  border-bottom: 1px solid var(--line);
}
.schedule-modal-header h2 {
  font-family: Manrope, sans-serif;
  font-size: 24px;
  margin: 0 0 6px;
  letter-spacing: -.03em;
}
.schedule-modal-subtitle {
  margin: 0;
  color: #aeb8c8;
  font-size: 14px;
  line-height: 1.5;
}
.schedule-modal-close {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.02);
  color: #e7ecf4;
  font-size: 22px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.schedule-modal-close:hover {
  border-color: rgba(201,161,90,.35);
  background: rgba(255,255,255,.04);
}

.schedule-modal-body {
  padding: 18px 22px 12px;
  overflow: auto;
  max-height: calc(min(85vh, 820px) - 120px);
}
.schedule-step + .schedule-step {
  margin-top: 18px;
}
.schedule-step h3 {
  margin: 0 0 10px;
  font-size: 16px;
  color: #dde3ec;
  font-weight: 700;
  letter-spacing: -.02em;
}

.schedule-calendar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.schedule-calendar-nav {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.02);
  color: #dfe6ef;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
}
.schedule-calendar-month {
  flex: 1;
  text-align: center;
  font-weight: 800;
  letter-spacing: .02em;
  color: #e7ecf4;
}
.schedule-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
  margin-top: 6px;
}
.schedule-calendar-legend {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
  margin-top: 10px;
  padding-bottom: 2px;
}
.schedule-calendar-legend .legend-day {
  font-size: 12px;
  color: #9fb0c5;
  text-align: center;
}
.schedule-cal-day {
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.02);
  color: #d8dee7;
  border-radius: 12px;
  padding: 10px 0;
  text-align: center;
  cursor: pointer;
  user-select: none;
  font-weight: 700;
}
.schedule-cal-day.disabled {
  cursor: not-allowed;
  opacity: .35;
}
.schedule-cal-day.selected {
  border-color: rgba(201,161,90,.55);
  background: rgba(201,161,90,.14);
  color: #fff;
}
.schedule-cal-day.empty {
  border: 1px solid transparent;
  background: transparent;
  cursor: default;
  opacity: 0;
  padding: 10px 0;
}

.schedule-times-meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 6px 0 10px;
}
.schedule-times-meta span {
  color: #b7c4d7;
  font-size: 14px;
}
.schedule-duration {
  color: var(--gold-light) !important;
  font-weight: 800;
  letter-spacing: .04em;
}
.schedule-times-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  padding-bottom: 10px;
  max-height: 260px;
  overflow: auto;
}
.schedule-slot {
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.02);
  color: #dfe6ef;
  border-radius: 12px;
  padding: 12px 8px;
  text-align: center;
  cursor: pointer;
  font-weight: 800;
  letter-spacing: .01em;
  font-size: 13px;
}
.schedule-slot:hover {
  border-color: rgba(201,161,90,.35);
  background: rgba(255,255,255,.04);
}
.schedule-slot.disabled {
  cursor: not-allowed;
  opacity: .35;
}
.schedule-slot.selected {
  border-color: rgba(201,161,90,.65);
  background: rgba(201,161,90,.16);
  color: #fff;
}
.schedule-times-hint {
  margin: 10px 0 0;
  color: #9fb0c5;
  font-size: 13px;
  line-height: 1.5;
}

.schedule-form {
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.015);
  padding: 16px 16px 18px;
  border-radius: 16px;
}
.schedule-form label {
  display: block;
  color: #c5ccd5;
  font-size: 13px;
  letter-spacing: .08em;
  margin-bottom: 18px;
  font-weight: 700;
  text-transform: uppercase;
}
.schedule-form input,
.schedule-form textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.16);
  outline: 0;
  background: transparent;
  color: #eef1f5;
  padding: 12px 0;
  margin-top: 6px;
  resize: vertical;
  font-size: 16px;
  font-weight: 400;
}
.schedule-form input::placeholder,
.schedule-form textarea::placeholder {
  color: #6d7785;
}

.schedule-modal-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 14px 22px 22px;
  border-top: 1px solid var(--line);
}
.schedule-modal-footer .btn {
  min-height: 52px;
}

@media (max-width: 900px) {
  .schedule-times-grid { grid-template-columns: repeat(3, 1fr); }
  .schedule-modal-footer { flex-direction: column; align-items: stretch; }
}
@media (max-width: 560px) {
  .schedule-modal-inner { max-height: 88vh; }
  .schedule-modal-body { max-height: calc(88vh - 140px); }
  .schedule-times-grid { grid-template-columns: repeat(2, 1fr); }
}
