:root{
  --bg:#dedede;
  --text:#171a1f;
  --muted:#6e737d;
  --blue:#1e3fa3;
  --button:#073d4c;
  --white:#ffffff;
}

*{box-sizing:border-box}

html,body{margin:0;min-height:100%}

body{
  font-family:'Noto Sans Thai', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background:var(--bg);
  color:var(--text);
}

.page{
  min-height:100vh;
  display:flex;
  justify-content:center;
  padding:56px 20px 42px;
}

.hero{
  width:min(100%, 1120px);
  text-align:center;
}

.logo{
  width:min(380px, 78vw);
  height:auto;
  display:block;
  margin:0 auto 14px;
}

h1{
  margin:0 0 24px;
  font-size:clamp(18px, 2.4vw, 24px);
  line-height:1.35;
  font-weight:800;
  letter-spacing:.01em;
}

.services{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:24px;
  width:min(720px, 100%);
  margin:0 auto 44px;
  align-items:start;
}

.service-card h2{
  margin:0 0 13px;
  font-size:20px;
  line-height:1.2;
  font-weight:800;
}

.icon-wrap{
  width:96px;
  height:96px;
  border-radius:999px;
  background:var(--white);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto;
  overflow:hidden;
}

.icon-wrap img{
  width:74px;
  height:74px;
  object-fit:contain;
  display:block;
}

.contact{
  margin:0 auto 18px;
  color:#59606a;
  font-size:18px;
  line-height:1.5;
  font-weight:400;
}

.contact span{color:#2f5865;margin:0 8px}

.map-box{
  width:100%;
  border-radius:32px 32px 0 0;
  overflow:hidden;
  line-height:0;
  margin:0 auto 18px;
}

.map-box img{
  width:100%;
  height:216px;
  object-fit:cover;
  display:block;
}

.map-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-width:280px;
  padding:13px 24px;
  border-radius:4px;
  background:var(--button);
  color:#fff;
  text-decoration:none;
  font-size:17px;
  line-height:1.3;
  font-weight:500;
  transition:transform .2s ease, opacity .2s ease;
}

.map-button:hover{transform:translateY(-1px);opacity:.92}

footer{
  margin-top:22px;
  color:#7a7f87;
  font-size:13px;
  line-height:1.65;
  font-weight:400;
}

footer p{margin:0}
.copyright{margin-top:14px;color:#888d95}

@media (max-width: 760px){
  .page{padding-top:36px}
  .services{grid-template-columns:repeat(3,1fr);gap:22px 14px;margin-bottom:34px}
  .contact{font-size:15px;max-width:520px}
  .contact span{display:none}
  .map-box{border-radius:20px 20px 0 0}
  .map-box img{height:190px}
}

@media (max-width: 480px){
  .logo{width:min(320px, 86vw)}
  .services{grid-template-columns:repeat(2,1fr)}
  .service-card h2{font-size:18px}
  .icon-wrap{width:86px;height:86px}
  .icon-wrap img{width:66px;height:66px}
  .map-button{width:100%;min-width:0}
  footer{font-size:12px}
}
