
:root{
  --green:#0d4a3b;--green2:#123d33;--greenSoft:#e7f1ed;--gold:#d6aa3e;--gold2:#e6c15f;
  --bg:#eef2f3;--card:#fff;--line:#e2e8eb;--ink:#1b2533;--muted:#6c7888;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
body.demo-active{padding-bottom:78px}
svg.icon{width:20px;height:20px;fill:currentColor;vertical-align:-4px;flex:0 0 auto}
.topbar{height:68px;background:linear-gradient(90deg,var(--green),var(--green2));color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 2px 14px rgba(0,0,0,.12)}
.top-inner{max-width:1400px;height:100%;margin:auto;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:25px;letter-spacing:-.03em}
.brand svg{width:38px;height:44px}.brand .loop{color:#f0c859}
.search{width:360px;padding:10px 14px;border-radius:12px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.13);color:#dce9e4}
.topnav{display:flex;gap:26px;align-items:center}.navitem{font-size:12px;text-align:center;opacity:.96}.navitem svg{display:block;margin:0 auto 2px}
.shell{max-width:1320px;margin:auto;padding:18px;display:grid;grid-template-columns:240px minmax(0,690px) 290px;gap:18px}
.sidebar,.rightbar{position:sticky;top:86px;align-self:start}
.box,.post{background:var(--card);border:1px solid var(--line);border-radius:15px;box-shadow:0 4px 17px rgba(15,23,42,.04)}
.menu{padding:8px}.menu-row{display:flex;align-items:center;gap:12px;padding:12px 11px;border-radius:10px;color:#405064;margin-bottom:2px}
.menu-row.active{background:var(--greenSoft);color:var(--green);font-weight:700}.section-title{font-weight:800;padding:12px 12px 8px}
.post{overflow:hidden;margin-bottom:16px}.post-head{display:flex;align-items:center;gap:10px;padding:13px 15px 8px}
.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:white;font-weight:800}.avatar.practice{background:linear-gradient(135deg,var(--green),var(--gold))}
.avatar.coffee{background:#5c3922}.avatar.event{background:#46664a}.name{font-weight:800}.meta{font-size:12px;color:var(--muted)}
.post-copy{padding:0 15px 12px;font-size:15px;line-height:1.46}.post-copy p{margin:0 0 10px}.post-copy p:last-child{margin-bottom:0}.post-copy strong{font-weight:800}
.bump-image{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#ddd}.bump-image>img{width:100%;height:100%;object-fit:cover;display:block}
.bump-overlay{position:absolute;inset:0;padding:22px;display:flex;align-items:flex-start;justify-content:flex-start}.bump-overlay:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,20,17,.56),rgba(9,20,17,.15) 52%,rgba(9,20,17,.08))}
.bump-content{position:relative;z-index:2;max-width:80%;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.34)}.coffee-title{font-family:"Caveat",cursive;font-size:46px;font-weight:700;line-height:.96;margin-bottom:7px}
.coffee-sub{font-weight:700;font-size:17px;line-height:1.3}.event-overlay{align-items:stretch;justify-content:space-between;flex-direction:column}.event-title-wrap{position:relative;z-index:2}
.event-kicker{display:inline-block;font-family:"League Spartan",sans-serif;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.08em;padding:6px 9px;background:rgba(255,255,255,.92);color:var(--green);border-radius:8px}
.event-title-big{margin-top:9px;font-family:"League Spartan",sans-serif;font-size:38px;line-height:.96;font-weight:800;color:#fff;text-shadow:0 2px 13px rgba(0,0,0,.4)}
.event-bottom{position:relative;z-index:2;display:flex;align-items:end;justify-content:space-between;gap:14px}.date-badge{background:rgba(11,74,58,.94);border:1px solid rgba(255,255,255,.2);color:#fff;padding:10px 13px;border-radius:11px;font-family:"League Spartan",sans-serif;font-weight:800;font-size:19px}
.event-mini{max-width:58%;font-weight:700;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.4)}
.reactions{display:flex;justify-content:space-between;padding:8px 14px;color:#64748b;border-top:1px solid var(--line);font-size:12px}.actions{display:grid;grid-template-columns:repeat(3,1fr);padding:6px 10px;border-top:1px solid var(--line)}.action{text-align:center;padding:7px;color:#556274;font-size:13px}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:9px 14px;font-weight:800;cursor:pointer;font-family:inherit}.btn-dark{background:#202a37;color:#fff}.btn-outline{background:#fff;border:1px solid #d5dde2;color:#2d3948}.btn-gold{background:linear-gradient(180deg,var(--gold2),var(--gold));color:#11372f}
.single-wrap{padding:14px 15px 0}.single-media{width:min(100%,510px);margin:auto}.single-media img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px 12px 0 0}
.single-link{width:min(100%,510px);margin:0 auto 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;background:#f7f8f9}
.domain{font-size:11px;text-transform:uppercase;color:#7b8794}.link-title{font-weight:800}.link-sub{font-size:12px;color:#6c7888}
.carousel-strip{display:flex;gap:12px;overflow-x:auto;padding:14px 15px 16px;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scrollbar-width:thin}.carousel-strip::-webkit-scrollbar{height:8px}.carousel-strip::-webkit-scrollbar-thumb{background:#cbd2d7;border-radius:999px}
.carousel-card{flex:0 0 270px;scroll-snap-align:start;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fff;box-shadow:0 3px 12px rgba(15,23,42,.05)}.carousel-card img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
.carousel-card-body{padding:11px}.carousel-title{font-weight:800;font-size:15px;margin-bottom:5px}.carousel-text{font-size:12.5px;line-height:1.35;color:#697586;min-height:50px}.carousel-cta{margin-top:9px;width:100%;padding:8px 10px;font-size:13px}
.weather{padding:15px;position:relative}.weather .sun{position:absolute;right:15px;top:13px;color:#f5b62d}.weather .sun svg{width:42px;height:42px}.promo{padding:8px;margin-top:14px}.promo img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:11px}.events{padding:15px;margin-top:14px}
.demo-footer{position:fixed;left:0;right:0;bottom:0;z-index:80;background:rgba(226,244,235,.97);border-top:1px solid #b9d9c9;box-shadow:0 -8px 26px rgba(15,23,42,.12);backdrop-filter:blur(8px);transform:translateY(110%);transition:transform .25s ease}.demo-footer.show{transform:translateY(0)}
.demo-footer-inner{max-width:1320px;margin:auto;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.demo-footer-copy .eyebrow{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#41705d}.demo-footer-copy .headline{font-weight:800;color:#173f32;font-size:14px}.demo-footer-controls{display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:flex-end;align-items:center}.demo-group{display:flex;gap:7px;align-items:center}.demo-group-label{font-size:11px;text-transform:uppercase;font-weight:800;color:#517060;letter-spacing:.05em}.demo-footer .btn{padding:8px 12px;font-size:13px}
.modal-backdrop-custom{position:fixed;inset:0;background:rgba(8,18,16,.62);z-index:100;opacity:0;pointer-events:none;transition:opacity .2s ease}.modal-backdrop-custom.show{opacity:1;pointer-events:auto}
.demo-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-48%) scale(.98);width:min(1180px,94vw);max-height:calc(100vh - 30px);overflow:hidden;z-index:110;border-radius:22px;background:#fff;box-shadow:0 35px 100px rgba(0,0,0,.36);opacity:0;pointer-events:none;transition:.22s ease}.demo-modal.show{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.demo-modal-grid{display:grid;grid-template-columns:55% 45%;min-height:0}.demo-video{min-height:560px;padding:20px 24px 22px;background:linear-gradient(145deg,#0f1d1a,#163a30);color:#fff;display:flex;flex-direction:column}.demo-panel-logo-wrap{height:42px;display:flex;align-items:center;justify-content:center;margin:0 0 8px}.demo-panel-logo{display:block;width:250px;max-width:58%;height:auto;max-height:40px;object-fit:contain}.video-shell{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#081714;margin-bottom:16px}.video-shell img{width:100%;height:100%;object-fit:cover;display:block;opacity:.78}.video-play{position:absolute;inset:0;display:grid;place-items:center}.video-play button{width:82px;height:82px;border-radius:50%;border:0;background:rgba(255,255,255,.84);color:#0d4a3b;font-size:42px;line-height:1;display:grid;place-items:center;padding:0 0 0 5px;cursor:pointer}
.video-copy h2{margin:0 0 7px;font-size:28px}.video-copy p{margin:0;color:#bfd0cb;line-height:1.45}.demo-form{padding:20px 24px 22px;min-width:0}.demo-badge{display:inline-block;background:#e8f4ee;color:#0d5a45;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;padding:5px 8px;border-radius:999px}.demo-form h2{margin:8px 0 3px;font-size:25px}.demo-form-intro{margin:0 0 10px;color:#667085;font-size:14px;line-height:1.35}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 11px}.field label{display:block;margin:0 0 4px;font-size:11px;font-weight:800;color:#344052}.field input,.field select{width:100%;height:42px;border:1px solid #d6dde2;border-radius:9px;padding:9px 10px;font:inherit;font-size:14px;outline:none;background:#fff}.field.full,.full{grid-column:1/-1}.form-error{display:none;margin-top:4px;color:#b42318;font-size:10px}.form-error.show{display:block}.field-help{display:inline-grid;place-items:center;width:16px;height:16px;margin-left:4px;border-radius:50%;background:#e9f2ee;color:#17634f;font-size:10px;font-weight:900;cursor:help;vertical-align:1px}
.service-field{margin-top:1px}.service-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.service-option{border:1px solid #dce2e5;border-radius:10px;padding:9px 10px;cursor:pointer}.service-option.active{border-color:#197054;background:#edf8f3;box-shadow:0 0 0 2px rgba(25,112,84,.10)}.service-option .t{font-weight:800;font-size:13px}.service-option .s{font-size:10px;color:#6b7280;margin-top:1px;line-height:1.25}.lead-notification-panel{display:grid;grid-template-columns:1fr;gap:8px;padding:9px 11px;border:1px solid #bfdccb;border-radius:11px;background:#edf8f3}.lead-notification-copy{display:flex;flex-direction:column;gap:2px}.lead-notification-copy strong{font-size:12px;color:#154f3d}.lead-notification-copy span{font-size:10px;line-height:1.3;color:#527065}.lead-notification-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}.lead-notification-panel .field input{background:#fff;height:40px}.modal-submit{grid-column:1/-1;width:100%;border:0;border-radius:10px;background:#116a50;color:#fff;padding:11px;font:inherit;font-weight:800;cursor:pointer}
body.modal-open-demo #pageRoot{filter:blur(7px);transform:scale(1.004);pointer-events:none;user-select:none}
@media(max-width:1080px){.shell{grid-template-columns:210px minmax(0,1fr)}.rightbar{display:none}.demo-modal{overflow:auto}.demo-modal-grid{grid-template-columns:1fr}.demo-video{min-height:0}.demo-panel-logo-wrap{display:none}}
@media(max-width:760px){body.demo-active{padding-bottom:132px}.shell{display:block;padding:10px}.sidebar{display:none}.search,.topnav{display:none}.coffee-title{font-size:38px}.event-title-big{font-size:31px}.event-bottom{align-items:flex-start;flex-direction:column}.event-mini{max-width:100%}.demo-footer-inner{align-items:flex-start;flex-direction:column;gap:8px;padding:9px 10px}.demo-footer-controls{justify-content:flex-start;width:100%}.demo-video{min-height:0}.demo-form{padding:18px}.form-grid,.service-options,.lead-notification-panel,.lead-notification-fields{grid-template-columns:1fr}}

/* v1.3 ad imagery routes to the same funnel as Learn More. */
#singleImage,#promoImage,.carousel-image-link{cursor:pointer}
#singleImage:focus,#promoImage:focus,.carousel-image-link:focus{outline:3px solid rgba(214,170,62,.65);outline-offset:3px}
.carousel-image-link{display:block;width:100%;padding:0;border:0;background:none}
.carousel-image-link img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}

/* LeadFlow Guided Tour — LocalLoop */
.lf-tour-highlight{
  position:relative!important;
  z-index:120!important;
  outline:4px solid #ff7a00!important;
  outline-offset:6px!important;
  box-shadow:0 0 0 8px rgba(255,122,0,.18),0 0 28px rgba(255,122,0,.55)!important;
  border-radius:13px!important;
}
.lf-local-guide{
  position:fixed;
  z-index:4100;
  width:min(390px,calc(100vw - 28px));
  padding:18px 19px 16px;
  border:2px solid #ff7a00;
  border-radius:16px;
  background:rgba(255,255,255,.985);
  color:#27313b;
  box-shadow:0 18px 55px rgba(0,0,0,.24),0 0 24px rgba(255,122,0,.24);
  opacity:0;
  transform:translateY(7px);
  transition:opacity .16s ease,transform .16s ease;
}
.lf-local-guide.visible{opacity:1;transform:none}
.lf-local-guide[hidden]{display:none!important}
.lf-local-guide.place-left{left:22px;right:auto}
.lf-local-guide.place-right{right:22px;left:auto}
.lf-local-guide.place-top{top:92px;bottom:auto}
.lf-local-guide.place-bottom{bottom:92px;top:auto}
.lf-local-guide-eyebrow{
  margin-bottom:8px;color:#e76500;font-size:.69rem;font-weight:900;letter-spacing:.11em
}
.lf-local-guide h3{margin:0 0 8px;font-size:1.16rem;line-height:1.2;color:#25323b}
.lf-local-guide p{margin:0;color:#64717c;font-size:.91rem;line-height:1.5}
.lf-local-guide-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:15px}
.lf-local-guide-actions button{min-height:42px;border-radius:9px;font:inherit;font-weight:800;cursor:pointer}
.lf-local-guide-exit{border:0;background:transparent;color:#71808a;padding:8px 2px;font-size:.8rem}
.lf-local-guide-next{border:1px solid #e76500;background:#ff7a00;color:#fff;padding:9px 15px}
.lf-local-guide-arrow-layer{
  position:fixed;inset:0;width:100%;height:100%;z-index:4090;pointer-events:none;overflow:visible
}
.lf-local-guide-arrow-path{
  fill:none;stroke:#ff7a00;stroke-width:5;stroke-linecap:round;filter:url(#lfLocalGlow)
}
@media(max-width:759px){
  .lf-local-guide,.lf-local-guide.place-left,.lf-local-guide.place-right,.lf-local-guide.place-top,.lf-local-guide.place-bottom{
    left:10px;right:10px;bottom:10px;top:auto;width:auto
  }
  .lf-local-guide-arrow-layer{display:none}
  .lf-tour-highlight{outline-width:3px!important;outline-offset:4px!important}
}
@media(prefers-reduced-motion:reduce){
  .lf-local-guide{transition:none}
}

/* LocalLoop Guided Tour v2.2 — mobile bottom sheet */
@media(max-width:759px){
  .lf-local-guide,
  .lf-local-guide.place-left,
  .lf-local-guide.place-right,
  .lf-local-guide.place-top,
  .lf-local-guide.place-bottom{
    left:8px!important;
    right:8px!important;
    top:auto!important;
    bottom:8px!important;
    width:auto!important;
    max-height:42vh;
    overflow:auto;
    padding:14px 14px 12px;
  }
  .lf-local-guide h3{font-size:1rem}
  .lf-local-guide p{font-size:.84rem;line-height:1.42}
  .lf-local-guide-actions{
    position:sticky;
    bottom:0;
    margin-top:10px;
    padding-top:9px;
    background:rgba(255,255,255,.98);
  }
  .lf-local-guide-arrow-layer{display:none!important}
  .lf-tour-highlight{
    scroll-margin-top:82px;
    scroll-margin-bottom:215px;
  }
}

/* Guided Tour v2.6 — reliable SVG pointer engine */
.lf-local-guide-arrow-layer{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  overflow:visible!important;
  pointer-events:none!important;
  z-index:4090!important;
}
.lf-local-guide-arrow-path{
  fill:none!important;
  stroke:#ff7a00!important;
  stroke-width:5!important;
  stroke-linecap:round!important;
  filter:url(#lfLocalGlow);
}
.lf-local-guide-arrow-head{
  fill:none!important;
  stroke:#ff7a00!important;
  stroke-width:4!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  filter:url(#lfLocalGlow);
}

/* v2.9 mobile demo advisory */
.mobile-demo-notice{
  position:fixed;
  inset:0;
  z-index:12000;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(15,23,28,.68);
  backdrop-filter:blur(6px);
}
.mobile-demo-notice[hidden]{display:none!important}
.mobile-demo-notice-card{
  width:min(420px,100%);
  padding:24px 20px 20px;
  border-radius:18px;
  background:#fff;
  color:#25323b;
  text-align:center;
  box-shadow:0 22px 60px rgba(0,0,0,.30);
}
.mobile-demo-notice-icon{
  width:48px;
  height:48px;
  margin:0 auto 12px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#fff3e8;
  color:#e76500;
  font-size:24px;
  font-weight:900;
}
.mobile-demo-notice-card h2{
  margin:0 0 9px;
  font-size:1.3rem;
  line-height:1.2;
}
.mobile-demo-notice-card p{
  margin:0;
  color:#66727d;
  font-size:.94rem;
  line-height:1.5;
}
.mobile-demo-notice-actions{margin-top:18px}
.mobile-demo-primary{
  width:100%;
  min-height:48px;
  border:0;
  border-radius:10px;
  background:#ff7a00;
  color:#fff;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
@media(min-width:760px){
  .mobile-demo-notice{display:none!important}
}

/* v3.11 Google Places practice lookup */
.practice-lookup-field[hidden]{display:none!important}.place-autocomplete-host{width:100%;position:relative}.place-autocomplete-host gmp-place-autocomplete{display:block;width:100%;min-height:44px;color-scheme:light;background-color:#edf8f3;color:#164c3a;border:1px solid #b8d8ca;border-radius:10px;font-family:"DM Sans",sans-serif;font-size:14px;line-height:1.2;overflow:visible}.place-autocomplete-host gmp-place-autocomplete::part(input){background:#edf8f3;color:#164c3a;border:0;border-radius:10px;padding:10px 11px}.place-autocomplete-host gmp-place-autocomplete::part(focus-ring){border-color:#1f6b52;box-shadow:0 0 0 3px rgba(31,107,82,.10);border-radius:10px}.place-autocomplete-host gmp-place-autocomplete::part(prediction-list){background:#fff;color:#263b34;border:1px solid #c9ddd4;border-radius:10px;box-shadow:0 12px 28px rgba(18,61,51,.16)}.place-autocomplete-host gmp-place-autocomplete::part(prediction-item){background:#fff;color:#263b34}.place-autocomplete-host gmp-place-autocomplete::part(prediction-item-selected),.place-autocomplete-host gmp-place-autocomplete::part(prediction-item):hover{background:#edf8f3}.place-autocomplete-host gmp-place-autocomplete::part(prediction-item-main-text){color:#164c3a}.place-autocomplete-host gmp-place-autocomplete::part(prediction-item-secondary-text){color:#667b73}.req{color:#b42318}.field input.is-error,.field select.is-error{border-color:#d92d20;box-shadow:0 0 0 2px rgba(217,45,32,.08)}
