:root {
    --public-blue: #0a2a43;
    --public-blue-2: #103d5f;
    --public-teal: #1ba6a6;
    --public-teal-dark: #138989;
    --public-ink: #182630;
    --public-muted: #5f6f7b;
    --public-soft: #f3f7f8;
    --public-border: #dce6e9;
    --public-white: #fff;
    --public-radius: 18px;
    --public-shadow: 0 24px 70px rgba(10, 42, 67, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.public-body { margin: 0; min-height: 100vh; color: var(--public-ink); background: var(--public-white); font-family: Inter, "Segoe UI", Arial, sans-serif; }
a { color: inherit; }
.public-skip-link { position: fixed; left: 16px; top: -60px; z-index: 2000; padding: 10px 16px; background: var(--public-blue); color: #fff; border-radius: 8px; }
.public-skip-link:focus { top: 12px; }

.public-header { position: sticky; top: 0; z-index: 1030; background: rgba(255, 255, 255, .96); border-bottom: 1px solid rgba(220, 230, 233, .9); backdrop-filter: blur(14px); }
.public-nav-container { min-height: 78px; gap: 22px; }
.public-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--public-blue); font-size: 22px; font-weight: 800; letter-spacing: -.6px; text-decoration: none; }
.public-brand > span:last-child > span { color: var(--public-teal); }
.public-brand-mark { display: inline-grid; place-items: center; width: 39px; height: 39px; border-radius: 12px 12px 12px 4px; background: linear-gradient(145deg, var(--public-teal), #147f8f); color: #fff; box-shadow: 0 9px 22px rgba(27,166,166,.25); }
.public-desktop-navigation { min-width: 0; flex: 1 1 auto; display: flex; align-items: center; }
.public-desktop-navigation .public-nav-links { min-width: 0; flex: 1 1 auto; flex-direction: row; flex-wrap: nowrap; justify-content: center; }
.public-desktop-navigation .public-nav-links .nav-item { flex: 0 0 auto; }
.public-desktop-navigation .public-nav-links .nav-link { white-space: nowrap; }
.public-mobile-navigation { display: none; }
.public-nav-body { display: flex; align-items: center; width: 100%; padding: 0; }
.public-mobile-nav-header, .public-mobile-nav-intro, .public-mobile-nav-footer { display: none; }
.public-nav-links { gap: 3px; }
.public-nav-links .nav-link { display: flex; align-items: center; padding: 12px 10px !important; color: #334854; font-size: 14px; font-weight: 650; border-radius: 8px; }
.public-nav-links .nav-link > i, .public-nav-links .nav-link small { display: none; }
.public-nav-links .nav-link strong { font: inherit; }
.public-nav-links .nav-link:hover, .public-nav-links .nav-link:focus { color: var(--public-teal-dark); background: #eefafa; }
.public-nav-links .nav-link.active { color: var(--public-teal-dark); background: #eefafa; }
.public-nav-actions { display: flex; align-items: center; gap: 13px; }
.public-nav-actions form { margin: 0; }
.public-account-link { display: inline-flex; align-items: center; gap: 7px; color: var(--public-blue); text-decoration: none; font-weight: 700; font-size: 14px; white-space: nowrap; }
.public-nav-toggle { display: none; width: 46px; height: 46px; padding: 11px; border: 1px solid #cfe0e3; border-radius: 14px; background: linear-gradient(145deg, #fff, #eef8f8); box-shadow: 0 8px 22px rgba(10,42,67,.08); }
.public-nav-toggle span { display: block; width: 100%; height: 2px; margin: 4px 0; border-radius: 3px; background: var(--public-blue); transition: transform .2s ease, width .2s ease; }
.public-nav-toggle span:nth-child(2) { width: 70%; margin-left: auto; background: var(--public-teal); }
.public-nav-toggle[aria-expanded="true"] span:first-child { transform: translateY(6px) rotate(45deg); }
.public-nav-toggle[aria-expanded="true"] span:nth-child(2) { width: 0; }
.public-nav-toggle[aria-expanded="true"] span:last-child { transform: translateY(-6px) rotate(-45deg); }

.public-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: 11px 19px; border: 1px solid transparent; border-radius: 11px; font-weight: 750; font-size: 15px; line-height: 1.2; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; cursor: pointer; }
.public-btn:hover { transform: translateY(-1px); }
.public-btn:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.public-btn-primary { color: #fff; background: var(--public-teal); box-shadow: 0 10px 24px rgba(27,166,166,.22); }
.public-btn-primary:hover { color: #fff; background: var(--public-teal-dark); }
.public-btn-secondary { color: var(--public-blue); background: #fff; border-color: #bfcfd5; }
.public-btn-secondary:hover { color: var(--public-teal-dark); border-color: var(--public-teal); box-shadow: 0 10px 28px rgba(10,42,67,.08); }
.public-btn-lg { min-height: 52px; padding: 14px 23px; }
.public-btn-block { width: 100%; }
.public-btn-light { color: var(--public-blue); background: #fff; }
.public-btn-light:hover { color: var(--public-blue); background: #effafa; }
.public-btn-outline-light { color: #fff; border-color: rgba(255,255,255,.55); background: transparent; }
.public-btn-outline-light:hover { color: var(--public-blue); background: #fff; }
.public-link-button { padding: 0; color: var(--public-teal-dark); background: none; border: 0; font: inherit; font-weight: 700; cursor: pointer; }

.public-hero { position: relative; overflow: hidden; padding: 94px 0 88px; background: radial-gradient(circle at 80% 20%, rgba(27,166,166,.15), transparent 30%), linear-gradient(135deg, #f8fbfb, #fff 56%, #eef8f8); }
.public-hero::before { content: ""; position: absolute; width: 380px; height: 380px; left: -220px; top: -180px; border-radius: 50%; border: 70px solid rgba(27,166,166,.06); }
.public-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 72px; }
.public-eyebrow { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 15px; color: var(--public-teal-dark); font-size: 13px; font-weight: 850; letter-spacing: .085em; text-transform: uppercase; }
.public-eyebrow-light { color: #bdeeee; }
.public-hero h1 { max-width: 720px; margin: 0 0 22px; color: var(--public-blue); font-size: clamp(42px, 5vw, 66px); line-height: 1.05; letter-spacing: -.045em; font-weight: 850; }
.public-hero-copy > p { max-width: 650px; margin: 0 0 30px; color: var(--public-muted); font-size: 19px; line-height: 1.65; }
.public-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.public-hero-proof { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 26px; color: #4f6570; font-size: 13px; font-weight: 650; }
.public-hero-proof i { margin-right: 4px; color: var(--public-teal); }
.public-hero-visual { position: relative; min-height: 470px; display: grid; place-items: center; }
.public-orbit { position: absolute; border-radius: 50%; border: 1px solid rgba(27,166,166,.24); }
.public-orbit-one { width: 440px; height: 440px; }
.public-orbit-two { width: 340px; height: 340px; border-style: dashed; }
.public-pet-card { position: relative; z-index: 2; width: min(390px, 88%); padding: 28px; border: 1px solid rgba(255,255,255,.7); border-radius: 24px; background: rgba(255,255,255,.93); box-shadow: var(--public-shadow); transform: rotate(-2deg); }
.public-pet-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; }
.public-pet-avatar { display: grid; place-items: center; width: 66px; height: 66px; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #113e5f, var(--public-blue)); font-size: 25px; }
.public-pet-avatar svg { width: 43px; height: 43px; fill: #fff; }
.public-pet-avatar svg circle { fill: var(--public-blue); }
.public-pet-avatar .public-dog-detail { fill: var(--public-teal); }
.public-status-pill { display: inline-flex; gap: 6px; align-items: center; padding: 8px 11px; border-radius: 999px; color: #157056; background: #e9f8f2; font-size: 12px; font-weight: 800; }
.public-pet-line { width: 47%; height: 9px; margin: 9px 0; border-radius: 9px; background: #dae5e8; }
.public-pet-line-lg { width: 68%; height: 13px; background: #abc2c9; }
.public-id-card, .public-visual-code-card { margin-top: 22px; padding: 15px 17px; border-radius: 13px; background: #f1f6f7; }
.public-visual-code-card { margin-top: 10px; background: #e9f8f8; }
.public-id-card span, .public-visual-code-card span { display: block; margin-bottom: 5px; color: #788993; font-size: 10px; letter-spacing: .12em; font-weight: 800; }
.public-id-card strong, .public-visual-code-card strong { color: var(--public-blue); font-size: 16px; letter-spacing: .06em; }
.public-floating-badge { position: absolute; z-index: 3; display: flex; align-items: center; gap: 10px; padding: 13px 15px; border: 1px solid #fff; border-radius: 14px; background: rgba(255,255,255,.95); box-shadow: 0 16px 34px rgba(10,42,67,.13); color: #61727c; font-size: 11px; line-height: 1.35; }
.public-floating-badge i { display: grid; place-items: center; width: 34px; height: 34px; color: #fff; background: var(--public-teal); border-radius: 10px; font-size: 17px; }
.public-floating-badge strong { color: var(--public-blue); font-size: 12px; }
.public-floating-shield { top: 48px; right: 0; }
.public-floating-search { left: 5px; bottom: 47px; }
.public-hero-pulse { position: absolute; z-index: 4; right: 26px; bottom: 20px; display: flex; align-items: center; gap: 7px; color: #52707b; font-size: 11px; font-weight: 750; }
.public-hero-pulse span { width: 8px; height: 8px; border-radius: 50%; background: #2ecc71; box-shadow: 0 0 0 6px rgba(46,204,113,.13); animation: publicPulse 2s infinite; }
@keyframes publicPulse { 50% { box-shadow: 0 0 0 10px rgba(46,204,113,0); } }
.public-home-actions { position: relative; z-index: 6; margin-top: -34px; }
.public-home-actions-card { display: grid; grid-template-columns: 1.05fr repeat(3,1fr); overflow: hidden; border: 1px solid var(--public-border); border-radius: 18px; background: #fff; box-shadow: 0 20px 55px rgba(10,42,67,.13); }
.public-home-actions-intro { display: flex; flex-direction: column; justify-content: center; padding: 24px; color: #fff; background: var(--public-blue); }
.public-home-actions-intro span { color: #79d6d5; font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.public-home-actions-intro strong { margin-top: 4px; font-size: 17px; }
.public-home-actions-card > a { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 11px; padding: 20px; border-right: 1px solid var(--public-border); text-decoration: none; transition: background .18s ease; }
.public-home-actions-card > a:last-child { border-right: 0; }
.public-home-actions-card > a:hover { background: #effafa; }
.public-home-actions-card > a > i:first-child { display: grid; place-items: center; width: 39px; height: 39px; border-radius: 11px; color: var(--public-teal-dark); background: #e9f8f8; font-size: 18px; }
.public-home-actions-card > a > i:last-child { color: #9aadb5; }
.public-home-actions-card > a strong, .public-home-actions-card > a small { display: block; }
.public-home-actions-card > a strong { color: var(--public-blue); font-size: 13px; }
.public-home-actions-card > a small { margin-top: 3px; color: var(--public-muted); font-size: 10px; }

.public-trust-strip { border-top: 1px solid var(--public-border); border-bottom: 1px solid var(--public-border); background: #fff; }
.public-trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.public-trust-grid > div { display: flex; align-items: center; justify-content: center; gap: 11px; min-height: 92px; padding: 18px; color: #60727d; font-size: 13px; border-right: 1px solid var(--public-border); }
.public-trust-grid > div:last-child { border-right: 0; }
.public-trust-grid i { color: var(--public-teal); font-size: 21px; }
.public-trust-grid strong { display: inline; color: var(--public-blue); }

.public-section { padding: 92px 0; }
.public-section-soft { background: var(--public-soft); }
.public-section-heading { max-width: 720px; margin: 0 auto 44px; text-align: center; }
.public-section-heading h2, .public-split-copy h2, .public-cta-card h2 { margin: 0 0 15px; color: var(--public-blue); font-size: clamp(31px, 4vw, 46px); line-height: 1.13; letter-spacing: -.035em; font-weight: 820; }
.public-section-heading p, .public-split-copy > p { color: var(--public-muted); font-size: 17px; line-height: 1.7; }
.public-feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.public-feature-card { position: relative; padding: 28px 24px; border: 1px solid var(--public-border); border-radius: var(--public-radius); background: #fff; box-shadow: 0 14px 36px rgba(10,42,67,.06); }
.public-feature-number { position: absolute; right: 20px; top: 20px; color: #c9dadd; font-weight: 850; }
.public-icon-tile { display: grid; place-items: center; width: 49px; height: 49px; margin-bottom: 20px; border-radius: 14px; color: var(--public-teal-dark); background: #e9f8f8; font-size: 22px; }
.public-feature-card h3, .public-info-grid h2 { margin: 0 0 10px; color: var(--public-blue); font-size: 20px; font-weight: 800; }
.public-feature-card p, .public-info-grid p { margin: 0; color: var(--public-muted); font-size: 14px; line-height: 1.7; }

.public-split-section { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 82px; }
.public-split-visual { position: relative; min-height: 390px; display: grid; place-items: center; border-radius: 30px; overflow: hidden; background: linear-gradient(145deg, var(--public-blue), #135270); }
.public-canada-shape { display: grid; place-items: center; width: 190px; height: 190px; border: 1px solid rgba(255,255,255,.22); border-radius: 46% 54% 60% 40%; color: #fff; background: rgba(27,166,166,.4); font-size: 70px; transform: rotate(12deg); }
.public-canada-shape i { transform: rotate(-12deg); }
.public-data-card { position: absolute; right: 24px; bottom: 24px; width: 190px; padding: 17px; border-radius: 14px; background: #fff; box-shadow: 0 14px 35px rgba(0,0,0,.18); }
.public-data-card span, .public-data-card small { display: block; }
.public-data-card span { color: var(--public-teal-dark); font-size: 10px; letter-spacing: .1em; font-weight: 850; }
.public-data-card strong { display: block; margin: 4px 0 7px; color: var(--public-blue); font-size: 25px; }
.public-data-card small { color: var(--public-muted); line-height: 1.45; }
.public-check-list { display: grid; gap: 19px; padding: 0; margin: 28px 0; list-style: none; }
.public-check-list li { display: flex; gap: 13px; color: var(--public-muted); line-height: 1.55; }
.public-check-list i { flex: 0 0 28px; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #fff; background: var(--public-teal); font-weight: 900; }
.public-check-list strong { color: var(--public-blue); }
.public-text-link { color: var(--public-teal-dark); font-weight: 800; text-decoration: none; }

.public-cta-section { padding: 0 0 92px; }
.public-cta-card { display: flex; justify-content: space-between; align-items: center; gap: 40px; padding: 50px; border-radius: 28px; color: #fff; background: linear-gradient(125deg, var(--public-blue), #124c68); box-shadow: var(--public-shadow); }
.public-cta-card h2 { color: #fff; }
.public-cta-card p { max-width: 650px; margin: 0; color: #c9dbe3; }
.public-cta-actions { display: flex; flex-shrink: 0; gap: 11px; }

/* Public home — modern motion and depth */
.public-home-hero {
    isolation: isolate;
    min-height: 690px;
    padding: 104px 0 110px;
    background:
        radial-gradient(circle at 78% 15%, rgba(27,166,166,.19), transparent 27%),
        radial-gradient(circle at 18% 82%, rgba(74,151,184,.1), transparent 27%),
        linear-gradient(135deg, #f8fbfb 0%, #fff 48%, #eaf7f6 100%);
}

.public-home-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    opacity: .28;
    background-image: radial-gradient(rgba(18,111,120,.24) .75px, transparent .75px);
    background-size: 25px 25px;
    mask-image: linear-gradient(to right, #000, transparent 46%, #000);
    pointer-events: none;
}

.public-home-hero .public-hero-grid { position: relative; z-index: 2; }
.public-home-hero .public-eyebrow { padding: 8px 12px; border: 1px solid rgba(27,166,166,.2); border-radius: 999px; background: rgba(255,255,255,.7); box-shadow: 0 8px 24px rgba(10,42,67,.05); backdrop-filter: blur(8px); }
.public-home-hero h1 span { color: transparent; background: linear-gradient(100deg, #117f88, #1ba6a6 62%, #247e9c); background-clip: text; -webkit-background-clip: text; }
.public-home-hero-glow { position: absolute; z-index: -1; border-radius: 50%; filter: blur(2px); pointer-events: none; }
.public-home-hero-glow-one { width: 420px; height: 420px; right: -150px; top: -170px; border: 70px solid rgba(27,166,166,.07); }
.public-home-hero-glow-two { width: 270px; height: 270px; left: 37%; bottom: -185px; background: rgba(53,143,159,.08); filter: blur(34px); }

.public-home-hero .public-hero-visual::before {
    content: "";
    position: absolute;
    width: 390px;
    height: 390px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(66,197,191,.15), rgba(66,197,191,0) 68%);
    animation: publicHomeAura 5.5s ease-in-out infinite;
}

.public-home-hero .public-orbit-one { animation: publicHomeOrbit 24s linear infinite; }
.public-home-hero .public-orbit-two { animation: publicHomeOrbitReverse 18s linear infinite; }
.public-home-hero .public-pet-card { overflow: hidden; border-color: rgba(255,255,255,.9); background: rgba(255,255,255,.88); box-shadow: 0 32px 80px rgba(10,42,67,.16); backdrop-filter: blur(18px); animation: publicHomeCardFloat 6s ease-in-out infinite; }
.public-pet-card-brand { display: grid; grid-template-columns: 31px 1fr; align-items: center; gap: 0 9px; margin-bottom: 20px; padding-bottom: 14px; border-bottom: 1px solid #e2ecee; }
.public-pet-card-brand > span { grid-row: 1 / 3; width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px 9px 9px 3px; color: #fff; background: linear-gradient(145deg, var(--public-teal), #147f8f); font-size: 12px; font-weight: 900; }
.public-pet-card-brand strong, .public-pet-card-brand small { display: block; }
.public-pet-card-brand strong { color: var(--public-blue); font-size: 11px; }
.public-pet-card-brand small { color: #85969e; font-size: 8px; }
.public-pet-card-scan { position: absolute; z-index: 4; left: 5%; right: 5%; top: -25%; height: 2px; opacity: .75; background: linear-gradient(90deg, transparent, #29c4bc, transparent); box-shadow: 0 0 18px rgba(41,196,188,.9); animation: publicHomeScan 5.5s ease-in-out infinite 1s; pointer-events: none; }

.public-hero-network-node { position: absolute; z-index: 1; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(27,166,166,.26); border-radius: 50%; color: #138989; background: rgba(255,255,255,.9); box-shadow: 0 10px 30px rgba(10,42,67,.11); font-size: 16px; }
.public-hero-network-node::after { content: ""; position: absolute; inset: -7px; border: 1px solid rgba(27,166,166,.13); border-radius: inherit; }
.public-hero-network-node-one { left: 18px; top: 96px; animation: publicHomeNode 4.8s ease-in-out infinite; }
.public-hero-network-node-two { right: 43px; top: 130px; animation: publicHomeNode 5.4s ease-in-out infinite .8s; }
.public-hero-network-node-three { right: 98px; bottom: 44px; animation: publicHomeNode 5s ease-in-out infinite 1.4s; }
.public-home-hero .public-floating-shield { animation: publicHomeBadge 5s ease-in-out infinite .4s; }
.public-home-hero .public-floating-search { animation: publicHomeBadge 5.6s ease-in-out infinite 1s; }

.public-home-actions-card { border-radius: 23px; box-shadow: 0 26px 70px rgba(10,42,67,.14); }
.public-home-actions-intro { position: relative; overflow: hidden; background: linear-gradient(135deg, #08283f, #0e5261); }
.public-home-actions-intro::after { content: ""; position: absolute; width: 110px; height: 110px; right: -52px; top: -54px; border: 18px solid rgba(255,255,255,.07); border-radius: 50%; }
.public-home-actions-intro > i { margin-bottom: 9px; color: #70d8d2; font-size: 20px; }
.public-home-actions-card > a { position: relative; transition: transform .22s ease, background .22s ease, box-shadow .22s ease; }
.public-home-actions-card > a:hover { z-index: 2; background: linear-gradient(145deg, #fff, #ebf9f8); box-shadow: 0 15px 32px rgba(10,42,67,.09); transform: translateY(-3px); }
.public-home-actions-card > a:hover > i:first-child { color: #fff; background: var(--public-teal); transform: rotate(-5deg); }
.public-home-actions-card > a > i { transition: transform .2s ease, color .2s ease, background .2s ease; }

.public-home-process-section { position: relative; overflow: hidden; background: linear-gradient(180deg, #f3f8f8, #eef6f6); }
.public-home-process-section::before { content: ""; position: absolute; width: 430px; height: 430px; left: -260px; top: 35px; border: 70px solid rgba(27,166,166,.045); border-radius: 50%; }
.public-feature-grid { position: relative; z-index: 1; }
.public-feature-card { overflow: hidden; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.public-feature-card::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: linear-gradient(90deg, var(--public-teal), #3d8dac); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.public-feature-card:hover { border-color: #b9dcdc; box-shadow: 0 24px 54px rgba(10,42,67,.1); transform: translateY(-7px); }
.public-feature-card:hover::after { transform: scaleX(1); }
.public-feature-card:hover .public-icon-tile { color: #fff; background: var(--public-teal); transform: rotate(-5deg) scale(1.04); }
.public-feature-card .public-icon-tile { transition: transform .22s ease, color .22s ease, background .22s ease; }

.public-home-security-visual { isolation: isolate; box-shadow: 0 30px 75px rgba(10,42,67,.22); }
.public-home-security-grid { position: absolute; z-index: -1; inset: -35%; opacity: .15; background-image: linear-gradient(rgba(255,255,255,.35) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.35) 1px, transparent 1px); background-size: 39px 39px; transform: perspective(450px) rotateX(58deg) rotateZ(-10deg); }
.public-home-security-ring { position: absolute; width: 260px; height: 260px; border: 1px solid rgba(106,222,214,.34); border-radius: 50%; animation: publicHomeSecurityPulse 4.5s ease-out infinite; }
.public-home-security-visual .public-canada-shape { position: relative; z-index: 1; box-shadow: 0 22px 45px rgba(0,0,0,.16); animation: publicHomeShieldFloat 5.5s ease-in-out infinite; }
.public-home-security-visual .public-data-card { z-index: 2; border: 1px solid rgba(255,255,255,.82); }
.public-home-cta .public-cta-card { position: relative; overflow: hidden; background: linear-gradient(120deg, #07263d, #0d4d60 60%, #12777b); }
.public-home-cta .public-cta-card::after { content: ""; position: absolute; width: 310px; height: 310px; right: -125px; top: -175px; border: 50px solid rgba(255,255,255,.06); border-radius: 50%; pointer-events: none; }
.public-home-cta .public-cta-card > * { position: relative; z-index: 1; }

@keyframes publicHomeOrbit { to { transform: rotate(360deg); } }
@keyframes publicHomeOrbitReverse { to { transform: rotate(-360deg); } }
@keyframes publicHomeAura { 50% { opacity: .58; transform: scale(1.08); } }
@keyframes publicHomeCardFloat { 0%, 100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1.2deg) translateY(-9px); } }
@keyframes publicHomeNode { 50% { transform: translateY(-7px) scale(1.04); } }
@keyframes publicHomeBadge { 50% { transform: translateY(-7px); } }
@keyframes publicHomeScan { 0%, 18% { top: -10%; opacity: 0; } 35% { opacity: .8; } 68% { top: 108%; opacity: .75; } 69%, 100% { opacity: 0; } }
@keyframes publicHomeSecurityPulse { 0% { opacity: 0; transform: scale(.62); } 35% { opacity: .65; } 100% { opacity: 0; transform: scale(1.35); } }
@keyframes publicHomeShieldFloat { 50% { transform: rotate(12deg) translateY(-8px); } }

.public-page-hero { padding: 84px 0; text-align: center; background: radial-gradient(circle at 50% 0, rgba(27,166,166,.15), transparent 45%), var(--public-soft); }
.public-page-hero-compact { padding: 68px 0; }
.public-page-hero h1 { max-width: 850px; margin: 0 auto 15px; color: var(--public-blue); font-size: clamp(37px, 5vw, 56px); line-height: 1.08; letter-spacing: -.04em; font-weight: 850; }
.public-page-hero p { max-width: 720px; margin: 0 auto; color: var(--public-muted); font-size: 18px; line-height: 1.65; }
.public-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.public-info-grid article { padding: 30px; border: 1px solid var(--public-border); border-radius: var(--public-radius); box-shadow: 0 12px 32px rgba(10,42,67,.06); }
.public-info-grid article > i { display: block; margin-bottom: 20px; color: var(--public-teal); font-size: 34px; }

.public-tool-section, .public-auth-section { min-height: 600px; padding: 64px 0 90px; background: #fff; }
.public-tool-card, .public-auth-card { width: min(100% - 32px, 620px); margin: 0 auto; padding: 34px; border: 1px solid var(--public-border); border-radius: 22px; background: #fff; box-shadow: var(--public-shadow); }
.public-tool-card > h2, .public-auth-card h1 { margin: 0 0 8px; color: var(--public-blue); font-size: 30px; font-weight: 830; }
.public-tool-card > p, .public-auth-copy p { color: var(--public-muted); line-height: 1.65; }
.public-tool-step { float: right; padding: 7px 10px; border-radius: 999px; color: var(--public-teal-dark); background: #eaf8f8; font-size: 11px; font-weight: 800; }
.public-form { display: grid; gap: 19px; margin-top: 26px; }
.public-field label { display: block; margin-bottom: 8px; color: var(--public-blue); font-size: 14px; font-weight: 800; }
.public-field input, .public-field select, .public-field textarea { width: 100%; min-height: 52px; padding: 13px 15px; color: var(--public-ink); background: #fff; border: 1px solid #becdd2; border-radius: 11px; outline: none; font-size: 16px; }
.public-field textarea { resize: vertical; }
.public-field input:focus, .public-field select:focus, .public-field textarea:focus { border-color: var(--public-teal); box-shadow: 0 0 0 4px rgba(27,166,166,.13); }
.public-body .select2-container { width: 100% !important; }
.public-body .select2-container--default .select2-selection--single {
    min-height: 52px;
    display: flex;
    align-items: center;
    border: 1px solid #becdd2;
    border-radius: 11px;
    background: #fff;
}
.public-body .select2-container--default .select2-selection--single .select2-selection__rendered {
    width: 100%;
    padding: 0 42px 0 15px;
    color: var(--public-ink);
    font-size: 16px;
    line-height: 50px;
}
.public-body .select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 1px;
    right: 9px;
    height: 50px;
}
.public-body .select2-container--default.select2-container--focus .select2-selection--single,
.public-body .select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--public-teal);
    box-shadow: 0 0 0 4px rgba(27,166,166,.13);
}
.public-body .select2-dropdown {
    overflow: hidden;
    border: 1px solid #b9cdd2;
    border-radius: 11px;
    box-shadow: 0 16px 35px rgba(10,42,67,.13);
}
.public-body .select2-search--dropdown { padding: 8px; }
.public-body .select2-search--dropdown .select2-search__field {
    min-height: 42px;
    padding: 8px 11px;
    border: 1px solid #c4d4d8;
    border-radius: 8px;
    outline: 0;
}
.public-body .select2-results__option { padding: 9px 12px; font-size: 14px; }
.public-body .select2-results__option--highlighted[aria-selected] { background: var(--public-teal); }
.public-field small { display: block; margin-top: 7px; color: var(--public-muted); line-height: 1.5; }
.public-field span { display: block; margin-top: 6px; color: #b42318; font-size: 13px; }
.public-code-input { text-align: center; letter-spacing: .35em; font-size: 23px !important; font-weight: 800; }
.public-privacy-note { display: flex; gap: 11px; margin-top: 24px; padding: 15px; color: #526975; background: var(--public-soft); border-radius: 12px; font-size: 13px; line-height: 1.55; }
.public-privacy-note i { color: var(--public-teal-dark); font-size: 18px; }
.public-alert { margin-bottom: 18px; padding: 13px 15px; border-radius: 11px; font-size: 14px; line-height: 1.5; }
.public-alert-success { color: #176448; background: #e9f8f2; border: 1px solid #bde6d7; }
.public-alert-error { color: #9b2820; background: #fff0ef; border: 1px solid #f4c7c3; }
.public-auth-copy { margin-bottom: 22px; }
.public-email-chip { padding: 10px 13px; color: var(--public-blue); background: var(--public-soft); border-radius: 9px; font-size: 14px; font-weight: 700; text-align: center; }
.public-auth-secondary-action { margin-top: 17px; text-align: center; }
.public-auth-note { margin: 24px 0 0; padding-top: 18px; color: var(--public-muted); border-top: 1px solid var(--public-border); font-size: 12px; line-height: 1.6; text-align: center; }

.public-dashboard-shell { min-height: 650px; padding: 64px max(16px, calc((100vw - 1140px) / 2)); background: var(--public-soft); }
.public-dashboard-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
.public-dashboard-header h1 { margin: 0; color: var(--public-blue); font-weight: 850; }
.public-dashboard-header p { margin: 7px 0 0; color: var(--public-muted); }
.public-profile-prompt, .public-empty-state { padding: 32px; border: 1px solid var(--public-border); border-radius: 20px; background: #fff; box-shadow: 0 12px 32px rgba(10,42,67,.06); }
.public-profile-prompt { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 20px; }
.public-profile-prompt .public-icon-tile { margin: 0; }
.public-profile-prompt h2, .public-empty-state h2 { margin: 0 0 7px; color: var(--public-blue); font-size: 22px; font-weight: 800; }
.public-profile-prompt p, .public-empty-state p { margin: 0; color: var(--public-muted); }
.public-empty-state { text-align: center; }
.public-empty-state .public-icon-tile { margin: 0 auto 18px; }

.public-faq-list { max-width: 850px; }
.public-faq-list details { margin-bottom: 13px; padding: 20px 22px; border: 1px solid var(--public-border); border-radius: 13px; background: #fff; }
.public-faq-list summary { color: var(--public-blue); font-weight: 800; cursor: pointer; }
.public-faq-list p { margin: 14px 0 0; color: var(--public-muted); line-height: 1.7; }

/* Public registration and lookup */
.public-registration-section { background: linear-gradient(180deg, #fff, var(--public-soft)); }
.public-registration-card { padding: 36px; border: 1px solid var(--public-border); border-radius: 24px; background: #fff; box-shadow: var(--public-shadow); }
.public-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 22px; }
.public-form-section { padding: 27px; border: 1px solid var(--public-border); border-radius: 18px; background: #fff; }
.public-form-section-heading { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 22px; }
.public-form-section-heading > span { flex: 0 0 34px; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; color: #fff; background: var(--public-teal); font-weight: 850; }
.public-form-section-heading h2 { margin: 0 0 4px; color: var(--public-blue); font-size: 21px; font-weight: 820; }
.public-form-section-heading p { margin: 0; color: var(--public-muted); font-size: 13px; }
.public-identifier-section { background: linear-gradient(135deg, #f9fcfc, #effafa); }
.public-identifier-row { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 12px; }
.public-identifier-result { display: flex; align-items: center; gap: 14px; margin-top: 15px; padding: 13px 15px; border-radius: 11px; }
.public-identifier-result strong { color: var(--public-blue); }
.public-identifier-result span { color: var(--public-muted); font-size: 13px; }
.public-identifier-result.is-success { border: 1px solid #bce5d7; background: #eaf8f2; }
.public-identifier-result.is-error { border: 1px solid #f0c8c4; background: #fff1f0; }
.public-signin-gate { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; margin-top: 22px; padding: 23px; border-radius: 18px; color: #fff; background: linear-gradient(125deg, var(--public-blue), #12516c); }
.public-signin-gate > i { font-size: 32px; color: #8ce0df; }
.public-signin-gate h2 { margin: 0 0 4px; font-size: 20px; }
.public-signin-gate p { margin: 0; color: #c5d8e0; font-size: 13px; }
.public-verified-email { display: flex; align-items: center; gap: 9px; margin-top: 20px; padding: 13px 16px; border-radius: 12px; color: #176448; background: #e9f8f2; }
.public-verified-email strong { margin-left: auto; color: var(--public-blue); }
.public-owner-choice-section { margin-top: 22px; background: linear-gradient(135deg,#fff,#f7fbfb); }
.public-owner-choice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.public-owner-choice-card { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; min-height: 94px; padding: 16px; border: 1px solid var(--public-border); border-radius: 15px; background: #fff; cursor: pointer; transition: border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.public-owner-choice-card:hover { transform: translateY(-1px); border-color: #9acfd0; box-shadow: 0 10px 26px rgba(10,42,67,.07); }
.public-owner-choice-card.is-selected { border-color: var(--public-teal); box-shadow: 0 0 0 3px rgba(27,166,166,.12); background: #f7fdfd; }
.public-owner-choice-card > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.public-owner-choice-card > i { position: absolute; right: 11px; top: 11px; color: #cbdadd; font-size: 16px; }
.public-owner-choice-card.is-selected > i { color: var(--public-teal); }
.public-owner-choice-avatar { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; color: #fff; background: var(--public-blue); font-size: 17px; font-weight: 850; }
.public-owner-choice-new .public-owner-choice-avatar { color: var(--public-teal-dark); background: #e8f8f8; font-size: 21px; }
.public-owner-choice-copy { min-width: 0; padding-right: 14px; }
.public-owner-choice-copy strong,.public-owner-choice-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.public-owner-choice-copy strong { color: var(--public-blue); font-size: 14px; }
.public-owner-choice-copy small { margin-top: 3px; color: var(--public-muted); font-size: 11px; }
.public-owner-choice-count { align-self: end; padding: 5px 8px; border-radius: 999px; color: var(--public-teal-dark); background: #e9f8f8; font-size: 10px; font-weight: 800; white-space: nowrap; }
.public-field-error { display: block; margin-top: 8px; color: #b42318; font-size: 13px; }
.public-form-section.is-owner-fields-hidden { display: none; }
.public-fields-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.public-field-wide { grid-column: 1 / -1; }
.public-consent-box { margin: 22px 0; padding: 18px; border: 1px solid var(--public-border); border-radius: 14px; background: var(--public-soft); }
.public-consent-box label, .public-form-consent { display: flex; align-items: flex-start; gap: 10px; color: #49616d; line-height: 1.55; }
.public-consent-box input, .public-form-consent input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 3px; accent-color: var(--public-teal); }
.public-image-upload-block { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--public-border); }
.public-image-upload-heading { display: flex; justify-content: space-between; gap: 15px; margin-bottom: 12px; }
.public-image-upload-heading strong,.public-image-upload-heading span { display: block; }
.public-image-upload-heading strong { color: var(--public-blue); font-size: 14px; }
.public-image-upload-heading div > span { margin-top: 3px; color: var(--public-muted); font-size: 11px; }
.public-image-count { align-self: start; padding: 6px 9px; border-radius: 999px; color: var(--public-teal-dark); background: #e9f8f8; font-size: 11px; font-weight: 800; }
.public-image-dropzone { display: grid; place-items: center; min-height: 145px; padding: 20px; border: 2px dashed #afc7cd; border-radius: 15px; color: var(--public-muted); background: #f8fbfb; text-align: center; cursor: pointer; transition: border-color .18s ease,background .18s ease; }
.public-image-dropzone:hover,.public-image-dropzone.is-dragging { border-color: var(--public-teal); background: #eefafa; }
.public-image-dropzone > i { margin-bottom: 7px; color: var(--public-teal); font-size: 30px; }
.public-image-dropzone strong { color: var(--public-blue); font-size: 14px; }
.public-image-dropzone span { margin-top: 4px; font-size: 11px; }
.public-image-dropzone input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.public-image-preview-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; margin-top: 12px; }
.public-image-preview-card { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--public-border); border-radius: 12px; background: #fff; }
.public-image-preview-card img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.public-image-preview-card button { position: absolute; top: 5px; right: 5px; display: grid; place-items: center; width: 25px; height: 25px; padding: 0; border: 0; border-radius: 50%; color: #fff; background: rgba(7,31,49,.78); cursor: pointer; }
.public-image-preview-card > span { position: absolute; left: 5px; top: 5px; padding: 4px 6px; border-radius: 999px; color: #fff; background: var(--public-teal-dark); font-size: 8px; font-weight: 800; }
.public-image-preview-card small { display: block; overflow: hidden; padding: 7px; color: var(--public-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.public-image-primary-note { margin: 10px 0 0; color: var(--public-muted); font-size: 11px; }
.public-image-primary-note i { color: #e5a500; }
.public-lookup-card { max-width: 680px; }
.public-lookup-result { display: flex; gap: 15px; margin-top: 24px; padding: 19px; border-radius: 15px; }
.public-lookup-result-icon { flex: 0 0 45px; display: grid; place-items: center; width: 45px; height: 45px; border-radius: 13px; font-size: 21px; }
.public-lookup-result > div:last-child > span { font-size: 10px; letter-spacing: .1em; font-weight: 850; }
.public-lookup-result h3 { margin: 3px 0; color: var(--public-blue); font-size: 18px; }
.public-lookup-result p { margin: 0 0 6px; color: var(--public-muted); line-height: 1.6; }
.public-lookup-result.is-registered { border: 1px solid #bce5d7; background: #eaf8f2; }
.public-lookup-result.is-registered .public-lookup-result-icon { color: #167052; background: #d3f0e4; }
.public-lookup-result.is-found { border: 1px solid #b9dfe8; background: #edf8fb; }
.public-lookup-result.is-found .public-lookup-result-icon { color: #176b82; background: #d7eff5; }
.public-lookup-result.is-not-found { border: 1px solid #efcbc8; background: #fff2f1; }
.public-lookup-result.is-not-found .public-lookup-result-icon { color: #a53b32; background: #f9ddda; }

/* Owner portal */
.public-multi-owner-note { display: flex; gap: 14px; margin-bottom: 24px; padding: 18px; border: 1px solid #c8dfe6; border-radius: 14px; background: #eef8fb; }
.public-multi-owner-note i { color: var(--public-teal-dark); font-size: 23px; }
.public-multi-owner-note strong, .public-multi-owner-note span { display: block; }
.public-multi-owner-note span { margin-top: 3px; color: var(--public-muted); font-size: 13px; }
.public-pets-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.public-owned-pet-card { overflow: hidden; border: 1px solid var(--public-border); border-radius: 20px; background: #fff; box-shadow: 0 15px 38px rgba(10,42,67,.07); }
.public-owned-pet-media { position: relative; height: 190px; display: grid; place-items: center; overflow: hidden; background: linear-gradient(145deg, #e8f8f8, #eef3f5); isolation: isolate; }
.public-owned-pet-media img { position: absolute; inset: 0; z-index: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.public-owned-pet-media .public-status-pill { position: absolute; z-index: 2; top: 14px; right: 14px; }
.public-pet-transfer-pending-pill { position: absolute; z-index: 2; left: 14px; bottom: 14px; display: inline-flex; align-items: center; gap: 6px; padding: 8px 11px; border: 1px solid rgba(255,255,255,.75); border-radius: 999px; color: #9a3412; background: rgba(255,247,237,.96); box-shadow: 0 5px 16px rgba(15,23,42,.12); font-size: 11px; font-weight: 850; }
.public-animal-placeholder { display: grid; place-items: center; width: 84px; height: 84px; border-radius: 50%; color: #fff; background: var(--public-blue); font-size: 32px; }
.public-owned-pet-body { position: relative; z-index: 1; padding: 22px; background: #fff; }
.public-owned-pet-heading { position: relative; z-index: 1; min-width: 0; }
.public-pet-type { color: var(--public-teal-dark); font-size: 11px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.public-owned-pet-body h2 { display: block; margin: 3px 0; color: var(--public-blue); font-size: 25px; font-weight: 850; line-height: 1.2; overflow-wrap: anywhere; }
.public-owned-pet-body p { min-height: 22px; margin: 0 0 18px; color: var(--public-muted); }
.public-pet-transfer-state { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 10px; margin: 0 0 17px; padding: 11px 12px; border: 1px solid #fed7aa; border-radius: 12px; color: #7c2d12; background: #fff7ed; }
.public-pet-transfer-state > i { color: #ea580c; font-size: 18px; }
.public-pet-transfer-state strong, .public-pet-transfer-state span { display: block; }
.public-pet-transfer-state strong { font-size: 12px; font-weight: 850; }
.public-pet-transfer-state span { margin-top: 2px; color: #9a3412; font-size: 10px; line-height: 1.4; }
.public-owned-pet-body dl { display: grid; gap: 10px; margin: 0; }
.public-owned-pet-body dl div { display: flex; justify-content: space-between; gap: 10px; padding-top: 10px; border-top: 1px solid var(--public-border); }
.public-owned-pet-body dt { color: var(--public-muted); font-size: 12px; font-weight: 650; }
.public-owned-pet-body dd { margin: 0; color: var(--public-blue); font-size: 12px; font-weight: 800; text-align: right; }
.public-owner-profiles { margin-top: 58px; }
.public-section-heading-left { max-width: none; margin: 0 0 25px; text-align: left; }
.public-section-heading-left h2 { font-size: 31px; }
.public-owner-profile-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.public-owner-profile-grid article { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 18px; border: 1px solid var(--public-border); border-radius: 15px; background: #fff; }
.public-owner-avatar { display: grid; place-items: center; width: 45px; height: 45px; border-radius: 13px; color: #fff; background: var(--public-blue); font-weight: 850; }
.public-owner-profile-grid h3 { margin: 0; color: var(--public-blue); font-size: 16px; }
.public-owner-profile-grid p, .public-owner-profile-grid span { margin: 2px 0 0; color: var(--public-muted); font-size: 12px; }
.public-owner-profile-grid article > strong { color: var(--public-teal-dark); font-size: 12px; }

/* Professionals */
.public-professional-hero { padding: 95px 0; overflow: hidden; color: #fff; background: radial-gradient(circle at 80% 10%, rgba(27,166,166,.35), transparent 35%), linear-gradient(125deg, #071f31, var(--public-blue)); }
.public-professional-hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 70px; }
.public-professional-hero h1 { margin: 0 0 20px; font-size: clamp(42px,5vw,64px); line-height: 1.05; letter-spacing: -.045em; font-weight: 850; }
.public-professional-hero p { max-width: 680px; color: #c7d9e0; font-size: 18px; line-height: 1.7; }
.public-professional-panel { display: grid; gap: 12px; padding: 26px; border: 1px solid rgba(255,255,255,.15); border-radius: 24px; background: rgba(255,255,255,.08); backdrop-filter: blur(10px); }
.public-professional-panel div { display: flex; align-items: center; gap: 13px; padding: 14px; border-radius: 13px; color: #eaf5f7; background: rgba(255,255,255,.08); font-weight: 750; }
.public-professional-panel i { color: #73d5d5; font-size: 21px; }
.public-professional-panel strong { padding: 10px 4px 0; color: #8edede; font-size: 13px; text-align: center; }
.public-professional-features { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.public-professional-features article { position: relative; padding: 27px; border: 1px solid var(--public-border); border-radius: 18px; }
.public-professional-features article > span { position: absolute; top: 18px; right: 18px; color: #cedde1; font-weight: 850; }
.public-professional-features article > i { color: var(--public-teal); font-size: 31px; }
.public-professional-features h3 { margin: 17px 0 8px; color: var(--public-blue); font-size: 19px; font-weight: 820; }
.public-professional-features p { margin: 0; color: var(--public-muted); font-size: 14px; line-height: 1.65; }
.public-professional-audiences { display: grid; gap: 20px; }
.public-professional-audiences article { display: grid; grid-template-columns: auto 1fr; gap: 25px; padding: 30px; border: 1px solid var(--public-border); border-radius: 20px; background: #fff; }
.public-audience-icon { display: grid; place-items: center; width: 68px; height: 68px; border-radius: 19px; color: #fff; background: linear-gradient(145deg,var(--public-blue),#145575); font-size: 28px; }
.public-professional-audiences article span { color: var(--public-teal-dark); font-size: 11px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.public-professional-audiences h2 { margin: 5px 0 8px; color: var(--public-blue); font-size: 25px; font-weight: 830; }
.public-professional-audiences p { color: var(--public-muted); line-height: 1.65; }
.public-professional-audiences ul { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; list-style: none; }
.public-professional-audiences li { padding: 7px 10px; border-radius: 999px; color: #49646e; background: var(--public-soft); font-size: 12px; }
.public-application-section { background: linear-gradient(180deg,#fff,#f2f8f9); }
.public-application-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; align-items: start; }
.public-application-copy { position: sticky; top: 120px; }
.public-application-copy h2 { color: var(--public-blue); font-size: 43px; line-height: 1.1; font-weight: 850; }
.public-application-copy > p { color: var(--public-muted); line-height: 1.7; }
.public-application-steps { display: grid; gap: 13px; margin-top: 30px; }
.public-application-steps div { display: flex; align-items: center; gap: 12px; }
.public-application-steps strong { display: grid; place-items: center; width: 33px; height: 33px; border-radius: 10px; color: #fff; background: var(--public-teal); }
.public-application-steps span { color: #49616d; font-weight: 700; }
.public-application-card { padding: 30px; border: 1px solid var(--public-border); border-radius: 22px; background: #fff; box-shadow: var(--public-shadow); }
.public-form-consent { margin: 3px 0; }

/* Modern FAQ */
.public-faq-hero { padding: 82px 0 46px; text-align: center; background: radial-gradient(circle at 50% 0,rgba(27,166,166,.2),transparent 45%),var(--public-soft); }
.public-faq-hero h1 { max-width: 800px; margin: 0 auto 13px; color: var(--public-blue); font-size: clamp(39px,5vw,57px); line-height: 1.08; letter-spacing: -.04em; font-weight: 850; }
.public-faq-hero > .container > p { color: var(--public-muted); font-size: 17px; }
.public-faq-search { display: flex; align-items: center; width: min(100%,680px); margin: 27px auto 18px; padding: 0 17px; border: 1px solid #bdd0d5; border-radius: 14px; background: #fff; box-shadow: 0 14px 35px rgba(10,42,67,.08); }
.public-faq-search i { color: var(--public-teal); font-size: 20px; }
.public-faq-search input { width: 100%; min-height: 57px; padding: 13px; border: 0; outline: 0; font-size: 16px; }
.public-faq-categories { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.public-faq-categories button { padding: 8px 13px; border: 1px solid var(--public-border); border-radius: 999px; color: #526975; background: #fff; font-weight: 700; font-size: 12px; cursor: pointer; }
.public-faq-categories button.active { color: #fff; border-color: var(--public-teal); background: var(--public-teal); }
.public-faq-section { padding-top: 58px; }
.public-faq-layout { display: grid; grid-template-columns: 250px 1fr; gap: 32px; align-items: start; }
.public-faq-layout aside { position: sticky; top: 105px; display: grid; gap: 14px; }
.public-faq-side-card { padding: 22px; border: 1px solid var(--public-border); border-radius: 16px; background: var(--public-soft); }
.public-faq-side-card > i { color: var(--public-teal); font-size: 25px; }
.public-faq-side-card h2 { margin: 12px 0 7px; color: var(--public-blue); font-size: 17px; }
.public-faq-side-card p { margin: 0; color: var(--public-muted); font-size: 13px; line-height: 1.6; }
.public-faq-side-dark { color: #fff; background: var(--public-blue); }
.public-faq-side-dark h2 { color: #fff; }
.public-faq-side-dark p { color: #c2d5dd; }
.public-faq-side-dark a { display: inline-block; margin-top: 13px; color: #76d7d7; font-size: 13px; font-weight: 800; text-decoration: none; }
.public-faq-layout .public-faq-list { max-width: none; }
.public-faq-layout .public-faq-list details { padding: 0; overflow: hidden; }
.public-faq-layout .public-faq-list summary { display: flex; justify-content: space-between; gap: 14px; padding: 20px 22px; list-style: none; }
.public-faq-layout .public-faq-list summary::-webkit-details-marker { display: none; }
.public-faq-layout .public-faq-list summary i { color: var(--public-teal); }
.public-faq-layout .public-faq-list details p { margin: 0; padding: 0 22px 20px; }
.public-faq-layout .public-faq-list details[open] { border-color: #a9d7d8; box-shadow: 0 12px 30px rgba(10,42,67,.06); }
.public-faq-empty { padding: 50px; text-align: center; color: var(--public-muted); }
.public-faq-empty i { font-size: 35px; color: var(--public-teal); }
.public-faq-empty h2 { margin: 12px 0 5px; color: var(--public-blue); }

.public-footer { padding-top: 66px; color: #d4e2e8; background: #071f31; }
.public-footer-grid { display: grid; grid-template-columns: 1.55fr repeat(3, 1fr); gap: 50px; }
.public-brand-footer { margin-bottom: 19px; color: #fff; }
.public-footer-brand p { max-width: 390px; color: #9eb3bd; line-height: 1.7; }
.public-footer h2 { margin: 7px 0 19px; color: #fff; font-size: 15px; font-weight: 800; }
.public-footer-grid > div:not(:first-child) a { display: block; margin: 12px 0; color: #a9bdc6; font-size: 14px; text-decoration: none; }
.public-footer-grid a:hover { color: #71d2d2 !important; }
.public-trust-line { color: #91caca; font-size: 13px; }
.public-footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 52px; padding: 22px 0; color: #8098a3; border-top: 1px solid rgba(255,255,255,.1); font-size: 12px; }

/* Microchip education */
.public-microchip-hero { overflow: hidden; padding: 92px 0 84px; background: radial-gradient(circle at 82% 22%,rgba(27,166,166,.16),transparent 26%),linear-gradient(145deg,#f5fbfb,#fff 58%,#edf8f8); }
.public-microchip-hero-grid { display: grid; grid-template-columns: 1.04fr .96fr; align-items: center; gap: 70px; }
.public-microchip-hero h1 { margin: 0 0 22px; color: var(--public-blue); font-size: clamp(44px,5.4vw,70px); line-height: 1.02; letter-spacing: -.05em; font-weight: 880; }
.public-microchip-hero h1 em { color: var(--public-teal-dark); font-style: normal; }
.public-microchip-hero p { max-width: 670px; color: var(--public-muted); font-size: 18px; line-height: 1.75; }
.public-microchip-proof { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 27px; color: #526a75; font-size: 12px; font-weight: 750; }
.public-microchip-proof i { margin-right: 5px; color: var(--public-teal); }
.public-chip-visual { position: relative; min-height: 490px; display: grid; place-items: center; }
.public-chip-orbit { position: absolute; border: 1px solid rgba(27,166,166,.22); border-radius: 50%; }
.public-chip-orbit-one { width: 420px; height: 420px; }.public-chip-orbit-two { width: 310px; height: 310px; border-style: dashed; }
.public-chip-capsule { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 228px; height: 72px; border: 8px solid #e8eff1; border-radius: 999px; color: #fff; background: linear-gradient(90deg,#0a2a43,#176079); box-shadow: 0 26px 60px rgba(10,42,67,.24); transform: rotate(-23deg); }
.public-chip-capsule::before,.public-chip-capsule::after { content:""; position:absolute; top:9px; bottom:9px; width:28px; border-radius:999px; background:linear-gradient(90deg,#eef4f5,#fff); }
.public-chip-capsule::before { left:-18px; }.public-chip-capsule::after { right:-18px; }.public-chip-capsule strong { font-size: 18px; letter-spacing: .1em; }.public-chip-capsule small { font-size: 8px; letter-spacing: .2em; opacity:.72; }
.public-chip-scan-line { position: absolute; z-index: 3; width: 330px; height: 2px; background: linear-gradient(90deg,transparent,var(--public-teal),transparent); box-shadow: 0 0 16px var(--public-teal); transform: rotate(-23deg); }
.public-chip-data-card,.public-chip-code-card { position: absolute; z-index: 4; border: 1px solid rgba(255,255,255,.85); border-radius: 16px; background: rgba(255,255,255,.95); box-shadow: 0 18px 44px rgba(10,42,67,.13); }
.public-chip-data-card { left: 0; bottom: 35px; padding: 18px 20px; }.public-chip-data-card span,.public-chip-code-card span { display:block; color:#78909a; font-size:9px; font-weight:850; letter-spacing:.12em; }.public-chip-data-card strong { display:block; margin:5px 0; color:var(--public-blue); font-size:15px; letter-spacing:.06em; }.public-chip-data-card small { color:#44836c; font-size:10px; }.public-chip-data-card small i { color:#28a56f; }
.public-chip-code-card { right: 0; top: 62px; display:flex; align-items:center; gap:12px; padding:15px; }.public-chip-code-card > i { color:var(--public-blue); font-size:37px; }.public-chip-code-card strong { color:var(--public-teal-dark); font-size:14px; letter-spacing:.08em; }
.public-chip-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }.public-chip-steps article { position:relative; overflow:hidden; min-height:250px; padding:27px; border:1px solid var(--public-border); border-radius:18px; background:linear-gradient(155deg,#fff,#f6fafb); }.public-chip-steps article > span { position:absolute; right:14px; top:7px; color:#e5eef0; font-size:52px; font-weight:900; }.public-chip-steps article > i { display:grid; place-items:center; width:48px; height:48px; margin-bottom:32px; border-radius:14px; color:#fff; background:var(--public-teal); font-size:22px; }.public-chip-steps h3 { color:var(--public-blue); font-size:17px; }.public-chip-steps p { color:var(--public-muted); font-size:13px; line-height:1.7; }
.public-chip-dual-section { padding:88px 0; color:#d9e9ed; background:var(--public-blue); }.public-chip-dual-grid { display:grid; grid-template-columns:1fr .9fr; align-items:center; gap:74px; }.public-chip-dual-copy h2 { margin:0 0 18px; color:#fff; font-size:40px; letter-spacing:-.035em; }.public-chip-dual-copy > p { color:#b7ccd4; line-height:1.75; }.public-chip-dual-copy dl { margin:28px 0 0; }.public-chip-dual-copy dl div { margin-top:18px; padding-top:18px; border-top:1px solid rgba(255,255,255,.12); }.public-chip-dual-copy dt { color:#fff; }.public-chip-dual-copy dt i { margin-right:7px; color:#65d0cf; }.public-chip-dual-copy dd { margin:5px 0 0; color:#a9c0c9; font-size:12px; }
.public-chip-compare-card { padding:28px; border:1px solid rgba(255,255,255,.14); border-radius:24px; background:rgba(255,255,255,.07); box-shadow:0 28px 70px rgba(0,0,0,.2); }.public-chip-compare-card > div { padding:22px; border-radius:15px; background:#fff; }.public-chip-compare-card > i { display:grid; place-items:center; height:50px; color:#6bd1d0; font-size:27px; }.public-chip-compare-card span,.public-chip-compare-card small { display:block; color:#78909a; font-size:9px; letter-spacing:.08em; }.public-chip-compare-card strong { display:block; margin:6px 0; color:var(--public-blue); font-size:20px; letter-spacing:.06em; }
.public-chip-facts-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; }.public-chip-facts-grid article { padding:25px; border-radius:17px; border:1px solid var(--public-border); }.public-chip-facts-grid article.is-positive { background:#f3fbf8; }.public-chip-facts-grid article.is-neutral { background:#f7f9fa; }.public-chip-facts-grid i { font-size:25px; }.public-chip-facts-grid .is-positive i { color:#25a673; }.public-chip-facts-grid .is-neutral i { color:#82949c; }.public-chip-facts-grid h3 { margin:15px 0 7px; color:var(--public-blue); font-size:16px; }.public-chip-facts-grid p { margin:0; color:var(--public-muted); font-size:12px; line-height:1.65; }
.public-chip-security-section { padding:48px 0; color:#d8e9ed; background:linear-gradient(120deg,#0b304c,#0a2a43 58%,#0e4d5d); }.public-chip-security-grid { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:28px; }.public-chip-security-icon { display:grid; place-items:center; width:74px; height:74px; border-radius:20px; color:#fff; background:rgba(80,205,201,.16); font-size:34px; }.public-chip-security-grid h2 { margin:0 0 8px; color:#fff; font-size:27px; }.public-chip-security-grid p { margin:0; color:#a9c2cb; font-size:13px; }
.public-chip-faq-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:start; }.public-chip-faq-grid h2 { color:var(--public-blue); font-size:40px; }.public-chip-faq-grid > div p { color:var(--public-muted); line-height:1.75; }.public-chip-faq-grid ol { margin:0; padding:0; list-style:none; }.public-chip-faq-grid li { display:grid; grid-template-columns:auto 1fr; gap:17px; padding:20px 0; border-bottom:1px solid var(--public-border); }.public-chip-faq-grid li > span { display:grid; place-items:center; width:38px; height:38px; border-radius:12px; color:#fff; background:var(--public-teal); font-weight:850; }.public-chip-faq-grid strong { color:var(--public-blue); }.public-chip-faq-grid li p { margin:4px 0 0; color:var(--public-muted); font-size:12px; }
.public-cta-band { padding:58px 0; color:#fff; background:linear-gradient(120deg,var(--public-teal-dark),#0d6d78); }.public-cta-band > .container { display:flex; align-items:center; justify-content:space-between; gap:30px; }.public-cta-band h2 { margin:0; color:#fff; font-size:31px; }.public-cta-band .public-eyebrow { margin-bottom:7px; }

/* Contact */
.public-contact-hero { padding-bottom:76px; }.public-contact-hero-grid { display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:70px; }.public-contact-hero-meta { display:grid; gap:12px; margin-top:28px; }.public-contact-hero-meta span { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:3px 10px; color:var(--public-muted); font-size:12px; }.public-contact-hero-meta i { grid-row:1/3; color:var(--public-teal); font-size:22px; }.public-contact-hero-meta strong { color:var(--public-blue); }
.public-contact-visual { position:relative; min-height:290px; display:flex; flex-direction:column; justify-content:center; padding:42px; overflow:hidden; border-radius:28px; color:#fff; background:linear-gradient(145deg,var(--public-blue),#0e5968); box-shadow:var(--public-shadow); }.public-contact-visual::after { content:""; position:absolute; width:230px; height:230px; right:-90px; top:-100px; border:38px solid rgba(255,255,255,.07); border-radius:50%; }.public-contact-visual > i { margin-bottom:22px; color:#68d2cf; font-size:40px; }.public-contact-visual strong { font-size:31px; line-height:1.15; }.public-contact-visual span { margin-top:13px; color:#b8d0d7; font-size:12px; }.public-contact-options { padding-top:70px; }.public-contact-options article a { display:inline-flex; gap:6px; margin-top:8px; color:var(--public-teal-dark); font-size:12px; font-weight:800; text-decoration:none; }
.public-contact-form-section { padding:90px 0; color:#d7e6eb; background:linear-gradient(135deg,#08243a,#0a2a43); }.public-contact-layout { display:grid; grid-template-columns:.8fr 1.2fr; align-items:start; gap:70px; }.public-contact-copy h2 { margin:0 0 18px; color:#fff; font-size:41px; letter-spacing:-.04em; }.public-contact-copy > p { color:#a9bec7; line-height:1.75; }.public-contact-copy ul { margin:28px 0 0; padding:0; list-style:none; }.public-contact-copy li { margin-top:13px; color:#c2d5db; font-size:13px; }.public-contact-copy li i { margin-right:8px; color:#67d1ce; }.public-contact-form-card { padding:30px; border-radius:22px; color:var(--public-ink); background:#fff; box-shadow:0 28px 70px rgba(0,0,0,.22); }.public-contact-form-card .public-form { padding:0; box-shadow:none; border:0; }.public-field label small { color:var(--public-muted); font-weight:500; }.public-response-note { display:flex; align-items:flex-start; gap:18px; max-width:900px; padding:25px; border:1px solid #d6e6e8; border-radius:17px; background:#f6fbfb; }.public-response-note > i { color:var(--public-teal); font-size:28px; }.public-response-note h2 { margin:0 0 5px; color:var(--public-blue); font-size:18px; }.public-response-note p { margin:0; color:var(--public-muted); font-size:12px; }

/* Public pet editor */
.public-back-link { display:inline-flex; align-items:center; gap:7px; margin-bottom:18px; color:var(--public-teal-dark); font-size:12px; font-weight:800; text-decoration:none; }.public-pet-edit-section { background:#f3f7f8; }.public-pet-edit-layout { display:grid; grid-template-columns:300px 1fr; align-items:start; gap:25px; }.public-pet-identity-card { position:sticky; top:98px; overflow:hidden; padding:0 22px 24px; border:1px solid var(--public-border); border-radius:21px; background:#fff; box-shadow:0 14px 38px rgba(10,42,67,.07); }.public-pet-edit-cover { display:grid; place-items:center; height:225px; margin:0 -22px 22px; color:#fff; background:linear-gradient(145deg,#cfe5e6,#80c7c6); font-size:52px; }.public-pet-edit-cover img { width:100%; height:100%; object-fit:cover; }.public-pet-identity-card h2 { margin:0; color:var(--public-blue); }.public-pet-identity-card > span { color:var(--public-muted); font-size:12px; }.public-pet-identity-card dl { margin:20px 0; }.public-pet-identity-card dl div { padding:11px 0; border-top:1px solid var(--public-border); }.public-pet-identity-card dt { color:var(--public-muted); font-size:9px; text-transform:uppercase; letter-spacing:.09em; }.public-pet-identity-card dd { margin:3px 0 0; color:var(--public-blue); font-size:12px; font-weight:800; word-break:break-all; }.public-pet-identity-card > p { display:flex; gap:8px; margin:0; color:var(--public-muted); font-size:10px; line-height:1.55; }.public-pet-edit-main { min-width:0; }.public-pet-edit-form { margin:0; }.public-pet-gallery-manager { margin-top:24px; padding:28px; border:1px solid var(--public-border); border-radius:20px; background:#fff; }.public-managed-images-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.public-managed-image { position:relative; overflow:hidden; border:1px solid var(--public-border); border-radius:15px; background:#fff; }.public-managed-image.is-primary { border-color:var(--public-teal); box-shadow:0 0 0 3px rgba(27,166,166,.11); }.public-managed-image > img { width:100%; aspect-ratio:1.2; object-fit:cover; }.public-primary-image-label { position:absolute; left:8px; top:8px; padding:5px 8px; border-radius:999px; color:#fff; background:var(--public-teal-dark); font-size:9px; font-weight:850; }.public-managed-image-actions { display:flex; gap:6px; padding:9px; }.public-managed-image-actions form { flex:1; }.public-managed-image-actions button { width:100%; padding:7px; border:1px solid var(--public-border); border-radius:8px; color:var(--public-blue); background:#fff; font-size:9px; font-weight:800; cursor:pointer; }.public-managed-image-actions button.is-danger { color:#a53932; }.public-empty-inline { display:flex; align-items:center; gap:10px; padding:22px; border-radius:13px; color:var(--public-muted); background:#f5f8f9; }.public-pet-manage-link { display:inline-flex; align-items:center; justify-content:center; gap:7px; width:100%; margin-top:18px; padding:10px; border:1px solid #b8d5d7; border-radius:10px; color:var(--public-teal-dark); background:#f5fbfb; font-size:11px; font-weight:800; text-decoration:none; }

/* Shared public-page polish and motion */
#main-content { overflow: clip; }
.public-motion-section { position: relative; isolation: isolate; }
.public-motion-section > .container { position: relative; z-index: 1; }
.public-page-hero,
.public-faq-hero,
.public-microchip-hero,
.public-professional-hero,
.public-contact-hero,
.public-auth-section,
.public-tool-section { position: relative; isolation: isolate; overflow: hidden; }
.public-page-hero::before,
.public-faq-hero::before,
.public-auth-section::before,
.public-tool-section::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    opacity: .26;
    background-image: radial-gradient(rgba(19,137,137,.24) .72px, transparent .72px);
    background-size: 24px 24px;
    mask-image: linear-gradient(115deg, #000, transparent 47%, #000);
    pointer-events: none;
}
.public-page-hero::after,
.public-faq-hero::after,
.public-auth-section::after,
.public-tool-section::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: 330px;
    height: 330px;
    right: -165px;
    bottom: -235px;
    border: 55px solid rgba(27,166,166,.065);
    border-radius: 50%;
    pointer-events: none;
}
.public-page-hero > .container,
.public-faq-hero > .container { position: relative; z-index: 1; }
.public-page-hero .public-eyebrow,
.public-faq-hero .public-eyebrow {
    padding: 7px 11px;
    border: 1px solid rgba(27,166,166,.19);
    border-radius: 999px;
    background: rgba(255,255,255,.7);
    box-shadow: 0 8px 24px rgba(10,42,67,.045);
    backdrop-filter: blur(7px);
}
.public-tool-section,
.public-auth-section {
    background:
        radial-gradient(circle at 14% 10%, rgba(27,166,166,.08), transparent 23%),
        radial-gradient(circle at 88% 82%, rgba(48,132,163,.075), transparent 25%),
        #fff;
}
.public-tool-card,
.public-auth-card,
.public-registration-card,
.public-contact-form-card,
.public-application-card {
    border-color: rgba(196,216,220,.9);
    box-shadow: 0 28px 72px rgba(10,42,67,.105);
}
.public-section-heading .public-eyebrow { position: relative; }
.public-section-heading .public-eyebrow::after {
    content: "";
    width: 27px;
    height: 1px;
    margin-left: 8px;
    background: currentColor;
    opacity: .35;
}
.public-info-grid article,
.public-chip-steps article,
.public-chip-facts-grid article,
.public-professional-features article,
.public-professional-audiences article,
.public-faq-list details,
.public-owned-pet-card,
.public-owner-profile-grid article,
.public-managed-image,
.public-centre-card {
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background-color .25s ease;
}
.public-faq-list details[open] {
    border-color: #abd7d8;
    background: linear-gradient(145deg, #fff, #f5fbfb);
    box-shadow: 0 15px 34px rgba(10,42,67,.07);
}
.public-faq-list details[open] summary { color: var(--public-teal-dark); }
.public-pet-manage-link,
.public-text-link,
.public-contact-options article a { transition: color .18s ease, transform .18s ease, background-color .18s ease; }
.public-contact-visual > i,
.public-professional-panel > div i { animation: publicSoftIconFloat 4.8s ease-in-out infinite; }
.public-professional-panel > div:nth-child(2) i { animation-delay: .7s; }
.public-professional-panel > div:nth-child(3) i { animation-delay: 1.4s; }
.public-chip-scan-line { animation: publicChipScanPulse 4.6s ease-in-out infinite; }

[data-public-reveal] { backface-visibility: hidden; }
.public-reveal-pending {
    opacity: 0;
    transform: translate3d(0, 25px, 0);
    will-change: opacity, transform;
}
.public-reveal-pending.public-reveal-from-left { transform: translate3d(-30px, 10px, 0); }
.public-reveal-pending.public-reveal-from-right { transform: translate3d(30px, 10px, 0); }
.public-reveal-pending.public-reveal-scale { transform: translate3d(0, 18px, 0) scale(.975); }
.public-reveal-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    transition:
        opacity .62s ease var(--public-reveal-delay, 0ms),
        transform .62s cubic-bezier(.2,.72,.22,1) var(--public-reveal-delay, 0ms);
}

@media (hover: hover) and (pointer: fine) {
    .public-info-grid article:hover,
    .public-chip-steps article:hover,
    .public-chip-facts-grid article:hover,
    .public-professional-features article:hover,
    .public-professional-audiences article:hover,
    .public-owned-pet-card:hover,
    .public-owner-profile-grid article:hover,
    .public-managed-image:hover,
    .public-centre-card:hover {
        border-color: #aed6d8;
        box-shadow: 0 24px 52px rgba(10,42,67,.105);
        transform: translateY(-5px);
    }
    .public-faq-list details:hover { border-color: #badbdc; transform: translateY(-2px); }
    .public-pet-manage-link:hover,
    .public-text-link:hover,
    .public-contact-options article a:hover { transform: translateX(3px); }
}

/* Compact legal and friendly error pages */
.public-legal-section { padding: 70px 0 92px; background: linear-gradient(180deg, #fff, #f4f8f9); }
.public-legal-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; }
.public-legal-card {
    padding: 31px;
    border: 1px solid var(--public-border);
    border-radius: 21px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 18px 44px rgba(10,42,67,.07);
}
.public-legal-card > i { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 19px; border-radius: 14px; color: var(--public-teal-dark); background: #e6f6f6; font-size: 22px; }
.public-legal-card h2 { margin: 0 0 9px; color: var(--public-blue); font-size: 22px; }
.public-legal-card p { margin: 0; color: var(--public-muted); line-height: 1.75; }
.public-legal-card-wide { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 25px; background: linear-gradient(125deg, #f4fbfb, #fff); }
.public-legal-card-wide > i { flex: 0 0 48px; margin: 0; }
.public-legal-card-wide > div { flex: 1; }
.public-error-section { min-height: 610px; display: grid; place-items: center; padding: 72px 16px; background: radial-gradient(circle at 50% 20%, rgba(27,166,166,.13), transparent 35%), var(--public-soft); }
.public-error-card { width: min(100%, 720px); padding: 48px; border: 1px solid var(--public-border); border-radius: 28px; background: #fff; box-shadow: var(--public-shadow); text-align: center; }
.public-error-icon { width: 72px; height: 72px; display: grid; place-items: center; margin: 0 auto 22px; border-radius: 23px; color: var(--public-teal-dark); background: #e8f7f7; font-size: 31px; }
.public-error-card h1 { margin: 0 0 12px; color: var(--public-blue); font-size: clamp(34px,5vw,51px); letter-spacing: -.04em; }
.public-error-card > p { max-width: 560px; margin: 0 auto; color: var(--public-muted); font-size: 17px; line-height: 1.7; }
.public-error-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 11px; margin-top: 28px; }
.public-error-request { display: inline-flex; gap: 7px; margin-top: 24px; padding: 8px 11px; border-radius: 9px; color: #667b85; background: #f3f7f8; font-size: 11px; }

@keyframes publicSoftIconFloat {
    50% { transform: translateY(-6px) rotate(-3deg); }
}
@keyframes publicChipScanPulse {
    0%, 100% { opacity: .25; transform: rotate(-23deg) scaleX(.62); }
    45%, 65% { opacity: 1; transform: rotate(-23deg) scaleX(1); }
}

@media (max-width: 1199px) {
    .public-header { backdrop-filter: blur(18px); }
    .public-nav-container { min-height: 72px; }
    .public-desktop-navigation { display: none; }
    .public-nav-toggle { display: block; margin-left: auto; }
    .public-mobile-navigation { z-index: 1060; width: min(420px, 100vw) !important; height: 100%; height: 100dvh; max-height: none; display: flex; overflow: hidden; border: 0 !important; background: linear-gradient(165deg, #f9fcfc 0%, #fff 48%, #edf8f8 100%); box-shadow: -28px 0 80px rgba(4,31,48,.22); overscroll-behavior: contain; }
    .public-mobile-navigation::before { content: ""; position: absolute; width: 220px; height: 220px; right: -90px; top: 52px; border: 38px solid rgba(27,166,166,.055); border-radius: 50%; pointer-events: none; }
    .public-mobile-nav-header { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; padding: max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 16px 20px; border-bottom: 1px solid rgba(207,224,227,.85); }
    .public-mobile-nav-brand { min-width: 0; display: flex; align-items: center; gap: 11px; }
    .public-mobile-nav-brand > span:last-child { min-width: 0; }
    .public-mobile-nav-brand strong, .public-mobile-nav-brand small { display: block; }
    .public-mobile-nav-brand strong { color: var(--public-blue); font-size: 16px; }
    .public-mobile-nav-brand small { overflow: hidden; margin-top: 2px; color: #72858e; font-size: 9px; white-space: nowrap; text-overflow: ellipsis; }
    .public-mobile-nav-close { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; border: 1px solid #d3e1e4; border-radius: 13px; background: rgba(255,255,255,.85); color: var(--public-blue); font-size: 17px; }
    .public-nav-body { position: relative; z-index: 1; display: flex; min-height: 0; align-items: stretch; flex-direction: column; padding: 18px 20px max(24px, env(safe-area-inset-bottom)); overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; }
    .public-mobile-nav-intro { display: block; margin-bottom: 14px; padding: 16px 17px; border: 1px solid rgba(104,191,192,.24); border-radius: 17px; background: linear-gradient(125deg, #0a2a43, #0d5362); box-shadow: 0 14px 34px rgba(10,42,67,.15); }
    .public-mobile-nav-intro span, .public-mobile-nav-intro strong { display: block; }
    .public-mobile-nav-intro span { color: #90d9d6; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
    .public-mobile-nav-intro span i { margin-right: 4px; }
    .public-mobile-nav-intro strong { margin-top: 5px; color: #fff; font-size: 17px; }
    .public-nav-links { width: 100%; gap: 6px; margin: 0 !important; padding: 0; }
    .public-nav-links .nav-link { position: relative; display: grid; grid-template-columns: 44px minmax(0,1fr) auto; align-items: center; gap: 12px; min-height: 62px; padding: 8px 38px 8px 9px !important; border: 1px solid transparent; border-radius: 15px; color: #294957; }
    .public-nav-links .nav-link::after { content: "\f285"; position: absolute; right: 14px; color: #9aadb5; font-family: "bootstrap-icons"; font-size: 11px; }
    .public-nav-links .nav-link > i { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; color: #168d90; background: #e6f5f5; font-size: 18px; transition: transform .18s ease, background .18s ease; }
    .public-nav-links .nav-link span, .public-nav-links .nav-link strong, .public-nav-links .nav-link small { display: block; }
    .public-nav-links .nav-link strong { color: var(--public-blue); font-size: 13px; font-weight: 820; }
    .public-nav-links .nav-link small { margin-top: 2px; color: #778a93; font-size: 9px; font-weight: 560; }
    .public-nav-links .nav-link:hover, .public-nav-links .nav-link:focus, .public-nav-links .nav-link.active { border-color: #c9e3e3; background: rgba(255,255,255,.92); box-shadow: 0 9px 23px rgba(10,42,67,.07); }
    .public-nav-links .nav-link:hover > i, .public-nav-links .nav-link.active > i { color: #fff; background: var(--public-teal); transform: rotate(-4deg) scale(1.04); }
    .public-nav-actions { width: 100%; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; margin-top: 17px; padding: 13px; border: 1px solid #d8e6e8; border-radius: 17px; background: rgba(255,255,255,.88); box-shadow: 0 12px 30px rgba(10,42,67,.07); }
    .public-nav-actions form { min-width: 0; }
    .public-nav-actions .public-account-link, .public-nav-actions .public-link-button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 9px 12px; border: 1px solid #d4e2e5; border-radius: 11px; background: #f6fafb; font-size: 11px; }
    .public-nav-actions .public-link-button { width: 100%; color: #526a75; }
    .public-nav-actions .public-nav-cta { grid-column: 1 / -1; width: 100%; }
    .public-mobile-nav-footer { display: flex; align-items: center; justify-content: center; gap: 9px; margin-top: 15px; color: #617681; font-size: 10px; line-height: 1.45; text-align: left; }
    .public-mobile-nav-footer > i { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; color: #15888c; background: #dff2f2; }
    .public-mobile-nav-footer small { color: #8a9aa2; font-size: 8.5px; }
    .offcanvas-backdrop { z-index: 1055; }
    .offcanvas-backdrop.show { opacity: .46; backdrop-filter: blur(5px); }
    .public-chip-steps,.public-chip-facts-grid { grid-template-columns:repeat(2,1fr); }
}
@media (hover: none) and (pointer: coarse) {
    .offcanvas-backdrop.show { -webkit-backdrop-filter: none; backdrop-filter: none; }
}
@media (max-width: 991px) {
    .public-home-hero { min-height: 0; padding-top: 76px; }
    .public-hero-grid, .public-split-section { grid-template-columns: 1fr; }
    .public-hero-copy { text-align: center; }
    .public-hero-copy > p { margin-left: auto; margin-right: auto; }
    .public-hero-actions, .public-hero-proof { justify-content: center; }
    .public-hero-visual { min-height: 430px; }
    .public-feature-grid { grid-template-columns: repeat(2, 1fr); }
    .public-trust-grid { grid-template-columns: repeat(2, 1fr); }
    .public-trust-grid > div:nth-child(2) { border-right: 0; }
    .public-footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }
    .public-footer-grid > div:last-child { grid-column: 2; }
    .public-cta-card { align-items: flex-start; flex-direction: column; }
    .public-form-grid, .public-professional-hero-grid, .public-application-grid { grid-template-columns: 1fr; }
    .public-pets-grid { grid-template-columns: repeat(2,1fr); }
    .public-professional-features { grid-template-columns: repeat(2,1fr); }
    .public-application-copy, .public-faq-layout aside { position: static; }
    .public-faq-layout { grid-template-columns: 1fr; }
    .public-faq-layout aside { grid-template-columns: 1fr 1fr; }
    .public-home-actions-card { grid-template-columns: repeat(3,1fr); }
    .public-home-actions-intro { grid-column: 1 / -1; text-align: center; }
    .public-microchip-hero-grid,.public-chip-dual-grid,.public-contact-hero-grid,.public-contact-layout,.public-chip-faq-grid { grid-template-columns:1fr; }
    .public-chip-visual { min-height:420px; }
    .public-chip-security-grid { grid-template-columns:auto 1fr; }
    .public-chip-security-grid .public-btn { grid-column:1/-1; }
    .public-cta-band > .container { align-items:flex-start; flex-direction:column; }
    .public-pet-edit-layout { grid-template-columns:1fr; }
    .public-pet-identity-card { position:static; }
    .public-pet-edit-cover { height:300px; }
}
@media (max-width: 767px) {
    .public-hero { padding: 64px 0 55px; }
    .public-hero h1 { font-size: 42px; }
    .public-hero-visual { min-height: 390px; }
    .public-orbit-one { width: 360px; height: 360px; }
    .public-orbit-two { width: 280px; height: 280px; }
    .public-floating-shield { right: 4px; }
    .public-floating-search { left: 2px; bottom: 22px; }
    .public-section { padding: 68px 0; }
    .public-info-grid { grid-template-columns: 1fr; }
    .public-cta-card { padding: 34px 25px; }
    .public-cta-actions { width: 100%; flex-direction: column; }
    .public-footer-grid { grid-template-columns: 1fr 1fr; }
    .public-footer-brand { grid-column: 1 / -1; }
    .public-footer-grid > div:last-child { grid-column: auto; }
    .public-profile-prompt { grid-template-columns: auto 1fr; }
    .public-profile-prompt .public-btn { grid-column: 1 / -1; }
    .public-signin-gate { grid-template-columns: auto 1fr; }
    .public-signin-gate .public-btn { grid-column: 1 / -1; }
    .public-owner-profile-grid { grid-template-columns: 1fr; }
    .public-application-copy h2 { font-size: 35px; }
    .public-owner-choice-grid { grid-template-columns: 1fr; }
    .public-image-preview-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .public-legal-grid { grid-template-columns: 1fr; }
    .public-legal-card-wide { grid-column: auto; align-items: flex-start; flex-direction: column; }
}
@media (max-width: 575px) {
    .public-home-hero { padding-top: 53px; padding-bottom: 72px; }
    .public-home-hero .public-eyebrow { font-size: 10px; }
    .public-hero-network-node { width: 36px; height: 36px; font-size: 13px; }
    .public-hero-network-node-one { left: 8px; top: 68px; }
    .public-hero-network-node-two { right: 10px; top: 104px; }
    .public-hero-network-node-three { display: none; }
    .public-pet-card-brand { margin-bottom: 14px; }
    .public-hero h1 { font-size: 36px; }
    .public-hero-copy > p { font-size: 17px; }
    .public-hero-actions .public-btn { width: 100%; }
    .public-hero-visual { min-height: 350px; }
    .public-orbit-one { width: 310px; height: 310px; }
    .public-orbit-two { width: 240px; height: 240px; }
    .public-pet-card { padding: 21px; }
    .public-floating-badge { padding: 9px; }
    .public-floating-badge span { display: none; }
    .public-feature-grid, .public-trust-grid, .public-footer-grid { grid-template-columns: 1fr; }
    .public-trust-grid > div { justify-content: flex-start; border-right: 0; border-bottom: 1px solid var(--public-border); }
    .public-trust-grid > div:last-child { border-bottom: 0; }
    .public-footer-brand, .public-footer-grid > div:last-child { grid-column: auto; }
    .public-footer-bottom { flex-direction: column; }
    .public-tool-card, .public-auth-card { padding: 26px 20px; }
    .public-dashboard-header { align-items: stretch; flex-direction: column; }
    .public-registration-card { padding: 20px 14px; }
    .public-form-section { padding: 20px 15px; }
    .public-identifier-row, .public-fields-grid, .public-pets-grid, .public-professional-features, .public-faq-layout aside { grid-template-columns: 1fr; }
    .public-identifier-row .public-btn { width: 100%; }
    .public-verified-email { align-items: flex-start; flex-direction: column; }
    .public-verified-email strong { margin-left: 0; word-break: break-all; }
    .public-professional-audiences article { grid-template-columns: 1fr; }
    .public-owned-pet-media { height: 220px; }
    .public-home-actions { margin-top: -20px; }
    .public-home-actions-card { grid-template-columns: 1fr; }
    .public-home-actions-intro { grid-column: auto; }
    .public-home-actions-card > a { border-right: 0; border-bottom: 1px solid var(--public-border); }
    .public-image-preview-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .public-chip-steps,.public-chip-facts-grid,.public-managed-images-grid { grid-template-columns:1fr; }
    .public-chip-data-card { left:5px; }
    .public-chip-code-card { right:5px; }
    .public-chip-orbit-one { width:330px; height:330px; }
    .public-chip-orbit-two { width:250px; height:250px; }
    .public-contact-form-card,.public-pet-gallery-manager { padding:19px; }
    .public-contact-copy h2,.public-chip-dual-copy h2,.public-chip-faq-grid h2 { font-size:32px; }
    .public-legal-section { padding: 48px 0 64px; }
    .public-legal-card { padding: 24px; }
    .public-error-card { padding: 35px 22px; border-radius: 22px; }
    .public-error-actions .public-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .public-home-hero .public-orbit-one,
    .public-home-hero .public-orbit-two,
    .public-home-hero .public-hero-visual::before,
    .public-home-hero .public-pet-card,
    .public-home-hero .public-floating-badge,
    .public-hero-network-node,
    .public-pet-card-scan,
    .public-home-security-ring,
    .public-home-security-visual .public-canada-shape,
    .public-hero-pulse span,
    .public-contact-visual > i,
    .public-professional-panel > div i,
    .public-chip-scan-line { animation: none !important; }
    .public-reveal-pending,
    .public-reveal-pending.public-reveal-from-left,
    .public-reveal-pending.public-reveal-from-right,
    .public-reveal-pending.public-reveal-scale,
    .public-reveal-visible { opacity: 1; transform: none; transition: none; will-change: auto; }
    .public-feature-card,
    .public-home-actions-card > a,
    .public-nav-links .nav-link,
    .public-nav-links .nav-link > i,
    .public-nav-toggle span,
    .public-info-grid article,
    .public-chip-steps article,
    .public-chip-facts-grid article,
    .public-professional-features article,
    .public-professional-audiences article,
    .public-faq-list details,
    .public-owned-pet-card,
    .public-owner-profile-grid article,
    .public-managed-image,
    .public-centre-card,
    .public-btn { transition: none; }
}

/* Temporary, simplified public experience */
.public-simple-body { display: flex; min-height: 100vh; flex-direction: column; background: #f7fafb; }
.public-simple-body #main-content { flex: 1; }
.public-simple-header { position: sticky; top: 0; z-index: 1030; border-bottom: 1px solid rgba(208,224,227,.86); background: rgba(255,255,255,.94); box-shadow: 0 8px 30px rgba(10,42,67,.045); backdrop-filter: blur(16px); }
.public-simple-nav { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.public-simple-desktop-menu { display: flex; align-items: center; gap: 5px; }
.public-simple-desktop-menu > a { min-height: 42px; display: inline-flex; align-items: center; gap: 7px; padding: 10px 13px; border-radius: 10px; color: #415a66; font-size: 13px; font-weight: 750; text-decoration: none; }
.public-simple-desktop-menu > a:hover { color: var(--public-teal-dark); background: #edf8f8; }
.public-simple-desktop-menu > a > i { color: var(--public-teal-dark); }
.public-simple-desktop-menu form { margin: 0; }
.public-simple-desktop-menu .public-simple-profile-link { margin-left: 8px; color: #fff; background: var(--public-blue); }
.public-simple-desktop-menu .public-simple-profile-link:hover { color: #fff; background: var(--public-blue-2); }
.public-simple-desktop-menu .public-simple-profile-link > i { color: #79d8d4; }
.public-simple-signout { min-height: 40px; padding: 8px 11px; border: 0; color: #677b85; background: transparent; font-size: 12px; font-weight: 750; cursor: pointer; }
.public-simple-signout:hover { color: var(--public-teal-dark); }
.public-simple-nav-toggle { display: none; width: 44px; height: 44px; padding: 11px; border: 1px solid #ccdde1; border-radius: 13px; background: #fff; box-shadow: 0 8px 20px rgba(10,42,67,.07); }
.public-simple-nav-toggle span:not(.visually-hidden) { display: block; width: 100%; height: 2px; margin: 4px 0; border-radius: 4px; background: var(--public-blue); transition: transform .18s ease, opacity .18s ease; }
.public-simple-nav-toggle[aria-expanded="true"] span:first-child { transform: translateY(6px) rotate(45deg); }
.public-simple-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.public-simple-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.public-simple-mobile-menu { border-top: 1px solid #e0eaec; background: rgba(247,251,251,.98); }
.public-simple-mobile-menu[hidden] { display: none !important; }
.public-simple-mobile-menu > .container { display: grid; gap: 7px; padding-top: 13px; padding-bottom: 16px; }
.public-simple-mobile-menu a,
.public-simple-mobile-menu button { width: 100%; min-height: 49px; display: flex; align-items: center; gap: 11px; padding: 10px 13px; border: 1px solid #d9e6e8; border-radius: 12px; color: var(--public-blue); background: #fff; font-size: 13px; font-weight: 780; text-align: left; text-decoration: none; }
.public-simple-mobile-menu form { margin: 0; }
.public-simple-mobile-menu i { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: var(--public-teal-dark); background: #e8f6f6; }
.public-simple-footer { padding: 25px 0; border-top: 1px solid rgba(214,229,232,.9); background: #fff; }
.public-simple-footer-row { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 34px; }
.public-simple-footer-row > div { display: flex; align-items: center; gap: 16px; color: #758891; font-size: 11px; }
.public-simple-footer-row .public-brand { font-size: 17px; }
.public-simple-footer-row .public-brand-mark { width: 32px; height: 32px; border-radius: 10px 10px 10px 3px; }
.public-simple-footer-row nav { display: flex; gap: 18px; }
.public-simple-footer-row nav a { color: #546b76; font-size: 12px; font-weight: 700; text-decoration: none; }
.public-simple-footer-row nav a:hover { color: var(--public-teal-dark); }
.public-simple-footer-row > small { color: #8a9aa2; font-size: 10px; }

/* Simplified temporary homepage */
.public-simple-home { position: relative; min-height: min(690px, calc(100vh - 150px)); display: grid; align-items: center; overflow: hidden; padding: 80px 0; background: radial-gradient(circle at 82% 22%, rgba(27,166,166,.13), transparent 27%), linear-gradient(145deg,#f8fbfb 0%,#fff 54%,#edf8f8 100%); }
.public-simple-home::before { content: ""; position: absolute; width: 360px; height: 360px; left: -230px; top: -205px; border: 64px solid rgba(27,166,166,.055); border-radius: 50%; }
.public-simple-home-grid { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: 80px; }
.public-simple-home-copy { position: relative; z-index: 1; }
.public-simple-kicker { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px; color: var(--public-teal-dark); font-size: 11px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.public-simple-home h1 { max-width: 690px; margin: 0; color: var(--public-blue); font-size: clamp(45px,6vw,75px); line-height: 1.02; letter-spacing: -.055em; font-weight: 880; }
.public-simple-home-copy > p { max-width: 590px; margin: 24px 0 30px; color: #5c707b; font-size: 18px; line-height: 1.7; }
.public-simple-home-actions { display: flex; flex-wrap: wrap; gap: 11px; }
.public-simple-home-visual { position: relative; min-height: 420px; display: grid; place-items: center; }
.public-simple-home-visual::before,
.public-simple-home-visual::after { content: ""; position: absolute; border: 1px solid rgba(27,166,166,.2); border-radius: 50%; }
.public-simple-home-visual::before { width: 390px; height: 390px; }
.public-simple-home-visual::after { width: 300px; height: 300px; border-style: dashed; }
.public-simple-pet-badge { position: absolute; z-index: 2; right: 7%; top: 12%; width: 72px; height: 72px; display: grid; place-items: center; border: 8px solid #fff; border-radius: 24px; color: #fff; background: var(--public-teal); box-shadow: 0 18px 42px rgba(27,166,166,.24); font-size: 25px; transform: rotate(7deg); }
.public-simple-registry-card { position: relative; z-index: 1; width: min(100%,350px); min-height: 225px; display: grid; align-content: center; justify-items: center; padding: 36px; overflow: hidden; border: 1px solid rgba(255,255,255,.9); border-radius: 29px; background: rgba(255,255,255,.9); box-shadow: 0 30px 80px rgba(10,42,67,.15); backdrop-filter: blur(13px); transform: rotate(-2.5deg); }
.public-simple-registry-card::after { content: ""; position: absolute; width: 150px; height: 150px; right: -75px; bottom: -90px; border: 26px solid rgba(27,166,166,.075); border-radius: 50%; }
.public-simple-registry-card > div { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 2px 10px; }
.public-simple-registry-card .public-brand-mark { grid-row: 1 / 3; }
.public-simple-registry-card strong { color: var(--public-blue); font-size: 19px; }
.public-simple-registry-card small { color: #788b94; font-size: 10px; }
.public-simple-registry-card > i { margin: 27px 0 7px; color: var(--public-teal); font-size: 39px; }
.public-simple-registry-card > span { color: var(--public-blue); font-size: 13px; font-weight: 800; }
.public-simple-benefits { padding: 0 0 58px; background: #f7fafb; }
.public-simple-benefits > .container { display: grid; grid-template-columns: repeat(3,1fr); overflow: hidden; border: 1px solid #d9e6e8; border-radius: 18px; background: #fff; box-shadow: 0 18px 45px rgba(10,42,67,.055); }
.public-simple-benefits > .container > div { min-height: 82px; display: flex; align-items: center; justify-content: center; gap: 11px; border-right: 1px solid #e1eaec; color: #435e69; font-size: 13px; font-weight: 780; }
.public-simple-benefits > .container > div:last-child { border-right: 0; }
.public-simple-benefits i { color: var(--public-teal-dark); font-size: 20px; }

/* Modern public email-code sign in */
.public-modern-auth { min-height: calc(100vh - 150px); display: grid; align-items: center; padding: 62px 0 80px; background: radial-gradient(circle at 12% 22%, rgba(27,166,166,.11), transparent 28%), linear-gradient(145deg,#f4f9f9,#fff 58%,#eef7f7); }
.public-modern-auth-layout { display: grid; grid-template-columns: .9fr 1.1fr; align-items: stretch; max-width: 970px; }
.public-modern-auth-brand { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 56px; overflow: hidden; border-radius: 28px 0 0 28px; color: #fff; background: linear-gradient(145deg,#08263e,#0c4b5d); box-shadow: 0 30px 75px rgba(10,42,67,.18); }
.public-modern-auth-brand::after { content: ""; position: absolute; width: 240px; height: 240px; right: -120px; bottom: -135px; border: 42px solid rgba(104,214,211,.08); border-radius: 50%; }
.public-modern-auth-icon { width: 58px; height: 58px; display: grid; place-items: center; margin-bottom: 25px; border-radius: 18px; color: #78d7d3; background: rgba(255,255,255,.09); font-size: 27px; }
.public-modern-auth-brand .public-simple-kicker { margin-bottom: 12px; color: #79d8d4; }
.public-modern-auth-brand h2 { margin: 0; color: #fff; font-size: 39px; line-height: 1.08; letter-spacing: -.04em; }
.public-modern-auth-brand > p { margin: 19px 0 30px; color: #b6ccd4; font-size: 14px; line-height: 1.75; }
.public-modern-auth-trust { display: flex; align-items: center; gap: 8px; color: #cce0e5; font-size: 11px; font-weight: 700; }
.public-modern-auth-trust i { color: #72d6d2; }
.public-modern-auth-card { width: 100%; min-height: 535px; display: flex; flex-direction: column; justify-content: center; margin: 0; padding: 52px; border-left: 0; border-radius: 0 28px 28px 0; box-shadow: 0 30px 75px rgba(10,42,67,.13); }
.public-modern-auth-card .public-auth-copy { margin-bottom: 12px; }
.public-modern-auth-card .public-auth-copy h1 { font-size: 35px; letter-spacing: -.035em; }
.public-modern-auth-card .public-auth-copy p { margin: 8px 0 0; }
.public-auth-email-form { margin-top: 22px; }
.public-field-with-icon { position: relative; }
.public-field-with-icon .public-field-leading-icon { position: absolute; z-index: 1; left: 16px; top: 44px; margin: 0; color: var(--public-teal-dark); font-size: 18px; }
.public-field-with-icon input { padding-left: 47px; }
.public-spam-notice { display: flex; align-items: flex-start; gap: 10px; margin-top: 20px; padding: 13px 14px; border: 1px solid #dbe7e9; border-radius: 12px; color: #657983; background: #f7fafb; font-size: 11px; line-height: 1.55; }
.public-spam-notice i { flex: 0 0 auto; color: var(--public-teal-dark); font-size: 16px; }
.public-spam-notice-prominent { margin: 6px 0 20px; border-color: #cde4e5; color: #47616c; background: #edf8f8; }
.public-auth-code-copy { text-align: center; }
.public-auth-code-copy .public-eyebrow { margin-bottom: 9px; }
.public-email-chip { display: inline-flex; align-items: center; gap: 8px; margin-top: 11px; padding: 9px 13px; word-break: break-all; }
.public-email-chip i { color: var(--public-teal-dark); }
.public-otp-form { gap: 18px; margin-top: 0; }
.public-otp-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.public-otp-fieldset legend { width: 100%; margin: 0 0 11px; color: var(--public-blue); font-size: 12px; font-weight: 800; text-align: center; }
.public-otp-inputs { direction: ltr; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 9px; }
.public-otp-inputs input { width: 100%; min-width: 0; aspect-ratio: .88; max-height: 66px; padding: 7px 2px; border: 1px solid #b8cdd2; border-radius: 13px; color: var(--public-blue); background: #fbfdfd; outline: 0; font-size: 27px; font-weight: 850; text-align: center; caret-color: var(--public-teal); transition: border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.public-otp-inputs input:focus { border-color: var(--public-teal); box-shadow: 0 0 0 4px rgba(27,166,166,.13); transform: translateY(-2px); }
.public-otp-validation { display: block; margin-top: 8px; color: #a9362e; font-size: 11px; text-align: center; }
.public-auth-code-actions { display: flex; align-items: center; justify-content: center; gap: 15px; margin-top: 20px; padding-top: 18px; border-top: 1px solid #e1eaec; }
.public-auth-code-actions form { margin: 0; }
.public-auth-code-actions button,
.public-auth-code-actions > a { color: var(--public-teal-dark); font-size: 11px; font-weight: 780; text-decoration: none; }

/* Cleaner owner portal and owner groups */
.public-my-pets-page { padding-top: 52px; padding-bottom: 82px; background: linear-gradient(180deg,#f5f9fa,#eef5f6); }
.public-my-pets-header { margin-bottom: 26px; padding: 27px 30px; border: 1px solid #d7e5e7; border-radius: 22px; background: #fff; box-shadow: 0 16px 40px rgba(10,42,67,.055); }
.public-my-pets-header .public-eyebrow { margin-bottom: 7px; }
.public-my-pets-header h1 { font-size: 39px; letter-spacing: -.035em; }
.public-my-pets-header p { display: flex; align-items: center; gap: 7px; font-size: 12px; }
.public-my-pets-header p i { color: var(--public-teal-dark); }
.public-my-pets-empty { max-width: 680px; margin: 46px auto 0; }
.public-owner-groups { display: grid; gap: 28px; }
.public-owner-group { padding: 24px; border: 1px solid #d5e3e6; border-radius: 24px; background: rgba(255,255,255,.72); box-shadow: 0 18px 45px rgba(10,42,67,.045); }
.public-owner-group-header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; margin-bottom: 20px; padding-bottom: 18px; border-bottom: 1px solid #dce7e9; }
.public-owner-group-header > div:nth-child(2) > span,
.public-single-owner-line span { color: var(--public-teal-dark); font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.public-owner-group-header h2 { margin: 2px 0; color: var(--public-blue); font-size: 21px; font-weight: 850; }
.public-owner-group-header p { margin: 0; color: #71838c; font-size: 11px; }
.public-owner-group-header > strong { padding: 7px 10px; border-radius: 999px; color: var(--public-teal-dark); background: #e8f6f6; font-size: 10px; }
.public-single-owner-line { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; padding: 13px 16px; border: 1px solid #d8e5e7; border-radius: 16px; background: rgba(255,255,255,.8); }
.public-single-owner-line > div:nth-child(2) { min-width: 0; flex: 1; }
.public-single-owner-line strong { display: block; margin-top: 1px; color: var(--public-blue); font-size: 15px; }
.public-single-owner-line small { color: #6d818a; font-size: 10px; }
.public-owner-group .public-pets-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.public-my-pets-page .public-owned-pet-card { border-radius: 18px; box-shadow: 0 12px 30px rgba(10,42,67,.06); }
.public-my-pets-page .public-owned-pet-body { padding: 19px; }
.public-my-pets-page .public-pet-manage-link { min-height: 42px; }
.public-my-pets-page .public-pet-transfer-history-link { border-color: #fed7aa; color: #9a3412; background: #fffaf5; }

/* Modern public pet editor and upload progress */
.public-pet-edit-hero-modern { padding: 45px 0 32px; background: linear-gradient(145deg,#f7fbfb,#eef7f7); }
.public-pet-edit-hero-modern h1 { margin: 0; color: var(--public-blue); font-size: clamp(34px,5vw,49px); letter-spacing: -.04em; font-weight: 860; }
.public-pet-edit-hero-modern .public-eyebrow { display: block; width: fit-content; margin-bottom: 6px; }
.public-pet-edit-section-modern { min-height: 0; padding-top: 24px; }
.public-pet-identity-card-modern { padding-bottom: 20px; border-radius: 23px; box-shadow: 0 18px 45px rgba(10,42,67,.08); }
.public-pet-identity-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.public-pet-identity-heading > div { min-width: 0; }
.public-pet-identity-heading > div > span { color: var(--public-muted); font-size: 11px; }
.public-pet-identity-heading > i { flex: 0 0 auto; color: var(--public-teal); font-size: 23px; }
.public-pet-edit-form-modern { padding: 30px; border-radius: 23px; box-shadow: 0 18px 45px rgba(10,42,67,.075); }
.public-pet-edit-form-title,
.public-pet-gallery-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 25px; }
.public-pet-edit-form-title span,
.public-pet-gallery-heading span { color: var(--public-teal-dark); font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.public-pet-edit-form-title h2,
.public-pet-gallery-heading h2 { margin: 2px 0 0; color: var(--public-blue); font-size: 24px; font-weight: 850; }
.public-pet-edit-form-title > i { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; color: var(--public-teal-dark); background: #e8f6f6; font-size: 20px; }
.public-pet-image-uploader { margin-top: 28px; padding-top: 24px; }
.public-pet-image-dropzone { min-height: 155px; }
.public-image-slots-full { display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 76px; border-radius: 13px; color: #637982; background: #f3f7f8; font-size: 12px; }
.public-image-slots-full i { color: var(--public-teal-dark); font-size: 20px; }
.public-upload-progress { margin: 22px 0 18px; padding: 15px; border: 1px solid #cfe3e4; border-radius: 14px; background: #f3fbfb; }
.public-upload-progress[hidden] { display: none !important; }
.public-upload-progress > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; color: var(--public-blue); font-size: 11px; }
.public-upload-progress > div:first-child span { color: var(--public-teal-dark); font-weight: 850; }
.public-upload-progress-track { height: 9px; overflow: hidden; border-radius: 999px; background: #dcebed; }
.public-upload-progress-track > span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--public-teal),#41c5bd); box-shadow: 0 0 14px rgba(27,166,166,.24); transition: width .16s linear; }
.public-pet-gallery-manager-modern { border-radius: 23px; box-shadow: 0 15px 38px rgba(10,42,67,.055); }
.public-pet-gallery-heading { margin-bottom: 18px; }
.public-pet-gallery-heading > strong { padding: 7px 10px; border-radius: 999px; color: var(--public-teal-dark); background: #e8f6f6; font-size: 10px; }

@media (max-width: 991px) {
    .public-simple-home-grid { grid-template-columns: 1fr; gap: 35px; text-align: center; }
    .public-simple-home-copy > p { margin-left: auto; margin-right: auto; }
    .public-simple-home-actions { justify-content: center; }
    .public-simple-home-visual { min-height: 340px; }
    .public-modern-auth-layout { grid-template-columns: 1fr; max-width: 650px; }
    .public-modern-auth-brand { min-height: 260px; padding: 38px; border-radius: 27px 27px 0 0; }
    .public-modern-auth-brand h2 br { display: none; }
    .public-modern-auth-card { min-height: 0; border-top: 0; border-left: 1px solid rgba(196,216,220,.9); border-radius: 0 0 27px 27px; }
    .public-owner-group .public-pets-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 767px) {
    .public-simple-desktop-menu { display: none; }
    .public-simple-nav-toggle { display: block; }
    .public-simple-footer-row { grid-template-columns: 1fr auto; }
    .public-simple-footer-row > div > span { display: none; }
    .public-simple-footer-row nav { grid-column: 1 / -1; grid-row: 2; justify-content: center; padding-top: 15px; border-top: 1px solid #e3ebed; }
    .public-simple-home { min-height: 0; padding: 62px 0 50px; }
    .public-simple-home h1 { font-size: 48px; }
    .public-simple-home-copy > p { font-size: 16px; }
    .public-simple-benefits > .container { grid-template-columns: 1fr; }
    .public-simple-benefits > .container > div { min-height: 64px; justify-content: flex-start; padding: 0 22px; border-right: 0; border-bottom: 1px solid #e1eaec; }
    .public-simple-benefits > .container > div:last-child { border-bottom: 0; }
    .public-modern-auth { padding-top: 30px; }
    .public-modern-auth-brand { display: none; }
    .public-modern-auth-card { border: 1px solid rgba(196,216,220,.9); border-radius: 24px; }
    .public-owner-group { padding: 18px; }
    .public-owner-group-header { grid-template-columns: auto 1fr; }
    .public-owner-group-header > strong { grid-column: 1 / -1; width: fit-content; }
}

@media (max-width: 575px) {
    .public-simple-nav { min-height: 68px; }
    .public-simple-home { padding-top: 48px; }
    .public-simple-home h1 { font-size: 39px; }
    .public-simple-home-actions { flex-direction: column; }
    .public-simple-home-actions .public-btn { width: 100%; }
    .public-simple-home-visual { min-height: 290px; }
    .public-simple-home-visual::before { width: 300px; height: 300px; }
    .public-simple-home-visual::after { width: 230px; height: 230px; }
    .public-simple-registry-card { width: min(92%,320px); min-height: 205px; padding: 28px; }
    .public-simple-pet-badge { right: 1%; top: 8%; }
    .public-simple-footer-row { gap: 18px; }
    .public-modern-auth-card { padding: 27px 19px; }
    .public-modern-auth-card .public-auth-copy h1 { font-size: 30px; }
    .public-otp-inputs { gap: 5px; }
    .public-otp-inputs input { border-radius: 10px; font-size: 22px; }
    .public-auth-code-actions { align-items: stretch; flex-direction: column; gap: 10px; text-align: center; }
    .public-my-pets-page { padding-top: 28px; }
    .public-my-pets-header { padding: 22px; }
    .public-my-pets-header h1 { font-size: 33px; }
    .public-owner-group .public-pets-grid { grid-template-columns: 1fr; }
    .public-owner-group-header p { word-break: break-word; }
    .public-pet-edit-hero-modern { padding: 30px 0 22px; }
    .public-pet-edit-section-modern { padding-top: 14px; }
    .public-pet-edit-form-modern { padding: 21px 15px; }
    .public-pet-edit-form-title h2,
    .public-pet-gallery-heading h2 { font-size: 21px; }
    .public-pet-identity-card-modern .public-pet-edit-cover { height: 250px; }
}

/* Consent checkboxes are intentionally larger than standard selection controls. */
.public-consent-box input[type="checkbox"],
.public-form-consent input[type="checkbox"] {
    width: 24px;
    height: 24px;
    min-width: 24px;
    margin-top: 1px;
    cursor: pointer;
}

/* =========================================================
   AVOpet configurable visual branding
   Branding:VisualTheme = Site | Original
   ========================================================= */
body.public-body.brand-site {
    --public-brand-logo-image: url('/images/brand/avopet-logo-site.png');
    --public-campaign-pets-image: url('/images/brand/avopet-hero-pets-site.webp');
    --public-campaign-accent: #1ba6a6;
    --public-campaign-accent-dark: #0f7f84;
    --public-campaign-soft: #e8f7f6;
    --public-campaign-house: rgba(27,166,166,.12);
}

body.public-body.brand-original {
    --public-blue: #0b2347;
    --public-blue-2: #123967;
    --public-teal: #1754c7;
    --public-teal-dark: #1045aa;
    --public-brand-logo-image: url('/images/brand/avopet-logo-original.png');
    --public-campaign-pets-image: url('/images/brand/avopet-hero-pets-original.webp');
    --public-campaign-accent: #1754c7;
    --public-campaign-accent-dark: #1045aa;
    --public-campaign-soft: #edf3ff;
    --public-campaign-house: rgba(23,84,199,.11);
}

.public-brand-wordmark {
    display: inline-block;
    width: 148px;
    height: 45px;
    flex: 0 0 auto;
    background-image: var(--public-brand-logo-image);
    background-repeat: no-repeat;
    background-position: left center;
    background-size: contain;
}

.public-brand-wordmark-mobile { width: 110px; height: 34px; }
.public-brand-footer .public-brand-wordmark {
    width: 145px;
    height: 44px;
    padding: 5px 8px;
    border-radius: 10px;
    background-color: rgba(255,255,255,.96);
    background-origin: content-box;
    background-size: contain;
    background-position: center;
}
.public-simple-footer .public-brand-footer .public-brand-wordmark {
    padding: 0;
    background-color: transparent;
    background-origin: border-box;
}

/* Rebuilt campaign hero: copy/controls stay real HTML; only the pet artwork is an image asset. */
.public-campaign-hero {
    --public-campaign-line: color-mix(in srgb, var(--public-campaign-accent) 28%, transparent);
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 85% 20%, color-mix(in srgb, var(--public-campaign-accent) 12%, transparent), transparent 31%),
        linear-gradient(135deg, #fbfcff 0%, #fff 50%, var(--public-campaign-soft) 100%);
}
.public-campaign-hero::before {
    content: "";
    position: absolute;
    width: 430px;
    height: 430px;
    right: -175px;
    bottom: -245px;
    border: 62px solid color-mix(in srgb, var(--public-campaign-accent) 7%, transparent);
    border-radius: 50%;
    pointer-events: none;
}
.public-campaign-grid { grid-template-columns: minmax(0,1.02fr) minmax(430px,.98fr); gap: 38px; }
.public-campaign-copy { position: relative; z-index: 5; }
.public-campaign-wordmark { width: 218px; height: 66px; margin-bottom: 20px; }
.public-campaign-copy h1 { max-width: 650px; }
.public-campaign-copy h1 span,
.public-simple-home.public-campaign-hero h1 span {
    color: var(--public-campaign-accent);
    background: none;
    -webkit-text-fill-color: currentColor;
}
.public-campaign-copy > p { max-width: 610px; }
.public-campaign-proof {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 0;
    max-width: 640px;
    margin-top: 34px;
    padding-top: 20px;
    border-top: 1px solid var(--public-campaign-line);
}
.public-campaign-proof > span {
    min-width: 0;
    display: grid;
    grid-template-columns: 40px 1fr;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 9px;
    padding: 0 13px;
    border-right: 1px solid var(--public-campaign-line);
}
.public-campaign-proof > span:first-child { padding-left: 0; }
.public-campaign-proof > span:last-child { border-right: 0; }
.public-campaign-proof i {
    grid-row: 1 / 3;
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    border: 1.5px solid var(--public-campaign-accent);
    border-radius: 50%;
    color: var(--public-campaign-accent);
    font-size: 18px;
}
.public-campaign-proof strong,
.public-campaign-proof small { display: block; min-width: 0; }
.public-campaign-proof strong { color: var(--public-blue); font-size: 11px; line-height: 1.2; }
.public-campaign-proof small { margin-top: 2px; color: #71838d; font-size: 9px; line-height: 1.25; }

.public-campaign-visual {
    position: relative;
    min-height: 545px;
    display: block;
    isolation: isolate;
}
.public-simple-home-visual.public-campaign-visual::before,
.public-simple-home-visual.public-campaign-visual::after { content: none; }
.public-campaign-pets {
    position: absolute;
    z-index: 3;
    inset: 0 -18px 0 0;
    background-image: var(--public-campaign-pets-image);
    background-repeat: no-repeat;
    background-position: right bottom;
    background-size: auto 100%;
    filter: drop-shadow(0 26px 28px rgba(10,42,67,.10));
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.62) 8%, #000 18%, #000 100%);
    mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.62) 8%, #000 18%, #000 100%);
}
.public-campaign-home-shape {
    position: absolute;
    z-index: 1;
    right: 5%;
    top: 6%;
    width: 260px;
    height: 245px;
    display: grid;
    place-items: center;
    clip-path: polygon(50% 0, 100% 38%, 91% 38%, 91% 100%, 9% 100%, 9% 38%, 0 38%);
    color: rgba(255,255,255,.86);
    background: var(--public-campaign-house);
    font-size: 54px;
}
.public-campaign-chip-callout {
    position: absolute;
    z-index: 5;
    left: -7px;
    top: 31%;
    display: flex;
    align-items: center;
    gap: 10px;
    color: #72838d;
    font-size: 9px;
    line-height: 1.25;
}
.public-campaign-chip-callout::after {
    content: "";
    position: absolute;
    left: 66px;
    top: 50%;
    width: 95px;
    border-top: 1px dashed var(--public-campaign-accent);
    transform: rotate(18deg);
    transform-origin: left;
    opacity: .65;
}
.public-campaign-chip-callout > span {
    width: 74px;
    height: 74px;
    display: grid;
    place-items: center;
    border: 1px solid var(--public-campaign-line);
    border-radius: 50%;
    color: var(--public-campaign-accent);
    background: rgba(255,255,255,.78);
    box-shadow: 0 12px 34px rgba(10,42,67,.07);
    backdrop-filter: blur(8px);
    font-size: 27px;
}
.public-campaign-chip-callout strong { color: var(--public-blue); }
.public-campaign-signal {
    position: absolute;
    z-index: 6;
    left: 135px;
    top: calc(31% + 7px);
    width: 30px;
    height: 30px;
    transform: rotate(15deg);
}
.public-campaign-signal span {
    position: absolute;
    left: 0;
    bottom: 0;
    border: 2px solid var(--public-campaign-accent);
    border-left-color: transparent;
    border-bottom-color: transparent;
    border-radius: 0 100% 0 0;
    opacity: .75;
}
.public-campaign-signal span:nth-child(1) { width: 10px; height: 10px; }
.public-campaign-signal span:nth-child(2) { width: 19px; height: 19px; }
.public-campaign-signal span:nth-child(3) { width: 28px; height: 28px; }

.public-campaign-hero-simple { min-height: min(720px, calc(100vh - 135px)); padding: 60px 0 48px; }
.public-campaign-hero-simple .public-campaign-grid { grid-template-columns: minmax(0,1fr) minmax(420px,.92fr); }
.public-campaign-hero-simple .public-simple-home-copy > p { max-width: 600px; }
.public-campaign-proof-simple { grid-template-columns: repeat(3,minmax(0,1fr)); max-width: 520px; }

/* Original blue/black option intentionally changes the wider public accent as well,
   so the two proposals can be compared from appsettings without editing CSS. */
body.public-body.brand-original .public-btn-primary { box-shadow: 0 10px 24px rgba(23,84,199,.22); }
body.public-body.brand-original .public-home-actions-intro { background: linear-gradient(135deg,#071d3d,#123b78); }
body.public-body.brand-original .public-home-cta .public-cta-card { background: linear-gradient(120deg,#071d3d,#123b78 62%,#1754c7); }

@media (max-width: 1199px) {
    .public-brand-wordmark { width: 137px; height: 42px; }
    .public-campaign-wordmark { width: 200px; height: 60px; }
    .public-campaign-grid { grid-template-columns: minmax(0,1fr) minmax(390px,.9fr); gap: 25px; }
    .public-campaign-visual { min-height: 500px; }
}

@media (max-width: 991px) {
    .public-campaign-grid,
    .public-campaign-hero-simple .public-campaign-grid { grid-template-columns: 1fr; gap: 14px; }
    .public-campaign-copy { text-align: center; }
    .public-campaign-wordmark { display: block; margin-left: auto; margin-right: auto; }
    .public-campaign-copy > p { margin-left: auto; margin-right: auto; }
    .public-campaign-proof { margin-left: auto; margin-right: auto; text-align: left; }
    .public-campaign-visual,
    .public-simple-home-visual.public-campaign-visual { min-height: 465px; }
    .public-campaign-pets { inset: 0 4% 0 4%; background-position: center bottom; background-size: auto 100%; }
    .public-campaign-chip-callout { left: 11%; top: 27%; }
    .public-campaign-signal { left: calc(11% + 137px); top: calc(27% + 7px); }
}

@media (max-width: 767px) {
    .public-brand-wordmark { width: 126px; height: 38px; }
    .public-mobile-nav-brand .public-brand-wordmark { width: 102px; height: 31px; }
    .public-campaign-wordmark { width: 172px; height: 52px; margin-bottom: 14px; }
    .public-campaign-copy h1,
    .public-simple-home.public-campaign-hero h1 { font-size: 43px; }
    .public-campaign-proof { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 0; }
    .public-campaign-proof > span:nth-child(2) { border-right: 0; }
    .public-campaign-proof > span:nth-child(3) { padding-left: 0; }
    .public-campaign-proof-simple { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .public-campaign-proof-simple > span:nth-child(2) { border-right: 1px solid var(--public-campaign-line); }
    .public-campaign-proof-simple > span:nth-child(3) { padding-left: 13px; border-right: 0; }
    .public-campaign-visual,
    .public-simple-home-visual.public-campaign-visual { min-height: 405px; }
    .public-campaign-chip-callout { left: 4%; transform: scale(.88); transform-origin: left center; }
    .public-campaign-signal { left: 130px; transform: scale(.88) rotate(15deg); }
}

@media (max-width: 575px) {
    .public-campaign-hero,
    .public-campaign-hero-simple { padding-top: 38px; }
    .public-campaign-wordmark { width: 154px; height: 47px; }
    .public-campaign-copy h1,
    .public-simple-home.public-campaign-hero h1 { font-size: 36px; }
    .public-campaign-copy > p,
    .public-simple-home.public-campaign-hero .public-simple-home-copy > p { font-size: 15px; line-height: 1.65; }
    .public-campaign-proof,
    .public-campaign-proof-simple { grid-template-columns: 1fr 1fr; max-width: 360px; }
    .public-campaign-proof > span { min-height: 48px; }
    .public-campaign-proof > span:nth-child(2) { border-right: 0; }
    .public-campaign-proof > span:nth-child(3) { padding-left: 0; border-right: 1px solid var(--public-campaign-line); }
    .public-campaign-proof > span:nth-child(4) { border-right: 0; }
    .public-campaign-proof-simple > span:nth-child(3) { grid-column: 1 / -1; justify-self: center; width: 50%; padding-left: 0; border-right: 0; }
    .public-campaign-visual,
    .public-simple-home-visual.public-campaign-visual { min-height: 345px; }
    .public-campaign-pets { inset: 0 -4% 0 -4%; background-size: auto 100%; }
    .public-campaign-home-shape { width: 190px; height: 180px; right: 2%; }
    .public-campaign-chip-callout { top: 31%; left: 0; transform: scale(.72); }
    .public-campaign-signal { top: calc(31% + 3px); left: 104px; transform: scale(.72) rotate(15deg); }
}
