/* Let short pages and their footer share the viewport; long content grows naturally. */
body:not(.review-page) { min-height:100svh; display:flex; flex-direction:column; }
body:not(.review-page) > main { flex:1 0 auto; }
body:not(.review-page) > .intro,
body:not(.review-page) > .sign-in,
body:not(.review-page) > .workspace { min-height:0; }
body:not(.review-page) > .legal-footer { flex:none; }
.legal-page > .legal-document { width:100%; }
.legal-footer { display:flex; justify-content:center; flex-wrap:wrap; gap:12px 24px; padding:20px 24px; font-size:12px; line-height:1.6; color:#627873; }
.legal-footer a, .legal-footer button { color:inherit; text-underline-offset:4px; }
.legal-footer button { border:0; padding:0; background:none; font:inherit; cursor:pointer; text-decoration:underline; }
.legal-footer :focus-visible, .privacy-panel :focus-visible { outline:2px solid #276259; outline-offset:4px; }
.privacy-panel { position:fixed; z-index:1000; bottom:20px; left:20px; right:20px; margin:auto; max-width:840px; padding:20px 24px; background:#fff; border:1px solid #d5dfdb; border-radius:8px; box-shadow:0 5px 25px #253b3912; color:#253b39; font-size:13px; line-height:1.6; max-height:70svh; overflow:auto; }
.privacy-panel[hidden], [data-privacy-settings][hidden] { display:none; }
.privacy-panel h2 { font-size:15px; font-weight:400; margin:0 0 5px; }
.privacy-panel p { margin:0; }
.privacy-panel a { color:inherit; text-underline-offset:3px; }
.privacy-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.privacy-actions button { background:#fff; border:1px solid #9cafaa; border-radius:4px; padding:9px 16px; color:#253b39; font:inherit; cursor:pointer; }
.privacy-actions button:hover { background:#f2f7f5; }
.legal-document { max-width:760px; margin:auto; padding:56px 24px; font-size:15px; line-height:1.85; overflow-wrap:anywhere; }
.legal-document h1 { font-weight:300; font-size:clamp(28px,5vw,42px); letter-spacing:-.035em; line-height:1.2; margin:36px 0 24px; }
.legal-document h2 { font-weight:400; font-size:19px; margin:32px 0 10px; }
.legal-home { color:#276259; font-size:13px; text-underline-offset:4px; }
.legal-draft { padding:16px 20px; border-left:2px solid #a38956; background:#faf8f3; }
@view-transition { navigation:auto; }
.logo, .home-logo img { view-transition-name:brand-logo; }
::view-transition-group(brand-logo) { animation-duration:650ms; }
@media(prefers-reduced-motion:reduce) { @view-transition { navigation:none; } }
@media(max-width:600px) { .privacy-panel { bottom:12px; left:12px; right:12px; padding:16px; } .privacy-actions button { flex:1; } }

.legal-page > .legal-document { padding-top:100px; }

/* Native shared-logo morph, with no ghosted crossfade between its two sizes. */
::view-transition-group(brand-logo) { animation-timing-function:cubic-bezier(0.22,1,0.36,1); }
::view-transition-old(brand-logo), ::view-transition-new(brand-logo) { height:100%; animation:none; mix-blend-mode:normal; }
::view-transition-old(brand-logo) { display:none; }
.navigation-logo { position:fixed; z-index:1100; display:block; max-width:none; transform-origin:top left; pointer-events:none; }
.logo-departing .intro .logo { visibility:hidden; }
.logo-departing .services { opacity:0; transition:opacity 180ms ease; }

.logo-departing .home-logo img { visibility:hidden; }
.navigation-target { position:fixed; inset:0; min-height:0; visibility:hidden; pointer-events:none; }
