:root {
  --tmc-green: #0f7b4f;
  --tmc-green-dark: #083629;
  --tmc-gold: #d7b46a;
  --tmc-light: #f6f2e9;
  --tmc-cream: #fffaf1;
  --tmc-border: #e2d8c8;
  --tmc-text: #1f2a24;
}
* { box-sizing: border-box; }
body { background: var(--tmc-light); font-family: Arial, Helvetica, sans-serif; color: var(--tmc-text); margin:0; }
a { color: var(--tmc-green); }
.tmc-topbar { background: linear-gradient(135deg, #0f5f46, #083629); color: white; border-bottom: 3px solid var(--tmc-gold); padding: 7px 0; position: sticky; top:0; z-index:900; }
.tmc-nav-wrap { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.tmc-brand { display:flex; align-items:center; gap:8px; color:white; text-decoration:none; font-weight:800; font-size:16px; line-height:1.1; }
.tmc-brand:hover { color:white; }
.tmc-brand img { height:40px; width:auto; flex:0 0 auto; }
.tmc-menu-toggle { border:0; background:transparent; color:white; border-radius:0; padding:4px 6px; font-size:22px; line-height:1; }
.tmc-nav-links { display:none; width:100%; gap:8px; padding-top:8px; }
.tmc-menu-open .tmc-nav-links { display:flex; flex-wrap:wrap; }
.tmc-nav-links a { color:white; text-decoration:none; font-weight:700; font-size:13px; padding:5px 7px; border-radius:7px; background:rgba(255,255,255,.08); }
.tmc-nav-links a:hover { color:var(--tmc-gold); }
.btn-tmc { background: var(--tmc-green); border-color: var(--tmc-green); color:white; }
.btn-tmc:hover { background:#0b5f3d; border-color:#0b5f3d; color:white; }
.tmc-card { border:1px solid var(--tmc-border); border-radius:12px; background:white; box-shadow:0 1px 5px rgba(0,0,0,.04); }
.tmc-card-green { border-left:4px solid var(--tmc-green); }
.badge-category { background:var(--tmc-green); }
.badge-subcategory { background:var(--tmc-gold); color:#222; }
.tmc-footer { margin-top:18px; background:var(--tmc-green-dark); color:white; padding:12px 0; text-align:center; font-size:13px; }
/* Home */
.tmc-home-mobile-first { background:var(--tmc-light); }
.tmc-welcome-band { background:var(--tmc-cream); border-bottom:1px solid #e1d6c4; padding:10px 0 11px; }
.tmc-welcome-grid { display:grid; grid-template-columns:1fr .58fr; gap:8px; align-items:center; }
.tmc-welcome-text h1 { color:var(--tmc-green-dark); font-weight:800; font-size:18px; line-height:1.12; margin:0 0 5px; }
.tmc-welcome-text p { font-size:12px; line-height:1.28; margin:0; }
.tmc-hero-photo-area { width:100%; min-width:0; max-width:190px; justify-self:center; }
.tmc-hero-carousel { position:relative; width:100%; aspect-ratio:16/9; border-radius:10px; overflow:hidden; background:#e8e1d5; box-shadow:0 1px 6px rgba(0,0,0,.13); }
.tmc-hero-slide { position:absolute; inset:0; opacity:0; transition:opacity .75s ease; color:white; text-decoration:none; }
.tmc-hero-slide.active { opacity:1; z-index:2; }
.tmc-hero-slide img { width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.01); }
.tmc-hero-caption { position:absolute; left:0; right:0; bottom:0; padding:21px 8px 6px; background:linear-gradient(to top, rgba(0,0,0,.76), rgba(0,0,0,0)); text-shadow:0 1px 2px rgba(0,0,0,.65); }
.tmc-hero-caption strong, .tmc-hero-caption small { display:block; }
.tmc-hero-caption strong { font-size:10.5px; line-height:1.15; }
.tmc-hero-caption small { font-size:9px; margin-top:1px; }
.tmc-hero-dots { display:flex; justify-content:center; gap:6px; margin-top:5px; }
.tmc-hero-dots button { width:7px; height:7px; border:0; border-radius:50%; background:#c8c8c8; padding:0; }
.tmc-hero-dots button.active { background:var(--tmc-green); }
.tmc-hero-photo-placeholder { aspect-ratio:16/9; border:1px dashed #b8aa91; border-radius:10px; background:#fff; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:8px; color:#6b6255; font-size:11px; }
.tmc-home-search { display:grid; grid-template-columns:1fr; gap:7px; margin-top:10px; }
.tmc-home-search .form-control { min-height:38px; font-size:14px; }
.tmc-home-actions { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:8px; }
.tmc-home-actions .btn, .tmc-home-search .btn { padding:7px 8px; font-size:14px; }
.tmc-home-content { margin-top:12px; margin-bottom:18px; }
.tmc-snapshot-panel, .tmc-news-card { background:white; border:1px solid var(--tmc-border); border-radius:12px; box-shadow:0 1px 5px rgba(0,0,0,.05); padding:9px; margin-bottom:13px; }
.tmc-panel-title { color:var(--tmc-green-dark); font-weight:800; font-size:14px; margin-bottom:7px; }
.tmc-snapshot-row { display:grid; grid-template-columns:repeat(5,1fr); text-align:center; }
.tmc-snapshot-row div { border-right:1px solid #e4dac9; padding:3px 2px; }
.tmc-snapshot-row div:last-child { border-right:0; }
.tmc-snapshot-row span { display:block; font-size:17px; color:var(--tmc-green); font-weight:800; line-height:1.05; }
.tmc-snapshot-row small { display:block; font-size:8.8px; line-height:1.1; margin-top:2px; }
.tmc-serving-line { margin-top:7px; background:#f4f4eb; border-radius:8px; padding:6px 7px; text-align:center; font-size:11px; line-height:1.2; }
.tmc-section-block { margin-bottom:14px; }
.tmc-title-link-row { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.tmc-title-link-row h2 { color:var(--tmc-green-dark); font-size:19px; line-height:1.1; margin:0; font-weight:800; }
.tmc-title-link-row a { color:var(--tmc-green); text-decoration:none; font-weight:700; font-size:13px; white-space:nowrap; }
.tmc-category-cards { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.tmc-category-card { background:white; border:1px solid var(--tmc-border); border-radius:11px; padding:8px; min-height:60px; display:grid; grid-template-columns:30px 1fr; gap:7px; align-items:center; color:var(--tmc-text); text-decoration:none; box-shadow:0 1px 5px rgba(0,0,0,.04); }
.tmc-category-card:hover { color:var(--tmc-text); border-color:var(--tmc-green); }
.tmc-category-icon { font-size:22px; line-height:1; }
.tmc-category-card strong, .tmc-category-card small { display:block; }
.tmc-category-card strong { font-size:13px; line-height:1.1; }
.tmc-category-card small { font-size:11px; color:#59655f; margin-top:2px; }
.tmc-featured-cards { display:grid; grid-template-columns:1fr; gap:8px; }
.tmc-feature-card { background:white; border:1px solid var(--tmc-border); border-radius:11px; padding:8px; display:grid; grid-template-columns:40px 1fr; gap:9px; align-items:center; color:var(--tmc-text); text-decoration:none; box-shadow:0 1px 5px rgba(0,0,0,.04); }
.tmc-feature-card:hover { color:var(--tmc-text); border-color:var(--tmc-green); }
.tmc-feature-avatar { width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#f4efe5; color:var(--tmc-green); font-weight:800; overflow:hidden; }
.tmc-feature-avatar img { width:100%; height:100%; object-fit:cover; }
.tmc-feature-card strong, .tmc-feature-card small { display:block; }
.tmc-feature-card strong { font-size:14px; line-height:1.2; }
.tmc-feature-card small { color:#59655f; font-size:12px; margin-top:2px; }
.tmc-news-item { display:grid; grid-template-columns:48px 1fr; gap:10px; align-items:center; }
.tmc-news-icon { width:48px; height:48px; border-radius:10px; background:#edf5ef; display:flex; align-items:center; justify-content:center; font-size:24px; }
.tmc-news-item strong { color:var(--tmc-green-dark); font-size:15px; }
.tmc-news-item p { margin:2px 0 0; font-size:12.5px; line-height:1.25; }
/* General page styles */
.tmc-page-hero { background:var(--tmc-cream); border-bottom:1px solid #e1d6c4; padding:16px 0; }
.tmc-page-hero h1 { color:var(--tmc-green-dark); font-weight:800; font-size:25px; margin:0; }
.tmc-page-hero p { margin:5px 0 0; font-size:14px; }
.tmc-listing-grid { display:grid; grid-template-columns:1fr; gap:12px; }
.tmc-listing-card { padding:12px; }
.tmc-listing-card h3 { font-size:18px; margin-bottom:5px; color:var(--tmc-green-dark); }
.tmc-map-layout { height:calc(100vh - 70px); min-height:650px; display:grid; grid-template-columns:360px 1fr; }
.tmc-map-sidebar { background:var(--tmc-cream); border-right:1px solid #d7cfbf; overflow-y:auto; padding:12px; }
#tmcMap { height:100%; width:100%; }
.tmc-map-result { background:white; border:1px solid var(--tmc-border); border-radius:10px; padding:9px; margin-bottom:8px; cursor:pointer; }
.tmc-map-result:hover { border-color:var(--tmc-green); }
.marker-shape { color:white; font-weight:bold; text-align:center; line-height:30px; width:30px; height:30px; border:2px solid white; box-shadow:0 2px 8px rgba(0,0,0,.35); }
.marker-worship { background:#0f7b4f; border-radius:50%; }
.marker-education { background:#2563eb; border-radius:4px; }
.marker-food { background:#f97316; transform:rotate(45deg); }
.marker-food span { display:block; transform:rotate(-45deg); }
.marker-professional { background:#7c3aed; clip-path:polygon(50% 0%, 100% 100%, 0% 100%); }
.marker-home { background:#92400e; clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%); }
.marker-community { background:#d7a900; clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%); }
.marker-other { background:#555; border-radius:50%; }
@media (min-width:768px) {
  .tmc-menu-toggle { border:0; background:transparent; color:white; border-radius:0; padding:4px 6px; font-size:22px; line-height:1; }
  .tmc-nav-links { display:flex; width:auto; padding-top:0; }
  .tmc-brand { font-size:18px; }
  .tmc-brand img { height:44px; }
  .tmc-welcome-band { padding:13px 0 12px; }
  .tmc-welcome-grid { grid-template-columns:minmax(260px,1fr) minmax(220px,32%); gap:18px; }
  .tmc-welcome-text h1 { font-size:32px; }
  .tmc-welcome-text p { font-size:17px; }
  .tmc-hero-photo-area { width:62%; max-width:300px; justify-self:center; }
  .tmc-home-search { grid-template-columns:1fr 120px; margin-top:14px; }
  .tmc-home-actions { max-width:590px; }
  .tmc-category-cards { grid-template-columns:repeat(3,1fr); }
  .tmc-featured-cards { grid-template-columns:repeat(3,1fr); }
  .tmc-snapshot-row span { font-size:24px; }
  .tmc-snapshot-row small { font-size:12px; }
  .tmc-listing-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px) {
  .tmc-map-layout { display:block; height:auto; min-height:0; }
  .tmc-map-sidebar { height:420px; border-right:0; border-bottom:1px solid #d7cfbf; }
  #tmcMap { height:560px; }
}
@media (max-width:410px) {
  .tmc-welcome-text h1 { font-size:17px; }
  .tmc-welcome-text p { font-size:11.5px; }
  .tmc-hero-photo-area { max-width:155px; }
  .tmc-snapshot-row span { font-size:16px; }
  .tmc-snapshot-row small { font-size:8px; }
}


/* 1.0.0-beta1 stability refinements */
.tmc-hero-slide img { background: #e8e1d5; }
.tmc-hero-photo-area { align-self: center; }
@media (max-width: 767px) {
  .tmc-menu-toggle { margin-left: auto; }
  .tmc-hero-photo-area { max-width: 150px; }
  .tmc-hero-caption { padding: 18px 7px 5px; }
}
@media (min-width: 768px) {
  .tmc-hero-photo-area { max-width: 270px; }
}
