/* ===== Global nav — Contact button: never wrap, shrink on narrow screens ===== */
/* The site nav is inline-styled per page; this file adds only the responsive
   behaviour for the "Contact Us" button (class="nav-cta"). Nothing else. */
.nav-cta{white-space:nowrap;flex-shrink:0}
@media(max-width:520px){ .nav-cta{padding:8px 14px!important;font-size:11px!important;letter-spacing:.1em!important} }
@media(max-width:360px){ .nav-cta{padding:7px 11px!important;font-size:10px!important} }

/* ===== Fix 2 — comfortable click/tap area on top-level nav links (desktop; mobile handled by the panel) ===== */
@media(min-width:769px){
  .nav-links > li > a, nav > ul > li > a{display:inline-block;padding:11px 14px}
}

/* ===== Services dropdown submenu (variant-agnostic; works on both nav styles) ===== */
.nav-has-sub{position:relative}
.nav-sub-toggle{
  background:none;border:0;cursor:pointer;color:#C9A84C;font:inherit;line-height:1;
  font-size:0.62rem;padding:4px 4px;margin-left:1px;display:inline-flex;align-items:center;
  transition:transform .25s ease,color .25s ease;-webkit-appearance:none;appearance:none;
}
.nav-sub-toggle::before{content:'\25BE'} /* down caret */
.nav-has-sub:hover .nav-sub-toggle::before,
.nav-has-sub.open .nav-sub-toggle::before{transform:rotate(180deg)}
.nav-sub{
  position:absolute;top:100%;left:0;min-width:236px;margin:0;padding:6px 0;list-style:none;
  background:#0a0a0a;border:none;box-shadow:none;border-radius:0; /* frameless — reads as an extension of the menu */
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .26s ease,transform .26s ease,visibility .26s;z-index:300;
}
.nav-sub::before{content:'';position:absolute;top:-14px;left:0;right:0;height:14px} /* hover bridge */
.nav-has-sub:hover > .nav-sub,
.nav-has-sub:focus-within > .nav-sub,
.nav-has-sub.open > .nav-sub{opacity:1;visibility:visible;transform:translateY(0)}
.nav-sub li{margin:0;padding:0;display:block;list-style:none}
.nav-has-sub .nav-sub a{
  display:block;padding:9px 22px;white-space:nowrap;border:0;background:none;
  font-family:'DM Sans',sans-serif;font-size:0.68rem;font-weight:400;letter-spacing:0.22em;
  text-transform:uppercase;color:#F5F2EE !important;text-decoration:none;
  transition:color .2s ease;
}
.nav-has-sub .nav-sub a::after{display:none !important} /* kill any underline pseudo from base nav */
.nav-has-sub .nav-sub a:hover,
.nav-has-sub .nav-sub a:focus{color:#C9A84C !important;background:transparent}
/* ===== Hamburger button (shown only on mobile) ===== */
.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:8px;background:none;border:0;cursor:pointer;pointer-events:auto;-webkit-appearance:none;appearance:none}
.nav-burger span{display:block;width:24px;height:2px;background:#F5F2EE;border-radius:2px;transition:transform .3s ease,opacity .3s ease}
.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.nav-locked{overflow:hidden}

/* ===== Mobile nav (<=768px): hamburger reveals a dark-luxury panel; Services becomes an accordion ===== */
@media(max-width:768px){
  .nav-burger{display:flex;position:fixed;top:12px;right:16px;z-index:320}
  /* The link list becomes a full-width dropdown panel below the bar */
  nav > ul{
    position:fixed !important;top:0;left:0;right:0;
    flex-direction:column !important;align-items:stretch !important;justify-content:flex-start !important;
    gap:0 !important;margin:0 !important;padding:74px 0 22px !important;list-style:none;
    background:#0f0f0f;border-bottom:1px solid #C9A84C;box-shadow:0 26px 54px rgba(0,0,0,.6);
    opacity:0;visibility:hidden;transform:translateY(-14px);
    transition:opacity .26s ease,transform .28s ease,visibility .28s;
    z-index:300;pointer-events:auto;max-height:100vh;overflow-y:auto;
  }
  nav.nav-open > ul{opacity:1;visibility:visible;transform:translateY(0)}
  nav.nav-open::before{content:'';position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:290;pointer-events:auto}
  nav > ul > li{width:100% !important;margin:0 !important;text-align:left}
  nav > ul > li > a{
    display:block !important;width:100%;padding:15px 30px !important;
    font-size:0.82rem !important;letter-spacing:0.14em !important;
    border-bottom:1px solid rgba(201,168,76,0.1);color:#F5F2EE !important;
  }
  nav > ul > li > a:hover,nav > ul > li > a:focus{color:#C9A84C !important}
  nav > ul > li > a::after{display:none !important}
  /* Contact: always visible in the panel (override homepage's mobile hide) */
  nav > ul .nav-cta{display:block !important;border:0 !important;border-bottom:1px solid rgba(201,168,76,0.1) !important;color:#C9A84C !important;padding:15px 30px !important;font-size:0.82rem !important;letter-spacing:0.14em !important;white-space:normal !important}
  /* Services row: link + caret inline; submenu accordion below */
  .nav-has-sub{display:flex;flex-wrap:wrap;align-items:stretch;position:static}
  .nav-has-sub > a{flex:1 1 auto;width:auto !important;border-bottom:1px solid rgba(201,168,76,0.1)}
  .nav-sub-toggle{order:2;font-size:0.9rem;color:#C9A84C;padding:0 26px;margin:0;border-bottom:1px solid rgba(201,168,76,0.1)}
  .nav-sub{
    order:3;flex-basis:100%;width:100% !important;min-width:0;
    position:static !important;top:auto;left:auto;right:auto;
    background:rgba(201,168,76,0.04);border:0 !important;box-shadow:none !important;
    margin:0;padding:0 !important;opacity:1 !important;visibility:visible !important;transform:none !important;
    max-height:0;overflow:hidden;transition:max-height .3s ease;
  }
  .nav-sub::before{display:none}
  .nav-has-sub:hover > .nav-sub,
  .nav-has-sub:focus-within > .nav-sub{max-height:0}
  .nav-has-sub.open > .nav-sub{max-height:460px}
  .nav-has-sub .nav-sub a{padding:13px 46px !important;font-size:0.72rem !important;border-bottom:1px solid rgba(201,168,76,0.07)}
}
