@font-face { font-family: 'HandelGo'; src: url('fonts/HandelGo.ttf') format('truetype'); font-display:swap }
html, body { margin:0px; padding:0px }
body { height:100dvh; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif }
p,li { font-size:125%; line-height:1.5; orphans:2; widows:2 }
li { margin-bottom: 1em }
a { font-size:100%; color:#26547C }
h1,h2 { font-size:150%; font-weight:normal; orphans:2; widows:2 }
h3 { font-size:150%; font-weight:700; line-height:200%; margin-bottom:1em; orphans:2; widows:2 }
.site-nav { grid-area:site-nav }
.header { grid-area:header }
.main { grid-area:main }
.twin-grid { grid-area:twin-grid }
.commitment { grid-area:commitment }
.footer { grid-area:footer }
.wrapper {
    background-color: #fff;
    color: #000000;
		height: 100vh;
		display: grid;
		grid-template-columns: 100%;
	  grid-template-rows: min-content min-content min-content 1fr min-content min-content;
    grid-gap: 0;
    grid-template-areas:
		 "site-nav"
		 "header" 
     "main"
		 "twin-grid"
		 "commitment"
     "footer"
  }
.skip-link {
  position: absolute;
  top: -40px; /* Hide off-screen */
  left: 0;
  background: #000;
  color: #fff;
  padding: 8px;
  z-index: 100;
}
.skip-link:focus {
  top: 0; /* Show on focus */
}
.site-nav { display: block }
.nav-logo {
  display: block;
  text-align: center;
  padding: 20px 16px 10px 16px;
  text-decoration: none;
}
.nav-logo img {
  display: block;
  margin: 0 auto;
  max-width: 300px; 
  height: auto;
}
.nav-logo span {
  display: block;
  margin-top: 6px;
  font-size: 1rem;
  font-weight: bold;
  color: #000000;
}
.nav-items {
  list-style: none;
  margin: 0;
  padding: 0;
}
.nav-items li { margin-bottom: 0px }
.nav-items li a {
  display: flex;
  align-items: center;     /* vertical centering — works at all sizes */
  justify-content: center; /* horizontal centering — mobile */
  min-height: 48px;        /* gives the button a consistent tap target height */
  padding: 0 16px;         /* remove top/bottom padding — flex handles the height now */
	text-decoration: none;
	border-top: 1px solid #000000;   /* ← top border on every item */
	color:#000000; 
}
.nav-items li a:hover { background-color:#000000; color:#ffffff }
.nav-items li a.selected {background-color:#000000; color:#ffffff }
.nav-items li:last-child a { border-bottom: 1px solid #000000 }

.header { background-color:#5c6b8a; padding:1rem; align-items:center; justify-items:center; box-shadow: inset 0 20px 20px -20px rgba(0,0,0,0.8); min-height:300px; display:flex; flex-direction:column; ;background-image:url("images/stairs.jpg"); background-size:cover }
.header h1 { font-family:'HandelGo', sans-serif; font-weight:300; font-size:225%; line-height:1; text-align:center; color:white; text-shadow: 2px 7px 6px #000000; text-shadow: 2px 2px 2px #000000, -1px 1px 2px #000000 }

.main { background-color:#ffffff; padding:10px; text-align:left }
.footer { background-color:#5c6b8a; color:#ffffff; text-align:center; padding:2rem; align-items:center; justify-items:center; box-shadow: inset 0 20px 20px -20px rgba(0,0,0,0.8) }
a[href^="tel:"] { color: #ffffff; text-decoration: none; font-weight: normal; pointer-events: auto }

/* ── Medium (tablet) ────────────────────────── */

@media (min-width: 700px) {
.site-nav { display: flex; flex-direction: column }
.nav-items {
    display: flex;
    flex-direction: row;
    justify-content: center;  /* centers the group of buttons horizontally */
    gap: 10px; 
    padding: 20px 20px; 
  }
.nav-items li {
    flex: 0 0 auto;          /* buttons are only as wide as their text, not stretched */
  }
.nav-items li a {
    border-top: none;
    padding: 0 20px; 
    text-align: center;
  }
.nav-items li a:hover { border-radius: 10px }
.nav-items li a.selected { border-radius: 10px }
.nav-items li:last-child a { border-bottom: none }
.main { padding:1rem }
}

/* ── Large (desktop) ────────────────────────── */

@media (min-width: 1200px) {
  .site-nav {
    display: flex;
		flex-direction: row;
    align-items: stretch;  /* change center to stretch */
    justify-content: space-between;
  }
  .nav-logo {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    text-align: left;
    padding: 20px 20px;
  }
  .nav-logo img { margin: 0 }
  .nav-logo span { margin-top: 0 }
  .nav-items {
    display: flex;
    flex-direction: row;
    align-items: stretch;  /* li elements fill the full nav height */
  }
  .nav-items li {
    display: flex;         /* li becomes a flex container */
    align-items: stretch;  /* passes full height to the <a> */
  }
  .nav-items li a {
    display: flex;
    align-items: center;   /* text is now centered within the full nav height */
    justify-content: center;
    border-top: none;
		white-space: nowrap;  /* prevents text from wrapping to a second line */
    padding: 0 16px;
    min-height: unset;     /* let the nav height drive the size, not min-height */
  }
.header { padding: 2rem }
.main { padding:2rem 4rem }
}