/* Public shop and login: the landing page's navy, teal and soft white palette. */
.public-shop,.public-login{--ink:#10233f;--muted:#627089;--teal:#07838d;--teal2:#13a6a0;--cream:#f7faf9;--line:#dce8e6;--primary-dark:var(--ink);--primary-blue:var(--teal);--neon-blue:var(--teal);--gradient-primary:linear-gradient(120deg,var(--teal),#087b84);--shadow-neon:0 18px 55px rgba(16,35,63,.08);margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:radial-gradient(ellipse at 95% 0%,#e4f5f1,transparent 45%),linear-gradient(180deg,#f8fbfa,#fff);min-height:100vh;height:auto}
.public-shop a,.public-login a{color:var(--teal)}
.public-shop :focus-visible,.public-login :focus-visible{outline:3px solid #07838d;outline-offset:4px}
.public-brand{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:25px;font-weight:850;letter-spacing:-.7px;color:var(--ink)}
.public-brand img{display:block;width:31px;height:31px;flex:0 0 31px}
.public-brand em{font-style:normal;color:var(--teal)}
.public-shop .navbar,.public-header{background:rgba(255,255,255,.92)!important;border-bottom:1px solid var(--line);box-shadow:none;backdrop-filter:blur(14px);position:sticky;top:0;z-index:1020;min-height:82px}
.public-header-inner{width:min(1160px,calc(100% - 40px));margin:auto;min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.public-header-caption{color:var(--muted);font-size:.85rem;font-weight:650}
.public-shop .navbar>.container{max-width:1160px;gap:16px}
.public-shop .navbar-brand{display:flex;align-items:center;gap:16px;max-width:70%;font-size:1rem;background:none;-webkit-text-fill-color:var(--ink);color:var(--ink);font-weight:750;letter-spacing:0}
.public-zone-name{padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--cream);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.public-shop .navbar .nav-link{color:var(--muted)!important;font-weight:650;font-size:.9rem;padding:10px 12px;border-radius:10px}
.public-shop .navbar .nav-link:hover,.public-shop .navbar .nav-link.active{background:#e7f6f4;color:#08737b!important;transform:none;text-shadow:none}
.public-shop .navbar-toggler{border:1px solid var(--line);padding:9px;border-radius:10px;box-shadow:none}
.public-shop .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%2310233f' stroke-linecap='round' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}
.public-shop:before,.public-shop>.floating-element{display:none}
.public-shop-main{width:min(1160px,calc(100% - 40px));margin:64px auto 72px;display:grid;grid-template-columns:.9fr 1.1fr;align-items:start;gap:48px}
.public-eyebrow{display:inline-flex;padding:8px 13px;border-radius:999px;background:#e7f6f4;color:#08737b;font-size:12px;font-weight:750;letter-spacing:.03em;margin-bottom:24px}
.public-shop .hero-section,.login-story{background:linear-gradient(145deg,#0f2c46,#087f8c);color:#fff;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:28px;box-shadow:0 25px 60px rgba(16,35,63,.12)}
.public-shop .hero-section{padding:42px 34px!important;text-align:left}
.public-shop .hero-section:before,.login-story:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 110% -10%,rgba(255,255,255,.18),transparent 58%);animation:none;pointer-events:none}
.public-shop .hero-section>.container{padding:0;position:relative}
.public-shop .hero-section .public-eyebrow,.login-story .public-eyebrow{background:rgba(255,255,255,.1);color:#d5fcf5;border:1px solid rgba(255,255,255,.18)}
.public-shop .hero-title{font-size:clamp(29px,3.2vw,43px);line-height:1.15;letter-spacing:-1.4px;font-weight:800;text-shadow:none;margin:0 0 22px}
.public-shop .hero-subtitle{font-size:1rem;line-height:1.85;color:#d8eeee;opacity:1;margin-bottom:0;overflow-wrap:anywhere}
.public-story-divider{height:1px;background:rgba(255,255,255,.18);margin:32px 0 24px}
.public-story-feature{display:flex;align-items:center;gap:12px;margin:15px 0;font-size:.9rem;color:#e9faf7;position:relative}
.public-story-feature>i{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.12);flex:0 0 32px;color:#83e8d7}
.public-shop #forfaits{width:100%;padding:0;scroll-margin-top:105px}
.public-shop #forfaits>.row{margin:0}
.public-shop #forfaits>.row>.col-lg-6{width:100%;padding:0}
.public-shop .pricing-card{margin:0;background:#fff;padding:34px;border:1px solid var(--line)!important;border-radius:24px;box-shadow:var(--shadow-neon)!important;color:var(--ink);transform:none}
.public-shop .pricing-card:hover{transform:none}
.public-shop .pricing-card h2{font-size:1.15rem;line-height:1.5;font-weight:800;letter-spacing:-.3px;text-align:left!important;padding-bottom:22px;border-bottom:1px solid var(--line)}
.public-shop .pricing-card h2>i{color:var(--teal)}
.public-shop .form-label,.public-login .form-label{font-size:.88rem;font-weight:700;color:var(--ink)}
.public-shop .form-control-custom,.public-login .form-control{background:#fbfdfc;border:1px solid #cddedb;border-radius:12px;min-height:52px;padding:13px 15px;font-size:.95rem;color:var(--ink);box-shadow:none}
.public-shop select.form-control-custom{padding-right:38px}
.public-shop .form-control-custom:focus,.public-login .form-control:focus{background:#fff;border-color:var(--teal);box-shadow:0 0 0 4px rgba(7,131,141,.12)}
.public-shop .input-group-text,.public-login .input-group-text{background:#edf5f3;border:1px solid #cddedb;color:#08737b;font-size:.95rem;border-radius:12px;padding:0 15px}
.public-shop .input-group>.form-control,.public-login .input-group>.form-control{border-radius:0 12px 12px 0}
.public-login .input-group>.form-control:not(:last-child){border-radius:0}
.public-shop .form-text,.public-login .text-muted{color:var(--muted)!important;font-size:.83rem;line-height:1.65}
.public-shop .btn-primary-custom,.public-login .btn-primary-custom{width:100%;min-height:54px;padding:14px 20px;border-radius:12px;background:var(--gradient-primary);border:1px solid var(--teal);color:#fff;font-weight:750;font-size:.95rem;box-shadow:0 10px 25px rgba(7,131,141,.18);transition:background .2s,box-shadow .2s}
.public-shop .btn-primary-custom:before{display:none}
.public-shop .btn-primary-custom:hover,.public-login .btn-primary-custom:hover{background:#076f78;transform:none;box-shadow:0 12px 28px rgba(7,131,141,.23);color:#fff}
.public-shop .btn-outline-neon,.public-login .back-home-link{border:1px solid var(--line);background:#f7faf9;color:var(--ink);border-radius:12px;font-size:.88rem;padding:13px 18px;box-shadow:none;font-weight:650}
.public-shop .btn-outline-neon{display:flex;justify-content:center;align-items:center;width:100%;min-height:48px}
.public-shop .btn-outline-neon:hover,.public-login .back-home-link:hover{background:#e7f6f4;color:#08737b;border-color:#badfd9;transform:none;box-shadow:none}
.public-shop .footer{margin:0;background:#f7faf9;border-top:1px solid var(--line);padding:28px 0;color:var(--muted);backdrop-filter:none}
.public-shop .footer .text-white{color:var(--ink)!important;font-size:.88rem}
.public-shop .glow-text{color:var(--teal)!important;text-shadow:none;font-weight:750}
.public-login{display:block;overflow-x:hidden}
.login-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:stretch;width:min(1160px,calc(100% - 40px));margin:60px auto;min-height:600px}
.login-story{padding:52px 44px;display:flex;flex-direction:column;justify-content:center}
.login-story h1{font-size:clamp(36px,4vw,54px);line-height:1.08;letter-spacing:-2px;font-weight:800;position:relative;margin:0 0 24px}
.login-story h1 em{color:#79e2d4;font-style:normal}
.login-story p{color:#d8eeee;line-height:1.8;position:relative;font-size:1rem;margin-bottom:0}
.login-story .public-eyebrow{align-self:flex-start}
.public-login .login-card{width:100%;max-width:none;border:1px solid var(--line);border-radius:24px;padding:44px;background:#fff;box-shadow:0 18px 55px rgba(16,35,63,.07);align-self:center}
.public-login .login-header{text-align:left;margin-bottom:28px}
.public-login .login-header>i{display:grid;place-items:center;width:48px;height:48px;font-size:20px;border-radius:13px;color:var(--teal);background:#e8f7f5;margin-bottom:22px}
.public-login .login-header h2{color:var(--ink);font-size:30px;letter-spacing:-1px;font-weight:800;margin-bottom:10px}
.public-login .login-header p{line-height:1.7}
.public-login .login-card a{font-weight:650;text-decoration:none}
.public-login .login-card a:hover{text-decoration:underline}
.public-login .login-card .back-home-link{width:100%;margin-top:10px}
.public-login .form-control:disabled,.public-login .btn:disabled{opacity:.6;cursor:not-allowed}
@media(max-width:991.98px){.public-shop-main{grid-template-columns:1fr;max-width:700px;gap:26px;margin-top:32px}.public-shop .hero-section{padding:30px!important}.public-shop .hero-title{font-size:32px}.public-shop .hero-section .public-story-divider,.public-shop .hero-section .public-story-feature{display:none}.login-layout{gap:28px;grid-template-columns:1fr 1fr;min-height:0;margin:32px auto}.login-story{padding:32px 24px}.public-login .login-card{padding:30px}.login-story h1{font-size:36px}}
@media(max-width:767.98px){.login-layout{display:block;max-width:510px}.login-story{display:none}.public-login .login-card{padding:30px}.public-header-caption{font-size:.75rem}.public-login .login-card .d-flex{gap:12px;flex-wrap:wrap}}
@media(max-width:575.98px){.public-shop-main,.login-layout{width:calc(100% - 24px);margin-top:24px;margin-bottom:36px}.public-header-inner{width:calc(100% - 28px);min-height:72px}.public-header,.public-shop .navbar{min-height:72px}.public-brand{font-size:22px}.public-shop .navbar-brand{gap:8px;max-width:calc(100% - 60px)}.public-zone-name{max-width:140px;padding:6px 8px}.public-shop .hero-section{padding:28px 22px!important;border-radius:22px}.public-shop .hero-title{font-size:29px}.public-shop .pricing-card{padding:24px 20px;border-radius:22px}.public-login .login-card{padding:28px 22px}.public-shop .footer p:last-child{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}.public-shop .footer p:last-child a{margin-right:0!important}}
.public-shop .public-brand em{-webkit-text-fill-color:var(--teal)}
@media(prefers-reduced-motion:reduce){.public-shop *,.public-login *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Compact login by sizing its content, not browser zoom or clipped overflow. */
.public-login .public-header,.public-login .public-header-inner{min-height:68px}
.public-login .login-layout{width:min(1040px,calc(100% - 32px));min-height:0;margin:24px auto;gap:36px}
.public-login .login-story{padding:36px 32px}
.public-login .login-story h1{font-size:clamp(32px,3.5vw,46px);margin-bottom:18px}
.public-login .login-story p{font-size:.94rem;line-height:1.65}
.public-login .login-story .public-story-divider{margin:24px 0 18px}
.public-login .login-story .public-story-feature{margin:12px 0;font-size:.85rem}
.public-login .login-card{padding:28px 30px}
.public-login .login-header{margin-bottom:18px}
.public-login .login-header>i{width:38px;height:38px;font-size:17px;margin-bottom:14px}
.public-login .login-header h2{font-size:27px;margin-bottom:7px}
.public-login .login-header p{font-size:.85rem;line-height:1.5;margin-bottom:0}
.public-login .form-label{font-size:.83rem;margin-bottom:6px}
.public-login .form-control{min-height:44px;padding:10px 12px;font-size:.9rem}
.public-login .input-group-text{padding:0 12px;font-size:.9rem}
.public-login .login-card .mb-3{margin-bottom:14px!important}
.public-login .login-card .mb-4{margin-bottom:18px!important}
.public-login .login-card .mt-3{margin-top:12px!important}
.public-login .btn-primary-custom{min-height:46px;padding:11px 16px;font-size:.9rem}
.public-login .login-card .back-home-link{min-height:42px;padding:9px 14px;margin-top:0;font-size:.82rem}
.public-login .login-card .alert{padding:10px 12px;font-size:.85rem;line-height:1.5;margin-bottom:16px}
@media(max-width:767.98px){.public-login .login-layout{max-width:480px}.public-login .login-card{padding:26px 24px}}
@media(max-height:760px){.public-login .public-header,.public-login .public-header-inner{min-height:60px}.public-login .login-layout{margin:12px auto}.public-login .login-card{padding:22px 24px}.public-login .login-header{margin-bottom:14px}.public-login .login-header>i{display:none}.public-login .login-story{padding:28px}.public-login .login-story h1{font-size:38px}}
