:root{
  --bg:#f6f8fb; --card:#ffffff; --text:#0b0d10; --muted:#5a6777;
  --accent:#2a7cf7; --border:#e6e8ef; --radius:14px; --shadow:0 8px 24px rgba(0,0,0,.08);
  --maxw: 1120px;
  --fs-1: clamp(1.7rem, 2.8vw + 1rem, 3rem);
  --fs-2: clamp(1.25rem, 1.4vw + .9rem, 1.75rem);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial,sans-serif;scroll-behavior:smooth}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
img{display:block}
h1{font-size:var(--fs-1);line-height:1.1;margin:0 0 .6rem}
h2{font-size:var(--fs-2);line-height:1.2;margin:0 0 .6rem}
h3{line-height:1.2;margin:0 0 .6rem}
p{margin:.4rem 0 1rem}
.small{font-size:.9rem}
.muted{color:var(--muted)}
.site-header{position:sticky;top:0;z-index:50;display:flex;gap:.6rem;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#ffffffd9;backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--border)}
.logo{display:flex;align-items:center;gap:.6rem;font-weight:700;color:var(--text);cursor:pointer}
.nav.simple{display:flex;gap:.6rem;flex-wrap:wrap}
.nav.simple a{padding:.45rem .7rem;border-radius:8px}
.nav.simple a:hover{background:var(--card)}
.hero{padding:8vh 1rem 6vh;max-width:900px;margin:0 auto;text-align:center}
.lead{color:var(--muted);font-size:1.06rem}
.cta-row{display:flex;gap:.8rem;justify-content:center;margin-top:1rem;flex-wrap:wrap}
.btn{display:inline-block;border:1px solid var(--border);padding:.75rem 1.05rem;border-radius:999px;background:transparent;color:var(--text);touch-action:manipulation}
.btn.primary{background:var(--accent);color:#fff;border-color:transparent}
section{padding:3.5vh 1rem}
.card-grid,.features,.portfolio,.contact{max-width:var(--maxw);margin:0 auto}
.card-grid .grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}
.features-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:1rem 0}
.feature{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}
.portfolio .grid.one-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.tags{display:flex;gap:.4rem;list-style:none;padding:0;margin:.6rem 0 0}
.tags li{padding:.25rem .6rem;border:1px solid var(--border);border-radius:999px}

/* Single wide contact card */
.contact .contact-wide{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow);
  display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center}
.brand{display:flex;align-items:center;gap:.6rem}
.brand-name{font-weight:800;font-size:1.15rem}
.contact-list p{margin:.2rem 0}

/* Footer */
.site-footer{padding:2rem 1rem;text-align:center;color:var(--muted);border-top:1px solid var(--border)}

/* Back-to-top button */
.to-top{position:fixed;right:16px;bottom:16px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--text);padding:.6rem .75rem;display:none;z-index:100}

/* For extra small screens: allow horizontal scroll but keep one-row look */
@media (max-width: 560px){
  .card-grid .grid, .features-list, .portfolio .grid.one-row{
    grid-auto-flow:column;
    grid-auto-columns:minmax(260px,1fr);
    grid-template-columns:none;
    overflow-x:auto; padding-bottom:.5rem; scroll-snap-type:x mandatory;
  }
  .card, .feature{scroll-snap-align:start;min-width:260px}
  .contact .contact-wide{grid-template-columns:1fr; justify-items:start}
}
