:root{
  --ink:#0b1220;
  --muted:#5b6475;
  --line:#e7ebf0;
  --soft:#f6f8fb;
  --white:#ffffff;

  --cta:#ff7a18;
  --cta-2:#ff8f3a;
  --cyan:#0ea5b7;

  --shadow-sm:0 10px 28px rgba(10,18,32,.08);
  --shadow-md:0 18px 55px rgba(10,18,32,.14);
  --max:1280px;
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--ink);
  background:#fff;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

[x-cloak]{
  display:none!important;
}

img{
  max-width:100%;
  height:auto;
  display:block;
}

a{
  text-decoration:none;
}

.text-ink{ color:var(--ink)!important; }
.text-muted{ color:var(--muted)!important; }
.border-line{ border-color:var(--line)!important; }
.bg-soft{ background:var(--soft)!important; }

.container-site{
  width:min(100% - 2rem, var(--max));
  margin-inline:auto;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  min-height:48px;
  padding:.875rem 1.25rem;
  border-radius:1rem;
  font-weight:700;
  line-height:1;
  transition:all .2s ease;
  border:1px solid transparent;
  cursor:pointer;
}

.btn:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
button:focus-visible{
  outline:3px solid rgba(14,165,183,.20);
  outline-offset:2px;
}

.btn-cta{
  background:linear-gradient(135deg,var(--cta),var(--cta-2));
  color:#fff;
  box-shadow:var(--shadow-sm);
}

.btn-cta:hover{
  transform:translateY(-1px);
  box-shadow:var(--shadow-md);
}

.btn-dark{
  background:var(--ink);
  color:#fff;
  box-shadow:var(--shadow-sm);
}

.btn-dark:hover{
  transform:translateY(-1px);
  box-shadow:var(--shadow-md);
}

.btn-soft{
  background:#fff;
  color:var(--ink);
  border:1px solid var(--line);
}

.btn-soft:hover{
  background:var(--soft);
}

.section-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  border-radius:999px;
  padding:.5rem .875rem;
  font-size:.875rem;
  font-weight:700;
  color:var(--ink);
  background:rgba(255,255,255,.75);
  border:1px solid rgba(255,255,255,.35);
  backdrop-filter:blur(10px);
}

.card-premium{
  background:#fff;
  border:1px solid var(--line);
  border-radius:1.5rem;
  box-shadow:var(--shadow-sm);
}

.card-premium:hover{
  box-shadow:var(--shadow-md);
}

.prose-clean p{
  color:var(--muted);
  line-height:1.7;
}

.prose-clean h1,
.prose-clean h2,
.prose-clean h3,
.prose-clean h4{
  color:var(--ink);
}

.form-control{
  width:100%;
  min-height:52px;
  padding:.95rem 1rem;
  border:1px solid #d8dee8;
  border-radius:1rem;
  background:#fff;
  color:var(--ink);
  transition:border-color .2s ease, box-shadow .2s ease;
}

textarea.form-control{
  min-height:140px;
  resize:vertical;
}

.form-control:hover{
  border-color:#c8d0dc;
}

.form-control:focus{
  border-color:var(--cyan);
  box-shadow:0 0 0 4px rgba(14,165,183,.12);
  outline:none;
}

.input-label{
  display:block;
  margin-bottom:.5rem;
  font-size:.95rem;
  font-weight:700;
  color:var(--ink);
}

.notice{
  border-radius:1rem;
  padding:1rem 1.125rem;
  font-weight:600;
  border:1px solid transparent;
}

.notice-success{
  background:#ecfdf5;
  color:#065f46;
  border-color:#a7f3d0;
}

.notice-error{
  background:#fef2f2;
  color:#991b1b;
  border-color:#fecaca;
}

.hero-glow{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.42;
  background:
    radial-gradient(circle at 20% 30%, rgba(255,122,24,.34), transparent 55%),
    radial-gradient(circle at 80% 60%, rgba(14,165,183,.26), transparent 55%);
}

.nav-link-active{
  background:var(--soft)!important;
  color:var(--ink)!important;
}

.mobile-panel-link{
  display:block;
  width:100%;
  padding:1rem 0;
  border-bottom:1px solid var(--line);
  color:var(--ink);
  font-weight:800;
}

.mobile-panel-link:last-child{
  border-bottom:none;
}

.footer-link{
  color:var(--muted);
  transition:color .2s ease;
}

.footer-link:hover{
  color:var(--ink);
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

@media (max-width: 1279px){
  .desktop-only{
    display:none!important;
  }
}
