/* ================================================================
   GLOBAL STYLESHEET
   Location: /home/kitchenbrand/public_html/styles/global.css
   Included on every page via <link> in <head>.

   Contains:
     1. Design tokens (CSS variables)
     2. Reset & base
     3. Typography helpers
     4. Header / Nav
     5. Avatar + dropdown
     6. Buttons
     7. Shared section styles
     8. Footer
     9. Partners
    10. Global responsive rules
================================================================ */


/* ================================================================
   1. DESIGN TOKENS
   All color, font, spacing, and motion values live here.
   To retheme a site: change the values, never the names.
================================================================ */
:root {

    /* ── Main color (primary brand) ─────────────────────────── */
    --main:       #0ABAB5;
    --main-light: #81D8D0;
    --main-pale:  #E8F8F7;
    --main-deep:  #077E7A;
    --main-dark:  #045C59;
    
    /* ── Secondary color (supporting brand / page-level CTA) ── */
    --header-bg: #077E7A;

    /* ── Secondary color (supporting brand / page-level CTA) ── */
    --secondary:       #1E4D7A;   /* Nevada sky blue */
    --secondary-light: #2E6DA4;

    /* ── Accent color (gold CTA / highlights) ───────────────── */
    --accent:       #C8923A;
    --accent-light: #DEB06A;
    --accent-dark:  #b07e30;   /* hover / shadow state */

    /* ── Neutrals ───────────────────────────────────────────── */
    --white:      #FFFFFF;
    --off-white:  #F9FDFD;
    --warm-white: #F5F5F0;
    --charcoal:   #1A1A1A;
    --mid:        #4A5654;
    --muted:      #7A8F8D;

    /* ── Structural ─────────────────────────────────────────── */
    --footer-bg:  #0C1F1F;   /* deeper than --main-dark */
    --border:     rgba(10,186,181,0.15);  /* --main at 15% opacity */

    /* ── Typography ─────────────────────────────────────────── */
    --serif: 'Cormorant Garamond', Georgia, serif;
    --sans:  'Jost', system-ui, sans-serif;

    /* ── Layout ─────────────────────────────────────────────── */
    --header-h: 80px;

    /* ── Border radius ──────────────────────────────────────── */
    --radius-sm:  4px;
    --radius-md:  8px;
    --radius-lg:  16px;
    --radius-xl:  24px;
    --radius-2xl: 32px;

    /* ── Shadows ─────────────────────────────────────────────── */
    --shadow-card: 0 2px 20px rgba(26,25,21,.10);
    --shadow-lift: 0 8px 40px rgba(26,25,21,.18);

    /* ── Motion ─────────────────────────────────────────────── */
    --trans: 0.3s cubic-bezier(.4,0,.2,1);
}


/* ================================================================
   2. RESET & BASE
================================================================ */
*, *::before, *::after {
    box-sizing: border-box;
    margin:     0;
    padding:    0;
}
html  { scroll-behavior: smooth; }
body  {
    font-family: var(--sans);
    font-size:   16px;
    line-height: 1.6;
    color:       var(--charcoal);
    background:  var(--white);
    padding-top: var(--header-h);
}
img { display: block; max-width: 100%; }
a   { color: inherit; text-decoration: none; }


/* ================================================================
   3. TYPOGRAPHY HELPERS
================================================================ */
.label {
    font-size:      11px;
    font-weight:    500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color:          var(--muted);
}
.center { text-align: center; }


/* ================================================================
   4. HEADER / NAV
================================================================ */
header {
    position:        fixed;
    top: 0; left: 0; right: 0;
    z-index:         1000;
    height:          var(--header-h);
    display:         flex;
    align-items:     center;
    padding:         0 40px;
    background:      var(--header-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom:   1px solid rgba(255,255,255,.10);
    transition:      background var(--trans), box-shadow var(--trans);
}
header.scrolled {
    background: var(--main-dark);
    box-shadow: 0 2px 20px rgba(0,0,0,.25);
}

/* Logo */
.logo-wrap {
    display:         flex;
    flex-direction:  row;
    justify-content: center;
    align-items:     center;
    gap:             0;
    flex-shrink:     0;
}
.logo-main {
    font-family:    var(--sans);
    font-size:      26px;
    font-weight:    300;
    color:          var(--white);
    letter-spacing: .04em;
    line-height:    1;
    padding:        10px 10px 2px 10px;
}
.logo-sub {
    font-size:      10px;
    font-weight:    400;
    letter-spacing: .18em;
    color:          rgba(255,255,255,.65);
    margin-top:     3px;
}
.logo-text-group {
    display:        flex;
    flex-direction: column;
    gap:            0;
    align-items:    center;
}
.logo-phone {
    font-family:    var(--sans);
    font-size:      11px;
    font-weight:    400;
    letter-spacing: .08em;
    color:          rgba(255,255,255,.60);
    padding:        0 10px 10px 10px;
    line-height:    1;
}

/* Desktop nav links */
#main-nav {
    display:     flex;
    align-items: center;
    gap:         6px;
    margin-left: auto;
}
#main-nav > a,
#main-nav > div > a {
    font-size:      13px;
    font-weight:    400;
    letter-spacing: .04em;
    color:          rgba(255,255,255,.82);
    padding:        7px 14px;
    border-radius:  var(--radius-sm);
    transition:     color var(--trans), background var(--trans);
}
#main-nav > a:hover,
#main-nav > div > a:hover {
    color:      var(--white);
    background: rgba(255,255,255,.10);
}
#main-nav a.btn-nav {
    background:  var(--main-light);
    color:       var(--white);
    font-weight: 500;
    margin-left: 8px;
    padding:     7px 18px;
}
#main-nav a.btn-nav:hover {
    background: var(--main);
    border:     1px solid #FFF;
}

/* Hamburger — hidden on desktop, shown on mobile */
#hamburger {
    display:       none;
    flex-direction: column;
    gap:           5px;
    margin-left:   auto;
    cursor:        pointer;
    padding:       8px;
    border-radius: var(--radius-sm);
    background:    transparent;
    border:        none;
    transition:    background var(--trans);
}
#hamburger:hover { background: rgba(255,255,255,.10); }
#hamburger span {
    display:       block;
    width:         22px;
    height:        2px;
    background:    var(--white);
    border-radius: 2px;
    transition:    transform var(--trans), opacity var(--trans);
}
#hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
#hamburger.open span:nth-child(2) { opacity: 0; }
#hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Slide nav (mobile) */
#slide-nav {
    position:       fixed;
    top:            var(--header-h);
    right:          0;
    bottom:         0;
    width:          280px;
    background:     var(--main-dark);
    z-index:        999;
    transform:      translateX(100%);
    transition:     transform var(--trans);
    display:        flex;
    flex-direction: column;
    padding:        24px 0 40px;
    overflow-y:     auto;
    box-shadow:     -4px 0 32px rgba(0,0,0,.25);
}
#slide-nav.open { transform: translateX(0); }
#slide-nav a {
    display:        block;
    padding:        14px 32px;
    font-size:      15px;
    color:          rgba(255,255,255,.85);
    letter-spacing: .03em;
    border-bottom:  1px solid rgba(255,255,255,.07);
    transition:     color var(--trans), background var(--trans);
}
#slide-nav a:hover {
    color:      var(--white);
    background: rgba(255,255,255,.07);
}
#slide-nav .nav-tagline {
    margin:      auto 32px 0;
    padding-top: 24px;
    font-family: var(--serif);
    font-size:   16px;
    font-style:  italic;
    color:       rgba(255,255,255,.45);
    border-top:  1px solid rgba(255,255,255,.10);
}

/* Saved homes badge */
#saved-badge {
    display:       inline-flex;
    align-items:   center;
    gap:           6px;
    background:    rgba(255,255,255,.12);
    border:        1px solid rgba(255,255,255,.25);
    color:         var(--white);
    font-size:     12px;
    padding:       5px 12px;
    border-radius: 999px;
    margin-right:  12px;
    transition:    background var(--trans);
}
#saved-badge:hover { background: rgba(255,255,255,.20); }
#saved-badge .dot {
    width:         6px;
    height:        6px;
    background:    var(--accent);
    border-radius: 50%;
}

/* Mobile nav overlay */
#nav-overlay {
    display:    none;
    position:   fixed;
    inset:      0;
    z-index:    998;
    background: rgba(0,0,0,.45);
}
#nav-overlay.open { display: block; }


/* ================================================================
   5. AVATAR + DROPDOWN
================================================================ */
.client-avatar-wrap {
    position: relative;
}
.client-avatar {
    display:         flex;
    align-items:     center;
    justify-content: center;
    width:           38px;
    height:          38px;
    border-radius:   50%;
    background:      var(--accent);
    color:           var(--white);
    font-size:       .85rem;
    font-weight:     700;
    letter-spacing:  .03em;
    cursor:          pointer;
    border:          2px solid transparent;
    transition:      border-color .2s, background .2s, color .2s;
    user-select:     none;
}
.client-avatar:hover,
.client-avatar-wrap.open .client-avatar {
    border-color: var(--accent);
    background:   var(--white);
    color:        var(--accent);
}
.avatar-dropdown {
    position:   absolute;
    top:        calc(100% + 10px);
    right:      0;
    min-width:  180px;
    background: var(--white);
    border:     1px solid #e5e5e5;
    border-radius: 10px;
    box-shadow: 0 8px 28px rgba(0,0,0,.12);
    padding:    8px 0;
    opacity:    0;
    visibility: hidden;
    transform:  translateY(6px);
    transition: opacity .2s, transform .2s, visibility .2s;
    z-index:    999;
}
.client-avatar-wrap.open .avatar-dropdown {
    opacity:    1;
    visibility: visible;
    transform:  translateY(0);
}
.avatar-dropdown a {
    display:         block;
    padding:         10px 18px;
    font-size:       .88rem;
    color:           #333;
    text-decoration: none;
    transition:      background .15s;
}
.avatar-dropdown a:hover { background: #f5f5f5; }
.avatar-dropdown hr {
    border:     none;
    border-top: 1px solid #eee;
    margin:     6px 0;
}
.avatar-dropdown .dd-name {
    padding:        10px 18px 6px;
    font-size:      .78rem;
    color:          #999;
    font-weight:    600;
    text-transform: uppercase;
    letter-spacing: .06em;
}


/* ================================================================
   6. BUTTONS
================================================================ */
.btn {
    display:         inline-flex;
    align-items:     center;
    gap:             8px;
    padding:         13px 26px;
    border-radius:   var(--radius-md);
    font-family:     var(--sans);
    font-size:       13px;
    font-weight:     500;
    letter-spacing:  .04em;
    cursor:          pointer;
    transition:      all var(--trans);
    border:          1px solid transparent;
    text-decoration: none;
}

/* Accent-filled — primary CTA */
.btn-primary {
    background:   var(--accent);
    color:        var(--white);
    border-color: var(--accent);
}
.btn-primary:hover {
    background:   var(--accent-dark);
    border-color: var(--accent-dark);
    transform:    translateY(-1px);
    box-shadow:   0 6px 20px rgba(200,146,58,.35);
}

/* Ghost white — used on dark/hero backgrounds */
.btn-outline {
    background:   transparent;
    color:        var(--white);
    border-color: rgba(255,255,255,.45);
}
.btn-outline:hover {
    background:   rgba(255,255,255,.10);
    border-color: rgba(255,255,255,.80);
}

/* Main-filled — solid brand color */
.btn-main {
    padding:        13px 32px;
    background:     var(--main);
    color:          var(--white);
    border:         none;
    font-family:    var(--sans);
    font-size:      11px;
    font-weight:    500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor:         pointer;
    transition:     background 0.2s;
    text-decoration: none;
    display:        inline-block;
}
.btn-main:hover { background: var(--main-deep); }

/* Outline main — transparent with brand border */
.btn-outline-main {
    padding:        13px 32px;
    background:     transparent;
    color:          var(--main);
    border:         1px solid var(--main);
    font-family:    var(--sans);
    font-size:      11px;
    font-weight:    400;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor:         pointer;
    transition:     all 0.2s;
    text-decoration: none;
    display:        inline-block;
}
.btn-outline-main:hover {
    background: var(--main);
    color:      var(--white);
}

/* Tiffany — used for "View All Listings" on featured property sections */
.btn-tiffany {
    display:         inline-flex;
    align-items:     center;
    gap:             8px;
    padding:         13px 32px;
    background:      var(--main);
    color:           var(--white);
    border:          none;
    border-radius:   var(--radius-md);
    font-family:     var(--sans);
    font-size:       13px;
    font-weight:     500;
    letter-spacing:  .04em;
    cursor:          pointer;
    text-decoration: none;
    transition:      background var(--trans), transform var(--trans);
}
.btn-tiffany:hover {
    background: var(--main-deep);
    transform:  translateY(-1px);
}

/* Gold/accent CTA — dark editorial backgrounds (buyers, sellers, etc.) */
.btn-gold {
    background:   var(--accent);
    color:        var(--white);
    border-color: var(--accent);
}
.btn-gold:hover {
    background:   var(--accent-dark);
    border-color: var(--accent-dark);
    transform:    translateY(-1px);
    box-shadow:   0 6px 20px rgba(200,146,58,.35);
}

/* ================================================================
   7. SHARED SECTION STYLES
================================================================ */
.sec-label {
    font-size:      10px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color:          var(--main);
    margin-bottom:  10px;
}
.sec-title {
    font-family:   var(--serif);
    font-size:     38px;
    font-weight:   300;
    color:         var(--charcoal);
    line-height:   1.15;
    margin-bottom: 6px;
}
.sec-title em {
    font-style: italic;
    color:      var(--main);
}
.sec-sub {
    font-size:     14px;
    color:         var(--muted);
    margin-bottom: 36px;
    max-width:     480px;
    line-height:   1.7;
}
/* Decorative rule — replaces .tiffany-line */
.main-line {
    width:      36px;
    height:     2px;
    background: var(--main);
    margin:     14px 0 20px;
}


/* ================================================================
   8. FOOTER
================================================================ */
footer {
    background: var(--footer-bg);
    padding:    48px 44px 24px;
}
.footer-top {
    display:               grid;
    grid-template-columns: 1.2fr 1fr 1fr 1fr;
    gap:                   40px;
    padding-bottom:        36px;
    border-bottom:         1px solid rgba(10,186,181,0.12);
    margin-bottom:         24px;
}
.footer-brand .logo {
    font-size:     20px;
    color:         var(--white);
    margin-bottom: 12px;
    display:       block;
    font-family:   var(--serif);
}
.footer-brand .logo em {
    color:      var(--main-light);
    font-style: italic;
}
.footer-brand p {
    font-size:   12px;
    color:       rgba(255,255,255,0.3);
    line-height: 1.7;
}
.fcol h4 {
    font-size:      10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color:          var(--main);
    margin-bottom:  14px;
}
.fcol a {
    display:         block;
    font-size:       12px;
    color:           rgba(255,255,255,0.4);
    text-decoration: none;
    margin-bottom:   8px;
    transition:      color 0.2s;
}
.fcol a:hover    { color: var(--main-light); }
.footer-bottom {
    display:         flex;
    justify-content: space-between;
    font-size:       11px;
    color:           rgba(255,255,255,0.2);
    flex-wrap:       wrap;
    gap:             8px;
}


/* ================================================================
   9. PARTNERS
================================================================ */
.partners {
    padding:     40px 44px;
    border-top:  1px solid var(--border);
    display:     flex;
    align-items: center;
    gap:         48px;
}
.partners-label {
    font-size:      10px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color:          var(--muted);
    white-space:    nowrap;
}
.partners-logos {
    display:     flex;
    gap:         24px;
    align-items: center;
    flex-wrap:   wrap;
}
.partner-name {
    font-size:      12px;
    font-weight:    400;
    color:          var(--mid);
    letter-spacing: 0.04em;
    padding:        8px 16px;
    border:         1px solid var(--border);
}


/* ================================================================
   10. GLOBAL RESPONSIVE
================================================================ */
@media (max-width: 900px) {
    header        { padding: 0 20px; }
    footer        { padding: 40px 20px 20px; }
    .footer-top   { grid-template-columns: 1fr 1fr; gap: 24px; }
    .partners     { flex-direction: column; align-items: flex-start; padding: 32px 20px; }
}

@media (max-width: 650px) {
    #main-nav  { display: none; }
    #hamburger { display: flex; }
}
