:root{
  --teal:#23b8ab;
  --coral:#f05b46;
  --black:#111;
  --muted:#666;
  --max-width:1100px;
  --logo-line:3.8px;
  --white-border:8px;
  --mobile-gutter:1.5rem;
}
*{box-sizing:border-box}
html,body{height:100%}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;line-height:1.5;margin:0;color:var(--black);background:#fff}

/* Header / nav */
.site-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;max-width:var(--max-width);margin:0 auto;border-bottom:var(--logo-line) solid #000;gap:1rem;position:relative;z-index:10}
.brand{display:flex;align-items:center;gap:0.75rem}
.logo{width:144px;max-width:28vw;height:auto;display:block}
.brand-text{display:none}
.brand-text h1{margin:0;font-size:1.25rem}
.brand-text .sub{margin:0;color:var(--muted);font-size:0.9rem}
.nav{display:flex;align-items:center;gap:1rem}
.nav a{margin-left:0;text-decoration:none;color:var(--black);font-weight:600;padding:.35rem .5rem;border-radius:4px}

.nav-toggle{display:none;border:0;background:transparent;padding:0;width:44px;height:34px;position:relative;cursor:pointer;font-size:0;line-height:0;overflow:hidden;color:transparent}
.nav-toggle::before{content:"";position:absolute;left:50%;top:50%;width:26px;height:4px;background:#000;transform:translate(-50%,-50%);box-shadow:0 -9px 0 #000,0 9px 0 #000;border-radius:2px}

/* Hero */
.hero{background:var(--teal);color:#000;padding:4rem 2.5rem 3rem;text-align:center;margin:1.25rem auto;max-width:var(--max-width);border:var(--logo-line) solid #000}
.hero h2{font-size:2.25rem;margin:0 0 .5rem}
.cta{display:inline-block;margin-top:0.75rem;background:#000;color:#fff;padding:.6rem 1rem;border-radius:6px;text-decoration:none}

/* Services grid */
.services-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;max-width:var(--max-width);margin:1rem auto;padding:0 1rem}
.services-preview article{background:#fff;border:1px solid #ddd;padding:1rem;border-radius:6px;text-align:center}

/* Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;max-width:var(--max-width);margin:1rem auto;padding:0 1rem}
.gallery-item img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:6px;display:block}
.muted{color:var(--muted);font-size:.95rem}

.container{max-width:var(--max-width);margin:1rem auto;padding:0 1rem}
.about-preview{text-align:center}
.site-footer{text-align:center;padding:1rem;color:var(--muted);border-top:1px solid #eee;margin-top:2rem}

.footer-logos{display:flex;align-items:center;gap:1rem;justify-content:center;margin-top:.5rem}
.footer-logos img{display:block}
.footer-logos img.logo-small{width:90px;height:auto}
.socials{display:flex;gap:.6rem;align-items:center}
.socials a{display:inline-block}
.socials img{width:28px;height:auto;opacity:.9;display:block}
.socials a:hover img{opacity:1}

/* Forms */
.contact-form{max-width:600px}
.contact-form label{display:block;margin-top:0.75rem;font-weight:600}
.contact-form input,.contact-form textarea{width:100%;padding:.6rem;border:1px solid #ccc;border-radius:4px;margin-top:.25rem}
.contact-form button{margin-top:.75rem;background:var(--coral);color:#fff;padding:.6rem 1rem;border:none;border-radius:6px}

/* Images fluid */
img{max-width:100%;height:auto}

/* Map */
.map-wrap{max-width:var(--max-width);margin:1rem auto;padding:0 1rem}
.map-wrap iframe{width:100%;height:360px;border:0;border-radius:8px}

/* Small screens: collapse nav behind toggle */
@media (max-width:780px){
  .site-header{align-items:center}
  .nav{position:absolute;top:calc(100% + var(--logo-line));left:0;right:0;background:#fff;flex-direction:column;gap:0;padding:.5rem 1.5rem;display:none;z-index:1000;box-shadow:0 8px 18px rgba(0,0,0,0.08)}
  .nav a{padding:.65rem 0;border-top:none}
  .nav.show{display:flex}
  .nav-toggle{display:inline-block}
  .logo{width:132px}
  .hero{padding:2.25rem 2rem; outline:var(--white-border) solid #fff; outline-offset:0; width: calc(100% - (2 * var(--mobile-gutter))); max-width: none; margin: 1.25rem auto;}
  .hero h2{font-size:1.4rem}
  .services-preview{padding:0 1.5rem}
  .container{padding:0 1.5rem}
  .map-wrap{padding:0 1.5rem}
}

@media (max-width:420px){
  .logo{width:108px}
  .brand-text h1{font-size:1rem}
  .hero{padding:1.5rem 1.5rem; width: calc(100% - (2 * 1.25rem));}
  .services-preview{padding:0 1.25rem}
  .container{padding:0 1.25rem}
  .map-wrap{padding:0 1.25rem}
}

@media (max-width:360px){
  .map-wrap iframe{height:260px}
}

