/* Base */
:root{
  --bg:#ffffff;
  --text:#161616;
  --muted:#6b7280;
  --border:#e5e7eb;
  --accent:#f3c7d1;        /* soft rose */
  --accent-strong:#e8a9b9; /* hover */
  --navy:#0A2A43;          /* subtle headings if needed */
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
}
img{ max-width:100%; height:auto; display:block; }

.container{
  width:min(1100px, 92%);
  margin-inline:auto;
}

/* Header / Nav */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,0.9);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--border);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:0.8rem 0;
}
.logo{ font-weight:700; text-decoration:none; color:var(--text); letter-spacing:0.2px; }
.logo-light{ color:var(--muted); font-weight:600; }
.logo.small{ font-size:0.95rem; }

.nav-list{
  margin:0; padding:0; list-style:none;
  display:flex; gap:1rem; align-items:center;
}
.nav-list a{
  text-decoration:none; color:var(--text);
  padding:0.45rem 0.6rem; border-radius:6px;
}
.nav-list a:hover, .nav-list a:focus{ background:var(--border); outline:0; }

/* Buttons */
.btn{
  display:inline-block;
  padding:0.6rem 0.9rem;
  border-radius:8px;
  text-decoration:none;
  font-weight:600;
}
.btn-cta{
  background:var(--text); color:#fff;
}
.btn-cta:hover, .btn-cta:focus{ opacity:0.9; }
.btn-primary{
  background:var(--accent);
  color:#1b1b1b;
  border:1px solid #f0b8c6;
}
.btn-primary:hover, .btn-primary:focus{
  background:var(--accent-strong);
  border-color:var(--accent-strong);
}

/* Hero */
.hero{
  border-bottom:1px solid var(--border);
  background:linear-gradient(180deg, #fff, #fff0f4 70%, #fff 100%);
}
.hero-inner{
  display:grid; gap:2rem; align-items:center;
  grid-template-columns: 1.1fr 1fr;
  padding:3rem 0 2.5rem;
}
.hero-copy h1{
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  line-height:1.2; margin:0 0 0.6rem 0;
}
.tagline{ color:var(--muted); font-size:1.05rem; margin:0 0 1.2rem; }
.hero-visual img{ border-radius:14px; }

/* Sections */
.section{ padding:3rem 0; }
.section-alt{ background:#faf7f9; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.section-title{
  margin:0 0 0.4rem;
  font-size: clamp(1.4rem, 3vw, 2rem);
}
.section-intro, .lead{ color:var(--muted); max-width:62ch; }

/* Grids / Cards */
.grid{
  display:grid; gap:1rem;
}
.services{
  grid-template-columns: repeat(4, 1fr);
  margin-top:1.2rem;
}
.card{
  border:1px solid var(--border);
  border-radius:12px; padding:1rem;
  background:#fff;
}
.card h3{ margin:0.3rem 0 0.3rem; font-size:1.05rem; }
.card p{ margin:0; color:var(--muted); }
.card-icon{ font-size:1.4rem; }

/* About */
.lead{ margin:0.4rem 0 1rem; }
.bullets{ margin:0; padding-left:1.1rem; color:var(--muted); }
.bullets li{ margin:0.2rem 0; }

/* Contact */
.contact-wrap{
  display:grid; gap:1.5rem;
  grid-template-columns: 1.1fr 0.9fr;
  margin-top:1rem;
}
.form{
  display:grid; gap:0.8rem;
  border:1px solid var(--border); border-radius:12px; padding:1rem; background:#fff;
}
.form label{ display:grid; gap:0.35rem; font-weight:600; }
.form input, .form textarea{
  width:100%; padding:0.7rem 0.75rem;
  border:1px solid var(--border); border-radius:8px;
  font: inherit;
}
.form input:focus, .form textarea:focus{
  outline:2px solid var(--accent); outline-offset:2px; border-color:var(--accent-strong);
}
.form-note{ color:var(--muted); font-size:0.9rem; margin:0.2rem 0 0; }

.contact-info .panel{
  border:1px solid var(--border); border-radius:12px; padding:1rem; background:#fff;
}
.contact-info h3{ margin-top:0; }
.contact-info a{ color:var(--text); }
.map{ margin-top:0.6rem; }

/* Footer */
.site-footer{
  border-top:1px solid var(--border);
  padding:1.2rem 0;
  background:#fff;
}
.footer-inner{
  display:flex; align-items:center; gap:1rem; justify-content:space-between; flex-wrap:wrap;
}
.social{ list-style:none; margin:0; padding:0; display:flex; gap:0.8rem; }
.social a{ text-decoration:none; color:var(--muted); }
.social a:hover{ color:var(--text); }
.back-to-top{ text-decoration:none; color:var(--muted); }
.back-to-top:hover{ color:var(--text); }

/* Utilities & A11y */
.visually-hidden{ position:absolute !important; height:1px; width:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }

/* Responsive */
@media (max-width: 960px){
  .services{ grid-template-columns: repeat(2, 1fr); }
  .hero-inner{ grid-template-columns: 1fr; }
}
@media (max-width: 640px){
  .nav-list{ gap:0.4rem; }
  .services{ grid-template-columns: 1fr; }
  .contact-wrap{ grid-template-columns: 1fr; }
}
/* Testimonials */
.testimonials {
  grid-template-columns: repeat(3, 1fr);
  margin-top: 1.2rem;
}
.tcard {
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  padding: 1rem;
}
.quote {
  margin: 0 0 0.6rem;
  color: var(--text);
  font-style: italic;
}
.cite {
  color: var(--muted);
  font-size: 0.95rem;
}

/* Responsive tweak for testimonials */
@media (max-width: 960px){
  .testimonials { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px){
  .testimonials { grid-template-columns: 1fr; }
}
