/* Shared reading, focus and contrast improvements. */
:root { --muted:#615950; }
body :is(a,button,summary,input,select,textarea,[tabindex]):focus-visible {
  outline:3px solid #173d60;
  outline-offset:3px;
  box-shadow:0 0 0 5px #fff;
}
body :is(a,button,summary,input,select,textarea,[tabindex]) { scroll-margin-block:110px 100px; }
body .skip { z-index:1000; }
body .button.gold { color:#101b29; font-weight:600; }
body .button.gold:hover { background:#d4a84f; color:#101b29; }
body .button.outline:hover { background:#79551e; color:#fff; }
body .eyebrow,body h2 em,body .subtle-label { color:#79551e; }
body .hero .eyebrow,body .hero h1 em,body .process .eyebrow,body .process h2 em,body footer h2 em { color:#e5c384; }
body .field label,body .field .error,body .form-foot { font-size:.875rem; }
body .field label span { color:#79551e; }
body .field :is(input,select,textarea) { font-size:1rem; border-color:#8b8278; }
body .field :is(input,textarea)::placeholder { color:#6b6259; font-size:1rem; opacity:1; }
body .field .error { color:#a52222; }
body .form-foot { color:#615950; line-height:1.6; }
body .form-privacy { color:#4f4a43; font-size:.875rem; line-height:1.7; margin:20px 0; }
body .form-privacy a { color:#173d60; text-decoration:underline; text-underline-offset:3px; }
body .form-privacy a:hover { text-decoration-thickness:2px; }
body .concept-notice { color:#e1e6eb; font-size:.875rem; line-height:1.5; flex-basis:100%; }
body .hero-film-controls { flex-wrap:wrap; }
body .builder-hint,body .room-key p { color:#535b60; }
body .editor-workspace .builder-hint { color:#435360; }
body:not(.client-portal-page) footer p { color:#b8bec5; }
body:not(.client-portal-page) footer .policy-links { color:#e1e6eb; border-top:1px solid #53616c; }
body .policy-links {
  display:flex; flex-wrap:wrap; gap:8px 22px;
  padding-block:20px 30px; font-size:.875rem; line-height:1.5;
}
body .policy-links a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:4px; }
body .journal-footer>div:first-child>a:not(.brand) { display:block; width:fit-content; padding-block:5px; }
body .journal-nav { gap:24px; flex-wrap:wrap; }
body .journal-nav nav { flex-wrap:wrap; gap:10px 20px; }
body .policy-page { max-width:1020px; padding-top:64px; padding-bottom:90px; }
body .policy-page h1 { font-size:clamp(2.5rem,5vw,4.5rem); line-height:1.08; overflow-wrap:anywhere; }
body .policy-page .eyebrow { font-size:.875rem; margin-bottom:20px; }
body .policy-date { font-size:.875rem; color:#615950; margin:22px 0 12px; }
body .policy-intro { font-size:1.125rem; line-height:1.7; color:#374857; max-width:780px; }
body .policy-contents {
  display:flex; flex-wrap:wrap; gap:10px 22px; padding:24px 0;
  margin:26px 0 36px; border-block:1px solid #beb9b1;
}
body .policy-page a { color:#173d60; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
body .policy-contents a { font-size:.9375rem; padding-block:4px; }
body .policy-page section { margin-top:36px; scroll-margin-top:36px; }
body .policy-page h2 { font-size:clamp(1.8rem,3vw,2.3rem); line-height:1.2; margin-bottom:16px; color:#173d60; }
body .policy-page section p,body .policy-page li { color:#333e46; font-size:1rem; line-height:1.8; }
body .policy-page section p+p { margin-top:16px; }
body .policy-page :is(ul,ol) { padding-left:24px; margin:16px 0; }
body .policy-page li+li { margin-top:12px; }
body.client-portal-page .policy-links { color:#173d60; padding-inline:0; border-top:1px solid #b5bfc7; margin-top:24px; }
body .preview-instructions>span { line-height:1.5; }
@media(max-width:760px) {
  body .policy-page { padding-top:40px; padding-bottom:56px; }
  body .journal-nav { padding-block:20px; height:auto; }
  body .journal-nav nav { width:100%; }
  body .policy-links { gap:8px 18px; padding-bottom:100px; }
  body.client-portal-page .policy-links,body.journal-page .policy-links { padding-bottom:24px; }
  body .preview-instructions { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  body *,body *::before,body *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}
