/* Public website only. See AppDocs/Client/PUBLIC-DESIGN-SYSTEM.md.
   Keep subscriber dashboards and their compact data controls outside this scope. */
.public-site {
    --public-ink: #111827;
    --public-text: #4b5563;
    --public-teal: #0e7490;
    --public-red: #ad1f23;
    font-family: Inter, system-ui, sans-serif;
    color: var(--public-ink);
}
.public-site :is(h1, h2, h3, h4) {
    font-weight: 500;
    text-wrap: balance;
    letter-spacing: -.025em;
}
.public-site .public-title {
    font-size: 2rem;
    line-height: 1.18;
    font-weight: 500;
}
.public-site .public-title-compact { font-size: 1.75rem; line-height: 1.25; }
.public-site .public-title-legal, .public-site .public-newsletter-title { font-size: 1.5rem; }
.public-site .public-compact-card-title { font-size: 1rem !important; line-height: 1.5; }
.public-site .public-title-long { max-width: 56rem; }
.public-site .public-section-title { font-size: 1.65rem; line-height: 1.25; }
.public-site .public-card-title { font-size: 1.125rem; line-height: 1.45; }
.public-site .public-card .flex:has(> .public-card-title) { flex-wrap: wrap; }
.public-site .public-card .flex > .public-card-title { flex: 1 1 13rem; }
.public-site .public-keep { display: inline-block; white-space: nowrap; }
.public-site .public-eyebrow {
    display: inline-block;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--public-teal);
    font-size: .75rem;
    line-height: 1.5;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.public-site .public-tag {
    border-radius: .375rem;
    padding: .25rem .625rem;
    font-size: .75rem;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0;
    text-transform: none;
}
.public-site :is(a, button) { font-weight: 400; }
.public-site :is(a, button).bg-primary {
    background-color: var(--public-teal);
    border-radius: .5rem;
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    font-size: .875rem;
    transform: none;
}
.public-site :is(a, button).bg-primary:hover { background-color: #155e75; }
.public-site :is(a, button).public-cta { background-color: var(--public-red); color: white; }
.public-site :is(a, button).public-cta:hover { background-color: #8a1a1d; }
.public-site button:disabled { cursor: not-allowed; }
.public-site button.bg-primary:disabled { background-color: #d1d5db; color: #374151; }
.public-site :is(a.text-primary, button.text-primary) { color: var(--public-teal); }
.public-site :is(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 2px solid var(--public-teal) !important;
    outline-offset: 3px !important;
}
/* FocusOnNavigate focuses the H1 for route announcements; it is not a control. */
.public-site h1[tabindex="-1"]:focus { outline: none !important; }
.public-site :is(footer, .bg-gray-900, .bg-primary-dark) :is(a, button):focus-visible {
    outline-color: #fff !important;
}
.public-site input:not([type=checkbox]):not([type=radio]),
.public-site select, .public-site textarea { font-size: 1rem; border-radius: .5rem; }
.public-site header img { height: 1.25rem; width: auto; }
.public-site header :is(a, button).bg-primary { min-width: 6rem; padding-inline: 1.5rem; }
.public-site header > div { padding-left: 1.25rem; padding-right: 1.25rem; }
.public-site .public-campaign-header { flex-wrap: wrap; gap: 1rem; }
.public-site .public-campaign-actions { flex-wrap: wrap; }
.public-site .public-campaign-actions a { min-height: 2.75rem; }
.public-site .public-hero { padding-top: 3rem; padding-bottom: 2rem; }
.public-site .public-section { padding-top: 3rem; padding-bottom: 3rem; }
.public-site .public-surface { background: #f9fafb; }
.public-site .public-enquiry { background: #eef5f7; color: var(--public-ink); }
.public-site .public-channel-band { background: #eef5f7; color: var(--public-ink); }
.public-site .public-channel-card { border-color: #8ca7b2; }
.public-site .public-channel-detail { border-color: #c5d6dd; color: var(--public-text); }
.public-site .public-surface > .absolute.inset-0 { background: transparent; }
.public-site .public-card { border-radius: .75rem; border-color: #e5e7eb; }
.public-site :is(.shadow-corporate, .shadow-corporate-hover) {
    box-shadow: 0 1px 3px rgb(17 24 39 / .06);
}
.public-site :is(.ai-card, .data-card, .method-card, .feature-card, .dataset-card, .newsletter-card, .team-card) {
    opacity: 1;
    transform: none;
    transition: border-color .15s ease;
}
.public-site .flow-step { opacity: 1; transform: none; }
.public-site .map-dot { animation: none; }
.public-site .public-utility-title { font-size: 1.75rem; line-height: 1.25; }
.public-site .public-reading { max-width: 64rem; }
.public-site .public-reading :is(p, ul, ol) { line-height: 1.75; }
.public-site .public-reading h2 { border-bottom-width: 1px; }
.public-site .public-integration-image { width: 100%; max-width: 42rem; height: auto; }
.public-site :is(.public-footer, .public-blue-panel) { background: var(--public-teal); }
.public-site .public-footer img { height: 1.5rem; width: auto; }
.public-site .public-footer a { min-height: 2.75rem; display: inline-flex; align-items: center; }
@media (min-width: 640px) {
    .public-site .public-title { font-size: 3rem; }
    .public-site .public-title-compact { font-size: 1.875rem; }
    .public-site .public-section-title { font-size: 2.25rem; }
    .public-site .public-card-title { font-size: 1.125rem; }
    .public-site .public-hero { padding-top: 5rem; }
    .public-site .public-section { padding-top: 4rem; padding-bottom: 4rem; }
    .public-site header > div { padding-left: 2rem; padding-right: 2rem; }
    .public-site header img { height: 1.5rem; }
}
@media (max-width: 359px) {
    .public-site .public-booking-day { font-size: .875rem; line-height: 1.5; }
}
@media (min-width: 1280px) {
    .public-site .public-title:not(.public-title-compact):not(.public-title-long) { font-size: 3.375rem; }
}
@media (max-width: 639px) {
    .public-site .public-card.p-8 { padding: 1.5rem; }
    .public-site .public-section > :is(.px-6, .px-8),
    .public-site .public-hero > :is(.px-6, .px-8) { padding-left: 1.25rem; padding-right: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .public-site *, .public-site *::before, .public-site *::after {
        scroll-behavior: auto !important;
        transition-duration: 0s !important;
        animation-duration: 0s !important;
    }
}
