/* Minimal utility set mirroring classes used in Modern templates */

/* Layout */
.container{ max-width:1100px; width:92%; margin-left:auto; margin-right:auto; }
.mx-auto{ margin-left:auto; margin-right:auto; }
.py-8{ padding-top:2rem; padding-bottom:2rem; }
.mb-6{ margin-bottom:1.5rem; }
.mb-10{ margin-bottom:2.5rem; }
.p-4{ padding:1rem; }
.px-3{ padding-left:.75rem; padding-right:.75rem; }
.py-1{ padding-top:.25rem; padding-bottom:.25rem; }
.rounded-full{ border-radius:9999px; }
.rounded-md{ border-radius:.375rem; }
.rounded-lg{ border-radius:.5rem; }
.bg-white{ background:#fff; }
.bg-gray-100{ background:#f5f5f7; }
.hover\:bg-gray-200:hover{ background:#ececf1; }
.text-blue-600{ color:#2563eb; }
.text-gray-600{ color:#6b7280; }
.font-bold{ font-weight:700; }
.font-semibold{ font-weight:600; }
.text-lg{ font-size:1.125rem; }
.text-2xl{ font-size:1.5rem; }
.text-4xl{ font-size:2rem; }
.text-sm{ font-size:.875rem; }
.shadow{ box-shadow:0 1px 2px rgba(0,0,0,.06); }
.hover\:shadow-lg:hover{ box-shadow:0 10px 20px rgba(0,0,0,.12); }
.transition{ transition:all .2s ease; }
.mb-3{ margin-bottom:.75rem; }
.grid{ display:grid; grid-template-columns:1fr; gap:1rem; }
.gap-6{ gap:1.5rem; }
.gap-2{ gap:.5rem; }
.flex{ display:flex; }
.items-center{ align-items:center; }
.justify-between{ justify-content:space-between; }
.flex-wrap{ flex-wrap:wrap; }

@media (min-width: 768px){
  .md\:grid-cols-4{ grid-template-columns:repeat(4, minmax(0,1fr)); }
}

/* Card tweaks */
.gw360-modern-hours{ background:#fff; border:1px solid #e5e7eb; border-radius:8px; padding:12px; }
.gw360-modern-hours h3{ margin:0 0 8px; font-size:16px; }
.gw360-modern-hours ul{ margin:0; padding-left:18px; }
.gw360-modern-card .rating{ color:#f59e0b; }

/* HealthFinder-style tiles */
.hf-section{ margin-bottom:32px; }
.hf-head{ display:flex; align-items:center; justify-content:space-between; margin:0 0 12px; }
.hf-head h2{ margin:0; font-size:22px; font-weight:700; color:#111827; }
.hf-seeall{ color:#2563eb; text-decoration:none; font-weight:600; }
.hf-grid{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:18px; }
@media(min-width:768px){ .hf-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
.hf-tile{ display:block; background:#fff; border-radius:14px; overflow:hidden; position:relative; box-shadow:0 2px 8px rgba(16,24,40,.06); transition:transform .18s ease, box-shadow .18s ease; }
.hf-tile:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(16,24,40,.12); }
.hf-imgwrap{ position:relative; aspect-ratio:16/9; background:#f3f4f6; }
.hf-img{ width:100%; height:100%; object-fit:cover; display:block; }
.hf-save{ position:absolute; right:10px; top:10px; width:28px; height:28px; border-radius:999px; display:flex; align-items:center; justify-content:center; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.12); font-size:14px; color:#111827; }
.hf-ovr{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 55%, rgba(0,0,0,.55) 100%); display:flex; align-items:flex-end; padding:10px 12px; }
.hf-meta{ color:#fff; font-weight:600; display:flex; gap:16px; font-size:14px; }
.hf-title{ padding:10px 10px 12px; font-weight:700; color:#111827; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Single listing hero */
.hero-banner{ position:relative; background:#111; background-size:cover; background-position:center; border-radius:12px; min-height:220px; }
.hero-overlay{ background:linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.55)); color:#fff; padding:28px; border-radius:12px; min-height:220px; display:flex; flex-direction:column; justify-content:center; }
.hero-title{ margin:0 0 6px; font-size:34px; font-weight:800; }
.hero-sub{ display:flex; gap:10px; align-items:center; }
.badge{ background:#10b981; color:#072; padding:2px 8px; border-radius:999px; font-weight:700; }
.muted{ color:#c7d2fe; opacity:.9; }
.hero-addr{ margin-top:4px; opacity:.95; }
.hero-ctas{ margin-top:10px; display:flex; gap:10px; }
.button{ display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border:1px solid #cbd5e1; border-radius:999px; background:#fff; color:#0f172a; text-decoration:none; font-weight:600; }
.button.primary{ background:#0ea5e9; color:#fff; border-color:#0ea5e9; }

/* Collapsible */
.hf-collapse > summary{ cursor:pointer; list-style:none; font-weight:600; color:#0f172a; }
.hf-collapse[open] > summary{ margin-bottom:6px; }

/* Sticky opening hours */
.sticky{ position:sticky; top:12px; }

/* Reviews */
.review-card{ display:flex; gap:12px; padding:10px 0; border-bottom:1px solid #e5e7eb; }
.review-card:last-child{ border-bottom:none; }
.avatar{ width:40px; height:40px; border-radius:999px; background:#e5e7eb; display:flex; align-items:center; justify-content:center; font-weight:700; }
.rc-body{ flex:1; }
.rc-top{ display:flex; align-items:center; gap:10px; margin-bottom:4px; }
.stars{ color:#f59e0b; letter-spacing:2px; }
.rc-text{ color:#334155; }
.write-review textarea{ width:100%; border:1px solid #e5e7eb; border-radius:8px; padding:8px; }

/* Layout polish and default typography */
.gw360-modern h1,.gw360-modern h2,.gw360-modern h3{ color:#0f172a; }
.gw360-modern .prose p{ color:#334155; line-height:1.6; }
.gw360-modern .button{ text-decoration:none; }

/* Front page search and sections */
.hf-search input{ background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.06); }
.mt-8{ margin-top:2rem; }

/* Front page typography and spacing refinement */
.hf-card h1{ line-height:1.2; }
.hf-card p{ margin:4px 0 10px; }
.hf-card .button{ box-shadow:0 1px 2px rgba(0,0,0,.08); }
.grid.md\:grid-cols-4{ align-items:stretch; }



