/* Standalone footer skin. Shared homepage content alignment, no vendor overrides. */
.sp-footer {
    --sp-bg: #1b181e;
    --sp-text: #f7f3f8;
    --sp-muted: #c4bdc9;
    --sp-line: #ffffff24;
    --sp-accent: #e1c9ed;
    background: radial-gradient(ellipse at 5% 12%, #76499816, transparent 48%), var(--sp-bg);
    color: var(--sp-text);
    border-top: 1px solid var(--sp-line);
    font-size: 14px;
    line-height: 1.6;
    text-align: start;
}
.sp-footer *, .sp-footer *::before, .sp-footer *::after { box-sizing: border-box; }
.sp-footer__container { width: 100%; max-width: 1840px; margin-inline: auto; padding-inline: clamp(24px, 4vw, 72px); }
.sp-footer ul { list-style: none; margin-block: 0; padding: 0; }
.sp-footer p { color: var(--sp-muted); margin: 0; }
.sp-footer a { color: inherit; text-decoration: none; transition: color 180ms, background-color 180ms, transform 180ms; }
.sp-footer a:hover { color: var(--sp-accent); }
.sp-footer :is(a, button, input):focus-visible { outline: 2px solid var(--sp-accent); outline-offset: 5px; }
.sp-footer button, .sp-footer input { font: inherit; }
.sp-footer [hidden] { display: none; }
.sp-footer__reassurance { background: #f5f1f7; color: #302735; }
.sp-footer ul.sp-footer__benefits { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding: 25px clamp(24px, 4vw, 72px); }
.sp-footer__benefits li { display: flex; align-items: center; gap: 14px; }
.sp-footer__benefits svg { width: 26px; height: 26px; flex-shrink: 0; color: var(--primary-color, #764998); stroke-width: 1.4; }
.sp-footer__benefits strong, .sp-footer__benefits span { display: block; }
.sp-footer__benefits strong { font-size: 14px; font-weight: 600; }
.sp-footer__benefits span { font-size: 12px; color: #665a6d; margin-top: 2px; }
.sp-footer__main { padding-top: 54px; }
.sp-footer__intro { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 8vw, 140px); align-items: start; }
.sp-footer__brand, .sp-footer__newsletter { min-width: 0; }
.sp-footer__logo { display: inline-flex; max-width: 100%; min-height: 72px; align-items: center; }
.sp-footer__logo img { width: 320px; height: 64px; max-width: 100%; object-fit: contain; object-position: left center; }
.sp-footer__wordmark { display: block; font-size: clamp(30px, 3vw, 42px); font-weight: 400; letter-spacing: -.055em; line-height: .98; }
.sp-footer__wordmark > span { display: block; font-size: .68em; font-weight: 300; letter-spacing: .23em; margin-top: 9px; text-transform: uppercase; }
.sp-footer p.sp-footer__signature { color: var(--sp-accent); font-size: 13px; margin-top: 22px; }
.sp-footer p.sp-footer__description { max-width: 390px; margin-top: 9px; font-size: 14px; }
.sp-footer__discover { display: inline-flex; gap: 24px; align-items: center; min-height: 44px; border-bottom: 1px solid #b9a1c1; margin-top: 12px; font-weight: 500; }
.sp-footer__discover span { font-size: 22px; }
.sp-footer__eyebrow { color: var(--sp-accent); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }
.sp-footer__newsletter h2 { font-size: clamp(22px, 2.1vw, 30px); font-weight: 500; letter-spacing: -.035em; color: var(--sp-text); line-height: 1.25; margin: 10px 0 12px; }
.sp-footer__newsletter > p { font-size: 13px; }
.sp-footer__form { margin-top: 18px; }
.sp-footer__input-row { display: flex; align-items: flex-start; gap: 8px; padding: 5px; background: #ffffff09; border: 1px solid #95879d; border-radius: 8px; }
.sp-footer input.sp-footer__email { display: block; width: 100%; min-width: 0; height: 44px; padding: 10px; color: var(--sp-text); background: transparent; border: 0; border-radius: 4px; box-shadow: none; }
.sp-footer__email::placeholder { color: var(--sp-muted); opacity: 1; }
.sp-footer__submit { min-height: 44px; padding: 10px 18px; background: var(--sp-accent); color: #251b2b; border: 0; border-radius: 5px; font-weight: 600; cursor: pointer; white-space: nowrap; transition: background 180ms; }
.sp-footer__submit:hover { background: #f2e3fa; }
.sp-footer__submit:disabled { opacity: .65; cursor: wait; }
.sp-footer p.sp-footer__status { min-height: 25px; font-size: 12px; padding-top: 4px; color: #d4eccf; }
.sp-footer p.sp-footer__status:empty { min-height: 0; padding-top: 0; }
.sp-footer p.sp-footer__status[data-error] { color: #ffcbc8; }
.sp-footer p.sp-footer__consent { max-width: 560px; margin-block: 8px 24px; font-size: 11px; line-height: 1.7; }
.sp-footer__consent a { text-decoration: underline; text-underline-offset: 3px; }
.sp-footer__socials { display: flex; align-items: center; gap: 18px; margin: 26px 0; color: var(--sp-muted); font-size: 12px; }
.sp-footer__socials ul { display: flex; flex-wrap: wrap; gap: 8px; }
.sp-footer__socials a { display: grid; place-items: center; border: 1px solid var(--sp-line); border-radius: 50%; width: 44px; height: 44px; background: #ffffff06; color: var(--sp-text); font-size: 19px; }
.sp-footer__socials a:hover { transform: translateY(-2px); background: #ffffff12; }
.sp-footer__socials .icon-tiktok { filter: grayscale(1) brightness(0) invert(1); background-size: contain; }
.sp-footer__navigation { border-top: 1px solid var(--sp-line); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; padding-block: 30px; }
.sp-footer__nav h2 { font-size: 15px; font-weight: 600; color: var(--sp-text); margin: 0 0 12px; line-height: 1.4; }
.sp-footer__nav li a { display: inline-flex; align-items: center; min-height: 32px; color: var(--sp-muted); font-size: 13px; overflow-wrap: anywhere; }
.sp-footer__nav li a:hover { color: var(--sp-accent); transform: translateX(3px); }
.sp-footer__toggle { display: none; }
.sp-footer__service { display: flex; align-items: center; justify-content: space-between; gap: 30px; border-top: 1px solid var(--sp-line); padding-block: 24px; }
.sp-footer__contact { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 20px; max-width: 670px; min-width: 0; }
.sp-footer__contact strong { font-size: 15px; }
.sp-footer__contact a { font-size: 13px; }
.sp-footer__contact :is(.sp-footer__email-link, span) { color: var(--sp-muted); font-size: 12px; overflow-wrap: anywhere; }
.sp-footer__payments { flex: 0 0 344px; width: 344px; max-width: 100%; }
.sp-footer__payments > strong { display: block; font-size: 13px; font-weight: 500; }
.sp-footer__payments ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.sp-footer__payments .sp-footer__payment { display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 50px; background: #fff; border: 1px solid #ffffff24; border-radius: 7px; overflow: hidden; color: #251b2b; }
.sp-footer__payments .sp-footer__payment--installments { grid-column: span 2; gap: 4px; padding-inline: 6px; }
.sp-footer__payments img { display: block; flex-shrink: 0; width: 76px; max-width: 100%; height: 48px; object-fit: contain; }
.sp-footer__payment--installments img { width: 70px; }
.sp-footer__payment--installments img[alt="PayPal"] { width: 40px; }
.sp-footer__payment-name { font-size: 12px; font-weight: 600; }
.sp-footer__payment-fallback { font-size: 12px; font-weight: 600; }
.sp-footer__installments { display: inline-flex; align-items: baseline; gap: 1px; padding-inline-start: 8px; border-inline-start: 1px solid #ddd5e2; font-size: 20px; line-height: 1; font-weight: 600; white-space: nowrap; }
.sp-footer__installments > span { font-size: 15px; font-weight: 500; }
.sp-footer__processor { display: flex; align-items: center; gap: 8px; margin-top: 12px; color: var(--sp-muted); font-size: 11px; }
.sp-footer__processor img { width: 57px; height: 36px; border-radius: 4px; }
.sp-footer__payments small { display: block; color: var(--sp-muted); font-size: 10px; line-height: 1.6; margin-top: 8px; }
.sp-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-block: 14px; border-top: 1px solid var(--sp-line); }
.sp-footer__bottom p { font-size: 11px; }
.sp-footer__top { display: inline-flex; gap: 12px; align-items: center; min-height: 44px; font-size: 11px; }
.sp-footer__top span { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--sp-line); border-radius: 50%; font-size: 20px; }
.sp-footer__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 1199.98px) {
    .sp-footer ul.sp-footer__benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
    .sp-footer__intro { gap: 40px; }
    .sp-footer__navigation { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sp-footer__service { align-items: start; }
}
@media (max-width: 767.98px) {
    .sp-footer__container { padding-inline: 24px; }
    .sp-footer ul.sp-footer__benefits { gap: 20px 14px; padding: 24px; }
    .sp-footer__benefits li { align-items: start; gap: 9px; }
    .sp-footer__benefits svg { width: 20px; height: 20px; }
    .sp-footer__benefits strong { font-size: 12px; line-height: 1.4; }
    .sp-footer__benefits span { font-size: 11px; line-height: 1.5; }
    .sp-footer__main { padding-top: 36px; }
    .sp-footer__intro { grid-template-columns: minmax(0, 1fr); gap: 34px; }
    .sp-footer__wordmark { font-size: 36px; }
    .sp-footer__newsletter h2 { font-size: 25px; }
    .sp-footer__submit { padding-inline: 12px; font-size: 12px; }
    .sp-footer input.sp-footer__email { font-size: 16px; padding-inline: 6px; }
    .sp-footer__socials { margin-block: 25px; flex-wrap: wrap; gap: 12px; }
    .sp-footer__navigation { display: block; padding-block: 0; border-top: 0; }
    .sp-footer__nav { border-top: 1px solid var(--sp-line); }
    .sp-footer__nav h2 { margin: 0; }
    .sp-footer__nav ul { padding-bottom: 18px; }
    .sp-footer__nav li a { min-height: 44px; font-size: 14px; }
    .sp-footer__desktop-title { display: block; padding-block: 18px; }
    .sp-footer--enhanced .sp-footer__desktop-title { display: none; }
    .sp-footer--enhanced .sp-footer__toggle { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 58px; background: transparent; border: 0; color: var(--sp-text); padding: 14px 0; font-weight: 500; text-align: start; gap: 15px; }
    .sp-footer__toggle span { font-size: 24px; font-weight: 300; transition: transform 180ms; }
    .sp-footer__toggle[aria-expanded="true"] span { transform: rotate(45deg); }
    .sp-footer__nav ul:not([hidden]) { animation: sp-footer-reveal 180ms ease-out; }
    .sp-footer__service { flex-direction: column; gap: 26px; padding-block: 26px; }
    .sp-footer__contact { gap: 8px; flex-direction: column; align-items: start; }
    .sp-footer__payments { width: 100%; flex-basis: auto; }
    .sp-footer__bottom { align-items: start; flex-direction: column; gap: 5px; padding-block: 20px; }
}
@keyframes sp-footer-reveal { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .sp-footer *, .sp-footer *::before, .sp-footer *::after { animation: none; transition: none; } }

@media (min-width: 768px) {
    .sp-footer__main { padding-top: 42px; }
    .sp-footer__intro { gap: 0 clamp(40px, 8vw, 140px); }
    .sp-footer__socials { margin-block: 16px 22px; }
    .sp-footer__navigation { padding-block: 24px; }
    .sp-footer__service { padding-block: 20px; }
}
@media (min-width: 1200px) {
    .sp-footer__main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(40px, 8vw, 140px); padding-top: 36px; }
    .sp-footer__intro { display: contents; }
    .sp-footer__brand { grid-column: 1; grid-row: 1; }
    .sp-footer__newsletter { grid-column: 2; grid-row: 1 / span 2; }
    .sp-footer__socials { grid-column: 1; grid-row: 2; margin-block: 14px 20px; }
    .sp-footer__navigation, .sp-footer__service, .sp-footer__bottom { grid-column: 1 / -1; }
    .sp-footer__wordmark { font-size: 34px; }
    .sp-footer p.sp-footer__signature { margin-top: 12px; }
    .sp-footer p.sp-footer__description { margin-top: 5px; line-height: 1.6; }
    .sp-footer__discover { margin-top: 6px; }
    .sp-footer__nav li a { min-height: 28px; }
    .sp-footer__navigation { padding-block: 20px; }
    .sp-footer__service { padding-block: 16px; }
    .sp-footer__bottom { padding-block: 8px; }
}
@media (max-width: 359.98px) {
    .sp-footer__input-row { display: grid; grid-template-columns: minmax(0, 1fr); }
    .sp-footer .g-recaptcha { width: 304px; transform: scale(.85); transform-origin: top left; margin-bottom: -11px; }
}

@media (min-width: 1200px) {
    .sp-footer__payments { flex-basis: 600px; width: 600px; }
    .sp-footer__payments ul { grid-template-columns: repeat(8, minmax(0, 1fr)); }
    .sp-footer__payments small { max-width: 560px; }
}

/* Keep injected validation feedback inside the flexible field, never beside it. */
.sp-footer__email-field { flex: 1 1 0%; min-width: 0; }
.sp-footer__input-row:focus-within { border-color: var(--sp-accent); outline: 2px solid var(--sp-accent); outline-offset: 2px; }
.sp-footer input.sp-footer__email:focus,
.sp-footer input.sp-footer__email:focus-visible { outline: none; box-shadow: none; }
.sp-footer__submit { flex: 0 0 auto; }
.sp-footer__form .invalid-feedback { width: 100%; color: #ffcbc8; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.sp-footer__email-field .invalid-feedback { padding: 0 10px 7px; margin-top: 2px; }
.sp-footer__form > .mb-3 { margin-top: 16px; }
.sp-footer__form .form-label { display: block; color: var(--sp-muted); font-size: 13px; line-height: 1.6; }
.sp-footer__form .form-control { background-color: #ffffff09; color: var(--sp-text); border-color: #95879d; }
.sp-footer__form .form-control::placeholder { color: var(--sp-muted); opacity: 1; }
.sp-footer__form .form-control.is-invalid { border-color: #ffcbc8; }
.sp-footer__input-row .sp-footer__submit:focus-visible { outline-color: #35233f; outline-offset: -4px; }
@media (max-width: 767.98px) {
    .sp-footer__form .form-control { font-size: 16px; }
}
