.markets-page {max-width:1120px; margin:0 auto; padding:25px;}
.markets-hero {max-width:900px; margin:0 auto 42px; text-align:center;}
.markets-hero .section-eyebrow {display:inline-block; margin-bottom:14px;}
.markets-hero h1 {margin:0 0 25px; font-family:Georgia,"Times New Roman",serif; font-size:58px; font-weight:700; line-height:1.02; letter-spacing:-1.5px; color:#111;}
.markets-hero h1 span {display:block;}
.markets-hero-green {color:#28723d;}
.markets-hero p {max-width:750px; margin:0 auto; color:#4f5b53; font-size:19px; line-height:1.65;}
.markets-search {display:flex; max-width:680px; margin:0 auto 50px; padding:6px; background:#fff; border:1px solid #d8dad2; border-radius:10px; box-shadow:0 5px 20px rgba(32,60,38,.06);}
.markets-search input[type=text] {box-sizing:border-box; flex:1; min-width:0; height:46px; padding:0 15px; background:transparent; border:0; outline:none; font-size:15px;}
.markets-search input[type=submit] {height:46px; padding:0 25px; background:#2f673d; color:#fff; border:0; border-radius:7px; font-size:15px; font-weight:700; cursor:pointer;}
.markets-search input[type=submit]:hover {background:#285a35;}
.markets-grid {display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.market-directory-card {min-width:0; background:#fff; border:1px solid #dddcd5; border-radius:13px; overflow:hidden; box-shadow:0 4px 18px rgba(32,60,38,.05); transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;}
.market-directory-card:hover {transform:translateY(-3px); border-color:#c4cec5; box-shadow:0 10px 28px rgba(32,60,38,.10);}
.market-directory-content {display:flex; flex-direction:column; box-sizing:border-box; min-height:150px; height:100%; padding:10px;}
.market-type {align-self:flex-start; margin-bottom:17px; padding:6px 10px; background:#edf2ed; border-radius:15px; color:#3e6c48; font-size:11px; font-weight:800; letter-spacing:.5px; text-transform:uppercase;}
.market-directory-card h2 {margin:0 0 14px; font-family:Georgia,"Times New Roman",serif; color:#203c26; font-size:24px; line-height:1.15;}
.market-description {margin:0 0 18px; color:#626862; font-size:15px; line-height:1.65;}
.market-address {margin-bottom:22px; color:#626862; font-size:15px; line-height:1.6;}
.market-directory-footer {display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:auto; padding-top:20px; border-top:1px solid #ecece7;}
.market-directory-footer span {color:#727a74; font-size:13px;}
.market-directory-footer a {color:#28723d; font-size:13px; font-weight:700; white-space:nowrap; text-decoration:none;}
.market-directory-footer a:hover {text-decoration:underline;}
.markets-empty {max-width:680px; margin:0 auto; padding:45px; background:#f1f0ea; border-radius:13px; text-align:center;}
.markets-empty h2 {margin:0 0 10px; font-family:Georgia,"Times New Roman",serif; color:#203c26;}
.markets-empty p {margin:0; color:#626862;}

@media (max-width:900px) {
.markets-grid {grid-template-columns:repeat(2,1fr);}
}

@media (max-width:650px) {
.markets-page {padding:50px 20px 70px;}
.markets-hero h1 {font-size:39px;}
.markets-hero p {font-size:17px;}
.markets-search {margin-bottom:40px;}
.markets-grid {grid-template-columns:1fr;}
}

@media (max-width:450px) {
.markets-search input[type=submit] {padding:0 17px;}
.market-directory-content {min-height:0;}
.market-directory-footer {align-items:flex-start; flex-direction:column;}
}

.markets-toolbar {display:flex; align-items:center; gap:12px; width:100%; margin:0 0 20px;}
.markets-search {display:flex; align-items:center; gap:8px; flex:1; min-width:0; margin:0; padding:6px; background:#fff; border:1px solid #d8dad2; border-radius:10px; box-shadow:0 5px 20px rgba(32,60,38,.06);}
.market-country {flex:0 0 145px; width:145px; height:46px; padding:0 32px 0 12px; border:1px solid #ccd5cb; border-radius:7px; background:#fff; color:#333; font:inherit;}
.market-location-input {display:block !important; flex:1 1 auto !important; width:auto !important; min-width:160px !important; height:46px; padding:0 15px; border:1px solid #ccd5cb !important; border-radius:7px; background:#fff !important; color:#333; font:inherit; box-sizing:border-box;}
.market-location-input:focus {outline:none; border-color:#4b8d43 !important; box-shadow:0 0 0 2px rgba(75,141,67,.12);}
.market-radius {flex:0 0 125px; width:125px; height:46px; padding:0 32px 0 12px; border:1px solid #ccd5cb; border-radius:7px; background:#fff; color:#333; font:inherit;}
.markets-search input[type=submit] {flex:0 0 auto; height:46px; padding:0 20px; background:#2f673d; color:#fff; border:0; border-radius:7px; font-size:15px; font-weight:700; cursor:pointer;}
.markets-search input[type=submit]:hover {background:#285a35;}
.market-clear-button {background:#fff !important; color:#555 !important; border:1px solid #ccd5cb !important;}
.market-clear-button:hover {background:#f5f7f5 !important;}
.market-view-toggle {display:flex; flex:0 0 auto; padding:4px; background:#eef2ed; border:1px solid #d9e0d8; border-radius:9px;}
.market-view-button {appearance:none; border:0; background:transparent; padding:10px 18px; border-radius:6px; font:inherit; font-weight:600; color:#555; cursor:pointer;}
.market-view-button:hover {color:#2f6e2d;}
.market-view-button.active {background:#fff; color:#3f7f38; box-shadow:0 1px 4px rgba(0,0,0,.12);}
.market-view-toggle.disabled {opacity:.42;}
.market-view-toggle.disabled .market-view-button {color:#777; cursor:not-allowed;}
.market-view-toggle.disabled .market-view-button.active {background:transparent; color:#777; box-shadow:none;}
.market-search-summary {margin:0 0 22px; padding:13px 16px; background:#f3f7f2; border:1px solid #dbe6d9; border-radius:8px; color:#4c554b;}
.market-search-summary strong {color:#3f7f38;}
.market-distance {margin:-4px 0 12px; color:#4b8d43; font-size:13px; font-weight:700;}
.market-map-view {display:none;}
#marketsMap {width:100%; height:620px; border:1px solid #d9e0d8; border-radius:12px; overflow:hidden; background:#eef2ed;}
.market-map-popup {min-width:200px; font-size:13px; line-height:1.45;}
.market-map-popup strong {display:block; margin-bottom:6px; font-size:16px; color:#222;}
.market-map-popup a {display:inline-block; margin-top:8px; color:#3f7f38; font-weight:600; text-decoration:none;}
.market-map-popup a:hover {text-decoration:underline;}
.market-map-distance {margin-top:7px; color:#4b8d43; font-weight:700;}
.market-map-producers {margin-top:7px; color:#666;}
.market-map-error {display:flex; align-items:center; justify-content:center; height:100%; color:#777;}
@media (max-width:650px) {.markets-toolbar {align-items:stretch; flex-direction:column;}.markets-search {flex-wrap:wrap;}.markets-search input[type="text"] {flex:1 1 100%;}.market-radius {flex:1 1 135px;}.market-view-toggle {width:max-content; margin:0 auto;}#marketsMap {height:500px;}}

.market-directory-overview {margin-top:34px;}
.directory-stats {display:grid; grid-template-columns:repeat(5,1fr); overflow:hidden; background:#173c25; border-radius:14px; box-shadow:0 5px 20px rgba(0,0,0,.08);}
.directory-stat {position:relative; padding:26px 18px; text-align:center; color:#fff;}
.directory-stat + .directory-stat {border-left:1px solid rgba(255,255,255,.16);}
.directory-stat strong {display:block; font-size:32px; line-height:1; color:#fff;}
.directory-stat span {display:block; margin-top:9px; font-size:14px; font-weight:700;}
.directory-stat small {display:block; margin-top:4px; font-size:11px; color:rgba(255,255,255,.65);}
.directory-section {padding:54px 0 10px;}
.directory-heading {max-width:760px; margin-bottom:25px;}
.directory-heading h2 {margin:5px 0 8px; font-family:Georgia,"Times New Roman",serif; font-size:34px; color:#173c25;}
.directory-heading p {margin:0; color:#647067; line-height:1.6;}
.market-type-grid {display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.market-type-stat {padding:22px 20px; background:#fff; border:1px solid #dfe5dc; border-radius:10px; box-shadow:0 3px 12px rgba(0,0,0,.035);}
.market-type-stat strong {display:block; margin-bottom:5px; font-size:26px; color:#39753d;}
.market-type-stat span {font-size:14px; font-weight:700; color:#27352b;}
.directory-locations {padding-bottom:40px;}
.country-directory-grid {display:grid; grid-template-columns:2fr 1fr; gap:22px; align-items:start;}
.country-directory {overflow:hidden; background:#fff; border:1px solid #dfe5dc; border-radius:12px; box-shadow:0 3px 14px rgba(0,0,0,.04);}
.country-directory-title {display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 22px; background:#f2f6ef; border-bottom:1px solid #dfe5dc;}
.country-directory-title > div {display:flex; align-items:center; gap:12px;}
.country-directory-title h3 {margin:0; font-family:Georgia,"Times New Roman",serif; font-size:22px; color:#173c25;}
.country-directory-title > strong {font-size:13px; color:#52705a;}
.country-code {display:flex; align-items:center; justify-content:center; width:38px; height:30px; background:#39753d; border-radius:5px; color:#fff; font-size:11px; font-weight:800; letter-spacing:1px;}
.region-grid {display:grid; grid-template-columns:repeat(5,1fr); gap:0; padding:10px;}
.region-stat {display:flex; align-items:center; justify-content:space-between; gap:8px; padding:9px 10px; border-radius:6px; text-decoration:none; cursor:pointer;}
.region-stat:hover {background:#eef4ea; text-decoration:none;}
.region-stat span {font-size:12px; font-weight:800; color:#315f38;}
.region-stat strong {font-size:12px; color:#5e6c62;}
@media (max-width:1000px) {.directory-stats {grid-template-columns:repeat(2,1fr);}}
@media (max-width:1000px) {.directory-stat + .directory-stat {border-left:0;}}
@media (max-width:1000px) {.market-type-grid {grid-template-columns:repeat(2,1fr);}}
@media (max-width:1000px) {.country-directory-grid {grid-template-columns:1fr;}}
@media (max-width:700px) {.directory-stats {grid-template-columns:1fr 1fr;}}
@media (max-width:700px) {.market-type-grid {grid-template-columns:1fr 1fr;}}
@media (max-width:700px) {.region-grid {grid-template-columns:repeat(3,1fr);}}
@media (max-width:500px) {.directory-stats {grid-template-columns:1fr;}}
@media (max-width:500px) {.market-type-grid {grid-template-columns:1fr;}}
@media (max-width:500px) {.region-grid {grid-template-columns:repeat(2,1fr);}}
