/* =========================================================
   LogicsDev Directory - front-end stylesheet
   Design system: generous spacing, green brand palette,
   fully responsive (desktop / tablet / mobile). No pure
   black is used anywhere - text uses a dark green-grey.
   ========================================================= */

/* ---------- Base layout ---------- */
.ld-container{max-width:1200px;margin:0 auto;padding:0 24px;}
.ld-site-main{min-height:60vh;}
section{padding:0;}
.ld-section{padding:72px 0;}
.ld-section-tint{background:var(--ld-bg-section);}
.ld-section-heading{text-align:center;max-width:640px;margin:0 auto 44px;}
.ld-section-heading h2{font-size:32px;margin-bottom:10px;}
.ld-section-heading p{color:var(--ld-muted);font-size:16px;}
.ld-section-cta{text-align:center;margin-top:36px;}
.ld-empty-state{text-align:center;color:var(--ld-muted);padding:30px;background:#fff;border-radius:var(--ld-radius);}

/* ---------- Header ---------- */
.ld-site-header{background:#fff;border-bottom:1px solid var(--ld-border);position:sticky;top:0;z-index:100;}
.ld-header-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;gap:24px;flex-wrap:wrap;}
.ld-brand{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.ld-brand img{max-height:44px;}
.ld-brand-logo{width:42px;height:42px;min-width:42px;border-radius:50%;background:var(--ld-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;font-family:var(--ld-font-heading);}
.ld-brand-text{display:flex;flex-direction:column;line-height:1.25;}
.ld-brand-name{font-weight:700;font-size:18px;color:var(--ld-text);font-family:var(--ld-font-heading);}
.ld-brand-tagline{font-weight:700;font-size:11px;letter-spacing:.05em;color:var(--ld-primary);text-transform:uppercase;}
.ld-header-collapsible{display:flex;align-items:center;gap:28px;flex:1;justify-content:flex-end;flex-wrap:wrap;}
.ld-primary-nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0;}
.ld-primary-nav a{color:var(--ld-text);font-weight:500;}
.ld-primary-nav a:hover{color:var(--ld-primary);}
.ld-header-actions{display:flex;align-items:center;gap:16px;}
.ld-login-link,.ld-logout-link{color:var(--ld-text);font-weight:500;}
.ld-menu-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;background:none;border:none;cursor:pointer;padding:0;}
.ld-menu-toggle span{display:block;width:100%;height:2px;background:var(--ld-text);border-radius:2px;}

/* ---------- Buttons ---------- */
.button{display:inline-block;padding:12px 22px;border-radius:8px;border:1px solid var(--ld-border);background:#fff;color:var(--ld-text);cursor:pointer;font-weight:600;font-size:14px;transition:all .15s ease;}
.button:hover{border-color:var(--ld-primary);color:var(--ld-primary);}
.button-primary{background:var(--ld-primary);border-color:var(--ld-primary);color:#fff;}
.button-primary:hover{background:var(--ld-primary-dark);border-color:var(--ld-primary-dark);color:#fff;}
.button-accent{background:var(--ld-accent);border-color:var(--ld-accent);color:#3a2a05;}
.button-accent:hover{filter:brightness(1.05);color:#3a2a05;}
.button-large{padding:16px 32px;font-size:16px;}
.button-small{padding:6px 12px;font-size:12px;}

/* ---------- Hero ---------- */
.ld-hero{
	position:relative;
	background:linear-gradient(135deg, var(--ld-primary) 0%, var(--ld-primary-dark) 100%);
	background-size:cover;
	background-position:center;
	color:#fff;
	padding:100px 0 90px;
	text-align:center;
	overflow:hidden;
}
.ld-hero::before{
	content:"";
	position:absolute;
	inset:0;
	background-image:radial-gradient(rgba(255,255,255,.10) 1.5px, transparent 1.5px);
	background-size:26px 26px;
	pointer-events:none;
}
.ld-hero-inner{max-width:760px;margin:0 auto;position:relative;z-index:1;}
.ld-hero-sm{padding:64px 0;}
.ld-hero-sm h1{font-size:34px;}

/* ---------- Auth pages (login / register / password) ---------- */
.ld-auth-section{padding:64px 0 90px;}
.ld-auth-wrap{display:flex;justify-content:center;}
.ld-auth-card{background:#fff;border-radius:var(--ld-radius);box-shadow:0 1px 4px rgba(0,0,0,.07);padding:40px;max-width:440px;width:100%;}
.ld-auth-card h1{font-size:26px;text-align:center;margin-bottom:8px;}
.ld-auth-subtitle{text-align:center;color:var(--ld-muted);font-size:14px;margin-bottom:24px;}
.ld-auth-form{display:flex;flex-direction:column;gap:6px;}
.ld-auth-form label{font-weight:600;margin-top:12px;font-size:14px;}
.ld-auth-form input{padding:12px;border:1px solid var(--ld-border);border-radius:8px;font-size:14px;}
.ld-auth-row{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:13px;}
.ld-auth-checkbox{display:flex;align-items:center;gap:6px;font-weight:400;margin-top:0;}
.ld-auth-submit{margin-top:22px;width:100%;text-align:center;}
.ld-auth-switch{text-align:center;margin-top:22px;font-size:14px;color:var(--ld-muted);}
.ld-auth-terms{font-size:12px;color:var(--ld-muted);margin:14px 0 0;}
.ld-notice-error{background:#fde3e3;color:#a30000;}

/* ---------- Contact page ---------- */
.ld-contact-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:start;}
.ld-contact-info p{font-size:16px;margin-bottom:14px;}
.ld-contact-form-wrap{background:#fff;border-radius:var(--ld-radius);padding:28px;box-shadow:0 1px 4px rgba(0,0,0,.07);}
.ld-contact-form{display:flex;flex-direction:column;gap:6px;}
.ld-contact-form label{font-weight:600;margin-top:12px;}
.ld-contact-form input,.ld-contact-form textarea{padding:12px;border:1px solid var(--ld-border);border-radius:8px;}
.ld-contact-form .ld-hp-field{position:absolute;left:-9999px;opacity:0;height:0;width:0;}
.ld-contact-form button{margin-top:18px;}
.ld-hero h1{font-size:44px;color:#fff;margin-bottom:16px;line-height:1.15;}
.ld-hero p{font-size:18px;color:rgba(255,255,255,.9);margin-bottom:36px;}
.ld-hero-search{background:transparent;}
.ld-hero-search .ld-search-form{margin:0;box-shadow:0 12px 30px rgba(0,0,0,.18);}

/* ---------- Stats bar ---------- */
.ld-stats-bar{background:#fff;border-bottom:1px solid var(--ld-border);padding:36px 0;}
.ld-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center;}
.ld-stat{display:flex;flex-direction:column;gap:4px;}
.ld-stat-num{font-family:var(--ld-font-heading);font-size:30px;font-weight:700;color:var(--ld-primary);}
.ld-stat span:last-child{color:var(--ld-muted);font-size:13px;letter-spacing:.02em;text-transform:uppercase;}

/* ---------- Search form ---------- */
.ld-search-form{display:flex;flex-wrap:wrap;gap:10px;background:#fff;padding:18px;border-radius:var(--ld-radius);box-shadow:0 1px 4px rgba(0,0,0,.06);margin:24px 0;}
.ld-search-form input[type=text],.ld-search-form select{padding:12px 14px;border:1px solid var(--ld-border);border-radius:8px;flex:1;min-width:150px;font-size:14px;color:var(--ld-text);}
.ld-search-form .button{flex-shrink:0;}

/* ---------- Category grid ---------- */
.ld-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:20px;}
.ld-category-card{background:#fff;border-radius:var(--ld-radius);overflow:hidden;text-align:center;padding:28px 14px;box-shadow:0 1px 4px rgba(0,0,0,.06);display:flex;flex-direction:column;align-items:center;gap:6px;transition:transform .15s ease, box-shadow .15s ease;}
.ld-category-card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(0,0,0,.09);}
.ld-category-card img{width:56px;height:56px;object-fit:cover;border-radius:50%;margin-bottom:6px;}
.ld-category-icon{font-size:34px;margin-bottom:6px;}
.ld-category-name{font-weight:600;color:var(--ld-text);}
.ld-category-count{font-size:12px;color:var(--ld-muted);}
.ld-subcategory-pills{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0;}
.ld-pill{background:#eef3ef;padding:8px 16px;border-radius:20px;font-size:13px;color:var(--ld-primary-dark);}

/* ---------- Listing grid / cards ---------- */
.ld-listing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;}
.ld-listing-card{background:#fff;border-radius:var(--ld-radius);overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.07);transition:transform .15s ease, box-shadow .15s ease;}
.ld-listing-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.1);}
.ld-card-thumb{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;background:#eef1ee;}
.ld-card-thumb img{width:100%;height:100%;object-fit:cover;}
.ld-card-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#a9b5ae;font-size:44px;}
.ld-card-body{padding:20px;}
.ld-card-body h3{font-size:18px;margin-bottom:6px;}
.ld-card-category,.ld-card-location{color:var(--ld-muted);font-size:13px;margin:3px 0;}
.ld-card-excerpt{font-size:14px;color:var(--ld-text);opacity:.85;margin:8px 0;}
.ld-badge{display:inline-block;font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;margin-left:6px;}
.ld-badge-featured{background:var(--ld-accent);color:#3a2a05;}
.ld-badge-verified{background:#dff3e9;color:var(--ld-primary-dark);}
.ld-verified-dot{color:var(--ld-primary);}

/* ---------- Steps (How it works) ---------- */
.ld-steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.ld-step-card{background:#fff;border-radius:var(--ld-radius);padding:32px 24px;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.06);}
.ld-step-num{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--ld-primary);color:#fff;font-weight:700;font-size:18px;margin-bottom:16px;}
.ld-step-card h3{margin-bottom:8px;}
.ld-step-card p{color:var(--ld-muted);font-size:14px;}

/* ---------- Cities ---------- */
.ld-city-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;}
.ld-city-pill{background:#fff;border-radius:var(--ld-radius);padding:20px;display:flex;flex-direction:column;gap:4px;box-shadow:0 1px 4px rgba(0,0,0,.06);transition:transform .15s ease;}
.ld-city-pill:hover{transform:translateY(-3px);}
.ld-city-pill span{font-weight:600;color:var(--ld-text);}
.ld-city-pill small{color:var(--ld-muted);}

/* ---------- Testimonials ---------- */
.ld-testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.ld-testimonial-card{background:#fff;border-radius:var(--ld-radius);padding:28px;box-shadow:0 1px 4px rgba(0,0,0,.06);}
.ld-testimonial-card p{font-style:italic;margin:14px 0;color:var(--ld-text);}
.ld-testimonial-business{display:block;color:var(--ld-muted);font-size:13px;}

/* ---------- CTA banner ---------- */
.ld-cta-banner{padding:24px 0 72px;}
.ld-cta-inner{
	display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
	background:linear-gradient(120deg, var(--ld-primary-dark), var(--ld-primary));
	color:#fff;
	border-radius:20px;
	padding:44px 48px;
	box-shadow:0 18px 40px rgba(11,107,58,.22);
}
.ld-cta-inner h2{color:#fff;margin-bottom:6px;}
.ld-cta-inner p{color:rgba(255,255,255,.9);margin:0;}

/* ---------- Single listing ---------- */
.ld-single-listing{padding:32px 0 70px;}
.ld-listing-header{display:flex;gap:24px;align-items:flex-start;margin-bottom:36px;flex-wrap:wrap;}
.ld-listing-logo{width:120px;height:120px;object-fit:cover;border-radius:14px;flex-shrink:0;}
.ld-listing-meta{color:var(--ld-muted);}
.ld-listing-body{display:grid;grid-template-columns:2fr 1fr;gap:36px;align-items:start;}
.ld-listing-main section{margin-bottom:36px;}
.ld-pill-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;}
.ld-pill-list li{background:#eef3ef;padding:7px 16px;border-radius:20px;font-size:13px;}
.ld-details-table{width:100%;border-collapse:collapse;}
.ld-details-table th,.ld-details-table td{text-align:left;padding:10px;border-bottom:1px solid var(--ld-border);}
.ld-review{border-bottom:1px solid var(--ld-border);padding:16px 0;}
.ld-owner-reply{background:#f3f6f4;padding:12px;border-radius:8px;margin-top:8px;font-size:14px;}
.ld-contact-card{background:#fff;border-radius:var(--ld-radius);padding:24px;box-shadow:0 1px 4px rgba(0,0,0,.06);}
.ld-hours-list{list-style:none;padding:0;margin:8px 0;}
.ld-hours-list li{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;}
.ld-message-form,.ld-report-form,.ld-claim-form,.ld-review-form,.ld-reply-form{display:flex;flex-direction:column;gap:10px;margin-top:12px;}
.ld-message-form input,.ld-message-form textarea,.ld-report-form select,.ld-report-form textarea,.ld-claim-form input,.ld-claim-form select,.ld-claim-form textarea,.ld-review-form input,.ld-review-form select,.ld-review-form textarea,.ld-reply-form textarea{padding:10px;border:1px solid var(--ld-border);border-radius:8px;}

/* ---------- Maps ---------- */
.ld-map{width:100%;height:320px;border-radius:var(--ld-radius);overflow:hidden;background:#eef1ee;margin:14px 0;}
.ld-map-wide{height:380px;margin-bottom:28px;}
.ld-map-unavailable{padding:18px;color:var(--ld-muted);text-align:center;}
#ld-location-picker{height:280px;}

/* ---------- Pricing ---------- */
.ld-pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin:28px 0;}
.ld-pricing-card{background:#fff;border-radius:var(--ld-radius);padding:28px;box-shadow:0 1px 4px rgba(0,0,0,.07);text-align:center;border:2px solid transparent;}
.ld-pricing-card.is-active{border-color:var(--ld-primary);}
.ld-pricing-card .ld-price{font-size:30px;font-weight:700;color:var(--ld-primary);margin:10px 0 18px;}
.ld-pricing-card .ld-price span{font-size:13px;font-weight:400;color:var(--ld-muted);}
.ld-pricing-card ul{list-style:none;padding:0;margin:0 0 22px;text-align:left;}
.ld-pricing-card ul li{padding:8px 0;border-bottom:1px solid var(--ld-border);font-size:14px;}

/* ---------- Submit listing form ---------- */
.ld-listing-form{max-width:780px;margin:0 auto;}
.ld-submit-listing,.ld-pricing{padding:48px 0 70px;}
.ld-listing-form h2{margin-top:32px;padding-top:20px;border-top:1px solid var(--ld-border);}
.ld-listing-form label{display:block;font-weight:600;margin:16px 0 6px;}
.ld-listing-form input[type=text],.ld-listing-form input[type=email],.ld-listing-form input[type=url],.ld-listing-form input[type=tel],.ld-listing-form select,.ld-listing-form textarea{width:100%;padding:12px;border:1px solid var(--ld-border);border-radius:8px;}
.ld-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;}
.ld-notice{padding:14px 18px;border-radius:8px;margin-bottom:20px;}
.ld-notice-success{background:#e4f6ec;color:#155d3a;}

/* ---------- Business Dashboard ---------- */
.ld-dashboard-header{background:var(--ld-bg-section);border-bottom:1px solid var(--ld-border);padding:44px 0;}
.ld-dashboard-header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.ld-dashboard-header-inner h1{font-size:28px;margin-bottom:6px;}
.ld-dashboard-header-inner p{color:var(--ld-muted);margin:0;}
.ld-dashboard{padding:40px 0 70px;max-width:1100px;}

.ld-dash-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:32px;}
.ld-dash-stat-card{background:#fff;border-radius:var(--ld-radius);padding:22px;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.06);display:flex;flex-direction:column;gap:4px;}
.ld-dash-stat-icon{font-size:24px;}
.ld-dash-stat-num{font-family:var(--ld-font-heading);font-size:26px;font-weight:700;color:var(--ld-primary);}
.ld-dash-stat-label{font-size:12px;color:var(--ld-muted);text-transform:uppercase;letter-spacing:.03em;}

.ld-dashboard-tabs{display:flex;gap:8px;align-items:center;margin-bottom:28px;flex-wrap:wrap;background:#fff;border-radius:12px;padding:6px;box-shadow:0 1px 4px rgba(0,0,0,.05);width:fit-content;}
.ld-dashboard-tabs a{padding:10px 18px;border-radius:8px;font-weight:600;color:var(--ld-muted);font-size:14px;}
.ld-dashboard-tabs a:hover{color:var(--ld-primary);}
.ld-dashboard-tabs a.is-active{background:var(--ld-primary);color:#fff;}

.ld-dashboard-panel{display:none;}
.ld-dashboard-panel.is-active{display:block;}

.ld-dash-list{display:flex;flex-direction:column;gap:12px;}
.ld-dash-row{display:flex;align-items:center;gap:16px;background:#fff;border-radius:var(--ld-radius);padding:14px 18px;box-shadow:0 1px 4px rgba(0,0,0,.05);flex-wrap:wrap;}
.ld-dash-row-thumb{width:56px;height:56px;border-radius:10px;overflow:hidden;flex-shrink:0;background:var(--ld-bg-section);display:flex;align-items:center;justify-content:center;}
.ld-dash-row-thumb img{width:100%;height:100%;object-fit:cover;}
.ld-dash-row-thumb-placeholder{font-size:24px;}
.ld-dash-row-body{flex:1;min-width:180px;}
.ld-dash-row-title{font-weight:700;color:var(--ld-text);font-size:15px;}
.ld-dash-row-meta{display:flex;align-items:center;gap:12px;margin-top:4px;font-size:13px;}
.ld-dash-row-date{color:var(--ld-muted);}
.ld-dash-row-actions{display:flex;gap:8px;flex-shrink:0;}

.ld-dash-empty{background:#fff;border-radius:var(--ld-radius);padding:56px 24px;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.05);}
.ld-dash-empty-icon{font-size:40px;display:block;margin-bottom:12px;}
.ld-dash-empty h3{margin-bottom:8px;}
.ld-dash-empty p{color:var(--ld-muted);max-width:420px;margin:0 auto 20px;}

.ld-status{padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;}
.ld-status-pending{background:#fdf3d8;color:#8a6100;}
.ld-status-approved,.ld-status-publish,.ld-status-resolved,.ld-status-active{background:#dff3e9;color:#155d3a;}
.ld-status-rejected,.ld-status-spam,.ld-status-suspended{background:#fde3e3;color:#a30000;}

/* ---------- Page (generic) ---------- */
.ld-page{padding:48px 0 70px;max-width:820px;}
.ld-page h1{margin-bottom:20px;}

/* ---------- Footer (light, professional) ---------- */
.ld-site-footer{background:var(--ld-bg-section);color:var(--ld-text);margin-top:0;border-top:1px solid var(--ld-border);}
.ld-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;padding:56px 0 40px;}
.ld-footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.ld-footer-desc{font-size:14px;color:var(--ld-muted);max-width:320px;margin:0;}
.ld-footer-col h3{color:var(--ld-text);font-size:15px;font-weight:700;margin:0 0 16px;}
.ld-footer-list{list-style:none;margin:0;padding:0;}
.ld-footer-list li{margin-bottom:12px;font-size:14px;color:var(--ld-muted);}
.ld-footer-list a{color:var(--ld-muted);}
.ld-footer-list a:hover{color:var(--ld-primary);}
.ld-footer-muted{color:#9aa39c;}
.ld-footer-bottom{border-top:1px solid var(--ld-border);padding:18px 0;text-align:center;font-size:13px;color:var(--ld-muted);}

/* =========================================================
   Responsive breakpoints
   ========================================================= */
@media (max-width: 960px){
	.ld-listing-body{grid-template-columns:1fr;}
	.ld-stats-grid{grid-template-columns:repeat(2,1fr);gap:24px;}
	.ld-steps-grid,.ld-testimonial-grid{grid-template-columns:repeat(2,1fr);}
	.ld-footer-grid{grid-template-columns:1fr 1fr;}
	.ld-contact-layout{grid-template-columns:1fr;}
}

@media (max-width: 782px){
	.ld-menu-toggle{display:flex;}
	.ld-header-collapsible{
		display:none;
		flex-direction:column;
		align-items:flex-start;
		width:100%;
		background:#fff;
		position:absolute;
		top:100%;
		left:0;
		padding:20px 24px 28px;
		box-shadow:0 12px 20px rgba(0,0,0,.08);
		gap:20px;
	}
	.ld-header-collapsible.is-open{display:flex;}
	.ld-header-inner{position:relative;}
	.ld-primary-nav ul{flex-direction:column;gap:14px;width:100%;}
	.ld-header-actions{flex-direction:column;align-items:flex-start;width:100%;gap:12px;}
	.ld-header-actions .button{width:100%;text-align:center;}

	.ld-hero{padding:64px 0 56px;}
	.ld-hero h1{font-size:30px;}
	.ld-hero p{font-size:16px;}
	.ld-search-form{flex-direction:column;}
	.ld-search-form input,.ld-search-form select,.ld-search-form .button{width:100%;}

	.ld-section{padding:52px 0;}
	.ld-section-heading h2{font-size:26px;}

	.ld-stats-grid{grid-template-columns:repeat(2,1fr);}
	.ld-steps-grid,.ld-testimonial-grid{grid-template-columns:1fr;}
	.ld-listing-grid{grid-template-columns:1fr;}
	.ld-category-grid{grid-template-columns:repeat(2,1fr);}
	.ld-city-grid{grid-template-columns:repeat(2,1fr);}

	.ld-cta-inner{flex-direction:column;text-align:center;padding:32px 24px;}
	.ld-footer-grid{grid-template-columns:1fr;padding:40px 0 24px;}
	.ld-dash-stats{grid-template-columns:repeat(2,1fr);}
	.ld-contact-layout{grid-template-columns:1fr;}
}

@media (max-width: 480px){
	.ld-container{padding:0 16px;}
	.ld-hero h1{font-size:25px;}
	.ld-stats-grid{grid-template-columns:1fr 1fr;gap:16px;}
	.ld-category-grid,.ld-city-grid{grid-template-columns:1fr;}
	.ld-listing-header{flex-direction:column;align-items:center;text-align:center;}
}
