@font-face {
  font-family: "Gilroy";
  src: url("../fonts/gilroy-regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Gilroy";
  src: url("../fonts/gilroy-semibold.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Gilroy";
  src: url("../fonts/gilroy-bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Gilroy";
  src: url("../fonts/gilroy-black.ttf") format("truetype");
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}

.office-phone__icon,
.nav-toggle__image {
  display: none;
}

@media (max-width: 680px) {
  .site-header {
    position: relative;
    z-index: 1000;
    width: 100%;
    height: 164px;
    background: #181818;
    border-bottom: 2px solid #b42d27;
  }

  .site-header.site-header--hero {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    background: transparent;
  }

  .site-header .utility-bar {
    height: 50px;
    background: #080808;
  }

  .site-header .utility-bar__inner {
    width: 100%;
    max-width: none;
    height: 50px;
    padding: 0;
  }

  .site-header .utility-bar__offices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    height: 50px;
    margin: 0;
    transform: none;
  }

  .site-header .office-phone,
  .site-header .office-phone + .office-phone {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    grid-template-rows: 16px 26px;
    column-gap: 7px;
    align-content: start;
    width: auto;
    min-width: 0;
    height: 50px;
    padding: 4px 6px 3px 14px;
    color: #fff;
    text-align: left;
  }

  .site-header .office-phone + .office-phone {
    border-left: 1px solid #464646;
  }

  .site-header .office-phone span {
    grid-column: 1 / -1;
    grid-row: 1;
    align-self: start;
    margin: 0;
    color: #f3d1a0;
    font-family: "Gilroy", sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 16px;
    letter-spacing: 0;
    text-transform: none;
  }

  .site-header .office-phone__icon {
    display: block;
    grid-column: 1;
    grid-row: 2;
    align-self: center;
    width: 22px;
    height: 22px;
  }

  .site-header .office-phone strong {
    display: block;
    grid-column: 2;
    grid-row: 2;
    align-self: center;
    min-width: 0;
    margin: 0;
    color: #fff;
    font-family: "Gilroy", sans-serif;
    font-size: 22px;
    font-weight: 700;
    line-height: 26px;
    letter-spacing: 0;
    white-space: nowrap;
    transform: none;
  }

  .site-header .office-phone strong::before {
    content: none;
  }

  .site-header .primary-bar {
    height: 122px;
    margin-top: -10px;
    background: #181818;
  }

  .site-header--hero .primary-bar {
    background: rgba(8, 8, 8, 0.64);
  }

  .site-header .primary-bar__inner {
    width: 100%;
    max-width: none;
    height: 122px;
    min-height: 122px;
    padding: 0 18px 0 28px;
  }

  .site-header .site-header__flag {
    position: absolute;
    z-index: 3;
    top: 37px;
    left: -4px;
    display: block;
    width: 84px;
    height: 54px;
    object-fit: contain;
    pointer-events: none;
  }

  .site-header .site-brand {
    width: 246px;
    max-width: calc(100% - 78px);
    margin: 0;
    transform: translateY(-6px);
  }

  .site-header .site-brand img {
    width: 246px;
    height: auto;
  }

  .site-header .nav-toggle {
    display: grid;
    flex: 0 0 56px;
    place-items: center;
    width: 56px;
    height: 56px;
    min-height: 56px;
    margin-left: auto;
    padding: 0;
    color: #fff;
    background: #b42d27;
    border: 0;
    border-radius: 50%;
    transform: translateY(-6px);
  }

  .site-header .nav-toggle__label,
  .site-header .nav-toggle__icon {
    display: none;
  }

  .site-header .nav-toggle__image {
    display: block;
    width: 25px;
    height: 19px;
  }

  .site-header .site-navigation {
    top: 162px;
    max-height: calc(100vh - 162px);
  }

  .site-header--hero + #primary .residential-hero__layout {
    padding-top: 192px;
  }
}

@media (max-width: 389px) {
  .site-header .office-phone,
  .site-header .office-phone + .office-phone {
    grid-template-columns: 20px minmax(0, 1fr);
    column-gap: 6px;
    padding-right: 4px;
    padding-left: 10px;
  }

  .site-header .office-phone__icon {
    width: 20px;
    height: 20px;
  }

  .site-header .office-phone strong {
    font-size: clamp(18px, 5.64vw, 22px);
  }

  .site-header .primary-bar__inner {
    padding-right: 14px;
    padding-left: 22px;
  }

  .site-header .site-brand {
    width: clamp(210px, 63.08vw, 246px);
  }

  .site-header .site-brand img {
    width: 100%;
  }
}

/* Figma mobile header 3428:289 / services-first 3448:286. */
.mobile-figma-panel { display: none; }
@media (max-width: 680px) {
  body .site-header { height:184px; border:0; background:#111; }
  body .site-header.site-header--hero { background:#111; }
  body .site-header .primary-bar { background:#111; }
  body .site-header .primary-bar__inner { padding:0 18px 0 24px; }
  body .site-header .site-header__flag { top:50px; left:-3px; width:72px; height:46px; }
  body .site-header .site-brand { width:236px; max-width:calc(100% - 66px); transform:translateY(-4px); }
  body .site-header .site-brand img { width:100%; }
  body .site-header .office-phone span { text-transform:uppercase; }
  body .site-header .nav-toggle { flex-basis:48px; width:48px; height:48px; min-height:48px; border-radius:0; background:transparent url('../images/header-mobile-menu.svg') center/48px 48px no-repeat; transform:translateY(-5px); }
  body .site-header .nav-toggle[aria-expanded="true"] { background-image:url('../images/header-mobile-close.svg'); }
  body .site-header .nav-toggle > * { display:none!important; }
  body .site-header .site-navigation { top:154px; padding:8px 20px 24px; max-height:calc(100vh - 154px); max-height:calc(100dvh - 154px); background:#111; overscroll-behavior:contain; overflow-y:auto; overflow-x:hidden; }
  body .site-header .mobile-menu-panel { display:none; }
  body .site-header .mobile-figma-panel { display:block; width:100%; color:#fff; font-family:'Gilroy',sans-serif; }
  .mobile-figma-services a { display:flex; align-items:center; gap:12px; height:48px; padding:0 20px; background:#090909; color:#fff; font-size:16px; font-weight:400; line-height:22px; text-decoration:none; }
  .mobile-figma-services a::before { content:''; flex:0 0 6px; height:6px; border-radius:50%; background:#d4a866; }
  .mobile-figma-services a:last-child { color:#d4a866; }
  .mobile-figma-secondary a { display:flex; align-items:center; justify-content:space-between; height:57px; padding:0 20px; border-bottom:1px solid #383838; color:#fff; font-size:18px; font-weight:700; line-height:24px; text-decoration:none; }
  .mobile-figma-secondary a::after { content:'→'; font-size:22px; }
  .mobile-figma-cta { display:flex; align-items:center; justify-content:center; gap:6px; width:100%; min-height:56px; padding:8px; border-radius:8px; background:#d4a866; color:#090909; font-size:15px; font-weight:900; line-height:20px; text-decoration:none; }
  .mobile-figma-panel a:focus-visible,.site-header .nav-toggle:focus-visible { outline:2px solid #f3d1a0; outline-offset:-2px; }
  body .site-header.mobile-menu-fixed { position:fixed; top:0; left:0; right:0; z-index:2147483000; }
  body .site-header.mobile-menu-fixed .site-navigation { position:fixed; }
}

/* Mobile hero pages: keep the phone bar solid, but let the hero image start
   behind the logo/burger row instead of after the full header block. */
@media (max-width: 680px) {
  body .site-header.site-header--hero {
    background: transparent;
  }

  body .site-header.site-header--hero .utility-bar {
    background: #080808;
  }

  body .site-header.site-header--hero .primary-bar {
    background: linear-gradient(180deg, rgba(8, 8, 8, .82) 0%, rgba(8, 8, 8, .46) 58%, rgba(8, 8, 8, 0) 100%);
  }

  body .site-header.site-header--hero + #primary .residential-hero,
  body .site-header.site-header--hero + #primary .residential-hero__media,
  body .site-header.site-header--hero + #primary .residential-hero__shade {
    margin-top: 0;
  }

  body .site-header.site-header--hero + #primary .residential-hero__layout {
    padding-top: 214px;
  }
}

/* Figma 3455:289: phone-only sticky state; initial header is unchanged. */
.mobile-sticky-spacer { display:none; }
@media (max-width:680px) {
  .mobile-sticky-spacer.is-active { display:block; height:184px; }
  body .site-header.is-mobile-sticky { position:fixed; top:0; left:0; right:0; height:128px; background:transparent; border:0; pointer-events:none; }
  body .site-header.is-mobile-sticky .utility-bar { height:72px; background:#060606; box-shadow:0 3px 7px rgba(0,0,0,.22); pointer-events:auto; }
  body .site-header.is-mobile-sticky .utility-bar__offices { position:relative; }
  body .site-header.is-mobile-sticky .utility-bar__offices::after { content:''; position:absolute; top:10px; left:calc(50% - .5px); width:1px; height:52px; background:#464646; pointer-events:none; }
  body .site-header.is-mobile-sticky .office-phone { padding-top:8px; grid-template-rows:18px 30px; row-gap:4px; }
  body .site-header.is-mobile-sticky .office-phone + .office-phone { border-left:0; }
  body .site-header.is-mobile-sticky .office-phone__icon { width:22px; height:22px; content:url('../images/sticky-phone.svg'); }
  body .site-header.is-mobile-sticky .office-phone strong { font-size:clamp(17px,5.64vw,22px); line-height:26px; }
  body .site-header.is-mobile-sticky .site-brand,
  body .site-header.is-mobile-sticky .site-header__flag { display:none; }
  body .site-header.is-mobile-sticky .primary-bar { height:56px; margin-top:0; background:transparent; }
  body .site-header.is-mobile-sticky .primary-bar__inner { height:56px; min-height:56px; padding:4px 8px; }
  body .site-header.is-mobile-sticky .nav-toggle { width:48px; height:48px; flex-basis:48px; margin-left:auto; transform:none; pointer-events:auto; }
  body .site-header.is-mobile-sticky .nav-toggle[aria-expanded="false"] { background-image:url('../images/sticky-menu.svg'); }
  body .site-header.is-mobile-sticky .site-navigation { top:128px; max-height:calc(100vh - 128px); max-height:calc(100dvh - 128px); pointer-events:auto; }
}

/* Compact open mobile drawer: attach directly to the phone strip. */
@media (max-width:680px) {
  body .site-header.mobile-menu-fixed { background:transparent; }
  body .site-header.mobile-menu-fixed .site-brand,
  body .site-header.mobile-menu-fixed .site-header__flag { visibility:hidden; }
  body .site-header.mobile-menu-fixed .primary-bar { background:transparent; }
  body .site-header.mobile-menu-fixed .site-navigation {
    top:50px;
    max-height:calc(100vh - 50px);
    max-height:calc(100dvh - 50px);
    padding:8px 20px calc(24px + env(safe-area-inset-bottom, 0px));
    background:rgba(17,17,17,.94);
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
  }
  body .site-header.mobile-menu-fixed .mobile-figma-services a { background:rgba(9,9,9,.7); }
  body .site-header.mobile-menu-fixed .mobile-figma-services a:first-child { padding-right:64px; }
  body .site-header.mobile-menu-fixed .nav-toggle {
    position:fixed; top:54px; right:8px; z-index:61;
    margin:0; transform:none;
  }
  body .site-header.is-mobile-sticky.mobile-menu-fixed .site-navigation {
    top:72px; max-height:calc(100vh - 72px); max-height:calc(100dvh - 72px);
  }
  body .site-header.is-mobile-sticky.mobile-menu-fixed .nav-toggle { top:76px; }
}
