* {box-sizing:border-box;}
html, body {max-width:100%; overflow-x:hidden;}
body {font-family:Arial, Helvetica, sans-serif; background:#f5f4ef; color:#252b25; line-height:1.5;}
a {color:#35613d; text-decoration:none;}
a:hover {text-decoration:underline;}
.brand img {width:250px; max-height:64px; height:auto; display:block; object-fit:contain;}
.site-header nav {display:flex; align-items:center; justify-content:center; gap:24px; flex:1; white-space:nowrap;}
.site-header nav a {margin-left:0; text-decoration:none;}
.header-actions {display:flex; align-items:center; gap:10px; white-space:nowrap;}
.site-header {height:78px; display:flex; align-items:center; justify-content:space-between; gap:28px; max-width:1200px; margin:0 auto; padding:0 28px;}
header {background:#f5f4ef; border-bottom:1px solid #dddcd5;}
.site-logo {font-size:24px; font-weight:700; color:#244b2c; text-decoration:none; letter-spacing:-.5px;}
.site-logo:hover {text-decoration:none;}
main {max-width:1200px; margin:0 auto;}
h1, h2, h3 {color:#203c26; line-height:1.15; margin-top:0;}
h1 {font-size:38px; letter-spacing:-1px; margin:10px 0;}
h2 {font-size:23px; margin-bottom:15px;}
p {color:#5b625b;}
button, input[type=submit] {border:0; background:#35613d; color:#fff; padding:12px 22px; border-radius:7px; font-size:15px; font-weight:600; cursor:pointer;}
button:hover, input[type=submit]:hover {background:#294e30;}
input[type=text], input[type=password], input[type=email], input[type=number], textarea, select {width:100%; border:1px solid #cfd1ca; background:#fff; border-radius:7px; padding:11px 12px; font-size:15px; color:#252b25; outline:none;}
input:focus, textarea:focus, select:focus {border-color:#63866a; box-shadow:0 0 0 3px rgba(53,97,61,.10);}
textarea {resize:vertical; font-family:inherit;}
.form-field {margin-bottom:18px;}
.form-field label {display:block; font-size:14px; font-weight:600; margin-bottom:6px; color:#343b34;}
.join-page, .login-page, .product-form {background:#fff; border:1px solid #e0dfd9; border-radius:12px; padding:32px; box-shadow:0 3px 14px rgba(0,0,0,.04);}
.form-field {margin-bottom:16px;}
.form-field label {display:block; margin-bottom:5px; font-size:12px; font-weight:700; color:#294d34;}
.form-field input[type="text"], .form-field textarea {box-sizing:border-box; width:100%; padding:10px 12px; border:1px solid #ccd3ca; border-radius:6px; font:inherit;}
.form-row {display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.form-help {margin-top:5px; font-size:11px; color:#758078;}
.primary-button {padding:10px 18px; border:0; border-radius:6px; background:#245b35; color:#fff; font-weight:700; cursor:pointer;}
.form-message {display:block; margin-bottom:15px;}
@media (max-width: 800px) {
}
.join-page {max-width:680px; margin:0 auto;}
.login-page {max-width:480px; margin:50px auto;}
.login-page > p:first-of-type, .join-page > p:first-of-type {margin-top:0; margin-bottom:28px;}
.dashboard-page {max-width:1000px; margin:0 auto;}
.dashboard-actions {display:flex; gap:12px; flex-wrap:wrap; margin:28px 0 40px;}
.dashboard-actions a {display:inline-block; background:#fff; border:1px solid #d8d9d3; padding:11px 17px; border-radius:7px; font-weight:600;}
.dashboard-actions a:hover {border-color:#7b9a81; text-decoration:none;}
.products-page {max-width:1100px; margin:0 auto;}
.products-page .page-header {align-items:center; margin-bottom:35px;}
.add-product-button, .primary-button {background:#2f673d; color:#fff; border:0; border-radius:7px; padding:12px 20px; font-weight:700; font-size:15px; cursor:pointer;}
.add-product-button:hover, .primary-button:hover {background:#285a35;}
.secondary-button {background:transparent; color:#444; border:1px solid #ccc; border-radius:7px; padding:11px 20px; font-weight:600; cursor:pointer;}
.product-category-group {margin-bottom:38px;}
.product-category-group > h2 {margin:0 0 15px; font-size:22px;}
.product-card-grid {display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:16px;}
.listing-card {position:relative; min-height:145px; background:#fff; border:1px solid #dddcd5; border-radius:11px; overflow:hidden; cursor:pointer;}
.listing-card-content {padding:20px;}
.listing-card h3 {margin:0 0 8px; font-size:19px;}
.listing-card p {margin:10px 0 0; color:#555;}
.listing-price {color:#2f673d; font-weight:700; font-size:17px;}
.listing-card-overlay {position:absolute; inset:0; background:rgba(36, 75, 44, .82); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .15s ease;}
.listing-card-overlay span {color:#fff; font-size:19px; font-weight:700;}
.listing-card:hover .listing-card-overlay {opacity:1;}
.empty-products {background:#fff; border:1px solid #dddcd5; border-radius:11px; padding:45px; text-align:center;}
.empty-products h2 {margin-top:0;}
.product-modal {display:none; position:fixed; inset:0; z-index:1000; align-items:center; justify-content:center; padding:25px;}
.product-modal.open {display:flex;}
.product-modal-backdrop {position:absolute; inset:0; background:rgba(0, 0, 0, .5);}
.product-modal-window {position:relative; z-index:1; width:100%; max-width:650px; max-height:90vh; overflow-y:auto; background:#fff; border-radius:12px; padding:30px; box-shadow:0 18px 60px rgba(0, 0, 0, .25);}
.product-modal-window h2 {margin:0 0 25px;}
.product-modal-close {position:absolute; top:12px; right:16px; border:0; background:transparent; font-size:30px; cursor:pointer; color:#555;}
.product-modal select {width:100%; height:42px; padding:0 12px; border:1px solid #cfd2ca; border-radius:6px; background:#fff; font-size:15px;}
.form-row {display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.modal-actions {display:flex; gap:10px; margin-top:22px;}
.modal-open {overflow:hidden;}
.modal-message, .page-message {display:block; margin-bottom:15px;}
@media (max-width: 650px) {
    .products-page .page-header {display:block;}
    .add-product-button {margin-top:15px;}
    .form-row {grid-template-columns:1fr; gap:0;}
    .product-modal-window {padding:24px 20px;}
}
.page-header h1 {margin-bottom:5px;}
.page-header p {margin:0;}
.product-form {max-width:650px; margin-bottom:45px;}
.product-list {margin-top:35px;}
.hero {padding:80px 0; max-width:760px;}
.hero h1 {font-size:54px; margin-bottom:18px;}
.hero p {font-size:20px; line-height:1.6;}
footer {border-top:1px solid #dddcd5; min-height:80px; background:#fff;}
#MainPageContent_lblMessage {display:block; margin-bottom:20px; font-weight:600; color:#35613d;}
@media (max-width:700px) {
    .site-header {padding:0 18px;}
    main {padding:30px 18px 60px;}
    h1 {font-size:31px;}
    .hero {padding:45px 0;}
    .hero h1 {font-size:40px;}
    .page-header {display:block;}
    .page-header > a {display:inline-block; margin-top:10px;}
    .join-page, .login-page, .product-form {padding:22px;}
}
.profile-page {max-width:1000px; margin:0 auto;}
.profile-form {max-width:680px; background:#fff; border:1px solid #e0dfd9; border-radius:12px; padding:32px; box-shadow:0 3px 14px rgba(0,0,0,.04);}
.profile-form h2:first-child {margin-top:0;}
.market-search {display:grid; grid-template-columns:minmax(300px, 1.5fr) minmax(220px, 1fr) auto; gap:10px; max-width:950px; padding:8px; background:#fff; border:1px solid #dddcd5; border-radius:12px; box-shadow:0 5px 20px rgba(0,0,0,.06);}
.market-search input[type=text] {height:52px; border:0; border-radius:7px; background:#f7f7f4; padding:0 17px; font-size:16px; box-shadow:none;}
.market-search input[type=text]:focus {background:#fff; box-shadow:inset 0 0 0 2px #63866a;}
.market-search input[type=submit] {height:52px; padding:0 28px; border-radius:7px;}
.producer-card {max-width:760px; padding:0; overflow:hidden;}
.producer-card-content {padding:25px 28px;}
.producer-card h3 {font-size:24px; margin:0 0 4px;}
.producer-card-description {max-width:620px; font-size:15px; line-height:1.6;}
.producer-products {display:flex; flex-wrap:wrap; gap:7px; margin:16px 0 20px;}
.producer-products span {display:inline-block; padding:6px 11px; background:#edf3ed; border:1px solid #d9e5da; border-radius:20px; color:#36543b; font-size:13px; font-weight:600;}
.view-producer {display:inline-block; margin-top:3px;}
.market-hero-shell {position:relative; max-width:1200px; margin:0 auto; padding:48px 40px 18px; background-image:url("/images/home-hero-background.png"); background-size:cover; background-position:center;}
.market-hero-copy {max-width:600px; margin-bottom:34px;}
.market-hero-copy h1 {margin:0 0 20px; font-family:Georgia, "Times New Roman", serif; font-size:60px; line-height:1; letter-spacing:-2px; color:#111;}
.market-hero-copy h1 span {color:#28693d;}
.market-hero-copy p {max-width:520px; margin:0; font-size:18px; line-height:1.5; color:#333;}
.market-search-panel {position:static; display:grid; grid-template-columns:minmax(300px, 2fr) minmax(180px, 1fr) 160px; gap:10px; align-items:end; width:700px; max-width:100%; margin-top:34px; padding:18px; background:#fff; border-radius:14px; box-shadow:0 12px 30px rgba(0,0,0,.12);}
.search-field {display:flex; flex-direction:column; gap:6px; min-width:0;}
.search-field label {font-size:11px; color:#555;}
.search-field input[type=text] {width:100%; height:46px; padding:12px; border:1px solid #d8d8d8; border-radius:7px; background:#fff; box-shadow:none;}
.market-search-panel input[type=submit] {width:100%; height:46px; margin:0; padding:0 18px; border:0; border-radius:7px; background:#28693d; color:#fff; font-weight:700;}
.popular-searches {grid-column:1 / -1; display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin-top:4px; font-size:12px;}
.popular-searches span {margin-right:3px; color:#666;}
.popular-searches a {padding:4px 10px; border:1px solid #dbe6d7; border-radius:16px; background:#eef4ea; color:#315f38; text-decoration:none;}
.market-stats {position:relative; display:flex; width:620px; max-width:100%; margin-top:0; padding:18px 20px; background:linear-gradient(90deg,rgba(8,20,12,.88) 0%,rgba(8,20,12,.78) 75%,rgba(8,20,12,.35) 100%); color:#fff;}
.market-stat {flex:1; display:flex; align-items:center; justify-content:center; gap:12px; min-width:0;}
.market-stat + .market-stat {border-left:1px solid rgba(255,255,255,.22);}
.stat-icon {width:34px; height:34px; flex:0 0 34px; color:#86c66d;}
.stat-icon svg {width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;}
.market-stat strong {display:block; font-size:21px; line-height:1.05; color:#fff;}
.market-stat div span {display:block; margin-top:5px; font-size:11px; color:rgba(255,255,255,.92);}
@media (max-width: 900px) {
    .market-hero-shell {position:relative; padding:40px 22px; margin-left:-28px; margin-right:-28px; margin-top:-45px; max-width:none;}
    .market-hero-copy h1 {font-size:44px;}
    .market-search-panel {position:static; grid-template-columns:1fr; width:100%;}
    .popular-searches {grid-column:1;}
    .market-stats {position:static; width:100%; flex-wrap:wrap; gap:18px;}
    .market-stats > div {min-width:120px;}
}
.market-hero-shell::after {content:none; display:none;}
.market-hero-map, .map-placeholder, #detroitMap, .hero-map-image, .hero-map-button {display:none;}
.market-results {max-width:1400px; margin:34px auto 0;}
.home-section {max-width:1400px; margin:0 auto; padding:25px 42px;}
.markets-nearby {padding-top:32px;}
.section-heading {display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:10px;}
.section-heading h2 {margin:3px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:35px; color:#173c25;}
.section-heading > a {color:#32683e; font-size:14px; font-weight:700;}
.section-eyebrow {font-size:10px; font-weight:800; letter-spacing:1.4px; color:#6c876e;}
.market-card-grid {display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px;}
.market-card {display:block; overflow:hidden; background:#fff; border:1px solid #e1e2db; border-radius:12px; color:inherit; box-shadow:0 3px 13px rgba(0,0,0,.04); transition:transform .15s ease,box-shadow .15s ease;}
.market-card:hover {text-decoration:none; transform:translateY(-3px); box-shadow:0 9px 25px rgba(0,0,0,.09);}
.market-card-image {position:relative; height:135px; overflow:hidden; background:#e5ebe1;}
.market-card-image img {width:100%; height:100%; object-fit:cover;}
.market-card-heart {position:absolute; top:12px; right:12px; display:flex; width:34px; height:34px; align-items:center; justify-content:center; background:rgba(255,255,255,.92); border-radius:50%; font-size:21px;}
.market-card-content {padding:10px 12px 11px;}
.market-card-content h3 {margin:0 0 3px; font-family:Arial, Helvetica, sans-serif; font-size:14px; font-weight:700;}
.market-card-location {margin-bottom:4px; font-size:11px;}
.market-card-schedule {min-height:0; margin-bottom:6px; font-size:11px; line-height:1.25;}
.market-card-tags {gap:4px;}
.market-card-tags span {padding:2px 5px; font-size:9px;}
.market-card-meta {display:flex; flex-direction:column; gap:3px; margin-bottom:6px;}
.market-card-location, .market-card-schedule {display:flex; align-items:center; gap:5px; margin:0; font-size:11px; color:#485c4d;}
.market-card-location svg, .market-card-schedule svg {width:12px; height:12px; flex:0 0 12px; fill:none; stroke:#3f6d49; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.market-card-tags {display:flex; flex-wrap:wrap; gap:0; font-size:10px; color:#355640;}
.market-card-tags span {padding:0; background:none; border-radius:0; color:inherit; font-size:inherit; font-weight:400;}
.market-card-tags span + span::before {content:"•"; margin:0 7px; color:#55725c;}
@media (max-width:1000px) {
    .market-card-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:600px) {
    .home-section {padding:45px 20px;}
    .market-card-grid {grid-template-columns:1fr;}
    .section-heading {align-items:flex-start;}
}
.fresh-products {background:#f7f5ee;}
.fresh-product-grid {display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:14px;}
.fresh-product-card {display:block; color:inherit; text-align:left;}
.fresh-product-card:hover {text-decoration:none;}
.fresh-product-image {width:100%; aspect-ratio:1/1; overflow:hidden; background:#e5eadf; border-radius:8px;}
.fresh-product-image img {width:100%; height:100%; object-fit:cover;}
.fresh-product-placeholder {background:linear-gradient(145deg,#dae6d5,#edf1e8);}
.fresh-product-content {padding:8px 2px 0;}
.fresh-product-content h3 {margin:0 0 3px; font-family:Arial, Helvetica, sans-serif; font-size:13px; font-weight:700; color:#183d25;}
.fresh-product-farms {display:flex; align-items:center; gap:4px; font-size:10px; color:#65806a;}
.fresh-product-farms svg {width:11px; height:11px; fill:none; stroke:#4f8058; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.fresh-product-content span {font-size:12px; color:#718074;}
@media (max-width:1100px) {
    .fresh-product-grid {grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media (max-width:650px) {
    .fresh-product-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
}
.featured-farms {background:#fff;}
.featured-farm-grid {display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:18px;}
.featured-farm-card {display:block; overflow:hidden; background:#fff; border:1px solid #e0e2dc; border-radius:12px; color:inherit; box-shadow:0 3px 13px rgba(0,0,0,.04); transition:transform .15s ease,box-shadow .15s ease;}
.featured-farm-card:hover {text-decoration:none; transform:translateY(-3px); box-shadow:0 9px 24px rgba(0,0,0,.09);}
.featured-farm-image {position:relative; height:175px; overflow:hidden; background:linear-gradient(145deg,#dce8d7,#edf2e9);}
.farm-image-placeholder {display:flex; width:100%; height:100%; align-items:center; justify-content:center; padding:20px; font-family:Georgia,"Times New Roman",serif; font-size:20px; text-align:center; color:#44634b;}
.featured-farm-heart {position:absolute; top:12px; right:12px; display:flex; width:34px; height:34px; align-items:center; justify-content:center; background:rgba(255,255,255,.92); border-radius:50%; font-size:21px;}
.featured-farm-content {padding:18px;}
.featured-farm-content h3 {margin:0 0 5px; font-family:Georgia,"Times New Roman",serif; font-size:19px; color:#193d26;}
.featured-farm-location {margin-bottom:10px; color:#637466; font-size:12px; font-weight:600;}
.featured-farm-content p {min-height:42px; margin:0 0 14px; font-size:13px; line-height:1.5; color:#555;}
.featured-farm-tags {display:flex; flex-wrap:wrap; gap:5px;}
.featured-farm-tags span {padding:4px 8px; background:#eef4ea; border-radius:12px; color:#426149; font-size:10px; font-weight:700;}
@media (max-width:1150px) {
    .featured-farm-grid {grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:700px) {
    .featured-farm-grid {grid-template-columns:1fr;}
}
.how-it-works {padding:75px 42px 85px; background:#f3f0e6; text-align:center;}
.how-heading {max-width:650px; margin:0 auto 48px;}
.how-heading h2 {margin:5px 0 12px; font-family:Georgia,"Times New Roman",serif; font-size:38px; color:#173c25;}
.how-heading p {margin:0; color:#687069; font-size:15px;}
.how-steps {display:grid; grid-template-columns:repeat(4,1fr); gap:30px; max-width:1150px; margin:0 auto;}
.how-step {position:relative; padding:15px 25px;}
.step-number {position:absolute; top:0; left:calc(50% + 24px); display:flex; width:22px; height:22px; align-items:center; justify-content:center; background:#2e6a3c; border-radius:50%; color:#fff; font-size:11px; font-weight:700;}
.step-icon {display:flex; width:70px; height:70px; margin:0 auto 18px; align-items:center; justify-content:center; background:#fff; border:1px solid #dce4d8; border-radius:50%; font-size:29px; box-shadow:0 4px 14px rgba(0,0,0,.05);}
.how-step h3 {margin:0 0 8px; font-family:Georgia,"Times New Roman",serif; font-size:20px; color:#193d26;}
.how-step p {max-width:220px; margin:0 auto; color:#687069; font-size:13px; line-height:1.55;}
@media (max-width:800px) {
    .how-steps {grid-template-columns:repeat(2,1fr);}
}
@media (max-width:500px) {
    .how-steps {grid-template-columns:1fr;}
    .how-it-works {padding:55px 20px;}
}
.newsletter-band {padding:52px 42px; background:#2d6239; color:#fff;}
.newsletter-inner {display:flex; align-items:center; justify-content:space-between; gap:50px; max-width:1200px; margin:0 auto;}
.newsletter-copy h2 {margin:0 0 7px; font-family:Georgia,"Times New Roman",serif; font-size:34px; color:#fff;}
.newsletter-copy p {margin:0; color:rgba(255,255,255,.82); font-size:14px;}
.newsletter-form {display:flex; width:440px; max-width:100%; padding:5px; background:#fff; border-radius:8px;}
.newsletter-form input {flex:1; min-width:0; height:45px; padding:0 14px; border:0; outline:0; background:transparent; font-size:14px;}
.newsletter-form button {height:45px; padding:0 22px; border:0; border-radius:6px; background:#173c25; color:#fff; font-weight:700; cursor:pointer;}
.newsletter-form button:hover {background:#0e2c1a;}
@media (max-width:750px) {
    .newsletter-inner {flex-direction:column; align-items:flex-start;}
    .newsletter-form {width:100%;}
    .newsletter-band {padding:42px 20px;}
}
.site-footer {background:#173c25; color:#fff;}
.footer-main {display:grid; grid-template-columns:2fr repeat(4,1fr) 1.4fr; gap:42px; max-width:1400px; margin:0 auto; padding:65px 42px 55px;}
.footer-brand {max-width:270px;}
.footer-logo {font-family:Georgia,"Times New Roman",serif; font-size:27px; color:#fff;}
.footer-logo:hover {color:#fff; text-decoration:none;}
.footer-brand > p {margin:8px 0 17px; font-size:9px; font-weight:700; letter-spacing:1.2px; color:#b9cfbb;}
.footer-brand > span {display:block; font-size:12px; line-height:1.6; color:#b8c7ba;}
.footer-column {display:flex; flex-direction:column; gap:10px;}
.footer-column h4, .footer-app h4 {margin:0 0 7px; font-size:13px; color:#fff;}
.footer-column a {color:#b8c7ba; font-size:12px;}
.footer-column a:hover {color:#fff; text-decoration:none;}
.footer-app strong {display:block; margin-bottom:6px; font-family:Georgia,"Times New Roman",serif; font-size:18px; color:#dbe8d9;}
.footer-app p {margin:0; font-size:11px; color:#9eb1a1;}
.footer-bottom {display:flex; justify-content:space-between; max-width:1400px; margin:0 auto; padding:20px 42px; border-top:1px solid rgba(255,255,255,.12); color:#93a997; font-size:11px;}
@media (max-width:1100px) {
    .footer-main {grid-template-columns:2fr repeat(2,1fr);}
}
@media (max-width:650px) {
    .footer-main {grid-template-columns:1fr 1fr; padding:45px 20px;}
    .footer-brand {grid-column:1 / -1;}
    .footer-app {grid-column:1 / -1;}
    .footer-bottom {padding:20px; flex-direction:column; gap:6px;}
}
@media (max-width:700px) {
    .brand img {width:210px; max-height:58px;}
}
@media (max-width: 1000px) {
    .site-header {gap:16px; padding:0 18px;}
    .site-header nav {gap:14px;}
    .brand img {width:215px;}
}

.public-products-page {min-height:600px;}
.public-product-search {display:flex; gap:10px; margin:0 0 28px;}
.public-product-search input[type="text"] {width:320px; max-width:100%; padding:10px 12px; border:1px solid #ccd3ca; border-radius:6px; font:inherit;}
.public-product-search input[type="submit"] {padding:10px 18px; border:0; border-radius:6px; background:#245b35; color:#fff; font-weight:700; cursor:pointer;}
.public-product-grid {display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px;}
.public-product-card {overflow:hidden; background:#fff; border:1px solid #e1e2db; border-radius:12px;}
.public-product-image {height:190px; overflow:hidden; background:#e5eadf;}
.public-product-image img {width:100%; height:100%; object-fit:cover;}
.public-product-placeholder {background:linear-gradient(145deg,#dae6d5,#edf1e8);}
.public-product-content {padding:15px;}
.public-product-content h3 {margin:2px 0 5px; font-size:17px; color:#183d25;}
.public-product-category {font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:#63806a;}
.public-product-farm {font-size:12px; color:#3f6d49;}
.public-product-content p {margin:9px 0; font-size:12px; line-height:1.45;}
.public-product-price {margin-top:10px; font-weight:700; color:#183d25;}
@media (max-width: 900px) {
    .public-product-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 550px) {
    .public-product-grid {grid-template-columns:1fr;}
}
.location-manager {display:grid; grid-template-columns:360px 520px; gap:40px; align-items:start; max-width:920px; margin-bottom:10px;}
.location-form-panel, .location-list-panel {padding:24px; background:#fff; border:1px solid #e1e2db; border-radius:12px;}
.location-form-panel .form-field input, .location-form-panel .form-field select {box-sizing:border-box; width:100%;}
.location-form-panel .form-row {display:grid; grid-template-columns:1fr 90px; gap:12px;}
.form-field select {box-sizing:border-box; width:100%; padding:10px 12px; border:1px solid #ccd3ca; border-radius:6px; background:#fff; font:inherit;}
.location-options {display:grid; gap:8px; margin:5px 0 20px; font-size:12px;}
.location-item {padding:16px 0; border-bottom:1px solid #e5e5df; font-size:12px; line-height:1.5; color:#5e6961;}
.location-item:first-child {padding-top:0;}
.location-item-heading {display:flex; align-items:center; gap:9px;}
.location-item-heading h3 {margin:0; font-size:16px; color:#183d25;}
.location-primary {padding:2px 7px; border-radius:10px; background:#e6efe4; font-size:9px; font-weight:700; text-transform:uppercase; color:#32613c;}
.location-type {margin:2px 0 7px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:#63806a;}
.location-visibility {margin-top:7px; font-size:10px; font-weight:700; color:#43804d;}
.location-private {color:#8a6c52;}
.location-actions {display:flex; gap:8px; margin-top:14px;}
.location-button {display:inline-block; box-sizing:border-box; padding:7px 12px; border:1px solid #ccd3ca; border-radius:6px; background:#fff; font-size:11px; font-weight:700; line-height:1; text-decoration:none; cursor:pointer;}
.location-button:hover {background:#f4f5f1;}
.location-button-danger {border-color:#b94a40; color:#9b3028;}
.location-button-danger:hover {background:#f8e9e7; color:#7d211b;}
.location-remove {font-size:11px; font-weight:700; color:#9b3b32; text-decoration:none;}
.location-remove:hover {text-decoration:underline;}
.location-group {margin-bottom:28px;}
.location-group:last-child {margin-bottom:0;}
.location-group-heading {margin:0 0 12px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:1px; color:#637068;}
.location-item {position:relative; box-sizing:border-box; margin:0 0 18px; padding:30px 18px 18px; border:1px solid #dfe2dc; border-radius:9px; background:#fff; font-size:12px; line-height:1.5; color:#5e6961;}
.location-item:first-child {padding-top:30px;}
.location-item:last-child {margin-bottom:0;}
.location-type-tab {position:absolute; top:-1px; left:14px; padding:5px 12px; border-radius:0 0 6px 6px; font-size:9px; font-weight:800; line-height:1; letter-spacing:.7px; text-transform:uppercase;}
.location-type-farm .location-type-tab {background:#dcebd9; color:#315b35;}
.location-type-farm-stand .location-type-tab {background:#f5e3b8; color:#805d12;}
.location-type-market .location-type-tab {background:#dbe9f3; color:#315d79;}
.location-type-pickup .location-type-tab {background:#e6ddf1; color:#624779;}
.location-type-store .location-type-tab {background:#eadbd2; color:#77513d;}
.location-type-other .location-type-tab {background:#e4e5e2; color:#595d59;}
.location-form-actions {display:flex; align-items:center; gap:10px;}
.location-actions {display:flex; flex-wrap:wrap; gap:8px; margin-top:14px;}
@media (max-width: 900px) {
    .location-manager {grid-template-columns:1fr; max-width:520px;}
}

.nav-control {display:flex; align-items:center; justify-content:center; flex:1;}
.site-header .desktop-nav {display:flex; align-items:center; justify-content:center; gap:24px; flex:1; white-space:nowrap;}
.site-header .desktop-nav a {margin:0; text-decoration:none;}
.mobile-nav-toggle {display:none; padding:5px 7px; background:transparent; color:#244b2c; border:0; border-radius:0; font-size:27px; line-height:1; cursor:pointer;}
.mobile-nav-toggle:hover {background:transparent;}
.mobile-nav-overlay {position:fixed; inset:0; z-index:1998; background:rgba(0,0,0,.42); opacity:0; visibility:hidden; transition:opacity .2s ease,visibility .2s ease;}
.mobile-nav-overlay.open {opacity:1; visibility:visible;}
.mobile-nav-drawer {position:fixed; top:0; right:0; z-index:1999; width:min(340px,85vw); height:100vh; padding:22px; background:#f5f4ef; box-shadow:-10px 0 35px rgba(0,0,0,.18); transform:translateX(105%); transition:transform .25s ease;}
.mobile-nav-drawer.open {transform:translateX(0);}
.mobile-nav-header {display:flex; align-items:center; justify-content:space-between; padding-bottom:18px; border-bottom:1px solid #dddcd5;}
.mobile-nav-header strong {font-family:Georgia,"Times New Roman",serif; font-size:23px; color:#203c26;}
.mobile-nav-close {padding:0; background:transparent; color:#244b2c; border:0; font-size:34px; line-height:1; cursor:pointer;}
.mobile-nav-close:hover {background:transparent;}
.site-header .mobile-nav {display:flex; flex-direction:column; align-items:stretch; gap:0; padding-top:12px; white-space:normal;}
.site-header .mobile-nav a {display:block; padding:15px 4px; border-bottom:1px solid #e0dfd9; color:#203c26; font-size:17px; text-decoration:none;}
.site-header .mobile-nav a:hover {color:#35613d; text-decoration:none;}
.mobile-nav-location {margin-top:25px; padding:14px 0; color:#526057; font-size:14px;}
.nav-open {overflow:hidden;}

@media (max-width:820px) {
.site-header {position:relative; height:72px; min-height:72px; flex-wrap:nowrap; padding:0 18px;}
.site-header .brand {position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);}
.site-header .desktop-nav {display:none;}
.header-actions {display:none;}
.nav-control {flex:0 0 auto; margin-left:auto;}
.mobile-nav-toggle {display:block;}
.brand img {width:205px; max-height:56px;}
}

.restaurants-coming-soon {max-width:1120px; margin:0 auto; padding:75px 28px 100px;}
.restaurants-intro {max-width:880px; margin:0 auto 60px; text-align:center;}
.restaurants-intro .section-eyebrow {display:inline-block; margin-bottom:14px;}
.restaurants-intro h1 {margin:0 0 26px; font-family:Georgia,"Times New Roman",serif; font-size:58px; font-weight:700; line-height:1.02; letter-spacing:-1.5px; color:#111;}
.restaurants-intro h1 span {display:block;}
.restaurants-intro h1 .restaurant-hero-green {color:#28723d;}
.restaurants-intro p {max-width:780px; margin:0 auto 14px; color:#59605b; font-size:17px; line-height:1.7;}
.restaurants-intro .restaurants-lead {max-width:720px; font-size:20px; color:#374c3c;}
.restaurants-features {display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:70px;}
.restaurant-feature {background:#fff; border:1px solid #dddcd5; border-radius:12px; padding:30px 28px; box-shadow:0 4px 18px rgba(32,60,38,.05);}
.restaurant-feature h3 {margin:0 0 12px; color:#203c26; font-family:Georgia,"Times New Roman",serif; font-size:21px;}
.restaurant-feature p {margin:0; color:#626862; font-size:15px; line-height:1.65;}
.restaurant-signup {display:grid; grid-template-columns:minmax(0,1fr) minmax(400px,.85fr); gap:65px; align-items:center; padding:58px 60px; background:#ebece4; border:1px solid #ddded5; border-radius:18px;}
.restaurant-signup-copy {max-width:500px;}
.restaurant-signup-copy .section-eyebrow {display:inline-block; margin-bottom:12px;}
.restaurant-signup-copy h2 {margin:0 0 22px; font-family:Georgia,"Times New Roman",serif; font-size:42px; font-weight:700; line-height:1.08; letter-spacing:-.7px; color:#111;}
.restaurant-signup-copy h2 span {color:#28723d;}
.restaurant-signup-copy p {margin:0 0 16px; color:#555e57; font-size:16px; line-height:1.7;}
.restaurant-signup-copy .restaurant-no-commitment {margin-top:22px; color:#374c3c; font-weight:600;}
.restaurant-signup-form {box-sizing:border-box; width:100%; background:#fff; border:1px solid #d8dad2; border-radius:14px; padding:32px; box-shadow:0 10px 30px rgba(32,60,38,.08);}
.restaurant-form-heading {margin-bottom:25px;}
.restaurant-form-heading h3 {margin:0 0 5px; color:#203c26; font-family:Georgia,"Times New Roman",serif; font-size:27px;}
.restaurant-form-heading p {margin:0; color:#747b75; font-size:14px;}
.restaurant-signup-form .form-group {margin-bottom:17px;}
.restaurant-signup-form label {display:block; margin-bottom:7px; color:#314036; font-size:14px; font-weight:700;}
.restaurant-signup-form input[type=text], .restaurant-signup-form input[type=email] {box-sizing:border-box; width:100%; height:45px; padding:0 12px; border:1px solid #cfd2ca; border-radius:7px; background:#fff; font-size:15px;}
.restaurant-signup-form input[type=text]:focus, .restaurant-signup-form input[type=email]:focus {outline:none; border-color:#5c8064; box-shadow:0 0 0 3px rgba(47,103,61,.08);}
.restaurant-signup-form .form-row {display:grid; grid-template-columns:2fr 1fr; gap:15px;}
.restaurant-form-message {display:block; margin:0 0 15px; color:#a3342d; font-size:14px; font-weight:600;}
.restaurant-signup-button {width:100%; margin-top:3px; padding:14px 20px; background:#2f673d; color:#fff; border:0; border-radius:7px; font-size:16px; font-weight:700; cursor:pointer;}
.restaurant-signup-button:hover {background:#285a35;}
.restaurant-thank-you {padding:35px 15px; text-align:center;}
.restaurant-thank-you h3 {margin:0 0 12px; color:#2f673d; font-family:Georgia,"Times New Roman",serif; font-size:29px;}
.restaurant-thank-you p {margin:0; color:#555; line-height:1.65;}

@media (max-width:850px) {
.restaurants-coming-soon {padding:50px 20px 70px;}
.restaurants-intro {margin-bottom:40px;}
.restaurants-intro h1 {font-size:44px;}
.restaurants-features {grid-template-columns:1fr; gap:14px; margin-bottom:45px;}
.restaurant-signup {grid-template-columns:1fr; gap:35px; padding:38px 28px;}
.restaurant-signup-copy {max-width:none;}
}

@media (max-width:520px) {
.restaurants-intro h1 {font-size:35px;}
.restaurants-intro .restaurants-lead {font-size:18px;}
.restaurant-signup {padding:28px 18px;}
.restaurant-signup-copy h2 {font-size:34px;}
.restaurant-signup-form {padding:22px 18px;}
.restaurant-signup-form .form-row {grid-template-columns:1fr;}
}

.about-page {max-width:1120px; margin:0 auto; padding:75px 28px 100px;}
.about-hero {max-width:900px; margin:0 auto 75px; text-align:center;}
.about-hero .section-eyebrow {display:inline-block; margin-bottom:14px;}
.about-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;}
.about-hero h1 span {display:block;}
.about-hero-green {color:#28723d;}
.about-hero p {max-width:720px; margin:0 auto; color:#4f5b53; font-size:20px; line-height:1.65;}
.about-story {display:grid; grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr); gap:65px; align-items:center; margin-bottom:75px;}
.about-story-copy h2 {margin:7px 0 20px; font-family:Georgia,"Times New Roman",serif; font-size:38px; line-height:1.12; color:#203c26;}
.about-story-copy p {margin:0 0 17px; color:#59605b; font-size:16px; line-height:1.75;}
.about-callout {background:#ebece4; border:1px solid #ddded5; border-radius:16px; padding:42px;}
.about-callout-label {margin-bottom:12px; color:#5b7a62; font-size:11px; font-weight:800; letter-spacing:2px;}
.about-callout-big {margin-bottom:16px; font-family:Georgia,"Times New Roman",serif; font-size:36px; font-weight:700; line-height:1.08; color:#28723d;}
.about-callout p {margin:0; color:#566058; font-size:16px; line-height:1.65;}
.about-principles {display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:80px;}
.about-principle {background:#fff; border:1px solid #dddcd5; border-radius:12px; padding:32px 28px; box-shadow:0 4px 18px rgba(32,60,38,.05);}
.about-number {display:block; margin-bottom:18px; color:#719078; font-size:12px; font-weight:800; letter-spacing:2px;}
.about-principle h3 {margin:0 0 12px; font-family:Georgia,"Times New Roman",serif; font-size:23px; color:#203c26;}
.about-principle p {margin:0; color:#626862; font-size:15px; line-height:1.65;}
.about-vision {max-width:850px; margin:0 auto; padding:55px 40px; text-align:center; background:#f1f0ea; border-radius:16px;}
.about-vision h2 {margin:8px 0 22px; font-family:Georgia,"Times New Roman",serif; font-size:40px; line-height:1.08; color:#111;}
.about-vision h2 span {display:block;}
.about-vision p {max-width:700px; margin:0 auto 12px; color:#59605b; font-size:17px; line-height:1.7;}

@media (max-width:850px) {
.about-page {padding:50px 20px 70px;}
.about-hero {margin-bottom:50px;}
.about-hero h1 {font-size:44px;}
.about-story {grid-template-columns:1fr; gap:35px; margin-bottom:50px;}
.about-principles {grid-template-columns:1fr; gap:14px; margin-bottom:50px;}
.about-vision {padding:40px 25px;}
}

@media (max-width:520px) {
.about-hero h1 {font-size:35px;}
.about-hero p {font-size:18px;}
.about-story-copy h2 {font-size:32px;}
.about-callout {padding:30px 24px;}
.about-callout-big {font-size:31px;}
.about-vision h2 {font-size:32px;}
}

.farms-page {max-width:1120px; margin:0 auto; padding:75px 28px 100px;}
.farms-hero {max-width:900px; margin:0 auto 45px; text-align:center;}
.farms-hero .section-eyebrow {display:inline-block; margin-bottom:14px;}
.farms-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;}
.farms-hero h1 span {display:block;}
.farms-hero-green {color:#28723d;}
.farms-hero p {max-width:750px; margin:0 auto; color:#4f5b53; font-size:19px; line-height:1.65;}
.farms-search {display:flex; max-width:680px; margin:0 auto 55px; padding:6px; background:#fff; border:1px solid #d8dad2; border-radius:10px; box-shadow:0 5px 20px rgba(32,60,38,.06);}
.farms-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;}
.farms-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;}
.farms-search input[type=submit]:hover {background:#285a35;}
.farms-grid {display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.farm-directory-card {display:block; min-width:0; background:#fff; border:1px solid #dddcd5; border-radius:13px; color:inherit; text-decoration:none; overflow:hidden; box-shadow:0 4px 18px rgba(32,60,38,.05); transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;}
.farm-directory-card:hover {transform:translateY(-3px); border-color:#c4cec5; box-shadow:0 10px 28px rgba(32,60,38,.10); text-decoration:none;}
.farm-directory-content {display:flex; flex-direction:column; box-sizing:border-box; min-height:245px; height:100%; padding:28px;}
.farm-directory-location {margin-bottom:12px; color:#718076; font-size:13px; font-weight:600;}
.farm-directory-card h2 {margin:0 0 13px; font-family:Georgia,"Times New Roman",serif; color:#203c26; font-size:24px; line-height:1.15;}
.farm-directory-card p {margin:0 0 25px; color:#626862; font-size:15px; line-height:1.65;}
.farm-directory-footer {display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:auto; padding-top:18px; border-top:1px solid #ecece7;}
.farm-directory-footer span {color:#727a74; font-size:13px;}
.farm-directory-footer strong {color:#28723d; font-size:13px; white-space:nowrap;}
.farms-empty {max-width:680px; margin:0 auto; padding:45px; background:#f1f0ea; border-radius:13px; text-align:center;}
.farms-empty h2 {margin:0 0 10px; font-family:Georgia,"Times New Roman",serif; color:#203c26;}
.farms-empty p {margin:0; color:#626862;}

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

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

@media (max-width:450px) {
.farms-search input[type=submit] {padding:0 17px;}
.farm-directory-content {min-height:0;}
}
