/* Scoped styles keep the consent interface independent of the storefront theme. */
.pet101-consent-banner,
.pet101-consent-overlay,
.pet101-consent-preferences {
    box-sizing: border-box;
    color: #172c22;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
}
.pet101-consent-banner *,
.pet101-consent-overlay * { box-sizing: border-box; }
.pet101-consent-banner[hidden],
.pet101-consent-overlay[hidden],
.pet101-consent-preferences[hidden] { display: none !important; }
.pet101-consent-banner {
    position: fixed;
    z-index: 2147483000;
    right: 20px;
    bottom: 20px;
    left: 20px;
    display: flex;
    align-items: center;
    gap: 24px;
    width: auto;
    max-width: 1280px;
    max-height: calc(100vh - 40px);
    margin: 0 auto;
    overflow: auto;
    padding: 22px 24px;
    border: 1px solid #cbd7cf;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 32px rgb(0 0 0 / 20%);
}
.pet101-consent-copy { flex: 1 1 480px; }
.pet101-consent-title {
    margin: 0 0 8px;
    padding: 0;
    color: #172c22;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.3;
    text-transform: none;
    letter-spacing: normal;
}
.pet101-consent-banner p,
.pet101-consent-dialog p {
    margin: 0 0 10px;
    padding: 0;
    color: #34483e;
    font-size: 14px;
    line-height: 1.55;
}
.pet101-consent-privacy,
.pet101-consent-privacy:visited {
    color: #155837;
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.pet101-consent-privacy:hover { color: #0a3c23; }
.pet101-consent-actions {
    display: flex;
    flex: 1 1 480px;
    align-items: stretch;
    gap: 8px;
}
.pet101-consent-button,
.pet101-consent-button:visited,
.pet101-consent-preferences {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    margin: 0;
    padding: 10px 14px;
    border: 1px solid #1d5c3d;
    border-radius: 6px;
    background: #f2f7f3;
    color: #143f2a;
    box-shadow: none;
    cursor: pointer;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
    text-transform: none;
    letter-spacing: normal;
    white-space: normal;
}
.pet101-consent-button { flex: 1 1 0; }
.pet101-consent-button:hover,
.pet101-consent-preferences:hover { border-color: #143f2a; background: #e0eee4; color: #143f2a; }
.pet101-consent-button:active,
.pet101-consent-preferences:active { background: #d3e6d9; color: #143f2a; }
.pet101-consent-banner :focus-visible,
.pet101-consent-overlay :focus-visible,
.pet101-consent-preferences:focus-visible {
    outline: 3px solid #245bbb;
    outline-offset: 3px;
}
.pet101-consent-preferences {
    position: fixed;
    z-index: 2147482999;
    bottom: max(12px, env(safe-area-inset-bottom));
    left: 12px;
    min-height: 40px;
    padding: 8px 12px;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 2px 10px rgb(0 0 0 / 14%);
    font-size: 13px;
}
.pet101-consent-overlay {
    position: fixed;
    z-index: 2147483001;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    overflow: auto;
    overscroll-behavior: contain;
    background: rgb(11 25 17 / 65%);
}
.pet101-consent-dialog {
    position: relative;
    width: 100%;
    max-width: 620px;
    max-height: calc(100vh - 40px);
    max-height: calc(100dvh - 40px);
    overflow: auto;
    padding: 24px;
    border: 1px solid #cbd7cf;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 12px 48px rgb(0 0 0 / 30%);
}
.pet101-consent-dialog-header { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.pet101-consent-dialog-header .pet101-consent-title { margin-top: 4px; }
.pet101-consent-close {
    display: inline-flex;
    flex: 0 0 36px;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin: -4px -4px 0 0;
    padding: 0;
    border: 1px solid #9cafa2;
    border-radius: 6px;
    background: #fff;
    color: #172c22;
    cursor: pointer;
    font-family: inherit;
    font-size: 26px;
    font-weight: 400;
    line-height: 1;
}
.pet101-consent-close:hover { background: #edf4ef; color: #172c22; }
.pet101-consent-category {
    margin: 14px 0;
    padding: 14px;
    border: 1px solid #cbd7cf;
    border-radius: 8px;
    background: #f8faf8;
}
.pet101-consent-category-label {
    display: flex;
    align-items: start;
    gap: 10px;
    margin: 0;
    color: #172c22;
    cursor: pointer;
    font-size: 15px;
    font-weight: 700;
}
.pet101-consent-category input[type="checkbox"] {
    appearance: auto;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    margin: 2px 0 0;
    padding: 0;
    accent-color: #1d5c3d;
    cursor: pointer;
}
.pet101-consent-category input:disabled { cursor: default; }
.pet101-consent-dialog .pet101-consent-category-description { margin: 7px 0 0 30px; }
.pet101-consent-dialog-actions { margin-top: 20px; }
@media (max-width: 1000px) {
    .pet101-consent-banner { flex-direction: column; align-items: stretch; gap: 16px; }
    .pet101-consent-copy,
    .pet101-consent-actions { flex-basis: auto; }
}
@media (max-width: 560px) {
    .pet101-consent-banner {
        right: 10px;
        bottom: max(10px, env(safe-area-inset-bottom));
        left: 10px;
        max-height: calc(100vh - 20px);
        max-height: calc(100dvh - 20px);
        padding: 18px;
    }
    .pet101-consent-actions { flex-direction: column; }
    .pet101-consent-button { flex-basis: auto; width: 100%; min-height: 44px; }
    .pet101-consent-overlay { align-items: center; padding: 10px; }
    .pet101-consent-dialog { max-height: calc(100vh - 20px); max-height: calc(100dvh - 20px); padding: 18px; }
    .pet101-consent-title { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .pet101-consent-banner *,
    .pet101-consent-overlay *,
    .pet101-consent-preferences { scroll-behavior: auto; transition: none; animation: none; }
}
