/* A light, useful welcome ribbon with a fixed height as messages change. */
.announcement {
  display: flex; align-items: center; justify-content: center; gap: 24px;
  min-height: 42px; padding: 0 5%; color: #643c42;
  background: radial-gradient(ellipse at 15% 0%, #f6e7d4, transparent 65%), linear-gradient(105deg, #e9cbb7, #ead3d5 75%, #eadfcf);
  border-bottom: 1px solid #a878651f; font-size: 11px;
}
.announcement-label { margin-right: auto; font-size: 9px; letter-spacing: .16em; white-space: nowrap; }
.announcement-stage { overflow: hidden; display: flex; justify-content: center; }
.announcement-message { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 42px; white-space: nowrap; }
.announcement-message span:last-child { font-size: 15px; transition: transform .3s; }
.announcement-message:hover span:last-child { transform: translate(2px,-2px); }
.announcement-controls { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.announcement-position { font-size: 9px; letter-spacing: .12em; font-variant-numeric: tabular-nums; }
.announcement-pause { width: 32px; height: 32px; padding: 0; border: 1px solid #9c716341; border-radius: 50%; background: #fff6; color: inherit; font-size: 10px; }
.announcement-pause:hover { background: #fff9; }

/* Soft copper and rose, generous typography, and fine engraved-looking rules. */
.refined-footer {
  position: relative; isolation: isolate; overflow: hidden; padding: 48px 6% 24px;
  color: #633b41; border-top: 1px solid #b68a7155;
  background: radial-gradient(ellipse at 4% 100%, #e5bcae9c, transparent 55%), radial-gradient(ellipse at 100% 15%, #d9bbcaa6, transparent 58%), linear-gradient(115deg, #f0dfcd, #f0e2d9 55%, #e7d1ce);
}
.refined-footer::before { content: ''; position: absolute; width: 520px; height: 520px; border: 1px solid #a3716120; border-radius: 50%; left: -260px; top: -300px; z-index: -1; pointer-events: none; }
.footer-invitation { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-bottom: 32px; margin-bottom: 40px; border-bottom: 1px solid #a8786540; }
.footer-invitation p { font: 32px/1.1 var(--serif); letter-spacing: -.02em; }
.footer-invitation br { display: none; }
.footer-invitation em { margin-left: 8px; color: #966250; }
.footer-directions { display: inline-flex; align-items: center; gap: 24px; flex-shrink: 0; font-size: 12px; padding: 12px 18px; border: 1px solid #a8786560; border-radius: 40px; background: #fff5; transition: background .3s, transform .3s; }
.footer-directions:hover { background: #fff9; transform: translateY(-2px); }
.refined-footer .footer-top { grid-template-columns: 1.2fr .85fr 1.2fr 1fr; gap: 34px; align-items: start; }
.refined-footer .footer-top .footer-signature { display: inline-flex; flex-direction: column; width: fit-content; margin: 0; }
.footer-signature>span { font: 64px/1.08 var(--script); letter-spacing: -.02em; white-space: nowrap; }
.footer-signature>strong { font: 18px/1.4 var(--serif); text-transform: uppercase; letter-spacing: .3em; padding-left: .3em; text-align: center; }
.refined-footer .footer-brand>p { margin-top: 16px; font-size: 13px; }
.footer-heritage { display: block; margin-top: 20px; font-size: 8px; letter-spacing: .1em; }
.refined-footer .eyebrow { color: #8d574c; font-size: 9px; letter-spacing: .11em; margin: 9px 0 20px; }
.refined-footer .footer-top>div>a:not(.footer-signature) { font-size: 12px; line-height: 1.6; margin-bottom: 11px; width: fit-content; border-bottom: 1px solid transparent; transition: border-color .3s; }
.refined-footer .footer-top>div>a:hover:not(.footer-signature) { border-bottom-color: #a8786580; }
.refined-footer .footer-top>div>p:not(.eyebrow) { color: #795c58; }
.footer-socials { display: flex; gap: 18px; font-size: 11px; margin-top: 20px; }
.footer-socials a { border-bottom: 1px solid #a8786550; padding-bottom: 3px; }
.refined-footer .footer-bottom { align-items: center; margin-top: 40px; padding-top: 20px; border-color: #a8786540; color: #795c58; font-size: 10px; }
.refined-footer .footer-signoff { display: block; font: italic 23px/1.2 var(--serif); color: #89534e; }
.footer-bottom>a { display: inline-flex; align-items: center; gap: 16px; }

@media(max-width:1050px) {
  .announcement-label { display: none; }
  .announcement-controls { margin-left: 0; }
  .footer-invitation p { font-size: 28px; }
  .footer-invitation br { display: block; }
  .footer-invitation em { margin-left: 0; }
  .refined-footer .footer-top { grid-template-columns: 1fr 1fr; gap: 30px 40px; }
}
@media(max-width:760px) {
  .announcement { min-height: 40px; padding: 0 4%; gap: 6px; }
  .announcement-stage { flex: 1; min-width: 0; }
  .announcement-message { min-height: 40px; font-size: 10px; letter-spacing: .015em; gap: 9px; }
  .announcement-position { display: none; }
  .announcement-pause { width: 28px; height: 28px; }
  .refined-footer { padding: 30px 7% 22px; }
  .footer-invitation { display: block; padding-bottom: 25px; margin-bottom: 28px; }
  .footer-invitation p { font-size: 28px; }
  .footer-invitation em { display: block; }
  .footer-directions { font-size: 11px; padding: 10px 15px; gap: 20px; margin-top: 18px; }
  .refined-footer .footer-top { gap: 26px 20px; grid-template-columns: 1fr 1fr; }
  .refined-footer .footer-brand { grid-column: 1/-1; display: grid; grid-template-columns: 1.25fr .85fr; align-items: center; gap: 12px 20px; }
  .footer-signature>span { font-size: clamp(38px,12vw,48px); }
  .footer-signature>strong { font-size: 16px; }
  .refined-footer .footer-brand>p { margin: 0; font-size: 12px; }
  .footer-heritage { grid-column: 1/-1; margin-top: 0; font-size: 8px; }
  .refined-footer .footer-contact { grid-column: 1/-1; grid-row: 3; }
  .refined-footer .eyebrow { font-size: 8px; margin: 4px 0 14px; }
  .refined-footer .footer-top>div>a:not(.footer-signature) { font-size: 12px; margin-bottom: 8px; }
  .refined-footer .footer-visit>p:not(.eyebrow) { font-size: 12px; margin-top: 10px; }
  .footer-socials { position: absolute; right: 7%; margin-top: -40px; flex-direction: column; gap: 9px; }
  .refined-footer .footer-bottom { margin-top: 28px; padding-top: 18px; gap: 16px; font-size: 9px; }
  .refined-footer .footer-signoff { display: none; }
  .refined-footer .footer-bottom>a { margin-right: 45px; }
}
@media(max-width:360px) {
  .announcement-message { font-size: 9px; gap: 5px; }
  .footer-invitation { align-items: flex-start; flex-direction: column; }
  .footer-socials { position: static; margin-top: 15px; flex-direction: row; }
}
@media(prefers-reduced-motion:reduce) {
  .announcement-message, .footer-directions { transform: none !important; }
}
.nav .nav-signature {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  flex: 0 0 auto;
  color: #6b4148;
  letter-spacing: normal;
}
.nav .nav-signature > span {
  font: 46px/1.08 var(--script);
  letter-spacing: -.02em;
  margin: 0;
  white-space: nowrap;
}
.nav .nav-signature > strong {
  font: 12px/1.4 var(--serif);
  text-transform: uppercase;
  letter-spacing: .3em;
  padding-left: .3em;
  text-align: center;
}
@media (max-width: 760px) {
  .nav .nav-signature > span { font-size: 39px; }
  .nav .nav-signature > strong { font-size: 11px; }
}
