.crf-app {
  --crf-blue: #0054a3;
  --crf-sky: #649cd1;
  --crf-bright: #338bde;
  --crf-gold: #f8b200;
  --crf-ink: #27313d;
  --crf-muted: #687483;
  --crf-pale: #eef6fc;
  --crf-line: #d9e7f3;
  --crf-white: #ffffff;
  --crf-member: #0057b8;
  --crf-supplier: #14956f;
  --crf-maker: #f59e0b;
  --crf-shadow: 0 18px 48px rgba(0, 84, 163, .13);
  color: var(--crf-ink);
  font-family: Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.5;
  margin: 0;
  overflow: visible;
}

.crf-app *, .crf-app *::before, .crf-app *::after { box-sizing: border-box; }
.crf-app button, .crf-app input { font: inherit; }
.crf-app button { color: inherit; }
.crf-app a { color: inherit; text-decoration: none; }
.crf-app img { display: block; max-width: 100%; }

.crf-eyebrow { align-items: center; color: var(--crf-blue); display: flex; font-size: 12px; font-weight: 700; gap: 10px; letter-spacing: .13em; margin: 0 0 17px; text-transform: uppercase; }
.crf-eyebrow > span { background: var(--crf-gold); border-radius: 2px; display: inline-block; height: 3px; width: 30px; }

.crf-hero { align-items: center; background: linear-gradient(118deg, #07365f 0%, #0054a3 58%, #0876cf 100%); display: grid; gap: clamp(40px, 7vw, 95px); grid-template-columns: minmax(0, 1.05fr) minmax(390px, .95fr); min-height: 575px; overflow: hidden; padding: 72px clamp(25px, 6vw, 92px); position: relative; }
.crf-hero::before { background: radial-gradient(circle, rgba(255,255,255,.13), rgba(255,255,255,0) 67%); content: ""; height: 620px; position: absolute; right: -150px; top: -310px; width: 620px; }
.crf-hero::after { background: var(--crf-gold); content: ""; height: 6px; inset: auto 0 0; position: absolute; }
.crf-hero__copy { max-width: 720px; position: relative; z-index: 2; }
.crf-hero .crf-eyebrow { color: #fff; }.crf-hero .crf-eyebrow>span { background: var(--crf-gold); }
.crf-hero h2 { color: #fff; font-size: clamp(48px, 5.4vw, 80px); font-weight: 700; letter-spacing: -.05em; line-height: .98; margin: 0; text-wrap: balance; }
.crf-hero h2 em { color: var(--crf-gold); display: block; font-style: normal; }
.crf-hero__intro { color: #d7e9f8; font-size: 17px; line-height: 1.7; margin: 25px 0 30px; max-width: 670px; }

.crf-search { align-items: center; background: var(--crf-white); border: 1px solid var(--crf-line); display: flex; gap: 11px; position: relative; }
.crf-search--hero { border-color: rgba(255,255,255,.45); border-radius: 15px; box-shadow: 0 18px 45px rgba(0,31,61,.24); max-width: 660px; padding: 8px 8px 8px 18px; }
.crf-search__icon { border: 2px solid var(--crf-sky); border-radius: 50%; display: inline-block; flex: 0 0 auto; height: 17px; position: relative; width: 17px; }
.crf-search__icon::after { background: var(--crf-sky); border-radius: 2px; bottom: -5px; content: ""; height: 7px; position: absolute; right: -3px; transform: rotate(-43deg); width: 2px; }
.crf-search input { background: transparent !important; border: 0 !important; box-shadow: none !important; color: var(--crf-ink) !important; flex: 1; height: 48px; margin: 0 !important; min-width: 0; outline: 0; padding: 0 5px !important; width: auto !important; }
.crf-search input::placeholder { color: #929dab; opacity: 1; }
.crf-radius-select { background: #edf5fb; border: 1px solid #c8ddec; border-radius: 8px; color: var(--crf-blue); cursor: pointer; flex: 0 0 auto; font-size: 11px; font-weight: 800; height: 40px; margin: 0; max-width: 105px; min-width: 92px; padding: 0 25px 0 9px; width: auto !important; }
.crf-scroll-to-map { background: var(--crf-gold); border: 0; border-radius: 10px; color: #182738 !important; cursor: pointer; font-weight: 800; padding: 14px 18px; transition: background .2s ease, transform .2s ease; white-space: nowrap; }
.crf-scroll-to-map:hover { background: #ffc21c; transform: translateY(-1px); }
.crf-scroll-to-map span { color: var(--crf-blue); margin-left: 7px; }
.crf-hero__stats { color: #d7e9f8; display: flex; flex-wrap: wrap; font-size: 10px; gap: 27px; margin-top: 25px; }.crf-hero__stats b { color: #fff; font-size: 18px; margin-right: 4px; }

.crf-hero__visual { background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.27); border-radius: 28px; box-shadow: 0 30px 65px rgba(0,40,80,.22); min-height: 410px; position: relative; transform: rotate(2deg); }
.crf-hero__visual::before { color: #fff; content: "Réseau national"; font-size: 11px; font-weight: 800; left: 25px; position: absolute; top: 23px; }.crf-hero__visual::after { bottom: 22px; color: #fff; content: "● Aérogommeurs     ● Partenaires"; font-size: 10px; font-weight: 700; left: 25px; position: absolute; word-spacing: 4px; }
.crf-france-symbol { background: linear-gradient(150deg, rgba(114,177,229,.76), rgba(80,145,205,.65)); clip-path: polygon(42% 1%, 55% 6%, 68% 5%, 74% 15%, 89% 19%, 85% 31%, 96% 42%, 88% 53%, 82% 67%, 70% 73%, 65% 90%, 50% 97%, 38% 89%, 25% 86%, 18% 73%, 6% 67%, 12% 51%, 4% 40%, 17% 28%, 20% 14%); filter: drop-shadow(0 22px 26px rgba(0,40,80,.22)); height: 330px; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%) rotate(-2deg); width: 310px; }
.crf-france-symbol::before, .crf-france-symbol::after { background: rgba(255,255,255,.16); content: ""; height: 1px; left: 6%; position: absolute; top: 48%; transform: rotate(25deg); width: 90%; }
.crf-france-symbol::after { top: 58%; transform: rotate(-34deg); }
.crf-symbol-pin { background: var(--kind); border: 4px solid white; border-radius: 50% 50% 50% 7px; box-shadow: 0 7px 18px rgba(0,0,0,.22); height: 40px; position: absolute; transform: rotate(-45deg); width: 40px; z-index: 2; }
.crf-symbol-pin::after { background: white; border-radius: 50%; content: ""; height: 10px; left: 11px; opacity: .95; position: absolute; top: 11px; width: 10px; }
.crf-symbol-pin--member { --kind: var(--crf-sky); left: 25%; top: 26%; }
.crf-symbol-pin--supplier { --kind: var(--crf-gold); right: 23%; top: 43%; }
.crf-symbol-pin--maker { --kind: #e04f48; bottom: 20%; left: 43%; }
.crf-orbit { border: 1px solid rgba(100, 156, 209, .27); border-radius: 50%; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%); }
.crf-orbit--one { height: 490px; width: 490px; }
.crf-orbit--two { height: 270px; transform: translate(-50%, -50%) rotate(-21deg); width: 590px; }

.crf-directory { background: var(--crf-white); padding: 80px clamp(18px, 4.8vw, 72px) 85px; scroll-margin-top: 95px; }
.crf-section-heading { align-items: end; display: flex; gap: 50px; justify-content: space-between; margin: 0 auto 33px; max-width: 1380px; }
.crf-section-heading h3 { color: var(--crf-blue); font-size: clamp(38px, 4vw, 58px); font-weight: 700; letter-spacing: -.045em; line-height: 1; margin: 0; }
.crf-section-heading > p { color: var(--crf-muted); line-height: 1.7; margin: 0; max-width: 470px; }

.crf-toolbar { align-items: center; background: var(--crf-pale); border: 1px solid var(--crf-line); border-radius: 14px; display: flex; flex-wrap: wrap; gap: 10px; margin: 0 auto 16px; max-width: 1380px; padding: 9px; }
.crf-search--toolbar { border-radius: 9px; flex: 1 0 100%; min-width: 0; padding: 0 13px; width: 100%; }
.crf-search--toolbar input { height: 43px; }
.crf-search--toolbar .crf-radius-search { background: var(--crf-blue); border: 0; border-radius: 7px; color: #fff; cursor: pointer; flex: 0 0 auto; font-size: 10px; font-weight: 800; min-height: 34px; padding: 7px 10px; white-space: nowrap; }
.crf-search--toolbar .crf-radius-select { height: 34px; }
.crf-radius-search.is-loading { cursor: wait; opacity: .65; }
.crf-filters { display: flex; gap: 7px; }
.crf-service-select { display:flex; flex-direction:column; gap:3px; min-width:235px; }
.crf-service-select__title { color:var(--crf-muted); font-size:9px; font-weight:800; letter-spacing:.08em; line-height:1; padding-left:3px; text-transform:uppercase; }
.crf-service-select select { background: white; border: 1px solid #cbddeb; border-radius: 9px; color: var(--crf-ink); cursor: pointer; font-size: 11px; font-weight: 700; height: 43px; max-width: 290px; padding: 0 31px 0 11px; width: 100%; }
.crf-service-select.is-empty { display: none; }
.crf-filter, .crf-nearby { align-items: center; background: white; border: 1px solid #cbddeb; border-radius: 9px; cursor: pointer; display: inline-flex; font-size: 11px; font-weight: 700; gap: 7px; justify-content: center; min-height: 43px; padding: 10px 12px; transition: .2s ease; white-space: nowrap; }
.crf-filter i { background: var(--kind); border-radius: 50%; height: 8px; width: 8px; }
.crf-filter[data-kind="member"] { --kind: var(--crf-member); }
.crf-filter[data-kind="supplier"] { --kind: var(--crf-supplier); }
.crf-filter[data-kind="maker"] { --kind: var(--crf-maker); }
.crf-filter.is-active { background: var(--kind); border-color: var(--kind); color: white; }
.crf-filter[data-kind="maker"].is-active { color: #27313d; }
.crf-filter:hover { border-color: var(--crf-sky); transform: translateY(-1px); }
.crf-nearby { background: var(--crf-gold); border-color: var(--crf-gold); color: #2d3035; }
.crf-nearby span { font-size: 18px; line-height: 0; }
.crf-nearby.is-active { box-shadow: inset 0 0 0 2px rgba(0,84,163,.45); }
.crf-nearby.is-loading { opacity: .65; pointer-events: none; }

.crf-explorer { border: 1px solid var(--crf-line); border-radius: 18px; box-shadow: var(--crf-shadow); display: grid; grid-template-columns: 410px minmax(0, 1fr); height: 720px; margin: 0 auto; max-width: 1380px; overflow: hidden; position: relative; }
.crf-results-panel { background: #f6f9fc; border-right: 1px solid var(--crf-line); display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.crf-results-heading { align-items: center; background: white; border-bottom: 1px solid var(--crf-line); display: flex; justify-content: space-between; min-height: 59px; padding: 0 17px; }
.crf-results-heading p { margin: 0; }
.crf-results-heading strong { color: var(--crf-blue); font-size: 20px; }
.crf-results-heading > span { color: var(--crf-muted); font-size: 10px; }
.crf-results { overflow-y: auto; padding: 11px; scrollbar-color: var(--crf-sky) transparent; scrollbar-width: thin; }
.crf-loading { align-items: center; color: var(--crf-muted); display: flex; flex-direction: column; gap: 13px; justify-content: center; min-height: 330px; text-align: center; }
.crf-loading span { animation: crf-spin .8s linear infinite; border: 3px solid var(--crf-line); border-radius: 50%; border-top-color: var(--crf-blue); height: 34px; width: 34px; }
@keyframes crf-spin { to { transform: rotate(360deg); } }

.crf-card { background: white; border: 1px solid transparent; border-left: 4px solid var(--kind, transparent); border-radius: 13px; display: grid; grid-template-columns: 1fr auto; margin-bottom: 9px; overflow: hidden; position: relative; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.crf-card--member { --kind: var(--crf-member); }
.crf-card--supplier { --kind: var(--crf-supplier); }
.crf-card--maker { --kind: var(--crf-maker); }
.crf-card:hover, .crf-card.is-selected { border-color: var(--crf-sky); box-shadow: 0 9px 26px rgba(0,84,163,.11); transform: translateY(-1px); }
.crf-card__main { align-items: stretch; background: none; border: 0; cursor: pointer; display: grid; grid-template-columns: 92px 1fr; min-width: 0; padding: 10px; text-align: left; width: 100%; }
.crf-card__media { align-items: center; background: color-mix(in srgb, var(--kind) 13%, white); border-radius: 9px; color: var(--kind); display: flex; font-size: 24px; font-weight: 800; justify-content: center; min-height: 118px; overflow: hidden; position: relative; }
.crf-card__media::after { border: 1px solid currentColor; border-radius: 50%; bottom: -38px; content: ""; height: 85px; opacity: .24; position: absolute; right: -37px; width: 85px; }
.crf-card__media img { height: 100%; object-fit: cover; position: absolute; width: 100%; }
.crf-card__media.is-logo { background: #fff; padding: 9px; }
.crf-card__media.is-logo::after { display: none; }
.crf-card__media.is-logo img { object-fit: contain; padding: 7px; }
.crf-card__media--member { --kind: var(--crf-member); }
.crf-card__media--supplier { --kind: var(--crf-supplier); }
.crf-card__media--maker { --kind: var(--crf-maker); }
.crf-card__body { display: flex; flex-direction: column; min-width: 0; padding: 2px 7px 0 13px; }
.crf-card__top { align-items: center; display: flex; justify-content: space-between; min-height: 16px; }
.crf-kind { align-items: center; color: var(--kind); display: inline-flex; font-size: 8px; font-weight: 800; gap: 5px; letter-spacing: .08em; text-transform: uppercase; }
.crf-kind i { background: var(--kind); border-radius: 50%; height: 6px; width: 6px; }
.crf-kind--member { --kind: var(--crf-member); }
.crf-kind--supplier { --kind: var(--crf-supplier); }
.crf-kind--maker { --kind: #c48c00; }
.crf-card__distance { color: var(--crf-blue); font-size: 9px; font-weight: 700; }
.crf-card__body > strong { color: var(--crf-ink); font-size: 15px; line-height: 1.2; margin: 7px 0 5px; overflow: hidden; text-overflow: ellipsis; }
.crf-card__location { align-items: center; color: var(--crf-muted); display: flex; font-size: 9px; gap: 5px; line-height: 1.4; }
.crf-card__location i { border: 1.5px solid var(--crf-sky); border-radius: 50% 50% 50% 2px; display: inline-block; height: 8px; transform: rotate(-45deg); width: 8px; }
.crf-card__specialty { color: #3f4d5a; display: block; font-size: 9px; line-height: 1.4; margin-top: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crf-card__facets { display: flex; gap: 4px; margin-top: 6px; overflow: hidden; }
.crf-card__facets i { background: #eaf4fd; border-radius: 999px; color: var(--crf-blue); flex: 0 0 auto; font-size: 7px; font-style: normal; font-weight: 700; padding: 3px 6px; }
.crf-card__link { color: var(--crf-blue); font-size: 9px; font-weight: 800; margin-top: auto; padding-top: 8px; }
.crf-card__link b { color: var(--crf-gold); display: inline-block; margin-left: 3px; transition: transform .2s ease; }
.crf-card:hover .crf-card__link b { transform: translateX(3px); }
.crf-favorite { background: transparent; border: 0; color: #c6cdd4; cursor: pointer; font-size: 17px; height: 34px; padding: 7px 9px; position: absolute; right: 2px; top: 3px; z-index: 2; }
.crf-favorite.is-active { color: #e04f48; }

.crf-map-panel { background: #e4edf4; min-width: 0; position: relative; }
.crf-map { height: 100%; min-height: 520px; width: 100%; z-index: 1; }
.crf-map .leaflet-tile { filter: saturate(.58) contrast(.92) brightness(1.06); }
.crf-map .leaflet-control-zoom { border: 0; box-shadow: 0 7px 20px rgba(0,84,163,.16); }
.crf-map .leaflet-control-zoom a { border-color: var(--crf-line); color: var(--crf-blue); }
.crf-map .leaflet-control-attribution { font-size: 8px; }
.crf-legend { align-items: center; background: rgba(255,255,255,.95); border: 1px solid var(--crf-line); border-radius: 9px; bottom: 18px; box-shadow: 0 7px 20px rgba(0,84,163,.14); display: flex; font-size: 9px; font-weight: 700; gap: 13px; padding: 9px 11px; position: absolute; right: 18px; z-index: 450; }
.crf-legend span { align-items: center; display: flex; gap: 5px; }
.crf-legend i { background: var(--kind); border-radius: 50%; height: 7px; width: 7px; }
.crf-legend i.member { --kind: var(--crf-member); }
.crf-legend i.supplier { --kind: var(--crf-supplier); }
.crf-legend i.maker { --kind: var(--crf-maker); }

.crf-div-icon { background: none !important; border: 0 !important; }
.crf-div-icon > span { background: var(--kind); border: 3px solid white; border-radius: 50% 50% 50% 6px; box-shadow: 0 5px 15px rgba(0, 48, 94, .3); display: block; height: 31px; position: relative; transform: rotate(-45deg); transition: transform .18s ease; width: 31px; }
.crf-div-icon > span::after { background: white; border-radius: 50%; content: ""; height: 8px; left: 9px; position: absolute; top: 9px; width: 8px; }
.crf-div-icon:hover > span { transform: rotate(-45deg) scale(1.18); }
.crf-div-icon--member { --kind: var(--crf-member); }
.crf-div-icon--supplier { --kind: var(--crf-supplier); }
.crf-div-icon--maker { --kind: var(--crf-maker); }
.crf-leaflet-popup .leaflet-popup-content-wrapper { border-radius: 14px; box-shadow: 0 16px 44px rgba(0,84,163,.22); }
.crf-leaflet-popup .leaflet-popup-content { margin: 14px; }
.crf-popup { display: grid; font-family: Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; gap: 10px; grid-template-columns: 58px 1fr; }
.crf-popup__media { align-items: center; background: color-mix(in srgb, var(--kind) 14%, white); border-radius: 9px; color: var(--kind); display: flex; font-size: 18px; font-weight: 800; height: 58px; justify-content: center; overflow: hidden; }
.crf-popup__media img { height: 100%; object-fit: cover; width: 100%; }
.crf-popup__media.is-logo { background: #fff; padding: 5px; }
.crf-popup__media.is-logo img { object-fit: contain; }
.crf-popup__media--member { --kind: var(--crf-member); }
.crf-popup__media--supplier { --kind: var(--crf-supplier); }
.crf-popup__media--maker { --kind: var(--crf-maker); }
.crf-popup__head { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.crf-popup__head strong { color: var(--crf-ink); font-size: 14px; line-height: 1.2; margin: 3px 0; }
.crf-popup__head > span { color: var(--crf-muted); font-size: 9px; }
.crf-popup > p { color: #586675; font-size: 10px; grid-column: 1 / -1; line-height: 1.5; margin: 0; }
.crf-popup__actions { display: grid; gap: 7px; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.crf-popup__actions a { border: 1px solid var(--crf-line); border-radius: 7px; color: var(--crf-blue); display: block; font-size: 9px; font-weight: 800; padding: 8px; text-align: center; }
.crf-popup__actions .crf-popup__details { background: var(--crf-blue); border-color: var(--crf-blue); color: white; }

.crf-empty { align-items: center; color: var(--crf-muted); display: flex; flex-direction: column; min-height: 330px; padding: 45px 25px; text-align: center; }
.crf-empty > span { border: 3px solid var(--crf-sky); border-radius: 50%; height: 38px; margin-bottom: 10px; position: relative; width: 38px; }
.crf-empty > span::after { background: var(--crf-sky); bottom: -8px; content: ""; height: 11px; position: absolute; right: -4px; transform: rotate(-43deg); width: 3px; }
.crf-empty h4 { color: var(--crf-blue); font-size: 17px; margin: 12px 0 5px; }
.crf-empty p { font-size: 12px; margin: 0 0 16px; }
.crf-empty button { background: var(--crf-blue); border: 0; border-radius: 999px; color: white; cursor: pointer; font-size: 11px; font-weight: 700; padding: 10px 15px; }
.crf-empty--error > span { align-items: center; background: #fff3d3; border: 0; color: #8d6700; display: flex; font-weight: 800; justify-content: center; }
.crf-empty--error > span::after { display: none; }
.crf-view-switch { display: none; }

.crf-trust { background: #07365f; color: white; margin-left: calc(50% - 50vw); padding: clamp(70px, 8vw, 112px) max(24px, calc((100vw - 1380px) / 2)); width: 100vw; }
.crf-trust__inner { align-items: center; display: grid; gap: clamp(50px, 8vw, 120px); grid-template-columns: minmax(320px, 1.05fr) minmax(560px, .95fr); margin: 0 auto; max-width: 1380px; }
.crf-trust__eyebrow { color: #3198ee; font-size: 11px; font-weight: 800; letter-spacing: .2em; margin: 0 0 25px; text-transform: uppercase; }
.crf-trust__copy h3 { color: white; font-size: clamp(42px, 4.4vw, 64px); font-weight: 400; letter-spacing: -.045em; line-height: 1.08; margin: 0; max-width: 650px; }
.crf-trust__steps { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.crf-trust__steps li { background: rgba(255,255,255,.045); border: 1px solid rgba(135,190,234,.32); border-radius: 18px; display: flex; flex-direction: column; min-height: 220px; padding: 28px 24px; }
.crf-trust__steps li > span { color: var(--crf-gold); font-size: 12px; font-weight: 800; margin-bottom: auto; }
.crf-trust__steps strong { color: white; font-size: 16px; font-weight: 600; margin: 28px 0 8px; }
.crf-trust__steps p { color: #c5dcef; font-size: 12px; line-height: 1.55; margin: 0; }

@media (max-width: 1050px) {
  .crf-hero { grid-template-columns: 1fr; padding-bottom: 45px; }
  .crf-hero__copy { max-width: 790px; }
  .crf-hero__visual { display: none; }
  .crf-toolbar { flex-wrap: wrap; }
  .crf-search--toolbar { flex-basis: 100%; }
  .crf-service-select { flex: 1; }
  .crf-nearby { margin-left: auto; }
  .crf-explorer { grid-template-columns: 350px minmax(0, 1fr); }
  .crf-trust__inner { align-items: start; grid-template-columns: 1fr; }
  .crf-trust__copy h3 { max-width: 760px; }
}

@media (max-width: 760px) {
  .crf-app { max-width: 100%; overflow: hidden; width: 100%; }
  .crf-hero { grid-template-columns: minmax(0, 1fr); min-height: auto; padding: 52px 18px 60px; width: 100%; }
  .crf-hero__copy { max-width: 100%; min-width: 0; width: 100%; }
  .crf-hero h2 { font-size: clamp(43px, 13vw, 60px); }
  .crf-hero__intro { font-size: 15px; }
  .crf-search--hero { max-width: 100%; padding-left: 13px; width: 100%; }
  .crf-search input { font-size: 16px; }
  .crf-search--hero .crf-radius-select { font-size: 16px; max-width: 82px; min-width: 0; padding-left: 7px; padding-right: 20px; width: 82px !important; }
  .crf-scroll-to-map { font-size: 0; height: 46px; padding: 0; width: 46px; }
  .crf-scroll-to-map span { font-size: 19px; margin: 0; }
  .crf-hero__stats { gap: 12px 18px; }
  .crf-directory { padding: 62px 12px 70px; }
  .crf-section-heading { display: block; padding: 0 5px; }
  .crf-section-heading > p { font-size: 14px; margin-top: 18px; }
  .crf-filters { overflow-x: auto; width: 100%; }
  .crf-service-select { width: 100%; }
  .crf-service-select select { font-size: 16px; max-width: none; width: 100%; }
  .crf-filter { flex: 0 0 auto; }
  .crf-nearby { width: 100%; }
  .crf-explorer { display: block; height: 660px; padding-top: 58px; }
  .crf-results-panel, .crf-map-panel { border: 0; height: 100%; }
  .crf-explorer.is-map .crf-results-panel, .crf-explorer.is-list .crf-map-panel { display: none; }
  .crf-view-switch { background: var(--crf-blue); border-radius: 999px; box-shadow: 0 6px 20px rgba(0,84,163,.26); display: flex; left: 50%; padding: 4px; position: absolute; top: 8px; transform: translateX(-50%); z-index: 500; }
  .crf-view-switch button { background: transparent; border: 0; border-radius: 999px; color: white; cursor: pointer; font-size: 13px; font-weight: 700; min-height: 38px; padding: 9px 19px; touch-action: manipulation; }
  .crf-view-switch button.is-active { background: var(--crf-gold); color: #27313d; }
  .crf-card__main { grid-template-columns: 84px 1fr; }
  .crf-card__media { min-height: 112px; }
  .crf-legend { bottom: 14px; left: 14px; right: auto; }
  .crf-trust { padding: 62px 20px; }
  .crf-trust__copy h3 { font-size: clamp(38px, 11vw, 52px); }
  .crf-trust__steps { grid-template-columns: 1fr; }
  .crf-trust__steps li { min-height: 165px; }
}

@media (prefers-reduced-motion: reduce) {
  .crf-app *, .crf-app *::before, .crf-app *::after { scroll-behavior: auto !important; transition: none !important; }
}
/* SEO landing pages: useful search journey for visitors and membership CTA for professionals. */
.single-crf_landing .entry-title,.single-crf_landing .page-header{display:none}.single-crf_landing .site-main,.single-crf_landing .content-area,.single-crf_landing .entry-content{width:100%;max-width:none;padding-left:0;padding-right:0}
.crf-seo-landing{--seo-blue:#0757a8;--seo-navy:#073860;--seo-gold:#ffb400;--seo-pale:#eef6fc;color:#12243a;font-family:inherit}.crf-seo-landing *{box-sizing:border-box}.crf-seo-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);gap:44px;align-items:center;max-width:1360px;margin:36px auto 28px;padding:64px 68px;border-radius:30px;background:linear-gradient(120deg,#063b69 0%,#0759ad 58%,#1681d4 100%);color:#fff;overflow:hidden}.crf-seo-breadcrumb{display:flex;gap:10px;align-items:center;margin-bottom:32px;font-size:13px}.crf-seo-breadcrumb a{color:#fff;text-decoration:none;opacity:.82}.crf-seo-breadcrumb strong{color:#fff}.crf-seo-eyebrow,.crf-seo-choice>span,.crf-seo-final-cta span{margin:0 0 14px;color:var(--seo-blue);font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.crf-seo-hero .crf-seo-eyebrow{color:#8ed0ff}.crf-seo-hero h1{max-width:850px;margin:0;font-size:clamp(42px,5.2vw,76px);line-height:.98;letter-spacing:-.045em;color:#fff}.crf-seo-lead{max-width:740px;margin:26px 0 30px;font-size:19px;line-height:1.65;color:#e8f4ff}.crf-seo-primary,.crf-seo-choice a,.crf-seo-final-cta>a{display:inline-flex;gap:20px;align-items:center;justify-content:center;border-radius:12px;padding:16px 22px;background:var(--seo-gold);color:#082f53!important;font-weight:800;text-decoration:none!important}.crf-seo-hero__proof{padding:42px 34px;border:1px solid rgba(255,255,255,.25);border-radius:24px;background:rgba(255,255,255,.12);box-shadow:0 25px 60px rgba(0,27,58,.18);backdrop-filter:blur(8px)}.crf-seo-hero__proof strong{display:block;font-size:72px;line-height:1;color:#fff}.crf-seo-hero__proof span{display:block;margin:8px 0 22px;font-size:21px;font-weight:700}.crf-seo-hero__proof small{display:block;line-height:1.6;color:#d9edff}.crf-seo-choices{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:1360px;margin:0 auto 34px}.crf-seo-choice{padding:42px;border:1px solid #cee0ef;border-radius:24px;background:#fff}.crf-seo-choice--pro{background:var(--seo-pale)}.crf-seo-choice h2{margin:0 0 16px;color:var(--seo-navy);font-size:clamp(27px,3vw,40px);line-height:1.08;letter-spacing:-.025em}.crf-seo-choice p{margin:0 0 25px;color:#50677d;font-size:16px;line-height:1.75}.crf-seo-choice a{padding:13px 17px;background:var(--seo-blue);color:#fff!important}.crf-seo-map-section{max-width:1360px;margin:0 auto;padding:62px 0 34px;scroll-margin-top:30px}.crf-seo-section-title{display:grid;grid-template-columns:1fr 1fr;align-items:end;margin-bottom:28px}.crf-seo-section-title p{grid-column:1/-1;margin:0 0 9px;color:var(--seo-blue);font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.crf-seo-section-title h2{margin:0;color:var(--seo-navy);font-size:clamp(34px,4vw,54px);line-height:1}.crf-seo-section-title span{color:#607388;line-height:1.6}.crf-app--without-hero .crf-directory{padding-top:0}.crf-app--without-hero .crf-trust{display:none}.crf-seo-explain{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;max-width:1360px;margin:34px auto;padding:58px 62px;border-radius:26px;background:#f6f9fc}.crf-seo-explain h2{margin:0;color:var(--seo-navy);font-size:clamp(32px,3vw,46px);line-height:1.08}.crf-seo-explain__text p{margin:0 0 18px;color:#536a80;line-height:1.8}.crf-seo-final-cta{display:flex;align-items:center;justify-content:space-between;gap:42px;max-width:1360px;margin:34px auto 70px;padding:48px 56px;border-radius:26px;background:var(--seo-navy);color:#fff}.crf-seo-final-cta span{color:#78c5ff}.crf-seo-final-cta h2{margin:0 0 10px;color:#fff;font-size:clamp(30px,3vw,44px)}.crf-seo-final-cta p{max-width:760px;margin:0;color:#d9e9f6;line-height:1.6}.crf-seo-final-cta>a{flex:0 0 auto;color:#082f53!important}.crf-seo-final-cta>a span{color:inherit}
@media(max-width:900px){.crf-seo-hero,.crf-seo-choices,.crf-seo-explain{grid-template-columns:1fr}.crf-seo-hero{padding:45px 28px}.crf-seo-choices{padding:0 18px}.crf-seo-map-section{padding:44px 18px 24px}.crf-seo-section-title{grid-template-columns:1fr;gap:18px}.crf-seo-explain{margin:24px 18px;padding:38px 28px;gap:28px}.crf-seo-final-cta{align-items:flex-start;flex-direction:column;margin:24px 18px 50px;padding:38px 28px}.crf-seo-hero__proof strong{font-size:58px}}
.crf-seo-links{max-width:1360px;margin:0 auto;padding:58px 46px}.crf-seo-links h3{max-width:760px;margin:0 0 28px;color:#073860;font-size:clamp(30px,3.4vw,48px);line-height:1.05}.crf-seo-links__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.crf-seo-links__grid a{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid #d4e3ef;border-radius:12px;background:#fff;color:#0757a8;text-decoration:none;font-weight:700}.crf-seo-links__grid a:hover{border-color:#0757a8;background:#f2f8fd}.crf-seo-links__grid span{color:#ff9f00}@media(max-width:760px){.crf-seo-links{padding:42px 18px}.crf-seo-links__grid{grid-template-columns:1fr}}
