:root { --ink: #161616; --olive: #8a8350; --brown: #3d3522; --line: #ddd; }
* { box-sizing: border-box; }
body { margin: 0; background: #fff; color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
.page { width: min(100% - 32px, 900px); margin: 0 auto; }
img { display: block; width: 100%; height: 100%; object-fit: cover; }

.masthead { display: grid; grid-template-columns: repeat(4, 1fr) 5fr; gap: 6px; padding-top: 4px; }
.flower, .project { background: #eee; color: #666; font-size: 12px; overflow: hidden; }
.flower { aspect-ratio: 96 / 160; }
.logo { display: block; margin-left: 2px; }
.logo img { height: auto; }

nav { display: flex; justify-content: space-around; flex-wrap: wrap; gap: 4px 12px; margin-top: 10px; padding: 8px 12px; background: var(--ink); }
nav a { color: var(--olive); font-size: 19px; text-decoration: none; }
nav a[aria-current="page"], nav a:hover, nav a:focus { color: #fff; }

.intro { position: relative; margin-top: 6px; padding: 24px 24px 40px 110px; text-align: center; box-shadow: 0 6px 14px rgba(0,0,0,.5); }
.side-logo { position: absolute; left: 14px; top: 32px; width: 84px; height: auto; }
h1, h2 { font-size: 25px; line-height: 1.2; margin: 8px 0 24px; }
h2 { font-size: 23px; }
.tagline { font-size: 21px; font-weight: 700; margin: 0 0 22px; }
.services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px 16px; max-width: 500px; margin: 0 auto; padding: 0; list-style: none; color: var(--olive); font-size: 21px; font-weight: 700; }

.contact-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 32px 70px 24px; color: var(--brown); font-size: 20px; }
.contact-row a { color: inherit; text-decoration: none; }
.phone { text-align: center; }
.social { display: flex; gap: 18px; }
.social img { width: 40px; height: 40px; object-fit: contain; }

.projects { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.project { aspect-ratio: 220 / 165; }

footer { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 20px; margin: 10px 0 24px; padding: 9px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 700; }

.services-panel { display: grid; grid-template-columns: 90px 1fr; margin-top: 6px; padding: 36px 16px 60px; background: var(--ink); color: #fff; box-shadow: 0 6px 14px rgba(0,0,0,.5); }
.services-panel h1 { justify-self: center; align-self: start; margin: 0; color: var(--olive); }
.service-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 60px 16px; margin: 0; padding: 12px 0 0; list-style: none; text-align: center; font-size: 21px; }

.service-list a { color: inherit; text-decoration: none; }
.service-list a:hover, .service-list a:focus { color: var(--olive); text-decoration: underline; }

.gallery-panel { display: grid; grid-template-columns: 90px 1fr; margin-top: 6px; padding: 24px 16px 60px; box-shadow: 0 6px 14px rgba(0,0,0,.5); }
.gallery-panel h1 { justify-self: center; align-self: start; margin: 0; }
.gallery-panel h2 { margin: 24px 0 8px; font-size: 16px; font-weight: 400; }
.gallery-panel section:first-child h2 { margin-top: 0; }
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0; padding: 0; list-style: none; }
.gallery-grid a { display: block; aspect-ratio: 180 / 140; background: #eee; }
.gallery-grid a:hover img, .gallery-grid a:focus img { opacity: .8; }
.gallery-grid img { width: 100%; height: 100%; }

.lightbox { width: 100vw; max-width: none; height: 100vh; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(0,0,0,.92); color: #fff; }
.lightbox img { position: absolute; inset: 44px 56px; width: calc(100% - 112px); height: calc(100% - 88px); object-fit: contain; }
.lightbox button { position: absolute; border: 0; background: none; color: #fff; font: 700 32px/1 Arial, Helvetica, sans-serif; padding: 12px; cursor: pointer; }
.lightbox .close { top: 0; right: 4px; }
.lightbox .prev { left: 4px; top: 50%; transform: translateY(-50%); }
.lightbox .next { right: 4px; top: 50%; transform: translateY(-50%); }

.page-title img { display: block; width: auto; height: auto; }
.page-title span { display: none; }
.links-panel { display: grid; grid-template-columns: 90px 1fr; min-height: 380px; margin-top: 6px; padding: 36px 16px 48px; box-shadow: 0 6px 14px rgba(0,0,0,.5); }
.links-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; font-size: 14px; font-weight: 700; text-align: center; }
.links-grid p { margin: 0 0 8px; line-height: 1.4; }
.links-grid a { display: block; }
.links-grid img { width: auto; height: auto; max-width: 100%; margin: 0 auto; }
.mlsa { margin-top: 20px; } .mlsa img { width: 271px; }
.find-us { margin-top: 44px; } .find-us img { width: 138px; }
.find-us + .find-us img { width: 200px; }
footer a { color: inherit; }

.contact-panel h1 { justify-self: center; align-self: start; margin: 0; color: var(--olive); }
.contact-form { max-width: 665px; }
.contact-form h2 { margin: 0 0 20px 72px; font-size: 22px; font-weight: 400; }
.contact-form fieldset { margin: 0; padding: 0; border: 0; }
.contact-form label { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 700; }
.contact-form input, .contact-form textarea { display: block; width: 100%; margin-bottom: 20px; padding: 7px 9px; border: 1px solid #999; border-radius: 4px; background: #fff; color: var(--ink); font: 16px Arial, Helvetica, sans-serif; }
.contact-form input { height: 30px; }
.contact-form textarea { height: 90px; resize: vertical; }
.contact-form button { padding: 20px; border: 1px solid var(--olive); background: none; color: #fff; font: 18px Arial, Helvetica, sans-serif; cursor: pointer; }
.contact-form button:hover, .contact-form button:focus { background: var(--olive); }
.contact-form button:disabled { opacity: .5; cursor: not-allowed; background: none; }
.form-note { margin: 0 0 20px; color: #fff; font-size: 15px; line-height: 1.4; }
.form-note a { color: inherit; font-weight: 700; }

@media (max-width: 640px) {
  .contact-form h2 { margin-left: 0; text-align: center; font-size: 19px; }
  .page-title img { display: none; }
  .page-title span { display: inline; }
  .links-panel { display: block; padding: 20px 16px 28px; }
  .links-panel h1 { font-size: 40px; text-align: center; margin: 0 0 16px; }
  .links-grid { grid-template-columns: 1fr; }
  .find-us { margin-top: 24px; }
  .gallery-panel { display: block; padding: 20px 12px 28px; }
  .gallery-panel h1 { font-size: 40px; text-align: center; margin-bottom: 16px; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .lightbox img { inset: 44px 8px; width: calc(100% - 16px); }
  .lightbox .prev, .lightbox .next { top: auto; bottom: 0; transform: none; }
  .services-panel { display: block; padding: 24px 16px 32px; }
  .services-panel h1 { font-size: 40px; text-align: center; margin-bottom: 16px; }
  .service-list { grid-template-columns: 1fr; gap: 16px; font-size: 19px; }
  .masthead { grid-template-columns: repeat(4, 1fr); }
  .logo { grid-column: 1 / -1; grid-row: 1; margin: 8px 0; }
  nav a { font-size: 16px; }
  .intro { padding: 20px 16px 28px; }
  .side-logo { display: none; }
  h1 { font-size: 21px; }
  h2 { font-size: 18px; }
  .tagline, .services { font-size: 17px; }
  .services { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .contact-row { padding: 24px 8px; }
  .projects { grid-template-columns: repeat(2, 1fr); }
}
