
/* ============================================================
   Footer — Oregon Wills & Trust Planning
   Locked palette: teal #1E3517 / #3C4D35 / #112617
   Display: Playfair Display · Body: Inter Tight · Mono: JetBrains
   ============================================================ */

/* Hide the original Next.js footer on every page that loads this override,
   so _owt-ft-remount.js's appended footer.ft-section is the only one shown. */
footer:not(.ft-section){display:none!important}
/* Deferred React can re-mount an old homepage footer inside <main>; hide it. */
main footer{display:none!important}

/* The remount script inserts <h2 class="sr-only">Footer</h2> as an accessible
   landmark heading. Pages built outside Next.js (e.g. /book/, /contact/) don't
   define the Tailwind sr-only utility, which made the literal word "Footer"
   render in the top-left of the styled footer. Define it locally so it's
   always visually hidden but still announced to screen readers. */
.ft-section .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;
}

.ft-section{
  --ft-bg:#1E3517;
  --ft-bg-2:#3C4D35;
  --ft-bg-3:#112617;
  --ft-paper:#FAF8F3;
  --ft-ink:#FAF8F3;
  --ft-ink-soft:#EEEAE0;
  --ft-slate:rgba(251,248,240,.72);
  --ft-mute:rgba(251,248,240,.48);
  --ft-gold:#D1B36C;
  --ft-gold-2:#D1B36C;
  --ft-hairline:rgba(251,248,240,.14);
  --ft-display:'Playfair Display',Georgia,serif;
  --ft-sans:'Inter Tight','Inter',system-ui,sans-serif;
  --ft-mono:'JetBrains Mono',ui-monospace,monospace;

  position:relative;
  background:linear-gradient(180deg,#1E3517 0%,#3C4D35 45%,#112617 100%);
  color:var(--ft-ink-soft);
  font-family:var(--ft-sans);
  padding:96px 56px 28px;
  overflow:hidden;
}

/* ambient washes */
.ft-section::before,.ft-section::after{
  content:'';position:absolute;inset:0;pointer-events:none;
}
.ft-section::before{
  background:radial-gradient(60% 50% at 88% 0%, rgba(209,179,108,.10), transparent 60%);
}
.ft-section::after{
  background:radial-gradient(50% 60% at 0% 100%, rgba(161,172,157,.10), transparent 60%);
}

.ft-inner{
  position:relative;z-index:1;
  max-width:1280px;margin:0 auto;
  display:grid;
  grid-template-columns:1.25fr 1fr 1fr 1.15fr;
  gap:56px;
}

/* ---------- Brand column ---------- */
.ft-brand-name{
  font-family:var(--ft-display);font-weight:500;
  color:var(--ft-paper);
  font-size:30px;line-height:1.15;letter-spacing:-.005em;
  margin:0 0 22px;
}
.ft-brand-name em{font-style:italic;color:var(--ft-gold-2);font-weight:500}
.ft-brand-blurb{
  font-size:14.5px;line-height:1.65;color:var(--ft-slate);
  max-width:340px;margin:0 0 28px;
}
.ft-social{display:flex;gap:10px}
.ft-social a{
  width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;
  background:rgba(251,248,240,.06);
  border:1px solid var(--ft-hairline);
  color:var(--ft-ink-soft);
  text-decoration:none;
  transition:.4s cubic-bezier(.2,.7,.2,1);
}
.ft-social a:hover{
  background:rgba(209,179,108,.12);
  border-color:rgba(209,179,108,.4);
  color:var(--ft-gold-2);
  transform:translateY(-2px);
}
.ft-social svg{width:16px;height:16px;stroke-width:1.6}

/* ---------- Column header (mono eyebrow) ---------- */
.ft-col-head{
  font-family:var(--ft-mono);font-weight:500;
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ft-paper);
  margin:0 0 22px;
  padding-bottom:14px;
  border-bottom:1px solid var(--ft-hairline);
  position:relative;
}
.ft-col-head::after{
  content:'';position:absolute;left:0;bottom:-1px;width:32px;height:1px;
  background:var(--ft-gold);
}

.ft-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:13px}
.ft-list a{
  color:var(--ft-ink-soft);text-decoration:none;
  font-size:14.5px;font-weight:400;letter-spacing:.005em;
  transition:.3s ease;
  display:inline-flex;align-items:center;gap:8px;
  position:relative;
}
.ft-list a::before{
  content:'';width:0;height:1px;background:var(--ft-gold);
  transition:.4s cubic-bezier(.2,.7,.2,1);
}
.ft-list a:hover{color:var(--ft-paper)}
.ft-list a:hover::before{width:14px}

/* ---------- Contact column ---------- */
.ft-contact{display:flex;flex-direction:column;gap:18px}
.ft-contact-row{
  display:flex;align-items:flex-start;gap:12px;
  font-size:14.5px;line-height:1.55;color:var(--ft-ink-soft);
}
.ft-contact-row .icon{
  flex-shrink:0;width:18px;height:18px;
  display:grid;place-items:center;
  color:var(--ft-gold);margin-top:2px;
}
.ft-contact-row svg{width:16px;height:16px;stroke-width:1.6}
.ft-contact-row a{color:inherit;text-decoration:none;transition:color .3s}
.ft-contact-row a:hover{color:var(--ft-gold-2)}

/* ---------- Newsletter ---------- */
.ft-news{
  margin-top:30px;padding-top:24px;
  border-top:1px solid var(--ft-hairline);
}
.ft-news-title{
  font-family:var(--ft-display);font-weight:500;
  color:var(--ft-paper);
  font-size:16.5px;line-height:1.4;
  margin:0 0 14px;
}
.ft-news-form{display:flex;gap:0;border:1px solid var(--ft-hairline);border-radius:999px;background:rgba(251,248,240,.04);overflow:hidden;transition:border-color .3s}
.ft-news-form:focus-within{border-color:rgba(209,179,108,.4);background:rgba(251,248,240,.06)}
.ft-news-form input{
  flex:1;border:none;background:transparent;outline:none;
  padding:12px 16px;
  font:400 14px var(--ft-sans);color:var(--ft-paper);
}
.ft-news-form input::placeholder{color:var(--ft-mute)}
.ft-news-form button{
  border:none;cursor:pointer;
  padding:12px 22px;margin:3px;
  background:var(--ft-paper);color:var(--ft-bg);
  font:500 13px var(--ft-sans);letter-spacing:.005em;
  border-radius:999px;
  transition:.4s cubic-bezier(.2,.7,.2,1);
}
.ft-news-form button:hover{background:var(--ft-gold-2);color:var(--ft-bg)}

/* ---------- Bottom bar ---------- */
.ft-bottom{
  position:relative;z-index:1;
  max-width:1280px;margin:80px auto 0;
  padding-top:28px;
  border-top:1px solid var(--ft-hairline);
  display:grid;grid-template-columns:1.5fr auto 1fr;gap:40px;
  align-items:start;
}
.ft-copy{
  font-size:12.5px;line-height:1.6;color:var(--ft-mute);
}
.ft-copy strong{color:var(--ft-ink-soft);font-weight:500}
.ft-legal-links{
  display:flex;gap:22px;align-items:center;
  font-size:12.5px;
}
.ft-legal-links a{
  color:var(--ft-ink-soft);text-decoration:none;
  transition:color .3s;
}
.ft-legal-links a:hover{color:var(--ft-gold-2)}
.ft-disclaimer{
  font-size:11.5px;line-height:1.65;color:var(--ft-mute);
  font-style:italic;
}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .ft-inner{grid-template-columns:1fr 1fr;gap:48px 40px}
  .ft-section{padding:80px 40px 24px}
  .ft-bottom{grid-template-columns:1fr;gap:20px;margin-top:60px}
  .ft-legal-links{order:-1}
}
@media (max-width:560px){
  .ft-inner{grid-template-columns:1fr;gap:40px}
  .ft-section{padding:64px 24px 20px}
  .ft-brand-name{font-size:26px}
}

