:root {
    --ink: #0b4469;
    --muted: #557488;
    --green: #1396c2;
    --green-dark: #0b638f;
    --lime: #9efbd3;
    --sand: #eef9fb;
    --cream: #fff;
    --line: #d2e7ee;
    --white: #fff;
    --shadow: 0 18px 50px rgba(20, 53, 47, .10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: "Play", sans-serif; line-height: 1.55; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
h1, h2, h3 { margin: 0; font-family: "Play", sans-serif; font-weight: 400; line-height: 1.08; letter-spacing: 0; }
p { margin: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.eyebrow { margin-bottom: .65rem; color: var(--green); font-size: .76rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; border: 1px solid var(--green); border-radius: 999px; padding: .72rem 1.35rem; color: white; background: var(--green); font: inherit; font-weight: 700; cursor: pointer; }
.button:hover { background: var(--green-dark); }
.button-small { min-height: 40px; padding: .5rem 1rem; font-size: .88rem; }
.button-outline { color: var(--green); background: transparent; }
.button-outline:hover { color: white; }
.button-light { border-color: white; color: var(--green-dark); background: white; }
.button:disabled { cursor: not-allowed; opacity: .55; }
.text-link, .card-link { color: var(--green); font-weight: 700; }

.site-header { position: relative; z-index: 5; min-height: 265px; overflow: hidden; padding: 0 clamp(1.25rem, 6vw, 5rem) 1.5rem; color: white; background: linear-gradient(110deg, #338fa8 0%, #237fa9 52%, #176da8 100%); }
.site-header::before { position: absolute; inset: -40%; pointer-events: none; content: ""; opacity: .38; background-image: repeating-radial-gradient(ellipse at 15% 10%, transparent 0 24px, rgba(137,151,139,.65) 25px 26px, transparent 27px 49px); background-size: 440px 300px; transform: rotate(-5deg) scale(1.2); }
.site-header nav { position: relative; z-index: 2; display: flex; max-width: 1060px; align-items: center; justify-content: space-between; gap: 1.5rem; margin: 0 auto; padding: 1.3rem 0 .8rem; font-size: .95rem; font-weight: 400; }
.site-header nav a { position: relative; padding: .5rem 0; }
.site-header nav a.active::after { position: absolute; right: 0; bottom: 0; left: 0; height: 2px; content: ""; background: white; }
.masthead { position: relative; z-index: 2; display: flex; align-items: center; flex-direction: column; justify-content: center; text-align: center; }
.masthead-name { overflow: hidden; max-width: 100%; color: white; font-size: clamp(3.5rem, 7.3vw, 6.7rem); font-weight: 400; line-height: 1.12; white-space: nowrap; }
.masthead-tagline { margin-top: .15rem; color: white; font-size: clamp(1.25rem, 2.5vw, 2rem); letter-spacing: .025em; }

.hero { position: relative; display: grid; min-height: 400px; grid-template-columns: minmax(0, 1.15fr) .85fr; overflow: hidden; color: var(--ink); background: white; }
.hero::before, .directory-section::before { position: absolute; inset: -30%; pointer-events: none; content: ""; opacity: .09; background-image: repeating-radial-gradient(ellipse at 15% 10%, transparent 0 24px, rgba(71,113,128,.7) 25px 26px, transparent 27px 49px); background-size: 420px 280px; transform: rotate(-5deg) scale(1.15); }
.hero-copy { position: relative; z-index: 2; align-self: center; padding: 2.7rem clamp(1.25rem, 7vw, 8rem); padding-right: 3rem; }
.hero .eyebrow { color: var(--green-dark); }
.hero h1 { max-width: 800px; color: var(--ink); font-size: clamp(2.7rem, 4.3vw, 4.5rem); font-weight: 400; }
.hero-copy > p:not(.eyebrow) { max-width: 720px; margin-top: 1.5rem; color: var(--muted); font-size: 1.15rem; }
.hero-search { display: grid; max-width: 820px; grid-template-columns: 1.4fr 1fr auto; gap: .7rem; margin-top: 1.5rem; padding: .45rem; border-radius: 16px; background: white; box-shadow: var(--shadow); }
.hero-search input, .hero-search select { width: 100%; min-height: 52px; border: 0; border-right: 1px solid var(--line); padding: 0 1rem; outline: 0; color: var(--ink); background: transparent; font: inherit; }
.hero-search select { border-right: 0; }
.hero-stats { display: flex; flex-wrap: wrap; gap: 1.6rem; margin-top: 1.25rem; color: var(--muted); font-size: .88rem; }
.hero-stats strong { color: var(--ink); }.hero-stats a { color: var(--green-dark); }
.hero-panel { position: relative; min-height: 100%; overflow: hidden; background: linear-gradient(110deg, #338fa8 0%, #237fa9 52%, #176da8 100%); }
.hero-map { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 400px; background: var(--sand); }
.marsh-lines { position: absolute; inset: 0; opacity: .45; background: radial-gradient(circle at 40% 20%, transparent 0 14%, rgba(220,235,155,.55) 14.5% 15%, transparent 15.5% 28%, rgba(255,255,255,.2) 28.5% 29%, transparent 29.5%), radial-gradient(circle at 70% 75%, transparent 0 20%, rgba(220,235,155,.5) 20.5% 21%, transparent 21.5% 36%, rgba(255,255,255,.2) 36.5% 37%, transparent 37.5%); transform: scale(1.4); }
.map-pin { position: absolute; width: 18px; height: 18px; border: 5px solid var(--lime); border-radius: 50% 50% 50% 0; background: var(--green-dark); box-shadow: 0 6px 18px rgba(0,0,0,.25); transform: rotate(-45deg); }
.pin-one { top: 22%; left: 28%; }.pin-two { top: 48%; right: 22%; }.pin-three { bottom: 19%; left: 42%; }
.hero-card { position: absolute; right: 10%; bottom: 12%; width: 220px; padding: 1.25rem; border: 1px solid rgba(255,255,255,.3); border-radius: 18px; color: white; background: rgba(13,79,67,.75); box-shadow: var(--shadow); backdrop-filter: blur(12px); font-family: "Manrope"; font-weight: 700; }
.hero-card span { color: var(--lime); }.hero-card small { color: rgba(255,255,255,.7); font-family: "DM Sans"; font-weight: 400; }

.directory-section { max-width: 1760px; }.profile-shell, .map-page { max-width: 1440px; }.directory-section, .profile-shell, .map-page { margin: 0 auto; padding: 3rem clamp(1.25rem, 5vw, 5rem); }
.directory-section { position: relative; overflow: hidden; }
.directory-section::before { z-index: -1; opacity: .08; }
.section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 1.5rem; }
.section-heading h2 { font-size: clamp(1.8rem, 2.6vw, 2.8rem); }
.business-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.business-card { overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: white; transition: .25s ease; }
.business-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.business-list-card { display: flex; height: 300px; grid-column: 1 / -1; flex-direction: column; background: var(--sand); }.business-list-card:hover { transform: none; }.business-list-heading { padding: 1.3rem 1.4rem 1rem; border-bottom: 1px solid var(--line); }.business-list-heading h3 { font-size: 1.5rem; }.business-list-heading > p:last-child { margin-top: .25rem; color: var(--muted); font-size: .86rem; }.business-name-list { overflow-y: auto; padding: .35rem 0; scrollbar-color: var(--green) transparent; }.business-name-list a { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .65rem 1.4rem; border-bottom: 1px solid rgba(11,68,105,.08); color: var(--ink); font-size: .9rem; line-height: 1.3; }.business-name-list a:hover { color: var(--green-dark); background: white; }.business-name-list strong { color: var(--green); }
.card-image { display: flex; height: 180px; padding: 1.35rem; align-items: center; justify-content: center; overflow: hidden; background: white; }
.card-image img { width: auto; height: auto; max-width: 100%; max-height: 100%; flex: 0 1 auto; object-fit: contain; object-position: center; }
.image-placeholder { display: grid; width: 92px; height: 92px; place-items: center; border-radius: 24px; color: white; background: var(--green); font-family: "Manrope"; font-size: 1.6rem; font-weight: 800; }
.card-body { padding: 1.2rem 1.35rem; }
.card-body .location { color: var(--green); font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.card-body h3 { margin-top: .45rem; font-size: 1.28rem; }
.card-body > p:not(.location) { min-height: 4.7em; margin-top: .8rem; color: var(--muted); font-size: .92rem; }
.card-link { display: flex; justify-content: space-between; margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.pagination { margin-top: 2.5rem; }
.pagination nav > div:first-child { display: flex; gap: .5rem; }
.pagination nav > div:last-child { display: none; }
.pagination a, .pagination span { display: inline-flex; min-width: 38px; min-height: 38px; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 10px; padding: .35rem .65rem; }
.pagination span[aria-current="page"] span { border-color: var(--green); color: white; background: var(--green); }
.empty-state { padding: 5rem; border: 1px dashed var(--line); border-radius: 24px; text-align: center; background: white; }
.empty-state p { margin: .75rem 0 1.5rem; color: var(--muted); }
.community-banner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin: 1rem clamp(1.25rem,5vw,5rem) 5rem; padding: clamp(2rem,5vw,4.5rem); border-radius: 28px; color: white; background: linear-gradient(110deg, #338fa8 0%, #237fa9 52%, #176da8 100%); }
.community-banner .eyebrow { color: var(--lime); }.community-banner h2 { font-size: clamp(2rem,4vw,4rem); }.community-banner p:not(.eyebrow) { max-width: 650px; margin-top: 1rem; color: rgba(255,255,255,.75); }
.member-signin-section { display: grid; grid-template-columns: minmax(240px,.65fr) minmax(620px,1.35fr); gap: clamp(2rem,5vw,6rem); align-items: center; padding: 5rem clamp(1.25rem,6vw,7rem); color: white; background: linear-gradient(110deg, #338fa8 0%, #237fa9 52%, #176da8 100%); scroll-margin-top: 1rem; }.member-signin-intro h2 { margin: .4rem 0 1rem; font-size: clamp(2.5rem,5vw,5rem); }.member-signin-intro p { max-width: 650px; color: rgba(255,255,255,.82); font-size: 1.05rem; }.member-signin-intro a { color: white; font-weight: 700; text-decoration: underline; }.member-access-panels { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; align-items: stretch; }.directory-login-form { padding: 2rem; border-radius: 20px; color: var(--ink); background: white; box-shadow: var(--shadow); }.directory-login-form h3 { margin-bottom: .8rem; font-size: 1.7rem; }.directory-login-form > p { color: var(--muted); }.directory-login-form > label:not(.check-row) { display: block; margin-top: .9rem; font-weight: 700; }.directory-login-form input:not([type=checkbox]) { width: 100%; min-height: 46px; margin-top: .35rem; padding: 0 .8rem; border: 1px solid var(--line); border-radius: 9px; background: #f8fbfb; font: inherit; }.directory-login-form .button { width: 100%; margin-top: 1rem; }.activation-form { border: 3px solid #9df7d5; background: #f3fffb; }.activation-form .eyebrow { color: var(--green); }.signin-links { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1rem; font-size: .88rem; }.signin-links a { color: var(--green); font-weight: 700; }.signed-in-card p { margin-bottom: 1rem; color: var(--muted); }

.back-link { display: inline-block; margin-bottom: 1.5rem; color: var(--green); font-weight: 700; }
.profile-hero { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 2.5rem; border-radius: 26px; background: var(--sand); }
.profile-identity { display: flex; align-items: center; gap: 2rem; }
.profile-logo { width: 150px; height: 150px; flex: 0 0 auto; border-radius: 22px; object-fit: contain; padding: 1rem; background: white; box-shadow: 0 10px 30px rgba(20,53,47,.08); }
.profile-identity h1 { max-width: 800px; font-size: clamp(2.2rem,4vw,4.5rem); }
.tag-list { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; }
.tag-list span, .status-pill { padding: .38rem .7rem; border-radius: 999px; color: var(--green-dark); background: var(--lime); font-size: .75rem; font-weight: 700; }
.profile-actions { display: flex; flex-direction: column; gap: .7rem; }
.profile-layout { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 4rem; margin-top: 4rem; }
.rich-copy { color: #354845; font-size: 1.04rem; line-height: 1.8; }
.contact-card { align-self: start; padding: 1.7rem; border: 1px solid var(--line); border-radius: 22px; background: white; box-shadow: var(--shadow); }
.contact-card h2 { margin-bottom: 1rem; font-size: 1.3rem; }
.contact-card > div { padding: 1rem 0; border-top: 1px solid var(--line); }
.contact-card small { display: block; margin-bottom: .2rem; color: var(--muted); font-weight: 700; text-transform: uppercase; }
.contact-card a:not(.text-link) { overflow-wrap: anywhere; color: var(--green); }
.contact-card .profile-directions { margin-top: 1rem; padding-bottom: 0; }.direction-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-top: .55rem; }.contact-card .direction-buttons a { min-height: 40px; padding: .55rem .65rem; color: white; font-size: .8rem; white-space: nowrap; }
.gallery { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; margin-top: 2.5rem; }
.gallery img { width: 100%; aspect-ratio: 4/3; border-radius: 16px; object-fit: contain; padding: 1rem; background: white; }

.map-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.map-heading h1 { max-width: 900px; font-size: clamp(2.3rem,4vw,4rem); }
.map-heading p:not(.eyebrow) { margin-top: 1rem; color: var(--muted); }
.business-map { height: 650px; overflow: hidden; border: 1px solid var(--line); border-radius: 26px; box-shadow: var(--shadow); }
.map-popup-actions { display: grid; gap: .35rem; margin-top: .65rem; }.map-popup-actions a { display: block; padding: .38rem .55rem; border-radius: 6px; color: white !important; background: var(--green); font-weight: 700; text-align: center; text-decoration: none; }.map-popup-actions a:first-child { color: var(--green-dark) !important; background: var(--sand); }.map-popup-actions a:hover { background: var(--green-dark); }

.login-page { display: grid; min-height: 680px; grid-template-columns: 1.1fr .9fr; }
.login-intro { padding: 7rem clamp(1.25rem,8vw,9rem); color: white; background: linear-gradient(110deg, #338fa8 0%, #237fa9 52%, #176da8 100%); }
.login-intro .eyebrow { color: var(--lime); }.login-intro h1 { max-width: 700px; font-size: clamp(3rem,5vw,5.5rem); }.login-intro > p:not(.eyebrow) { max-width: 600px; margin-top: 1.5rem; color: rgba(255,255,255,.75); font-size: 1.1rem; }.login-intro ul { margin-top: 2.5rem; padding-left: 1.25rem; }.login-intro li { margin: .8rem 0; }
.login-card { align-self: center; width: min(440px, calc(100% - 2.5rem)); margin: 3rem auto; padding: 2.4rem; border: 1px solid var(--line); border-radius: 24px; background: white; box-shadow: var(--shadow); }
.login-card h2 { margin-top: 1.2rem; font-size: 2rem; }.login-card > p { margin: .75rem 0 1.5rem; color: var(--muted); }.login-card label { display: block; margin-top: 1rem; font-weight: 700; }.login-card input { width: 100%; min-height: 48px; margin-top: .35rem; border: 1px solid var(--line); border-radius: 10px; padding: 0 .9rem; background: #f7f8f6; font: inherit; }.login-card .button { width: 100%; margin: 1.25rem 0 .8rem; }.login-card small { color: var(--muted); }
.form-page { display: grid; min-height: 620px; background: var(--sand); }
.application-card { width: min(620px, calc(100% - 2.5rem)); }.application-card textarea { width: 100%; margin-top: .35rem; padding: .75rem .85rem; border: 1px solid var(--line); border-radius: 10px; background: #f7f8f6; font: inherit; resize: vertical; }
.flash-message { position: relative; z-index: 5; padding: 1rem 5vw; color: #075c46; background: #dff8ec; font-weight: 700; text-align: center; }
.form-errors { margin: 1rem 0; padding: .85rem 1rem; border: 1px solid #efb7b7; border-radius: 10px; color: #8a2525; background: #fff1f1; }
.form-errors ul { margin: .5rem 0 0 1.2rem; }
.check-row { display: flex !important; align-items: center; gap: .6rem; font-weight: 400 !important; }.check-row input { width: auto !important; min-height: auto !important; margin: 0 !important; }
.member-shell { min-height: 650px; padding: 4.5rem clamp(1.25rem, 6vw, 7rem); background: var(--sand); }
.member-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; max-width: 1280px; margin: auto; }.member-heading h1 { margin-top: .3rem; font-size: clamp(2.15rem, 3vw, 3.4rem); line-height: 1.05; }.member-heading p:not(.eyebrow) { color: var(--muted); }
.dashboard-top-actions { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; justify-content: flex-end; }
.member-help { margin-top: 1rem !important; font-size: .9rem; }.member-support { max-width: 1280px; margin: 1.5rem auto 0; padding: 1rem 1.25rem; border-radius: 12px; color: var(--muted); background: white; text-align: center; }.member-support a { color: var(--green); font-weight: 700; }
.button-outline { border: 1px solid var(--green); color: var(--green); background: transparent; }.button-small { min-height: 40px; padding: .6rem 1rem; }
.button-danger { border-color: #b74141; color: #a42e2e; background: #fff1f1; }
.dashboard-grid { display: grid; max-width: 1280px; margin: 2.5rem auto 0; grid-template-columns: minmax(0, 1fr) 340px; gap: 1.5rem; align-items: start; }
.dashboard-grid-admin { grid-template-columns: 1fr; }.admin-password-panel { width: min(520px, 100%); }
.dashboard-panel, .editor-panel { padding: 1.8rem; border: 1px solid var(--line); border-radius: 20px; background: white; box-shadow: 0 10px 35px rgba(20,53,47,.06); }.dashboard-panel h2, .editor-panel h2 { margin-bottom: 1.3rem; }
.activation-dashboard { max-width: 1280px; margin: 2.5rem auto 0; padding: 1.7rem; border: 1px solid var(--line); border-radius: 22px; background: white; box-shadow: var(--shadow); }.activation-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; }.activation-heading h2 { font-size: 2rem; }.activation-heading > div:first-child > p:last-child { margin-top: .5rem; color: var(--muted); }.activation-deadline { min-width: 190px; border-radius: 14px; padding: .85rem 1rem; text-align: center; background: var(--sand); }.activation-deadline small, .activation-deadline strong { display: block; }.activation-deadline small { color: var(--muted); font-weight: 700; text-transform: uppercase; }.activation-deadline strong { margin-top: .2rem; font-size: 1.15rem; }.activation-progress { height: 14px; margin-top: 1.4rem; overflow: hidden; border-radius: 999px; background: #e4f0f3; }.activation-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--green),var(--lime)); }.activation-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; margin-top: 1rem; }.activation-stats div { padding: .85rem 1rem; border: 1px solid var(--line); border-radius: 14px; }.activation-stats strong, .activation-stats span { display: block; }.activation-stats strong { font-size: 1.4rem; }.activation-stats span { color: var(--muted); font-size: .82rem; }.reminder-schedule { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.25rem; padding: 1rem; border-radius: 14px; background: var(--sand); }.reminder-schedule strong, .reminder-schedule span { display: block; }.reminder-schedule span { color: var(--muted); font-size: .86rem; }.activation-member-list { max-height: 410px; margin-top: 1.25rem; overflow-y: auto; border: 1px solid var(--line); border-radius: 14px; }.activation-list-heading, .activation-member-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; border-bottom: 1px solid var(--line); }.activation-list-heading { position: sticky; z-index: 1; top: 0; background: var(--sand); }.activation-list-heading span { color: var(--muted); font-size: .82rem; }.activation-member-row:last-child { border-bottom: 0; }.activation-member-row > div:first-child strong, .activation-member-row > div:first-child a, .activation-member-row > div:first-child small { display: block; }.activation-member-row > div:first-child a { color: var(--green); font-size: .86rem; }.activation-member-row > div:first-child small, .activation-reminder-status small { color: var(--muted); }.activation-reminder-status { display: flex; align-items: center; gap: .8rem; text-align: right; }.activation-complete { padding: 2rem; text-align: center; color: #087556; font-weight: 700; }
.member-finder { display: grid; grid-template-columns: minmax(260px,1fr) minmax(180px,240px) auto auto; align-items: end; gap: .75rem; margin-top: 1.25rem; padding: 1rem; border: 1px solid var(--line); border-radius: 14px; }.member-finder label span { display: block; margin-bottom: .35rem; color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }.member-finder input, .member-finder select { width: 100%; min-height: 44px; border: 1px solid var(--line); border-radius: 10px; padding: .65rem .8rem; background: #f9fbfb; color: var(--ink); font: inherit; }.activation-member-name { display: flex; align-items: center; gap: .55rem; }.activation-badge { display: inline-flex; align-items: center; width: max-content; border-radius: 999px; padding: .24rem .55rem; font-size: .7rem; line-height: 1; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; }.activation-badge-complete { color: #087556; background: #dff8ed; }.activation-badge-pending { color: #8b5a00; background: #fff1c7; }
.dashboard-listing { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 0; border-top: 1px solid var(--line); }.dashboard-listing h3 { margin: .35rem 0 .15rem; }.dashboard-listing p { color: var(--muted); }.dashboard-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .7rem; }
.dashboard-actions form { margin: 0; }.cancel-account-panel { display: flex; max-width: 1280px; align-items: center; justify-content: space-between; gap: 2rem; margin: 1.5rem auto 0; padding: 1.5rem 1.8rem; border: 1px solid #efb7b7; border-radius: 18px; background: #fff7f7; }.cancel-account-panel h2 { margin-bottom: .3rem; }.cancel-account-panel p { color: var(--muted); }
.action-menu { position: relative; }.action-menu summary { min-width: 66px; padding: .52rem .75rem; border: 1px solid var(--line); border-radius: 9px; color: var(--green-dark); background: white; cursor: pointer; font-size: .86rem; font-weight: 700; list-style: none; text-align: center; }.action-menu summary::-webkit-details-marker { display: none; }.action-menu-panel { position: absolute; z-index: 20; top: calc(100% + .4rem); right: 0; min-width: 165px; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: white; box-shadow: var(--shadow); }.action-menu-panel button { width: 100%; padding: .7rem .9rem; border: 0; border-bottom: 1px solid var(--line); color: #a42e2e; background: white; cursor: pointer; font: inherit; font-size: .85rem; text-align: left; }.action-menu-panel button:hover { background: #fff1f1; }
.status { display: inline-block; padding: .2rem .55rem; border-radius: 999px; color: #49675f; background: #e9f1ee; font-size: .72rem; font-weight: 700; text-transform: uppercase; }.status-t { color: #087556; background: #dff8ec; }
.password-panel label, .editor-panel > label, .field-grid label { display: block; margin-top: 1rem; font-weight: 700; }.password-panel input, .profile-editor input:not([type=checkbox]), .profile-editor textarea, .profile-editor select { width: 100%; min-height: 46px; margin-top: .35rem; padding: .75rem .85rem; border: 1px solid var(--line); border-radius: 10px; background: #f9fbfb; font: inherit; }.profile-editor textarea { resize: vertical; }
.password-panel .button { width: 100%; margin-top: 1.2rem; }
.profile-editor { display: grid; max-width: 1280px; margin: 2.5rem auto 0; grid-template-columns: 1fr 1fr; gap: 1.5rem; }.field-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }.editor-logo { width: 100%; height: 190px; object-fit: contain; padding: 1rem; border: 1px solid var(--line); border-radius: 14px; }.field-help { margin-top: .7rem; color: var(--muted); font-size: .88rem; }.category-checks { display: grid; grid-template-columns: repeat(2,1fr); gap: .7rem 1rem; margin-top: 1rem; }.category-checks label { font-weight: 400; }.category-help-button { margin-top: 1.25rem; border: 0; padding: 0; color: var(--green); background: transparent; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }.category-help-dialog { width: min(520px,calc(100% - 2rem)); border: 1px solid var(--line); border-radius: 24px; padding: 2rem; color: var(--ink); box-shadow: 0 24px 80px rgba(6,47,72,.28); }.category-help-dialog::backdrop { background: rgba(6,47,72,.55); backdrop-filter: blur(3px); }.category-help-dialog h2 { font-size: 2rem; }.category-help-dialog > p:not(.eyebrow) { margin-top: 1rem; color: var(--muted); }.dialog-close { position: absolute; top: .65rem; right: .85rem; border: 0; color: var(--muted); background: transparent; font-size: 2rem; cursor: pointer; }.dialog-actions { display: flex; gap: .75rem; margin-top: 1.5rem; }.editor-save { grid-column: 1/-1; text-align: right; }
.gallery-manager { max-width: 1280px; margin: 1.5rem auto 0; padding: 1.8rem; border: 1px solid var(--line); border-radius: 20px; background: white; box-shadow: 0 10px 35px rgba(20,53,47,.06); }.gallery-manager-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }.gallery-manager-heading > div > p:last-child { color: var(--muted); }.gallery-upload { display: flex; align-items: end; gap: .75rem; }.gallery-upload label { font-weight: 700; }.gallery-upload input { display: block; max-width: 300px; margin-top: .35rem; }.gallery-admin-grid { display: grid; margin-top: 1.4rem; grid-template-columns: repeat(3, 1fr); gap: 1rem; }.gallery-admin-card { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fbfdfd; }.gallery-admin-card.gallery-primary { border: 2px solid var(--green); }.gallery-admin-card img { width: 100%; height: 170px; object-fit: contain; padding: .75rem; background: white; }.gallery-admin-info { padding: .8rem 1rem .35rem; }.gallery-admin-info small { display: block; overflow: hidden; margin-top: .2rem; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }.gallery-admin-actions { display: flex; flex-wrap: wrap; gap: .35rem; padding: .6rem 1rem 1rem; }.gallery-admin-actions button { padding: .35rem .55rem; border: 1px solid var(--line); border-radius: 6px; color: var(--green-dark); background: white; cursor: pointer; font: inherit; font-size: .76rem; }.gallery-admin-actions .gallery-delete { border-color: #efb7b7; color: #a42e2e; }.empty-gallery { margin-top: 1.3rem; padding: 2rem; border: 1px dashed var(--line); border-radius: 12px; color: var(--muted); text-align: center; }
.upload-button, .geocode-button { margin-top: 1rem; }.geocode-button:disabled { opacity: .55; cursor: wait; }
.admin-table, .category-add, .category-list { max-width: 1280px; margin: 2rem auto 0; }.application-row { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: 1.4rem 0; border-top: 1px solid var(--line); }.application-row:first-child { border-top: 0; }.application-row h2 { margin: .45rem 0; }.application-row p { color: var(--muted); }.application-row small { display: block; margin-top: .5rem; color: var(--muted); }.sendy-ok { color: #087556 !important; }.sendy-error { color: #a42e2e !important; }
.category-add { display: flex; align-items: end; gap: 1rem; }.category-add label { flex: 1; font-weight: 700; }.category-add input, .category-admin-row input, .category-admin-row select { width: 100%; min-height: 44px; margin-top: .35rem; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: 9px; background: #f9fbfb; font: inherit; }.category-admin-row { display: grid; grid-template-columns: 1fr auto; gap: .75rem; padding: .8rem 0; border-top: 1px solid var(--line); }.category-admin-row > form:first-child { display: grid; grid-template-columns: minmax(220px,1fr) 130px 100px auto; gap: .75rem; align-items: center; }
.category-in-use { align-self: center; padding: .45rem .75rem; color: var(--muted); font-size: .82rem; font-weight: 700; }
.application-categories { margin: 1.2rem 0; padding: 1rem; border: 1px solid var(--line); border-radius: 12px; }.application-categories legend { padding: 0 .4rem; font-weight: 700; }

.site-footer { display: grid; grid-template-columns: 1fr auto; gap: 2rem; padding: 3.2rem clamp(1.25rem,5vw,5rem); color: white; background: #0b4469; }
.site-footer p { margin-top: .3rem; color: #a9b6b3; }.footer-links { display: flex; gap: 1.4rem; }.copyright { grid-column: 1/-1; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.12); font-size: .85rem; }

@media (max-width: 980px) {
    .site-header { min-height: 240px; }.site-header nav { gap: 1rem; font-size: .84rem; }.site-header nav a:nth-child(3), .site-header nav a:nth-child(4) { display: none; }
    .hero { grid-template-columns: 1fr; }.hero-copy { padding: 3rem 1.5rem; }.hero-panel { min-height: 280px; }.hero-map { min-height: 280px; }
    .business-grid { grid-template-columns: repeat(2,1fr); }
    .profile-hero, .profile-identity { align-items: flex-start; }.profile-hero { flex-direction: column; }.profile-layout { grid-template-columns: 1fr; }.contact-card { width: 100%; }
    .login-page, .member-signin-section { grid-template-columns: 1fr; }
    .member-access-panels { grid-template-columns: 1fr 1fr; }
    .dashboard-grid { grid-template-columns: 1fr; }.profile-editor { grid-template-columns: 1fr; }.gallery-admin-grid { grid-template-columns: repeat(2, 1fr); }.dashboard-top-actions { flex-wrap: wrap; justify-content: flex-end; }.member-finder { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1260px) {
    .business-grid { grid-template-columns: repeat(4, 1fr); }
    .business-list-card { height: 438px; grid-column: auto; }
}

@media (max-width: 640px) {
    .site-header { min-height: 245px; padding: 0 1rem 1.5rem; }.site-header nav { justify-content: space-around; padding-top: 1rem; }.site-header nav a:nth-child(4), .site-header nav a:nth-child(5) { display: none; }.masthead-name { font-size: clamp(2.7rem, 13vw, 4.4rem); white-space: normal; }.masthead-tagline { max-width: 340px; font-size: 1.05rem; }
    .hero { min-height: auto; }.hero h1 { font-size: 3rem; }.hero-search { grid-template-columns: 1fr; }.hero-search input { border-right: 0; border-bottom: 1px solid var(--line); }
    .hero-stats { flex-direction: column; gap: .45rem; }
    .directory-section, .profile-shell, .map-page { padding: 3.2rem 1rem; }.business-grid { grid-template-columns: 1fr; }.business-list-card { height: 360px; }.section-heading { align-items: flex-start; flex-direction: column; gap: 1rem; }
    .community-banner { align-items: flex-start; flex-direction: column; margin: 0 1rem 3rem; }
    .member-signin-section { padding: 3.5rem 1rem; }.member-access-panels { grid-template-columns: 1fr; }.signin-links { align-items: flex-start; flex-direction: column; }
    .profile-identity { flex-direction: column; }.profile-logo { width: 120px; height: 120px; }.profile-hero { padding: 1.5rem; }.profile-actions { width: 100%; }.profile-layout { gap: 2rem; margin-top: 2.5rem; }
    .map-heading { align-items: flex-start; flex-direction: column; }.business-map { height: 520px; border-radius: 18px; }
    .site-footer { grid-template-columns: 1fr; }.footer-links { flex-direction: column; gap: .6rem; }
    .member-heading, .dashboard-listing, .application-row, .gallery-manager-heading, .gallery-upload, .activation-heading, .reminder-schedule, .activation-member-row, .activation-reminder-status { align-items: flex-start; flex-direction: column; }.dashboard-actions { width: 100%; justify-content: space-between; }.field-grid, .category-checks, .gallery-admin-grid, .activation-stats, .member-finder { grid-template-columns: 1fr; }.activation-deadline, .activation-reminder-status { width: 100%; text-align: left; }.dialog-actions { align-items: stretch; flex-direction: column; }.category-add { align-items: stretch; flex-direction: column; }.category-admin-row { grid-template-columns: 1fr; }.category-admin-row > form:first-child { grid-template-columns: 1fr; }
}
