body {
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  background:#f4f6f8;
  color:#222;
}

/* Header — identical to dog-profile */
.header {
  background:#fff;
  padding:16px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid #eee;
}
.header img { height:36px; }
.header a { text-decoration:none; color:#333; font-weight:600; }

/* Container */
.container {
  max-width:900px;
  margin:30px auto;
  padding:0 20px;
}

/* Section */
.section {
  background:#fff;
  margin-top:24px;
  padding:24px;
  border-radius:16px;
  box-shadow:0 6px 18px rgba(0,0,0,0.04);
}

/* Tablets + mobiles */
@media (max-width: 800px) {
  .section {
    padding: 12px;
  }
}

.section h1 { margin-bottom:0; }
.section h3 { margin-top:0; }
.section h3.counties {margin:10px 0;}

/* Map */
#locationmap {
  height:300px;
  border-radius:12px;
  margin-top:15px;
}

/* Towns List */
.town-list{
    column-count:3;
    column-gap:40px;
}

.town-list a{
    display:block;
    padding:3px 0;
    text-decoration:none;
	color:blue
}

.town-list a:hover{
    text-decoration:underline;
}

.location-intro{
font-size:16px;
line-height:1.6;
margin-top:10px;
margin-bottom:10px;
color:#333;
max-width:800px;
}

.location-mission{
font-size:15px;
line-height:1.6;
color:#555;
max-width:800px;
margin-bottom:20px;
}

.collapsed-list{
max-height:50px;
overflow:hidden;
position:relative;
}

.collapsed-list.expanded{
max-height:none;
}

.toggle-list{
cursor:pointer;
margin-top:10px;
font-weight:600;
color:#0077cc;
}

/* Compact Dogs Layout */
.dog-grid {
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:14px;
}

@media (max-width: 900px) {
  .dog-grid {
    grid-template-columns:repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .dog-grid {
    grid-template-columns:1fr;
  }
}

.dog-mini-card {
  display:flex;
  align-items:center;
  gap:12px;
  background:#fafafa;
  border-radius:12px;
  padding:10px 12px;
  box-shadow:0 2px 6px rgba(0,0,0,0.04);
}

.dog-mini-card img {
  width:64px;
  height:64px;
  object-fit:cover;
  border-radius:10px;
  flex-shrink:0;
}

.dog-info {
  flex:1;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.dog-info h4 {
  margin:0;
  font-size:14px;
  font-weight:600;
}

.dog-info h4 a {
	color:#333;
	text-decoration:underline
}

/* Compact reactions */
.reaction-bar {
  display:flex;
  gap:8px;
  font-size:13px;
}

.reaction {
  display:flex;
  align-items:center;
  gap:4px;
  cursor:pointer;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}

.reaction .counter {
  font-size:12px;
  color:#555;
}

/* Ratings section — identical to dog-profile */
.rated-walks {
  display:flex;
  flex-direction:column;
  gap:14px;
}

.rated-walk-card {
  padding:14px 16px;
  border-radius:12px;
  background:#f8fafc;
  border:1px solid #eef2f5;
}

.rated-walk-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:15px;
}

.star-rating {
  font-size:14px;
}

.rated-walk-meta {
  margin-top:6px;
  font-size:13px;
  color:#666;
}

/* Add route */
.subheading-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  color: #777
}

.breadcrumb{
  font-size:14px;
  margin:6px 0 10px 0;
  color:#777;
}

.breadcrumb a{
  color:#555;
  text-decoration:none;
}

.breadcrumb a:hover{
  text-decoration:underline;
}

.add-adventure-btn {
  background: #ddd;
  border: none;
  padding: 8px 14px;
  border-radius: 8px;
  cursor: not-allowed;
  color: #777;
  font-weight: 600;
}

/* Sponsors */
.sponsor-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(260px,1fr));
  gap: 20px;
}

.sponsor-card {
  background: #fff;
  border-radius: 12px;
  padding: 10px;
  text-align: center;
  box-shadow: 0 3px 10px rgba(0,0,0,0.05);
}

.sponsor-card img {
  max-width: 100%;
  border-radius: 8px;
}

.sponsor-info p {
  font-size: 0.9rem;
  color: #555;
}

/* ======================
   Champions Layout
====================== */

.champions-tabs{
display:flex;
justify-content:center;
gap:10px;
margin-bottom:20px;
}

.champion-tab{
padding:8px 16px;
border-radius:20px;
border:none;
background:#e6e9ff;
cursor:pointer;
font-weight:600;
}

.champion-tab.active{
background:#4b59ff;
color:#fff;
}

.champion-period.hidden{
display:none;
}

.champion-cards{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
gap:16px;
}

.champion-card{
background:#fff;
border-radius:14px;
padding:18px;
text-align:center;
box-shadow:0 5px 15px rgba(0,0,0,0.08);
position:relative;
}

.champion-card::before{
content:"\1F451";
position:absolute;
top:-10px;
left:50%;
transform:translateX(-50%);
font-size:20px;
}

.champion-metric{
font-size:13px;
font-weight:700;
color:#777;
text-transform:uppercase;
margin-bottom:10px;
}

.champion-avatar{
width:80px;
height:80px;
border-radius:50%;
object-fit:cover;
margin-bottom:8px;
}

.champion-name{
font-weight:700;
margin-bottom:4px;
}

.champion-score{
font-size:20px;
font-weight:800;
color:#333;
margin-bottom:8px;
}