/*
Theme Name: Rust Mountain View Ranch
Theme URI: https://rustmountainviewranch.com
Author: Rust Mountain
Description: Custom WordPress theme for Rust Mountain View Ranch by Kwest Communications
Version: 1.5
*/

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

/* ==============================
   Design Tokens
   ============================== */
:root{
  --olive: #324a26;
  --olive-dark: #1e2918;
  --cream: #fff6e0;
  --inner-max: 1200px;
  --logo-h: 44px;
  --ribbon-olive: #2f4a25;   /* used by nav; kept here so vars exist globally */
  --ribbon-rail: 20px;
}

/* ==============================
   Base
   ============================== */
body{
  font-family:'Rubik',sans-serif;
  margin:0;
  color:#333;
  background:#fff;
}
h1,h2,h3{
  font-family:'DM Serif Display',serif;
  font-weight:400;
}

/* =========================================
   HEADER / NAVIGATION styles were moved to:
   assets/css/navigation.css
   ========================================= */

/* ==============================
   WELCOME (home)
   ============================== */
.home .welcome-section{
  position:relative;
  background:url('assets/paper-texture.jpg') center/cover no-repeat;
  padding-top:clamp(1rem, 2.5vw, 2rem);
  padding-bottom:clamp(2rem, 4vw, 4rem);
  overflow:hidden;
  margin-top:0;
}
.welcome-section::before{
  content:''; position:absolute; inset:0;
  background-color:rgba(255,253,240,.50); z-index:1;
}
.welcome-inner{
  position:relative; z-index:2; text-align:left;
  max-width:700px; margin-left:auto; margin-right:15%;
  padding:0 2rem;
}
.welcome-dropword{
  position:absolute; top:0; left:0;
  transform:none;
  font-size:16vw; font-family:'DM Serif Display',serif;
  color:rgba(180,160,110,.65); white-space:nowrap; width:100vw;
  text-align:left; pointer-events:none; z-index:0; mix-blend-mode:multiply;
}
.welcome-intro{
  font-size:1.35rem; line-height:1.85; color:#333; position:relative; z-index:2;
}

/* --- Olive chevron separator at bottom of Welcome --- */
:root { --sep-rail: 44px; } /* length of the chevron tip */

/* OLIVE chevron OVER the wash, pinned to bottom */
.welcome-section::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  height:48px;                         /* separator height */
  background:var(--ribbon-olive);      /* same olive as nav */
  clip-path: polygon(0 0,
                     calc(100% - var(--sep-rail)) 0,
                     100% 50%,
                     calc(100% - var(--sep-rail)) 100%,
                     0 100%);
  z-index:2;                           /* sits above the wash */
  pointer-events:none;
}

/* Mobile tweak */
@media (max-width:767px){
  .welcome-section::after { height:32px; }
}

@media (min-width:768px){
  .home .welcome-inner{ padding-top:3rem; }
}
@media (max-width:767px){
  .welcome-dropword{ top:10%; font-size:20vw; text-align:center; width:100%; }
  .welcome-inner{ margin:0 auto; padding:2rem 1.5rem; }
  .welcome-intro{ font-size:1.1rem; line-height:1.6; text-align:center; }
}

/* ==============================
   Map / Directions
   ============================== */
.map-directions-section {
  position: relative;
  padding: clamp(6rem, 20vh, 10rem) 0; /* doubled from previous */
  width: 100%;
  overflow: hidden;
  background-image: var(--map-bg, url('assets/map-ranch.jpg'));
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  isolation: isolate;
}


.map-directions-section::before{
  content:"";
  position:absolute; inset:0;
  background:radial-gradient(120% 120% at 100% 50%, rgba(0,0,0,.25) 0%, rgba(0,0,0,.45) 70%, rgba(0,0,0,.55) 100%);
  z-index:1;
}
.map-directions-overlay{
  position:relative; z-index:2;
  max-width:520px; width:min(42vw,600px);
  margin-left:clamp(1rem,6vw,7rem); margin-right:auto;
  background:rgba(255,253,240,.8);
  border-left:6px solid #6b7a3a;
  box-shadow:0 10px 30px rgba(0,0,0,.20);
  padding:clamp(1.25rem,2.5vw,2rem);
  backdrop-filter:blur(2px);
}
.map-directions-overlay .mds{
  font-family:'DM Serif Display',serif;
  font-size:clamp(1.75rem,3vw,2.5rem);
  line-height:1.15; margin:0 0 .5rem; color:#1f2a1f;
}
.map-directions-copy{
  font-size:clamp(1rem,1.2vw,1.0625rem);
  line-height:1.6; margin-bottom:1rem;
}
.btn-olive-outline{
  display:inline-block; font-size:.9rem; letter-spacing:.08em; text-transform:uppercase;
  text-decoration:none; padding:.7rem 1.1rem; border:2px solid #6b7a3a; color:#6b7a3a; background:transparent;
  transition:background-color 180ms ease,color 180ms ease, transform 120ms ease;
}
.btn-olive-outline:hover,.btn-olive-outline:focus{ background:#fff9e6; color:#2f3a1f; }
.btn-olive-outline:active{ transform:translateY(1px); }
@media (max-width:767px){
  .map-directions-section{ background-attachment:scroll; background-position:center 30%; padding:1.5rem 0; }
  .map-directions-overlay{ width:calc(100% - 2rem); max-width:none; margin:0 auto; border-left-width:4px; padding:1rem; background:rgba(255,253,240,.5);}
}
@supports (background-attachment: fixed){
  .map-directions-section{ will-change:background-position; }
}

/* ==============================
   Sires/Dams Archive (shared styles)
   ============================== */
.sires-archive .container{ width:min(1200px,92vw); margin:0 auto; }
.sires-archive__header{ padding:1.5rem 0 .5rem; border-bottom:1px solid #e9e9e9; }
.sires-archive__title{ margin:0 0 .75rem; font-weight:400; }

/* Filters */
.sires-filter{ margin:.5rem 0 1rem; }
.sires-filter .filter-label{ font-weight:600; margin-right:.75rem; }

.sires-filter--pills .filter-pills .filter-pill,
.filter-btn,
.sire-btn{
  display:inline-block; padding:.4rem .9rem; font-size:.8rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.5px; color:#4B5E36; border:2px solid #4B5E36;
  border-radius:0; background:transparent; text-decoration:none; transition:all .2s ease-in-out; line-height:1;
}
.sires-filter--pills .filter-pills .filter-pill + .filter-pill,
.filter-btn + .filter-btn{ margin-left:.5rem; }
.sires-filter--pills .filter-pills .filter-pill:hover,
.filter-btn:hover,
.sire-btn:hover{ background:#fdf7e3; color:#4B5E36; border-color:#3a4729; }
.sires-filter--pills .filter-pills .filter-pill.is-active,
.filter-btn.active{ background:#fdf7e3; color:#4B5E36; border-color:#3a4729; }

/* Mobile filter dropdown */
.sires-filter--dropdown{ display:none; }
.sires-filter--dropdown select{ padding:.45rem .6rem; border:1px solid #cfcfcf; border-radius:8px; font-size:.95rem; background:#fff; }

@media (min-width:701px){
  .sires-archive__header .container{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; }
  .sires-archive__title{ font-size:2.5rem; margin:0; flex:1; }
  .sires-filter--pills{ margin:0; display:flex; align-items:center; justify-content:flex-end; flex:1; }
  .sires-filter--pills .filter-label{ margin-right:.5rem; font-weight:700; }
  .sires-filter--pills .filter-pills{ display:flex; gap:.5rem; }
  .sires-filter--dropdown{ display:none; }
}
@media (max-width:700px){
  .sires-filter--pills{ display:none; }
  .sires-filter--dropdown{ display:flex; align-items:center; gap:.5rem; }
}

/* Grid & Cards */
.sires-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding:1.25rem 0 2rem; }
@media (max-width:1024px){ .sires-grid{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .sires-grid{ grid-template-columns:1fr;} }

.sire-card{
  background:#fff; border:1px solid #eee; border-radius:12px; overflow:hidden;
  transition:transform .2s ease, box-shadow .2s ease;
}
.sire-card:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.08); }
.sire-card-link{ text-decoration:none; color:inherit; display:block; }

.sire-thumb{ background:none; overflow:hidden; margin-bottom:0; aspect-ratio:auto; }
.sire-thumb img{ display:block; width:100%; height:auto; margin:0; border-top-left-radius:12px; border-top-right-radius:12px; }

.sire-card__body{ padding:.15rem 1rem 1rem; }
.sire-name{ font-family:'DM Serif Display',serif; font-weight:400; font-size:1.35rem; line-height:1.25; margin:0 0 .35rem; }

.sire-meta{ list-style:none; padding-left:0; margin:0 0 1rem; }
.sire-meta li{ margin-bottom:.25rem; font-size:.95rem; line-height:1.4; }
.sire-meta li span{ display:inline-block; min-width:75px; font-weight:700; color:#556B2F; }
.sire-meta li:last-child{ margin-bottom:0; }

.sire-actions{ margin-top:.6rem; display:flex; align-items:center; gap:.5rem; justify-content:flex-end;}
@media (max-width:767px){ .sire-actions{ justify-content:flex-start; } .sire-btn{ padding:.35rem .7rem; letter-spacing:.4px; } }

.canadian-epd{ margin-top:.25rem; }
.canadian-epd a{ font-size:.75rem; font-weight:500; color:#4B5E36; text-decoration:underline; }
.canadian-epd a:hover{ color:#3a4729; }

.sire-description{ font-style:italic; margin-top:.2rem; font-size:.7rem; line-height:1.4; }

/* Pagination */
.sires-pagination{ margin:.5rem 0 2.25rem; text-align:center; }
.sires-pagination .page-numbers{
  display:inline-block; margin:0 .25rem; padding:.4rem .7rem; border:1px solid #ddd; border-radius:8px; text-decoration:none; color:#333;
}
.sires-pagination .current{ background:#6b7a4b; color:#fff; border-color:#6b7a4b; }
.sires-pagination a:hover{ background:#f5f7f0; }
.no-results{ padding:2rem 0 3rem; color:#666; text-align:center; }

/* ==============================
   Scroll-to-top button
   ============================== */
.scroll-top{
  position:fixed; right:clamp(12px,2.5vw,24px); bottom:max(12px, env(safe-area-inset-bottom));
  z-index:9999; width:48px; height:48px; display:grid; place-items:center;
  border:2px solid var(--olive); background:color-mix(in oklab, var(--cream) 85%, transparent);
  color:var(--olive); border-radius:999px; box-shadow:0 6px 20px rgba(0,0,0,.15); cursor:pointer;
  opacity:0; transform:translateY(10px) scale(.9); pointer-events:none;
  transition:opacity .25s ease, transform .25s ease, box-shadow .2s ease;
}
.scroll-top svg{ display:block; }
.scroll-top:hover{ box-shadow:0 10px 24px rgba(0,0,0,.18); transform:translateY(0) scale(1); }
.scroll-top:focus-visible{ outline:3px solid color-mix(in oklab, var(--olive) 40%, white); outline-offset:2px; }
.scroll-top.is-visible{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
@media (max-width:480px){ .scroll-top{ width:42px; height:42px; } }
@media (prefers-reduced-motion: reduce){ .scroll-top{ transition:none; } html{ scroll-behavior:auto; } }


.rusts-signature {
  display: inline-block;
  max-width: 250px; /* adjust as needed */
  margin-top: 0.5rem;
}
/* =========================================
   SALE EVENT (home)
   ========================================= */
:root{
  /* Palette hooks (adjust if you already have vars) */
  --rmvr-olive: #3c4d23;            /* site olive/dark accent */
  --rmvr-cream: #fffdf0;            /* current cream from welcome/menu */
  --rmvr-cream-light: #fffef8;      /* lighter cream for this section */
  --rmvr-text: #2a2a2a;             /* default body text */
}
/* ==============================
   SALE EVENT — scattered bg + animated floaters
   ============================== */

/* ==============================
   SALE EVENT — BG + FLOATERS (scoped to .sale-event-wrap)
   ============================== */

.sale-event-section{
  position: relative;
  z-index: 0;                      /* stacking context */
  background-color: #F3F0E5;
  padding: clamp(2rem, 5vw, 4rem) 0;
  border-top: 1px solid rgba(0,0,0,.05);
  border-bottom: 4px solid var(--rmvr-olive);
  overflow: hidden;
}

/* Your width container */
.sale-event-wrap{
  width: min(1200px, 92vw);
  margin: 0 auto;
  position: relative;              /* anchor floaters inside this box */
  z-index: 0;
}

/* Normal content sits above the floater layer (but still inside wrap) */
.sale-event-wrap > :not(.sale-event-floaters){
  position: relative;
  z-index: 2;
}

/* --- Static scattered background at the very back of the SECTION --- */
.sale-event-section::before{
  content:"";
  position:absolute;
  inset:-20px 0 -20px 0;
  pointer-events:none;
  z-index:0;                       /* backmost */
  background-image:
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png'),
    url('assets/backgroundlogo.png');
  background-repeat: no-repeat;
  background-position:
     6%  14%, 24% 28%, 12% 78%, 44% 18%, 68% 30%,
    86%  12%, 58% 72%, 79% 86%, 33% 92%,  8% 52%,
    94%  42%, 51% 96%, 72% 55%, 18% 40%, 90% 70%;
  background-size:
    140px auto, 160px auto, 130px auto, 150px auto, 145px auto,
    135px auto, 155px auto, 140px auto, 125px auto, 150px auto,
    135px auto, 145px auto, 130px auto, 155px auto, 140px auto;
  opacity:.07;
  filter:grayscale(1);
  mix-blend-mode:multiply;
}
/* --- Animated floaters (subtle) --- */
.sale-event-wrap .sale-event-floaters{
  position:absolute;
  inset:0;
  z-index:1;                 /* between ::before and content */
  pointer-events:none;
}

.sale-event-wrap .sale-event-floaters span{
  position:absolute;
  width:180px; height:180px;
  background:url('assets/backgroundlogo.png') center/contain no-repeat;
  opacity:.12;
  filter:grayscale(1);
  mix-blend-mode:multiply;
  animation: rmvr-float 30s ease-in-out infinite; /* slower base */
  will-change: transform;
  transform: translate3d(0,0,0);
}


/* Positions, sizes, durations, delays (now longer/slower) */
.sale-event-wrap .sale-event-floaters span:nth-child(1){ left: 6%;  top:10%; width:200px; height:200px; animation-duration:36s; animation-delay:0s;   }
.sale-event-wrap .sale-event-floaters span:nth-child(2){ left:26%; top:40%; width:150px; height:150px; animation-duration:32s; animation-delay:1s;   }
.sale-event-wrap .sale-event-floaters span:nth-child(3){ left:10%; top:72%; width:190px; height:190px; animation-duration:38s; animation-delay:2s;   }
.sale-event-wrap .sale-event-floaters span:nth-child(4){ left:42%; top:20%; width:170px; height:170px; animation-duration:34s; animation-delay:.8s;  }
.sale-event-wrap .sale-event-floaters span:nth-child(5){ left:70%; top:34%; width:210px; height:210px; animation-duration:40s; animation-delay:1.6s; }
.sale-event-wrap .sale-event-floaters span:nth-child(6){ left:56%; top:76%; width:160px; height:160px; animation-duration:35s; animation-delay:.4s;  }
.sale-event-wrap .sale-event-floaters span:nth-child(7){ left:82%; top:88%; width:190px; height:190px; animation-duration:37s; animation-delay:2.4s; }
.sale-event-wrap .sale-event-floaters span:nth-child(8){ left:88%; top:16%; width:170px; height:170px; animation-duration:33s; animation-delay:1.2s; }

/* Subtle float keyframes */
@keyframes rmvr-float{
  0%   { transform: translate3d(0,0,0)        scale(1)     rotate(0deg); }
  25%  { transform: translate3d(12px,-14px,0) scale(1.02)  rotate(-0.5deg); }
  50%  { transform: translate3d(-10px,10px,0) scale(1.04)  rotate(0.8deg); }
  75%  { transform: translate3d(14px,16px,0)  scale(1.02)  rotate(-0.5deg); }
  100% { transform: translate3d(0,0,0)        scale(1)     rotate(0deg); }
}

/* Mobile: fewer + lighter */
@media (max-width: 900px){
  .sale-event-wrap .sale-event-floaters span{ opacity:.08; }
  .sale-event-wrap .sale-event-floaters span:nth-child(n+5){ display:none; }
  .sale-event-wrap .sale-event-floaters span:nth-child(1){ left:12%; top:12%; width:130px; height:130px; --dur:26s; }
  .sale-event-wrap .sale-event-floaters span:nth-child(2){ left:68%; top:18%; width:120px; height:120px; --dur:24s; }
  .sale-event-wrap .sale-event-floaters span:nth-child(3){ left:20%; top:66%; width:125px; height:125px; --dur:28s; }
  .sale-event-wrap .sale-event-floaters span:nth-child(4){ left:78%; top:78%; width:135px; height:135px; --dur:30s; }
}

/* Respect reduced motion (remove your earlier “force on” override) */
@media (prefers-reduced-motion: reduce){
  .sale-event-wrap .sale-event-floaters span{ animation:none; opacity:.06; }
}

/* Section headline above grid */
.sale-section-heading {
  text-align: center;
  font-family: "DM Serif Display", serif;
  font-size: clamp(2rem, 3vw, 2.5rem);
  margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
  color: var(--rmvr-olive);
  letter-spacing: .02em;
}

/* Sale name inside left column (smaller than section headline) */
.sale-event-heading {
  text-align: left;
  font-family: "DM Serif Display", serif;
  font-size: clamp(1.5rem, 2vw, 1.875rem);
  margin: 0 0 1rem;
  color: var(--rmvr-olive);
  letter-spacing: .02em;
}


.sale-event-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start;
}

.sale-event-flyer {
  margin: 0;
  padding: 0;
  line-height: 0;      /* kills inline-image bottom gap */
}

.sale-event-flyer img {
  display: block;
  width: 100%;
  height: auto;
}


/* Details */
.sale-event-details{
  color: var(--rmvr-text);
  font-size: clamp(1rem, 1.2vw, 1.0625rem);
  line-height: 1.6;
}

.sale-meta{
  list-style: none;
  padding: 0;
  margin: 0 0 1.25rem;
}

.sale-meta li + li{
  margin-top: .35rem;
}

.sale-meta a{
  color: var(--rmvr-olive);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.sale-meta a:hover,
.sale-meta a:focus{
  border-bottom-color: currentColor;
  outline: none;
}

/* ==============================
   Reusable Buttons (site-wide)
   (updated: slight round, normal weight, slightly smaller)
   ============================== */
.btn{
  --btn-bg: #e9ecef;
  --btn-fg: #1f1f1f;
  --btn-bd: transparent;

  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;

  font-family: "Rubik", system-ui, -apple-system, Segoe UI, Arial, sans-serif;
  font-size: 0.9rem;          /* a touch smaller */
  font-weight: 400;           /* not bold */
  line-height: 1.3;

  text-decoration: none;
  background: var(--btn-bg);
  color: var(--btn-fg);
  border: 1px solid var(--btn-bd);
  border-radius: 6px;         /* slight rounding */
  padding: 0.65rem 1rem;

  transition: transform .06s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
  cursor: pointer;
  white-space: nowrap;
}

.btn:active{ transform: translateY(1px); }

/* Dark button variant for light areas — use anywhere site-wide */
.btn--dark{
  --btn-bg: var(--rmvr-olive);
  --btn-fg: #fff;
  --btn-bd: rgba(0,0,0,.05);
  box-shadow: 0 3px 8px rgba(60,77,35,.2);
}
.btn--dark:hover,
.btn--dark:focus{
  background: #31401c; /* slightly deeper olive */
  box-shadow: 0 4px 10px rgba(60,77,35,.25);
  outline: none;
}

/* Optional: light/outline variants for future reuse */
.btn--light{
  --btn-bg: #fff;
  --btn-fg: var(--rmvr-olive);
  --btn-bd: rgba(0,0,0,.08);
}
.btn--outline{
  --btn-bg: transparent;
  --btn-fg: var(--rmvr-olive);
  --btn-bd: var(--rmvr-olive);
}

/* ==============================
   Button layout (Sale Event only)
   ============================== */
.sale-event-section .button-row{
  display: flex;
  flex-direction: column;  /* stack vertically in event listing only */
  gap: 0.65rem;
  margin-top: 1rem;
}
/* Sale Event buttons alignment */
.sale-event-section .btn {
  width: 80%;            /* narrower */
  text-align: center;    /* center text inside */
  margin: 0;             /* flush left by default */
}

/* Center buttons on mobile */
@media (max-width: 900px) {
  .sale-event-section .btn {
    margin: 0 auto;      /* center buttons */
  }
}


/* Responsive */
@media (max-width: 900px){
  .sale-event-grid{
    grid-template-columns: 1fr;
  }
  .sale-event-flyer{
    max-width: 620px;
    margin: 0 auto;
  }
  .sale-event-details{
    max-width: 700px;
    margin: 0 auto;
  }
}

/* Utility: screen-reader-only */
.sr-only{
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,1px,1px);
  white-space: nowrap; border: 0;
}

/* =========================================
   Special styling for "Bid Online" button
   ========================================= */
.sale-event-section .btn--bid {
  --btn-bg: #b44d29;    /* Rust color */
  --btn-fg: #fff;
  --btn-bd: rgba(0,0,0,.05);

  text-transform: uppercase;  /* ALL CAPS */
  font-weight: 500;           /* a touch stronger for emphasis */
}

.sale-event-section .btn--bid:hover,
.sale-event-section .btn--bid:focus {
  background: #953f22;        /* darker rust on hover */
  box-shadow: 0 4px 10px rgba(180,77,41,.25);
}



/* ==============================
   SOCIAL (home)
   ============================== */
.social-section {
  background-color: #5C4033; /* Darker Rust/Brown */
  color: #fff;
  padding: clamp(2rem, 5vw, 4rem) 1rem;
  text-align: center;
  position: relative;
}

.social-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.1); /* subtle dark overlay */
  z-index: 1;
}

.social-inner {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
}

.social-heading {
  font-family: var(--heading-font, 'DM Serif Display', serif);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  margin-bottom: 2rem;
  color: #fff;
}

.social-feed {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}

/* ==============================
   FOOTER
   ============================== */

:root {
  --rust: #3c4d23; /* olive-rust footer background */
  --rust-ink: #fff8ef; /* warm cream for text */
  --rust-ink-dim: rgba(255,248,239,.8);
}

.site-footer {
  background: var(--rust);
  color: var(--rust-ink);
  position: relative;
}

.site-footer .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(24px, 3vw, 48px) 20px;
}

.footer-inner { padding-top: 8px; }

.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: clamp(16px, 3vw, 40px);
  align-items: start;
}

/* Titles */
.footer-title {
  font-family: var(--header-font, "DM Serif Display", serif);
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  margin: 0 0 10px;
  letter-spacing: .02em;
}

.contact-name {
  font-weight: 700;
  margin: 0 0 6px;
  font-size: clamp(1rem, 1.4vw, 1.15rem);
}

/* Contact blocks */
.contact-block p {
  margin: 0 0 10px;
  line-height: 1.4;
  color: var(--rust-ink);
}

.contact-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.contact-list li {
  margin: 6px 0;
}

/* Links */
.site-footer a {
  color: var(--rust-ink);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .2s ease, opacity .2s ease;
}
.site-footer a:hover,
.site-footer a:focus {
  border-bottom-color: var(--rust-ink);
  opacity: .9;
}

/* Social icons */
.footer-social {
  display: flex;
  gap: 10px;
  margin: 10px 0 12px;
}
.footer-social .social-link {
  width: 40px; height: 40px;
  display: inline-flex;
  align-items: center; justify-content: center;
  background: rgba(255,255,255,.1);
  border-radius: 50%;
  transition: transform .15s ease, background .2s ease;
}
.footer-social .social-link svg { fill: var(--rust-ink); }
.footer-social .social-link:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.18);
}

.footer-note { color: var(--rust-ink-dim); margin: 6px 0 0; }

/* Bottom bar */
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.15);
  margin-top: clamp(16px, 3vw, 32px);
  background: linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,0));
}

.footer-bottom-inner {
  display: flex;
  flex-direction: column;   /* stack vertically */
  align-items: center;      /* center horizontally */
  justify-content: center;  /* center vertically */
  gap: 10px;
  padding: 14px 20px 22px;
  text-align: center;
}

.footer-bottom .copy {
  margin: 0;
  color: var(--rust-ink-dim);
  font-size: .95rem;
}

/* Footer menu */
.footer-links-nav { margin: 0; }
.footer-links {
  display: flex;
  justify-content: center;
  gap: 16px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-links a {
  color: var(--rust-ink-dim);
  font-weight: 600;
  text-transform: uppercase;
  font-size: .85rem;
  letter-spacing: .04em;
}
.footer-links a:hover { color: var(--rust-ink); border-bottom-color: transparent; }

/* Responsive */
@media (max-width: 980px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .footer-grid { grid-template-columns: 1fr; }
}

/* Scroll-to-top button */
.scroll-top {
  position: fixed;
  right: 16px;
  bottom: 16px;
  background: rgba(255,255,255,.9);
  border: none;
  border-radius: 999px;
  padding: 10px;
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
  cursor: pointer;
}
.scroll-top svg { fill: #333; }
.scroll-top:hover { background: #fff; }

/* TEMP: force floater animation even when prefers-reduced-motion is reduce */
@media (prefers-reduced-motion: reduce){
  .sale-event-wrap .sale-event-floaters span{
    animation: rmvr-float 12s ease-in-out infinite !important;
  }
}

/* ==============================
   CONTACT HERO VIDEO (fixed)
   ============================== */
.contact-hero{
  position: relative;
  height: 40vh;                /* adjust height as needed */
  overflow: hidden;            /* contain video + overlay */
  z-index: 0;                  /* timeline will sit above this */
}

/* Video & optional fallback image share the same rules */
#contact-hero-video,
#contact-hero-fallback{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: none;             /* no centering transform needed */
  z-index: 0;
}

/* Fade lives only at the BOTTOM of the hero and never blocks clicks */
.contact-hero-overlay{
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 200px;               /* fade height; tweak to taste */
  background: linear-gradient(to bottom, rgba(255,253,240,0) 0%, rgba(255,253,240,1) 100%);
  pointer-events: none;
  z-index: 1;                  /* below the timeline section */
}

.contact-hero-content{
  position: relative;
  z-index: 2;                  /* above video + fade */
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  text-align: center;
}

.contact-hero-content h1{
  color: #fff; /* white text over video */
  font-size: clamp(2rem, 6vw, 4rem);
  text-shadow: 0 2px 8px rgba(0,0,0,0.6);
}

/* ==============================
   GENERATIONS TIMELINE (fixed)
   ============================== */
:root{
  --rm-cream: #fffdf0;
  --rm-olive: #3c4d23;
  --rm-purple: #5a3d9c;
  --rm-ink:   #1f1f1f;

  /* One place to control slide size */
  --gen-slide-h: clamp(180px, 22vw, 260px);
  --gen-slide-w: clamp(220px, 28vw, 360px);
}

/* Section shell: lifted above hero + breathing room */
.generations-timeline{
  position: relative;
  z-index: 10;
  padding: clamp(18px, 3vw, 28px) 0 32px;
  background: transparent;          /* was: var(--rm-cream) */
}

/* Title */
.gen-title{
  text-align:center;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--rm-ink);
  margin-bottom: clamp(10px, 2vw, 16px);
  font-size: clamp(18px, 2.2vw, 24px);
}

/* Timeline bar + labels */
.gen-bar{
  position: relative;
  max-width: 1100px;
  margin: 0 auto 28px;                         /* extra gap above cards */
  padding: 18px 0 28px;
}
.gen-bar-line{
  height: 6px;
position: relative; 
  background: var(--rm-purple);
  border-radius: 999px;
}
.gen-marker{
  position: absolute;
  left: 0;
  top: -6px;
  transform: translateX(-50%);
  width: 22px; height: 22px;
  background: #000;
  border-radius: 50%;
  border: 3px solid var(--rm-cream);
  box-shadow: 0 0 0 3px var(--rm-purple);
  transition: left .45s cubic-bezier(.22,.61,.36,1);
}
.gen-labels{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-top: 10px;
  font-weight: 700;
  color: var(--rm-ink);
  text-transform: uppercase;
  font-size: clamp(12px, 1.6vw, 14px);
  letter-spacing: .04em;
}
.gen-labels span{ text-align: center; opacity: .85; }

/* Swiper container – height + top padding so borders aren’t tight */
/* Slider container: let the card borders breathe */
.generations-swiper{
  position: relative;
  width: 100%;
  /* show content that sticks a bit above the box */
  overflow: visible;                /* was: hidden */
  min-height: var(--gen-slide-h);
  padding: 24px 10px 2px;           /* ↑ increase top pad (was ~14px) */
}

/* (optional) if you prefer to keep overflow hidden, bump the top padding more,
   e.g. 32–36px, so the 5px border isn’t clipped. */

.generations-swiper .swiper-wrapper{
  display: flex;                                 /* safety */
  align-items: stretch;                          /* fill row height */
}
.generations-swiper .swiper-slide{
  flex: 0 0 auto;
  width: var(--gen-slide-w) !important;          /* lock slide width */
  height: var(--gen-slide-h) !important;         /* lock slide height */
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Photo card (letterboxed, centered) */
.gen-card{
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 5px solid var(--rm-olive);
  border-radius: 10px;
  box-shadow: 0 10px 18px rgba(0,0,0,.12);
  background: #d9d2c1;                           /* shows if image doesn’t fill */
  display: flex;
  align-items: center;
  justify-content: center;
}
.gen-card img{
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;                            /* show full image */
  transform: scale(1);
  transition: transform .4s ease;
  z-index: 1;
}

/* Cream overlay (subtle) */
.gen-card::before{
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(255,253,240,.45), rgba(255,253,240,.55));
  mix-blend-mode: multiply;
  z-index: 2;
  transition: opacity .3s ease;
}

/* Hover effects */
.gen-card:hover::before{ opacity: 0; }
.gen-card:hover img{ transform: scale(1.03); }

/* Caption */
.gen-card figcaption{
  position: absolute;
  left: 0; right: 0; bottom: 0;
  transform: translateY(100%);
  background: rgba(0,0,0,.65);
  color: #fff;
  font-size: 14px;
  line-height: 1.35;
  padding: 8px 10px;
  text-align: center;
  z-index: 3;
  transition: transform .25s ease;
}
.gen-card:hover figcaption{ transform: translateY(0%); }

/* Scrollbar */
.generations-swiper .swiper-scrollbar{
  height: 8px;
  background: rgba(90,61,156,.22);
  border-radius: 999px;
  margin: 14px auto 0;
  max-width: 1100px;
}
.generations-swiper .swiper-scrollbar-drag{
  background: var(--rm-purple);
  border-radius: 999px;
}

/* OVERRIDE SWIPER'S overflow:hidden (which loads after your CSS) */
.swiper.generations-swiper{
  overflow: visible !important;   /* <-- key fix */
  padding-top: 24px;              /* breathing room above the cards */
}

/* WordPress adds margin to all figures; remove it on our cards */
figure.gen-card{
  margin: 0;                      /* prevents “mystery gap”/cropping look */
}


/* Small screens tweaks */
@media (max-width: 640px){
  .gen-labels{ font-size: 11px; }
  .gen-marker{ width: 18px; height: 18px; top: -5px; }
}

/* Put the scrollbar *below* the slides instead of overlaying them */
.generations-swiper .swiper-scrollbar{
  position: static !important;   /* override Swiper’s absolute */
  width: 100%;
  max-width: 1100px;
  height: 8px;
  margin: 16px auto 0;           /* space between cards and bar */
  border-radius: 999px;
}

/* Optional: a touch more breathing room below the bar */
.generations-swiper{
  padding-bottom: 10px;          /* adjust to taste */
}

/* Keep the drag styling */
.generations-swiper .swiper-scrollbar-drag{
  background: var(--rm-purple);
  border-radius: 999px;
}

/* --- Timeline visual focus -------------------------------------------- */

/* Center focus: only the centered (active) slide is 100% */
.generations-timeline{
  --dim-amount: .35;        /* tweak dimming here */
}

/* Dim everything by default */
.gen-slide .gen-card{
  opacity: var(--dim-amount);
  filter: grayscale(.15) saturate(.9);
  transition: opacity .25s ease, filter .25s ease, transform .3s ease;
}
.generations-timeline[data-active-gen="1"] .gen-slide[data-generation="1"] .gen-card,
.generations-timeline[data-active-gen="2"] .gen-slide[data-generation="2"] .gen-card,
.generations-timeline[data-active-gen="3"] .gen-slide[data-generation="3"] .gen-card,
.generations-timeline[data-active-gen="4"] .gen-slide[data-generation="4"] .gen-card{
  opacity: 1;
  filter: none;
}
/* The centered slide */
.generations-swiper .swiper-slide-active .gen-card{ /* intentionally empty */ }

/* keep marker track positioning + extra room for scrollbar */
.gen-bar-line{ position: relative; }
.generations-swiper{ padding-bottom: 22px; }

/* keep your existing hover zoom; it will still work */
:root{
  --content-max: 1100px;
  --content-pad: clamp(16px, 2vw, 24px);
  --card-bg: #fff;
  --card-bd: #e5e5e5;
  --card-radius: 14px;
  --card-pad: clamp(16px, 2vw, 22px);
  --gap: clamp(18px, 3vw, 32px);
  --sticky-top: 96px; /* adjust if your header height differs */
}

/* container from earlier */
.contact-body .rmvr-container{
  max-width: var(--content-max);
  margin-inline: auto;
  padding-inline: var(--content-pad);
}

/* two-column grid */
.contact-grid{
  display: grid;
  grid-template-columns: 2fr 1fr; /* 2/3 + 1/3 */
  gap: var(--gap);
  align-items: start;
}

/* main/content tidy */
.contact-main > *:first-child{ margin-top: 0; }

/* sidebar */
.contact-aside{
  position: sticky;       /* nice UX on desktop; remove if you don’t want it */
  top: var(--sticky-top);
}
.contact-card{
  background: var(--card-bg);
  border: 1px solid var(--card-bd);
  border-radius: var(--card-radius);
  padding: var(--card-pad);
  box-shadow: 0 4px 16px rgba(0,0,0,.05);
  margin-bottom: var(--gap);
}
.contact-card-title{ margin: 0 0 .25em; font-size: 1.1rem; }
.contact-address{ font-style: normal; margin: .25em 0 .75em; line-height: 1.5; }
.contact-phones, .contact-email{ margin: 0 0 .75em; }

.contact-form .gform_wrapper, 
.contact-form .gform_wrapper form{ width: 100%; }

/* responsive stack */
@media (max-width: 900px){
  .contact-grid{ grid-template-columns: 1fr; }
  .contact-aside{ position: static; }
}

/* utility for SR-only title */
.screen-reader-text{
  position: absolute !important; height: 1px; width: 1px; overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

/* --- overlap the hero --- */
.gens-carousel{
  /* was margin:30px auto 10px; */
  margin: -200px auto 4px;         /* pull upward into the header */
  position: relative;
  z-index: 5;                      /* above the hero overlay */
  pointer-events: auto;
}

/* give the stack a bit more bottom room for the caption */
.gens-swiper{
    padding-top: 30px;
    padding-right: 70px;
    padding-left: 70px;
    padding-bottom: 25px;
}

/* smaller/closer caption */
.gens-caption{
  margin-top: 0px;                 /* tighter gap under cards */
  font-size: .8rem;                 /* was 1.25rem */
  line-height: 1.2;
  color: #6c5a3b;
  opacity: .9;
}

/* optional: make the center card feel a touch higher (nice when overlapping) */
.gens-swiper .swiper-slide-active{
  transform: translateY(-2px);     /* subtle lift */
  border-width: 14px;
  box-shadow: 0 18px 38px rgba(0,0,0,.3);
}

/* responsive: reduce overlap a bit on small screens */
@media (max-width: 900px){
  .gens-carousel{ margin: -60px auto 4px; }
}
@media (max-width: 700px){
  .gens-carousel{ margin: -40px auto 2px; }
  .gens-swiper{ padding: 20px 48px 30px; }
  .gens-caption{ font-size: .95rem; }
}

/* ---- Brand colors (update hexes if yours differ) ---- */
:root{
  --rmvr-olive: #6f7b3a;  /* olive */
  --rmvr-brown: #6c5a3b;  /* warm brown */
  --rmvr-frame: var(--rmvr-olive); /* default frame color */
}

/* ---- Colored frames with a white mat ---- */
.gens-swiper .swiper-slide{
  /* size remains the same; we create a mat with padding */
  width: 280px; height: 210px;
  background: #fff;              /* mat */
  padding: 8px;                  /* mat thickness */
  border: 6px solid var(--rmvr-frame);  /* colored frame */
  box-shadow: 0 12px 24px rgba(0,0,0,.25);
  transform-origin: center bottom;
  display: flex; align-items: center; justify-content: center;
}

.gens-swiper .swiper-slide img{
  width: 100%; height: 100%; object-fit: cover; border-radius: 2px;
}

/* stronger frame & lift on the hero card */
.gens-swiper .swiper-slide-active{
  border-width: 8px;             /* thicker when centered */
  transform: translateY(-2px);
  box-shadow: 0 18px 38px rgba(0,0,0,.30);
}

/* ---- Options ---- */

/* Use brown instead of olive site-wide:
   body { --rmvr-frame: var(--rmvr-brown); } */

/* OR alternate olive/brown card to card: */
.gens-swiper .swiper-slide:nth-child(odd){ border-color: var(--rmvr-olive); }
.gens-swiper .swiper-slide:nth-child(even){ border-color: var(--rmvr-brown); }

/* Tweak for small screens */
@media (max-width:700px){
  .gens-swiper .swiper-slide{ padding: 6px; border-width: 5px; }
  .gens-swiper .swiper-slide-active{ border-width: 7px; }
}


/* Container stays boxed as you already had */
.sales-archive {
  --gap: 20px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.sales-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap);
}
@media (max-width: 1024px) { .sales-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .sales-grid { grid-template-columns: 1fr; } }

/* Smooth, elegant motion on position changes */
.sale-card {
  background: #fff;
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;

  /* Motion */
  transition:
    transform .42s cubic-bezier(.22,.61,.36,1), /* “standard” springy ease */
    opacity   .28s ease;
  will-change: transform, opacity;
  transform-origin: 50% 0;
  backface-visibility: hidden;      /* helps in Safari */
  contain: paint;                    /* avoids repaint bleed */
}

/* Fade out first (keeps space), then we collapse via JS */
.sale-card.is-hiding { opacity: 0; }

/* Collapsed state (no space) */
.sale-card.is-hidden { display: none; }

:root {
  view-transition-name: none; /* page-wide transitions only when we ask */
}
@supports (view-transition-name: none) {
  /* Tune durations to match card transitions */
  html::view-transition-old(root),
  html::view-transition-new(root) {
    animation-duration: .42s;
    animation-timing-function: cubic-bezier(.22,.61,.36,1);
  }
}
@media (prefers-reduced-motion: reduce){
  .sale-card { transition: none; }
  html::view-transition-old(root),
  html::view-transition-new(root) { animation: none !important; }
}

.sale-card__thumb { display:block; aspect-ratio:4/3; background:#fafafa; }
.sale-thumb { width:100%; height:100%; object-fit:cover; display:block; }
.sale-thumb.placeholder { width:100%; height:100%; background:linear-gradient(135deg,#f5f5f5,#efefef); }

.sale-card__body { padding: 14px 16px 16px; }
.sale-card__title { margin: 0 0 8px; font-size: 1.06rem; line-height: 1.25; }
.sale-card__meta { list-style:none; padding:0; margin:0 0 10px; color:#555; font-size:.95rem; }
.sale-card__meta li { margin-bottom:4px; }
.sale-card__preview { margin:0 0 12px; color:#333; }

.sale-card__actions { margin-top:auto; display:flex; flex-wrap:wrap; gap:8px; }

/* Button/link style per your earlier request */
.sale-button, .sale-link {
  display:inline-block; padding:6px 9px; border-radius:8px; text-decoration:none;
  font-weight:400; font-size:.8rem; text-transform:uppercase; border:1px solid #ddd; line-height:1.2;
}
.sale-button { background:#222; color:#fff; border-color:#222; }
.sale-button:hover { opacity:.9; }
.sale-link { color:#222; background:#f7f7f7; }
.sale-link:hover { background:#eee; }

.archive-header { margin-bottom:16px; }
.archive-filter { margin:10px 0 16px; display:flex; align-items:center; gap:8px; }
.archive-filter label { font-weight:600; }
.archive-filter select { padding:6px 8px; border:1px solid #ddd; border-radius:8px; background:#fff; }


/* ===== Centered dividers between nav links (interior + home) ===== */
.interior-primary-nav .primary-menu,
.hero-menu,
.sticky-menu-nav {
  display: flex;
  gap: 0 !important;              /* use padding for spacing so divider centers */
}

/* links get equal left/right padding = divider will be centered */
.interior-primary-nav .primary-menu > li > a,
.hero-menu > li > a,
.sticky-menu-nav > li > a {
  display: block;
  padding: 0 1.1rem;              /* tweak this to widen/narrow spacing */
}

/* draw the divider on every item after the first */
.interior-primary-nav .primary-menu > li + li,
.hero-menu > li + li,
.sticky-menu-nav > li + li {
  position: relative;
}

.interior-primary-nav .primary-menu > li + li::before,
.hero-menu > li + li::before,
.sticky-menu-nav > li + li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  height: 1em;                    /* roughly the cap height of the text */
  transform: translateY(-50%);
  border-left: 2px solid #fff6e0; /* your cream */
  opacity: .95;
}
/* Properly spaced dividers between nav items */
.interior-primary-nav .primary-menu {
  display: flex;
  gap: 0; /* we’ll handle spacing with padding */
}

.interior-primary-nav .primary-menu > li {
  position: relative;
  padding: 0 1.2rem; /* space around each link */
}

.interior-primary-nav .primary-menu > li + li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 1em;              /* matches text height */
  border-left: 2px solid #fff6e0; /* cream divider */
}

/* --- 0) Remove ANY link-based separators (the doubles you're seeing) --- */
.hero-menu > li > a::before,
.hero-menu > li > a::after,
.sticky-menu-nav > li > a::before,
.sticky-menu-nav > li > a::after,
.interior-primary-nav .primary-menu > li > a::before,
.interior-primary-nav .primary-menu > li > a::after {
  content: none !important;
  border: 0 !important;
}

/* If any theme CSS drew a border on the <a> itself, kill it */
.hero-menu > li > a,
.sticky-menu-nav > li > a,
.interior-primary-nav .primary-menu > li > a {
  border: 0 !important;
}

/* --- 1) Use padding for spacing so the divider sits exactly between items --- */
.hero-menu,
.sticky-menu-nav,
.interior-primary-nav .primary-menu {
  display: flex;
  gap: 0 !important;                 /* spacing comes from padding */
}

.hero-menu > li,
.sticky-menu-nav > li,
.interior-primary-nav .primary-menu > li {
  position: relative;
  padding: 0 1.2rem;                 /* adjust spacing here */
}

/* 0) Nuke any pseudo-element separators anywhere in the 3 menus */
.interior-primary-nav .primary-menu li::before,
.interior-primary-nav .primary-menu li::after,
.interior-primary-nav .primary-menu a::before,
.interior-primary-nav .primary-menu a::after,
.hero-menu li::before, .hero-menu li::after,
.hero-menu a::before, .hero-menu a::after,
.sticky-menu-nav li::before, .sticky-menu-nav li::after,
.sticky-menu-nav a::before, .sticky-menu-nav a::after {
  content: none !important;
  border: 0 !important;
  box-shadow: none !important;
  background: none !important;
}

/* 1) Layout: spacing comes from padding so the divider is centered */
.interior-primary-nav .primary-menu,
.hero-menu,
.sticky-menu-nav {
  display: flex;
  gap: 0 !important; /* spacing via padding */
}
.interior-primary-nav .primary-menu > li,
.hero-menu > li,
.sticky-menu-nav > li {
  padding: 0 1.1rem;   /* adjust space between links here */
}

/* 2) Draw ONE divider: a single left border on items after the first */
.interior-primary-nav .primary-menu > li + li,
.hero-menu > li + li,
.sticky-menu-nav > li + li {
  border-left: 2px solid #fff6e0; /* cream */
}

/* 3) Make sure links don’t add their own borders */
.interior-primary-nav .primary-menu > li > a,
.hero-menu > li > a,
.sticky-menu-nav > li > a {
  display: block;
  border: 0 !important;
}
/* Content area links (not nav) */
.entry-content a,
.contact-body a,
.rmvr-container a {
  color: #5C4B3B; /* Rust Mountain brown */
  text-decoration: none;
}

.entry-content a:hover,
.contact-body a:hover,
.rmvr-container a:hover {
  color: #9A9F6F; /* Rust Mountain green */
  text-decoration: underline;
}
/* ===============================
   Rust Mountain – Gravity Forms
   Scope: content area only
   =============================== */

/* 1) Set palette via GF Theme Framework CSS variables (GF 2.7+) */
.entry-content .gform_wrapper,
.rmvr-container .gform_wrapper {
  /* Brand palette */
  --rmvr-brown:  #5C4B3B;
  --rmvr-green:  #9A9F6F;
  --rmvr-cream:  #F5F5DC;
  --rmvr-ink:    #333333;

  /* Map to GF variables */
  --gf-color-primary:        var(--rmvr-brown);
  --gf-color-primary-rgb:    92,75,59;
  --gf-color-secondary:      var(--rmvr-green);
  --gf-color-cta:            var(--rmvr-brown);
  --gf-field-label-color:    var(--rmvr-brown);
  --gf-color-text:           var(--rmvr-ink);
  --gf-color-border:         #d8d8d8;
  --gf-color-focus:          var(--rmvr-green);
  --gf-color-error:          #b3261e;   /* keep clear/accessible */
  --gf-color-success:        #2e7d32;

  /* spacing/radius (optional) */
  --gf-field-radius:         10px;
  --gf-button-radius:        999px;
}

/* 2) Labels, descriptions */
.entry-content .gform_wrapper .gfield_label { 
  color: var(--rmvr-brown);
  font-weight: 600;
}
.entry-content .gform_wrapper .gfield_description,
.entry-content .gform_wrapper .instruction {
  color: var(--rmvr-ink);
  opacity: .9;
}

/* 3) Inputs, textareas, selects */
.entry-content .gform_wrapper input[type="text"],
.entry-content .gform_wrapper input[type="email"],
.entry-content .gform_wrapper input[type="tel"],
.entry-content .gform_wrapper input[type="url"],
.entry-content .gform_wrapper input[type="number"],
.entry-content .gform_wrapper input[type="search"],
.entry-content .gform_wrapper select,
.entry-content .gform_wrapper textarea {
  border: 1px solid var(--gf-color-border);
  border-radius: var(--gf-field-radius);
  background: #fff;
  color: var(--rmvr-ink);
  transition: border-color .2s ease, box-shadow .2s ease;
}

.entry-content .gform_wrapper input:focus,
.entry-content .gform_wrapper select:focus,
.entry-content .gform_wrapper textarea:focus {
  outline: none;
  border-color: var(--rmvr-green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--rmvr-green) 25%, transparent);
}

.entry-content .gform_wrapper ::placeholder {
  color: #777;
}

/* 4) Checkboxes & radios */
.entry-content .gform_wrapper input[type="checkbox"],
.entry-content .gform_wrapper input[type="radio"] {
  accent-color: var(--rmvr-brown); /* modern browsers */
}
.entry-content .gform_wrapper .gchoice label {
  color: var(--rmvr-ink);
}

/* 5) Buttons */
.entry-content .gform_wrapper .gform_button,
.entry-content .gform_wrapper .button,
.entry-content .gform_wrapper .gform_footer button {
  background: var(--rmvr-brown);
  color: #fff;
  border: 0;
  border-radius: var(--gf-button-radius);
  padding: .7rem 1.25rem;
  font-weight: 600;
  transition: transform .06s ease, background-color .2s ease;
}
.entry-content .gform_wrapper .gform_button:hover,
.entry-content .gform_wrapper .button:hover {
  background: var(--rmvr-green);
}
.entry-content .gform_wrapper .gform_button:active {
  transform: translateY(1px);
}

/* 6) Validation states */
.entry-content .gform_wrapper .gfield_validation_message,
.entry-content .gform_wrapper .validation_message {
  background: color-mix(in srgb, var(--gf-color-error) 10%, #fff);
  border-left: 4px solid var(--gf-color-error);
  color: #7a1111;
  border-radius: 8px;
  padding: .5rem .75rem;
}

.entry-content .gform_wrapper .gform_validation_errors {
  border-color: var(--gf-color-error);
}

.entry-content .gform_wrapper .gfield--error input,
.entry-content .gform_wrapper .gfield--error select,
.entry-content .gform_wrapper .gfield--error textarea {
  border-color: var(--gf-color-error);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--gf-color-error) 18%, transparent);
}

/* 7) Optional: make “Select All” helper links match content link styles */
.entry-content .gform_wrapper a {
  color: var(--rmvr-brown);
  text-decoration: none;
}
.entry-content .gform_wrapper a:hover {
  color: var(--rmvr-green);
  text-decoration: underline;
}
/* Rust Mountain palette (adjust if needed) */
:root {
  --rmvr-brown: #5C4B3B;
  --rmvr-green: #9A9F6F;
  --rmvr-ink:   #333333;
}

/* Only in content area (keeps nav untouched) */
.entry-content .gform_wrapper .gfield_checkbox .gchoice_select_all .gfield_choice_all_toggle,
.entry-content .gform_wrapper .gform-theme-button.gfield_choice_all_toggle {
  background: var(--rmvr-brown) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px;
  padding: .55rem 1rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
}

.entry-content .gform_wrapper .gfield_checkbox .gchoice_select_all .gfield_choice_all_toggle:hover,
.entry-content .gform_wrapper .gform-theme-button.gfield_choice_all_toggle:hover {
  background: var(--rmvr-green) !important;
  color: #000 !important;
}

/* Focus style for accessibility */
.entry-content .gform_wrapper .gfield_checkbox .gchoice_select_all .gfield_choice_all_toggle:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--rmvr-green) 35%, transparent);
}

/* If GF adds a "link-style" variant, neutralize it */
.entry-content .gform_wrapper .gfield_choice_all_toggle.gform-theme-button--link {
  background: var(--rmvr-brown) !important;
  color: #fff !important;
  text-decoration: none !important;
}

