/* A light, useful welcome ribbon with a fixed height as messages change. */
.announcement {
  display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center; gap: 16px;
  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 { grid-column: 1; justify-self: start; font-size: 9px; letter-spacing: .16em; white-space: nowrap; }
.announcement-stage { grid-column: 2; min-width: 0; 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 { grid-column: 3; justify-self: end; display: flex; align-items: center; }
.announcement-position { font-size: 9px; letter-spacing: .12em; font-variant-numeric: tabular-nums; }
.announcement-position::after { content: ''; display: block; width: 100%; height: 1px; margin-top: 3px; background: linear-gradient(to right, #71454d var(--announcement-progress, 33.33%), #a77d764d var(--announcement-progress, 33.33%)); }

/* 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: 28px; margin-bottom: 34px; 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.3fr .7fr 1.2fr .9fr; gap: clamp(24px,3vw,44px); 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: 32px; padding-top: 18px; 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; }
  .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 { grid-template-columns: minmax(0, 1fr); min-height: 40px; padding: 0 4%; gap: 0; }
  .announcement-stage { grid-column: 1; width: 100%; }
  .announcement-message { min-height: 40px; font-size: 10px; letter-spacing: .015em; gap: 9px; }
  .announcement-controls { display: none; }
  .refined-footer { padding: 26px 7% 16px; }
  .footer-invitation { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 14px; padding-bottom: 19px; margin-bottom: 18px; }
  .footer-invitation p { font-size: 23px; line-height: 1.08; }
  .footer-invitation br { display: none; }
  .footer-invitation em { display: block; }
  .footer-directions { max-width: 127px; font-size: 10px; line-height: 1.2; padding: 10px 11px; gap: 7px; margin-top: 0; white-space: normal; }
  .footer-directions span { margin-left: auto; }
  .refined-footer .footer-top { gap: 0 18px; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .refined-footer .footer-brand { grid-column: 1/-1; display: grid; grid-template-columns: 1.25fr .85fr; align-items: center; gap: 6px 14px; padding-bottom: 17px; border-bottom: 1px solid #a8786536; }
  .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-explore,.refined-footer .footer-visit { padding-top: 17px; }
  .refined-footer .footer-visit { padding-left: 17px; border-left: 1px solid #a8786536; }
  .refined-footer .footer-contact { grid-column: 1/-1; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 12px; margin-top: 17px; padding-top: 14px; border-top: 1px solid #a8786536; }
  .refined-footer .footer-contact>.eyebrow { grid-column: 1/-1; }
  .refined-footer .footer-contact>a[href^="mailto:"] { grid-column: 1; grid-row: 2; }
  .refined-footer .footer-contact>a[href^="tel:"] { grid-column: 2; grid-row: 2; }
  .refined-footer .footer-contact>a[href^="/#"] { grid-column: 1; grid-row: 3; }
  .refined-footer .footer-socials { grid-column: 2; grid-row: 3; position: static; display: flex; flex-direction: row; gap: 10px; margin: 0; align-self: start; white-space: nowrap; }
  .refined-footer .eyebrow { font-size: 8px; margin: 0 0 9px; }
  .refined-footer .footer-top>div>a:not(.footer-signature) { font-size: 12px; margin-bottom: 5px; }
  .refined-footer .footer-visit>p:not(.eyebrow) { font-size: 12px; margin-top: 8px; }
  .refined-footer .footer-bottom { margin-top: 18px; padding-top: 13px; gap: 12px; font-size: 9px; }
  .refined-footer .footer-signoff { display: none; }
  .refined-footer .footer-bottom>a { margin-right: 0; }
  .refined-footer .footer-policy { display: grid; grid-template-columns: repeat(3,max-content); justify-content: space-between; margin-top: 10px; padding-top: 8px; gap: 0 12px; font-size: 11px; }
}
@media(max-width:360px) {
  .announcement-message { font-size: 9px; gap: 5px; }
  .refined-footer { padding-top: 20px; padding-bottom: 12px; }
  .footer-invitation { display: block; padding-bottom: 15px; margin-bottom: 14px; }
  .footer-invitation p { font-size: 22px; }
  .footer-directions { max-width: none; margin-top: 10px; padding: 9px 12px; }
  .refined-footer .footer-brand { padding-bottom: 13px; }
  .refined-footer .footer-explore,.refined-footer .footer-visit { padding-top: 13px; }
  .refined-footer .footer-contact { margin-top: 13px; padding-top: 11px; }
  .refined-footer .footer-bottom { margin-top: 14px; padding-top: 11px; }
  .refined-footer .footer-policy { margin-top: 8px; padding-top: 6px; }
  .refined-footer .footer-contact>a[href^="mailto:"] { grid-column: 1/-1; grid-row: 2; }
  .refined-footer .footer-contact>a[href^="tel:"] { grid-column: 1; grid-row: 3; }
  .refined-footer .footer-contact>a[href^="/#"] { grid-column: 2; grid-row: 3; }
  .refined-footer .footer-socials { grid-column: 1/-1; grid-row: 4; }
}
@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; }
}
