/* =========================================================
   LUMIERE ARC — GLOBAL STYLES
   Shared across all pages
   ========================================================= */

:root {

      --cream: #f3eee7;
      --cream-light: #faf7f2;
      --cream-deep: #e7ded1;

      --charcoal: #312d28;
      --charcoal-soft: #5b554e;

      --brass: #a8792a;
      --brass-light: #c59845;
      --brass-dark: #805b20;

      --dark-panel: #51483c;
      --dark-panel-deep: #40392f;

      --line: rgba(125, 95, 48, 0.17);

      --serif:
        "Cormorant Garamond",
        Georgia,
        "Times New Roman",
        serif;

      --sans:
        "Montserrat",
        Arial,
        sans-serif;

      --max-width: 1920px;

    }

* {
      box-sizing: border-box;
    }

html {
      scroll-behavior: smooth;
    }

body {

      margin: 0;

      min-height: 100vh;

      background: #eee9e2;

      color: var(--charcoal);

      font-family: var(--sans);

      overflow-x: hidden;

    }

img {

      display: block;

      max-width: 100%;

    }

a {

      color: inherit;

      text-decoration: none;

    }

button {
      font: inherit;
    }

.site-shell {

      position: relative;

      width:
        min(
          calc(100% - 24px),
          var(--max-width)
        );

      margin: 12px auto;

      background: var(--cream-light);

      border:
        1px solid
        rgba(168, 121, 42, 0.72);

      overflow: hidden;

      box-shadow:
        0 8px 35px
        rgba(49, 42, 32, 0.08);

    }

.site-header {

      position: absolute;

      top: 0;
      left: 0;

      z-index: 50;

      width: 100%;

      padding:
        28px
        clamp(32px, 4vw, 78px);

      display: grid;

      grid-template-columns:
        200px
        1fr
        160px;

      align-items: start;

      gap: 25px;

      isolation: isolate;

    }

.site-header::before {

      content: "";

      position: absolute;

      top: 0;
      left: 0;

      z-index: 0;

      width: 100%;
      height: 135px;

      pointer-events: none;

      background:
        linear-gradient(
          180deg,
          rgba(250, 247, 242, 0.72) 0%,
          rgba(250, 247, 242, 0.48) 35%,
          rgba(250, 247, 242, 0.20) 68%,
          rgba(250, 247, 242, 0) 100%
        );

    }

.site-header > * {

      position: relative;

      z-index: 1;

    }

.brand {

      width: 200px;

      transition:
        transform 0.3s ease,
        opacity 0.3s ease;

    }

.brand:hover {

      transform: translateY(-2px);

      opacity: 0.92;

    }

.brand img {

      width: 100%;

      height: auto;

    }

.main-nav {

      display: flex;

      justify-content: center;

      align-items: flex-start;

      gap:
        clamp(
          24px,
          3.3vw,
          58px
        );

      padding-top: 18px;

    }

.main-nav > a,
    .nav-dropdown {

      height: 30px;

      display: flex;

      align-items: flex-start;

    }

.main-nav > a,
    .nav-dropdown > .nav-dropdown-trigger {

      position: relative;

      padding:
        0 0 15px;

      color: #48423c;

      font-size: 11px;

      font-weight: 500;

      line-height: 1;

      letter-spacing: 0.075em;

      text-transform: uppercase;

      white-space: nowrap;

      text-shadow: none;

    }

.main-nav > a::after,
    .nav-dropdown > .nav-dropdown-trigger::after {

      content: "";

      position: absolute;

      left: 50%;
      bottom: 4px;

      width: 0;
      height: 1px;

      background: var(--brass);

      transform: translateX(-50%);

      transition: width 0.3s ease;

    }

.main-nav > a:hover,
    .nav-dropdown:hover > .nav-dropdown-trigger,
    .nav-dropdown:focus-within > .nav-dropdown-trigger {
      color: var(--brass);
    }

.main-nav > a:hover::after,
    .nav-dropdown:hover > .nav-dropdown-trigger::after,
    .nav-dropdown:focus-within > .nav-dropdown-trigger::after {
      width: 100%;
    }

.main-nav > a.active {
      color: var(--brass-dark);
    }

.main-nav > a.active::after {
      width: 40px;
    }

.nav-dropdown {

      position: relative;

    }

.nav-dropdown-trigger {

      display: flex;

      align-items: flex-start;

      gap: 7px;

    }

.nav-dropdown-trigger::before {

      content: "";

      position: absolute;

      top: 100%;
      left: -30px;

      width: 150px;
      height: 35px;

    }

.nav-arrow {

      width: 6px;
      height: 6px;

      margin-top: 1px;

      border-right:
        1px solid
        currentColor;

      border-bottom:
        1px solid
        currentColor;

      transform:
        rotate(45deg);

      transition:
        transform 0.25s ease;

    }

.nav-dropdown:hover .nav-arrow,
    .nav-dropdown:focus-within .nav-arrow {

      transform:
        translateY(3px)
        rotate(225deg);

    }

.services-dropdown {

      position: absolute;

      top: calc(100% + 18px);
      left: 50%;

      width:
        min(
          720px,
          78vw
        );

      padding: 26px 30px 28px;

      display: grid;

      grid-template-columns:
        repeat(3, 1fr);

      gap: 30px;

      background:
        rgba(250, 247, 242, 0.985);

      border:
        1px solid
        rgba(168, 121, 42, 0.35);

      box-shadow:
        0 18px 45px
        rgba(49, 42, 32, 0.14);

      opacity: 0;

      visibility: hidden;

      pointer-events: none;

      transform:
        translate(-50%, 8px);

      transition:
        opacity 0.25s ease,
        visibility 0.25s ease,
        transform 0.25s ease;

    }

.nav-dropdown:hover .services-dropdown,
    .nav-dropdown:focus-within .services-dropdown {

      opacity: 1;

      visibility: visible;

      pointer-events: auto;

      transform:
        translate(-50%, 0);

    }

.dropdown-group {

      min-width: 0;

    }

.dropdown-heading {

      margin:
        0 0 12px;

      padding-bottom: 9px;

      border-bottom:
        1px solid
        rgba(168, 121, 42, 0.22);

      color: var(--brass);

      font-family: var(--serif);

      font-size: 16px;

      font-weight: 500;

      letter-spacing: 0.08em;

      text-transform: uppercase;

    }

.dropdown-group a {

      position: relative;

      width: 100%;

      padding:
        7px 0;

      display: block;

      color: #514b44;

      font-size: 9.5px;

      font-weight: 400;

      line-height: 1.4;

      letter-spacing: 0.035em;

      text-transform: none;

      white-space: normal;

      text-shadow: none;

      transition:
        color 0.2s ease,
        transform 0.2s ease;

    }

.dropdown-group a::after {
      display: none;
    }

.dropdown-group a:hover {

      color: var(--brass);

      transform:
        translateX(3px);

    }

.dropdown-all-services {

      grid-column: 1 / -1;

      margin-top: 2px;

      padding-top: 17px;

      border-top:
        1px solid
        rgba(168, 121, 42, 0.22);

      text-align: center;

    }

.dropdown-all-services a {

      color: var(--brass-dark);

      font-size: 9px;

      font-weight: 500;

      letter-spacing: 0.1em;

      text-transform: uppercase;

    }

.dropdown-all-services a:hover {

      color: var(--brass);

    }

.mobile-services-toggle {

      display: none;

    }

.header-contact {

      justify-self: end;

      width: 145px;
      height: 45px;

      margin-top: 6px;

      display: flex;

      align-items: center;

      justify-content: center;

      border:
        1px solid
        rgba(168, 121, 42, 0.82);

      background:
        rgba(250, 247, 242, 0.62);

      backdrop-filter:
        blur(6px);

      -webkit-backdrop-filter:
        blur(6px);

      box-shadow:
        0 3px 14px
        rgba(49, 42, 32, 0.055);

      color: var(--brass-dark);

      font-size: 11px;

      font-weight: 500;

      letter-spacing: 0.12em;

      text-transform: uppercase;

      text-shadow: none;

      transition:
        background 0.25s ease,
        color 0.25s ease;

    }

.header-contact:hover {

      background: var(--brass);

      color: #ffffff;

    }

.menu-toggle {

      display: none;

      width: 44px;
      height: 44px;

      padding: 10px;

      border:
        1px solid
        rgba(168, 121, 42, 0.55);

      background:
        rgba(250, 247, 242, 0.75);

      cursor: pointer;

    }

.menu-toggle span {

      display: block;

      width: 100%;

      height: 1px;

      margin: 5px 0;

      background: var(--charcoal);

    }

.site-footer {

      min-height: 52px;

      padding:
        0
        clamp(32px, 6vw, 120px);

      display: flex;

      align-items: center;

      justify-content: space-between;

      gap: 24px;

      background: var(--dark-panel-deep);

      color:
        rgba(255, 255, 255, 0.78);

    }

.copyright {

      font-size: 8px;

      letter-spacing: 0.04em;

      text-transform: uppercase;

    }

.social-links {

      display: flex;

      align-items: center;

      gap: 20px;

    }

.social-links a {

      width: 17px;
      height: 17px;

      display: flex;

      align-items: center;

      justify-content: center;

      color:
        rgba(255, 255, 255, 0.82);

    }

.social-links svg {

      width: 16px;
      height: 16px;

      fill: none;

      stroke: currentColor;

      stroke-width: 1.35;

    }

.reveal {

      opacity: 0;

      transform:
        translateY(18px);

      transition:
        opacity 0.8s ease,
        transform 0.8s ease;

    }

.reveal.visible {

      opacity: 1;

      transform:
        translateY(0);

    }

@media (max-width: 1200px) {

.site-header {

        grid-template-columns:
          160px 1fr 135px;

        padding:
          24px 34px;

      }

.brand {
        width: 125px;
      }

.main-nav {
        gap: 22px;
      }

.main-nav > a,
      .nav-dropdown > .nav-dropdown-trigger {
        font-size: 9.5px;
      }

.services-dropdown {
        width: 650px;
      }

.header-contact {

        width: 125px;
        height: 43px;

        font-size: 9px;

      }

.site-footer {

        padding:
          0 34px;

      }

}

@media (max-width: 900px) {

.site-shell {

        width:
          calc(100% - 10px);

        margin:
          5px auto;

      }

.site-header {

        grid-template-columns:
          1fr auto;

        align-items: center;

        padding:
          18px 22px;

      }

.site-header::before {

        height: 105px;

        background:
          linear-gradient(
            180deg,
            rgba(250, 247, 242, 0.76) 0%,
            rgba(250, 247, 242, 0.40) 58%,
            rgba(250, 247, 242, 0) 100%
          );

      }

.brand {
        width: 105px;
      }

.header-contact {
        display: none;
      }

.menu-toggle {
        display: block;
      }

.main-nav {

        position: fixed;

        top: 0;
        right: 0;

        z-index: 60;

        width:
          min(
            330px,
            86vw
          );

        height: 100vh;

        padding:
          100px 34px 34px;

        flex-direction: column;

        align-items: flex-start;

        justify-content: flex-start;

        gap: 0;

        background:
          rgba(249, 246, 241, 0.985);

        transform:
          translateX(110%);

        transition:
          transform 0.4s ease;

        overflow-y: auto;

      }

.main-nav.open {
        transform: translateX(0);
      }

.main-nav > a,
      .nav-dropdown {

        width: 100%;
        height: auto;

      }

.main-nav > a {

        padding:
          15px 0;

      }

.nav-dropdown {

        display: block;

      }

.nav-dropdown-trigger {

        width: 100%;

        padding:
          15px 0;

        justify-content: space-between;

        align-items: center;

      }

.nav-dropdown-trigger::before {
        display: none;
      }

.nav-arrow {
        display: none;
      }

.mobile-services-toggle {

        display: flex;

        position: absolute;

        top: 6px;
        right: 0;

        width: 38px;
        height: 38px;

        padding: 0;

        align-items: center;

        justify-content: center;

        border: none;

        background: transparent;

        color: var(--brass);

        font-size: 20px;

        font-weight: 300;

        cursor: pointer;

        transition:
          transform 0.25s ease;

      }

.nav-dropdown.mobile-open
      .mobile-services-toggle {

        transform:
          rotate(45deg);

      }

.services-dropdown {

        position: static;

        width: 100%;

        max-height: 0;

        padding: 0;

        display: block;

        overflow: hidden;

        background: transparent;

        border: none;

        box-shadow: none;

        opacity: 1;

        visibility: visible;

        pointer-events: auto;

        transform: none;

        transition:
          max-height 0.4s ease,
          padding 0.4s ease;

      }

.nav-dropdown:hover
      .services-dropdown,
      .nav-dropdown:focus-within
      .services-dropdown {

        transform: none;

      }

.nav-dropdown.mobile-open
      .services-dropdown {

        max-height: 800px;

        padding:
          4px 0 18px 14px;

      }

.dropdown-group {

        margin-top: 17px;

      }

.dropdown-heading {

        margin-bottom: 5px;

        padding-bottom: 6px;

        font-size: 14px;

      }

.dropdown-group a {

        padding:
          8px 0;

        font-size: 9.5px;

      }

.dropdown-all-services {

        margin-top: 15px;

        padding-top: 14px;

        text-align: left;

      }

.site-footer {

        min-height: 76px;

        padding: 20px 24px;

        flex-direction: column;

        justify-content: center;

        gap: 14px;

        text-align: center;

      }

}
