/* Body Areas — public pages */
.ba-page, .ba-grid {
	--ba-accent: #0ba9a9;
	--ba-accent-dark: #088a8a;
	--ba-ink: #1d2b36;
	--ba-muted: #5d6b76;
	--ba-line: #e3e9ee;
	--ba-soft: #f3f8f9;
	--ba-radius: 10px;
	color: var(--ba-ink);
}
.ba-page { background: #fff; padding-bottom: 48px; }
.ba-wrap { max-width: 1170px; margin: 0 auto; padding: 0 16px; box-sizing: border-box; }
.ba-page h2 { font-size: 24px; line-height: 1.3; margin: 0 0 14px; color: var(--ba-ink); }
.ba-page h3 { font-size: 17px; margin: 0 0 6px; color: var(--ba-ink); }
.ba-page p { line-height: 1.65; }

/* Hero */
.ba-hero { background: linear-gradient(135deg, var(--ba-soft), #e6f5f5); border-bottom: 1px solid var(--ba-line); padding: 48px 0 40px; }
.ba-hero-inner { display: flex; gap: 40px; align-items: center; }
.ba-hero-text { flex: 1 1 auto; min-width: 0; }
.ba-hero-img { flex: 0 0 38%; }
.ba-hero-img img { width: 100%; height: auto; border-radius: var(--ba-radius); display: block; }
.ba-eyebrow { text-transform: uppercase; letter-spacing: .08em; font-size: 13px; font-weight: 600; color: var(--ba-accent-dark); margin: 0 0 8px; }
.ba-title { font-size: 40px; line-height: 1.15; margin: 0 0 14px; color: var(--ba-ink); }
.ba-intro { font-size: 17px; color: var(--ba-muted); max-width: 640px; }
.ba-intro p { margin: 0 0 12px; }
.ba-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 20px; }
.ba-from { font-size: 18px; }
.ba-from strong { font-size: 28px; color: var(--ba-accent-dark); }

/* Buttons */
.ba-btn { display: inline-block; background: var(--ba-accent); color: #fff !important; padding: 12px 26px; border-radius: 6px; font-weight: 600; text-decoration: none !important; border: 2px solid var(--ba-accent); transition: background .15s, border-color .15s; }
.ba-btn:hover, .ba-btn:focus { background: var(--ba-accent-dark); border-color: var(--ba-accent-dark); }
.ba-btn-outline { background: transparent; color: var(--ba-accent-dark) !important; padding: 8px 18px; }
.ba-btn-outline:hover, .ba-btn-outline:focus { color: #fff !important; }
.ba-btn-block { display: block; text-align: center; margin-top: 16px; }

/* Quick facts */
.ba-facts { display: flex; flex-wrap: wrap; gap: 16px; margin-top: -24px; position: relative; }
.ba-fact { flex: 1 1 180px; background: #fff; border: 1px solid var(--ba-line); border-radius: var(--ba-radius); padding: 14px 18px; box-shadow: 0 4px 14px rgba(29, 43, 54, .06); }
.ba-fact span { display: block; font-size: 13px; color: var(--ba-muted); }
.ba-fact strong { font-size: 16px; }

/* Layout */
.ba-body { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; margin-top: 40px; }
.ba-section { margin-top: 40px; }
.ba-content > .ba-section:first-child { margin-top: 0; }
.ba-entry img { max-width: 100%; height: auto; }

/* Side panel */
.ba-side { display: flex; flex-direction: column; gap: 20px; }
.ba-panel { border: 1px solid var(--ba-line); border-radius: var(--ba-radius); padding: 20px; background: #fff; position: sticky; top: 100px; }
.ba-panel + .ba-panel { position: static; }
.ba-panel h2 { font-size: 20px; }
.ba-prices { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0; }
.ba-prices th, .ba-prices td { padding: 8px 0; border-bottom: 1px solid var(--ba-line); text-align: left; background: none; }
.ba-prices th { font-size: 13px; color: var(--ba-muted); font-weight: 600; }
.ba-prices td:last-child, .ba-prices th:last-child { text-align: right; white-space: nowrap; font-weight: 600; }
.ba-note { font-size: 13px; color: var(--ba-muted); margin: 12px 0 0; }
.ba-links { list-style: none; margin: 0; padding: 0; }
.ba-links li { padding: 6px 0; border-bottom: 1px solid var(--ba-line); }
.ba-links a { color: var(--ba-accent-dark); text-decoration: none; }

/* FAQs */
.ba-faq { border: 1px solid var(--ba-line); border-radius: 8px; margin-bottom: 10px; background: #fff; }
.ba-faq summary { cursor: pointer; padding: 14px 44px 14px 18px; font-weight: 600; list-style: none; position: relative; }
.ba-faq summary::-webkit-details-marker { display: none; }
.ba-faq summary::after { content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); font-size: 22px; color: var(--ba-accent); }
.ba-faq[open] summary::after { content: "–"; }
.ba-faq > div { padding: 0 18px 6px; color: var(--ba-muted); }

/* Locations */
.ba-locs { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.ba-loc { border: 1px solid var(--ba-line); border-radius: var(--ba-radius); padding: 18px; display: flex; flex-direction: column; align-items: flex-start; background: #fff; }
.ba-loc-addr { font-size: 14px; color: var(--ba-muted); margin: 0 0 8px; }
.ba-loc-price { margin: auto 0 12px; }
.ba-loc-price strong { color: var(--ba-accent-dark); font-size: 18px; }

/* Chips */
.ba-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ba-chips a { padding: 8px 14px; border: 1px solid var(--ba-line); border-radius: 999px; text-decoration: none; color: var(--ba-ink); font-size: 14px; background: var(--ba-soft); }
.ba-chips a:hover { border-color: var(--ba-accent); color: var(--ba-accent-dark); }

.ba-shared { margin-top: 48px; }

/* [body_areas] grid */
.ba-grid { display: grid; grid-template-columns: repeat(var(--ba-cols, 4), minmax(0, 1fr)); gap: 14px; }
.ba-card { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border: 1px solid var(--ba-line); border-radius: var(--ba-radius); text-decoration: none !important; background: #fff; transition: border-color .15s, box-shadow .15s; }
.ba-card:hover { border-color: var(--ba-accent); box-shadow: 0 4px 14px rgba(11, 169, 169, .12); }
.ba-card-title { font-weight: 600; color: var(--ba-ink); }
.ba-card-price { font-size: 14px; color: var(--ba-accent-dark); }

@media (max-width: 991px) {
	.ba-body { grid-template-columns: 1fr; }
	.ba-panel { position: static; }
	.ba-hero-inner { flex-direction: column; align-items: stretch; }
	.ba-grid { grid-template-columns: repeat(min(var(--ba-cols, 4), 2), minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.ba-hero { padding: 32px 0 36px; }
	.ba-title { font-size: 30px; }
	.ba-grid { grid-template-columns: 1fr; }
}

/* Sources */
.ba-sources { font-size: 14px; color: var(--ba-muted); border-top: 1px solid var(--ba-line); padding-top: 20px; }
.ba-sources h2 { font-size: 18px; }
.ba-sources ul { margin: 0; padding-left: 18px; }
.ba-sources li { margin: 4px 0; }
.ba-sources a { color: var(--ba-accent-dark); word-break: break-word; }
.ba-disclaimer { margin: 16px 0 0; padding: 12px 14px; background: var(--ba-soft); border-left: 3px solid var(--ba-accent); border-radius: 4px; font-size: 13px; line-height: 1.55; }

/* [body_areas_index] */
.ba-index { --ba-accent: #0ba9a9; }
.ba-index-title { margin: 32px 0 14px; }
.ba-index > .ba-index-title:first-child { margin-top: 0; }
.ba-index-empty { padding: 16px; background: #f3f8f9; border-radius: 8px; }
.ba-index { max-width: 1170px; margin: 0 auto; padding: 40px 16px 56px; box-sizing: border-box; }
.ba-index-h1 { font-size: 36px; line-height: 1.2; margin: 0 0 12px; }
.ba-index-intro { font-size: 17px; color: #5d6b76; max-width: 720px; margin: 0 0 28px; line-height: 1.6; }
.ba-index-h1 + .ba-index-title, .ba-index-intro + .ba-index-title { margin-top: 0; }
