/* Visual layer for public pages only. Panels and NFC profiles never load it. */
body.public-unified {
 color-scheme: light;
 --site-bg: #fff;
 --site-paper: #0c1d49;
 --site-muted: #526079;
 --site-lime: #075df2;
 --service-bg: #fff;
 --service-panel: #f5f8fc;
 --service-ink: #0c1d49;
 --service-muted: #526079;
 --service-cyan: #075df2;
 --service-line: #e4eaf2;
 --app-bg: #fff;
 --app-panel: #fff;
 --app-panel-2: #f5f8fc;
 --app-text: #0c1d49;
 --app-muted: #526079;
 --app-cyan: #075df2;
 --app-blue: #075df2;
 --app-green: #237345;
 --app-warn: #8a5600;
 --app-danger: #b32634;
 --app-line: #dce5f0;
 --app-shadow: 0 12px 35px #203f6512;
 background: #fff !important;
 color: #0c1d49 !important;
 font-family: 'DM Sans', Arial, sans-serif !important;
 -webkit-font-smoothing: antialiased;
}
html:has(body.public-unified) { color-scheme: light; background: #fff; }
.public-unified *, .public-unified *::before, .public-unified *::after { box-sizing: border-box; }
.public-unified ::selection { background: #dceaff; color: #0c1d49; }
.public-unified :focus-visible { outline: 3px solid #075df2; outline-offset: 4px; }
.public-unified h1, .public-unified h2, .public-unified h3 { color: #0c1d49; font-family: 'Manrope', Arial, sans-serif; }
.public-unified .wrap { width: min(1280px,calc(100% - 64px)) !important; max-width: 1280px; margin: 0 auto; padding: 0 !important; }
.public-unified .home-nav-inner { width: min(1280px,calc(100% - 64px)); }
.public-unified .nav { min-height: 88px !important; margin-bottom: 0; padding: 14px 0 !important; align-items: center !important; gap: 22px; }
.public-unified .nav::before { background: #fff; border-bottom: 1px solid #e4eaf2; backdrop-filter: none; }
.public-unified .nav .brand { position: relative; display: inline-flex; align-items: center; min-height: 44px; gap: 0; color: #0c1d49 !important; font-size: 1.3rem; font-weight: 800; letter-spacing: -.04em !important; }
.public-unified .nav .brand::before { content: ''; width: 38px; height: 38px; margin-right: 11px; background: url('/assets/brand-mark.svg') center/contain no-repeat; flex-shrink: 0; }
.public-unified .nav .brand span, .public-unified .nav .brand i { color: #0c1d49 !important; }
.public-unified .nav .navlinks, .public-unified .nav .links { gap: 24px !important; margin-left: auto; color: #0c1d49 !important; font-size: .85rem; font-weight: 600; }
.public-unified .nav .links a, .public-unified .nav .navlinks a { display: inline-flex; min-height: 44px; align-items: center; }
.public-unified .nav .links a[aria-current='page'], .public-unified .nav .navlinks a[aria-current='page'] { color: #075df2 !important; }
.public-unified .nav .links a[href='/login/'], .public-unified .nav-actions > a[href='/login/'] { padding: 10px 14px !important; color: #0c1d49 !important; border: 1px solid #a2afc2 !important; border-radius: 8px; min-height: 44px; display: inline-flex; align-items: center; }
.public-unified .button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 10px; background: #075df2 !important; color: #fff !important; border-color: #075df2 !important; border-radius: 8px !important; font: 700 .9rem/1.35 'DM Sans',sans-serif; box-shadow: 0 6px 16px #075df21c !important; white-space: normal; }
.public-unified .button:hover { background: #0846b5 !important; }
.public-unified .nav .button { min-height: 44px; background: #25851a !important; border-color: #25851a !important; box-shadow: none !important; }
.public-unified .nav .button:hover { background: #206e18 !important; }
.public-unified .button.outline, .public-unified .button.ghost, .public-unified .web-actions .outline { color: #075df2 !important; background: #fff !important; border-color: #bdcfe8 !important; box-shadow: none !important; }
.public-unified .button.outline:hover, .public-unified .button.ghost:hover { background: #f0f6ff !important; }
.public-unified .hero, .public-unified .web-hero { padding: 58px 0 48px !important; gap: 45px; }
.public-unified .hero h1, .public-unified .web-hero h1 { font-size: clamp(2.5rem,4.4vw,4.1rem) !important; line-height: 1.1; letter-spacing: -.045em !important; }
.public-unified .hero h1 em { color: #075df2 !important; }
.public-unified .hero p, .public-unified .web-lead, .public-unified .portfolio-lead { color: #526079 !important; font-size: 1.05rem; line-height: 1.65; }
.public-unified .web-kicker, .public-unified .portfolio span, .public-unified .section-label, .public-unified .tag, .public-unified .eyebrow { color: #075df2; }
.public-unified .builder { background: #f5f8fc !important; border-color: #e4eaf2 !important; border-radius: 18px !important; box-shadow: 0 12px 30px #203f6510 !important; transform: none; }
.public-unified .choice { background: #fff !important; color: #0c1d49; border-color: #d8e2ef !important; border-radius: 10px !important; min-height: 76px; }
.public-unified .choice:hover, .public-unified .choice.active { background: #eaf3ff !important; border-color: #075df2 !important; }
.public-unified .choice small { color: #526079; }
.public-unified .preview { background: #eaf3ff !important; color: #0c1d49; border-color: #d8e7fc !important; }
.public-unified .preview p { color: #526079; }
.public-unified .portfolio, .public-unified .web-section, .public-unified .section { padding: 56px 0 !important; border-color: #e4eaf2; }
.public-unified .portfolio h2, .public-unified .web-section h2, .public-unified .section h2 { font-size: clamp(1.8rem,3vw,2.6rem); line-height: 1.2; letter-spacing: -.035em; }
.public-unified .portfolio-item { background: #fff; border-color: #e4eaf2; border-radius: 15px; box-shadow: 0 8px 22px #203f6510; }
.public-unified .portfolio-item:hover { border-color: #91b5f4; }
.public-unified .portfolio-item small, .public-unified .feature p { color: #526079; }
.public-unified .project-image--logo { background: #f2f6fb; }
.public-unified .feature-grid { gap: 16px; background: transparent; }
.public-unified .feature { background: #f5f8fc; border: 1px solid #e4eaf2; border-radius: 14px; }
.public-unified .hero-media img { border-color: #e4eaf2; border-radius: 16px; box-shadow: 0 15px 35px #203f651c; }
.public-unified .hero-price-proof, .public-unified .hero-price-proof .renewal-note { color: #526079; }
.public-unified .hero-price-proof strong { color: #0c1d49; }
.public-unified .hero-proof span, .public-unified .hero-legal-link { color: #075df2; }
.public-unified .hero-proof, .public-unified .price-box small { color: #526079; }
.public-unified .nfc-showcase__intro h2 { color: #0c1d49; }
.public-unified .nfc-showcase__item { background: #f5f8fc; border-color: #e4eaf2; border-radius: 16px; box-shadow: 0 10px 24px #203f6512; }
.public-unified .steps { gap: 18px; }
.public-unified .step, .public-unified .snapshot, .public-unified .price-box { background: #f5f8fc; border: 1px solid #e4eaf2; border-radius: 16px; box-shadow: 0 8px 22px #203f650c; }
.public-unified .step b { color: #075df2; }
.public-unified .step p, .public-unified .snapshot p, .public-unified .detail p, .public-unified .price-section p { color: #526079; }
.public-unified .snap-row, .public-unified .multi-price, .public-unified .renewal-price { border-color: #dce5f0; color: #526079; }
.public-unified .snap-row strong, .public-unified .renewal-price strong { color: #0c1d49; }
.public-unified .snap-row .ok { color: #237345; }
.public-unified .snap-row .soon { color: #8a5600; }
.public-unified .snap-row .lock { color: #526079; }
.public-unified .multi-price strong, .public-unified .price-box > strong { color: #075df2; }
.public-unified .purchase-includes li, .public-unified .price-note { color: #526079; }
.public-unified .purchase-includes li::before { color: #25851a; }
.public-unified .nfc-legal-promo { background: #eef5ff; border: 1px solid #dce8f9; border-radius: 16px; padding: 24px; }
.public-unified .nfc-legal-promo__icon, .public-unified .nfc-legal-promo__label { color: #075df2; border-color: #9fc0f5; }
.public-unified .nfc-legal-promo p, .public-unified .nfc-legal-promo .nfc-legal-promo__note { color: #526079; }
.public-unified .legal-info { background: #f5f8fc; border: 1px solid #e4eaf2; border-radius: 14px; padding: 0 24px; }
.public-unified .legal-info__title small, .public-unified .legal-info__toggle { color: #075df2; }
.public-unified .legal-info__content, .public-unified .legal-info__content p, .public-unified .legal-info__note { color: #526079; }
.public-unified .legal-info__links a { color: #075df2; border-color: #bdcfe8; background: #fff; }
.public-unified .legal-main { padding-top: 24px; }
.public-unified .legal-heading { background: #f5f8fc; border: 1px solid #e4eaf2; border-radius: 18px; padding: 32px; margin-bottom: 10px; }
.public-unified .legal-heading h1 { font-size: clamp(2.2rem,4vw,3.2rem); letter-spacing: -.045em; }
.public-unified .legal-heading p, .public-unified .legal-section p, .public-unified .legal-section li { color: #526079; }
.public-unified .legal-section { border-color: #e4eaf2; }
.public-unified .legal-section a { color: #075df2; text-decoration: underline; text-underline-offset: 3px; }
.public-unified .site-footer, .public-unified .footer { border-color: #e4eaf2 !important; color: #526079 !important; }
.public-unified .site-footer__brand, .public-unified .site-footer__group h2 { color: #0c1d49; }
.public-unified .site-footer__identity p, .public-unified .site-footer__group a, .public-unified .site-footer__bottom a, .public-unified .footer a, .public-unified .legal-note { color: #526079; }
.public-unified .site-footer__bottom { border-color: #e4eaf2; }
.public-unified .site-footer__group a:hover, .public-unified .footer a:hover { color: #075df2; }
.public-unified .site-footer a:focus-visible { outline-color: #075df2; }
.public-unified.public-error { margin: 0; padding: 32px; }
.public-unified.public-error main { padding: 40px 0 60px; }
.public-unified.public-error h1 { font-size: clamp(2.6rem,6vw,4.1rem); line-height: 1.1; letter-spacing: -.045em; }
.public-unified.public-error main > p { color: #526079; }
.public-unified.public-access .app-login { background: linear-gradient(145deg,#fff,#f1f6fd); padding: 32px 20px; }
.public-unified.public-access .login-card { border-color: #dce5f0; border-radius: 20px; background: #fff; box-shadow: 0 12px 35px #203f6512; padding: 30px; }
.public-unified.public-access .login-card h1 { color: #0c1d49; font-size: clamp(1.7rem,4vw,2rem); line-height: 1.2; letter-spacing: -.035em; }
.public-unified.public-access .app-brand { color: #0c1d49; font-weight: 800; font-size: .96rem; letter-spacing: -.025em; }
.public-unified.public-access .app-field label { color: #526079; }
.public-unified.public-access .app-field input, .public-unified.public-access .app-field select, .public-unified.public-access .app-field textarea { color: #0c1d49; background: #f8faff; border-color: #c6d2e3; border-radius: 9px; min-height: 46px; }
.public-unified.public-access .app-field input:focus, .public-unified.public-access .app-field select:focus, .public-unified.public-access .app-field textarea:focus { border-color: #075df2; outline: 2px solid #075df230; outline-offset: 1px; }
.public-unified.public-access .app-field input::placeholder { color: #64718a; }
.public-unified.public-access .app-button { min-height: 48px; border-radius: 8px; color: white; background: #075df2; font-weight: 700; }
.public-unified.public-access .app-button:hover { background: #0846b5; }
.public-unified.public-access .app-button.secondary { color: #075df2; background: white; border-color: #bdcfe8; }
.public-unified.public-access .app-button.secondary:hover { background: #f0f6ff; }
.public-unified.public-access #btnPasskey { color: #075df2; background: #fff !important; border-color: #bdcfe8 !important; }
.public-unified.public-access .login-links { color: #075df2; gap: 14px; flex-wrap: wrap; }
.public-unified.public-access .app-note { color: #16498c; background: #edf5ff; border-color: #c6dcf8; }
.public-unified.public-access .demo-banner { color: #754c0f; background: #fff6e4; }
.public-unified.public-access .toast { color: #0c1d49; background: #fff; border-color: #c6d2e3; }
.public-unified.public-access #activationMessage, .public-unified.public-access #linkStatus { color: #16498c; }
.public-unified.public-access .pwa-install { color: #075df2; border: 1px solid #bdcfe8; background: #fff; }
@media (max-width: 900px) {
 .public-unified .hero, .public-unified .web-hero { grid-template-columns: 1fr; gap: 28px; }
 .public-unified .nav .links { display: flex !important; }
}
@media (max-width: 760px) {
 .public-unified .wrap { width: calc(100% - 36px) !important; }
 .public-unified .home-nav-inner { width: calc(100% - 36px); }
 .public-unified .nav { min-height: 76px !important; flex-wrap: wrap; padding: 12px 0 !important; gap: 10px 18px; }
 .public-unified .nav .brand { font-size: 1.1rem; }
 .public-unified .nav .brand::before { width: 31px; height: 31px; margin-right: 8px; }
 .public-unified .nav .links, .public-unified .nav .navlinks { gap: 16px !important; flex-wrap: wrap; font-size: .79rem; }
 .public-unified .nav .nav-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-left: auto; }
 .public-unified .nav .button { padding: 10px 14px !important; font-size: .79rem; }
 .public-unified .hero, .public-unified .web-hero { padding: 35px 0 38px !important; }
 .public-unified .hero h1, .public-unified .web-hero h1 { font-size: clamp(2.3rem,7.7vw,3.1rem) !important; }
 .public-unified .hero p, .public-unified .web-lead { font-size: 1rem; }
 .public-unified .portfolio, .public-unified .web-section, .public-unified .section { padding: 39px 0 !important; }
 .public-unified .legal-heading { padding: 25px 22px; }
 .public-unified .legal-info { padding: 0 18px; }
 .public-unified .nfc-legal-promo { padding: 22px 18px; }
 .public-unified .site-footer__main { grid-template-columns: 1fr; gap: 24px; }
 .public-unified .site-footer__bottom { flex-wrap: wrap; }
}
@media (max-width: 420px) {
 .public-unified .nav .links, .public-unified .nav .navlinks { width: 100%; margin-left: 0; }
 .public-unified .nav .nav-actions { width: 100%; margin-left: 0; }
 .public-unified .button { padding: 12px 16px !important; }
 .public-unified.public-error { padding: 20px; }
 .public-unified.public-access .app-login { padding: 20px 16px; }
 .public-unified.public-access .login-card { padding: 24px 20px; }
}
@media (prefers-reduced-motion: reduce) {
 .public-unified *, .public-unified *::before, .public-unified *::after { transition: none !important; animation: none !important; }
}

/* Backgrounds only: no box, content, control or foreground changes. */
body.public-unified {
 background-color: #fff !important;
 background-image: radial-gradient(ellipse at 92% 3%,rgba(140,206,255,.15),transparent 33%),radial-gradient(ellipse at 3% 43%,rgba(183,225,255,.13),transparent 32%),linear-gradient(180deg,#fff 0%,#fff 42%,#f8fbff 75%,#fff 100%) !important;
 background-repeat: no-repeat !important;
}
body.public-unified .home-hero, body.public-unified .web-hero, body.public-unified.vehicle-page .hero {
 background-image: radial-gradient(ellipse at 85% 22%,rgba(139,206,255,.12),transparent 62%);
 background-repeat: no-repeat;
}
body.public-unified .home-how, body.public-unified .home-work, body.public-unified .portfolio, body.public-unified .web-section {
 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180' preserveAspectRatio='none'%3E%3Cpath d='M0 110C250 35 420 170 720 110S1190 20 1440 90V180H0Z' fill='%23eaf5ff' fill-opacity='.45'/%3E%3Cpath d='M0 140C300 70 530 185 850 135S1250 95 1440 130V180H0Z' fill='%23f6fbff' fill-opacity='.9'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-size: 100% 150px;
 background-position: center bottom;
}
body.public-unified.public-access .app-login {
 background-color: #fff;
 background-image: radial-gradient(ellipse at 90% 8%,rgba(135,204,255,.17),transparent 48%),radial-gradient(ellipse at 5% 94%,rgba(166,216,255,.14),transparent 50%),linear-gradient(180deg,#fff 24%,#f7fbff 74%,#fff);
 background-repeat: no-repeat;
}

/* Keep the supplied Le Curutchet logo fully visible in existing photo slots. */
.public-unified img[src$="/lecurutchetlogo1.webp"] { object-fit: contain; object-position: center; background: #fbf8f0; }
