/* Homepage art direction. Shared public pages retain their own layouts. */
.landing-home {
  --max: 1320px;
  --gutter: clamp(20px, 4.5vw, 64px);
  --radius-lg: 24px;
  --section-y: clamp(64px, 8vw, 120px);
  --ease-out: cubic-bezier(.22, 1, .36, 1);
}
.landing-home main { isolation: isolate; }
.landing-home main > section { padding-block: var(--section-y) !important; }
.landing-home main > section + section { border-top: 1px solid var(--line-soft); }
.landing-home main :is(.wrap, .wrap > div, [class$="-grid"] > *) { min-width: 0; }
.landing-home .section-title { font-size: clamp(30px, 3.6vw, 50px); line-height: 1.25; font-weight: 700; }
.landing-home .section-sub { line-height: 1.9; }
.landing-home .eyebrow { border: 1px solid color-mix(in srgb, var(--primary) 15%, transparent); border-radius: 100px; padding: 8px 14px; }
.landing-home[dir="rtl"] .eyebrow { font-family: inherit; font-size: 12px; }
.landing-home .card { border-radius: var(--radius-lg) !important; }
.landing-home .btn { border-radius: 12px; min-height: 46px; transition: transform .3s var(--ease-out), box-shadow .3s, background .3s, border-color .3s; }
.landing-home .btn-primary { background: #0f4d2a; color: #fff; box-shadow: 0 8px 24px -12px #0f4d2a99; }
.landing-home .btn-primary:hover { background: #0a3a1f; }
.landing-home .hero-actions .btn-primary, .landing-home .sticky-cta .btn-primary { animation: none; }
.landing-home .site-nav { background: color-mix(in srgb, var(--bg-0) 88%, transparent); }
.landing-home .site-nav .wrap { gap: 20px; }
.landing-home .nav-link { position: relative; white-space: nowrap; font-size: 13px; }
.landing-home .nav-link::after { content: ''; position: absolute; inset-inline: 0; bottom: 0; height: 2px; background: var(--primary); transform: scaleX(0); transition: transform .3s var(--ease-out); }
.landing-home .nav-link:is(:hover, [aria-current="location"]) { color: var(--primary); }
.landing-home .nav-link:is(:hover, [aria-current="location"])::after { transform: scaleX(1); }
.landing-home .mobile-nav-link[aria-current="location"] { color: var(--primary); background: var(--primary-tint); border-color: var(--primary); }
.landing-home .mobile-nav-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.landing-home .lang-block { display: flex; align-items: center; justify-content: center; }
.landing-home .page-progress { z-index: 100; transition: transform .15s linear; }
.skip-link { position: fixed; inset-inline-start: 20px; top: 8px; z-index: 110; padding: 14px 22px; border-radius: 10px; background: var(--ink-1); color: var(--bg-1); transform: translateY(-150%); }
.skip-link:focus { transform: none; }

/* A spacious opening with a softly lit product stage. */
.landing-home main > .hero-section { padding-block: clamp(32px, 5vw, 72px) !important; }
.landing-home .hero-grid { min-height: 660px; gap: clamp(24px, 4vw, 64px); }
.landing-home .hero-copy { padding-top: 0; }
.landing-home .hero-title { font-size: clamp(40px, 4.4vw, 64px); line-height: 1.22; margin-block: 24px; }
.landing-home .hero-sub { font-size: clamp(16px, 1.4vw, 18px); line-height: 1.95; }
.landing-home .hero-actions { margin-top: 32px; gap: 12px; }
.landing-home .hero-actions .btn { min-height: 54px; }
.landing-home .hero-field { opacity: .45; mask-image: linear-gradient(to bottom, #000, transparent); }
.landing-home .hero-visual { min-height: 620px; }
.landing-home .hero-visual::before { content: ''; position: absolute; inset: 7% 0; border: 1px solid color-mix(in srgb, var(--primary) 12%, transparent); border-radius: 48% 48% 24px 24px; background: radial-gradient(ellipse at 50% 45%, color-mix(in srgb, var(--primary) 13%, var(--bg-1)), var(--primary-tint)); transform: rotate(-4deg); }
.landing-home .hero-visual::after { content: ''; position: absolute; width: 70%; height: 35px; bottom: 4%; background: var(--primary); opacity: .09; filter: blur(22px); border-radius: 50%; }
.landing-home .hero-phone-stage { --hero-phone-scale: .88; }
.landing-home .hero-float { border-radius: 18px; box-shadow: 0 20px 50px -25px #0e1a1450; }
.landing-home .hero-float.booking { inset-inline-start: -3%; top: 15%; }
.landing-home .hero-float.revenue { inset-inline-end: -3%; bottom: 13%; }
.landing-home .hero-badges { gap: 8px; margin-top: 28px; }
.landing-home .badge-chip { border-radius: 100px; box-shadow: none; font-size: 11.5px; padding: 8px 12px; }

/* Consistent editorial rhythm, roomy cards, and readable supporting copy. */
.landing-home :is(.aud-grid, .feat-grid, .price-grid, .te-grid) { gap: 22px !important; }
.landing-home :is(.aud-grid, .feat-grid, .te-grid) > .card { padding: clamp(24px, 3vw, 36px) !important; }
.landing-home .aud-card-title { line-height: 1.35; }
.landing-home .feat-grid .card { position: relative; overflow: hidden; }
.landing-home .feat-grid .card::after { content: ''; position: absolute; inset-inline: 26px; bottom: 0; height: 3px; border-radius: 4px; background: var(--primary); transform: scaleX(0); transition: transform .4s var(--ease-out); }
.landing-home .feat-grid .card h3 { font-size: 18px !important; line-height: 1.5; }
.landing-home .feat-grid .card p { color: var(--ink-2) !important; font-size: 14px !important; line-height: 1.85 !important; }
.landing-home #features { background: var(--bg-2); }
.landing-home .dash-grid { gap: clamp(28px, 4vw, 64px) !important; align-items: center; }
.landing-home .dashboard-preview { overflow: auto; border-radius: 20px; box-shadow: var(--shadow-lg); overscroll-behavior-inline: contain; }
.landing-home .dashboard-preview > div { min-width: 620px; box-shadow: none !important; }
.landing-home .app-grid { gap: 40px !important; }
.landing-home .app-phones { direction: ltr; }
.landing-home .app-phones > div:not(:first-child) { flex-shrink: 0; }
.landing-home .price-grid > .card { display: flex; flex-direction: column; padding: 28px 22px !important; }
.landing-home .price-grid > .card > div { flex-wrap: wrap; }
.landing-home .price-grid > .card > .btn { margin-top: auto; }
.landing-home .price-grid .mono { overflow-wrap: anywhere; }
.landing-home #pricing { background: linear-gradient(180deg, var(--bg-1), var(--primary-tint)) !important; }
.landing-home .tr-grid { gap: 16px !important; }
.landing-home .faq-body { display: grid; grid-template-rows: 0fr; max-height: none; padding: 0 22px; transition: grid-template-rows .35s var(--ease-out), padding .35s var(--ease-out); }
.landing-home .faq-body.is-open { grid-template-rows: 1fr; max-height: none; padding-bottom: 22px; }
.landing-home .faq-answer { min-height: 0; overflow: hidden; }
.landing-home #faq .card { border-radius: 16px !important; transition: border-color .25s, box-shadow .25s; }
.landing-home #faq .card.is-open { border-color: color-mix(in srgb, var(--primary) 35%, var(--line)); box-shadow: var(--shadow-sm); }
.landing-home #faq button { gap: 16px; min-height: 72px; line-height: 1.7; }
.landing-home .final-panel { border-radius: 32px; padding: clamp(32px, 6vw, 80px) !important; }
.landing-home .final-title { font-size: clamp(30px, 4vw, 54px); line-height: 1.3; }
.landing-home .final-sub { line-height: 1.9; }
.landing-home footer { border-top: 1px solid var(--line); }

/* Motion is finite and decorative; content remains usable without JavaScript. */
.landing-home:not(.motion-ready) :is(.reveal, .reveal-stagger > *, .animated-grid > *) { opacity: 1; transform: none; }
.landing-home.motion-ready :is(.reveal, .reveal-stagger > *, .animated-grid > *) { transition-duration: .7s; transition-timing-function: var(--ease-out); }
.landing-home :is(.float-a, .float-b, .pitch-pan, .ball-bounce, .ball-spin, .shine, .ticker-row, .eyebrow .dot) { animation-iteration-count: 1 !important; }
.landing-home .ticker-row { animation: none; }
@media (hover: hover) and (pointer: fine) {
  .landing-home .hover-lift:hover { transform: translateY(-6px); box-shadow: 0 20px 44px -26px #0e1a1466; }
  .landing-home .feat-grid .card:hover::after { transform: scaleX(1); }
  .landing-home .btn:hover { transform: translateY(-2px); }
  .landing-home .btn:active { transform: translateY(0); }
}
@media (min-width: 981px) and (max-width: 1200px) {
  .landing-home .hero-title { font-size: 44px; }
  .landing-home .hero-float { width: 190px; }
  .landing-home .feat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 1080px) {
  .landing-home .nav-actions { display: none !important; }
  .landing-home .nav-mobile-btn { display: flex !important; }
}
@media (max-width: 980px) {
  .landing-home .hero-grid { grid-template-columns: minmax(0, 1fr); min-height: auto; gap: 32px; }
  .landing-home .hero-copy { text-align: center; margin-inline: auto; max-width: 700px; }
  .landing-home .hero-title { font-size: clamp(38px, 6vw, 56px); }
  .landing-home :is(.hero-sub, .hero-badges) { margin-inline: auto; }
  .landing-home :is(.hero-actions, .hero-badges) { justify-content: center; }
  .landing-home .hero-visual { width: min(100%, 600px); min-height: 570px; margin-inline: auto; }
  .landing-home .hero-phone-stage { --hero-phone-scale: .82; }
  .landing-home .dash-grid, .landing-home .app-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .landing-home .app-phones { min-height: 580px !important; }
}
@media (max-width: 720px) {
  .landing-home { --gutter: 22px; --radius-lg: 20px; }
  .landing-home .wrap { padding-inline: var(--gutter); }
  .landing-home .hero-visual { min-height: 460px; }
  .landing-home .hero-phone-stage { --hero-phone-scale: .68; }
  .landing-home .hero-visual::before { inset: 4% 4%; }
  .landing-home .hero-badges { display: flex; }
  .landing-home .hero-actions .btn { flex: 1 1 160px; }
  .landing-home .feat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; }
  .landing-home .feat-grid > .card { padding: 20px !important; }
  .landing-home .price-grid { gap: 28px !important; }
  .landing-home .app-phones { height: 460px; min-height: 0 !important; transform: none; margin: 0; overflow: hidden; }
  .landing-home .app-phones > div:not(:first-child) { position: absolute !important; margin: 0 !important; transform-origin: center; }
  .landing-home .app-phones > div:nth-child(2) { left: calc(50% - 260px); transform: scale(.64) rotate(-9deg) !important; opacity: .65 !important; }
  .landing-home .app-phones > div:nth-child(3) { left: calc(50% - 131.2px); transform: scale(.8) !important; }
  .landing-home .app-phones > div:nth-child(4) { left: calc(50% + 36px); transform: scale(.64) rotate(9deg) !important; opacity: .65 !important; }
  .landing-home .sticky-cta { transition: transform .35s var(--ease-out), opacity .25s; }
  .landing-home .sticky-cta.is-resting { transform: translateY(140%); opacity: 0; visibility: hidden; pointer-events: none; }
}
@media (max-width: 480px) {
  .landing-home { --gutter: 18px; }
  .landing-home .hero-title { font-size: clamp(30px, 8.6vw, 40px); line-height: 1.3; }
  .landing-home .hero-actions { gap: 10px; }
  .landing-home .hero-visual { min-height: 385px; margin-bottom: 0; }
  .landing-home .hero-phone-stage { --hero-phone-scale: .57; }
  .landing-home .hero-badges { gap: 6px; }
  .landing-home .badge-chip { font-size: 10.5px; min-height: 34px; padding: 6px 10px; }
  .landing-home .feat-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .landing-home .app-phones { height: 410px; }
  .landing-home .app-phones > div:nth-child(2), .landing-home .app-phones > div:nth-child(4) { display: none; }
  .landing-home .app-phones > div:nth-child(3) { transform: scale(.72) !important; }
  .landing-home .final-panel { border-radius: 22px; }
  .landing-home .dashboard-preview > div { min-width: 620px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .landing-home *, .landing-home *::before, .landing-home *::after { animation: none !important; transition: none !important; }
  .landing-home :is(.reveal, .reveal-stagger > *, .animated-grid > *) { opacity: 1 !important; transform: none !important; }
}
