@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display&display=swap');

.rgf-site-footer {
  --rgf-sand: #e9ddcc;
  --rgf-light: #f6eee3;
  --rgf-teal: #006b64;
  --rgf-teal-dark: #00534f;
  --rgf-burgundy: #6b3947;
  --rgf-ink: #353130;
  position: relative;
  padding: 40px 0 52px;
  color: var(--rgf-ink);
  font-family: "DM Sans", Arial, sans-serif;
}

.rgf-site-footer * { box-sizing: border-box; }

.rgf-glass {
  width: min(84%, 1240px);
  margin-inline: auto;
  padding: clamp(32px, 5vw, 68px);
  border: 1px solid rgba(255,255,255,.86);
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(255,255,255,.48), transparent 45%), rgba(255,250,242,.62);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 24px 55px rgba(68,45,41,.22);
  backdrop-filter: blur(18px) saturate(125%);
  -webkit-backdrop-filter: blur(18px) saturate(125%);
}

.rgf-grid { display: grid; grid-template-columns: 1.15fr .85fr 1.25fr; gap: clamp(30px, 5vw, 76px); }
.rgf-brand, .rgf-nav { border-right: 1px solid rgba(107,57,71,.18); padding-right: clamp(24px,4vw,60px); }
.rgf-logo { display: inline-block; color: var(--rgf-teal); font: 400 clamp(2.8rem,4vw,4.4rem)/.88 "DM Serif Display", Georgia, serif; text-decoration: none; transition: color .25s ease, transform .25s ease; }
.rgf-logo:hover { color: var(--rgf-burgundy); transform: translateY(-3px); }
.rgf-brand-divider { display: flex; align-items: center; width: 180px; margin: 26px 0 18px; gap: 12px; color: var(--rgf-burgundy); }
.rgf-brand-divider span { height: 1px; flex: 1; background: currentColor; }
.rgf-brand-divider b { font-size: 1rem; font-weight: 400; }
.rgf-brand p { margin: 0; font-size: clamp(1rem,1.5vw,1.25rem); line-height: 1.5; }
.rgf-glass h2 { margin: 0 0 26px; color: var(--rgf-burgundy); font-size: .76rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.rgf-menu { margin: 0; padding: 0; list-style: none; }
.rgf-menu a { display: flex; align-items: center; justify-content: space-between; min-height: 50px; border-bottom: 1px solid rgba(107,57,71,.16); color: var(--rgf-teal-dark); font-weight: 600; text-decoration: none; transition: color .2s ease, padding .2s ease, border-color .2s ease; }
.rgf-menu a:hover, .rgf-menu a:focus-visible { padding-left: 9px; color: var(--rgf-burgundy); border-color: var(--rgf-burgundy); }
.rgf-arrow { margin-left: auto; }
.rgf-newsletter { display: grid; gap: 16px; }
.rgf-newsletter input, .rgf-newsletter button, .rgf-contact-button { width: 100%; min-height: 58px; border-radius: 17px; font: inherit; }
.rgf-newsletter input { border: 1px solid rgba(107,57,71,.25); outline: 1px solid rgba(255,255,255,.65); background: rgba(255,255,255,.28); padding: 0 22px; color: var(--rgf-ink); }
.rgf-newsletter input:focus { border-color: var(--rgf-teal); background: rgba(255,255,255,.55); box-shadow: 0 0 0 4px rgba(0,107,100,.12); outline: 0; }
.rgf-newsletter button, .rgf-contact-button { display: flex; align-items: center; justify-content: center; border: 1px solid rgba(0,83,79,.75); background: rgba(0,107,100,.88); box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 8px 18px rgba(0,83,79,.18); color: #fffaf2; cursor: pointer; font-weight: 700; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.rgf-newsletter button:hover, .rgf-newsletter button:focus-visible, .rgf-contact-button:hover, .rgf-contact-button:focus-visible { background: var(--rgf-teal-dark); color: #fffaf2; box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 14px 26px rgba(0,83,79,.32), 0 0 20px rgba(0,107,100,.2); transform: translateY(-4px); }
.rgf-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 44px; padding-top: 28px; border-top: 1px solid rgba(107,57,71,.18); font-size: .9rem; }
.rgf-bottom p { margin: 0; }
.rgf-socials { display: flex; flex-wrap: wrap; gap: 12px; }
.rgf-socials a { display: inline-flex; align-items: center; justify-content: center; min-width: 145px; padding: 11px 18px; border: 1px solid currentColor; border-radius: 999px; color: var(--rgf-burgundy); background: rgba(255,255,255,.18); text-decoration: none; transition: color .25s ease, background .25s ease, transform .25s ease; }
.rgf-socials a:last-child { color: var(--rgf-teal-dark); }
.rgf-socials a:hover, .rgf-socials a:focus-visible { color: #fffaf2; background: var(--rgf-burgundy); transform: translateY(-3px); }
.rgf-socials a:last-child:hover, .rgf-socials a:last-child:focus-visible { background: var(--rgf-teal-dark); }
.rgf-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 900px) {
  .rgf-glass { width: min(90%,720px); }
  .rgf-grid { grid-template-columns: 1fr 1fr; }
  .rgf-brand { grid-column: 1/-1; border-right: 0; border-bottom: 1px solid rgba(107,57,71,.18); padding: 0 0 30px; }
  .rgf-nav { padding-right: 30px; }
}

@media (max-width: 620px) {
  .rgf-site-footer { padding-top: 24px; }
  .rgf-glass { width: calc(100% - 32px); padding: 32px 24px; border-radius: 22px; }
  .rgf-grid { grid-template-columns: 1fr; gap: 34px; }
  .rgf-brand, .rgf-nav { grid-column: auto; border-right: 0; border-bottom: 1px solid rgba(107,57,71,.18); padding: 0 0 30px; }
  .rgf-bottom { align-items: stretch; flex-direction: column; }
  .rgf-socials { display: grid; grid-template-columns: 1fr 1fr; }
  .rgf-socials a { min-width: 0; padding-inline: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .rgf-site-footer *, .rgf-site-footer *::before, .rgf-site-footer *::after { transition-duration: .01ms !important; }
}
