
/* Tw-Lite: small offline utility set to support Tailwind-like classes used in this project.
   It is NOT full Tailwind; it only covers the utilities present in the HTML of Ruolo. */

/* ---------------- Base ---------------- */
:root{
  --accent:#d946ef;          /* malina / fucsia */
  --accent-strong:#c026d3;
  --accent-soft:#fae8ff;
  --ink:#0b1220;
  --muted:#6b7280;
  --border:#e5e7eb;
  --bg:#ffffff;
  --bg-soft:#f9fafb;
  --shadow: 0 10px 30px rgba(15,23,42,.08);
  --shadow-sm: 0 6px 18px rgba(15,23,42,.08);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-size:16px;line-height:1.5;color:#111827;background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}

/* ---------------- Layout ---------------- */
.max-w-6xl{max-width:72rem}
.mx-auto{margin-left:auto;margin-right:auto}
.px-4{padding-left:1rem;padding-right:1rem}
.py-3{padding-top:.75rem;padding-bottom:.75rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-5{padding-top:1.25rem;padding-bottom:1.25rem}
.py-12{padding-top:3rem;padding-bottom:3rem}
.py-14{padding-top:3.5rem;padding-bottom:3.5rem}
.p-4{padding:1rem}
.p-5{padding:1.25rem}
.p-6{padding:1.5rem}
.p-7{padding:1.75rem}
.p-10{padding:2.5rem}
.mt-1{margin-top:.25rem}
.mt-2{margin-top:.5rem}
.mt-4{margin-top:1rem}
.mt-5{margin-top:1.25rem}
.mt-8{margin-top:2rem}
.mt-16{margin-top:4rem}
.my-10{margin-top:2.5rem;margin-bottom:2.5rem}
.gap-2{gap:.5rem}
.gap-3{gap:.75rem}
.gap-4{gap:1rem}
.gap-5{gap:1.25rem}
.gap-6{gap:1.5rem}
.gap-10{gap:2.5rem}
.space-y-2 > * + *{margin-top:.5rem}
.inline-flex{display:inline-flex}
.flex{display:flex}
.grid{display:grid}
.hidden{display:none}
.items-center{align-items:center}
.items-start{align-items:flex-start}
.items-end{align-items:flex-end}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.justify-end{justify-content:flex-end}
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.flex-none{flex:none}
.leading-tight{line-height:1.15}
.leading-relaxed{line-height:1.7}
.w-full{width:100%}
.w-10{width:2.5rem}.h-10{height:2.5rem}
.w-11{width:2.75rem}.h-11{height:2.75rem}
.w-12{width:3rem}.h-12{height:3rem}
.w-16{width:4rem}.h-16{height:4rem}
.h-1{height:.25rem}
.min-h-\[120px\]{min-height:120px}
.relative{position:relative}
.absolute{position:absolute}
.fixed{position:fixed}
.inset-0{top:0;right:0;bottom:0;left:0}
.top-0{top:0}
.bottom-4{bottom:1rem}
.left-0{left:0}
.right-0{right:0}
.z-40{z-index:40}
.z-50{z-index:50}
.overflow-hidden{overflow:hidden}

/* ---------------- Typography ---------------- */
.text-xs{font-size:.75rem}
.text-sm{font-size:.875rem}
.text-lg{font-size:1.125rem}
.text-3xl{font-size:1.875rem}
.font-extrabold{font-weight:800}
.tracking-tight{letter-spacing:-.015em}
.text-center{text-align:center}

/* ---------------- Colors (via CSS variables) ---------------- */
.bg-white{background:#fff}
.bg-gray-50{background:var(--bg-soft)}
.bg-gray-950{background:#030712}
.bg-white\/5{background:rgba(255,255,255,.05)}
.bg-gray-950\/60{background:rgba(3,7,18,.60)}
.text-white{color:#fff}
.text-gray-200{color:#e5e7eb}
.text-gray-300{color:#d1d5db}
.text-gray-400{color:#9ca3af}
.text-gray-500{color:#6b7280}
.text-gray-700{color:#374151}
.text-gray-800{color:#1f2937}
.text-gray-900{color:#111827}

/* Accent in a different way: we map “fuchsia” utilities to CSS variable, so you can change one value */
.bg-fuchsia-600{background:var(--accent)}
.bg-fuchsia-50{background:var(--accent-soft)}
.text-fuchsia-300{color:#f5d0fe}
.text-fuchsia-700{color:var(--accent)}
.hover\:bg-fuchsia-700:hover{background:var(--accent-strong)}
.hover\:text-fuchsia-700:hover{color:var(--accent)}
.hover\:text-fuchsia-800:hover{color:var(--accent-strong)}
.bg-emerald-50{background:#ecfdf5}
.text-emerald-700{color:#047857}

/* ---------------- Borders, radius, shadow ---------------- */
.border{border:1px solid var(--border)}
.border-b{border-bottom:1px solid var(--border)}
.border-t{border-top:1px solid var(--border)}
.border-y{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.border-gray-100{border-color:#f3f4f6}
.border-gray-200{border-color:#e5e7eb}
.border-gray-300{border-color:#d1d5db}
.border-gray-900{border-color:#111827}
.border-emerald-100{border-color:#d1fae5}
.border-fuchsia-100{border-color:#f5d0fe}
.border-white\/10{border-color:rgba(255,255,255,.10)}
.rounded-xl{border-radius:.75rem}
.rounded-2xl{border-radius:1rem}
.rounded-3xl{border-radius:1.5rem}
.shadow{box-shadow:var(--shadow)}
.shadow-sm{box-shadow:var(--shadow-sm)}
.shadow-xl{box-shadow:0 18px 50px rgba(15,23,42,.18)}
.shadow-2xl{box-shadow:0 28px 70px rgba(15,23,42,.22)}

/* ---------------- Effects / transitions ---------------- */
.transition{transition:all .2s ease}
.hover\:bg-gray-50:hover{background:#f9fafb}

/* ---------------- Components used in HTML ---------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1rem;border-radius:1rem;font-weight:800;border:1px solid var(--border);background:#fff;color:#111827;box-shadow:var(--shadow-sm);transition:all .2s ease}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--accent);border-color:transparent;color:#fff}
.btn-primary:hover{background:var(--accent-strong)}
.btn-ghost{background:#fff}
.card{border:1px solid var(--border);background:#fff;border-radius:1.5rem;box-shadow:var(--shadow-sm)}
.badge{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .8rem;border-radius:1rem;border:1px solid var(--border);background:#fff;font-weight:800;font-size:.875rem}

/* FAQ helper */
.faq{border:1px solid var(--border);background:var(--bg-soft);border-radius:1.5rem;padding:1.25rem}
.faq-summary{cursor:pointer;font-weight:800;color:#111827}

/* Sticky header baseline */
.sticky{position:sticky}

/* ---------------- Responsive (sm/md) ---------------- */
@media (min-width:640px){
  .sm\:inline-flex{display:inline-flex}
  .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sm\:text-left{text-align:left}
}
@media (min-width:768px){
  .md\:hidden{display:none}
  .md\:flex{display:flex}
  .md\:grid{display:grid}
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .md\:items-center{align-items:center}
  .md\:flex-row{flex-direction:row}
  .md\:ml-auto{margin-left:auto}
  .md\:p-5{padding:1.25rem}
  .md\:p-10{padding:2.5rem}
  .md\:w-auto{width:auto}
}

/* ---------------- Utilities present in HTML but not critical ---------------- */
.bg-gradient-to-b{background:linear-gradient(to bottom,#fff,var(--bg-soft))}
.object-cover{object-fit:cover}

.bg-cover{background-size:cover}
.bg-center{background-position:center}


/* --- Added utilities to match HTML --- */
.flex-1{flex:1}
.font-bold{font-weight:700}
.font-semibold{font-weight:600}

.px-3{padding-left:.75rem;padding-right:.75rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}
.py-1{padding-top:.25rem;padding-bottom:.25rem}
.py-2{padding-top:.5rem;padding-bottom:.5rem}
.py-16{padding-top:4rem;padding-bottom:4rem}
.pl-6{padding-left:1.5rem}
.mb-3{margin-bottom:.75rem}
.mt-3{margin-top:.75rem}
.mt-6{margin-top:1.5rem}
.mt-7{margin-top:1.75rem}
.mt-10{margin-top:2.5rem}
.mt-14{margin-top:3.5rem}
.ml-1{margin-left:.25rem}

.h-9{height:2.25rem}
.w-9{width:2.25rem}
.h-40{height:10rem}
.h-56{height:14rem}
.h-80{height:20rem}
.h-96{height:24rem}
.h-full{height:100%}

.max-w-md{max-width:28rem}
.max-w-2xl{max-width:42rem}
.max-w-3xl{max-width:48rem}

.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.list-disc{list-style-type:disc}

.rounded{border-radius:.25rem}
.rounded-full{border-radius:9999px}
.shadow-lg{box-shadow:0 16px 40px rgba(15,23,42,.12)}
.opacity-10{opacity:.10}
.pointer-events-none{pointer-events:none}

.text-xl{font-size:1.25rem}
.text-2xl{font-size:1.5rem}
.text-4xl{font-size:2.25rem}

.text-gray-100{color:#f3f4f6}
.text-gray-600{color:#4b5563}
.text-fuchsia-800{color:var(--accent-strong)}
.hover\:text-white:hover{color:#fff}

/* gradient helpers */
.from-white{--tw-from:#fff}
.to-gray-50{--tw-to:var(--bg-soft)}

@media (min-width:640px){
  .sm\:flex-row{flex-direction:row}
  .sm\:items-center{align-items:center}
  .sm\:justify-between{justify-content:space-between}
  .sm\:w-auto{width:auto}
  .sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:768px){
  .md\:py-20{padding-top:5rem;padding-bottom:5rem}
  .md\:p-6{padding:1.5rem}
  .md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}
  .md\:col-span-5{grid-column:span 5 / span 5}
  .md\:col-span-7{grid-column:span 7 / span 7}
  .md\:text-5xl{font-size:3rem}
}
@media (min-width:1024px){
  .lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
}
