/* =====================================================================
   Website cabinet nutriție — design propriu (header, pagini publice, footer)
   Folosit împreună cu portal/portal.css (cabinetul pacientului).
   ===================================================================== */
:root {
    --s-ink: #10261c;
    --s-text: #3b4a42;
    --s-muted: #6d7a72;
    --s-green: #16523a;
    --s-green-2: #1f6f4a;
    --s-leaf: #2f8f5b;
    --s-mint: #dcefe3;
    --s-cream: #fbf8f1;
    --s-sand: #f3ecdd;
    --s-orange: #ff7a3d;
    --s-orange-d: #ec6326;
    --s-butter: #ffe8a3;
    --s-line: #e8e1d2;
    --s-card: #ffffff;
    --s-radius: 22px;
    --s-display: 'Bricolage Grotesque', 'Fraunces', Georgia, serif;
    --s-body: 'Figtree', 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --s-shadow: 0 22px 50px -28px rgba(16, 38, 28, .45);
}
html { scroll-behavior: smooth; }
body.s-body { background: var(--s-cream); color: var(--s-text); font-family: var(--s-body); }
.s-body h1, .s-body h2, .s-body h3, .s-body h4 { font-family: var(--s-display); color: var(--s-ink); letter-spacing: -.02em; }
.s-wrap { max-width: 1220px; margin: 0 auto; padding: 0 20px; }
.s-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- top bar ---------- */
.s-topbar { background: var(--s-green); color: #d8ecdf; font-size: 13.5px; }
.s-topbar .s-wrap { display: flex; justify-content: space-between; align-items: center; gap: 14px; min-height: 40px; flex-wrap: wrap; }
.s-topbar a { color: #fff; text-decoration: none; }
.s-topbar-l, .s-topbar-r { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.s-topbar svg { width: 15px; height: 15px; vertical-align: -2px; margin-right: 5px; }
@media (max-width: 720px) { .s-topbar.s-topbar-empty-m { display: none; } .s-topbar-l .s-hide-m { display: none; } .s-topbar .s-wrap { justify-content: center; } .s-topbar-r { display: none; } }

/* ---------- header ---------- */
.s-header { position: sticky; top: 0; z-index: 50; background: rgba(251, 248, 241, .94); backdrop-filter: blur(12px); border-bottom: 1px solid var(--s-line); transition: box-shadow .2s; }
.s-header.scrolled { box-shadow: 0 10px 30px -20px rgba(16, 38, 28, .4); }
.s-header-in { display: flex; align-items: center; gap: 18px; height: 78px; }
.s-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; font-family: var(--s-display); font-weight: 800; font-size: 23px; color: var(--s-ink); flex-shrink: 0; }
.s-logo-mark { width: 40px; height: 40px; border-radius: 13px; background: var(--s-green); color: var(--s-butter); display: grid; place-items: center; transform: rotate(-6deg); }
.s-logo-mark svg { width: 24px; height: 24px; }
.s-nav { display: flex; align-items: center; gap: 2px; margin-left: auto; }
.s-nav > a, .s-nav-item > button { display: inline-flex; align-items: center; gap: 4px; padding: 10px 13px; border-radius: 999px; text-decoration: none; color: var(--s-ink); font-weight: 700; font-size: 15px; background: none; border: 0; cursor: pointer; font-family: inherit; }
.s-nav > a:hover, .s-nav-item:hover > button, .s-nav > a.active, .s-nav-item.active > button { background: var(--s-mint); color: var(--s-green); }
.s-nav-item { position: relative; }
.s-nav-item svg { width: 14px; height: 14px; transition: transform .2s; }
.s-drop { position: absolute; top: calc(100% + 8px); left: 0; min-width: 250px; background: #fff; border: 1px solid var(--s-line); border-radius: 18px; padding: 8px; box-shadow: var(--s-shadow);
    opacity: 0; visibility: hidden; transform: translateY(6px); transition: all .18s; z-index: 60; }
.s-nav-item:hover .s-drop, .s-nav-item:focus-within .s-drop { opacity: 1; visibility: visible; transform: none; }
.s-nav-item:hover > button svg { transform: rotate(180deg); }
.s-drop a { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 12px; text-decoration: none; color: var(--s-ink); font-weight: 600; font-size: 14.5px; }
.s-drop a:hover { background: var(--s-cream); color: var(--s-green); }
.s-drop .s-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
.s-actions { display: flex; align-items: center; gap: 8px; margin-left: 10px; }
.s-icon-btn { width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--s-line); background: #fff; display: grid; place-items: center; color: var(--s-ink); text-decoration: none; cursor: pointer; flex-shrink: 0; }
.s-icon-btn:hover { border-color: var(--s-green); color: var(--s-green); }
.s-icon-btn svg { width: 20px; height: 20px; }
.s-burger { display: none; }
@media (max-width: 1100px) { .s-nav { display: none; } .s-burger { display: grid; } .s-actions { margin-left: auto; } .s-actions .s-btn-book-text { display: none; } }
@media (max-width: 520px) { .s-actions .s-btn { padding: 11px 14px; } .s-logo { font-size: 20px; } .s-header-in { height: 68px; } }

/* ---------- mobile drawer ---------- */
.s-drawer-bg { position: fixed; inset: 0; background: rgba(16, 38, 28, .45); z-index: 80; opacity: 0; visibility: hidden; transition: .2s; }
.s-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(360px, 88vw); background: var(--s-cream); z-index: 90; transform: translateX(100%); transition: transform .25s; display: flex; flex-direction: column; overflow-y: auto; }
body.s-drawer-open .s-drawer { transform: none; }
body.s-drawer-open .s-drawer-bg { opacity: 1; visibility: visible; }
body.s-drawer-open { overflow: hidden; }
.s-drawer-h { display: flex; justify-content: space-between; align-items: center; padding: 18px 20px; border-bottom: 1px solid var(--s-line); }
.s-drawer nav { padding: 10px 14px; display: flex; flex-direction: column; }
.s-drawer nav a { padding: 13px 10px; border-bottom: 1px solid var(--s-line); text-decoration: none; color: var(--s-ink); font-weight: 700; font-size: 16px; }
.s-drawer nav .s-sub { padding-left: 24px; font-weight: 600; font-size: 14.5px; color: var(--s-text); }
.s-drawer-f { padding: 18px 20px 26px; margin-top: auto; display: flex; flex-direction: column; gap: 10px; }

/* ---------- buttons ---------- */
.s-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 14px 24px; border-radius: 999px; font-weight: 800; font-size: 15px; text-decoration: none;
    border: 2px solid transparent; cursor: pointer; transition: transform .15s, background .15s, box-shadow .15s; font-family: var(--s-body); line-height: 1; white-space: nowrap; }
.s-btn svg { width: 18px; height: 18px; }
.s-btn:hover { transform: translateY(-2px); }
.s-btn-orange { background: var(--s-orange); color: #fff; box-shadow: 0 14px 26px -14px rgba(255, 122, 61, .9); }
.s-btn-orange:hover { background: var(--s-orange-d); color: #fff; }
.s-btn-green { background: var(--s-green); color: #fff; }
.s-btn-green:hover { background: var(--s-ink); color: #fff; }
.s-btn-outline { border-color: var(--s-ink); color: var(--s-ink); background: transparent; }
.s-btn-outline:hover { background: var(--s-ink); color: #fff; }
.s-btn-light { background: #fff; color: var(--s-ink); }
.s-btn-ghost-light { border-color: rgba(255, 255, 255, .6); color: #fff; }
.s-btn-ghost-light:hover { background: #fff; color: var(--s-ink); }
.s-btn-sm { padding: 10px 16px; font-size: 14px; }
.s-btn-block { width: 100%; }
.s-link { color: var(--s-green-2); font-weight: 800; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.s-link:hover { color: var(--s-orange-d); }
.s-link svg { width: 16px; height: 16px; transition: transform .15s; }
.s-link:hover svg { transform: translateX(3px); }

/* ---------- floating booking CTA ---------- */
.s-fab.s-fab-hidden { opacity: 0; pointer-events: none; transform: translateY(20px); }
.s-fab { position: fixed; right: 20px; bottom: 20px; z-index: 70; display: inline-flex; align-items: center; gap: 10px; padding: 15px 22px; border-radius: 999px; background: var(--s-orange); color: #fff;
    font-weight: 800; text-decoration: none; box-shadow: 0 18px 34px -12px rgba(236, 99, 38, .8); transition: transform .2s, opacity .2s; }
.s-fab:hover { transform: translateY(-3px); color: #fff; }
.s-fab svg { width: 20px; height: 20px; }
.s-fab .s-pulse { position: absolute; inset: 0; border-radius: inherit; border: 2px solid var(--s-orange); animation: sPulse 2.4s infinite; pointer-events: none; }
@keyframes sPulse { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.35); opacity: 0; } }
@media (max-width: 640px) { .s-fab { left: 16px; right: 16px; bottom: 14px; justify-content: center; } body.s-body { padding-bottom: 76px; } }
@media (prefers-reduced-motion: reduce) { .s-fab .s-pulse { animation: none; } html { scroll-behavior: auto; } }

/* ---------- common sections ---------- */
.s-section { padding: 92px 0; position: relative; }
.s-section-sm { padding: 64px 0; }
.s-bg-sand { background: var(--s-sand); }
.s-bg-green { background: var(--s-green); color: #d8ecdf; }
.s-bg-green h2, .s-bg-green h3 { color: #fff; }
.s-head { max-width: 700px; margin: 0 auto 46px; text-align: center; }
.s-head.left { margin-left: 0; text-align: left; }
.s-kicker { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 13.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--s-orange-d); margin-bottom: 12px; }
.s-kicker::before { content: ''; width: 26px; height: 2px; background: currentColor; border-radius: 2px; }
.s-head h2, .s-h2 { font-size: clamp(30px, 4vw, 48px); line-height: 1.08; margin: 0 0 14px; font-weight: 800; }
.s-head p { font-size: 17.5px; color: var(--s-muted); margin: 0; }
.s-bg-green .s-head p { color: #b9d6c4; }
.s-grid { display: grid; gap: 24px; }
.s-g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.s-g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.s-g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) { .s-g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .s-g3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .s-g2, .s-g3, .s-g4 { grid-template-columns: 1fr; } .s-section { padding: 64px 0; } .s-head { margin-bottom: 32px; } }

/* ---------- hero slider ---------- */
.s-hero { position: relative; overflow: hidden; background: radial-gradient(1100px 520px at 85% 10%, #fff3d6 0%, transparent 60%), var(--s-cream); }
.s-slides { position: relative; min-height: 640px; }
.s-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .7s, visibility .7s; }
.s-slide.active { opacity: 1; visibility: visible; position: relative; }
.s-slide-in { display: grid; grid-template-columns: 1.05fr .95fr; gap: 40px; align-items: center; min-height: 640px; padding-top: 60px; padding-bottom: 90px; }
.s-slide h1 { font-size: clamp(40px, 6vw, 76px); line-height: 1.02; font-weight: 800; margin: 14px 0 20px; }
.s-slide h1 em { font-style: normal; color: var(--s-green-2); position: relative; }
.s-slide h1 em::after { content: ''; position: absolute; left: 0; right: 0; bottom: .06em; height: .22em; background: var(--s-butter); z-index: -1; border-radius: 4px; }
.s-slide p.s-lead { font-size: 19px; max-width: 540px; color: var(--s-text); margin: 0 0 30px; }
.s-slide .s-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.s-slide-art { position: relative; aspect-ratio: 1 / 1; max-width: 560px; justify-self: end; width: 100%; }
.s-slide-art .s-art-bg { position: absolute; inset: 6%; border-radius: 46% 54% 58% 42% / 44% 46% 54% 56%; background: var(--s-mint); animation: sBlob 14s ease-in-out infinite alternate; }
.s-slide-art img, .s-slide-art .s-art-svg { position: absolute; inset: 9%; width: 82%; height: 82%; object-fit: cover; border-radius: 44% 56% 52% 48% / 50% 44% 56% 50%; }
.s-slide-art .s-hero-svg { position: absolute; inset: 4% 2% 8%; }
.s-slide-art .s-hero-svg svg { position: static; width: 100%; height: 100%; }
@keyframes sBlob { to { border-radius: 58% 42% 44% 56% / 52% 58% 42% 48%; transform: rotate(6deg); } }
.s-float { position: absolute; background: #fff; border-radius: 18px; padding: 12px 16px; box-shadow: var(--s-shadow); display: flex; gap: 10px; align-items: center; font-weight: 700; font-size: 14px; color: var(--s-ink); }
.s-float small { display: block; font-weight: 600; color: var(--s-muted); font-size: 12px; }
.s-float .s-ic { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; flex-shrink: 0; }
.s-float .s-ic svg { width: 20px; height: 20px; }
.s-float.f1 { top: 12%; left: -4%; animation: sBob 5s ease-in-out infinite; }
.s-float.f2 { bottom: 12%; right: -2%; animation: sBob 6s ease-in-out infinite reverse; }
@keyframes sBob { 50% { transform: translateY(-10px); } }
.s-slider-ui { position: absolute; left: 0; right: 0; bottom: 34px; z-index: 5; }
.s-slider-ui .s-wrap { display: flex; align-items: center; gap: 14px; }
.s-dots { display: flex; gap: 8px; }
.s-dots button { width: 12px; height: 12px; border-radius: 999px; border: 0; background: #cfc6b1; cursor: pointer; padding: 0; transition: width .3s, background .3s; }
.s-dots button.active { width: 38px; background: var(--s-green); }
.s-arrows { display: flex; gap: 8px; margin-left: auto; }
@media (max-width: 960px) {
    .s-slide-in { grid-template-columns: 1fr; text-align: left; padding-top: 28px; padding-bottom: 100px; min-height: 0; gap: 18px; }
    .s-slide-art { max-width: 380px; justify-self: center; order: -1; }
    .s-slides { min-height: 0; }
    .s-float.f1 { left: 0; } .s-float.f2 { right: 0; }
}
@media (max-width: 520px) { .s-slide-art { max-width: 280px; } .s-float { display: none; } .s-slide p.s-lead { font-size: 17px; } }

/* ---------- category cards ---------- */
.s-cats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: -48px; position: relative; z-index: 6; }
.s-cat { background: #fff; border-radius: var(--s-radius); padding: 28px; text-decoration: none; color: inherit; box-shadow: var(--s-shadow); display: flex; flex-direction: column; gap: 12px; transition: transform .2s; position: relative; overflow: hidden; }
.s-cat:hover { transform: translateY(-6px); }
.s-cat::after { content: ''; position: absolute; width: 150px; height: 150px; border-radius: 50%; right: -50px; top: -50px; background: var(--c, var(--s-mint)); opacity: .12; transition: transform .3s; }
.s-cat:hover::after { transform: scale(1.4); }
.s-cat-ic { width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; color: #fff; background: var(--c, var(--s-green)); }
.s-cat-ic svg { width: 30px; height: 30px; }
.s-cat h3 { font-size: 23px; margin: 0; }
.s-cat p { margin: 0; color: var(--s-muted); }
@media (max-width: 900px) { .s-cats { grid-template-columns: 1fr; margin-top: 0; padding-top: 30px; } }

/* ---------- about ---------- */
.s-about { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.s-about-art { position: relative; aspect-ratio: 5 / 5.4; }
.s-about-art .s-frame { position: absolute; inset: 0 12% 10% 0; border-radius: 30px; overflow: hidden; background: linear-gradient(150deg, var(--s-mint), #f6e8c8); }
.s-about-art .s-frame img { width: 100%; height: 100%; object-fit: cover; }
.s-about-art .s-frame .s-art-svg { width: 100%; height: 100%; }
.s-about-badge { position: absolute; right: 0; bottom: 0; width: 46%; aspect-ratio: 1; border-radius: 50%; background: var(--s-orange); color: #fff; display: grid; place-items: center; text-align: center;
    border: 10px solid var(--s-cream); }
.s-about-badge b { font-family: var(--s-display); font-size: clamp(38px, 5vw, 64px); line-height: .9; display: block; }
.s-about-badge span { font-weight: 700; font-size: 15px; display: block; max-width: 120px; margin: 6px auto 0; }
.s-checks { list-style: none; padding: 0; margin: 22px 0 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 18px; }
.s-checks li { display: flex; gap: 10px; font-weight: 700; color: var(--s-ink); }
.s-checks li::before { content: ''; width: 24px; height: 24px; border-radius: 50%; flex-shrink: 0; background: var(--s-mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316523a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center / 14px no-repeat; }
.s-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.s-stat { text-align: center; padding: 26px 14px; border-radius: var(--s-radius); background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }
.s-stat b { font-family: var(--s-display); font-size: 46px; color: var(--s-butter); display: block; line-height: 1; }
.s-stat span { font-weight: 600; font-size: 15px; }
@media (max-width: 900px) { .s-about { grid-template-columns: 1fr; gap: 36px; } .s-about-art { max-width: 460px; } .s-stats { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .s-checks { grid-template-columns: 1fr; } }

/* ---------- program cards ---------- */
.s-programs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
@media (max-width: 1024px) { .s-programs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .s-programs { grid-template-columns: 1fr; } }
.s-prog { background: #fff; border-radius: var(--s-radius); overflow: hidden; display: flex; flex-direction: column; border: 1px solid var(--s-line); transition: transform .2s, box-shadow .2s; }
.s-prog:hover { transform: translateY(-6px); box-shadow: var(--s-shadow); }
.s-prog-img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; display: block; background: var(--s-sand); }
.s-prog-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.s-prog:hover .s-prog-img img { transform: scale(1.06); }
.s-prog-img .s-art-svg { width: 100%; height: 100%; }
.s-prog-cat { position: absolute; left: 14px; top: 14px; background: #fff; color: var(--s-ink); font-weight: 800; font-size: 12.5px; padding: 6px 12px; border-radius: 999px; display: inline-flex; gap: 6px; align-items: center; }
.s-prog-cat i { width: 8px; height: 8px; border-radius: 50%; background: var(--c); }
.s-prog-price { position: absolute; right: 14px; bottom: 14px; background: var(--s-orange); color: #fff; font-weight: 800; padding: 12px 16px; border-radius: 16px; font-family: var(--s-display); font-size: 19px; box-shadow: 0 10px 20px -10px rgba(236, 99, 38, .8); }
.s-prog-price s { font-size: 13px; opacity: .8; font-family: var(--s-body); margin-right: 4px; }
.s-prog-b { padding: 22px 24px 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.s-prog-b h3 { font-size: 22px; margin: 0; line-height: 1.2; }
.s-prog-b h3 a { color: inherit; text-decoration: none; }
.s-prog-b h3 a:hover { color: var(--s-green-2); }
.s-prog-b p { margin: 0; color: var(--s-muted); font-size: 15px; }
.s-prog-meta { display: flex; gap: 16px; flex-wrap: wrap; padding-top: 14px; margin-top: auto; border-top: 1px dashed var(--s-line); font-size: 14px; font-weight: 700; color: var(--s-text); }
.s-prog-meta span { display: inline-flex; gap: 6px; align-items: center; }
.s-prog-meta svg { width: 16px; height: 16px; color: var(--s-leaf); }

/* ---------- CTA band ---------- */
.s-cta { border-radius: 32px; background: var(--s-green); padding: 54px; display: grid; grid-template-columns: 1.3fr auto; gap: 30px; align-items: center; position: relative; overflow: hidden; color: #cfe5d7; }
.s-cta::before, .s-cta::after { content: ''; position: absolute; border-radius: 50%; }
.s-cta::before { width: 340px; height: 340px; right: -90px; top: -150px; background: rgba(255, 232, 163, .14); }
.s-cta::after { width: 180px; height: 180px; left: 34%; bottom: -110px; background: rgba(255, 122, 61, .22); }
.s-cta h2 { color: #fff; font-size: clamp(28px, 3.4vw, 42px); margin: 0 0 10px; position: relative; z-index: 1; }
.s-cta p { margin: 0; font-size: 17px; position: relative; z-index: 1; }
.s-cta .s-btns { display: flex; gap: 12px; flex-wrap: wrap; position: relative; z-index: 1; }
@media (max-width: 820px) { .s-cta { grid-template-columns: 1fr; padding: 36px 26px; } }

/* ---------- steps ---------- */
.s-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; counter-reset: s; }
.s-step { padding: 28px 24px; border-radius: var(--s-radius); background: #fff; border: 1px solid var(--s-line); position: relative; }
.s-step::before { counter-increment: s; content: '0' counter(s); font-family: var(--s-display); font-weight: 800; font-size: 42px; color: var(--s-mint); position: absolute; right: 20px; top: 14px; }
.s-step-ic { width: 54px; height: 54px; border-radius: 16px; background: var(--s-butter); color: var(--s-ink); display: grid; place-items: center; margin-bottom: 16px; }
.s-step-ic svg { width: 26px; height: 26px; }
.s-step h3 { font-size: 20px; margin: 0 0 8px; }
.s-step p { margin: 0; color: var(--s-muted); font-size: 15px; }
@media (max-width: 1024px) { .s-steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .s-steps { grid-template-columns: 1fr; } }

/* ---------- testimonials ---------- */
.s-reviews { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: none; }
.s-reviews::-webkit-scrollbar { display: none; }
@media (max-width: 1000px) { .s-reviews { grid-auto-columns: calc((100% - 24px) / 2); } }
@media (max-width: 640px) { .s-reviews { grid-auto-columns: 88%; } }
.s-review { scroll-snap-align: start; background: #fff; border-radius: var(--s-radius); padding: 30px; display: flex; flex-direction: column; gap: 16px; color: var(--s-text); }
.s-review-stars { color: var(--s-orange); letter-spacing: 3px; font-size: 18px; }
.s-review blockquote { margin: 0; font-size: 16.5px; line-height: 1.6; flex: 1; }
.s-review-who { display: flex; align-items: center; gap: 12px; }
.s-review-who img, .s-review-who .s-av { width: 50px; height: 50px; border-radius: 50%; object-fit: cover; background: var(--s-mint); color: var(--s-green); display: grid; place-items: center; font-weight: 800; }
.s-review-who b { display: block; color: var(--s-ink); }
.s-review-res { margin-left: auto; background: var(--s-mint); color: var(--s-green); font-weight: 800; font-size: 13px; padding: 6px 10px; border-radius: 10px; white-space: nowrap; }
.s-scroll-ui { display: flex; gap: 8px; justify-content: center; margin-top: 26px; }

/* ---------- partners ---------- */
.s-partners { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 40px; align-items: center; }
.s-partner { font-family: var(--s-display); font-weight: 800; font-size: 22px; color: #9aa59e; text-decoration: none; letter-spacing: -.01em; transition: color .2s; }
.s-partner:hover { color: var(--s-green); }

/* ---------- blog cards ---------- */
.s-post { background: #fff; border-radius: var(--s-radius); overflow: hidden; border: 1px solid var(--s-line); display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.s-post:hover { transform: translateY(-5px); box-shadow: var(--s-shadow); }
.s-post-img { aspect-ratio: 16 / 10; background: var(--s-sand); position: relative; overflow: hidden; display: block; }
.s-post-img img { width: 100%; height: 100%; object-fit: cover; }
.s-post-img .s-art-svg { width: 100%; height: 100%; }
.s-post-date { position: absolute; left: 16px; bottom: 16px; background: #fff; border-radius: 14px; padding: 8px 12px; text-align: center; font-weight: 800; color: var(--s-ink); line-height: 1.1; }
.s-post-date b { display: block; font-family: var(--s-display); font-size: 22px; color: var(--s-orange-d); }
.s-post-date small { font-size: 11.5px; text-transform: uppercase; }
.s-post-b { padding: 22px 24px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.s-post-meta { display: flex; gap: 14px; font-size: 13.5px; font-weight: 700; color: var(--s-muted); flex-wrap: wrap; }
.s-post-meta .s-cat-tag { color: var(--s-orange-d); text-decoration: none; }
.s-post-b h3 { font-size: 21px; margin: 0; line-height: 1.25; }
.s-post-b h3 a { color: inherit; text-decoration: none; }
.s-post-b h3 a:hover { color: var(--s-green-2); }
.s-post-b p { margin: 0; color: var(--s-muted); font-size: 15px; }
.s-post-b .s-link { margin-top: auto; padding-top: 6px; }

/* ---------- app promo ---------- */
.s-app { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.s-app ul { list-style: none; padding: 0; margin: 22px 0 28px; display: grid; gap: 14px; }
.s-app li { display: flex; gap: 14px; align-items: flex-start; }
.s-app li .s-ic { width: 44px; height: 44px; border-radius: 14px; background: rgba(255, 255, 255, .1); color: var(--s-butter); display: grid; place-items: center; flex-shrink: 0; }
.s-app li .s-ic svg { width: 22px; height: 22px; }
.s-app li b { color: #fff; display: block; }
.s-phone-wrap { position: relative; display: flex; justify-content: center; }
.s-phone { width: 290px; aspect-ratio: 9 / 18.5; background: #0b1a13; border-radius: 44px; padding: 12px; box-shadow: 0 40px 60px -30px rgba(0, 0, 0, .6); position: relative; z-index: 1; }
.s-phone-screen { background: var(--s-cream); border-radius: 34px; height: 100%; overflow: hidden; padding: 30px 16px 16px; display: flex; flex-direction: column; gap: 10px; color: var(--s-ink); }
.s-phone-notch { position: absolute; top: 20px; left: 50%; transform: translateX(-50%); width: 90px; height: 22px; background: #0b1a13; border-radius: 999px; }
.s-ph-card { background: #fff; border-radius: 16px; padding: 12px; font-size: 12.5px; box-shadow: 0 6px 16px -12px rgba(0, 0, 0, .4); }
.s-ph-card b { font-family: var(--s-display); font-size: 20px; display: block; }
.s-ph-bar { height: 7px; border-radius: 99px; background: var(--s-mint); overflow: hidden; margin-top: 6px; }
.s-ph-bar i { display: block; height: 100%; width: 64%; background: var(--s-leaf); border-radius: 99px; }
.s-ph-msg { align-self: flex-start; background: #fff; padding: 9px 12px; border-radius: 14px 14px 14px 4px; font-size: 12px; max-width: 85%; }
.s-ph-msg.me { align-self: flex-end; background: var(--s-green-2); color: #fff; border-radius: 14px 14px 4px 14px; }
.s-phone-blob { position: absolute; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 232, 163, .35), transparent 70%); top: 50%; left: 50%; transform: translate(-50%, -50%); }
@media (max-width: 900px) { .s-app { grid-template-columns: 1fr; } .s-phone { width: 250px; } }

/* ---------- newsletter ---------- */
.s-news { background: var(--s-butter); border-radius: 32px; padding: 46px 50px; display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: center; position: relative; overflow: hidden; }
.s-news h2 { font-size: clamp(26px, 3vw, 36px); margin: 0 0 8px; }
.s-news p { margin: 0; color: var(--s-text); }
.s-news form { display: flex; gap: 10px; background: #fff; padding: 8px; border-radius: 999px; }
.s-news input { flex: 1; min-width: 0; border: 0; padding: 0 16px; font: inherit; font-size: 15.5px; background: transparent; outline: none; }
@media (max-width: 820px) { .s-news { grid-template-columns: 1fr; padding: 32px 24px; } }
@media (max-width: 460px) { .s-news form { flex-direction: column; border-radius: 22px; } .s-news input { padding: 12px 14px; } }

/* ---------- footer ---------- */
.s-footer { background: var(--s-ink); color: #a9bdb1; padding-top: 80px; margin-top: 0; }
.s-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 50px; }
.s-footer h4 { color: #fff; font-size: 19px; margin: 0 0 18px; }
.s-footer a { color: #d6e3da; text-decoration: none; }
.s-footer a:hover { color: var(--s-butter); }
.s-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.s-footer .s-logo { color: #fff; margin-bottom: 16px; }
.s-footer-contact li { display: flex; gap: 10px; align-items: flex-start; }
.s-footer-contact svg { width: 18px; height: 18px; flex-shrink: 0; margin-top: 3px; color: var(--s-butter); }
.s-socials { display: flex; gap: 10px; margin-top: 18px; }
.s-socials a { width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, .08); display: grid; place-items: center; }
.s-socials a:hover { background: var(--s-orange); color: #fff; }
.s-socials svg { width: 18px; height: 18px; }
.s-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .1); padding: 22px 0; display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; font-size: 14px; }
.s-footer-bottom div { display: flex; gap: 18px; flex-wrap: wrap; }
@media (max-width: 960px) { .s-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .s-footer-grid { grid-template-columns: 1fr; } .s-footer { padding-top: 56px; } }

/* ---------- page hero / breadcrumb ---------- */
.s-pagehero { background: var(--s-green); color: #cfe5d7; padding: 70px 0 74px; position: relative; overflow: hidden; }
.s-pagehero::before { content: ''; position: absolute; width: 420px; height: 420px; border-radius: 50%; right: -120px; top: -160px; background: rgba(255, 232, 163, .12); }
.s-pagehero::after { content: ''; position: absolute; width: 220px; height: 220px; border-radius: 50%; left: 8%; bottom: -150px; background: rgba(255, 122, 61, .2); }
.s-pagehero .s-wrap { position: relative; z-index: 1; }
.s-pagehero h1 { color: #fff; font-size: clamp(34px, 5vw, 58px); margin: 0 0 12px; font-weight: 800; }
.s-pagehero p { margin: 0; font-size: 18px; max-width: 680px; }
.s-crumbs { display: flex; gap: 8px; flex-wrap: wrap; font-weight: 700; font-size: 14px; margin-bottom: 16px; }
.s-crumbs a { color: var(--s-butter); text-decoration: none; }
.s-crumbs span::before { content: '/'; margin-right: 8px; opacity: .5; }

/* ---------- layout w/ sidebar ---------- */
.s-with-side { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 40px; align-items: start; }
.s-side { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 22px; }
.s-widget { background: #fff; border-radius: var(--s-radius); padding: 24px; border: 1px solid var(--s-line); }
.s-widget h4 { font-size: 19px; margin: 0 0 16px; padding-bottom: 12px; border-bottom: 2px solid var(--s-mint); }
.s-widget ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; }
.s-widget ul a { display: flex; justify-content: space-between; padding: 9px 4px; text-decoration: none; color: var(--s-ink); font-weight: 600; border-bottom: 1px dashed var(--s-line); }
.s-widget ul a:hover, .s-widget ul a.active { color: var(--s-orange-d); }
.s-widget .s-mini { display: flex; gap: 12px; text-decoration: none; color: inherit; padding: 8px 0; }
.s-widget .s-mini .s-th { width: 70px; height: 62px; border-radius: 12px; overflow: hidden; flex-shrink: 0; background: var(--s-sand); }
.s-widget .s-mini .s-th img, .s-widget .s-mini .s-th .s-art-svg { width: 100%; height: 100%; object-fit: cover; }
.s-widget .s-mini b { color: var(--s-ink); font-size: 15px; line-height: 1.3; display: block; }
.s-widget .s-mini small { color: var(--s-muted); font-weight: 600; }
.s-search { display: flex; gap: 6px; border: 1.5px solid var(--s-line); border-radius: 999px; padding: 5px 5px 5px 16px; background: var(--s-cream); }
.s-search input { flex: 1; min-width: 0; border: 0; background: transparent; outline: none; font: inherit; }
.s-search button { width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--s-green); color: #fff; display: grid; place-items: center; cursor: pointer; }
.s-search svg { width: 18px; height: 18px; }
.s-widget-cta { background: var(--s-green); color: #cfe5d7; border: 0; text-align: center; }
.s-widget-cta h4 { color: #fff; border-color: rgba(255, 255, 255, .15); }
@media (max-width: 1024px) { .s-with-side { grid-template-columns: 1fr; } .s-side { position: static; } }

/* ---------- filters / pagination ---------- */
.s-filterbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; justify-content: space-between; margin-bottom: 30px; }
.s-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.s-chip { padding: 10px 16px; border-radius: 999px; background: #fff; border: 1.5px solid var(--s-line); font-weight: 700; font-size: 14px; text-decoration: none; color: var(--s-ink); display: inline-flex; gap: 6px; align-items: center; }
.s-chip small { color: var(--s-muted); }
.s-chip:hover { border-color: var(--s-green); }
.s-chip.active { background: var(--s-green); border-color: var(--s-green); color: #fff; }
.s-chip.active small { color: #cfe5d7; }
.s-select { padding: 11px 16px; border-radius: 999px; border: 1.5px solid var(--s-line); background: #fff; font: inherit; font-weight: 700; color: var(--s-ink); }
.s-pages { display: flex; justify-content: center; margin-top: 44px; }
.s-pages nav > div:first-child { display: none; }
.s-pages nav > div:last-child > div:first-child { display: none; }
.s-pages span[aria-current] span, .s-pages a, .s-pages span[aria-disabled] span { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; margin: 0 3px; border-radius: 999px; border: 1.5px solid var(--s-line); background: #fff; font-weight: 800; text-decoration: none; color: var(--s-ink); }
.s-pages span[aria-current] span { background: var(--s-green); border-color: var(--s-green); color: #fff; }
.s-pages svg { width: 16px; height: 16px; }
.s-pages .relative.inline-flex { display: inline-flex; }
.s-empty { text-align: center; padding: 50px 20px; background: #fff; border-radius: var(--s-radius); border: 1px dashed var(--s-line); color: var(--s-muted); }

/* ---------- program detail ---------- */
.s-detail-img { border-radius: 28px; overflow: hidden; aspect-ratio: 16 / 8.5; background: var(--s-sand); margin-bottom: 30px; }
.s-detail-img img, .s-detail-img .s-art-svg { width: 100%; height: 100%; object-fit: cover; }
.s-tabs { display: flex; gap: 6px; flex-wrap: wrap; border-bottom: 2px solid var(--s-line); margin-bottom: 26px; }
.s-tab { padding: 12px 18px; font-weight: 800; color: var(--s-muted); border: 0; background: none; cursor: pointer; font: inherit; font-weight: 800; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.s-tab.active { color: var(--s-ink); border-bottom-color: var(--s-orange); }
.s-tabp { display: none; }
.s-tabp.active { display: block; }
.s-prose { font-size: 17px; line-height: 1.75; color: var(--s-text); }
.s-prose h2 { font-size: 28px; margin: 30px 0 12px; }
.s-prose h3 { font-size: 22px; margin: 24px 0 10px; }
.s-prose p { margin: 0 0 16px; }
.s-prose ul, .s-prose ol { padding-left: 22px; margin: 0 0 16px; }
.s-prose li { margin-bottom: 6px; }
.s-prose a { color: var(--s-green-2); font-weight: 700; }
.s-prose blockquote { margin: 20px 0; padding: 18px 22px; border-left: 4px solid var(--s-orange); background: #fff; border-radius: 0 16px 16px 0; font-size: 18px; font-weight: 600; color: var(--s-ink); }
.s-prose table { width: 100%; border-collapse: collapse; margin: 16px 0; display: block; overflow-x: auto; }
.s-prose th, .s-prose td { border: 1px solid var(--s-line); padding: 9px 12px; text-align: left; }
.s-prose img { max-width: 100%; border-radius: 16px; }
.s-list-ok { list-style: none; padding: 0; margin: 0 0 10px; display: grid; gap: 12px; }
.s-list-ok li { display: flex; gap: 12px; font-weight: 600; color: var(--s-ink); }
.s-list-ok li::before { content: ''; width: 24px; height: 24px; border-radius: 50%; flex-shrink: 0; background: var(--s-mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316523a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center / 14px no-repeat; }
.s-curr { display: grid; gap: 12px; }
.s-curr-item { display: grid; grid-template-columns: 160px 1fr; gap: 16px; background: #fff; border: 1px solid var(--s-line); border-radius: 18px; padding: 18px 20px; }
.s-curr-item b { color: var(--s-orange-d); font-family: var(--s-display); font-size: 17px; }
@media (max-width: 560px) { .s-curr-item { grid-template-columns: 1fr; gap: 4px; } }
.s-buy { background: #fff; border-radius: var(--s-radius); border: 1px solid var(--s-line); padding: 28px; box-shadow: var(--s-shadow); }
.s-buy-price { font-family: var(--s-display); font-size: 42px; font-weight: 800; color: var(--s-ink); line-height: 1; }
.s-buy-price s { font-size: 20px; color: var(--s-muted); font-weight: 600; margin-left: 6px; }
.s-buy dl { display: grid; grid-template-columns: auto 1fr; gap: 12px 10px; margin: 22px 0; font-size: 15px; }
.s-buy dt { color: var(--s-muted); font-weight: 600; display: flex; gap: 8px; align-items: center; }
.s-buy dt svg { width: 17px; height: 17px; color: var(--s-leaf); }
.s-buy dd { margin: 0; text-align: right; font-weight: 800; color: var(--s-ink); }
.s-buy .s-btn { margin-top: 8px; }

/* ---------- FAQ ---------- */
.s-faq { display: grid; gap: 12px; }
.s-faq details { background: #fff; border-radius: 18px; border: 1px solid var(--s-line); overflow: hidden; }
.s-faq summary { list-style: none; cursor: pointer; padding: 20px 60px 20px 24px; font-weight: 800; color: var(--s-ink); font-size: 17px; position: relative; }
.s-faq summary::-webkit-details-marker { display: none; }
.s-faq summary::after { content: '+'; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border-radius: 50%; background: var(--s-mint); color: var(--s-green); display: grid; place-items: center; font-size: 20px; transition: transform .2s; }
.s-faq details[open] summary::after { content: '–'; background: var(--s-orange); color: #fff; }
.s-faq details[open] { border-color: var(--s-green); }
.s-faq .s-faq-a { padding: 0 24px 22px; color: var(--s-text); line-height: 1.7; white-space: pre-line; }

/* ---------- contact / forms ---------- */
.s-form { background: #fff; border-radius: 28px; padding: 36px; border: 1px solid var(--s-line); }
.s-field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 16px; }
.s-label { font-weight: 800; font-size: 14px; color: var(--s-ink); }
.s-input, .s-textarea { width: 100%; padding: 14px 16px; border-radius: 14px; border: 1.5px solid var(--s-line); background: var(--s-cream); font: inherit; color: var(--s-ink); }
.s-input:focus, .s-textarea:focus { outline: none; border-color: var(--s-green); background: #fff; box-shadow: 0 0 0 4px rgba(22, 82, 58, .1); }
.s-textarea { min-height: 140px; resize: vertical; }
.s-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
@media (max-width: 560px) { .s-row2 { grid-template-columns: 1fr; } .s-form { padding: 24px; } }
.s-alert { border-radius: 16px; padding: 14px 18px; font-weight: 700; margin-bottom: 18px; }
.s-alert-ok { background: var(--s-mint); color: var(--s-green); }
.s-alert-err { background: #fde8e1; color: #b4410e; }
.s-info { display: grid; gap: 16px; }
.s-info-item { display: flex; gap: 16px; align-items: flex-start; background: #fff; border-radius: 20px; padding: 22px; border: 1px solid var(--s-line); }
.s-info-item .s-ic { width: 52px; height: 52px; border-radius: 16px; background: var(--s-mint); color: var(--s-green); display: grid; place-items: center; flex-shrink: 0; }
.s-info-item .s-ic svg { width: 24px; height: 24px; }
.s-info-item b { display: block; color: var(--s-ink); font-size: 17px; margin-bottom: 2px; }
.s-info-item a { color: var(--s-text); text-decoration: none; }

/* ---------- team ---------- */
.s-member { text-align: center; }
.s-member-img { aspect-ratio: 4 / 4.6; border-radius: 26px; overflow: hidden; background: linear-gradient(160deg, var(--s-mint), var(--s-sand)); display: grid; place-items: center; margin-bottom: 16px; position: relative; }
.s-member-img img { width: 100%; height: 100%; object-fit: cover; }
.s-member-img .s-ini { font-family: var(--s-display); font-size: 70px; font-weight: 800; color: var(--s-green); }
.s-member h3 { font-size: 21px; margin: 0 0 4px; }
.s-member p { margin: 0; color: var(--s-orange-d); font-weight: 700; font-size: 14.5px; }
.s-member small { display: block; color: var(--s-muted); margin-top: 6px; }

/* ---------- consultation types ---------- */
.s-ctype { background: #fff; border-radius: var(--s-radius); border: 1px solid var(--s-line); padding: 28px; display: flex; flex-direction: column; gap: 12px; border-top: 6px solid var(--c, var(--s-green)); }
.s-ctype h3 { font-size: 23px; margin: 0; }
.s-ctype .s-price { font-family: var(--s-display); font-size: 34px; font-weight: 800; color: var(--s-ink); }
.s-ctype .s-price small { font-size: 15px; font-family: var(--s-body); color: var(--s-muted); font-weight: 600; }
.s-ctype .s-next { background: var(--s-cream); border-radius: 14px; padding: 12px 14px; font-size: 14px; font-weight: 700; color: var(--s-ink); }
.s-ctype .s-btn { margin-top: auto; }
.s-tagline { display: flex; gap: 8px; flex-wrap: wrap; }
.s-pill { display: inline-flex; padding: 5px 12px; border-radius: 999px; background: var(--s-mint); color: var(--s-green); font-weight: 800; font-size: 12.5px; }
.s-pill-o { background: #ffe3d4; color: #b4410e; }

/* ---------- 404 ---------- */
.s-404 { text-align: center; padding: 90px 0; }
.s-404 .s-big { font-family: var(--s-display); font-size: clamp(110px, 20vw, 220px); font-weight: 800; line-height: .9; color: var(--s-green); }
.s-404 .s-big span { color: var(--s-orange); }

/* ---------- auth split ---------- */
.s-auth { display: grid; grid-template-columns: 1fr 1fr; min-height: calc(100vh - 118px); }
.s-auth-side { background: var(--s-green); color: #cfe5d7; padding: 60px; display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; }
.s-auth-side h2 { color: #fff; font-size: clamp(30px, 3.4vw, 44px); margin: 0 0 16px; }
.s-auth-side .s-art-svg { width: 70%; max-width: 360px; margin-top: 30px; align-self: center; }
.s-auth-main { display: grid; place-items: center; padding: 50px 20px; }
.s-auth-main .p-auth-card { border-radius: 28px; box-shadow: var(--s-shadow); border: 0; }
@media (max-width: 900px) { .s-auth { grid-template-columns: 1fr; } .s-auth-side { display: none; } }

/* ---------- reveal on scroll ---------- */
.s-js .s-reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s, transform .7s; }
.s-js .s-reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .s-js .s-reveal { opacity: 1; transform: none; } }

/* cabinetul preia fonturile site-ului */
.s-body .p-cab h1, .s-body .p-cab h2, .s-body .p-cab h3 { font-family: var(--s-display); }
.s-contact-grid { grid-template-columns: minmax(0, 1fr) 400px; }
@media (max-width: 1024px) { .s-contact-grid { grid-template-columns: 1fr; } }
.s-drawer { visibility: hidden; }
body.s-drawer-open .s-drawer { visibility: visible; }
.s-prose .s-list-ok { padding-left: 0; }

/* Versiune demonstrativă */
.s-demo-bar{background:#1d2b24;color:#fff6e0;font-size:12.5px;line-height:1.4;text-align:center;padding:6px 16px;position:relative;z-index:60}
.s-demo-login{background:#fff6e0;border:1px dashed #ff7a3d;border-radius:12px;padding:10px 14px;font-size:14px;margin:0 0 16px}
