/* IFL Service Area (ARCHIFX). Field Notebook design system v2 tokens: paper #FBF8F1, navy #0B3954,
   action blue #0A78A8, ink #22313C, red pen #E4572E, highlighter #FFE27A, line #D6E4EC, sky #EEF6FA. */
.ifl-sa{--sa-paper:#FBF8F1;--sa-navy:#0B3954;--sa-action:#0A78A8;--sa-ink:#22313C;--sa-slate:#4A5D6B;--sa-red:#E4572E;--sa-hl:#FFE27A;--sa-line:#D6E4EC;--sa-sky:#EEF6FA;--sa-water:#D6E9F3;--sa-t1:#FFEFA8;--sa-t2:#DDF1FA;--sa-t3:#F3EAD6;
  font-family:Poppins,system-ui,sans-serif;color:var(--sa-ink);font-size:18px;line-height:1.7;box-sizing:border-box;width:100%;max-width:100%;margin:0 auto}
.ifl-sa *,.ifl-sa *::before,.ifl-sa *::after{box-sizing:inherit}
.ifl-sa--hub{max-width:1200px}
.ifl-sa--card{background:#fff;border:1px solid var(--sa-line);border-radius:14px;padding:24px;box-shadow:0 12px 28px rgba(15,34,48,.10)}
.ifl-sa--mini{background:#fff;border:1px solid var(--sa-line);border-radius:14px;padding:18px 18px 16px;box-shadow:0 12px 28px rgba(15,34,48,.10);max-width:560px}
.ifl-sa--mini .ifl-sa__layout{grid-template-columns:1fr;gap:14px}
.ifl-sa--mini .ifl-sa__title{font-size:22px;margin-bottom:4px}
.ifl-sa--mini .ifl-sa__hand{font-size:20px}
.ifl-sa--mini .ifl-sa__mapwrap{padding:6px;box-shadow:none;border-color:var(--sa-line)}
.ifl-sa--mini .ifl-sa__svg{max-height:400px}
.ifl-sa--mini .ifl-sa__mapbar{padding:6px 2px 0}
.ifl-sa--mini .ifl-sa__label{font-size:16px}
.ifl-sa--mini .ifl-sa__input{min-height:52px;font-size:18px}
.ifl-sa--mini .ifl-sa__btn--primary.ifl-sa__submit{min-height:52px;padding:10px 18px;font-size:16px}
.ifl-sa--mini .ifl-sa__result{padding:16px 18px;margin-top:10px}
.ifl-sa--mini .ifl-sa__result-title{font-size:21px;padding-right:100px}
.ifl-sa--mini .ifl-sa__more{font-size:15px;margin-top:8px}
.ifl-sa--mini .ifl-sa__credit{font-size:11px;margin-top:8px}
.ifl-sa--compact{background:#fff;border:1px solid var(--sa-line);border-radius:14px;padding:22px 24px;margin:26px 0 0;box-shadow:8px 8px 0 var(--sa-hl)}
.ifl-sa__intro{margin:0 0 14px}
.ifl-sa__hand{font-family:Kalam,"Comic Sans MS",cursive;color:var(--sa-red);font-size:22px;line-height:1.2;margin:0 0 4px}
.ifl-sa__title{font-family:Poppins,system-ui,sans-serif;font-weight:800;color:var(--sa-navy);font-size:26px;line-height:1.25;margin:0 0 8px}
.ifl-sa--compact .ifl-sa__title{font-size:23px}
.ifl-sa__lead{font-size:19px;max-width:720px;margin:0}
.ifl-sa__layout{display:grid;gap:28px;align-items:start}
.ifl-sa--hub .ifl-sa__layout{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.ifl-sa--card .ifl-sa__layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
@media (max-width:900px){.ifl-sa--hub .ifl-sa__layout,.ifl-sa--card .ifl-sa__layout{grid-template-columns:1fr}.ifl-sa--hub .ifl-sa__mapwrap{order:2}.ifl-sa--hub .ifl-sa__panel{order:1}}
@media (max-width:767px){.ifl-sa{font-size:17px;line-height:1.6}.ifl-sa__submit{flex:1 1 100%}.ifl-sa--card,.ifl-sa--compact{padding:18px 16px}.ifl-sa__title{font-size:22px}.ifl-sa__lead{font-size:17px}}

/* form */
.ifl-sa__form{margin:0 0 14px}
.ifl-sa__label{display:block;font-weight:600;color:var(--sa-navy);margin:0 0 6px;font-size:17px}
.ifl-sa__row{display:flex;gap:10px;flex-wrap:wrap}
.ifl-sa__input{flex:1 1 200px;min-height:58px;font:inherit;font-size:20px;padding:10px 16px;border:2px solid var(--sa-navy);border-radius:10px;background:#fff;color:var(--sa-ink);min-width:0}
.ifl-sa__input:focus{outline:3px solid var(--sa-hl);outline-offset:2px;border-color:var(--sa-action)}
.ifl-sa .ifl-sa__btn{box-shadow:none!important;text-transform:none!important;letter-spacing:0!important;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:56px;padding:12px 22px;border-radius:10px;font:inherit;font-weight:700;font-size:17px;line-height:1.2;text-decoration:none;cursor:pointer;border:2px solid transparent;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}
.ifl-sa__btn:focus-visible{outline:3px solid var(--sa-hl);outline-offset:2px}
.ifl-sa .ifl-sa__btn--primary{background:var(--sa-action)!important;color:#fff!important;border-color:var(--sa-action)!important}
.ifl-sa__btn--primary:hover{background:#086a95;transform:translateY(-1px)}
.ifl-sa .ifl-sa__btn--call{background:var(--sa-navy)!important;color:#fff!important;border-color:var(--sa-navy)!important}
.ifl-sa__btn--call:hover{background:#082c42;transform:translateY(-1px)}
.ifl-sa .ifl-sa__btn--ghost{background:#fff!important;color:var(--sa-navy)!important;border-color:var(--sa-navy)!important}
.ifl-sa__btn--ghost:hover{background:var(--sa-sky)}
.ifl-sa__btn[hidden]{display:none}
.ifl-sa__msg{margin:8px 0 0;color:var(--sa-red);font-weight:600}
.ifl-sa__msg[hidden]{display:none}
.ifl-sa .ifl-sa__geo{margin:10px 0 0;background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:8px 0!important;min-height:48px;font:inherit;font-size:17px;color:var(--sa-action);text-decoration:underline;text-underline-offset:3px;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.ifl-sa__geo[hidden]{display:none}
.ifl-sa__geo-ic{width:18px;height:18px;border-radius:50%;border:2px solid currentColor;position:relative;flex:0 0 auto}
.ifl-sa__geo-ic::after{content:"";position:absolute;left:4px;top:4px;width:6px;height:6px;border-radius:50%;background:currentColor}
.ifl-sa__geo.is-busy{opacity:.6;cursor:progress}

/* result */
.ifl-sa__result{position:relative;background:var(--sa-paper);border:2px dashed var(--sa-line);border-radius:14px;padding:22px 24px;margin:0}
.ifl-sa__result.is-found{background:#fff;border-style:solid;border-color:#B9DCEB;box-shadow:0 12px 28px rgba(15,34,48,.10)}
.ifl-sa__result.is-none{background:#FFF8E8;border-color:#EBD97A}
.ifl-sa__result.is-invalid{padding:14px 18px}
.ifl-sa__result-title{font-family:Poppins,system-ui,sans-serif;font-weight:800;color:var(--sa-navy);font-size:26px;line-height:1.25;margin:0 0 8px;padding-right:118px}
.ifl-sa__result-title:focus{outline:none}
.ifl-sa__result-text{margin:0 0 14px}
.ifl-sa__stamp{position:absolute;right:16px;top:14px;font-family:Kalam,"Comic Sans MS",cursive;font-weight:700;font-size:17px;line-height:1;color:var(--sa-red);border:3px solid var(--sa-red);border-radius:8px;padding:7px 10px;transform:rotate(-8deg);letter-spacing:.04em;text-transform:uppercase;opacity:.92;mix-blend-mode:multiply;animation:ifl-sa-stamp .45s cubic-bezier(.2,1.4,.4,1) both}
.ifl-sa__stamp--call{color:var(--sa-navy);border-color:var(--sa-navy)}
@keyframes ifl-sa-stamp{0%{transform:rotate(-8deg) scale(2.2);opacity:0}60%{opacity:1}100%{transform:rotate(-8deg) scale(1);opacity:.92}}
.ifl-sa__actions{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 10px}
.ifl-sa__actions .ifl-sa__btn{flex:1 1 auto;white-space:nowrap;font-size:16px;padding:12px 16px}
.ifl-sa__small{font-size:16px;color:var(--sa-slate);margin:0 0 8px}
.ifl-sa__links{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}
.ifl-sa__links a,.ifl-sa__towns-inline a,.ifl-sa__county-note a,.ifl-sa__county-links a,.ifl-sa__town-links a,.ifl-sa__more a,.ifl-sa__small a{color:var(--sa-action);text-decoration:underline;text-underline-offset:3px}
.ifl-sa__links a:hover{color:var(--sa-navy)}
.ifl-sa__towns-inline{margin:0 0 8px;font-size:17px}
.ifl-sa__more{margin:14px 0 0;font-size:17px}
@media (max-width:767px){.ifl-sa__result{padding:18px 16px}.ifl-sa__result-title{font-size:22px;padding-right:96px}.ifl-sa__stamp{font-size:15px;right:10px;top:10px}}

/* map */
.ifl-sa__mapwrap{position:relative;background:#fff;border:1px solid var(--sa-line);border-radius:14px;padding:10px;box-shadow:0 12px 28px rgba(15,34,48,.10)}
.ifl-sa--hub .ifl-sa__mapwrap{position:sticky;top:96px}
@media (max-width:900px){.ifl-sa--hub .ifl-sa__mapwrap{position:static}}
.ifl-sa__svg{display:block;width:100%;height:auto;max-height:78vh;border-radius:10px;background:var(--sa-water);font-family:Kalam,"Comic Sans MS",cursive}
.ifl-sa--card .ifl-sa__svg{max-height:420px}
.ifl-sa__water{fill:var(--sa-water)}
.ifl-sa__county{fill:var(--sa-t3);stroke:var(--sa-navy);stroke-width:1.6;stroke-linejoin:round;cursor:pointer;transition:fill .2s ease,filter .2s ease;outline:none}
.ifl-sa__county.tier-1{fill:var(--sa-t1)}
.ifl-sa__county.tier-2{fill:var(--sa-t2)}
.ifl-sa__county:hover,.ifl-sa__county:focus-visible{filter:brightness(.96);stroke-width:2.4}
.ifl-sa__county.is-active{stroke:var(--sa-red);stroke-width:2.6}
.ifl-sa__county.is-dim{opacity:.55}
.ifl-sa__clabels text{fill:var(--sa-navy);opacity:.42;font-size:28px;letter-spacing:.14em;text-anchor:middle;font-weight:700;pointer-events:none}
.ifl-sa__wlabels text{fill:#2E6F94;opacity:.55;font-size:22px;font-style:italic;text-anchor:middle;pointer-events:none}
.ifl-sa__pin{cursor:pointer;outline:none}
.ifl-sa__pin .ifl-sa__halo{fill:var(--sa-red);opacity:0;transition:opacity .15s ease}
.ifl-sa__pin .ifl-sa__dot{fill:var(--sa-navy);stroke:#fff;stroke-width:2.2;filter:url(#ifl-sa-shadow);transition:r .15s ease}
.ifl-sa__pin.tier-3 .ifl-sa__dot{fill:var(--sa-slate)}
.ifl-sa__pin.is-home .ifl-sa__dot{fill:var(--sa-red)}
.ifl-sa__pin .ifl-sa__pname{fill:var(--sa-navy);font-size:20px;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;pointer-events:none;transition:opacity .15s ease}
.ifl-sa__pin.is-home .ifl-sa__pname{font-size:27px;fill:var(--sa-red)}
.ifl-sa__svg:not(.is-zoomed) .ifl-sa__pin.l2 .ifl-sa__pname,.ifl-sa__svg:not(.is-zoomed) .ifl-sa__pin.l3 .ifl-sa__pname{opacity:0}
.ifl-sa__svg.is-zoomed .ifl-sa__pin.l2 .ifl-sa__pname,.ifl-sa__svg.is-zoomed .ifl-sa__pin.l3 .ifl-sa__pname{opacity:1;font-size:16px}
.ifl-sa__svg.is-zoomed .ifl-sa__pin.l1 .ifl-sa__pname{font-size:18px}
.ifl-sa__svg.is-zoomed .ifl-sa__pin.is-home .ifl-sa__pname{font-size:22px}
.ifl-sa__pin.l0 .ifl-sa__pname{opacity:0}
.ifl-sa__pin:hover .ifl-sa__pname,.ifl-sa__pin:focus-visible .ifl-sa__pname,.ifl-sa__pin.is-selected .ifl-sa__pname{opacity:1}
.ifl-sa__pin:hover .ifl-sa__halo,.ifl-sa__pin:focus-visible .ifl-sa__halo{opacity:.25}
.ifl-sa__pin.is-selected .ifl-sa__dot{fill:var(--sa-red);r:8}
.ifl-sa__pin.is-selected .ifl-sa__halo{opacity:.3}
.ifl-sa__pin.is-selected .ifl-sa__pname{fill:var(--sa-red)}
.ifl-sa__svg.is-zoomed .ifl-sa__pin.l0 .ifl-sa__pname{opacity:0;font-size:14px}
.ifl-sa__svg.is-zoomed .ifl-sa__clabels text{opacity:.2}
@media (max-width:767px){.ifl-sa__svg.is-zoomed .ifl-sa__pin.l3 .ifl-sa__pname{opacity:0}.ifl-sa__svg:not(.is-zoomed) .ifl-sa__pin .ifl-sa__pname{font-size:24px}.ifl-sa__svg:not(.is-zoomed) .ifl-sa__pin.is-home .ifl-sa__pname{font-size:30px}.ifl-sa__clabels text{font-size:34px}}
.ifl-sa__marker{pointer-events:none}
.ifl-sa__marker[hidden]{display:none}
.ifl-sa__pinhead{fill:var(--sa-red);stroke:#fff;stroke-width:2.5;filter:url(#ifl-sa-shadow);transform-origin:0 0;animation:ifl-sa-drop .5s cubic-bezier(.2,1.2,.4,1) both}
.ifl-sa__pulse{fill:var(--sa-red);opacity:.25;animation:ifl-sa-pulse 1.8s ease-out infinite}
@keyframes ifl-sa-drop{0%{transform:translateY(-60px) scale(.6);opacity:0}70%{transform:translateY(4px) scale(1.05);opacity:1}100%{transform:translateY(0) scale(1)}}
@keyframes ifl-sa-pulse{0%{transform:scale(.4);opacity:.45}100%{transform:scale(1.9);opacity:0}}
.ifl-sa__mascot{pointer-events:none;filter:url(#ifl-sa-shadow)}
.ifl-sa__compass circle{fill:#fff;stroke:var(--sa-navy);stroke-width:1.5;opacity:.9}
.ifl-sa__compass path{fill:var(--sa-red)}
.ifl-sa__compass text{fill:var(--sa-navy);font-size:16px;font-weight:700;text-anchor:middle}
.ifl-sa__mapbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 4px 0}
.ifl-sa__reset{min-height:44px;padding:8px 14px;font-size:15px}
.ifl-sa__legend{list-style:none;margin:0;padding:0;display:flex;gap:14px;flex-wrap:wrap;font-size:14px;color:var(--sa-slate)}
.ifl-sa__legend li{display:inline-flex;align-items:center;gap:6px}
.ifl-sa__legend li::before{content:"";width:16px;height:12px;border-radius:3px;border:1px solid var(--sa-navy);background:var(--sa-t3)}
.ifl-sa__legend li.t1::before{background:var(--sa-t1)}
.ifl-sa__legend li.t2::before{background:var(--sa-t2)}
.ifl-sa__credit{font-size:12px;color:var(--sa-slate);margin:12px 0 0;opacity:.8}

/* directory */
.ifl-sa__directory{margin:40px 0 0;display:grid;gap:26px}
.ifl-sa__county-sec{background:#fff;border:1px solid var(--sa-line);border-radius:14px;padding:26px 28px;position:relative}
.ifl-sa__county-sec::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;border-radius:14px 0 0 14px;background:var(--sa-t3)}
.ifl-sa__county-sec.tier-1::before{background:var(--sa-hl)}
.ifl-sa__county-sec.tier-2::before{background:#B9DCEB}
.ifl-sa__h2{font-family:Poppins,system-ui,sans-serif;font-weight:800;color:var(--sa-navy);font-size:30px;line-height:1.2;margin:0 0 10px}
.ifl-sa__county-note{max-width:720px;margin:0 0 8px}
.ifl-sa__county-links{margin:0 0 14px;font-size:17px}
.ifl-sa__towns{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 18px}
.ifl-sa__town{padding:6px 0;border-bottom:1px dashed var(--sa-line);display:flex;flex-direction:column}
.ifl-sa__town-name{font-weight:700;color:var(--sa-navy);text-decoration:underline;text-underline-offset:3px;min-height:40px;display:inline-flex;align-items:center}
.ifl-sa__town.is-home .ifl-sa__town-name{background:linear-gradient(transparent 58%,var(--sa-hl) 58%);align-self:flex-start}
.ifl-sa__town-links{font-size:15px;color:var(--sa-slate)}
.ifl-sa__town.is-minor .ifl-sa__town-name{font-weight:500}
.ifl-sa__zips{margin:16px 0 0;font-size:15px;color:var(--sa-slate)}
.ifl-sa__zips summary{cursor:pointer;color:var(--sa-action);text-decoration:underline;text-underline-offset:3px;min-height:40px;display:flex;align-items:center;font-size:16px}
.ifl-sa__zips p{margin:8px 0 0;line-height:1.6}
@media (max-width:767px){.ifl-sa__directory{margin-top:28px;gap:18px}.ifl-sa__county-sec{padding:20px 18px}.ifl-sa__h2{font-size:24px}.ifl-sa__towns{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Elementor context: the card replaces an image inside a column; keep it from inheriting tilts and tape. */
.elementor-widget-image .ifl-sa--card,.elementor-widget-image .ifl-sa--mini{transform:none;text-align:left;margin:0 auto}
.afx-taped:has(.ifl-sa)::before{display:none}
.afx-tilt-l:has(.ifl-sa),.afx-tilt-r:has(.ifl-sa){transform:none}

@media (prefers-reduced-motion:reduce){.ifl-sa__stamp,.ifl-sa__pinhead,.ifl-sa__pulse{animation:none}.ifl-sa__pulse{opacity:0}.ifl-sa__btn{transition:none}}

/* Contact page hero: the form card sits beside the title (October 17, 2026). */
.afx-hero-form .afx-formcard{box-shadow:0 16px 36px rgba(11,57,84,.14)}
.afx-hero-form .elementor-widget-heading .elementor-heading-title{font-size:26px;line-height:1.25}
@media (max-width:767px){.afx-hero-form .elementor-widget-heading .elementor-heading-title{font-size:22px}}
