/* Landing pages: consultation booking and courses registration */
.landing-page {
  color: var(--text);
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--accent-soft) 70%, transparent), transparent 34rem),
    radial-gradient(circle at bottom left, color-mix(in srgb, var(--accent-strong) 12%, transparent), transparent 30rem),
    var(--bg);
}

.landing-main { overflow: hidden; }

.landing-hero {
  padding-top: 104px;
  position: relative;
}

.landing-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  gap: 28px;
  align-items: center;
}

.landing-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid color-mix(in srgb, var(--accent-strong) 28%, var(--border));
  border-radius: 999px;
  background: color-mix(in srgb, var(--surface) 88%, var(--accent-soft));
  color: var(--heading);
  font-weight: 850;
  box-shadow: var(--shadow-soft);
}

.landing-hero h1 {
  margin: 18px 0 14px;
  font-size: clamp(2rem, 4.2vw, 3.55rem);
  line-height: 1.16;
  letter-spacing: -0.025em;
  color: var(--heading);
}

.landing-hero .lead { max-width: 680px; line-height: 1.95; }

.landing-actions,
.landing-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 24px;
}

.landing-trust-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 26px;
}

.landing-trust-item,
.landing-mini-card {
  border: 1px solid var(--border);
  border-radius: 24px;
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  box-shadow: var(--shadow-soft);
  padding: 16px;
}

.landing-trust-item strong,
.landing-mini-card strong { display: block; color: var(--heading); margin-bottom: 6px; }

.landing-visual-card {
  border: 1px solid color-mix(in srgb, var(--accent-strong) 22%, var(--border));
  border-radius: 30px;
  padding: 18px;
  background: linear-gradient(160deg, color-mix(in srgb, var(--surface) 94%, var(--accent-soft)), var(--surface));
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}

.landing-visual-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
}

.landing-badge-soft {
  border-radius: 999px;
  padding: 7px 12px;
  background: color-mix(in srgb, var(--accent-soft) 75%, var(--surface));
  color: var(--heading);
  font-size: .9rem;
  font-weight: 850;
}

.landing-check-list {
  display: grid;
  gap: 10px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.landing-check-list li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.landing-check-list li::before {
  content: "✓";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent-strong) 18%, var(--surface));
  color: var(--heading);
  font-weight: 900;
}

.landing-steps,
.landing-benefits,
.landing-course-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.landing-course-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.landing-step-number {
  display: inline-flex;
  width: 38px;
  height: 38px;
  border-radius: 16px;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--accent-strong) 18%, var(--surface));
  color: var(--heading);
  font-weight: 950;
  margin-bottom: 12px;
}

.landing-form-section .container {
  display: grid;
  grid-template-columns: minmax(280px, .78fr) minmax(320px, 1fr);
  gap: 24px;
  align-items: start;
}

.landing-form-card { position: sticky; top: 96px; }

.landing-message {
  margin-top: 12px;
  border-radius: 18px;
  padding: 12px 14px;
  background: color-mix(in srgb, var(--surface-strong) 94%, transparent);
  border: 1px solid var(--border);
  color: var(--text);
}

.landing-message:empty { display: none; }
.landing-message.success { border-color: color-mix(in srgb, #188b5b 40%, var(--border)); }
.landing-message.error { border-color: color-mix(in srgb, #b42318 42%, var(--border)); }

.landing-note {
  margin-top: 14px;
  font-size: .94rem;
  color: var(--muted);
}

.landing-mini-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 20px;
}

.landing-footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  padding: 30px 0 44px;
}

@media (max-width: 980px) {
  .landing-hero-grid,
  .landing-form-section .container { grid-template-columns: 1fr; }
  .landing-trust-row,
  .landing-steps,
  .landing-benefits,
  .landing-course-list { grid-template-columns: 1fr; }
  .landing-form-card { position: static; }
}

@media (max-width: 640px) {
  .landing-hero { padding-top: 96px; }
  .landing-mini-grid { grid-template-columns: 1fr; }
  .landing-actions .btn,
  .landing-card-actions .btn { width: 100%; justify-content: center; }
}

/* Landing builder + attention CTA polish */
.landing-cta-attention {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  box-shadow: 0 18px 44px color-mix(in srgb, var(--accent-strong) 28%, transparent), 0 0 0 1px color-mix(in srgb, var(--on-accent) 32%, transparent) inset;
  animation: landingCtaBreath 2.9s ease-in-out infinite;
}

.landing-cta-attention::after {
  content: "";
  position: absolute;
  inset: -40% -70%;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--on-accent) 38%, transparent), transparent);
  transform: translateX(70%) rotate(10deg);
  opacity: .78;
  z-index: -1;
  animation: landingCtaShine 3.8s ease-in-out infinite;
}

.landing-cta-attention:hover,
.landing-cta-attention:focus-visible {
  animation-play-state: paused;
  box-shadow: 0 22px 58px color-mix(in srgb, var(--accent-strong) 38%, transparent), 0 0 0 4px color-mix(in srgb, var(--focus) 24%, transparent);
}

@keyframes landingCtaBreath {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.018); }
}

@keyframes landingCtaShine {
  0%, 24% { transform: translateX(86%) rotate(10deg); opacity: 0; }
  42% { opacity: .84; }
  62%, 100% { transform: translateX(-86%) rotate(10deg); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .landing-cta-attention,
  .landing-cta-attention::after { animation: none !important; }
}

.landing-builder-page {
  color: var(--text);
}

.landing-builder-page .section {
  padding-block: clamp(42px, 7vw, 78px);
}

.landing-builder-page .section-head h2,
.landing-builder-page .landing-form-section h2 {
  font-size: clamp(1.55rem, 3vw, 2.25rem);
  line-height: 1.35;
  letter-spacing: -0.015em;
}

.landing-builder-page .card h3,
.landing-builder-page .form-card h3 {
  font-size: clamp(1.08rem, 2vw, 1.32rem);
  line-height: 1.55;
}

.landing-builder-page .landing-builder-card,
.landing-builder-page .landing-steps .card,
.landing-builder-page .landing-form-card {
  border-radius: 26px;
}

.landing-builder-page .landing-visual-card,
.landing-builder-page .landing-builder-card,
.landing-builder-page .landing-builder-faq details,
.landing-builder-page .landing-loading-card,
.landing-builder-page .landing-error-card {
  color: var(--text);
  background: color-mix(in srgb, var(--surface-strong) 92%, transparent);
}

.landing-builder-visual {
  display: grid;
  gap: 16px;
  align-content: start;
}

.landing-builder-visual img {
  width: 100%;
  max-height: min(56vh, 560px);
  object-fit: cover;
  border-radius: 28px;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
}

.landing-video-box {
  margin: 0;
  border-radius: 26px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface-solid) 88%, transparent);
  box-shadow: var(--shadow-soft);
}

.landing-video,
.landing-video-frame {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: color-mix(in srgb, var(--heading) 12%, #111);
}

.landing-video {
  max-height: min(54vh, 520px);
  object-fit: cover;
}

.landing-video-frame {
  position: relative;
}

.landing-video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.landing-video-box figcaption {
  padding: 11px 14px;
  color: var(--text);
  background: color-mix(in srgb, var(--surface-solid) 80%, transparent);
  font-size: .94rem;
  text-align: center;
}

.landing-builder-placeholder {
  min-height: 320px;
  display: grid;
  place-items: center;
  border-radius: 28px;
  background:
    radial-gradient(circle at 18% 20%, color-mix(in srgb, var(--accent) 32%, transparent), transparent 34%),
    radial-gradient(circle at 80% 78%, color-mix(in srgb, var(--gold) 22%, transparent), transparent 38%),
    linear-gradient(145deg, color-mix(in srgb, var(--surface-strong) 90%, transparent), color-mix(in srgb, var(--surface) 70%, transparent));
  border: 1px solid var(--border);
  color: var(--heading);
  font-weight: 900;
  text-align: center;
  padding: 24px;
}

.landing-builder-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}

.landing-builder-photo {
  margin: 0;
  border-radius: 28px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface-strong) 92%, transparent);
  color: var(--text);
  box-shadow: var(--shadow-soft);
}

.landing-builder-photo--wide { grid-column: span 2; }
.landing-builder-photo--small { max-width: 520px; justify-self: center; }

.landing-builder-photo img {
  width: 100%;
  aspect-ratio: 16 / 10;
  max-height: 420px;
  object-fit: cover;
}

.landing-builder-photo figcaption {
  padding: 12px 14px;
  color: var(--text-muted);
  background: color-mix(in srgb, var(--surface-solid) 74%, transparent);
  font-size: .95rem;
  text-align: center;
}

.landing-builder-form-container {
  display: grid;
  grid-template-columns: minmax(280px, .82fr) minmax(320px, 1fr);
  gap: 24px;
  align-items: start;
}

.landing-builder-faq {
  display: grid;
  gap: 14px;
  max-width: 920px;
}

.landing-builder-faq summary {
  cursor: pointer;
  font-weight: 900;
  color: var(--heading);
}

.landing-builder-faq p {
  margin-top: 12px;
  color: var(--text);
}

.landing-builder-page p,
.landing-builder-page .lead,
.landing-builder-page .landing-note,
.landing-builder-page figcaption,
.landing-builder-page .landing-message {
  color: var(--text);
}

.landing-builder-page .landing-badge-soft,
.landing-builder-page .section-kicker,
.landing-builder-page .landing-eyebrow {
  color: color-mix(in srgb, var(--accent-strong) 86%, var(--text));
  background: color-mix(in srgb, var(--accent-soft) 62%, var(--surface-strong));
  border: 1px solid color-mix(in srgb, var(--accent-strong) 28%, var(--border));
}

[data-theme="dark"] .landing-builder-page .landing-badge-soft,
[data-theme="dark"] .landing-builder-page .section-kicker,
[data-theme="dark"] .landing-builder-page .landing-eyebrow,
.landing-builder-page[data-theme="dark"] .landing-badge-soft,
.landing-builder-page[data-theme="dark"] .section-kicker,
.landing-builder-page[data-theme="dark"] .landing-eyebrow {
  color: var(--heading);
  background: color-mix(in srgb, var(--accent-soft) 42%, var(--surface-strong));
}

@media (max-width: 980px) {
  .landing-builder-gallery,
  .landing-builder-form-container { grid-template-columns: 1fr; }
  .landing-builder-photo--wide { grid-column: auto; }
}

@media (max-width: 640px) {
  .landing-builder-visual img,
  .landing-video { max-height: 340px; }
  .landing-builder-photo img { max-height: 300px; }
}

/* Admin-controlled landing font sizes */
.landing-builder-page .landing-hero h1 {
  font-size: var(--landing-title-font-size, clamp(2rem, 4vw, 3.45rem));
}

.landing-builder-page p,
.landing-builder-page li,
.landing-builder-page .lead,
.landing-builder-page .landing-note,
.landing-builder-page figcaption,
.landing-builder-page .landing-message {
  font-size: var(--landing-body-font-size, inherit);
}

/* v36: detailed course blocks inside dynamic landing pages */
.landing-related-courses .landing-course-list--detailed{grid-template-columns:1fr;max-width:1040px;margin-inline:auto}
.landing-course-card--detailed{display:grid;gap:12px;align-content:start}
.landing-course-card--detailed h3{margin:2px 0 0;color:var(--heading)}
.landing-course-meta-row{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:4px}
.landing-course-extra{display:grid;gap:7px;border-top:1px solid color-mix(in srgb,var(--border) 72%,transparent);padding-top:10px}
.landing-course-extra strong{color:var(--heading)}
.landing-course-extra p{margin:0;color:var(--text)}
.landing-course-points{margin:0;padding-inline-start:20px;display:grid;gap:6px;color:var(--text)}
.landing-course-points li{line-height:1.8}
.landing-card-actions{display:flex;justify-content:flex-start;margin-top:6px}
@media(max-width:700px){.landing-course-meta-row{display:grid}.landing-course-card--detailed{gap:10px}}

/* Consultation landing booking form: compact two-column layout matching the main booking form. */
[data-landing-kind="consultation"] #landing-booking-form.landing-booking-form-card {
  padding: clamp(18px, 2.4vw, 28px);
  border-radius: 30px;
}

[data-landing-kind="consultation"] #landing-booking-form .form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

[data-landing-kind="consultation"] #landing-booking-form h3 {
  margin-bottom: 14px;
  color: var(--heading);
  font-size: clamp(1.08rem, 1.6vw, 1.32rem);
}

[data-landing-kind="consultation"] #landing-booking-form input,
[data-landing-kind="consultation"] #landing-booking-form select,
[data-landing-kind="consultation"] #landing-booking-form textarea,
[data-landing-kind="consultation"] #landing-booking-form .time-picker-trigger {
  min-height: 48px;
  border-radius: 16px;
}

[data-landing-kind="consultation"] #landing-booking-form textarea {
  min-height: 92px;
}

[data-landing-kind="consultation"] #landing-booking-form .landing-note {
  margin-top: 12px;
  line-height: 1.8;
}

@media (max-width: 680px) {
  [data-landing-kind="consultation"] #landing-booking-form .form-grid {
    grid-template-columns: 1fr;
  }
}
