/* ===== UCTH footer — everything scoped under .uf ===== */
.uf {
  --uf-ink: #f1f7f4;
  --uf-soft: #a9c3ba;
  --uf-gold: #ecb454;
  --uf-green: #1E5C4C;
  --uf-teal: #1c9c82;
  --uf-line: rgba(255, 255, 255, .1);
  --uf-card: rgba(255, 255, 255, .05);
  --uf-ease: cubic-bezier(.22, .61, .36, 1);

  position: relative; overflow: hidden;
  background: radial-gradient(120% 140% at 15% 0%, #0e2b25 0%, #071613 55%, #050f0d 100%);
  color: var(--uf-soft) !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: .95rem; line-height: 1.6;
}
.uf::before { /* soft gold glow */
  content: ""; position: absolute; top: -140px; right: -100px; width: 380px; height: 380px; border-radius: 50%;
  background: radial-gradient(circle, rgba(236, 180, 84, .13), transparent 70%); pointer-events: none;
}
.uf *, .uf *::before, .uf *::after { box-sizing: border-box; }
.uf a { text-decoration: none; }
.uf ul { list-style: none; margin: 0; padding: 0; }
.uf h2, .uf h3, .uf h4, .uf p, .uf address { margin: 0; }
.uf address { font-style: normal; }
.uf :focus-visible { outline: 3px solid rgba(236, 180, 84, .6); outline-offset: 3px; border-radius: 6px; }
.uf .uf-wrap { position: relative; max-width: 1240px; margin: 0 auto; padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1rem, 4vw, 2rem) 1.25rem; }
.uf-bottom { padding-right: 5.5rem; } /* room for the site's floating buttons */

/* ---------- call-to-action band ---------- */
.uf .uf-cta {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 2rem;
  padding: clamp(1.25rem, 3vw, 1.9rem) clamp(1.25rem, 3vw, 2rem);
  margin-bottom: clamp(2rem, 5vw, 3.5rem);
  background: var(--uf-card); border: 1px solid var(--uf-line); border-left: 4px solid var(--uf-gold); border-radius: 18px;
}
.uf .uf-cta h2 { font-family: 'Source Serif 4', Georgia, serif; font-size: clamp(1.35rem, 3vw, 1.8rem); font-weight: 600; color: var(--uf-ink) !important; line-height: 1.2; }
.uf .uf-cta p { margin-top: .4rem; max-width: 46ch; }
.uf .uf-cta-actions { display: flex; flex-wrap: wrap; gap: .75rem; }

.uf .uf-btn {
  display: inline-flex; align-items: center; gap: .75rem;
  padding: .75rem 1.2rem; border-radius: 14px; font-weight: 700; font-size: .95rem;
  transition: transform .25s var(--uf-ease), background .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.uf .uf-btn:hover { transform: translateY(-2px); }
.uf .uf-btn--call { background: var(--uf-gold); color: #10241f !important; box-shadow: 0 10px 24px rgba(236, 180, 84, .25); }
.uf .uf-btn--call:hover { background: #f4c470; box-shadow: 0 14px 28px rgba(236, 180, 84, .35); }
.uf .uf-btn-text { display: flex; flex-direction: column; line-height: 1.25; }
.uf .uf-btn-text small { font-size: .74rem; font-weight: 600; opacity: .85; color: inherit; }
.uf .uf-btn-text strong { font-size: 1.05rem; letter-spacing: .01em; color: inherit; }
.uf .uf-btn--ghost { color: var(--uf-ink) !important; border: 1.5px solid rgba(255, 255, 255, .3); }
.uf .uf-btn--ghost:hover { background: #fff; color: #10241f !important; border-color: #fff; }

.uf .uf-pulse { position: relative; flex: none; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: #10241f; color: var(--uf-gold) !important; }
.uf .uf-pulse svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.uf .uf-pulse::after { content: ""; position: absolute; inset: 0; border-radius: 10px; border: 2px solid #10241f; animation: ufPulse 1.9s ease-out infinite; }
@keyframes ufPulse { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.6); opacity: 0; } }

/* ---------- main grid ---------- */
.uf .uf-grid { display: grid; grid-template-columns: 1fr; gap: clamp(2rem, 5vw, 2.75rem); }
@media (min-width: 720px)  { .uf .uf-grid { grid-template-columns: 1.15fr .85fr; } .uf .uf-contact { grid-column: 1 / -1; } }
@media (min-width: 1100px) { .uf .uf-grid { grid-template-columns: 1.2fr .75fr 2fr; } .uf .uf-contact { grid-column: auto; } }

.uf .uf-title { position: relative; margin-bottom: 1.25rem; padding-bottom: .75rem; font-family: 'Source Serif 4', Georgia, serif; font-size: 1.2rem; font-weight: 600; color: var(--uf-ink) !important; }
.uf .uf-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 2.5rem; height: 3px; border-radius: 2px; background: var(--uf-gold); }

/* brand */
.uf .uf-logo { display: inline-flex; align-items: center; gap: .9rem; margin-bottom: 1.1rem; }
.uf .uf-logo-mark { flex: none; display: grid; place-items: center; padding: 6px; border-radius: 14px; background: #fff; box-shadow: 0 6px 18px rgba(0, 0, 0, .25); }
.uf .uf-logo-mark img { display: block; width: 46px; height: auto; }
.uf .uf-logo-text { display: flex; flex-direction: column; font-family: 'Source Serif 4', Georgia, serif; font-size: 1.6rem; font-weight: 700; line-height: 1.1; color: var(--uf-ink) !important; letter-spacing: .02em; }
.uf .uf-logo-text small { margin-top: .25rem; font-family: 'Inter', sans-serif; font-size: .74rem; font-weight: 500; letter-spacing: 0; color: var(--uf-soft) !important; }
.uf .uf-about { max-width: 52ch; font-size: .92rem; line-height: 1.75; }

.uf .uf-social { display: flex; gap: .6rem; margin-top: 1.4rem; }
.uf .uf-social a {
  display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%;
  border: 1.5px solid var(--uf-line); color: var(--uf-ink) !important;
  transition: transform .25s var(--uf-ease), background .25s ease, color .25s ease, border-color .25s ease;
}
.uf .uf-social a:hover { transform: translateY(-3px); background: var(--uf-gold); border-color: var(--uf-gold); color: #10241f !important; }
.uf .uf-social svg { width: 18px; height: 18px; }

/* quick links */
.uf .uf-links li + li { margin-top: .15rem; }
.uf .uf-links a { display: inline-flex; align-items: center; gap: .5rem; padding: .35rem 0; color: var(--uf-soft) !important; transition: color .2s ease, transform .25s var(--uf-ease); }
.uf .uf-links a::before { content: ""; width: 0; height: 2px; border-radius: 2px; background: var(--uf-gold); transition: width .25s var(--uf-ease); }
.uf .uf-links a:hover { color: #fff !important; transform: translateX(2px); }
.uf .uf-links a:hover::before { width: 14px; }
@media (min-width: 480px) and (max-width: 719px) { .uf .uf-links ul { columns: 2; column-gap: 1.5rem; } .uf .uf-links li { break-inside: avoid; } }

/* contact cards */
.uf .uf-locs { display: grid; gap: .9rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .uf .uf-locs { grid-template-columns: repeat(2, 1fr); } .uf .uf-loc--main { grid-column: 1 / -1; } }
@media (min-width: 1100px) { .uf .uf-locs { grid-template-columns: repeat(2, 1fr); } }

.uf .uf-loc {
  display: flex; flex-direction: column; gap: .5rem;
  padding: 1.1rem 1.2rem; border-radius: 16px;
  background: var(--uf-card); border: 1px solid var(--uf-line);
  transition: transform .3s var(--uf-ease), border-color .3s ease, background .3s ease;
}
.uf .uf-loc:hover { transform: translateY(-3px); border-color: rgba(236, 180, 84, .45); background: rgba(255, 255, 255, .07); }
.uf .uf-loc--main { border-color: rgba(236, 180, 84, .3); }
.uf .uf-tag { align-self: flex-start; padding: .2rem .65rem; border-radius: 999px; background: rgba(236, 180, 84, .16); color: var(--uf-gold) !important; font-size: .72rem; font-weight: 700; letter-spacing: .02em; }
.uf .uf-tag--alt { background: rgba(28, 156, 130, .18); color: #7fe0c6 !important; }
.uf .uf-loc h4 { font-family: 'Source Serif 4', Georgia, serif; font-size: 1.05rem; font-weight: 600; line-height: 1.3; color: var(--uf-ink) !important; }
.uf .uf-loc address { font-size: .9rem; line-height: 1.55; flex: 1; }
.uf .uf-loc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; }

.uf .uf-phone { display: inline-flex; align-items: center; gap: .5rem; align-self: flex-start; padding: .4rem .8rem; border-radius: 999px; background: rgba(255, 255, 255, .07); color: var(--uf-ink) !important; font-weight: 700; font-size: .92rem; transition: background .25s ease, color .25s ease; }
.uf .uf-phone svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; color: var(--uf-gold) !important; transition: color .25s ease; }
.uf .uf-phone:hover { background: var(--uf-gold); color: #10241f !important; }
.uf .uf-phone:hover svg { color: #10241f !important; }
.uf .uf-dir { font-size: .88rem; font-weight: 700; color: var(--uf-gold) !important; }
.uf .uf-dir:hover { text-decoration: underline; text-underline-offset: 3px; }

/* bottom bar */
.uf-bottom { margin-top: clamp(2rem, 5vw, 3rem); padding-top: 1.25rem; border-top: 1px solid var(--uf-line); }
.uf-copy { font-size: .86rem; }

/* ---------- reveal on scroll (only when JS is running) ---------- */
.uf-js [data-uf] { opacity: 0; transform: translateY(18px); }
.uf-js [data-uf].is-in { opacity: 1; transform: none; transition: opacity .7s ease var(--d, 0ms), transform .7s var(--uf-ease) var(--d, 0ms); }

/* ---------- small screens ---------- */
@media (max-width: 640px) {
  .uf .uf-cta-actions { width: 100%; }
  .uf .uf-btn { flex: 1 1 100%; justify-content: center; }
  .uf .uf-btn--call { justify-content: flex-start; }
  .uf .uf-bottom { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .uf *, .uf *::before, .uf *::after { animation: none !important; transition: none !important; }
  .uf-js [data-uf] { opacity: 1; transform: none; }
}

/* ---------- colour guard: the old site-wide footer rules were turning text black / pale ---------- */
.uf p, .uf address, .uf li { color: var(--uf-soft) !important; }
.uf .uf-cta h2, .uf .uf-title, .uf .uf-loc h4, .uf .uf-logo-text { color: var(--uf-ink) !important; }
.uf .uf-cta p, .uf .uf-about, .uf .uf-copy, .uf .uf-loc address { color: var(--uf-soft) !important; }
.uf .uf-logo-text small { color: var(--uf-soft) !important; }
.uf .uf-btn--call, .uf .uf-btn--call .uf-btn-text small, .uf .uf-btn--call .uf-btn-text strong { color: #10241f !important; }
.uf .uf-btn--call .uf-btn-text small { opacity: .85; }
.uf .uf-btn--ghost { color: #ffffff !important; }
.uf .uf-btn--ghost:hover { color: #10241f !important; }
.uf .uf-phone, .uf .uf-phone span { color: var(--uf-ink) !important; }
.uf .uf-phone:hover { color: #10241f !important; }
.uf .uf-phone svg { color: var(--uf-gold) !important; }
.uf .uf-phone:hover svg { color: #10241f !important; }
.uf .uf-links a { color: var(--uf-soft) !important; }
.uf .uf-links a:hover { color: #ffffff !important; }
.uf .uf-social a { color: var(--uf-ink) !important; }
.uf .uf-social a:hover { color: #10241f !important; }
.uf .uf-dir { color: var(--uf-gold) !important; }