/* Publication-only additions. Approved layout and type remain in the source CSS. */
.contact form fieldset {
  border:0; margin:0; padding:0; min-width:0;
  display:grid; gap:18px;
}
.contact form .form-trap { display:none !important; }
.visually-hidden {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.contact form .contact-help,
.contact form .contact-direct { margin:0; font-size:14px; line-height:1.6; }
.contact-help a,.contact-direct a,.footer-contact a {
  color:inherit; text-underline-offset:4px; overflow-wrap:anywhere;
}
.contact form button:disabled,.contact form fieldset:disabled button {
  opacity:.55; cursor:not-allowed;
}
.footer-contact { display:flex; flex-wrap:wrap; gap:12px 24px; }
.footer .footer-socials { gap:0; }
.footer .footer-socials a { width:32px; height:44px; }
.footer .footer-monogram {
  display:block; width:72px; height:72px; max-width:100%;
  object-fit:contain; justify-self:center; margin:28px 0 16px;
}
.footer .footer-brand { justify-items:center; text-align:center; }
.footer .footer-brand > a { justify-self:center; }
.header .brand { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.header .header-monogram { width:40px; height:40px; object-fit:contain; flex:none; }
.header .brand > span { white-space:nowrap; }
/* v0.28: restore original DM Sans name weight/tracking; retain current sizes. */
.header .brand > span,
.footer .footer-brand > a:not(.footer-logo-link) {
  font-family:var(--sans);
  font-weight:800;
  letter-spacing:.12em;
}
/* v0.24: header name reduced 8%; footer sizes unchanged. */
.header .brand > span { font-size:19.32px; }
.footer .footer-brand > a { font-size:18.7px; }
@media (max-width:1050px) {
  .header .brand > span { font-size:16.56px; }
}
@media (max-width:780px) {
  .header .brand > span { font-size:15.64px; letter-spacing:.09em; }
  .footer .footer-brand > a { font-size:17.6px; }
}
@media (max-width:370px) {
  .header .brand > span { font-size:12.88px; letter-spacing:.06em; }
}
@media (min-width:781px) {
  .header { padding-block:18px; }
}
@media (max-width:780px) {
  .header { gap:12px; }
  .header .brand { gap:10px; }
  .header .header-monogram { width:34px; height:34px; }
}
@media (max-width:370px) {
  .header { padding-inline:16px; gap:8px; }
  .header .brand { gap:8px; }
}
.footer-contact a[href^="mailto:"] { text-decoration:none; border-bottom:0; }
.footer-contact a[href^="mailto:"]:focus-visible {
  outline:2px solid currentColor; outline-offset:4px;
}
@media (max-width:780px) {
  .footer-contact { flex-basis:100%; }
  .footer .footer-brand { justify-items:start; text-align:left; row-gap:2px; }
  .footer .footer-brand > a { justify-self:start; }
  .footer .footer-monogram {
    width:44px; height:44px; justify-self:start;
    /* 10px margin + 2px grid gap = 12px to the name. */
    margin:0 0 10px;
  }
}

/* v0.24: focusable logo link preserves the previous grid spacing. */
.footer .footer-logo-link {
  display:block; width:72px; height:72px; margin:28px 0 16px; line-height:0;
}
.footer .footer-logo-link .footer-monogram { width:100%; height:100%; margin:0; }
.footer .footer-logo-link:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
@media (max-width:780px) {
  .footer .footer-logo-link { width:44px; height:44px; margin:0 0 10px; }
}

/* v0.27: compact desktop logo box; 10px margin + 2px grid gap to name. */
@media (min-width:781px) {
  .footer .footer-logo-link {
    width:43.2px; height:43.2px; margin:28px 0 10px;
  }
}

/* Standalone notice: no carousel or animation scripts are needed. */
.privacy-header { padding:24px max(24px, 5vw); border-bottom:1px solid var(--line); }
.privacy-header .privacy-brand {
  display:inline-flex; align-items:center; gap:12px; color:var(--ink);
  font:800 18.7px/1.15 var(--sans); letter-spacing:.12em; text-decoration:none;
}
.privacy-brand img { width:40px; height:40px; object-fit:contain; flex:none; }
.privacy-brand:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
@media (max-width:780px) {
  .privacy-header { padding:21px 22px; }
  .privacy-header .privacy-brand { font-size:17.6px; gap:10px; }
  .privacy-brand img { width:34px; height:34px; }
}
.privacy-content { max-width:800px; margin:0 auto; padding:40px 24px 64px; }
.privacy-content h1 { font:400 clamp(40px, 7vw, 64px)/1.1 var(--serif); margin:24px 0 12px; }
.privacy-content .privacy-date { font-size:14px; }
.privacy-content section { margin-top:32px; }
.privacy-content h2 { font:400 30px/1.2 var(--serif); margin-bottom:14px; }
.privacy-content p + p { margin-top:14px; }
.privacy-content a { overflow-wrap:anywhere; }
.privacy-content ul { padding-left:24px; }
.privacy-content li + li { margin-top:8px; }
.privacy-footer { padding:24px; background:var(--green); color:var(--paper); text-align:center; }

/* v0.29: one translatable word, with room to wrap longer translations. */
.present-year { min-width:0; max-width:100%; }
.present-year > .present-word {
  display:block; min-width:0; max-width:100%;
  white-space:normal; overflow-wrap:anywhere; letter-spacing:0;
}
