.hin-wrap{max-width:1100px;margin:0 auto;padding:16px;}
.hin-h1{margin:0 0 8px 0;}
.hin-muted{color:#666;}
.hin-card{border:1px solid #e5e5e5;border-radius:12px;padding:16px;margin:16px 0;background:#fff;}
.hin-grid{display:grid;grid-template-columns:1fr;gap:16px;}
@media(min-width:900px){.hin-grid{grid-template-columns:1fr 1fr;}}
.hin-zip-form .hin-zip-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.hin-zip-form input{padding:10px;border:1px solid #ccc;border-radius:10px;}
.hin-zip-form button{padding:10px 14px;border:1px solid #111;border-radius:10px;background:#111;color:#fff;cursor:pointer;}
.hin-results{display:grid;gap:12px;}
.hin-result-card{border:1px solid #eee;border-radius:12px;padding:12px;background:#fafafa;}
.hin-card-row{display:flex;gap:12px;align-items:flex-start;}
.hin-logo img{width:72px;height:72px;object-fit:contain;border-radius:10px;background:#fff;border:1px solid #eee;padding:6px;}
.hin-state-list{display:flex;flex-wrap:wrap;gap:8px;}
.hin-pill{display:inline-block;padding:8px 10px;border:1px solid #ddd;border-radius:999px;text-decoration:none;}
.hin-map-wrap{border:1px dashed #ddd;border-radius:12px;padding:12px;}
.hin-map-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
@media(min-width:700px){.hin-map-grid{grid-template-columns:repeat(4,1fr);}}
.hin-map-state{display:block;padding:10px;border:1px solid #e5e5e5;border-radius:10px;text-decoration:none;background:#fff;}
.hin-form label{font-weight:600;display:block;margin-bottom:6px;}
.hin-form input,.hin-form textarea,.hin-form select{width:100%;padding:10px;border:1px solid #ccc;border-radius:10px;}
.hin-form .hin-row{margin-bottom:14px;}
.hin-form .hin-cols{display:grid;gap:12px;}
@media(min-width:900px){.hin-form .hin-cols{grid-template-columns:1fr 1fr 1fr;}}
.hin-form button{padding:10px 14px;border:1px solid #111;border-radius:10px;background:#111;color:#fff;cursor:pointer;}
.hin-badge{display:inline-block;padding:6px 10px;border-radius:999px;background:#f3f3f3;border:1px solid #ddd;}
.hin-badge-ok{background:#e8fff1;border-color:#a9e3bf;}
.hin-map{height:360px;border-radius:12px;overflow:hidden;border:1px solid #e5e5e5;margin:12px 0;}
.hin-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
@media(min-width:900px){.hin-gallery{grid-template-columns:repeat(4,1fr);}}
.hin-gallery-item img{width:100%;height:180px;object-fit:cover;border-radius:12px;border:1px solid #eee;}
.hin-breadcrumbs{color:#666;font-size:14px;margin:0 0 10px 0;}
.hin-breadcrumbs a{text-decoration:none;}

/* Lightbox gallery (installer page images) */
.hin-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);display:none;align-items:center;justify-content:center;z-index:99999;padding:24px;}
.hin-lightbox.is-open{display:flex;}
.hin-lightbox-inner{position:relative;max-width:min(1100px,95vw);max-height:85vh;width:100%;display:flex;flex-direction:column;gap:10px;}
.hin-lightbox-imgwrap{flex:1;display:flex;align-items:center;justify-content:center;min-height:240px;}
.hin-lightbox img{max-width:100%;max-height:85vh;object-fit:contain;border-radius:12px;background:#111;box-shadow:0 10px 40px rgba(0,0,0,.35);}
.hin-lightbox-caption{color:#ddd;font-size:14px;display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;}
.hin-lightbox-close{position:absolute;top:-12px;right:-12px;width:40px;height:40px;border-radius:999px;border:none;background:#fff;color:#111;font-size:22px;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.25);}
.hin-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:999px;border:none;background:rgba(255,255,255,.92);color:#111;font-size:26px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.hin-lightbox-prev{left:-16px;}
.hin-lightbox-next{right:-16px;}
@media(max-width:800px){
  .hin-lightbox-prev{left:6px;}
  .hin-lightbox-next{right:6px;}
  .hin-lightbox-close{top:6px;right:6px;}
}

/* -----------------------------
   Clickable state "map" selector
----------------------------- */
.hin-state-map{margin:10px 0 18px 0;}
.hin-state-map__frame{
  position:relative;
  width:100%;
  max-width:900px;
  /* Use the native SVG aspect ratio so positioning stays aligned */
  aspect-ratio: 959 / 593;
  height:auto;
  margin:0 auto;
  background:linear-gradient(180deg,#f8fafc 0%, #ffffff 100%);
  border:1px solid #e5e7eb;
  border-radius:14px;
  overflow:hidden;
}
.hin-state-map__state{
  position:absolute;
  transform:translate(-50%,-50%);
  /* Invisible click target (no overlay buttons) */
  display:block;
  width:clamp(34px, 6.0%, 56px);
  height:clamp(28px, 6.0%, 46px);
  border-radius:10px;
  background:transparent;
  color:transparent;
  text-decoration:none;
  box-shadow:none;
}
.hin-state-map__state{cursor:pointer;}
.hin-state-map__state:hover{
  background:rgba(26,115,232,0.18);
  outline:2px solid rgba(26,115,232,0.35);
}
@media (max-width: 700px){
  /* height auto via aspect-ratio */
  /* size auto via clamp */
}

/* -----------------------------
   State page city cards (border = text color)
----------------------------- */
.hin-city-card{
  display:block;
  padding:20px;
  background:#f7f7f7;
  border-radius:8px;
  text-align:center;
  font-weight:700;
  color:#1a73e8;
  border:1px solid currentColor;
  text-decoration:none;
}
.hin-city-card:hover{background:#f2f6ff;}

/* -----------------------------
   Empty state (no installers)
----------------------------- */
.hin-empty{
  margin-top:28px;
  padding:22px;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#ffffff;
  box-shadow:0 6px 18px rgba(0,0,0,0.06);
}
.hin-empty__title{font-size:18px;font-weight:800;margin:0 0 8px 0;}
.hin-empty__text{color:#6b7280;margin:0 0 14px 0;}
.hin-empty__steps{margin:0 0 14px 18px;color:#374151;}
.hin-empty__steps li{margin:6px 0;}
.hin-empty__actions{margin-top:10px;}
.hin-btn{
  display:inline-block;
  padding:10px 14px;
  border-radius:10px;
  background:#111827;
  color:#fff;
  text-decoration:none;
  font-weight:800;
}
.hin-btn:hover{filter:brightness(0.96);}


/* SVG background map for state selector (rendered as an image) */
.hin-state-map__svg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0.35;pointer-events:none;}

/* -----------------------------
   Region + State templates (remove inline styles)
----------------------------- */
.hin-region-wrap{max-width:1100px;margin:60px auto;padding:0 16px;}
.hin-breadcrumbs--top{margin:0 0 18px 0;font-size:14px;color:#6b7280;}
.hin-breadcrumbs--top a{color:#1a73e8;text-decoration:none;}
.hin-breadcrumbs--top a:hover{text-decoration:underline;}

.hin-state-content--above{margin:18px 0 22px 0;}
.hin-state-content--below{margin:26px 0 0 0;}

.hin-city-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;margin-top:30px;}

.hin-sortbar{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:18px;}
.hin-sortbar__label{color:#6b7280;font-size:14px;}
.hin-sortbar__select{padding:10px 12px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;}

.hin-contractor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:25px;margin-top:18px;}
.hin-contractor-card{padding:25px;background:#fff;border:1px solid #eee;border-radius:12px;position:relative;}
.hin-contractor-card__title{margin:0 0 8px 0;font-size:18px;}
.hin-contractor-card__link{text-decoration:none;color:inherit;}
.hin-contractor-card__link:hover{text-decoration:underline;}
.hin-contractor-card__loc{color:#777;font-size:14px;}
.hin-contractor-card__rating{margin-top:10px;font-size:14px;}
.hin-stars{color:#f5a623;font-size:16px;vertical-align:middle;}
.hin-rating-avg{color:#111827;font-weight:800;}
.hin-rating-count{color:#6b7280;}
.hin-contractor-card__noreviews{margin-top:10px;font-size:14px;color:#9ca3af;}

.hin-featured-pill{position:absolute;top:-10px;right:-10px;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#ecfdf5;border:1px solid #34d399;color:#065f46;font-size:12px;font-weight:800;}
.hin-featured-pill__star{color:#16a34a;}

/* -----------------------------
   Contractor single template (remove inline styles)
----------------------------- */
.hin-contractor-page.hin-wrapper{max-width:1200px;margin:60px auto;padding:0 20px;}

.hin-backlink{margin-top:10px;font-size:14px;}
.hin-backlink a{color:#1a73e8;text-decoration:none;}
.hin-backlink a:hover{text-decoration:underline;}

.hin-hero{display:flex;gap:40px;align-items:flex-start;border-bottom:1px solid #eee;padding-bottom:40px;}
.hin-hero-main{display:flex;gap:28px;align-items:center;flex:1;min-width:0;}

.hin-logo img{width:180px;height:180px;object-fit:contain;border-radius:8px;background:#fff;padding:15px;box-shadow:0 4px 20px rgba(0,0,0,.10);}

.hin-title h1{margin:0 0 10px 0;font-size:38px;}
.hin-location{font-size:18px;color:#777;}

.hin-featured{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#ecfdf5;border:1px solid #34d399;color:#065f46;font-size:13px;font-weight:900;margin-top:10px;}
.hin-featured .star{color:#16a34a;font-size:16px;line-height:1;}

.hin-contact-card{margin-top:0;padding:30px;background:#f8f9fb;border-radius:12px;box-shadow:0 5px 25px rgba(0,0,0,.12);max-width:520px;width:100%;}
.hin-contact-card p{margin:12px 0;font-size:16px;}

/* Gallery tiles: square crop in grid; full image in lightbox */
.hin-contractor-page .hin-gallery{margin-top:50px;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;}
.hin-contractor-page .hin-gallery-item{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;border-radius:12px;box-shadow:0 4px 18px rgba(0,0,0,.08);background:#fff;}
.hin-contractor-page .hin-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;border:0;}

.hin-description{margin-top:50px;font-size:18px;line-height:1.7;border-bottom:1px solid #888;}

@media(max-width:800px){
  .hin-hero{flex-direction:column;text-align:center;}
  .hin-hero-main{flex-direction:column;}
}

.hin-reviews h2,.hin-review-form h2{font-size:26px;}
.hin-review-form input,.hin-review-form textarea,.hin-review-form select{width:100%;padding:12px;border-radius:6px;border:1px solid #ddd;margin-bottom:15px;}
.hin-review-form button{background:#1a73e8;color:#fff;padding:12px 22px;border:none;border-radius:6px;cursor:pointer;font-weight:700;}
.hin-review-form button:hover{background:#1557b0;}

.hin-reviews-section{margin-top:70px;}
.hin-review-card{padding:25px;border:1px solid #eee;border-radius:12px;background:#fff;margin-bottom:25px;box-shadow:0 4px 18px rgba(0,0,0,.05);}
.hin-stars{color:#f5a623;font-size:20px;margin-bottom:12px;}
.hin-review-content{font-size:17px;line-height:1.6;margin-bottom:10px;}
.hin-review-author{font-size:14px;color:#777;}
.hin-review-date{color:#999;}

.hin-review-form{margin-top:60px;padding:35px;background:#f8f9fb;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.05);}
.hin-form-group{margin-bottom:18px;}
.hin-form-group textarea,.hin-form-group select,.hin-review-form input{width:100%;padding:12px;border-radius:6px;border:1px solid #ddd;}
.hin-submit-btn{background:#1a73e8;color:#fff;padding:12px 22px;border:none;border-radius:6px;font-weight:700;cursor:pointer;}
.hin-submit-btn:hover{background:#1557b0;}
