/* Shared site footer. Written defensively (!important) so it renders
   identically regardless of which page stylesheet it is paired with. */

.site-footer {
  --ink: #252321;
  --accent: #c96743;
  --accent-dark: #a9492d;
  --accent-soft: #f4ded5;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  padding: 0 !important;
  background: rgba(255, 249, 246, 0.82) !important;
  border-top: 0 !important;
  overflow: visible !important;
}
.site-footer .container { width: min(calc(100% - 48px), 1160px) !important; margin-inline: auto !important; max-width: 1160px !important; padding-left: 0 !important; padding-right: 0 !important; }

/* Reset every grid child against stray page-specific rules that reuse these
   class names (some page stylesheets style their own older, simpler footer
   under the same class names as this shared one). */
.site-footer .footer-grid > div { display: block !important; justify-self: auto !important; align-self: auto !important; gap: 0 !important; flex-direction: row !important; text-align: left !important; }
.site-footer .footer-brand,
.site-footer .footer-shortcuts { display: block !important; }
.site-footer .sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.site-footer .footer-grid { display: grid !important; grid-template-columns: 1.2fr .7fr .85fr 1fr 1.25fr !important; gap: 42px !important; padding: 54px 0 42px !important; align-items: start !important; }
.site-footer .brand--footer { position: relative !important; isolation: isolate !important; width: fit-content !important; display: inline-flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 8px !important; line-height: 1 !important; padding: 8px 14px 14px !important; margin: 0 !important; }
.site-footer .brand--footer::before { content: "" !important; position: absolute !important; left: -44px !important; top: -42px !important; width: 190px !important; height: 150px !important; border-radius: 50% !important; background: radial-gradient(ellipse at 45% 42%, rgba(239, 194, 177, .60), rgba(255, 243, 237, .34) 46%, transparent 72%) !important; filter: blur(1px) !important; opacity: .85 !important; pointer-events: none !important; z-index: -1 !important; display: block !important; }
.site-footer .brand--footer::after { content: "" !important; position: absolute !important; left: -10px !important; top: -12px !important; width: 120px !important; height: 120px !important; border: 1px solid rgba(201, 103, 67, .20) !important; border-right-color: transparent !important; border-bottom-color: transparent !important; border-radius: 50% !important; opacity: .8 !important; pointer-events: none !important; z-index: -1 !important; display: block !important; }
.site-footer .brand--footer .brand__mark { position: relative !important; display: block !important; color: var(--accent) !important; font-family: var(--serif) !important; font-size: 4.6rem !important; letter-spacing: 0 !important; font-weight: 400 !important; line-height: 1.18 !important; padding-bottom: 10px !important; }
.site-footer .brand--footer .brand__sub { position: relative !important; margin-top: 8px !important; color: #5a5350 !important; font-size: .55rem !important; font-weight: 700 !important; line-height: 1.1 !important; letter-spacing: .16em !important; padding-left: .08em !important; text-transform: uppercase !important; white-space: nowrap !important; transform: translateY(2px) !important; }
.site-footer p, .site-footer a { display: block !important; margin: 0 0 10px !important; color: #332e2b !important; font-size: .95rem !important; text-decoration: none !important; }
.site-footer h2 { margin: 0 0 18px !important; font-family: var(--sans) !important; font-size: .88rem !important; font-weight: 800 !important; letter-spacing: 0 !important; color: #332e2b !important; text-transform: none !important; }
.site-footer .footer-brand p { max-width: 210px !important; margin-top: 18px !important; line-height: 1.55 !important; }
.site-footer .socials { display: flex !important; gap: 11px !important; margin-top: 20px !important; }
.site-footer .socials a { width: 30px !important; height: 30px !important; display: grid !important; place-items: center !important; border-radius: 50% !important; background: var(--accent-soft) !important; color: var(--accent) !important; font-size: .78rem !important; font-weight: 900 !important; margin: 0 !important; }
.site-footer .footer-hours { margin-top: 18px !important; border-left: 2px solid rgba(201, 103, 67, .38) !important; padding-left: 14px !important; }
.site-footer .footer-hours span { display: block !important; margin-bottom: 8px !important; color: var(--accent) !important; font-size: .72rem !important; font-weight: 900 !important; letter-spacing: .14em !important; text-transform: uppercase !important; }
.site-footer .footer-hours p { margin-bottom: 6px !important; color: #332e2b !important; font-size: .9rem !important; font-weight: 800 !important; }
.site-footer .newsletter p { line-height: 1.55 !important; }
.site-footer .newsletter form { display: grid !important; grid-template-columns: 1fr 46px !important; gap: 10px !important; align-items: center !important; margin-top: 20px !important; }
.site-footer .newsletter input[type="email"] { min-width: 0 !important; width: 100% !important; height: 46px !important; border: 1px solid rgba(201, 103, 67, .45) !important; border-radius: 999px !important; background: transparent !important; color: var(--ink) !important; padding: 0 18px !important; outline: none !important; grid-column: 1 !important; }
.site-footer .newsletter input[type="email"]:focus { border-color: var(--accent) !important; box-shadow: 0 0 0 4px rgba(201, 103, 67, .12) !important; }
.site-footer .newsletter input[type="email"][aria-invalid="true"] { border-color: #8f2f2f !important; box-shadow: 0 0 0 3px rgba(143, 47, 47, .15) !important; }
.site-footer .newsletter input[type="email"]::placeholder { color: #67605c !important; opacity: 1 !important; }
.site-footer .newsletter input[type="hidden"] { display: none !important; }
.site-footer .newsletter button.primary { grid-column: 2 !important; grid-row: 1 !important; width: 46px !important; height: 46px !important; display: grid !important; place-items: center !important; border: 0 !important; border-radius: 50% !important; background: var(--accent) !important; color: #fff !important; cursor: pointer !important; padding: 0 !important; margin: 0 !important; }
.site-footer .newsletter button.primary:hover { background: var(--accent-dark) !important; }
.site-footer .newsletter button svg { width: 19px !important; height: 19px !important; stroke: currentColor !important; stroke-width: 2 !important; stroke-linecap: round !important; stroke-linejoin: round !important; fill: none !important; }
.site-footer .newsletter button.loading { place-items: center !important; }
.site-footer .newsletter__loading-mark { width: 17px !important; height: 17px !important; border: 2px solid rgba(255, 255, 255, .42) !important; border-top-color: #fff !important; border-radius: 50% !important; animation: newsletter-spinner 720ms linear infinite; }
@media (prefers-reduced-motion: reduce) {
  .site-footer .newsletter__loading-mark { animation: none; }
}
@keyframes newsletter-spinner {
  to { transform: rotate(360deg); }
}
.site-footer .newsletter__status { grid-column: 1 / -1 !important; margin: 4px 0 0 !important; font-size: .78rem !important; min-height: 0 !important; }
.site-footer .newsletter__status:empty { display: none !important; }
.site-footer .footer-bottom { border-top: 1px solid rgba(201, 103, 67, .12) !important; background: rgba(245, 226, 218, .6) !important; }
.site-footer .footer-bottom__inner { min-height: 56px !important; display: grid !important; grid-template-columns: repeat(5, 1fr) !important; align-items: center !important; gap: 24px !important; color: #766d68 !important; font-size: .82rem !important; padding: 0 !important; text-align: initial !important; }
.site-footer .footer-bottom__inner > .footer-bottom__item { min-height: 56px !important; display: flex !important; align-items: center !important; line-height: 1 !important; margin: 0 !important; justify-self: start !important; }
.site-footer .footer-bottom__inner > .footer-bottom__item:nth-child(1) { grid-column: 1 !important; }
.site-footer .footer-bottom__inner > .footer-bottom__item:nth-child(2) { grid-column: 2 !important; }
.site-footer .footer-bottom__inner > .footer-bottom__item:nth-child(3) { grid-column: 3 !important; }
.site-footer .footer-bottom__inner > .footer-bottom__item:nth-child(4) { grid-column: 4 !important; }
.site-footer .footer-bottom__inner > .footer-bottom__item:nth-child(5) { grid-column: 5 !important; justify-self: end !important; }
@media (min-width: 841px) {
  .site-footer .footer-bottom__inner > .footer-bottom__item { height: 56px !important; }
  .site-footer .footer-bottom__inner > .footer-bottom__item > span,
  .site-footer .footer-bottom__inner > .footer-bottom__item > a,
  .site-footer .footer-bottom__inner > .footer-bottom__item > button { height: 56px !important; min-height: 56px !important; display: inline-flex !important; align-items: center !important; margin: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; line-height: 1 !important; }
}
.site-footer .footer-bottom__inner a { position: relative !important; color: #9b5138 !important; font-family: var(--serif) !important; font-size: .95rem !important; font-style: italic !important; line-height: 1 !important; margin: 0 !important; white-space: nowrap !important; transition: color 180ms ease; }
.site-footer .footer-bottom__inner a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 1px; background: currentColor; opacity: .34; transform: scaleX(0); transform-origin: left; transition: transform 180ms ease; }
.site-footer .footer-bottom__inner a:hover,
.site-footer .footer-bottom__inner a:focus-visible { color: var(--accent-dark) !important; }
.site-footer .footer-bottom__inner a:hover::after,
.site-footer .footer-bottom__inner a:focus-visible::after { transform: scaleX(1); }
.site-footer .footer-cookie-settings { position: relative !important; min-height: 44px !important; border: 0 !important; background: transparent !important; color: #9b5138 !important; font-family: var(--serif) !important; font-size: .95rem !important; font-style: italic !important; line-height: 1 !important; padding: 0 !important; cursor: pointer !important; white-space: nowrap !important; transition: color 180ms ease; }
.site-footer .footer-cookie-settings::after { content: ""; position: absolute; left: 0; right: 0; bottom: 13px; height: 1px; background: currentColor; opacity: .34; transform: scaleX(0); transform-origin: left; transition: transform 180ms ease; }
.site-footer .footer-cookie-settings:hover,
.site-footer .footer-cookie-settings:focus-visible { color: var(--accent-dark) !important; }
.site-footer .footer-cookie-settings:hover::after,
.site-footer .footer-cookie-settings:focus-visible::after { transform: scaleX(1); }

@media (max-width: 1100px) {
  .site-footer .footer-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 840px) {
  .site-footer .container { width: min(calc(100% - 32px), 1160px) !important; }
  .site-footer .footer-bottom__inner { display: flex !important; flex-wrap: wrap !important; align-items: center !important; justify-content: center !important; padding: 14px 0 !important; text-align: center !important; }
  .site-footer .footer-bottom__inner > * { min-height: 34px !important; justify-content: center !important; justify-self: auto !important; }
  .site-footer .footer-bottom__inner a { height: 34px !important; }
}
@media (max-width: 767px) {
  .site-footer .footer-shortcuts { display: none !important; }
  .site-footer .socials a,
  .site-footer .newsletter button,
  .site-footer .footer-grid > div > a,
  .site-footer .footer-bottom__inner a { min-width: 44px !important; min-height: 44px !important; }
  .site-footer .footer-grid > div > a,
  .site-footer .footer-bottom__inner a { display: inline-flex !important; align-items: center !important; }
  .site-footer .footer-grid > div:nth-child(4) > a { display: block !important; min-height: 0 !important; }
  .site-footer .socials a { width: 44px !important; height: 44px !important; }
  .site-footer .newsletter input[type="email"] { min-height: 48px !important; font-size: 16px !important; }
  .site-footer .newsletter button { width: 48px !important; height: 48px !important; }
}
@media (max-width: 767px) and (hover: none) {
  .site-footer .socials a:active,
  .site-footer .newsletter button:active { transform: translateY(1px) scale(.985); }
}
@media (max-width: 620px) {
  .site-footer .footer-grid { grid-template-columns: 1fr !important; gap: 28px !important; padding-top: 42px !important; }
  .site-footer .footer-bottom__inner { flex-direction: column !important; align-items: center !important; justify-content: center !important; gap: 10px !important; }
  .site-footer .footer-bottom__inner > * { justify-self: auto !important; }
  .site-footer .brand--footer { padding-left: 14px !important; }
}
@media (max-width: 480px) {
  .site-footer .container { width: min(calc(100% - 26px), 1160px) !important; }
  .site-footer .footer-bottom__inner { flex-direction: column !important; }
}

/* Keep all legal links on one visual baseline in mobile landscape. */
@media (max-width: 1199px) and (orientation: landscape) {
  .site-footer .footer-bottom__inner > .footer-bottom__item,
  .site-footer .footer-bottom__inner > .footer-bottom__item > span,
  .site-footer .footer-bottom__inner > .footer-bottom__item > a,
  .site-footer .footer-bottom__inner > .footer-bottom__item > button {
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1 !important;
  }

  .site-footer .footer-bottom__inner > .footer-bottom__item,
  .site-footer .footer-bottom__inner > .footer-bottom__item > span,
  .site-footer .footer-bottom__inner > .footer-bottom__item > a,
  .site-footer .footer-bottom__inner > .footer-bottom__item > button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    vertical-align: middle !important;
  }

  .site-footer .footer-cookie-settings {
    appearance: none !important;
    -webkit-appearance: none !important;
  }
}
