/*
 * Swarm Finder V2.0.4 front-end styles.
 * Visual baseline: the original V1 rounded white-card look, adapted to the
 * Kumeu Bee Club dark green / gold site. Keep this design language in future
 * revisions unless intentionally redesigned.
 */
.sf-wrap{
  --sf-page-text:#f4f1e8;
  --sf-page-muted:#c6c9c2;
  --sf-card:#fbfaf6;
  --sf-card-alt:#f4f3ed;
  --sf-card-text:#252a24;
  --sf-card-muted:#697069;
  --sf-border:#dedfd9;
  --sf-accent:#f2b705;
  --sf-accent-hover:#ffc826;
  --sf-green:#485745;
  --sf-green-dark:#182019;
  --sf-success:#dff2df;
  --sf-success-text:#30713a;
  --sf-shadow:0 7px 24px rgba(0,0,0,.14);
  max-width:980px;
  margin:1.5rem auto;
  color:var(--sf-page-text);
  line-height:1.55;
  font-size:15px;
}
.sf-wrap *{box-sizing:border-box}
.sf-wrap>h2,
.sf-wrap .sf-results>h3,
.sf-wrap .sf-result-group>h3{
  color:var(--sf-page-text)!important;
}
.sf-wrap>h2{margin:0 0 .35rem;font-size:1.8rem}
.sf-wrap>p{color:var(--sf-page-muted);margin-top:.35rem}
.sf-wrap a{color:var(--sf-accent)}
.sf-wrap a:hover{color:var(--sf-accent-hover)}

/* Rounded V1-style panels */
.sf-notice,
.sf-form,
.sf-card{
  background:var(--sf-card);
  color:var(--sf-card-text);
  border:1px solid var(--sf-border);
  border-radius:12px;
  box-shadow:var(--sf-shadow);
}

.sf-notice{
  position:relative;
  padding:17px 19px;
  margin:0 0 20px;
  overflow:hidden;
}
.sf-notice::before{
  content:"";
  position:absolute;
  left:0;top:0;right:0;
  height:4px;
  background:var(--sf-accent);
}
.sf-notice strong{color:var(--sf-card-text)}
.sf-notice p{margin:.45rem 0;color:var(--sf-card-text)}
.sf-notice p:last-child{margin-bottom:0}
.sf-notice-info{background:var(--sf-card)}
.sf-notice-success{background:#f5fbf5;border-color:#b9d8bc}
.sf-notice-success::before{background:#62a56b}
.sf-notice-error{background:#fff7f7;border-color:#e3bbbb}
.sf-notice-error::before{background:#c85c5c}
.sf-notice-warn{background:#fffaf0;border-color:#ead291}
.sf-notice-small{margin-top:18px;font-size:.93rem;box-shadow:none}

.sf-btn{
  display:inline-block;
  border:1px solid #d7aa24;
  border-radius:7px;
  background:#fff;
  color:#3b321b!important;
  padding:9px 14px;
  font:inherit;
  font-weight:700;
  cursor:pointer;
  text-decoration:none!important;
  transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.sf-btn:hover{background:#fff9df;border-color:var(--sf-accent);box-shadow:0 3px 10px rgba(0,0,0,.08)}
.sf-btn:active{transform:translateY(1px)}
.sf-btn:disabled{opacity:.6;cursor:wait}
.sf-btn-primary{background:var(--sf-accent);border-color:var(--sf-accent);color:#191c17!important}
.sf-btn-primary:hover{background:var(--sf-accent-hover);border-color:var(--sf-accent-hover)}
.sf-status{display:inline-block;margin-left:10px;color:var(--sf-page-muted)}
.sf-location-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0}

.sf-map{
  width:100%;height:300px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.22);
  margin:16px 0 24px;
  overflow:hidden;
  box-shadow:var(--sf-shadow);
}
.sf-map .leaflet-popup-content-wrapper,.sf-map .leaflet-popup-tip{color:#222}

/* Result hierarchy intentionally echoes V1 */
.sf-result-group{margin:24px 0 0}
.sf-result-group>h3{font-size:1.3rem;margin:0 0 10px}
.sf-result-intro{color:var(--sf-page-muted);font-size:.92rem;margin:-5px 0 12px}
.sf-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sf-cards-best{grid-template-columns:1fr}
.sf-cards-single{grid-template-columns:1fr}

.sf-card{
  position:relative;
  padding:17px 18px;
  min-width:0;
  box-shadow:0 5px 18px rgba(0,0,0,.12);
}
.sf-card-best{border:2px solid var(--sf-accent);padding:18px 19px}
.sf-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}
.sf-card h4{font-size:1.1rem;line-height:1.25;margin:0;color:var(--sf-card-text)!important}
.sf-card p{margin:5px 0;color:var(--sf-card-text)}
.sf-card strong{color:var(--sf-card-text)}
.sf-meta{color:var(--sf-card-muted)!important;font-size:.93rem}
.sf-badge{
  flex:0 0 auto;
  font-size:.72rem;
  line-height:1.2;
  background:var(--sf-success);
  color:var(--sf-success-text);
  border:1px solid #b8d9bc;
  border-radius:999px;
  padding:4px 8px;
  font-weight:700;
}
.sf-best{
  display:inline-block;
  margin:0 0 9px;
  color:#584714;
  background:#fff4c6;
  border:1px solid #e7cd72;
  border-radius:999px;
  padding:4px 8px;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-weight:800;
}
.sf-tags{display:flex;gap:6px;flex-wrap:wrap;margin:11px 0}
.sf-tag{
  font-size:.75rem;
  background:var(--sf-card-alt);
  border:1px solid var(--sf-border);
  color:#4b514b;
  border-radius:999px;
  padding:4px 8px;
}
.sf-phone{margin-top:13px}
.sf-call{width:100%;text-align:center}
.sf-card .sf-error{color:#a63131}


/* Registration location preview. Mobile first: stacked cards. Desktop reveals map beside GPS card. */
.sf-registration-location-grid{
  width:100%;
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
  align-items:stretch;
}
.sf-registration-location-card{min-width:0}
.sf-registration-location-card .sf-btn{width:100%;text-align:center;margin-top:4px}
.sf-registration-location-card .sf-status{display:block;margin:4px 0 0;color:var(--sf-card-muted)}
.sf-registration-map-card{
  min-width:0;
  background:var(--sf-card-alt);
  color:var(--sf-card-text);
  border:1px solid var(--sf-border);
  border-radius:9px;
  padding:15px;
  opacity:0;
  transform:translateY(8px);
  transition:opacity .35s ease,transform .35s ease;
}
.sf-registration-map-card.is-visible{opacity:1;transform:translateY(0)}
.sf-registration-map-card[hidden]{display:none!important}
.sf-registration-map-copy{display:grid;gap:3px;margin-bottom:10px}
.sf-registration-map-copy strong{color:var(--sf-card-text)}
.sf-registration-map-copy small{color:var(--sf-card-muted);font-weight:400}
.sf-registration-map-card .sf-map{
  height:220px;
  margin:0;
  border:1px solid #ccd0c9;
  border-radius:8px;
  box-shadow:none;
}
@media(min-width:701px){
  .sf-registration-location-grid.sf-location-ready{grid-template-columns:minmax(0,1fr) minmax(320px,.9fr)}
  .sf-registration-map-card .sf-map{height:250px}
}

/* Registration form: one rounded white panel, with smaller rounded field groups. */
.sf-registration .sf-form{
  padding:20px;
  gap:16px;
}
.sf-form{display:grid;gap:16px}
.sf-form>label,.sf-fieldset{display:grid;gap:6px;font-weight:700;color:var(--sf-card-text)!important}
.sf-form label,.sf-form legend{color:var(--sf-card-text)!important}
.sf-form input[type=text],.sf-form input[type=tel],.sf-form select,.sf-form textarea{
  width:100%;
  padding:11px 12px;
  border:1px solid #ccd0c9;
  border-radius:7px;
  background:#fff;
  color:#20251f;
  font:inherit;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.035)
}
.sf-form input::placeholder,.sf-form textarea::placeholder{color:#7b8079}
.sf-form input:focus,.sf-form select:focus,.sf-form textarea:focus{
  outline:3px solid rgba(242,183,5,.20);
  outline-offset:1px;
  border-color:#d3a821
}
.sf-form small,.sf-fieldset p{font-weight:400;color:var(--sf-card-muted);margin:0}
.sf-fieldset{
  border:1px solid var(--sf-border);
  background:var(--sf-card-alt);
  border-radius:9px;
  padding:15px
}
.sf-fieldset legend{padding:0 6px;font-weight:700}
.sf-check{display:block!important;font-weight:400!important;color:var(--sf-card-text)!important}
.sf-check input{margin-right:6px}
.sf-registration .sf-check a{color:#80620b;text-decoration:underline}
.sf-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.sf-error{color:#ffaaa7}


/* V2.0.5 form polish: aligned required markers, visible select arrows and matched GPS/map cards. */
.sf-label-title{
  display:inline-flex;
  align-items:baseline;
  gap:4px;
  font-weight:700;
  color:var(--sf-card-text)!important;
}
.sf-required{
  display:inline!important;
  color:#c62828!important;
  font-weight:800!important;
  line-height:1;
}
.sf-form select{
  -webkit-appearance:none!important;
  appearance:none!important;
  padding-right:42px!important;
  background-color:#fff!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5L7 7l5.5-5.5' fill='none' stroke='%23252a24' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 14px center!important;
  background-size:14px 9px!important;
}
.sf-registration-location-copy{margin-bottom:10px}
.sf-registration-location-card .sf-registration-map-copy strong,
.sf-registration-map-card .sf-registration-map-copy strong{
  font-size:1rem;
  line-height:1.3;
  font-weight:700;
}
@media(min-width:701px){
  .sf-registration-location-grid.sf-location-ready > .sf-registration-location-card,
  .sf-registration-location-grid.sf-location-ready > .sf-registration-map-card{
    height:100%;
  }
}

@media(max-width:700px){
  .sf-wrap{font-size:14px}
  .sf-status{margin-left:0;width:100%}
  .sf-map{height:240px}
  .sf-cards{grid-template-columns:1fr}
  .sf-registration .sf-form{padding:16px}
}
