/* ═══════════════════════════════════════════════════════════════════════
   STEP'N OUT — SITE FOOTER
   Matches the home page: Deep Plum ground, Champagne and Blush accents,
   Playfair Display headings over Montserrat body copy.

   Everything is scoped to .sno-footer or .footer-disclaimer, so nothing
   here can reach the header, the menu, or page content. Loads site-wide.

   Fonts are imported so no functions.php edit is needed. If you later
   enqueue Playfair Display and Montserrat globally, delete the @import
   so they are not fetched twice.
   ═══════════════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,600;1,500&family=Montserrat:wght@400;500;600;700&display=swap');

.sno-footer,
.footer-disclaimer{
  --plum:      #2E0020;
  --plum-deep: #1F0016;
  --champagne: #E8DDD5;
  --blush:     #D8B7B4;
  --charcoal:  #29272A;
  --serif: "Playfair Display", Georgia, serif;
  --sans:  "Montserrat", "Helvetica Neue", Arial, sans-serif;
}

/* ── Shell ──────────────────────────────────────────────────────────── */
.sno-footer{
  position:relative;
  margin:0;padding:0;
  background:var(--plum);
  color:rgba(255,255,255,.78);
  font-family:var(--sans);
  font-size:15px;line-height:1.72;
  border-top:3px solid var(--blush);
}
.sno-footer::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 8% 0%,  rgba(232,221,213,.09), transparent 55%),
    radial-gradient(ellipse at 92% 8%, rgba(216,183,180,.07), transparent 50%);
}
.sno-footer *{box-sizing:border-box;}
.sno-footer a{color:rgba(255,255,255,.82);text-decoration:none;transition:color .2s ease,border-color .2s ease;}
.sno-footer a:hover{color:var(--champagne);text-decoration:none;}
.sno-inner{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding-inline:clamp(20px,5vw,60px);}
.sno-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ── 1. Invitation ──────────────────────────────────────────────────── */
.sno-invite{
  position:relative;z-index:1;
  text-align:center;
  padding-block:clamp(46px,6vw,78px);
  border-bottom:1px solid rgba(232,221,213,.16);
}
.sno-eyebrow{
  margin:0 0 .9rem;
  font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--blush);
}
.sno-invite h2{
  margin:0 auto 1.1rem;max-width:16ch;
  font-family:var(--serif);font-weight:600;
  font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:1.14;
  color:#fff;
}
.sno-invite-copy{
  margin:0 auto;max-width:56ch;
  color:rgba(255,255,255,.74);font-size:1rem;
}
.sno-invite-actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:2rem;}

.sno-btn{
  display:inline-block;
  font-family:var(--sans);font-weight:700;font-size:.9rem;letter-spacing:.05em;
  padding:.92em 2em;border-radius:5px;
  background:var(--champagne);color:var(--plum) !important;
  border:1px solid var(--champagne);
  transition:background .22s ease,color .22s ease,transform .22s ease;
}
.sno-btn:hover{background:#fff;border-color:#fff;color:var(--plum) !important;transform:translateY(-2px);}
.sno-btn--ghost{background:transparent;color:#fff !important;border-color:rgba(255,255,255,.5);}
.sno-btn--ghost:hover{background:#fff;border-color:#fff;color:var(--plum) !important;}

/* ── 2. Columns ─────────────────────────────────────────────────────── */
.sno-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:clamp(1.8rem,4vw,3.4rem);
  padding-block:clamp(40px,5vw,64px);
  align-items:start;
}
.sno-col{min-width:0;}

.sno-col-title{
  margin:0 0 1.1rem;padding-bottom:.65rem;
  font-family:var(--sans);font-weight:600;
  font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--champagne);
  border-bottom:1px solid rgba(232,221,213,.22);
}
.sno-col-title em{
  display:block;margin-top:.35rem;
  font-style:normal;font-weight:400;font-size:.66rem;letter-spacing:.14em;
  color:rgba(216,183,180,.85);
}

/* Brand column */
.sno-footer .footer-logo{display:inline-block;margin:0 0 1.2rem;}
.sno-footer .footer-logo img{
  max-width:200px;height:auto;display:block;
  /* Supplied logo is purple and would vanish on plum. This renders it white.
     Swap in a white PNG or SVG when available and delete this filter. */
  filter:brightness(0) invert(1);
  opacity:.96;
}
.sno-tagline{margin:0 0 1.6rem;max-width:38ch;color:rgba(255,255,255,.68);font-size:.93rem;}

.sno-footer .footer-social{list-style:none;margin:0;padding:0;display:flex;gap:.55rem;}
.sno-footer .footer-social li{margin:0;padding:0;list-style:none;}
.sno-footer .footer-social a.social{
  display:flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(232,221,213,.4);
  color:var(--champagne);font-size:1.02rem;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
}
.sno-footer .footer-social a.social:hover{
  background:var(--champagne);border-color:var(--champagne);
  color:var(--plum);transform:translateY(-2px);
}

/* Visit column */
.sno-footer .footer-address{margin:0 0 1.1rem;}
.sno-footer .footer-address .address{display:block;}
.sno-footer .footer-address .address.one{color:#fff;}
.sno-contact{margin:0;display:flex;flex-direction:column;gap:.35rem;}
.sno-contact .sno-strong{
  font-family:var(--serif);font-size:1.35rem;font-weight:600;
  color:var(--champagne);letter-spacing:.01em;
}
.sno-contact a{word-break:break-word;}

/* Hours column */
.sno-status{
  display:inline-flex;align-items:center;gap:.5rem;
  margin:0 0 .9rem;padding:.32rem .8rem;border-radius:20px;
  font-size:.74rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
}
.sno-status .sno-dot{width:7px;height:7px;border-radius:50%;flex:0 0 7px;}
.sno-status.is-open{background:rgba(168,214,178,.14);color:#A8D6B2;}
.sno-status.is-open .sno-dot{background:#A8D6B2;box-shadow:0 0 0 3px rgba(168,214,178,.2);}
.sno-status.is-closed{background:rgba(216,183,180,.14);color:var(--blush);}
.sno-status.is-closed .sno-dot{background:var(--blush);}

.sno-footer .footer-hours{list-style:none;margin:0;padding:0;}
.sno-footer .footer-hours li{
  display:flex;justify-content:space-between;gap:1rem;
  padding-block:.5rem;
  border-bottom:1px solid rgba(255,255,255,.09);
  font-size:.9rem;
}
.sno-footer .footer-hours li:last-child{border-bottom:0;}
.sno-footer .footer-hours span{color:rgba(255,255,255,.68);}
.sno-footer .footer-hours b{font-weight:600;color:#fff;white-space:nowrap;}
.sno-footer .footer-hours .sno-closed b{color:var(--blush);font-weight:500;}

/* Explore column */
.sno-links{list-style:none;margin:0;padding:0;}
.sno-links li{margin:0;padding:0;list-style:none;}
.sno-links a{
  display:block;padding:.34rem 0;font-size:.93rem;
  border-bottom:1px solid transparent;width:fit-content;
}
.sno-links a:hover{border-bottom-color:var(--blush);}
.sno-links .sub-menu{display:none;}

/* ── 3. Accreditation ───────────────────────────────────────────────── */
.sno-footer .footer-affiliates{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:clamp(1.4rem,4vw,3rem);
  padding-block:1.9rem 2.4rem;
  border-top:1px solid rgba(232,221,213,.16);
}
.sno-footer .footer-affiliates .affiliate{margin:0;}
.sno-footer .footer-affiliates img.rocky-mountain-bride{
  width:82px;height:auto;opacity:.8;transition:opacity .22s ease;
}
.sno-footer .footer-affiliates img.rocky-mountain-bride:hover{opacity:1;}
/* The Sherri Hill seal injects a light-background badge; a white card keeps
   it legible on plum without restyling the vendor's own markup. */
.sno-footer .footer-affiliates .sherri-hill img,
.sno-footer .footer-affiliates .sherri-hill a img{
  background:#fff;border-radius:4px;padding:6px;display:block;
}

/* ── Scroll to top ──────────────────────────────────────────────────── */
.sno-footer #scroll-to-top-link{
  position:absolute;top:-23px;right:clamp(20px,5vw,60px);z-index:4;
  display:flex;align-items:center;justify-content:center;
  width:46px;height:46px;border-radius:50%;
  background:var(--blush);color:var(--plum) !important;
  box-shadow:0 5px 16px rgba(31,0,22,.3);
  transition:background .22s ease,transform .22s ease;
}
.sno-footer #scroll-to-top-link:hover{background:var(--champagne);transform:translateY(-3px);}

/* ── 4. Legal bar ───────────────────────────────────────────────────── */
.footer-disclaimer{
  margin:0;
  background:var(--plum-deep);
  color:rgba(255,255,255,.55);
  font-family:var(--sans);font-size:.78rem;line-height:1.9;
  text-align:center;
  padding:1.15rem clamp(20px,5vw,60px);
}
.footer-disclaimer a{
  color:rgba(255,255,255,.75);text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.2);
}
.footer-disclaimer a:hover{color:var(--champagne);border-color:var(--champagne);}
.footer-disclaimer .sno-sep{opacity:.35;margin-inline:.3rem;}

/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width:1020px){
  .sno-grid{grid-template-columns:1fr 1fr;gap:2.4rem 3rem;}
  .sno-col--brand{grid-column:1 / -1;}
  .sno-tagline{max-width:52ch;}
}
@media (max-width:600px){
  .sno-grid{grid-template-columns:1fr;gap:2.2rem;}
  .sno-invite h2{max-width:none;}
  .sno-invite-actions .sno-btn{width:100%;text-align:center;}
  .sno-footer .footer-logo img{max-width:168px;}
  .sno-footer #scroll-to-top-link{width:42px;height:42px;top:-21px;}
  .footer-disclaimer .sno-sep{display:block;visibility:hidden;height:0;}
}

@media (prefers-reduced-motion: reduce){
  .sno-footer *{transition-duration:.001ms !important;}
}
