.public-site {
    --public-gutter: clamp(32px, 2.5vw, 48px);
    --public-content-width: calc(100% - var(--public-gutter) - var(--public-gutter));
}

.public-site .qr-navbar--public :is(.qr-navbar-inner, .qr-navbar-mobile-menu) {
    padding-inline: var(--public-gutter);
}

.public-site .qr-navbar--public .qr-navbar-mobile-menu {
    max-width: none;
}

/* Match the contact heading's top anchor instead of centering the home copy by viewport height. */
@media (min-width: 901px) {
    .public-site { --public-heading-top: calc(5vw + 24px); }
    .public-site .home-hero { align-items: flex-start; }
    .public-site .home-hero-inner { padding-top: var(--public-heading-top); }
    .public-site .pricing-intro { padding-top: calc(var(--public-heading-top) - clamp(40px, 3.2vw, 60px)); }
    .public-site .pricing-intro h1 { margin-top: 0; }
}

@media (min-width: 1800px) {
    .public-site { --public-heading-top: 114px; }
}

@media (min-width: 901px) and (max-width: 1100px) {
    .public-site { --public-heading-top: 66px; }
    .public-site .pricing-intro { padding-top: 24px; }
}

/* Keep the shared edge alignment at the public navbar's existing scale. */
@media (min-width: 992px) {
    .public-site .qr-navbar--public :is(.qr-navbar-inner, .qr-navbar-mobile-menu) {
        padding-inline: calc(var(--public-gutter) / .9);
    }
}

@media (max-width: 900px) {
    .public-site { --public-gutter: 20px; }
}

@media (max-width: 480px) {
    .public-site { --public-gutter: 16px; }
}

/* One footer for the public marketing pages, independent of each page's styles. */
.public-footer {
    --footer-ink: #10104c;
    --footer-muted: #40369b;
    --footer-accent: #5834ff;
    --footer-gutter: clamp(32px, 4vw, 88px);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: linear-gradient(110deg, #fcfbff 0%, #faf9ff 60%, #f7f5ff 100%);
    color: var(--footer-ink);
    font: 400 15px/1.6 Inter, "Segoe UI", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}
.public-footer *, .public-footer *::before, .public-footer *::after { box-sizing: border-box; }
.public-footer .public-footer-wave { position: absolute; z-index: -1; height: auto; pointer-events: none; stroke: none; }
.public-footer .public-footer-wave--top { top: 0; left: 0; width: clamp(220px, 22vw, 420px); opacity: .6; }
.public-footer .public-footer-wave--bottom { right: 0; bottom: 0; width: clamp(200px, 20vw, 380px); opacity: .4; }
.public-footer-container { width: calc(100% - var(--footer-gutter) - var(--footer-gutter)); margin-inline: auto; }
.public-footer-main {
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) minmax(0, .9fr) minmax(0, .85fr) minmax(0, 1.25fr);
    grid-template-areas: "brand navigation support contact";
    gap: clamp(24px, 2.5vw, 48px);
    padding-block: clamp(48px, 3vw, 64px) 28px;
}
.public-footer-brand { grid-area: brand; min-width: 0; }
.public-footer-navigation { grid-area: navigation; min-width: 0; }
.public-footer-support { grid-area: support; min-width: 0; }
.public-footer-contact { grid-area: contact; min-width: 0; }
.public-footer a { color: inherit; text-decoration: none; }
.public-footer a:focus-visible { outline: 3px solid var(--footer-accent); outline-offset: 5px; border-radius: 4px; }
.public-footer .public-footer-logo { display: flex; align-items: center; width: fit-content; min-height: 44px; max-width: 100%; }
.public-footer-logo img { display: block; width: 240px; max-width: 100%; height: auto; }
.public-footer-description { max-width: 54ch; margin: 18px 0 0; color: var(--footer-muted); letter-spacing: -.01em; }
.public-footer-description-intro { display: block; }
.public-footer-social { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.public-footer .public-footer-social a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: #ebe6ff; color: var(--footer-accent); transition: background-color 150ms; }
.public-footer-social a > svg { width: 22px; height: 22px; }
.public-footer .public-footer-social-filled { fill: currentColor; stroke: none; }
.public-footer h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; min-height: 28px; font-size: 18px; line-height: 1.4; font-weight: 600; letter-spacing: -.02em; }
.public-footer-links { margin: 0; padding: 0; list-style: none; }
.public-footer-links a { display: flex; align-items: center; width: fit-content; max-width: 100%; min-height: 44px; padding-block: 6px; color: var(--footer-muted); letter-spacing: -.01em; }
.public-footer address { margin: 0; font-style: normal; }
.public-footer svg { width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.public-footer h2 > svg { width: 24px; height: 24px; color: var(--footer-accent); }
.public-footer .public-footer-contact-link { display: flex; align-items: center; gap: 10px; width: fit-content; max-width: 100%; min-height: 44px; padding-block: 6px; color: var(--footer-muted); letter-spacing: -.01em; }
.public-footer-contact-link > span { min-width: 0; overflow-wrap: anywhere; }
.public-footer-contact-link > svg { color: var(--footer-accent); }
.public-footer-map-label { color: var(--footer-accent); white-space: nowrap; }
.public-footer-map-label > svg { display: inline-block; margin-left: 5px; vertical-align: -.1em; }
.public-footer .public-footer-whatsapp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    max-width: 100%;
    min-height: 48px;
    margin-top: 16px;
    padding: 11px 16px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: linear-gradient(115deg, #4d22eb, #542aff);
    color: #fff;
    box-shadow: 0 5px 14px #5031de1a;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    transition: box-shadow 150ms, filter 150ms;
}
.public-footer-whatsapp > svg:first-child { width: 22px; height: 22px; }
.public-footer .public-footer-external { width: 14px; height: 14px; }
.public-footer-whatsapp > span { min-width: 0; }
.public-footer-bottom { display: flex; align-items: center; min-height: 62px; padding-block: 16px 20px; border-top: 1px solid #dfdaf5; color: var(--footer-muted); font-size: 13px; letter-spacing: -.01em; }
.public-footer-bottom p { margin: 0; }
.public-footer .public-footer-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (hover: hover) {
    .public-footer-links a:hover, .public-footer-contact-link:hover { color: var(--footer-accent); text-decoration: underline; text-underline-offset: 4px; }
    .public-footer .public-footer-whatsapp:hover { filter: brightness(.94); box-shadow: 0 7px 18px #5031de26; }
    .public-footer .public-footer-social a:hover { background: #ddd4ff; }
}
@media (max-width: 1200px) {
    .public-footer-main { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr); grid-template-areas: "brand brand brand" "navigation support contact"; gap: 28px; padding-top: 48px; }
    .public-footer-description { max-width: 64ch; }
}
@media (max-width: 900px) {
    .public-footer { --footer-gutter: 20px; }
}
@media (max-width: 760px) {
    .public-footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "brand brand" "navigation support" "contact contact"; }
}
@media (max-width: 600px) {
    .public-footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "brand brand" "navigation support" "contact contact"; gap: 24px 20px; padding-block: 32px 24px; }
    .public-footer-logo img { width: 210px; }
    .public-footer-description { max-width: 48ch; margin-top: 16px; }
    .public-footer h2 { gap: 8px; min-height: 26px; margin-bottom: 8px; font-size: 17px; }
    .public-footer h2 > svg { width: 22px; height: 22px; }
    .public-footer-links a { font-size: 14px; }
}
@media (max-width: 480px) {
    .public-footer { --footer-gutter: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .public-footer .public-footer-whatsapp, .public-footer .public-footer-social a { transition: none; }
}
