
:root {
  --sea: #0f7b99;
  --sand: #f4e9d8;
  --coral: #ff6f61;
  --deep: #0a2a34;
}
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; color: var(--deep); background: #fff; }
.site-header { display:flex; justify-content:space-between; align-items:center; padding:1rem 2rem; border-bottom: 1px solid #eee; position: sticky; top:0; background:#fff; z-index:10; }
.logo { font-weight:700; text-decoration:none; color: var(--sea); }
.main-nav a { margin-left:1rem; text-decoration:none; color: var(--deep); }
.main-nav .btn { padding:.5rem .75rem; border-radius:999px; background: var(--sea); color:#fff; }
.hero { background: linear-gradient(180deg, var(--sand), #fff); padding:4rem 2rem; text-align:center; }
.hero h1 { font-size: clamp(1.8rem, 3vw, 3rem); margin:0 0 .5rem; }
.hero p { max-width:60ch; margin:0 auto 1rem; }
.btn { display:inline-block; border: none; background: var(--sea); color:#fff; padding:.6rem 1rem; border-radius:.5rem; cursor:pointer; }
.btn-primary { background: var(--coral); }
.featured, .services, .text-section { padding:2rem; max-width:1200px; margin:0 auto; }
.card-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap:1rem; }
.card { border:1px solid #eee; border-radius:.75rem; overflow:hidden; background:#fff; }
.card img { width:100%; height:200px; object-fit:cover; }
.card-body { padding:1rem; }
.price { font-weight:700; color: var(--sea); }
.tiles { list-style:none; display:grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap:1rem; padding:0; }
.page-header { background:#f7fafb; padding:2rem; border-bottom:1px solid #eee; }
.text-section p { margin: 0.25rem 0; }
.site-footer { padding:2rem; background:#fafafa; border-top:1px solid #eee; }
.footer-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap:1rem; }

/* Reviews */
.reviews { padding:2rem; max-width:1200px; margin:0 auto; }
.reviews .lead { max-width: 70ch; color:#333; margin:0 0 1rem; }
.review-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap:1rem; }
.review-card { border:1px solid #eee; border-radius:.75rem; padding:1rem; background:#fff; }
.review-top { display:flex; align-items:center; gap:.5rem; }
.stars { color:#ffb400; font-size:1.1rem; letter-spacing:2px; }
.badge { display:inline-block; background:#0f7b99; color:#fff; font-size:.75rem; padding:.25rem .5rem; border-radius:.5rem; }
.review-text { font-style: italic; margin:.5rem 0; }
.review-name { color:#555; }
.sub { margin: .5rem 2rem; color:#333; }
