/* ============================================================
   Seyvo Public CSS — Phase 47C merged public styles
============================================================ */




/* ---- merged from themes/seyvo/assets/css/marketing-tokens.css ---- */

/* ================================================================
   SEYVO MARKETING TOKENS — Extrait de marketing/_styles.php
   Chargé uniquement depuis wrapper.php (pages publiques)
   Variables --sm-* : espace de noms marketing, indépendant de --sv-*
   ================================================================ */

body[data-theme-style="seyvo"] {
    --sm-bg:         #FAF8F3;
    --sm-bg-2:       #F4F0E8;
    --sm-surface:    var(--seyvo-white);
    --sm-ink:        #0D1424;
    --sm-navy:       #172033;
    --sm-text:       #344054;
    --sm-muted:      #667085;
    --sm-line:       rgba(13, 20, 36, .09);
    --sm-line-soft:  rgba(13, 20, 36, .055);
    --sm-primary:      var(--sv-primary);
    --sm-primary-2:    var(--sv-primary-light, #7DE8B8);
    --sm-teal:       #20BFA9;
    --sm-lime:       #B1E346;
    --sm-gold:       #F4B860;
    --sm-rose:       #F77DA8;
    --sm-indigo:     var(--sv-primary);
    --sm-shadow:     0 24px 70px rgba(13, 20, 36, .09);
    --sm-shadow-sm:  0 14px 38px rgba(13, 20, 36, .055);
    --sm-head:       'Sora', 'Inter', system-ui, sans-serif;
    --sm-body:       'Inter', system-ui, sans-serif;
    --sm-page-max:   1280px;
    --sm-gutter:     36px;
}




/* ---- merged from themes/seyvo/assets/css/homepage-navbar.css ---- */

/* Seyvo homepage navbar — official public navigation */
body[data-theme-style="seyvo"] {
    --sv-bg: #FAF8F3;
    --sv-surface: var(--seyvo-white);
    --sv-ink: #0D1424;
    --sv-text: #344054;
    --sv-muted: #667085;
    --sv-line: rgba(13,20,36,.09);
    --sv-primary: var(--seyvo-primary-500, var(--seyvo-primary-500));
    --sv-shadow: 0 24px 70px rgba(13,20,36,.09);
    --sv-head-font: 'Sora', 'Inter', system-ui, sans-serif;
    --sv-body-font: 'Inter', system-ui, sans-serif;
    --sv-page-max: 1680px;
    --sv-page-gutter: 72px;
}

body[data-theme-style="seyvo"] {
    font-family: var(--sv-body-font);
}

.sv-nav {
    position: sticky;
    top: 16px;
    z-index: 1050;
    width: 100%;
    display: block;
    margin: 0;
    padding: 16px 0 0;
    pointer-events: none;
}

.sv-nav-inner {
    width: min(var(--sv-page-max), calc(100% - var(--sv-page-gutter)));
    min-height: 68px;
    margin: 0 auto;
    padding: 10px 14px 10px 16px;
    border-radius: 28px;
    border: 1px solid rgba(13,20,36,.10);
    /* Fix: fond blanc translucide neutre — pas de vert comme surface nav */
    background: rgba(255,255,255,.88);
    box-shadow: 0 8px 32px rgba(13,20,36,.08);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    pointer-events: auto;
}

.sv-nav.is-scrolled .sv-nav-inner {
    background: rgba(255,255,255,.96);
    box-shadow: 0 14px 44px rgba(13,20,36,.11);
}

.sv-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--sv-ink);
    text-decoration: none;
    font-family: var(--sv-head-font);
    font-weight: 900;
    letter-spacing: -.04em;
    white-space: nowrap;
}

.sv-brand img {
    display: block;
    max-height: 42px;
    max-width: 160px;
    object-fit: contain;
}

.sv-brand-mark {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: var(--sv-ink);
    color: var(--seyvo-white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    box-shadow: 0 12px 30px rgba(13,20,36,.18);
}

.sv-links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.sv-links a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 12px;
    border-radius: 999px;
    color: var(--sv-text);
    text-decoration: none;
    font-size: .92rem;
    font-weight: 850;
    letter-spacing: -.01em;
    white-space: nowrap;
    transition: background .18s ease, color .18s ease;
}

.sv-links a:hover {
    background: rgba(13,20,36,.055);
    color: var(--sv-ink);
}

.sv-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sv-btn {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 0 22px;
    font-weight: 900;
    text-decoration: none;
    letter-spacing: -.02em;
    white-space: nowrap;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.sv-btn:hover {
    transform: translateY(-1px);
}

.sv-btn-secondary {
    /* Fix: bouton secondaire = fond neutre, pas vert */
    background: rgba(255,255,255,.78);
    color: var(--sv-ink);
    border: 1px solid rgba(13,20,36,.10);
    box-shadow: 0 8px 22px rgba(13,20,36,.06);
}

.sv-btn-primary {
    background: var(--seyvo-primary-500, #16A96C);
    color: var(--seyvo-white);
    border: 1px solid rgba(var(--seyvo-primary-rgb),.22);
    box-shadow: 0 14px 36px rgba(var(--seyvo-primary-rgb),.28);
}

.sv-language-switch {
    height: 48px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px;
    border-radius: 999px;
    /* Fix: fond neutre — pas de vert */
    background: rgba(13,20,36,.05);
    border: 1px solid rgba(13,20,36,.09);
}

.sv-language-switch a {
    min-width: 38px;
    height: 38px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--sv-muted);
    text-decoration: none;
    font-size: .72rem;
    font-weight: 900;
}

.sv-language-switch a.active {
    background: var(--sv-ink);
    color: var(--seyvo-white);
}

.sv-burger {
    width: 48px;
    height: 48px;
    border: 1px solid rgba(13,20,36,.10);
    border-radius: 999px;
    background: rgba(255,255,255,.78);
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    cursor: pointer;
}

.sv-burger span {
    width: 18px;
    height: 2px;
    border-radius: 99px;
    background: var(--sv-ink);
}

.sv-mobile {
    width: min(var(--sv-page-max), calc(100% - var(--sv-page-gutter)));
    margin: 10px auto 0;
    padding: 10px;
    border-radius: 24px;
    border: 1px solid rgba(13,20,36,.09);
    /* Fix: fond blanc translucide — pas de vert */
    background: rgba(255,255,255,.96);
    box-shadow: 0 20px 54px rgba(13,20,36,.10);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    display: none;
    pointer-events: auto;
}

.sv-mobile.open {
    display: block;
}

.sv-mobile a {
    display: block;
    padding: 13px 14px;
    border-radius: 15px;
    color: var(--sv-ink);
    text-decoration: none;
    font-weight: 850;
}

.sv-mobile a:hover {
    background: rgba(13,20,36,.055);
}

.sv-mobile-language {
    display: flex;
    gap: 8px;
    padding: 6px;
    margin-bottom: 6px;
}

.sv-mobile-language a {
    flex: 1;
    text-align: center;
    background: rgba(13,20,36,.04);
}

.sv-mobile-language a.active {
    background: var(--sv-ink);
    color: var(--seyvo-white);
}

@media (max-width: 1180px) {
    :root { --sv-page-gutter: 32px; }
    .sv-links { display: none; }
    .sv-burger { display: inline-flex; }
}

@media (max-width: 640px) {
    :root { --sv-page-gutter: 18px; }
    .sv-nav { top: 10px; padding-top: 10px; }
    .sv-nav-inner { min-height: 62px; border-radius: 22px; gap: 10px; }
    .sv-brand span:not(.sv-brand-mark) { display: none; }
    .sv-login { display: none; }
    .sv-btn-primary { padding: 0 16px; min-height: 44px; }
    .sv-language-switch { display: none; }
}




/* ---- merged from themes/seyvo/assets/css/public/public-core.css ---- */

/*
  Seyvo Public Core
  Phase 25: base publique légère.
  CSS public contextuel Seyvo.
*/

:root {
  --seyvo-public-radius-xl: 28px;
  --seyvo-public-radius-lg: 22px;
  --seyvo-public-shadow-soft: 0 18px 60px rgba(15, 23, 42, .08);
  --seyvo-public-border: rgba(15, 23, 42, .09);
}

html {
  scroll-behavior: smooth;
}

body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.sv-public-shell,
.sv-public-page,
.public-page {
  overflow-x: hidden;
}

.sv-section,
.sv-public-section {
  position: relative;
}

.sv-public-page .sv-card,
.sv-public-card,
.pricing-card,
.plan-card {
  border-radius: var(--seyvo-public-radius-lg);
}

@media (max-width: 767.98px) {
  .container,
  .container-fluid {
    max-width: 100%;
  }

  .sv-section,
  .sv-public-section {
    padding-left: 0;
    padding-right: 0;
  }
}




/* ---- merged from themes/seyvo/assets/css/public/public-link-wrapper.css ---- */

/*
  Seyvo Public Link Wrapper
  Phase 28 isolation layer.

  Purpose:
  - stabilize public_link_wrapper.php before removing the legacy public bundle;
  - provide safe defaults for public BioLink / link / splash style pages;
  - keep mobile scroll and overflow reliable.
*/

:root {
  --seyvo-link-bg: var(--seyvo-white);
  --seyvo-link-text: #111827;
  --seyvo-link-muted: #6b7280;
  --seyvo-link-border: rgba(17, 24, 39, .10);
  --seyvo-link-card: rgba(var(--seyvo-primary-rgb),.86);
  --seyvo-link-shadow: 0 18px 60px rgba(15, 23, 42, .10);
  --seyvo-link-radius: 24px;
}

html,
body {
  min-height: 100%;
  overflow-x: hidden;
}

body[data-theme-style="seyvo"] {
  background: var(--seyvo-link-bg);
  color: var(--seyvo-link-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body[dir="rtl"],
body.rtl {
  direction: rtl;
}

.public-link-wrapper,
.sv-public-link-wrapper,
.sv-public-page,
.public-page,
.link-public,
.biolink-public {
  min-height: 100vh;
  overflow-x: hidden;
}

.sv-public-card,
.public-card,
.biolink-card,
.link-card {
  border: 1px solid var(--seyvo-link-border);
  border-radius: var(--seyvo-link-radius);
  background: var(--seyvo-link-card);
  box-shadow: var(--seyvo-link-shadow);
}

.sv-public-btn,
.public-btn,
.biolink-button,
.link-button,
.btn-public {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 44px;
  border-radius: 999px;
  font-weight: 700;
  line-height: 1;
}

.sv-public-footer,
.public-footer {
  color: var(--seyvo-link-muted);
}

@media (max-width: 767.98px) {
  body {
    min-width: 0;
  }

  .container,
  .container-fluid {
    width: 100%;
    max-width: 100%;
  }

  .sv-public-card,
  .public-card,
  .biolink-card,
  .link-card {
    border-radius: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .001ms;
    animation-iteration-count: 1;
    scroll-behavior: auto;
    transition-duration: .001ms;
  }
}




/* ---- merged from themes/seyvo/assets/css/public/public-link.css ---- */

/*
  Seyvo Public Link
  Phase 25: overrides pour pages publiques BioLink / link.
*/

body {
  overflow-x: hidden;
}

.sv-link-public,
.link-public,
.biolink-public {
  min-height: 100vh;
}

.sv-link-public iframe,
.link-public iframe,
.biolink-public iframe {
  max-width: 100%;
}




/* ---- merged from themes/seyvo/assets/css/public/public-pay.css ---- */

/*
  Seyvo Public Pay
  Phase 25: overrides checkout/pay.
*/

.pay-page,
.checkout-page,
.sv-pay-page {
  overflow-x: hidden;
}

.pay-card,
.checkout-card,
.sv-pay-card {
  border-radius: var(--seyvo-public-radius-lg, 22px);
}

@media (max-width: 767.98px) {
  .pay-card,
  .checkout-card,
  .sv-pay-card {
    width: 100%;
  }
}




/* ---- merged from themes/seyvo/assets/css/public/public-pricing.css ---- */

/*
  Seyvo Public Pricing
  Phase 25: overrides plans/pricing.
*/

.pricing-card,
.plan-card,
.sv-pricing-card {
  overflow: hidden;
}

.pricing-grid,
.plans-grid,
.sv-pricing-grid {
  align-items: stretch;
}

@media (max-width: 991.98px) {
  .pricing-grid,
  .plans-grid,
  .sv-pricing-grid {
    gap: 1rem;
  }
}




/* ---- merged from themes/seyvo/assets/css/public/public-affiliate.css ---- */

/*
  Seyvo Public Affiliate
  Phase 25: overrides affiliate.
*/

.affiliate-page,
.sv-affiliate-page {
  overflow-x: hidden;
}

.affiliate-card,
.sv-affiliate-card {
  border-radius: var(--seyvo-public-radius-lg, 22px);
}




/* ---- merged from themes/seyvo/assets/css/public/public-appointments.css ---- */

/*
  Seyvo Public Appointments
  Phase 25: overrides appointment public pages.
*/

.appointment-public,
.appointment-page,
.sv-appointment-page {
  min-height: 100vh;
  overflow-x: hidden;
}

.appointment-card,
.sv-appointment-card {
  border-radius: var(--seyvo-public-radius-lg, 22px);
  box-shadow: var(--seyvo-public-shadow-soft, 0 18px 60px rgba(15, 23, 42, .08));
}