/* AESTHETIQUE responsive navigation and layout safeguards */
html, body { max-width: 100%; overflow-x: hidden; }
img, video, iframe { max-width: 100%; }
button, a { -webkit-tap-highlight-color: transparent; }
.bg-deep-charcoal { background-color: #1a1a1a !important; }
.about-feature-image { display:block; height:clamp(260px,42vw,620px); object-position:center 35%; filter:grayscale(100%); }
.home-feature-image { filter:grayscale(100%); object-position:center; }
.enquiry-feature-image { filter:grayscale(100%); }
.site-footer-inner { width:min(1320px,calc(100% - 80px)); margin:auto; display:grid; grid-template-columns:2fr 1fr 2fr; gap:40px; padding:70px 0 28px; }
.site-footer-title { display:block; font:400 30px/1 var(--serif, Georgia, serif); letter-spacing:-.04em; }
.site-footer-inner p { margin:18px 0 0; color:#646565; max-width:310px; font-size:14px; line-height:1.6; }
.site-footer-label { margin:0 0 18px !important; color:#1a1c1b !important; text-transform:uppercase; letter-spacing:.15em; font-size:10px !important; font-weight:700; }
.site-footer-links { display:flex; flex-direction:column; gap:10px; }
.site-footer-inner a { color:inherit; font-size:13px; text-decoration:none; }
.site-footer-inner a:hover { color:#0029ff; }
.site-footer-connect { text-align:right; }
.site-footer-copy { grid-column:1/-1; border-top:1px solid #dcdcd8; padding-top:22px; color:#646565; font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
@media(max-width:767px){ .site-footer-inner { width:calc(100% - 40px); grid-template-columns:1fr; gap:34px; padding:50px 0 24px; } .site-footer-connect { text-align:left; } .site-footer-copy { grid-column:auto; } .home-feature-image { display:none; } }
.text-off-white { color: #faf9f7 !important; }
.mobile-menu-toggle { display: none; }
.mobile-menu { display: none; }
@media (max-width: 767px) {
  nav { position: fixed; min-height: 76px; }
  nav > div { min-width: 0; }
  nav > div:first-child { gap: 12px; }
  nav > a:first-child, nav > div:first-child > a:first-child { min-width: 0; max-width: calc(100vw - 104px); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: clamp(1.15rem, 6vw, 1.5rem); }
  nav .desktop-menu, nav .desktop-cta { display: none !important; }
  nav .mobile-menu { display:none !important; position:absolute; top:100%; left:0; right:0; padding:18px 20px 22px; flex-direction:column; align-items:stretch; gap:0; background:#faf9f7; border-bottom:1px solid #e2e2e2; box-shadow:0 10px 24px rgba(26,28,27,.06); }
  nav.site-menu-open .mobile-menu { display:flex !important; }
  nav .mobile-menu a { display:block; width:100%; padding:12px 0; line-height:1.25; }
  nav .mobile-menu a:last-child { margin-top:8px; padding:14px 16px; text-align:center; background:#1a1a1a; color:#fff; }
  nav .mobile-menu-toggle { display:flex !important; flex:0 0 auto; width:42px; height:42px; align-items:center; justify-content:center; border:1px solid #e2e2e2; background:transparent; color:#1a1a1a; }
  nav button { cursor:pointer; }
  nav .menu-icon, nav .menu-icon i { display:block; }
  nav .menu-icon { width:20px; height:16px; position:relative; }
  nav .menu-icon i { position:absolute; left:0; width:20px; height:2px; background:currentColor; transition:transform .2s ease, top .2s ease; }
  nav .menu-icon i:nth-child(1) { top:0; }
  nav .menu-icon i:nth-child(2) { top:7px; }
  nav .menu-icon i:nth-child(3) { top:14px; }
  nav.site-menu-open .menu-icon i:nth-child(1) { top:7px; transform:rotate(45deg); }
  nav.site-menu-open .menu-icon i:nth-child(2) { opacity:0; }
  nav.site-menu-open .menu-icon i:nth-child(3) { top:7px; transform:rotate(-45deg); }
  main { max-width:100%; overflow-x:hidden; }
  h1 { overflow-wrap:anywhere; }
  input, select, textarea { max-width:100%; }
}
