/* CrecheFinder finder + profile v0.4.0 (requires site.css tokens) */

/* ---------- Home hero + calculator ---------- */
.cf-hero{background:var(--cf-soft);border-bottom:1px solid var(--cf-line);padding:var(--cf-s8) 0}
.cf-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--cf-s6);align-items:center}
.cf-hero-copy .cf-lead{max-width:600px}
.cf-searchbar{display:flex;gap:var(--cf-s1);max-width:600px;background:#fff;border:1px solid var(--cf-line-2);border-radius:var(--cf-r);padding:6px;margin:0}
.cf-searchbar input{flex:1;min-width:0;border:0 !important;background:transparent;font:inherit;font-size:1rem;padding:10px 12px;color:var(--cf-ink);outline:none}
.cf-searchbar:focus-within{border-color:var(--cf-teal);box-shadow:0 0 0 3px var(--cf-teal-50)}
.cf-calc{background:#fff;border:1px solid var(--cf-line);border-radius:var(--cf-r);padding:var(--cf-s3);box-shadow:0 1px 2px rgba(27,42,40,.04)}
.cf-calc .cf-h3{font-size:1.2rem;margin:0 0 var(--cf-s2)}
.cf-calc-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--cf-s2)}
.cf-calc-out{display:grid;grid-template-columns:1fr 1fr;gap:var(--cf-s2);margin:var(--cf-s2) 0 0;padding-top:var(--cf-s2);border-top:1px solid var(--cf-line)}
.cf-calc-out dt{font-size:.82rem;color:var(--cf-muted);font-weight:600}
.cf-calc-out dd{margin:2px 0 0;font-family:var(--cf-serif);font-size:1.6rem;font-weight:600;color:var(--cf-ink);line-height:1.2}
.cf-calc-out dd span{font-family:var(--cf-sans);font-size:.85rem;color:var(--cf-muted);font-weight:400}
.cf-calc-net dd{color:var(--cf-teal)}

/* Fields */
.cf-field{min-width:0;margin:0 0 var(--cf-s2)}
.cf-field label{display:block;font-weight:600;font-size:.86rem;margin:0 0 6px;color:var(--cf-ink)}
.cf-field input,.cf-field select,.cf-field textarea{width:100%;max-width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid var(--cf-line-2);border-radius:var(--cf-r-sm);font:inherit;font-size:1rem;background:#fff;color:var(--cf-ink);margin:0}
.cf-field input:focus,.cf-field select:focus,.cf-field textarea:focus{outline:none;border-color:var(--cf-teal);box-shadow:0 0 0 3px var(--cf-teal-50)}
.cf-opt{font-weight:400;color:var(--cf-muted)}
.cf-check{display:flex;gap:10px;align-items:center;font-size:.95rem;font-weight:500;color:var(--cf-ink);margin:var(--cf-s1) 0 var(--cf-s2);cursor:pointer}
.cf-check input{width:18px;height:18px;accent-color:var(--cf-teal);margin:0}
.cf-link-btn{background:none;border:0;padding:0;color:var(--cf-teal);font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* Trust strip */
.cf-trust{list-style:none;margin:0;padding:var(--cf-s4) 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--cf-s3);border-bottom:1px solid var(--cf-line)}
.cf-trust li{display:flex;gap:12px;align-items:flex-start;font-size:.92rem;color:var(--cf-muted);line-height:1.5}
.cf-trust strong{display:block;color:var(--cf-ink);font-size:.98rem}
.cf-trust .cf-ico{color:var(--cf-teal);margin-top:2px}

/* ---------- Browse: sidebar + list ---------- */
.cf-browse{padding-top:var(--cf-s5)}
.cf-browse-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--cf-s5);align-items:start}
.cf-filters{position:sticky;top:96px;border:1px solid var(--cf-line);border-radius:var(--cf-r);padding:var(--cf-s3);background:#fff}
.cf-filters-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--cf-s2)}
.cf-filters-head .cf-h4{margin:0 !important}
.cf-filters-close,.cf-filters-apply,.cf-filter-fab{display:none}
.cf-list-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--cf-s2);flex-wrap:wrap;padding-bottom:var(--cf-s2);border-bottom:1px solid var(--cf-line)}
.cf-count{margin:0;font-size:1.05rem;color:var(--cf-ink)}
.cf-count strong{font-family:var(--cf-serif);font-size:1.4rem}
.cf-list-head .cf-fine{margin:0}
.cf-results{display:block;margin:0}
.cf-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--cf-s3);padding:var(--cf-s3) 0;border-bottom:1px solid var(--cf-line);align-items:start}
.cf-row.has-photo{grid-template-columns:168px minmax(0,1fr) auto}
.cf-row-photo{position:relative;display:block;border-radius:var(--cf-r-sm);overflow:hidden;aspect-ratio:4/3;background:var(--cf-soft)}
.cf-row-photo img{width:100%;height:100%;object-fit:cover;display:block}
.cf-row-photo span{position:absolute;left:8px;bottom:8px;background:rgba(27,42,40,.75);color:#fff;font-size:.72rem;font-weight:600;padding:3px 8px;border-radius:999px}
.cf-row-name{font-size:1.2rem !important;margin:0 0 2px !important}
.cf-row-name a{color:var(--cf-ink) !important;text-decoration:none !important}
.cf-row-name a:hover{color:var(--cf-teal) !important;text-decoration:underline !important}
.cf-row-loc{margin:0 0 var(--cf-s1);color:var(--cf-muted);font-size:.95rem}
.cf-row-facts{margin:0 0 var(--cf-s1);display:flex;flex-wrap:wrap;gap:4px 20px;font-size:.92rem;color:var(--cf-text)}
.cf-row-facts b{font-weight:600;color:var(--cf-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;margin-right:6px}
.cf-row-note{margin:var(--cf-s1) 0 0;font-size:.88rem;color:#7a4413}
.cf-row-actions{display:flex;flex-direction:column;gap:var(--cf-s1);min-width:150px}
.cf-more{text-align:center;padding:var(--cf-s4) 0 0}
.cf-more .cf-fine{margin:0 0 var(--cf-s2)}
.cf-empty{padding:var(--cf-s5) 0;text-align:center}
.cf-empty p{margin:0 0 var(--cf-s1)}

/* Provider CTA */
.cf-provider-cta{display:flex;align-items:center;justify-content:space-between;gap:var(--cf-s4);padding-top:var(--cf-s8)}
.cf-provider-cta > div{max-width:680px}
.cf-provider-cta p{margin:0}
.cf-provider-cta .cf-h2{margin-bottom:var(--cf-s1)}
.cf-home .cf-band{margin-top:var(--cf-s8)}

/* ---------- Enquiry modal ---------- */
.cf-modal{position:fixed;inset:0;background:rgba(20,30,28,.55);display:flex;align-items:center;justify-content:center;z-index:9999;padding:var(--cf-s2)}
.cf-modal[hidden]{display:none}
.cf-modal-box{background:#fff;border-radius:var(--cf-r);max-width:560px;width:100%;max-height:92vh;overflow:auto;padding:var(--cf-s4);position:relative;box-shadow:0 24px 48px rgba(20,30,28,.2)}
.cf-modal-box h3{margin:0 0 var(--cf-s1);font-size:1.4rem;padding-right:32px}
.cf-modal-box > .cf-muted{margin:0 0 var(--cf-s3);font-size:.95rem}
.cf-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--cf-s2)}
.cf-close{position:absolute;top:12px;right:12px;width:40px;height:40px;background:none;border:0;font-size:1.8rem;line-height:1;cursor:pointer;color:var(--cf-muted);border-radius:50%}
.cf-close:hover{background:var(--cf-soft)}
.cf-consent{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;margin:var(--cf-s1) 0 var(--cf-s2);color:var(--cf-text);line-height:1.5}
.cf-consent input{width:18px;height:18px;margin-top:2px;accent-color:var(--cf-teal);flex:0 0 auto}
.cf-form-msg{margin:var(--cf-s1) 0 0;font-weight:600}
.cf-form-msg:empty{display:none}
.cf-form-msg.ok{color:var(--cf-ok)}
.cf-form-msg.err{color:#a3261b}

/* ---------- Provider profile ---------- */
.cf-profile-main{margin-top:0 !important;padding:0 !important}
.cf-profile{padding-bottom:var(--cf-s4)}
.cf-crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:.88rem;color:var(--cf-muted);padding:var(--cf-s3) 0 0}
.cf-crumbs a{color:var(--cf-muted) !important}
.cf-crumbs span[aria-current]{color:var(--cf-ink)}
.cf-profile-head{padding:var(--cf-s4) 0 var(--cf-s4);border-bottom:1px solid var(--cf-line);margin-bottom:var(--cf-s4)}
.cf-profile-head .cf-display{max-width:820px}
.cf-profile-loc{display:flex;align-items:center;gap:6px;color:var(--cf-muted);margin:0 0 var(--cf-s2);font-size:1.05rem}
.cf-profile-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--cf-s6);align-items:start}
.cf-profile-side{position:sticky;top:96px}
.cf-enquire-card{border:1px solid var(--cf-line);border-radius:var(--cf-r);padding:var(--cf-s3);background:#fff;box-shadow:0 1px 2px rgba(27,42,40,.04)}
.cf-enquire-card .cf-muted{font-size:.95rem;margin:0 0 var(--cf-s2)}
.cf-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:170px 170px;gap:8px;margin:0 0 var(--cf-s5);position:relative;border-radius:var(--cf-r);overflow:hidden}
.cf-gallery a{display:block;min-width:0;min-height:0}
.cf-gallery a:first-child{grid-row:1/3}
.cf-gallery img{width:100%;height:100%;object-fit:cover;display:block}
.cf-gallery .cf-gal-extra{display:none}
.cf-gal-count{position:absolute;right:12px;bottom:12px;background:#fff;color:var(--cf-ink);font-size:.82rem;font-weight:600;padding:6px 12px;border-radius:999px;box-shadow:0 1px 4px rgba(0,0,0,.15)}
.cf-section{padding:0 0 var(--cf-s5)}
.cf-section + .cf-section{border-top:1px solid var(--cf-line);padding-top:var(--cf-s4)}
.cf-section p{margin:0 0 var(--cf-s2)}
.cf-facts{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--cf-s4);margin:0}
.cf-facts > div{padding:12px 0;border-bottom:1px solid var(--cf-line);min-width:0}
.cf-facts dt{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--cf-muted)}
.cf-facts dd{margin:4px 0 0;color:var(--cf-ink);overflow-wrap:anywhere}
.cf-facts dd small{display:block;color:var(--cf-muted);font-size:.82rem;margin-top:2px}
.cf-callout{margin:var(--cf-s3) 0 0 !important;padding:12px 16px;border-left:3px solid var(--cf-accent);background:var(--cf-accent-50);color:#5e3010;border-radius:0 var(--cf-r-sm) var(--cf-r-sm) 0}
.cf-linklist{list-style:none;margin:0;padding:0}
.cf-linklist li{display:flex;justify-content:space-between;gap:var(--cf-s2);padding:10px 0;border-bottom:1px solid var(--cf-line)}
.cf-linklist li span{color:var(--cf-muted);font-size:.9rem;text-align:right}
.cf-linklist a{font-weight:600}
.cf-claim{border-top:1px solid var(--cf-line);padding-top:var(--cf-s3)}
.cf-sticky-cta{display:none}

/* ---------- Responsive ---------- */
@media (max-width:1000px){
  .cf-hero-grid{grid-template-columns:1fr;gap:var(--cf-s4)}
  .cf-browse-grid{grid-template-columns:1fr}
  .cf-filters{display:none;position:fixed;inset:auto 0 0 0;top:auto;max-height:88vh;overflow:auto;z-index:9000;border-radius:16px 16px 0 0;box-shadow:0 -12px 32px rgba(20,30,28,.18);padding:var(--cf-s3) var(--cf-s3) var(--cf-s4)}
  .cf-filters.is-open{display:block}
  .cf-filters-close{display:inline-flex;background:none;border:0;font-size:1.8rem;line-height:1;width:40px;height:40px;align-items:center;justify-content:center;cursor:pointer;color:var(--cf-muted)}
  .cf-filters-apply{display:flex;margin-top:var(--cf-s2)}
  .cf-filter-fab{display:inline-flex;align-items:center;gap:8px;position:sticky;bottom:16px;left:50%;transform:translateX(-50%);margin:var(--cf-s3) 0 0;z-index:50;background:var(--cf-ink);color:#fff;border:0;border-radius:999px;padding:12px 20px;font:inherit;font-weight:600;box-shadow:0 8px 20px rgba(20,30,28,.25);cursor:pointer}
  .cf-fab-n{background:#fff;color:var(--cf-ink);border-radius:999px;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem}
  .cf-fab-n[hidden]{display:none}
  .cf-profile-grid{grid-template-columns:1fr;gap:0}
  .cf-profile-side{display:none}
  .cf-sticky-cta{display:block;position:sticky;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--cf-line);padding:12px var(--cf-s2);box-shadow:0 -6px 16px rgba(20,30,28,.06)}
}
@media (max-width:640px){
  .cf-hero{padding:var(--cf-s5) 0}
  .cf-searchbar .cf-btn{padding:10px 16px}
  .cf-trust{grid-template-columns:1fr;gap:var(--cf-s2);padding:var(--cf-s3) 0}
  .cf-row,.cf-row.has-photo{grid-template-columns:1fr;gap:var(--cf-s2)}
  .cf-row-actions{flex-direction:row;min-width:0}
  .cf-row-actions .cf-btn{flex:1}
  .cf-provider-cta{flex-direction:column;align-items:flex-start;padding-top:var(--cf-s6)}
  .cf-provider-cta .cf-btn{width:100%}
  .cf-calc-out dd{font-size:1.35rem}
  .cf-form-grid{grid-template-columns:1fr}
  .cf-field input,.cf-field select,.cf-field textarea{font-size:16px}
  .cf-modal{padding:0;align-items:flex-end}
  .cf-modal-box{padding:var(--cf-s3) var(--cf-s2) var(--cf-s4);max-height:94vh;border-radius:16px 16px 0 0}
  .cf-gallery{grid-template-columns:1fr 1fr;grid-template-rows:200px 110px;margin-left:calc(var(--cf-s2) * -1);margin-right:calc(var(--cf-s2) * -1);border-radius:0}
  .cf-gallery a:first-child{grid-column:1/3;grid-row:auto}
  .cf-gallery a:nth-child(n+4){display:none}
  .cf-facts{grid-template-columns:1fr}
  .cf-profile-head{padding:var(--cf-s3) 0}
}
