/* === market-hero.css === */
.market-hero { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; gap: 24px; align-items: center; padding: 24px 0 8px; margin: 0 0 40px; }
.market-hero .market-hero-intro { display: flex; flex-direction: column; gap: 14px; }
.market-hero .market-hero-overline { font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #F97316; }
.market-hero .market-hero-title { margin: 0; line-height: 1.15; }
.market-hero h1, .market-hero h2 { margin: 0; line-height: 1.15; }
.market-hero .market-hero-text { margin: 0; font-size: 17px; line-height: 1.6; color: #CBD5E1; max-width: 560px; }
.market-hero .provider-grid { grid-template-columns: 1fr; margin-bottom: 0; }
.market-hero .provider-grid .provider-card .provider-card-meta .provider-card-meta-row { display: grid; grid-template-columns: 120px minmax(0, 1fr); column-gap: 16px; align-items: baseline; }
@media (max-width: 599px) {
  .market-hero .provider-grid .provider-card .provider-card-meta .provider-card-meta-row { grid-template-columns: minmax(0, 1fr); row-gap: 4px; }
}
@media (min-width: 768px) {
  .market-hero { padding: 40px 0 16px; margin: 0 0 56px; }
  .market-hero .market-hero-intro { gap: 18px; }
  .market-hero .market-hero-text { font-size: 18px; }
}
@media (min-width: 1024px) {
  .market-hero { grid-template-columns: 1fr 1fr; gap: 48px; padding: 56px 0 24px; }
  .market-hero .market-hero-title { line-height: 1.1; }
}

/* === province-picker.css === */
.province-picker { background: #131A2E; border: 1px solid rgba(148, 163, 184, 0.10); border-radius: 16px; padding: 16px 14px; display: flex; flex-direction: column; gap: 14px; margin: 0; }
.province-picker .province-picker-title { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.3; letter-spacing: 0; color: #ffffff; }
.province-picker .province-picker-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.province-picker .province-picker-item { margin: 0; display: flex; }
.province-picker .province-picker-link { flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 8px; min-height: 44px; padding: 12px 8px; background: #0F172A; border: 1px solid rgba(148, 163, 184, 0.12); border-radius: 12px; text-decoration: none; transition: border-color 0.2s; }
.province-picker .province-picker-link:hover { border-color: rgba(249, 115, 22, 0.45); }
.province-picker .province-picker-name { font-size: 13px; font-weight: 600; line-height: 1.25; color: #ffffff; overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto; }
.province-picker .province-picker-status { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; line-height: 1.2; color: #94A3B8; }
.province-picker .province-picker-status::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #94A3B8; flex-shrink: 0; }
.province-picker .province-picker-open { border-color: rgba(147, 197, 253, 0.35); }
.province-picker .province-picker-open .province-picker-status { color: #93C5FD; }
.province-picker .province-picker-open .province-picker-status::before { background: #93C5FD; }
.province-picker .province-picker-none .province-picker-status { color: #64748B; }
.province-picker .province-picker-none .province-picker-status::before { background: #475569; }
.province-picker .province-picker-guide { border-color: rgba(249, 115, 22, 0.45); }
.province-picker .province-picker-guide .province-picker-status { color: #F97316; }
.province-picker .province-picker-guide .province-picker-status::before { display: none; }
.province-picker .province-picker-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 16px; }
.province-picker .province-picker-key { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 13px; line-height: 1.3; color: #94A3B8; }
.province-picker .province-picker-key::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #94A3B8; flex-shrink: 0; }
.province-picker .province-picker-key-open::before { background: #93C5FD; }
.province-picker .province-picker-key-none::before { background: #475569; }
@media (min-width: 768px) {
  .province-picker { padding: 24px; }
  .province-picker .province-picker-list { gap: 10px; }
  .province-picker .province-picker-link { padding: 14px 12px; }
  .province-picker .province-picker-name { font-size: 15px; -webkit-hyphens: manual; hyphens: manual; }
}
.province-picker .data-table-note { margin: -4px 0 0; }

/* === heading-row.css === */
.heading-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 16px; margin: 0 0 18px; }
.heading-row .heading-row-title { margin: 0; }
.heading-row h2, .heading-row h3, .heading-row h4 { margin: 0; }
.heading-row div.heading-row-title { font-size: 23px; font-weight: 700; line-height: 1.2; color: #ffffff; }
.heading-row .heading-row-more { margin: 0; }
.heading-row .heading-row-link { font-size: 15px; font-weight: 600; line-height: 1.4; color: #F97316; text-decoration: none; transition: color 0.2s; }
.heading-row .heading-row-link:hover { color: #FDBA74; }
@media (min-width: 768px) {
  .heading-row { margin: 0 0 22px; }
  .heading-row div.heading-row-title { font-size: 29px; }
}

/* === numbered-cards.css === */
.numbered-cards { margin: 0 0 40px; }
.numbered-cards .numbered-cards-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 12px; }
.numbered-cards .numbered-card { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 20px; background: #131A2E; border: 1px solid rgba(148, 163, 184, 0.08); border-radius: 14px; }
.numbered-cards .numbered-card-num { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(249, 115, 22, 0.14); font-size: 15px; font-weight: 800; color: #F97316; }
.numbered-cards .numbered-card-title { margin: 0; font-size: 17px; font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; color: #ffffff; }
.numbered-cards h3.numbered-card-title, .numbered-cards h4.numbered-card-title { font-size: 17px; }
.numbered-cards .numbered-card-text { margin: 0; font-size: 15px; line-height: 1.6; color: #CBD5E1; }
.numbered-cards .numbered-card-text a { color: #F97316; font-weight: 500; text-decoration: underline; text-underline-offset: 2px; transition: color 0.2s; }
.numbered-cards .numbered-card-text a:hover { color: #FDBA74; }
@media (min-width: 768px) {
  .numbered-cards { margin: 0 0 56px; }
  .numbered-cards .numbered-cards-list { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .numbered-cards .numbered-card { padding: 22px; gap: 12px; }
}

/* === stat-cards.css === */
.stat-cards { margin: 0 0 40px; }
.stat-cards .stat-cards-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 12px; }
.stat-cards .stat-card { display: flex; align-items: baseline; gap: 14px; margin: 0; padding: 18px 20px; background: #131A2E; border: 1px solid rgba(148, 163, 184, 0.10); border-radius: 14px; }
.stat-cards .stat-card-value { font-size: 38px; font-weight: 800; line-height: 1; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: #CBD5E1; }
.stat-cards .stat-card-label { font-size: 15px; line-height: 1.4; color: #94A3B8; }
.stat-cards .stat-card-ontario .stat-card-value { color: #93C5FD; }
.stat-cards .stat-card-alberta .stat-card-value { color: #FBBF24; }
@media (min-width: 768px) {
  .stat-cards { margin: 0 0 56px; }
  .stat-cards .stat-cards-list { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .stat-cards .stat-cards-list:has(> .stat-card:nth-child(2):last-child) { grid-template-columns: repeat(2, 1fr); }
  .stat-cards .stat-card { padding: 22px; }
  .stat-cards .stat-card-value { font-size: 44px; }
}

/* === news-strip.css === */
.news-strip { margin: 0 0 40px; }
.news-strip .news-strip-list { display: grid; grid-template-columns: 1fr; gap: 10px; }
.news-strip .news-strip-card { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; align-items: center; padding: 8px; background: #131A2E; border: 1px solid rgba(148, 163, 184, 0.10); border-radius: 12px; text-decoration: none; transition: border-color 0.2s; }
.news-strip .news-strip-card:hover { border-color: rgba(249, 115, 22, 0.35); }
.news-strip .news-strip-image { display: block; width: 112px; height: 75px; object-fit: cover; border-radius: 8px; }
.news-strip .news-strip-body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.news-strip .news-strip-date { font-size: 12px; font-weight: 700; line-height: 1.2; letter-spacing: 0.1em; text-transform: uppercase; color: #F97316; }
.news-strip .news-strip-title { font-size: 15px; font-weight: 600; line-height: 1.35; color: #ffffff; }
@media (min-width: 768px) {
  .news-strip { margin: 0 0 56px; }
  .news-strip .news-strip-list { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .news-strip .news-strip-card { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 0; border-radius: 14px; overflow: hidden; }
  .news-strip .news-strip-image { width: 100%; height: auto; aspect-ratio: 3 / 2; border-radius: 0; }
  .news-strip .news-strip-body { gap: 8px; padding: 16px 18px 20px; }
  .news-strip .news-strip-title { font-size: 17px; }
}

/* === year-timeline.css === */
.year-timeline { margin: 0 0 40px; }
.year-timeline .year-timeline-list { list-style: none; margin: 0; padding: 0; }
.year-timeline .year-timeline-item { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr); column-gap: 28px; margin: 0; padding: 0 0 16px; }
.year-timeline .year-timeline-item::before { content: ''; position: absolute; left: 75px; top: 5px; width: 10px; height: 10px; border-radius: 50%; background: #94A3B8; }
.year-timeline .year-timeline-item::after { content: ''; position: absolute; left: 79px; top: 19px; bottom: 0; width: 2px; background: rgba(148, 163, 184, 0.18); }
.year-timeline .year-timeline-item:last-child::after { display: none; }
.year-timeline .year-timeline-date { font-size: 13px; font-weight: 700; line-height: 1.5; color: #94A3B8; font-variant-numeric: tabular-nums; }
.year-timeline .year-timeline-text { font-size: 15px; line-height: 1.5; color: #CBD5E1; }
.year-timeline .year-timeline-ontario::before { background: #93C5FD; }
.year-timeline .year-timeline-alberta::before { background: #FBBF24; }
@media (min-width: 768px) {
  .year-timeline { margin: 0 0 56px; }
}
@media (min-width: 1024px) {
  .year-timeline .year-timeline-list { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); padding: 24px 24px 8px; background: #131A2E; border-radius: 14px; }
  .year-timeline .year-timeline-item { display: flex; flex-direction: column; gap: 10px; padding: 0 16px 16px 0; }
  .year-timeline .year-timeline-item::before { left: 0; top: 30px; width: 12px; height: 12px; }
  .year-timeline .year-timeline-item::after { display: block; left: 12px; right: 0; top: 35px; bottom: auto; width: auto; height: 2px; }
  .year-timeline .year-timeline-item:last-child::after { display: block; }
  .year-timeline .year-timeline-text { margin-top: 22px; }
}

/* === column-pair.css === */
.column-pair { display: grid; grid-template-columns: 1fr; gap: 0; margin: 0 0 16px; }
.column-pair .column-pair-item { min-width: 0; }
@media (min-width: 768px) {
  .column-pair { margin: 0 0 24px; }
}
@media (min-width: 1024px) {
  .column-pair { grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
}

/* === guide-links.css === */
.guide-links { margin: 0 0 40px; }
.guide-links .guide-links-list { list-style: none; margin: 0; padding: 0; background: #131A2E; border: 1px solid rgba(148, 163, 184, 0.08); border-radius: 14px; overflow: hidden; }
.guide-links .guide-links-item { margin: 0; border-bottom: 1px solid rgba(148, 163, 184, 0.08); }
.guide-links .guide-links-item:last-child { border-bottom: 0; }
.guide-links .guide-links-link { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 56px; padding: 0 20px; font-size: 16px; font-weight: 500; line-height: 1.3; color: #ffffff; text-decoration: none; transition: background-color 0.2s; }
.guide-links .guide-links-link::after { content: '\2192'; color: #F97316; flex-shrink: 0; }
.guide-links .guide-links-link:hover { background-color: rgba(249, 115, 22, 0.06); }
@media (min-width: 768px) {
  .guide-links { margin: 0 0 32px; }
}

/* === check-cards.css === */
.check-cards { margin: 0 0 40px; }
.check-cards .check-cards-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 12px; }
.check-cards .check-card { position: relative; margin: 0; padding: 18px 20px 18px 46px; background: #131A2E; border: 1px solid rgba(148, 163, 184, 0.08); border-radius: 14px; font-size: 15px; line-height: 1.55; color: #CBD5E1; }
.check-cards .check-card::before { content: '\2713'; position: absolute; left: 20px; top: 18px; font-weight: 800; color: #4ADE80; }
.check-cards .check-card-title { font-weight: 600; color: #ffffff; }
@media (min-width: 768px) {
  .check-cards { margin: 0 0 48px; }
  .check-cards .check-cards-list { grid-template-columns: repeat(3, 1fr); gap: 16px; }
}

/* === help-strip.css === */
.help-strip { display: flex; flex-direction: column; gap: 8px; margin: 0 0 48px; padding: 20px; background: rgba(59, 130, 246, 0.08); border: 1px solid rgba(59, 130, 246, 0.30); border-radius: 14px; }
.help-strip .help-strip-title { margin: 0; font-size: 17px; font-weight: 700; line-height: 1.3; letter-spacing: 0; color: #93C5FD; }
.help-strip h2.help-strip-title, .help-strip h3.help-strip-title { font-size: 17px; }
.help-strip .help-strip-text { margin: 0; font-size: 15px; line-height: 1.55; color: #CBD5E1; }
.help-strip .help-strip-text a { color: #ffffff; text-decoration: underline; text-decoration-color: rgba(147, 197, 253, 0.5); text-underline-offset: 3px; }
.help-strip .help-strip-text a:hover { color: #93C5FD; }
@media (min-width: 768px) {
  .help-strip { flex-direction: row; justify-content: space-between; align-items: center; gap: 12px 32px; margin: 0 0 56px; padding: 22px 24px; }
  .help-strip .help-strip-title { flex-shrink: 0; }
  .help-strip .help-strip-text { max-width: 760px; }
}

/* === market-facts.css === */
.market-facts { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.market-facts .market-facts-item { display: inline-flex; align-items: baseline; gap: 6px; margin: 0; padding: 6px 10px; background: rgba(148, 163, 184, 0.08); border-radius: 8px; font-size: 13px; font-weight: 600; line-height: 1.3; color: #E2E8F0; }
.market-facts .market-facts-label { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #64748B; }
@media (min-width: 768px) {
  .market-facts { margin: 0 0 14px; }
  .market-facts .market-facts-item { font-size: 14px; }
}
