/* =========================================
   No Worry Retirement — Luxury UI (stable)
   ========================================= */
:root{
  --nwr-white:#ffffff;
  --nwr-ink:#0b0b0b;
  --nwr-soft:#f6f6f6;
  --nwr-border:#e4e4e4;
  --nwr-gold:#d4af37;
}

html,body{
  background:var(--nwr-white);
  color:var(--nwr-ink);
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:18px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden; width:100%;
}
img,svg,video,canvas{ max-width:100%; height:auto; }

/* Focus */
:focus-visible{ outline:2px solid var(--nwr-gold); outline-offset:2px; }

/* Typography */
.h1-hero{
  font-family:"League Spartan",Inter,Arial,sans-serif;
  font-size:clamp(40px,5vw,72px);
  line-height:.95; letter-spacing:.06em; text-transform:uppercase; margin:0;
}
.kicker{ letter-spacing:.18em; text-transform:uppercase; opacity:.75; font-weight:700; }

/* Links & buttons */
a{ color:var(--nwr-ink); text-decoration:none; }
a:hover{ text-decoration:underline; text-decoration-color:var(--nwr-gold); }

.btn-nwr{
  background:var(--nwr-gold); color:#000; border:1px solid var(--nwr-gold);
  border-radius:0; padding:.9rem 1.6rem; text-transform:uppercase;
  letter-spacing:.12em; font-weight:800;
}
.btn-nwr:hover{ filter:saturate(115%); text-decoration:none; }

.btn-outline-nwr{
  background:transparent; color:var(--nwr-ink); border:1px solid var(--nwr-ink);
  border-radius:0; padding:.85rem 1.4rem; text-transform:uppercase;
  letter-spacing:.12em; font-weight:800;
}
.btn-outline-nwr:hover{ background:var(--nwr-gold); border-color:var(--nwr-gold); color:#000; text-decoration:none; }

/* Sections & imagery */
.section{ padding-block:clamp(64px,8vw,128px); }
.section-band{ background:var(--nwr-soft); }
.figure-muted img{ filter:grayscale(100%) contrast(1.08); }
.hr-thin{ border-top:1px solid var(--nwr-border); margin:3rem 0; }
.site-brand img{ max-height:52px; width:auto; }

/* =========================
   DARK LUXURY HEADER (sticky)
   ========================= */
.nwr-nav{
  position:sticky; top:0; z-index:1030;
  background:#000 !important; border-bottom:1px solid rgba(255,255,255,.09);
  min-height:64px; transition:all .25s ease;
}
body.admin-bar .nwr-nav{ top:32px; }
@media (max-width:782px){ body.admin-bar .nwr-nav{ top:46px; } }

.nwr-nav .site-brand img{ max-height:80px; transition:max-height .25s ease; }
body.nav-scrolled .nwr-nav{ min-height:56px; }
body.nav-scrolled .nwr-nav .site-brand img{ max-height:54px; }

/* Primary menu links */
.nwr-nav .navbar-nav > li > a,
.nwr-nav .navbar-nav .menu-item > a{
  color:#fff !important; text-transform:uppercase; letter-spacing:.12em;
  font-weight:700; padding:.9rem 0 !important; position:relative; display:inline-block;
}
.nwr-nav .navbar-nav > li > a:hover,
.nwr-nav .navbar-nav .menu-item > a:hover{ color:#fff !important; text-decoration:none; }
.nwr-nav .navbar-nav > li > a::after,
.nwr-nav .navbar-nav .menu-item > a::after{
  content:""; position:absolute; left:0; bottom:.35rem; width:0; height:2px;
  background:var(--nwr-gold); transition:width .25s ease;
}
.nwr-nav .navbar-nav > li > a:hover::after,
.nwr-nav .navbar-nav .menu-item > a:hover::after{ width:100%; }

/* Toggler */
.navbar-toggler{ border:1px solid #fff; border-radius:0; padding:.35rem .5rem; }
.navbar-toggler:focus{ box-shadow:none; }
.navbar-toggler-icon{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='white' stroke-linecap='round' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Dropdowns */
.nwr-nav .menu-item-has-children{ position:relative; }
.nwr-nav .menu-item-has-children > a{ padding-right:1.6rem !important; }
.nwr-nav .menu-item-has-children > a::before{
  content:""; position:absolute; right:0; top:50%; transform:translateY(-50%);
  border-left:5px solid transparent; border-right:5px solid transparent;
  border-top:6px solid #fff; opacity:.85; transition:transform .2s;
}
/* Submenu panel */
.nwr-nav .sub-menu{
  list-style:none; margin:0; padding:.5rem 0;
  background:#000; border:1px solid rgba(255,255,255,.15);
  position:absolute; left:0; top:100%;
  min-width:240px; display:none; z-index:1000; max-width:90vw;
}
.nwr-nav .sub-menu .menu-item > a{
  color:#fff !important; display:block; padding:.55rem 1rem !important;
  text-transform:uppercase; letter-spacing:.08em; font-weight:600;
}
.nwr-nav .sub-menu .menu-item > a:hover{ background:var(--nwr-gold); color:#000 !important; text-decoration:none; }

/* Desktop hover */
@media (min-width:992px){
  .nwr-nav .menu-item-has-children:hover > .sub-menu{ display:block; }
}

/* Mobile panel + submenu */
@media (max-width:991.98px){
  .nwr-nav .navbar-collapse{ background:#000; border-top:1px solid rgba(255,255,255,.12);
    padding:.5rem 0 1rem; display:none; }
  .nwr-nav .navbar-collapse.show{ display:block; }
  .nwr-nav .navbar-nav > li > a{ padding:.85rem 0 !important; }
  .nwr-nav .sub-menu{ position:static; border:none; background:#0b0b0b; margin:.25rem 0 .75rem; padding:.25rem 0; display:none; }
  .nwr-nav .menu-item-has-children.open > .sub-menu{ display:block; }
  .nwr-nav .menu-item-has-children.open > a::before{ transform:translateY(-50%) rotate(180deg); }
}

/* Content rhythm */
.container{ max-width:1140px; }
.lead{ color:#242424; }

/* FAQ styling */
.nwr-faq-q{ display:block; width:100%; text-align:left; padding:1rem 0; border:0; background:transparent; font-weight:700; letter-spacing:.02em; }
.nwr-faq-item{ border-top:1px solid var(--nwr-border); }
.nwr-faq-item:last-child{ border-bottom:1px solid var(--nwr-border); }
.nwr-faq-a{ padding:0 0 1rem 0; }

/* Reveal utility */
.reveal{ opacity:0; transform:translateY(12px); transition:opacity .6s, transform .6s; }
.reveal.is-in{ opacity:1; transform:none; }


/* ===== Header Luxe Enhancements ===== */
html, body { margin:0 !important; padding:0; } /* kill any stray gap */

.nwr-header { position:sticky; top:0; z-index:1030; background:#000; }

/* Admin bar offset (fixes white gap when logged in) */
body.admin-bar .nwr-header { top:32px; }
@media (max-width:782px){ body.admin-bar .nwr-header { top:46px; } }

/* Topline */
.nwr-topline{
  background:#0a0a0a; border-bottom:1px solid rgba(255,255,255,.08);
  font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:#d9d9d9;
}
.nwr-topline .container{ padding-top:.35rem; padding-bottom:.35rem; }
.nwr-topline-text{ opacity:.8; }
.nwr-topline-link{ color:#d9d9d9; text-decoration:none; }
.nwr-topline-link:hover{ color:#fff; }

/* Main nav area */
.nwr-nav{
  background:#000;
  transition:box-shadow .25s ease, transform .25s ease;
}
.nwr-nav-rule{
  height:1px; background:linear-gradient(90deg, rgba(255,255,255,.08), rgba(212,175,55,.25), rgba(255,255,255,.08));
}

/* Shrink + shadow on scroll */
body.nav-scrolled .nwr-nav{ box-shadow:0 8px 24px rgba(0,0,0,.16); }

/* Wordmark fallback if no logo */
.nwr-wordmark{
  display:inline-flex; flex-direction:column; line-height:1; color:#fff;
  font-family:"Cormorant Garamond", serif;
}
.nwr-wordmark .wm-line1{ font-size:1.25rem; letter-spacing:.10em; }
.nwr-wordmark .wm-line2{ font-size:1.15rem; letter-spacing:.08em; }

/* Menu links */
.nwr-nav .navbar-nav > li > a,
.nwr-nav .navbar-nav .menu-item > a{
  color:#fff !important; text-transform:uppercase;
  letter-spacing:.10em; font-weight:700; padding:1rem 0 !important;
  position:relative; display:inline-block;
  opacity:.92;
}
.nwr-nav .navbar-nav > li > a:hover{ opacity:1; text-decoration:none; }
.nwr-nav .navbar-nav > li > a::after{
  content:""; position:absolute; left:0; bottom:.4rem;
  width:0; height:1px; background:var(--nwr-gold); transition:width .25s ease;
}
.nwr-nav .navbar-nav > li > a:hover::after{ width:100%; }
/* Active state */
.nwr-nav .current-menu-item > a::after,
.nwr-nav .current_page_item > a::after{ width:100%; }

/* CTA refinement */
.nwr-cta{ letter-spacing:.12em; border-width:1px; }

/* Mobile tweaks */
@media (max-width:991.98px){
  .nwr-nav .navbar-collapse{ background:#000; border-top:1px solid rgba(255,255,255,.12); }
  .nwr-nav .navbar-nav > li > a{ padding:.9rem 0 !important; }
}

/* Topline (refined) */
.nwr-topline{
  background:#0a0a0a; border-bottom:1px solid rgba(255,255,255,.08);
  font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; color:#d9d9d9;
}
.nwr-topline .container{ padding-top:.35rem; padding-bottom:.35rem; }
.nwr-topline-text{ opacity:.85; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nwr-topline-link{ color:#d9d9d9; text-decoration:none; }
.nwr-topline-link:hover{ color:#fff; }

/* Socials in topline */
.nwr-social{ color:#d9d9d9; opacity:.9; display:inline-flex; line-height:0; }
.nwr-social:hover{ color:#fff; opacity:1; text-decoration:none; }
.nwr-social svg{ width:16px; height:16px; }

/* CTA must pop on black */
.nwr-nav .nwr-cta{ color:#fff; border-color:#fff; }
.nwr-nav .nwr-cta:hover{ background:#fff; color:#000; text-decoration:none; }

/* Admin bar offset + sticky polish (keep these) */
html, body { margin:0 !important; padding:0; }
body.admin-bar .nwr-nav{ top:32px; } @media (max-width:782px){ body.admin-bar .nwr-nav{ top:46px; } }
/* Optional scroll shadow */
body.nav-scrolled .nwr-nav{ box-shadow:0 8px 24px rgba(0,0,0,.16); }

/* ===== Luxe Service Grid ===== */
.service-grid-luxe .tile-luxe{
  border:1px solid var(--nwr-border);
  background:#fff;
  text-decoration:none;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.service-grid-luxe .tile-luxe:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(0,0,0,.06);
  border-color:#dcdcdc;
}
.tile-luxe__inner{ padding:1.35rem 1.35rem 1.15rem; }
.tile-luxe__index{
  font-family:"League Spartan",Inter,Arial,sans-serif;
  font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  font-size:.8rem; opacity:.6; margin-bottom:.35rem;
}
.tile-luxe__title{
  margin:0 0 .35rem 0;
  font-size:1.15rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase;
}
.tile-luxe__body{ color:#2a2a2a; margin:0 0 .75rem 0; }
.tile-luxe__cta{
  display:inline-flex; align-items:center; gap:.35rem;
  font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.8rem;
}
.tile-luxe__arrow{ transition:transform .2s ease; display:inline-block; }
.tile-luxe:hover .tile-luxe__arrow{ transform:translateX(3px); }

/* Featured pair (black luxe cards) */
.tile-featured{
  background:#0b0b0b;
  color:#fff;
  border:1px solid rgba(255,255,255,.1);
  position:relative;
}
.tile-featured .tile-luxe__index{ color:#fff; opacity:.85; }
.tile-featured .tile-luxe__title{ color:#fff; }
.tile-featured .tile-luxe__body{ color:#e9e9e9; }
.tile-featured .tile-luxe__cta{ color:#fff; }
.tile-featured:hover{
  box-shadow:0 16px 40px rgba(0,0,0,.4);
  border-color:rgba(212,175,55,.45);
}
.tile-featured::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(212,175,55,.18), rgba(255,255,255,0) 40%);
  opacity:.35; pointer-events:none; mix-blend-mode:soft-light;
}

/* ===== Pillar Band (black section) ===== */
.section-ink{
  background:#000; color:#fff; border:1px solid rgba(255,255,255,.08);
  padding:2rem; border-left:0; border-right:0;
}
.pillars-3 .pillar{
  height:100%; padding:1.25rem 1.25rem; background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.08);
}
.pillar h3{
  margin:.25rem 0 .35rem; font-size:1.05rem; letter-spacing:.08em; text-transform:uppercase;
}
.pillar p{ color:#d9d9d9; margin:0; }
.pillar__kicker{
  display:inline-block; font-weight:800; letter-spacing:.14em; font-size:.75rem;
  color:#fff; opacity:.85; border-bottom:1px solid rgba(212,175,55,.6);
}

/* ===== Locations belt (chips) ===== */
.locations-belt{ margin-top:2rem; }
.chip{
  display:inline-block; padding:.45rem .75rem; background:#fff; color:#000;
  border:1px solid var(--nwr-border); text-transform:uppercase; letter-spacing:.08em;
  font-weight:700; font-size:.75rem; text-decoration:none;
}
.chip:hover{ border-color:#cfcfcf; text-decoration:none; }

/* ===== Luxe Service Grid — crisp & legible ===== */
.service-grid-luxe .tile-luxe{
  border:1px solid var(--nwr-border);
  background:#fff;
  text-decoration:none;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.service-grid-luxe .tile-luxe:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(0,0,0,.06);
  border-color:#dcdcdc;
}
.tile-luxe__inner{ padding:1.25rem 1.25rem 1.1rem; }
.tile-luxe__head{ margin-bottom:.35rem; }
.tile-luxe__index{
  font-family:"League Spartan",Inter,Arial,sans-serif;
  font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  font-size:.78rem; opacity:.6; margin-bottom:.2rem;
}
.tile-luxe__title{
  margin:0; font-size:1.05rem; font-weight:800;
  letter-spacing:.03em; text-transform:uppercase; line-height:1.15;
}
.tile-luxe__body{ color:#262626; margin:.55rem 0 .75rem 0; }
.tile-luxe__cta{
  display:inline-flex; align-items:center; gap:.35rem;
  font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.8rem;
}
.tile-luxe__arrow{ transition:transform .2s ease; display:inline-block; }
.tile-luxe:hover .tile-luxe__arrow{ transform:translateX(3px); }

/* Optional thumb for subtle texture */
.tile-luxe__thumb--xs img{ width:56px; height:56px; object-fit:cover; border:1px solid var(--nwr-border); }
.tile-luxe__thumb--sm img{ width:72px; height:72px; object-fit:cover; border:1px solid rgba(255,255,255,.15); }

/* Featured pair (black tiles) — high contrast, no overlay */
.tile-featured{
  background:#0a0a0a; color:#fff;
  border:1px solid rgba(255,255,255,.12);
}
.tile-featured .tile-luxe__index{ color:#d4af37; opacity:1; }
.tile-featured .tile-luxe__title{ color:#fff; }
.tile-featured .tile-luxe__body{ color:#f2f2f2; }
.tile-featured .tile-luxe__thumb--sm img{ border-color:rgba(255,255,255,.25); }
.tile-featured:hover{
  box-shadow:0 16px 40px rgba(0,0,0,.35);
  border-color:rgba(212,175,55,.45);
}
/* remove the old gradient overlay if it exists */
.tile-featured::after{ content:none !important; }

/* ===== Pillar Band — readable on black ===== */
.section-ink{
  background:#000; color:#fff; border:1px solid rgba(255,255,255,.08);
  padding:2rem; border-left:0; border-right:0;
}
.pillars-3 .pillar{
  height:100%; padding:1.15rem 1.15rem;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.14);
}
.pillar .pillar__kicker{
  display:inline-block; font-weight:800; letter-spacing:.14em; font-size:.75rem;
  color:#d4af37; opacity:1; margin-bottom:.1rem;
}
.pillar h3{
  margin:0 0 .35rem; font-size:1.02rem; letter-spacing:.08em; text-transform:uppercase; color:#fff;
}
.pillar p{ color:#e6e6e6; margin:0; }

/* ===== Locations belt ===== */
.locations-belt{ margin-top:2rem; }
.chip{
  display:inline-block; padding:.45rem .75rem; background:#fff; color:#000;
  border:1px solid var(--nwr-border); text-transform:uppercase; letter-spacing:.08em;
  font-weight:700; font-size:.75rem; text-decoration:none;
}
.chip:hover{ border-color:#cfcfcf; text-decoration:none; }

