
/* CC BOUVIERS rev 1.4 — CLEAN NAVIGATION
   Phone/Fold closed: hamburger under 900px.
   Fold open/tablet/PC: full navigation at 900px and above.
*/

:root{--cc-header:64px}

body{
  padding-top:var(--cc-header) !important;
}

.site-header{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  height:var(--cc-header) !important;
  min-height:var(--cc-header) !important;
  z-index:9999 !important;
  overflow:visible !important;
  background:#f8f4ec !important;
  border-bottom:1px solid var(--line) !important;
  box-shadow:0 2px 8px rgba(24,48,70,.06) !important;
}

.nav{
  width:min(calc(100% - 28px),1240px) !important;
  height:var(--cc-header) !important;
  min-height:var(--cc-header) !important;
  margin:0 auto !important;
  padding:7px 0 !important;
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
}

.brand{
  display:flex !important;
  align-items:center !important;
  flex:0 0 auto !important;
  min-width:0 !important;
  gap:10px !important;
  white-space:nowrap !important;
}

.brandmark{
  width:36px !important;
  height:36px !important;
  min-width:36px !important;
  flex:0 0 36px !important;
}

/* ---------- FOLD OPEN / TABLET / PC: SHOW LINKS ---------- */
@media (min-width:900px){
  :root{--cc-header:64px}

  .menu-toggle{
    display:none !important;
  }

  .navlinks{
    display:flex !important;
    position:static !important;
    width:auto !important;
    max-height:none !important;
    overflow:visible !important;
    margin:0 0 0 auto !important;
    padding:0 !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:2px !important;
    white-space:nowrap !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
  }

  .navlinks > a,
  .dropbtn{
    display:block !important;
    width:auto !important;
    padding:9px 9px !important;
    margin:0 !important;
    text-align:center !important;
    font-size:clamp(.78rem,1.4vw,.92rem) !important;
    line-height:1.15 !important;
    border-radius:9px !important;
    white-space:nowrap !important;
  }

  .dropdown{
    display:block !important;
    position:relative !important;
    width:auto !important;
  }

  .dropdown-content{
    display:none !important;
    position:absolute !important;
    top:calc(100% + 3px) !important;
    left:0 !important;
    width:auto !important;
    min-width:210px !important;
    margin:0 !important;
    padding:7px 0 !important;
    background:#fff !important;
    border:1px solid var(--line) !important;
    border-radius:12px !important;
    box-shadow:0 12px 28px rgba(24,48,70,.14) !important;
    z-index:10010 !important;
  }

  /* Mouse desktop */
  .dropdown:hover .dropdown-content,
  .dropdown:focus-within .dropdown-content{
    display:block !important;
  }

  /* Touch Fold/tablet */
  .dropdown.desktop-expanded .dropdown-content{
    display:block !important;
  }

  .dropdown-content a{
    display:block !important;
    width:100% !important;
    padding:9px 13px !important;
    margin:0 !important;
    font-size:.9rem !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
  }
}

/* Slightly tighter full navigation on Fold-open widths. */
@media (min-width:900px) and (max-width:1199px){
  .nav{
    width:calc(100% - 20px) !important;
    gap:8px !important;
  }

  .brand{
    font-size:.90rem !important;
    gap:7px !important;
  }

  .brandmark{
    width:32px !important;
    height:32px !important;
    min-width:32px !important;
    flex-basis:32px !important;
  }

  .navlinks > a,
  .dropbtn{
    padding:8px 7px !important;
    font-size:.77rem !important;
  }
}

/* ---------- PHONE / FOLD CLOSED: HAMBURGER ---------- */
@media (max-width:899px){
  :root{--cc-header:56px}

  body{
    padding-top:56px !important;
  }

  .site-header{
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
  }

  .nav{
    width:100% !important;
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    margin:0 !important;
    padding:5px 12px !important;
    gap:8px !important;
  }

  .brand{
    flex:1 1 auto !important;
    max-width:calc(100% - 50px) !important;
    overflow:hidden !important;
    font-size:.92rem !important;
  }

  .brand span:last-child{
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }

  .brandmark{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    flex:0 0 34px !important;
  }

  .menu-toggle{
    display:block !important;
    width:40px !important;
    height:40px !important;
    min-width:40px !important;
    flex:0 0 40px !important;
    margin-left:auto !important;
    border:0 !important;
    background:transparent !important;
    padding:6px !important;
    cursor:pointer !important;
  }

  .menu-toggle span{
    display:block !important;
    width:25px !important;
    height:2px !important;
    margin:5px auto !important;
    background:var(--text) !important;
    border-radius:3px !important;
  }

  .navlinks{
    display:none !important;
    position:fixed !important;
    top:56px !important;
    left:0 !important;
    right:0 !important;
    width:100vw !important;
    max-height:calc(100vh - 56px) !important;
    overflow-y:auto !important;
    margin:0 !important;
    padding:8px 12px 16px !important;
    background:#f8f4ec !important;
    border-bottom:1px solid var(--line) !important;
    box-shadow:0 14px 30px rgba(24,48,70,.18) !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:2px !important;
    white-space:normal !important;
  }

  .navlinks.mobile-open{
    display:flex !important;
  }

  .navlinks > a,
  .dropbtn{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:11px 12px !important;
    text-align:left !important;
    font-size:.96rem !important;
    line-height:1.2 !important;
  }

  .dropdown{
    display:block !important;
    width:100% !important;
    position:relative !important;
  }

  .dropdown-content,
  .dropdown:hover .dropdown-content,
  .dropdown:focus-within .dropdown-content{
    display:none !important;
    position:static !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 0 4px 14px !important;
    border:0 !important;
    border-left:3px solid #d9c39d !important;
    border-radius:0 !important;
    box-shadow:none !important;
    background:transparent !important;
  }

  .dropdown.mobile-expanded .dropdown-content{
    display:block !important;
  }

  .dropdown-content a{
    display:block !important;
    padding:9px 10px !important;
    font-size:.92rem !important;
  }

  /* Closed cellphone hero remains the approved layout */
  .hero{
    background:var(--accent) !important;
  }

  .hero-photo{
    height:245px !important;
    min-height:0 !important;
    max-height:245px !important;
    object-fit:cover !important;
    object-position:center 35% !important;
    filter:brightness(.92) saturate(.98) !important;
  }

  .hero::after{
    display:none !important;
  }

  .hero-inner{
    position:relative !important;
    inset:auto !important;
    display:block !important;
    padding:0 !important;
  }

  .hero-copy{
    margin:0 !important;
    max-width:none !important;
    padding:18px 16px 22px !important;
    color:#fff !important;
    background:var(--accent) !important;
  }

  .hero-copy h1{
    font-size:2.15rem !important;
    margin:5px 0 9px !important;
  }

  .hero .lead{
    font-size:1rem !important;
    line-height:1.45 !important;
    text-shadow:none !important;
  }

  .grid2,.grid3,.profile,.gallery,.timeline,.footer-inner,.contactbox,.form-row,.history-strip{
    grid-template-columns:1fr !important;
  }
}

/* Fold-open hero: preserve large visual but keep nav links visible above it. */
@media (min-width:900px) and (max-width:1199px){
  .hero-photo{
    height:min(68vw,620px) !important;
    max-height:620px !important;
  }
}
