/* ============================================================
   YoCash — design system (palette mockup Premium Fintech)
   Bootstrap 5.3 + override custom.
============================================================ */

:root {
    --yc-primary:        #3525cd;
    --yc-primary-2:      #4f46e5;
    --yc-primary-fixed:  #e2dfff;
    --yc-secondary:      #006c49;
    --yc-secondary-fix:  #6cf8bb;
    --yc-tertiary:       #7e3000;
    --yc-tertiary-fix:   #ffd2be;
    --yc-on-surface:     #151c27;
    --yc-on-variant:     #464555;
    --yc-outline:        #777587;
    --yc-outline-var:    #c7c4d8;
    --yc-surface:        #f9f9ff;
    --yc-surface-low:    #f0f3ff;
    --yc-surface-cont:   #e7eefe;
    --yc-surface-hi:     #e2e8f8;
    --yc-inverse:        #2a313d;
    --yc-error:          #ba1a1a;

    --yc-radius-sm: .5rem;
    --yc-radius:    .75rem;
    --yc-radius-lg: 1rem;
    --yc-radius-xl: 1.5rem;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    color: var(--yc-on-surface);
    background: var(--yc-surface);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ─── Tipografia ──────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 { font-weight: 700; letter-spacing: -.01em; color: var(--yc-on-surface); }
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 { letter-spacing: -.02em; font-weight: 800; }
.lead { color: var(--yc-on-variant); font-weight: 400; }
a { color: var(--yc-primary); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--yc-primary-2); text-decoration: underline; }

/* ─── Navbar ─────────────────────────────────────────────── */
.yc-nav {
    background: rgba(255, 255, 255, .85);
    backdrop-filter: saturate(180%) blur(14px);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
    border-bottom: 1px solid var(--yc-outline-var);
    z-index: 1030;
}
.yc-nav .navbar-brand { color: var(--yc-on-surface); font-size: 1.15rem; padding: .25rem 0; }
.yc-logo {
    height: 44px;
    width: auto;
    max-width: 200px;
    display: block;
}
.yc-logo-footer {
    height: 56px;
    width: auto;
    max-width: 240px;
    display: block;
}
@media (max-width: 575.98px) {
    .yc-logo { height: 36px; max-width: 160px; }
    .yc-logo-footer { height: 48px; max-width: 200px; }
}
.yc-nav .nav-link {
    color: var(--yc-on-variant);
    font-weight: 500;
    padding: .5rem 1rem !important;
    border-radius: var(--yc-radius-sm);
    transition: background .15s ease, color .15s ease;
}
.yc-nav .nav-link:hover { background: var(--yc-surface-cont); color: var(--yc-primary); }
.yc-nav .nav-link.active { color: var(--yc-primary); background: var(--yc-surface-cont); }
.navbar-toggler { border: 1px solid var(--yc-outline-var); padding: .35rem .55rem; font-size: 1.4rem; line-height: 1; color: var(--yc-on-surface); }
.navbar-toggler:focus { box-shadow: none; }

/* ─── Bottoni ────────────────────────────────────────────── */
.yc-btn-primary {
    background: var(--yc-primary);
    color: #fff !important;
    border: 0;
    border-radius: var(--yc-radius-sm);
    font-weight: 600;
    padding: .65rem 1.4rem;
    transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
    box-shadow: 0 4px 14px rgba(53, 37, 205, .25);
}
.yc-btn-primary:hover { background: var(--yc-primary-2); color: #fff !important; transform: translateY(-1px); box-shadow: 0 6px 20px rgba(53, 37, 205, .35); }

.yc-btn-secondary {
    background: var(--yc-surface-cont);
    color: var(--yc-on-surface) !important;
    border: 1px solid var(--yc-outline-var);
    border-radius: var(--yc-radius-sm);
    font-weight: 600;
    padding: .65rem 1.4rem;
    transition: background .15s ease, transform .15s ease;
}
.yc-btn-secondary:hover { background: var(--yc-surface-hi); transform: translateY(-1px); }

/* ─── Hero carosello ─────────────────────────────────────── */
.yc-hero {
    position: relative;
    padding: 5rem 0 6rem;
    background: linear-gradient(180deg, var(--yc-surface) 0%, var(--yc-surface-low) 100%);
    overflow: hidden;
}
.yc-hero h1 { font-size: clamp(2rem, 4vw + 1rem, 3.5rem); line-height: 1.05; letter-spacing: -.025em; }
.yc-hero .yc-eyebrow {
    display: inline-flex; align-items: center; gap: .4rem;
    background: var(--yc-primary-fixed);
    color: var(--yc-primary);
    padding: .35rem .8rem;
    border-radius: 999px;
    font-size: .8rem; font-weight: 600;
    margin-bottom: 1.25rem;
}
.yc-hero-carousel {
    border-radius: var(--yc-radius-lg);
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(15, 0, 105, .12), 0 4px 14px rgba(0,0,0,.06);
    background: #000;
}
.yc-hero-carousel .carousel-item img {
    aspect-ratio: 16 / 10;
    width: 100%;
    object-fit: cover;
    filter: brightness(.92);
}
.yc-hero-carousel .carousel-caption {
    background: linear-gradient(0deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 60%);
    inset: 0;
    text-align: left;
    padding: 1.5rem;
    display: flex; flex-direction: column; justify-content: flex-end;
    color: #fff;
}
.yc-hero-carousel .carousel-caption h3 { color: #fff; font-size: 1.2rem; margin: 0; }
.yc-hero-carousel .carousel-caption p  { color: rgba(255,255,255,.85); margin: .25rem 0 0; font-size: .9rem; }
.yc-hero-carousel .carousel-indicators [data-bs-target] { width: 28px; height: 4px; border-radius: 2px; }

/* ─── Card / Feature grid ────────────────────────────────── */
.yc-card {
    background: #fff;
    border: 1px solid var(--yc-outline-var);
    border-radius: var(--yc-radius);
    padding: 1.75rem;
    height: 100%;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.yc-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 36px rgba(15, 0, 105, .10);
    border-color: var(--yc-primary-fixed);
}
.yc-card .yc-icon {
    width: 48px; height: 48px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: var(--yc-radius-sm);
    background: var(--yc-primary-fixed);
    color: var(--yc-primary);
    font-size: 1.4rem;
    margin-bottom: 1rem;
}
.yc-card h3 { font-size: 1.15rem; margin-bottom: .5rem; }
.yc-card p  { color: var(--yc-on-variant); margin: 0; font-size: .95rem; line-height: 1.55; }

/* card variant scura (per "ADE") */
.yc-card-dark {
    background: var(--yc-inverse);
    color: #fff;
    border: 0;
}
.yc-card-dark h3, .yc-card-dark p { color: rgba(255,255,255,.92); }
.yc-card-dark .yc-icon { background: rgba(255,255,255,.12); color: #fff; }

.yc-card-mint {
    background: var(--yc-secondary-fix);
    border: 0;
}
.yc-card-mint .yc-icon { background: rgba(0, 108, 73, .15); color: var(--yc-secondary); }

/* ─── Sezioni / spaziature ───────────────────────────────── */
.yc-section { padding: 5rem 0; }
.yc-section h2 { font-size: clamp(1.75rem, 2.4vw + .5rem, 2.5rem); }
.yc-section .lead { font-size: 1.1rem; }
.yc-eyebrow-2 {
    display: inline-block;
    color: var(--yc-primary);
    font-weight: 700;
    font-size: .85rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-bottom: .5rem;
}

.yc-bg-soft  { background: var(--yc-surface-low); }
.yc-bg-cont  { background: var(--yc-surface-cont); }
.yc-bg-dark  { background: var(--yc-inverse); color: #fff; }
.yc-bg-dark h2, .yc-bg-dark h3 { color: #fff; }
.yc-bg-dark .lead { color: rgba(255,255,255,.8); }

/* ─── Pricing ────────────────────────────────────────────── */
.yc-price-card {
    background: #fff;
    border: 2px solid var(--yc-outline-var);
    border-radius: var(--yc-radius-lg);
    padding: 2rem;
    height: 100%;
    display: flex; flex-direction: column;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.yc-price-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(15, 0, 105, .10); }
.yc-price-card.yc-featured {
    background: var(--yc-primary);
    color: #fff;
    border-color: var(--yc-primary);
    transform: scale(1.04);
    box-shadow: 0 24px 60px rgba(53, 37, 205, .35);
}
.yc-price-card.yc-featured:hover { transform: scale(1.04) translateY(-4px); }
.yc-price-card.yc-featured h3, .yc-price-card.yc-featured .yc-price-amt { color: #fff; }
.yc-price-card.yc-featured .yc-price-feat li { color: rgba(255,255,255,.92); }
.yc-price-card.yc-featured .yc-price-feat li i { color: rgba(255,255,255,.95); }
.yc-price-card.yc-featured .yc-price-feat li.muted { color: rgba(255,255,255,.55); }

.yc-price-tag {
    display: inline-block; align-self: flex-start;
    background: var(--yc-tertiary-fix); color: var(--yc-tertiary);
    padding: .25rem .65rem; border-radius: 999px;
    font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
    margin-bottom: .75rem;
}
.yc-price-card.yc-featured .yc-price-tag { background: rgba(255,255,255,.18); color: #fff; }

.yc-price-amt { font-size: 2.5rem; font-weight: 800; letter-spacing: -.02em; }
.yc-price-amt small { font-size: 1rem; font-weight: 500; color: var(--yc-on-variant); }
.yc-price-card.yc-featured .yc-price-amt small { color: rgba(255,255,255,.85); }

.yc-price-feat { list-style: none; padding: 0; margin: 1.5rem 0; flex: 1; }
.yc-price-feat li { padding: .35rem 0; color: var(--yc-on-variant); font-size: .95rem; display: flex; align-items: flex-start; gap: .5rem; }
.yc-price-feat li i { color: var(--yc-secondary); font-size: 1.1rem; flex-shrink: 0; margin-top: 2px; }
.yc-price-feat li.muted { color: var(--yc-outline); }
.yc-price-feat li.muted i { color: var(--yc-outline); }

/* ─── FAQ accordion ──────────────────────────────────────── */
.accordion-button {
    background: #fff !important;
    color: var(--yc-on-surface) !important;
    font-weight: 600;
    border-radius: var(--yc-radius) !important;
    padding: 1.15rem 1.25rem;
}
.accordion-button:not(.collapsed) { color: var(--yc-primary) !important; background: var(--yc-surface-cont) !important; }
.accordion-button:focus { box-shadow: none; }
.accordion-item { border: 1px solid var(--yc-outline-var); border-radius: var(--yc-radius); margin-bottom: .75rem; overflow: hidden; }
.accordion-body { color: var(--yc-on-variant); padding: 0 1.25rem 1.25rem; }

/* ─── Form ──────────────────────────────────────────────── */
.yc-form .form-control, .yc-form .form-select {
    border: 1.5px solid var(--yc-outline-var);
    border-radius: var(--yc-radius-sm);
    padding: .7rem 1rem;
    font-size: 1rem;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.yc-form .form-control:focus, .yc-form .form-select:focus {
    border-color: var(--yc-primary);
    box-shadow: 0 0 0 3px rgba(53,37,205,.15);
}
.yc-form label { font-weight: 600; color: var(--yc-on-surface); margin-bottom: .35rem; font-size: .9rem; }
.yc-form .form-text { font-size: .8rem; color: var(--yc-on-variant); }
.yc-form .form-check-input { margin-top: .25rem; }
.yc-form .form-check-input:checked { background-color: var(--yc-primary); border-color: var(--yc-primary); }
.yc-form .form-check-label { font-size: .9rem; color: var(--yc-on-variant); line-height: 1.5; }

/* ─── Footer ────────────────────────────────────────────── */
.yc-footer { background: var(--yc-inverse); color: rgba(255,255,255,.75); }
.yc-footer h6 { font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; }
.yc-footer a { color: rgba(255,255,255,.7); text-decoration: none; }
.yc-footer a:hover { color: #fff; text-decoration: underline; }
.yc-footer ul li { margin-bottom: .4rem; }

/* ─── Cookie banner ─────────────────────────────────────── */
.yc-cookie-banner {
    position: fixed;
    bottom: 1rem; left: 1rem; right: 1rem;
    z-index: 9999;
    display: flex; justify-content: center;
}
.yc-cookie-card {
    max-width: 720px; width: 100%;
    background: #fff;
    border: 1px solid var(--yc-outline-var);
    border-radius: var(--yc-radius-lg);
    padding: 1.25rem 1.5rem;
    box-shadow: 0 24px 60px rgba(0,0,0,.18);
}
.yc-cookie-card a { font-weight: 600; }

/* ─── Logo cloud / loghi integrazioni ───────────────────── */
.yc-logo-row {
    display: flex; align-items: center; justify-content: center;
    flex-wrap: wrap; gap: 1.5rem 3rem;
    padding: 1rem 0;
}
.yc-logo-row .yc-logo-pill {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .6rem 1.25rem;
    background: #fff;
    border: 1px solid var(--yc-outline-var);
    border-radius: 999px;
    color: var(--yc-on-surface);
    font-weight: 600;
    font-size: .9rem;
}
.yc-logo-row .yc-logo-pill i { color: var(--yc-primary); font-size: 1.2rem; }

/* ─── Badge / chip ──────────────────────────────────────── */
.yc-chip {
    display: inline-flex; align-items: center; gap: .35rem;
    padding: .2rem .65rem;
    border-radius: 999px;
    font-size: .75rem; font-weight: 600;
    background: var(--yc-secondary-fix); color: var(--yc-secondary);
}
.yc-chip.yc-chip-warn { background: var(--yc-tertiary-fix); color: var(--yc-tertiary); }
.yc-chip.yc-chip-info { background: var(--yc-primary-fixed); color: var(--yc-primary); }

/* ─── Utilità ───────────────────────────────────────────── */
.yc-divider { height: 1px; background: var(--yc-outline-var); margin: 0; }
.yc-rounded { border-radius: var(--yc-radius); overflow: hidden; }

/* ─── Mobile ────────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .yc-section { padding: 3.5rem 0; }
    .yc-hero { padding: 3rem 0 4rem; }
    .yc-price-card.yc-featured { transform: none; }
    .yc-price-card.yc-featured:hover { transform: translateY(-4px); }
}
