/* Tropicana Property Referral Programme — RNR redesign */
/* Shared: tokens, nav, footer, buttons, thread, reveal */

:root{
    --palm:#0E2B26;
    --emerald:#14453C;
    --emerald-soft:#1B5A4D;
    --gold:#C9A45C;
    --gold-pale:#E8D5A8;
    --ivory:#F7F4EC;
    --ink:#1C2B27;
    --display:'Marcellus',serif;
    --body:'Jost',sans-serif;
  }
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--ivory);line-height:1.6;font-weight:300}
.eyebrow{
    font-size:12px;letter-spacing:.32em;text-transform:uppercase;
    color:var(--gold);font-weight:500;display:inline-flex;align-items:center;gap:14px;
  }
.eyebrow::before{content:none;width:34px;height:1px;background:var(--gold)}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.15}
.btn:hover{background:var(--gold);color:var(--palm)}
.btn.solid{background:var(--gold);color:var(--palm)}
.btn.solid:hover{background:var(--gold-pale);border-color:var(--gold-pale)}
.btn:focus-visible{outline:2px solid var(--gold-pale);outline-offset:3px}
/* ---------- nav ---------- */
  nav{
    position:fixed;top:0;left:0;right:0;z-index:100;
    background:rgba(14,43,38,.92);backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(201,164,92,.25);
  }
.nav-inner{max-width:1180px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between}
.nav-inner img{height:40px;display:block}
.nav-links{display:flex;align-items:center;gap:36px;list-style:none;margin:0;padding:0}
.nav-links a{
    color:var(--ivory);text-decoration:none;font-size:13px;letter-spacing:.18em;
    text-transform:uppercase;font-weight:400;transition:color .3s;
  }
.nav-links a:hover{color:var(--gold-pale)}
.nav-links a.nav-cta{border:1px solid var(--gold);color:var(--gold);padding:10px 22px}
.nav-links a.nav-cta:hover{background:var(--gold);color:var(--palm)}
.burger{display:none;background:none;border:none;cursor:pointer;padding:6px}
.thread::before{
    content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;
    background:linear-gradient(to bottom, transparent, var(--gold) 12%, var(--gold) 88%, transparent);
    opacity:.45;
  }
.node{
    position:relative;z-index:2;width:11px;height:11px;background:var(--ivory);
    border:1px solid var(--gold);transform:rotate(45deg);margin:0 auto;
  }
.step:hover{transform:translateY(-6px);box-shadow:0 24px 48px rgba(14,43,38,.12)}
.foot-inner{max-width:1180px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
footer a{color:var(--gold-pale);text-decoration:none}
footer a:hover{text-decoration:underline}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none}
    html{scroll-behavior:auto}
  }


/* ---------- Bootstrap 3 compatibility ---------- */
h1,h2,h3{margin:0}
label{font-weight:400;margin-bottom:0}
.is-hidden{display:none!important}
@media (min-width:992px){
  .row-flex{display:flex;flex-wrap:wrap}
  .row-flex>[class*="col-"]{display:flex;flex-direction:column;float:none}
  .row-flex .step,.row-flex .card,.row-flex .cat-card{flex:1;width:100%}
}


/* ---- Fix: long button labels overflowing on small screens ---- */
.cat-card .btn{
  max-width:100%;
  box-sizing:border-box;
  white-space:normal;        /* let long labels wrap instead of overflowing */
  text-align:center;
}

@media (max-width:767px){
  .cat-card .btn{
    display:block;
    width:100%;
    padding-left:14px;
    padding-right:14px;
    font-size:13px;
    letter-spacing:.10em;    /* tighter than desktop so it fits */
    line-height:1.4;
  }
}
