:root{font-family:ui-rounded,"Avenir Next",system-ui,sans-serif;color:#123655;background:#f9fbf6;font-synthesis:none;line-height:1.6;font-size:16px;--navy:#123655;--green:#26704e}
*{box-sizing:border-box}body{margin:0}a{color:inherit}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}
.header{max-width:1440px;margin:auto;padding:28px 5vw;display:flex;justify-content:space-between;gap:24px;align-items:center}.brand{display:flex;gap:14px;align-items:center;text-decoration:none}.brand img{height:56px;width:56px;object-fit:contain}.brand span{display:grid}.brand strong{font-size:1.25rem;letter-spacing:-.03em}.brand small{color:#47745c;font-size:.875rem}.back{font-size:.9rem;text-decoration:none;font-weight:700;display:flex;gap:12px;align-items:center}.back span{font-size:1.35rem}
main{max-width:1280px;margin:35px auto 70px;padding:0 5vw;display:grid;grid-template-columns:1.15fr 1fr;gap:70px;align-items:center}.eyebrow{font-size:.8rem;text-transform:uppercase;letter-spacing:.13em;color:var(--green);font-weight:800}h1{font-size:clamp(2.8rem,4.8vw,4.8rem);line-height:1.08;letter-spacing:-.065em;margin:22px 0}h1 em{font-style:normal;color:var(--green)}.intro>p{font-size:1.15rem;max-width:490px;color:#4c655a}.preparation{display:flex;gap:14px;padding:20px;background:#fff1cf;border:1px solid #eddfb8;border-radius:22px;margin:32px 0 22px;max-width:520px}.preparation>span{font-size:1.5rem;color:#866019}.preparation p{font-size:.95rem;color:#655b43;margin:5px 0 0}.upcoming{list-style:none;padding:0;display:flex;gap:10px;flex-wrap:wrap;max-width:560px}.upcoming li{display:flex;gap:9px;align-items:center;background:#edf4ef;border:1px solid #dde9e0;border-radius:99px;padding:8px 13px;font-size:.9rem}
.access-card{background:#fff;border:1px solid #dfebe3;border-radius:32px;padding:38px;box-shadow:0 24px 65px #183b4820;position:relative;overflow:hidden}.access-card:before{content:"";height:7px;background:linear-gradient(90deg,#92d7a8,#b4e1f5,#ffd773);position:absolute;top:0;left:0;right:0}.card-mark{height:58px;width:58px;display:grid;place-items:center;font-size:1.75rem;background:#e2f5e8;border-radius:20px;margin-bottom:22px}.access-card h2{font-size:2rem;line-height:1.2;letter-spacing:-.04em;margin:12px 0 20px}.access-card p{color:#52665b}.google-button,.secondary-button{display:flex;align-items:center;justify-content:center;gap:16px;border:1px solid #cad5cf;background:#fff;border-radius:12px;min-height:52px;padding:12px 18px;cursor:pointer;width:100%;font-weight:650;color:var(--navy);margin:24px 0 16px}.google-button:hover,.secondary-button:hover{background:#f3f7f4}.google-letter{font-family:Arial,sans-serif;font-size:1.4rem;color:#4285f4;font-weight:700}.google-button:disabled,.secondary-button:disabled{opacity:.55;cursor:wait}.privacy{font-size:.875rem;line-height:1.6}.status{font-size:.875rem;min-height:1.5rem}.error{border-radius:14px;background:#fff3e6;border:1px solid #edcfb4;padding:12px;color:#6b3d18!important;font-size:.95rem}.text-button{border:0;background:none;color:var(--green);text-decoration:underline;cursor:pointer;padding:8px 0;min-height:44px}.card-footer{border-top:1px solid #e3ece6;margin-top:24px;padding-top:22px;display:grid;gap:5px;font-size:.95rem}.card-footer a{color:var(--green);text-decoration:none;font-weight:600}.card-footer a:hover{text-decoration:underline}.identity{overflow-wrap:anywhere}.connection-confirmed{display:flex;gap:12px;align-items:center;padding:14px;background:#e5f5e9;border-radius:16px;color:#24583e}.connection-confirmed>span{font-size:1.5rem}
footer{max-width:1280px;margin:auto;padding:20px 5vw 35px;border-top:1px solid #e0e9e2;display:flex;justify-content:space-between;gap:20px;font-size:.875rem;color:#526c5e}a:focus-visible,button:focus-visible{outline:3px solid #26704e;outline-offset:5px}
@media(max-width:900px){main{gap:32px;padding:0 6vw;grid-template-columns:1fr;margin-top:20px}.intro{max-width:650px}.intro>p,.preparation,.upcoming{max-width:none}.access-card{max-width:650px;width:100%}h1{font-size:clamp(2.6rem,9vw,4rem)}.header{padding:22px 6vw}.brand small{display:none}footer{padding:24px 6vw;flex-wrap:wrap}}
@media(max-width:460px){.access-card{padding:27px 22px;border-radius:25px}.brand strong{font-size:1rem}.brand img{height:42px;width:42px}.back{font-size:.8rem}.header{gap:12px}main{padding:0 5vw}.upcoming{gap:7px}.upcoming li{font-size:.875rem}}
.animal-grid{display:grid;gap:16px;margin:18px 0}.animal-card{background:#f2f8f2;border:1px solid #d9e8dd;border-radius:22px;padding:22px}.animal-card:nth-child(3n+2){background:#fff7e5}.animal-card:nth-child(3n){background:#eef6fb}.animal-card h4{font-size:1.7rem;letter-spacing:-.04em;margin:5px 0}.animal-reference{font-size:.8rem;margin:0 0 15px}.animal-card dl{display:grid;grid-template-columns:1fr 1.3fr;gap:7px;margin:0;font-size:.9rem}.animal-card dt{color:#52665b}.animal-card dd{margin:0;overflow-wrap:anywhere;font-weight:600}#member-area h3{font-size:1.4rem;line-height:1.3;margin-top:25px}

.document-grid{display:grid;gap:1rem}.member-photo{display:block;width:100%;height:auto;max-height:480px;object-fit:contain;border-radius:16px;margin:1rem 0}.document-grid a{display:block;margin-top:1rem}

/* Private portal actions and sections */
.upcoming li.service-link{padding:0;background:#e2f3e6;border-color:#b9d9c4}
.service-link button{display:flex;align-items:center;gap:9px;border:0;border-radius:99px;background:transparent;color:var(--green);padding:10px 14px;min-height:44px;font-weight:700;cursor:pointer}
.service-link button:hover{background:#d1ebda}.upcoming small{font-size:.65rem;color:#65756b}
.member-section{scroll-margin-top:24px;border-top:1px solid #e0e9e2;margin-top:28px;padding-top:4px}
.document-card{background:#f3f8f4;border:1px solid #dce9e0;border-radius:22px;padding:22px;min-width:0}
.document-card h4{font-size:1.12rem;line-height:1.4;margin:8px 0;color:var(--navy);overflow-wrap:anywhere}
.document-filename{font-size:.75rem;overflow-wrap:anywhere;margin:6px 0 18px;color:#69796f!important}
.document-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;gap:10px;padding:12px 20px;border:1px solid #26704e;border-radius:14px;background:#26704e;color:white;font-weight:700;cursor:pointer;box-shadow:0 4px 10px #26704e18;transition:background .15s,box-shadow .15s}
.document-button:hover{background:#1c583d;box-shadow:0 6px 16px #26704e25}.document-button:disabled{opacity:.65;cursor:progress}
.document-download{display:inline-flex!important;align-items:center;justify-content:center;min-height:44px;padding:8px 16px;border:1px solid #c1dacb;border-radius:12px;text-decoration:none;color:#26704e;font-weight:650;background:white}
.document-download:hover{background:#e3f2e8}.empty-state{font-size:.95rem;padding:16px;background:#f5f8f5;border-radius:14px}
@media(min-width:901px){main{align-items:start}.intro{position:sticky;top:32px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.role-badges{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:14px 0 26px}
.role-badge{display:inline-flex;align-items:center;gap:9px;padding:7px 13px 7px 8px;border-radius:99px;font-size:.8rem;font-weight:750;line-height:1.3;letter-spacing:.01em;border:1px solid;box-shadow:0 2px 5px #12365506}
.role-badge--foster{color:#245c40;background:#e8f5ec;border-color:#c9e5d2}
.role-badge--adopter{color:#805221;background:#fff4df;border-color:#efdab4}
.role-badge-icon{display:grid;place-items:center;width:28px;height:28px;flex:none;border-radius:50%;background:#ffffffb8;font-size:1rem}
