
:root{ --bg:#ffffff; --fg:#111111; --muted:#444444; }
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family: Arial, sans-serif;
  font-size:12px; letter-spacing:.35px;
  text-transform: uppercase;
  
}
a{color:inherit;text-decoration:none}
a:hover{opacity:.9}
.wrap{width:100%; padding:0 32px; margin:0 auto;}
.muted{color:var(--muted)}
.noCaps{ text-transform:none; letter-spacing:0; }

/* HEADER */
.header{padding:18px 0 10px; background:#fff;}
.header__inner{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  align-items:end;
}
.brand{justify-self:start;}
.brand__logo{height:64px;width:auto;display:block;}
.nav{
  justify-self:center;
  display:flex;
  gap:22px;
  align-items:flex-end;
  padding-bottom:6px;
}
.nav a{color:var(--fg);opacity:.9}
.nav a.isActive{opacity:1}

/* MAIN */
main.section{ display:flex; flex-direction:column; justify-content:flex-start; padding:18px 0 0; }

/* GRID / TILES */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:12px;}
.tile{position:relative;display:block;border-radius:0;overflow:hidden;background:transparent;}
.tile img{width:100%;height:260px;object-fit:cover;display:block;}
.tile__overlay{
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  justify-content:flex-end;
  padding:16px; color:#fff;
  background:linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0));
}
.tile__title{margin:0;font-size:14px;letter-spacing:.6px;}
.tile__meta{margin:6px 0 0;font-size:11px;opacity:.92;}

/* HOME */
.homeTile img{height:425px;}
.tagline{
  margin:70px 0 0;
  color:var(--muted);
  font-size:15px;
  text-align:center;
}

/* TEAM */
.teamGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px;margin-top:12px;}
.teamCard img{width:100%;height:520px;object-fit:cover;display:block;}
.teamText{padding:10px 0 0;color:var(--fg);}
.teamText .name{margin:0 0 6px;font-size:14px;}
.teamText .quals{margin:0;font-size:11px;color:var(--muted);line-height:1.35;text-transform:none;letter-spacing:0;}

/* CONTACT */
.rule{height:1px;background:#111;opacity:.35;margin:14px 0 18px;}
.contactGrid{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:40px;
  align-items:start;
  margin:12px auto 0;
  max-width:75%;
}
.contactInfo p{margin:0 0 10px}
.form{display:grid;gap:14px;}
.nameRow{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
label{display:grid;gap:6px;color:var(--fg);}
input,textarea{
  border:1px solid #111;border-radius:0;
  padding:10px 10px; font:inherit;
  background:transparent; color:var(--fg);
  height:42px;
}
textarea{resize:none; min-height:130px; height:auto;}
.btn{justify-self:start;border:1px solid #111;border-radius:999px;padding:10px 18px;background:transparent;cursor:pointer;font:inherit;}
.small{font-size:10px;color:var(--muted)}

/* FOOTER */
.footer{ background:#fff; padding:16px 0; }
.footer__inner{display:grid;grid-template-columns:1fr 1.6fr 1fr;align-items:center;gap:12px;}
.footerLeft{justify-self:start; display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
.social{display:flex; gap:10px; align-items:center;}
.social a{display:inline-flex; padding:4px;}
.social img{width:22px;height:22px;}
.footerCenter{justify-self:center;text-align:center;}
.footerCenter .tiny{font-size:9px;line-height:1.25;text-transform:none;letter-spacing:0;color:var(--muted);}
.footerCenter a{display:inline-block;margin-top:6px;font-size:9px;text-transform:none;letter-spacing:0;color:var(--fg);text-decoration:underline;}
.footerRight{justify-self:end;display:flex;gap:14px;align-items:center;}
.footerRight img{height:56px;width:auto;display:block;filter:grayscale(1);}

/* MODAL */
.modal{position:fixed;inset:0;display:none;align-items:stretch;justify-content:stretch;background:rgba(0,0,0,.85);z-index:999;}
.modal.isOpen{display:flex;}
.modal__panel{ position:relative; }
.modal__img{width:100%;height:100%;object-fit:contain;background:transparent;}
.modal__wm{position:absolute;top:22px;left:22px;width:240px;opacity:.10;filter:brightness(2);}
.modal__close{position:absolute;top:18px;right:18px;width:44px;height:44px;background:transparent;border:0;cursor:pointer;}
.modal__close::before{content:"×";color:#fff;font-size:36px;line-height:44px;display:block;text-align:center;}

/* ABOUT */
.aboutWrap{max-width:980px;margin:0 auto;text-align:center;text-transform:none;letter-spacing:0;}
.aboutText{font-size:14px;line-height:1.55;color:#111;margin:0 auto;}
.aboutImg{width:100%;height:360px;object-fit:cover;margin-top:18px;}

/* commitment tiles height */
.commitTile img{height:425px;}

@media (max-width: 860px){
  body{overflow:auto;}
  main.section{height:auto; padding:18px 0 120px;}
  .footer{position:static;}
  .contactGrid{grid-template-columns:1fr; gap:22px; max-width:100%;}
  .homeTile img{height:320px;}
  .tile img{height:210px;}
  .teamCard img{height:320px;}
  .footer__inner{grid-template-columns:1fr; text-align:center;}
  .footerLeft,.footerRight{justify-self:center; justify-content:center;}
  .wrap{padding:0 18px;}
  .aboutImg{height:240px;}
}


/* --- PATCH v4 --- */

/* TEAM: reduce tiles by 50%, center grid, add side padding */
.teamGrid{
  max-width: 900px;
  margin: 12px auto 0;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
}
.teamCard img{
  height: 260px; /* 50% of 520px */
}
.teamText{
  text-align:left;
}

/* COMMITMENT: restore overlay labels and match style */
.commitTile .tile__overlay{
  background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0));
}
.commitTile .tile__title{font-size:14px;}
.commitTile .tile__meta{font-size:11px; opacity:.92;}

/* FOOTER: align facebook icon slightly higher */
.social a:first-child img{ transform: translateY(-2px); }

/* CONTACT: spacing and widths */
.contactGrid{
  max-width: 93.75%; /* 25% wider than 75% */
  column-gap: 70px;  /* more space between */
}
.contactInfo{ margin-top: 10px; } /* move details slightly down */
.rule{ display:none; } /* remove grey line under address */

/* HOME tagline: allow sentence case */
.tagline{
  text-transform:none;
  letter-spacing:0;
  font-size:15px;
}

/* MENU ORDER handled via HTML */


/* TEAM spacing update */
.teamGrid{
  gap:28px; /* more space between tiles */
  max-width:1000px;
  margin:20px auto 0;
}


/* Services / long pages */
.scrollPage{ overflow:auto !important; }


/* --- MOBILE TEAM SINGLE COLUMN --- */
@media (max-width: 860px){
  .teamGrid{
    grid-template-columns: 1fr !important;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
    gap: 18px;
  }
  .teamCard img{
    height: 320px;
  }
}


/* --- PRODUCTION STABLE LAYOUT PATCH --- */

/* Page layout: stable across Safari/Edge/iOS */
html, body{
  height: 100%;
}

body{
  /* override any previous overflow locking */
  overflow-x: hidden !important;
  overflow-y: auto !important;

  /* footer-sticky without position:fixed */
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* Main grows naturally; no height calc */
main.section,
main{
  height: auto !important;
  flex: 1 0 auto;
}

/* Footer: natural flow, no fixed positioning */
.footer{
  position: relative !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  margin-top: auto;
}

/* Modal: avoid iOS 100vh bugs */
.modal{
  align-items: center;
  justify-content: center;
}
.modal__panel{
  width: min(1100px, 96vw);
  height: min(800px, 88vh);
  background: transparent;
}
@supports (height: 100dvh){
  .modal__panel{ height: min(800px, 88dvh); }
}


/* --- HEADER CENTERING (CROSS-BROWSER) --- */
.headerSpacer{ justify-self:end; }

/* Mobile: stack nav under logo on ALL pages */
@media (max-width: 860px){
  .header__inner{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    row-gap:10px;
  }
  .nav{
    width:100%;
    justify-content:center !important;
    flex-wrap:wrap;
    padding-bottom:0 !important;
  }
  .headerSpacer{ display:none; }
}
