:root{
  --green:#0F7B5F;--green-700:#0B5F49;--green-50:#EAF5F0;
  --ink:#172033;--muted:#5B6474;--line:#E4E7E0;--bg:#F7F7F3;--card:#FFFFFF;
  --amber:#E39B2D;--amber-50:#FDF3E3;
  --radius:14px;--shadow:0 1px 2px rgba(23,32,51,.04),0 8px 24px rgba(23,32,51,.06);
  --font-display:"Fraunces",Georgia,serif;--font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--bg);line-height:1.55;font-size:16px}
a{color:var(--green-700);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
.container{max-width:1180px;margin:0 auto;padding:0 20px}
h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;line-height:1.15;margin:0 0 .5rem}
h1{font-size:clamp(2rem,4vw,3rem)}
h2{font-size:clamp(1.5rem,2.6vw,2rem)}
h3{font-size:1.15rem}
p{margin:0 0 1rem}
.muted{color:var(--muted)}
.small{font-size:.875rem}

.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px;gap:20px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.45rem;font-weight:700;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand svg{width:30px;height:30px}
.nav-links{display:flex;gap:26px;align-items:center}
.nav-links a{color:var(--ink);font-weight:500}
/* .nav-links a is more specific than .btn-primary, so without this the header's green button
   inherits the dark link colour instead of white. */
.nav-links a.btn-primary{color:#fff}
.nav-links a.btn-primary:hover{color:#fff}
/* Photo picker (assets/js/photo-upload.js) */
.photo-picker{margin:6px 0 4px}
.photo-picker .pp-hint{margin-left:10px}
.photo-picker .pp-msgs .notice{margin:8px 0 0}
.photo-picker .pp-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.pp-tile{position:relative;width:96px;height:96px;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#f3f3ee}
.pp-tile img{width:100%;height:100%;object-fit:cover;display:block}
.pp-size{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);color:#fff;font-size:.68rem;text-align:center;padding:2px 0}
.pp-x{position:absolute;top:4px;right:4px;width:26px;height:26px;border-radius:50%;border:0;background:#fff;color:#111;font-size:1.1rem;line-height:1;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.notice.ok{background:#e8f5ee;border-color:#bfe0d1;color:#0b5d47}
.cat-name{font-weight:600;color:var(--ink)}
.nav-search{display:inline-flex;align-items:center;gap:6px;margin:0 6px}
.nav-search input{border:1px solid var(--line);border-radius:999px;padding:7px 12px;font:inherit;font-size:.875rem;width:200px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:999px;font-weight:600;border:1px solid transparent;cursor:pointer;font-family:inherit;font-size:.95rem;transition:.15s;white-space:nowrap}
.btn-primary{background:var(--green);color:#fff}
.btn-primary:hover{background:var(--green-700);text-decoration:none}
.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--green);text-decoration:none}
.btn-sm{padding:8px 14px;font-size:.875rem}

.hero{padding:72px 0 56px;background:radial-gradient(1200px 500px at 20% -10%,#dff0e8 0%,transparent 60%),radial-gradient(900px 400px at 100% 0%,#fbeeda 0%,transparent 55%)}
.hero h1{max-width:760px}
.hero .lead{font-size:1.15rem;color:var(--muted);max-width:640px}
.search{display:grid;grid-template-columns:1.2fr 1fr auto;gap:10px;background:#fff;padding:10px;border-radius:18px;box-shadow:var(--shadow);border:1px solid var(--line);margin:28px 0 14px;max-width:820px}
.search .field{display:flex;align-items:center;gap:10px;padding:0 14px;border-right:1px solid var(--line)}
.search .field:nth-child(2){border-right:0}
.search label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:block}
.search input{border:0;outline:0;font:inherit;font-size:1rem;width:100%;padding:6px 0;background:transparent;color:var(--ink)}
.search .field-inner{flex:1}
.link-loc{background:none;border:0;color:var(--green-700);font-weight:600;cursor:pointer;font:inherit;font-size:.85rem;display:inline-flex;gap:6px;align-items:center;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:.875rem;color:var(--ink)}
.chip:hover{border-color:var(--green);text-decoration:none}
.stats{display:flex;gap:28px;flex-wrap:wrap;margin-top:34px}
.stat b{display:block;font-family:var(--font-display);font-size:1.7rem;color:var(--green-700)}
.stat span{color:var(--muted);font-size:.9rem}

.section{padding:56px 0}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}
.grid{display:grid;gap:14px}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-6{grid-template-columns:repeat(6,1fr)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.county{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;color:var(--ink);font-weight:500}
.county:hover{border-color:var(--green);text-decoration:none}
.county span{color:var(--muted);font-size:.85rem}
.cat{display:flex;flex-direction:column;align-items:flex-start;gap:10px;color:var(--ink)}
.cat:hover{text-decoration:none;border-color:var(--green)}
.cat .ico{width:40px;height:40px;border-radius:10px;background:var(--green-50);display:grid;place-items:center;color:var(--green-700);font-size:1.2rem}
.cat b{font-weight:600}
.cat span{color:var(--muted);font-size:.85rem}

.map{width:100%;height:420px;border-radius:var(--radius);border:1px solid var(--line);background:#e9eee9;z-index:1}
.leaflet-container{font:inherit}
.num-marker{width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--green);border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.25);display:grid;place-items:center}
.num-marker span{transform:rotate(45deg);color:#fff;font-weight:700;font-size:.75rem}
.num-marker.you{background:var(--amber)}
.near-list{list-style:none;margin:0;padding:0}
.near-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.near-list li:last-child{border-bottom:0}
.near-list b{color:var(--green-700);white-space:nowrap}

.steps{counter-reset:s}
.step{position:relative;padding-left:56px}
.step::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:0;width:40px;height:40px;border-radius:12px;background:var(--green);color:#fff;font-weight:700;display:grid;place-items:center;font-family:var(--font-display)}

.cta{background:var(--green-700);color:#fff;border-radius:22px;padding:44px;display:flex;justify-content:space-between;align-items:center;gap:30px}
.cta h2{color:#fff}
.cta p{color:#d6e9e1;margin:0}
.cta .btn-primary{background:#fff;color:var(--green-700)}

.site-footer{border-top:1px solid var(--line);background:#fff;padding:40px 0 30px;margin-top:40px;color:var(--muted);font-size:.9rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:30px;margin-bottom:26px}
.site-footer h4{margin:0 0 10px;color:var(--ink);font-size:.95rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin:6px 0}
.site-footer a{color:var(--muted)}

.crumbs{font-size:.875rem;color:var(--muted);padding:18px 0 0}
.crumbs a{color:var(--muted)}
.page-head{padding:12px 0 26px}
.page-head .lead{color:var(--muted);max-width:820px;font-size:1.05rem}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--green-50);color:var(--green-700);vertical-align:middle}
.badge.amber{background:var(--amber-50);color:#9a621a}
.badge.grey{background:#eef0ec;color:var(--muted)}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:0 0 18px}
.seg{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px}
.seg button{border:0;background:none;padding:7px 14px;border-radius:999px;font:inherit;font-size:.875rem;cursor:pointer;color:var(--muted)}
.seg button.active{background:var(--ink);color:#fff}
.toggle{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer}

.results{display:grid;grid-template-columns:1fr 440px;gap:24px;align-items:start}
.sticky{position:sticky;top:84px}
.biz{display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:start;margin-bottom:12px;transition:.15s}
.biz:hover{border-color:var(--green)}
.rank{width:44px;height:44px;border-radius:12px;background:var(--ink);color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.15rem;display:grid;place-items:center}
.biz.top .rank{background:var(--green)}
.biz h3{margin:0 0 4px;font-family:var(--font-body);font-weight:700;font-size:1.05rem}
.biz h3 a{color:var(--ink)}
.meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:.875rem;margin:4px 0}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tag{font-size:.78rem;padding:3px 9px;border-radius:6px;background:#f1f3ef;color:var(--ink)}
.dist{text-align:right;min-width:88px}
.dist b{display:block;font-size:1.05rem;color:var(--green-700)}
.dist span{font-size:.78rem;color:var(--muted)}
.biz-actions{display:flex;gap:8px;margin-top:10px}

.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.tile b{display:block;font-family:var(--font-display);font-size:1.6rem;color:var(--green-700)}
.tile span{font-size:.85rem;color:var(--muted)}
.chart-wrap{height:260px;position:relative}

.faq details{border-bottom:1px solid var(--line);padding:14px 0}
.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between}
.faq summary::after{content:"+";color:var(--muted)}
.faq details[open] summary::after{content:"–"}
.faq p{margin:10px 0 0;color:var(--muted)}

.profile-head{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start}
.kv{display:grid;grid-template-columns:150px 1fr;gap:10px 16px;font-size:.95rem;margin:0}
.kv dt{color:var(--muted)}
.kv dd{margin:0}
.hours{width:100%;border-collapse:collapse;font-size:.9rem}
.hours td{padding:6px 0;border-bottom:1px solid var(--line)}
.hours td:last-child{text-align:right}
.notice{background:var(--amber-50);border:1px solid #f3dcb3;color:#7a4d10;border-radius:10px;padding:10px 14px;font-size:.85rem;margin:14px 0 0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:24px}

.num-marker.approx{background:#5FA98E}
.badges{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 6px}
.facts{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.875rem;margin:6px 0 2px}
.claim{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line);color:var(--muted)}
.legend{display:flex;gap:16px;margin-top:8px}
.legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--green);margin-right:5px}
.legend .dot.approx{background:#5FA98E}
.legend .dot.you{background:var(--amber)}
.price{width:100%;border-collapse:collapse;font-size:.95rem}
.price td{padding:10px 0;border-bottom:1px solid var(--line);vertical-align:top}
.price tr:last-child td{border-bottom:0}
.price td:nth-child(2){white-space:nowrap;padding:10px 14px}
.reg .reg-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.reg p{margin:0 0 6px}
.quote select,.quote textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;margin-bottom:8px;background:#fff;color:var(--ink)}
.quote label{display:block;margin:4px 0 4px}
.prose{max-width:820px;padding:12px 0 40px}
.prose h1{margin-bottom:.25rem}
.prose h2{font-size:1.35rem;margin-top:2rem}
.prose h3{font-size:1.05rem;margin-top:1.4rem;font-family:var(--font-body);font-weight:700}
.prose p,.prose li{color:#2c3646}
.prose ul{padding-left:22px}
.prose li{margin:6px 0}
.consent{position:fixed;left:18px;right:18px;bottom:18px;max-width:720px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.18);padding:16px 18px;display:flex;gap:16px;align-items:center;justify-content:space-between;z-index:70;font-size:.9rem}
.consent p{margin:0}
.consent-actions{display:flex;gap:8px;flex-shrink:0}
@media (max-width:640px){.consent{flex-direction:column;align-items:stretch}}
.compare-bar[hidden]{display:none}
.show-all{display:flex;justify-content:center;margin:6px 0 18px}
.compare-bar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:999px;padding:10px 12px 10px 20px;display:flex;gap:16px;align-items:center;box-shadow:0 10px 30px rgba(0,0,0,.25);z-index:60}
.quote input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;margin-bottom:8px}
.quote .row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:980px){
  .grid-4,.grid-6{grid-template-columns:repeat(3,1fr)}
  .results,.two{grid-template-columns:1fr}
  .sticky{position:static}
  .footer-grid{grid-template-columns:1fr 1fr}
  .tiles{grid-template-columns:repeat(2,1fr)}
  .cta{flex-direction:column;align-items:flex-start}
}
@media (max-width:640px){
  .search{grid-template-columns:1fr}
  .search .field{border-right:0;border-bottom:1px solid var(--line);padding:6px 10px}
  .grid-4,.grid-6,.grid-3{grid-template-columns:1fr 1fr}
  /* The header used to disappear entirely below 640px, leaving phone users with no search, no
     sign-in and no way to add a business. Wrap it instead, and let the bar grow to fit. */
  .nav{height:auto;min-height:60px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap;row-gap:10px}
  .nav-links{gap:14px;flex-wrap:wrap;justify-content:flex-start;row-gap:8px;width:100%}
  .nav-search{display:none}                /* every page already carries its own search box */
  .nav-links a{font-size:.9rem}
  .nav-links a.btn-primary{margin-left:auto}
  .biz{grid-template-columns:36px 1fr}
  .dist{grid-column:2;text-align:left}
  .profile-head{grid-template-columns:1fr}

  /* Tap targets. Google's mobile guidance wants roughly 48px of tappable height with space
     between; inline text links were 22px, which is a miss on a phone and most visitors are on one.
     Padding is used rather than font-size so the layout and reading rhythm stay the same. */
  .btn{min-height:46px}
  .btn-sm{min-height:42px;padding:10px 16px}
  .crumbs a{display:inline-block;padding:7px 2px}
  .tag{min-height:42px;display:inline-flex;align-items:center}
  .near-list a,.site-footer li a,.card.county,.card.cat{display:block;padding-top:10px;padding-bottom:10px}
  .seg button{min-height:44px}
  .biz .meta a,.reviews a{display:inline-block;padding:6px 0}
  /* Phone links are the single most-tapped thing on a directory - make them unmissable. */
  a[href^="tel:"]{display:inline-block;min-height:44px;line-height:44px}
  /* The links people actually tap on a result: the business name, "claim it free", the review
     prompt, and the header. Prose links inside paragraphs are left alone, since stretching those
     would put ugly gaps through the body text for no real gain. */
  .card a:not(.btn):not(.tag),.facts a,.claim a,.nav-links a,.crumbs a,.site-footer li a{
    display:inline-flex;align-items:center;min-height:44px}
}

/* ===== Mahnoor web-design adverts (colours come from includes/promo.php) ===== */
.pm-wrap{padding:22px 0 6px}
.pm{position:relative;color:var(--pm-text);background:var(--pm-bg);border:1px solid var(--pm-line);border-radius:14px;box-shadow:0 1px 2px rgba(11,18,32,.08),0 10px 30px rgba(11,18,32,.10)}
.pm a{text-decoration:none}
.pm-adtag{position:absolute;top:10px;right:12px;font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pm-sub);border:1px solid var(--pm-line);border-radius:4px;padding:1px 6px}
.pm-eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pm-accent)}
.pm-eyebrow:before{content:"";width:18px;height:2px;background:var(--pm-accent);border-radius:2px}
.pm-offer{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;font-weight:700;color:var(--pm-tag-ink);background:var(--pm-tag-bg);border-radius:99px;padding:5px 12px}
.pm-offer b{color:var(--pm-accent)}
.pm-btn{display:inline-block;background:var(--pm-accent);color:var(--pm-accent-ink)!important;font-weight:700;padding:12px 22px;border-radius:9px;white-space:nowrap}
.pm-btn:hover{filter:brightness(1.07)}
.pm-ico{width:46px;height:46px;border-radius:12px;background:var(--pm-accent);color:var(--pm-accent-ink);display:grid;place-items:center;flex:none;margin-bottom:10px}
.pm-ico svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pm-mini .pm-ico{width:40px;height:40px;margin-bottom:0}.pm-mini .pm-ico svg{width:22px;height:22px}
.pm-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.pm-chips span{background:var(--pm-tag-bg);color:var(--pm-tag-ink);border-radius:999px;padding:5px 12px;font-size:.84rem;font-weight:600}
.pm-ticks{list-style:none;margin:0;padding:0}
.pm-ticks li{display:flex;gap:9px;font-size:.9rem;color:var(--pm-sub);margin-bottom:5px}
.pm-ticks li:before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--pm-accent);margin-top:.55em}
.pm-price .pm-st{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--pm-sub)}
.pm-price .pm-row{display:flex;align-items:baseline;gap:10px}
.pm-now{font-family:var(--font-display);font-weight:700;font-size:2.3rem;line-height:1;color:var(--pm-text)}
.pm-was{font-size:1.05rem;color:var(--pm-was);text-decoration:line-through;text-decoration-thickness:1.5px}
.pm-inc{font-size:.84rem;color:var(--pm-sub);margin-top:2px}.pm-inc b{color:var(--pm-accent)}
.pm-sub{font-size:.66rem;color:#8a92a0;text-align:right;margin-top:4px}

.pm-banner{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;padding:22px 28px}
.pm-banner:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:4px;border-radius:0 4px 4px 0;background:var(--pm-accent)}
.pm-banner h2{font-size:clamp(1.3rem,2.4vw,1.65rem);line-height:1.2;margin:8px 0 6px;max-width:520px;color:var(--pm-text)}
.pm-banner p{margin:0 0 12px;color:var(--pm-sub);font-size:.95rem;max-width:520px}
.pm-side{display:flex;flex-direction:column;gap:12px;align-items:flex-start;padding-left:30px;border-left:1px solid var(--pm-line)}

.pm-card{padding:22px 20px 20px}
.pm-card h3{font-size:1.22rem;line-height:1.2;margin:12px 0 6px;color:var(--pm-text)}
.pm-card p{margin:0 0 12px;color:var(--pm-sub);font-size:.9rem}
.pm-pricebox{border-top:1px solid var(--pm-line);margin:14px 0;padding-top:14px}
.pm-card .pm-btn{display:block;text-align:center}

.pm-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 64px 12px 16px;border-radius:12px}
.pm-txt{flex:1;min-width:220px;font-size:.93rem}
.pm-txt small{display:block;color:var(--pm-sub)}
.pm-txt s{color:var(--pm-was)}
.pm-txt em{font-style:normal;color:var(--pm-accent)}
.pm-strip .pm-btn{padding:9px 16px}
.pm-wrap + .site-footer{margin-top:22px}

@media(max-width:760px){
  .pm-banner{grid-template-columns:1fr;gap:14px;padding:22px 18px 18px 22px}
  .pm-side{padding-left:0;border-left:0;border-top:1px solid var(--pm-line);padding-top:14px;width:100%}
  .pm-strip{padding-right:16px;padding-top:28px}
}

/* header: keep one line without sideways scroll between phone and desktop widths */
@media (min-width:641px){.nav-links a{white-space:nowrap}}
@media (min-width:641px) and (max-width:1100px){.nav-links{gap:16px}.nav-search input{width:130px}.nav-links a.btn-primary{padding:8px 12px}}

.grid>*{min-width:0}
.mapbtns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.gmbox{margin-top:10px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.gmbox[hidden]{display:none}

/* Photo gallery (profile page + admin) and the full-screen viewer. */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:6px 0 14px}
.gallery a{position:relative;display:block;aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:#e9ece7;border:1px solid rgba(23,32,51,.08);cursor:zoom-in}
.gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.gallery a:hover img{transform:scale(1.04)}
.gallery a:focus-visible{outline:3px solid #0F7B5F;outline-offset:2px}
.gallery .more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(15,27,22,.55);color:#fff;font-weight:700;font-size:1.1rem}
@media(max-width:640px){.gallery{grid-template-columns:repeat(2,1fr);gap:8px}}

html.lb-open{overflow:hidden}
.lb{position:fixed;inset:0;z-index:2000;background:rgba(10,14,12,.94);display:flex;align-items:center;justify-content:center;padding:56px 12px 48px}
.lb[hidden]{display:none}
.lb-fig{margin:0;max-width:min(1200px,100%);max-height:100%;display:flex;flex-direction:column;align-items:center;gap:10px}
.lb-img{max-width:100%;max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px);width:auto;height:auto;object-fit:contain;border-radius:8px;background:#111;box-shadow:0 10px 50px rgba(0,0,0,.5);transition:opacity .15s}
.lb-img.lb-loading{opacity:.35}
.lb-cap{color:#dfe6e1;font-size:.9rem;text-align:center;max-width:90vw}
.lb-count{position:absolute;bottom:14px;left:0;right:0;text-align:center;color:#aab6b0;font-size:.85rem}
.lb-close,.lb-nav{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;border-radius:50%;line-height:1;display:grid;place-items:center;transition:background .15s}
.lb-close:hover,.lb-nav:hover{background:rgba(255,255,255,.25)}
.lb-close{top:12px;right:12px;width:44px;height:44px;font-size:30px}
.lb-nav{top:50%;transform:translateY(-50%);width:48px;height:48px;font-size:34px;padding-bottom:4px}
.lb-prev{left:12px}.lb-next{right:12px}
@media(max-width:640px){.lb-nav{width:40px;height:40px;font-size:28px;top:auto;bottom:6px;transform:none}.lb-prev{left:16px}.lb-next{right:16px}.lb{padding:56px 8px 56px}}
.gallery a.fit-contain img{object-fit:contain;background:#f3f4f0}
.gallery a.fit-contain{background:#f3f4f0}

/* ===== Owner dashboard ===== */
.own-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin:6px 0 14px}
.own-grid{align-items:start}
.own-form{display:flex;flex-direction:column;gap:14px}
.own-card{padding:18px 20px}
.own-card h3{margin:0 0 12px}
.own-fields{display:flex;flex-direction:column;gap:12px}
.own-fields input,.own-fields textarea{width:100%}
.own-save{position:sticky;bottom:0;z-index:5;display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 14px;margin:0 -2px;background:rgba(247,247,243,.96);backdrop-filter:blur(6px);border-top:1px solid var(--line);border-radius:12px}

/* upgrade banner */
.up{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center;background:linear-gradient(115deg,#0B5F49 0%,#0F7B5F 100%);color:#fff;border-radius:16px;padding:22px 26px;margin:0 0 16px;position:relative;overflow:hidden}
.up:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:4px;border-radius:0 4px 4px 0;background:#9be7c8}
.up-kicker{font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#9be7c8}
.up h2{color:#fff;font-size:clamp(1.15rem,2.4vw,1.5rem);line-height:1.25;margin:4px 0 10px;max-width:560px}
.up-list{list-style:none;margin:0 0 8px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 22px}
.up-list li{font-size:.92rem;color:#d7efe5;position:relative;padding-left:22px}
.up-list li:before{content:"✓";position:absolute;left:0;color:#9be7c8;font-weight:800}
.up-list b{color:#fff}
.up-more{margin:0;font-size:.82rem;color:#b5dccb}
.up-side{text-align:center;padding-left:26px;border-left:1px solid rgba(255,255,255,.22);display:flex;flex-direction:column;gap:6px;align-items:center}
.up-from{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#b5dccb}
.up-price{font:700 2.2rem/1 var(--font-display);color:#fff}
.up-price small{font:500 .9rem var(--font-body);color:#b5dccb}
.up-price .pw-was{color:#b5dccb;font-size:1.1rem;margin-right:8px;font-family:var(--font-body)}
.up-btn{display:inline-block;margin-top:6px;background:#fff;color:#0B5F49!important;font-weight:700;padding:12px 20px;border-radius:9px;text-decoration:none!important;white-space:nowrap}
.up-btn:hover{background:#eafaf3}

/* opening hours */
.hours-tools{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.hours-tools button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 13px;font:inherit;font-size:.84rem;cursor:pointer;color:var(--ink)}
.hours-tools button:hover{border-color:var(--green);color:var(--green-700)}
.hours-tools button.ghost{color:var(--muted)}
.hours{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.hrow{display:grid;grid-template-columns:104px 1fr auto;gap:10px 14px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}
.hrow:last-child{border-bottom:0}
.hrow:nth-child(even){background:#fafaf7}
.hday{font-weight:650;font-size:.92rem}
.htimes{display:flex;align-items:center;gap:8px;transition:opacity .15s}
.htimes input{width:118px;min-height:40px;padding:6px 10px}
.hto{color:var(--muted);font-size:.85rem}
.hflags{display:flex;gap:16px;font-size:.88rem}
.hflags label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.hflags input{width:18px;height:18px;min-height:0;margin:0;accent-color:var(--green)}
.hrow.is-off .htimes{opacity:.35}
@media(max-width:700px){
  .hrow{grid-template-columns:1fr;gap:8px;padding:12px 14px}
  .hday{font-size:.95rem}
  .htimes input{flex:1;width:auto;min-width:0}
  .hflags{gap:22px}
  .up{grid-template-columns:1fr;padding:20px 18px 18px 22px;gap:14px}
  .up-list{grid-template-columns:1fr}
  .up-side{border-left:0;border-top:1px solid rgba(255,255,255,.14);padding:14px 0 0;flex-direction:row;flex-wrap:wrap;justify-content:space-between;gap:10px}
  .up-btn{margin:0}
  .own-card{padding:16px 14px}
}
@media(max-width:700px){.own-save{padding:8px 12px}.own-save .muted{display:none}.own-save .btn{width:100%}}
/* crossed-out usual plan price */
.pw-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}
.pw-was{color:var(--muted);font-weight:600;font-size:1.05rem;text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:#c0392b}
.pw-save{font-size:.7rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;background:#fdeaea;color:#b42318;border-radius:6px;padding:2px 7px;align-self:center}
@media (min-width:641px) and (max-width:1040px){.nav-search{display:none}}
.up .pw-save{background:rgba(255,255,255,.18);color:#fff}

/* owner: choose a plan */
.pp-billing{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px;font-size:.92rem}
.pp-billing label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.pp-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pp-card{position:relative;display:block;cursor:pointer}
.pp-card input{position:absolute;opacity:0;pointer-events:none}
.pp-body{display:flex;flex-direction:column;gap:6px;height:100%;border:2px solid var(--line);border-radius:12px;padding:14px;background:#fff;transition:border-color .15s,box-shadow .15s}
.pp-card:hover .pp-body{border-color:#b7d9cb}
.pp-card input:checked + .pp-body{border-color:var(--green);box-shadow:0 0 0 3px rgba(15,123,95,.15)}
.pp-card input:focus-visible + .pp-body{outline:3px solid var(--green);outline-offset:2px}
.pp-name{font-weight:700;font-size:1.02rem}
.pp-name em{font-style:normal;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:var(--amber-50);color:#8a5a00;border-radius:6px;padding:2px 6px;margin-left:6px}
.pp-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 6px}
.pp-price b{font-size:1.5rem}
.pp-price small{color:var(--muted);font-size:.8rem}
.pp-year{flex-basis:100%}
.pp-feat{font-size:.84rem;color:var(--muted);line-height:1.45}
@media(max-width:760px){.pp-cards{grid-template-columns:1fr}}
/* plan feature lists: ordinary wrapping lines (the shared .near-list rule is built for "name ... distance" rows) */
.feat-list li{display:block;line-height:1.45;overflow-wrap:anywhere}
.feat-list b{white-space:normal}
/* four plans: 4 across on a wide screen, 2 x 2 on a tablet (never 3 + 1), one column on a phone */
.grid.plans-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1019px){.grid.plans-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.grid.plans-grid{grid-template-columns:1fr}}
/* tick boxes and radio buttons sit BESIDE their sentence (the generic ".quote input" rule made them full width and centred) */
.quote input[type=checkbox],.quote input[type=radio],.tick input[type=checkbox]{width:18px;height:18px;min-height:0;padding:0;margin:2px 0 0;flex:0 0 18px;accent-color:var(--green)}
.tick{display:flex;align-items:flex-start;gap:10px;line-height:1.45;margin:8px 0}
/* small ad banner after the map on business profiles */
.pm-mini{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;flex-wrap:wrap}
.pm-mini .pm-adtag{top:6px;right:8px}
.pm-mini-text{flex:1;min-width:200px;display:flex;flex-direction:column;gap:2px;padding-right:26px}
.pm-mini-text b{font-size:.98rem;line-height:1.25;color:var(--pm-text)}
.pm-mini-text span{font-size:.84rem;color:var(--pm-sub)}
.pm-mini .pm-btn{padding:10px 16px;font-size:.9rem}

/* ---- adverts: the whole ad is one link; large version in the empty space beside a profile's description ---- */
.pm-cover{position:absolute;inset:0;z-index:2;border-radius:inherit}
.pm-cover:focus-visible{outline:3px solid var(--pm-accent);outline-offset:2px}
.pm:hover .pm-btn{filter:brightness(1.08)}
.pm .pm-btn{position:relative}
.profile-side{max-width:100%;display:flex;flex-direction:column;gap:14px;min-width:0}
@media (min-width:981px){.profile-head{grid-template-columns:minmax(0,1fr) 560px}}
.profile-side .pm-sub{margin-top:-8px}
.pm-hero{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center;padding:24px 24px 22px 26px;overflow:hidden}
.pm-hero:before{content:"";position:absolute;left:0;top:20px;bottom:20px;width:4px;border-radius:0 4px 4px 0;background:var(--pm-accent)}
.pm-hero:after{content:"";position:absolute;right:-60px;bottom:-70px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.07);pointer-events:none}
.pm-hero h3{font-size:1.4rem;line-height:1.2;margin:10px 0 8px;color:var(--pm-text)}
.pm-hero p{margin:0 0 12px;color:var(--pm-sub);font-size:.93rem}
.pm-hero-side{display:flex;flex-direction:column;gap:12px;align-items:flex-start;padding-left:22px;border-left:1px solid var(--pm-line);min-width:170px}
.pm-hero .pm-inc{margin-top:-6px}
.pm-hero .pm-btn{padding:12px 18px;position:relative;z-index:1}
@media (min-width:981px){.pm-mini:not(.pm-why){display:none}}
@media (max-width:980px){.pm-hero,.pm-sub-hero{display:none}}

/* the trade and place sit inside the H1 (good for search engines) but read as a quieter second line */
.h1-kw{display:block;font-family:var(--font-body,inherit);font-size:.42em;font-weight:500;letter-spacing:0;color:var(--muted);margin-top:6px;line-height:1.3}
.h1-kw .vh{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* ".quote label" made every label a block and beat .tick: keep the tick box beside its sentence */
.quote label.tick,label.tick{display:flex;align-items:flex-start;gap:10px;line-height:1.45;margin:8px 0}

/* ---- large profile advert: fills the height beside the description; assets/js/adfit.js picks compact / normal / roomy ---- */
.pm-now-sm{font-size:1.9rem}
.pm-hero-extra{display:none;margin-top:14px;padding-top:14px;border-top:1px solid var(--pm-line);font-size:.88rem;color:var(--pm-sub)}
.pm-hero-extra b{display:block;color:var(--pm-text);margin-bottom:6px;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
.pm-hero-extra ol{margin:0;padding-left:20px;line-height:1.7}
.pm-hero.is-roomy .pm-hero-extra{display:block}
.pm-hero.is-compact .pm-ticks{display:none}
.pm-hero.is-compact{padding-top:18px;padding-bottom:18px}
.pm-hero.is-compact h3{font-size:1.25rem}
@media (min-width:981px){
  .profile-head{align-items:stretch}
  .profile-side .pm-hero{flex:1 1 auto;align-content:center}
}

/* "Get free quotes ... on FindPro" button */
.fp-btn{display:inline-block;text-align:center}
.fp-card .fp-btn{display:block}
.fp-row{margin:0 0 18px}
#fpOptIn[hidden]{display:none}

/* owner dashboard: listing score */
.own-score{display:flex;gap:22px;align-items:center;padding:20px 22px;margin:0 0 16px}
.score-ring{--p:0;flex:none;width:104px;height:104px;border-radius:50%;display:grid;place-content:center;text-align:center;
  background:radial-gradient(closest-side,#fff 76%,transparent 78% 100%),conic-gradient(var(--green) calc(var(--p) * 1%),#e3e8e4 0)}
.score-ring b{font-family:var(--font-display);font-size:2rem;line-height:1;color:var(--ink)}
.score-ring span{font-size:.72rem;color:var(--muted)}
.score-main{min-width:0;flex:1}
.score-main h2{font-size:1.2rem;margin:0 0 6px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.score-tasks{list-style:none;margin:0;padding:0}
.score-tasks li{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.score-tasks li:first-child{border-top:0}
.score-tasks .pts{flex:none;min-width:38px;text-align:center;font-weight:700;font-size:.85rem;color:var(--green);background:var(--green-50,#eaf5f0);border-radius:99px;padding:2px 8px}
.score-tasks .txt{flex:1;min-width:0;font-size:.95rem}
@media (max-width:640px){.own-score{flex-direction:column;align-items:flex-start}.score-tasks li{flex-wrap:wrap}}

/* opening hours on a profile: today's row highlighted */
.card .hours tr.today td{background:var(--green-50,#eaf5f0);font-weight:700;color:var(--green-700,#0b5f49)}
.card .hours tr.today td:first-child{border-radius:8px 0 0 8px;padding-left:10px}
.card .hours tr.today td:last-child{border-radius:0 8px 8px 0;padding-right:10px}

/* owner dashboard: badge for the owner's own website */
.badge-card summary{cursor:pointer;list-style:none}
.badge-card summary::-webkit-details-marker{display:none}
.badge-card summary:before{content:"+";display:inline-block;width:1.2em;color:var(--green);font-weight:700}
.badge-card[open] summary:before{content:"–"}
.badge-pick{display:flex;gap:14px;flex-wrap:wrap;margin:0 0 12px}
.badge-opt{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}
.badge-opt input{position:absolute;opacity:0}
.bo-img{display:block;padding:8px;border:2px solid var(--line);border-radius:14px;background:#fff}
.bo-img.on-dark{background:#f3f4f0}
.badge-opt input:checked + .bo-img{border-color:var(--green);box-shadow:0 0 0 3px rgba(15,123,95,.15)}

/* ================= public listing: header, icon badges, sections ================= */
.ic{width:1.1em;height:1.1em;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.16em}
.biz-hero{padding:24px 26px 20px;margin:4px 0 18px;border-radius:18px}
.biz-top{display:flex;gap:20px;align-items:center}
.biz-logo{flex:none;width:104px;height:104px;border-radius:18px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;overflow:hidden}
.biz-logo img{width:100%;height:100%;object-fit:contain;padding:6px}
.biz-logo.no-logo{background:linear-gradient(135deg,#e6f3ed,#cfe8dd);border-color:#bfe0d1}
.biz-logo.no-logo span{font-family:var(--font-display);font-weight:700;font-size:2.1rem;color:var(--green-700,#0b5f49);letter-spacing:.02em}
.biz-id{min-width:0}
.biz-hero h1{font-size:clamp(1.65rem,3vw,2.3rem);margin:0 0 10px;line-height:1.12}
.biz-hero .h1-kw{font-size:.46em;margin-top:5px}
.biz-badges{display:flex;flex-wrap:wrap;gap:8px}
.bd{display:inline-flex;align-items:center;gap:6px;padding:5px 11px 5px 9px;border-radius:999px;font-size:.82rem;font-weight:600;line-height:1.2;border:1px solid var(--line);background:#fff;color:#33423c}
.bd .ic{width:1.05rem;height:1.05rem}
.bd-soft{font-weight:500;color:var(--muted)}
.bd-green{background:#e8f5ef;border-color:#bfe0d1;color:#0b5f49}
.bd-star{background:#fff8e6;border-color:#f0dca4;color:#7a5a00}
.bd-star .ic{fill:#e8a800;stroke:#e8a800}
.bd-premium{background:#eaf2ff;border-color:#bcd2f5;color:#1d4ba3}
.bd-platinum{background:#eef0f4;border-color:#c7ccd6;color:#3b4660}
.bd-gold{background:#fff3d6;border-color:#ecd08a;color:#7a5200}
.bd-open{background:#e8f7ee;border-color:#a9dcbc;color:#126b3a}
.bd-open .ic{stroke:#1a9a55}
.bd-closed{background:#f4f4f2;color:#6b756f}
.biz-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.biz-actions .btn{display:inline-flex;align-items:center;gap:8px}
.biz-actions .btn .ic{width:1.15rem;height:1.15rem}
.biz-actions .btn-claim{margin-left:auto}
.card-h{display:flex;align-items:center;gap:9px;font-size:1.15rem;margin:0 0 12px}
.card-h .ic{color:var(--green);width:1.25rem;height:1.25rem}
.biz-desc{margin:0;color:#3f4d47;line-height:1.7;font-size:1.02rem;white-space:pre-line}
.biz-about .tags .tag{font-size:.86rem}
.biz-two{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start}
/* the large advert sits at the top of the sidebar, in a single column */
.biz-two .pm-hero{grid-template-columns:1fr;gap:16px;padding:22px 22px 20px 24px;margin-bottom:0}
.biz-two .pm-hero-side{border-left:0;border-top:1px solid var(--pm-line);padding:16px 0 0;min-width:0;width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}
.biz-two .pm-hero .pm-btn{width:auto}
.biz-two .pm-sub-hero{margin:4px 0 14px}
@media (max-width:980px){.biz-two{grid-template-columns:1fr}}
@media (max-width:640px){
  .biz-hero{padding:18px 16px 16px}
  .biz-top{gap:14px;align-items:flex-start}
  .biz-logo{width:76px;height:76px;border-radius:14px}
  .biz-logo.no-logo span{font-size:1.5rem}
  .biz-actions .btn{flex:1 1 calc(50% - 10px);justify-content:center}
  .biz-actions .btn-claim{margin-left:0;flex-basis:100%}
}

/* related services strip, just above the footer */
.partner-strip{padding:6px 0 18px}
.partner{position:relative;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 20px;border:1px solid var(--line);border-radius:14px;background:#fff}
.partner .pm-adtag{position:absolute;top:8px;right:12px;font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:1px 6px}
.partner-text{flex:1;min-width:220px;display:flex;flex-direction:column;gap:2px;padding-right:56px}
.partner-text b{font-size:1rem;color:var(--ink)}
.partner-text span{font-size:.88rem;color:var(--muted)}
.partner-links{display:flex;gap:8px;flex-wrap:wrap}

/* analytics: performance chart in the style of Google Search Console */
.perf-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.perf-tiles{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.perf .pt{flex:1 1 150px;text-align:left;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:#fff;color:var(--ink);cursor:pointer;font:inherit}
.perf .pt span{display:block;font-size:.78rem;color:var(--muted)}
.perf .pt b{display:block;font-size:1.5rem;line-height:1.2;font-family:var(--font-display)}
.perf .pt.on{color:#fff}
.perf .pt.on span{color:rgba(255,255,255,.85)}
.perf .pt-clicks.on{background:#4285f4;border-color:#4285f4}
.perf .pt-impr.on{background:#7b4bc4;border-color:#7b4bc4}
.perf .pt-ctr.on{background:#1a9a55;border-color:#1a9a55}
.perf .pt-pos.on{background:#e8710a;border-color:#e8710a}
.perf .pt-views.on{background:#0F7B5F;border-color:#0F7B5F}
.fp-btn{white-space:normal;line-height:1.3}
@media (max-width:640px){
  .biz-top{display:grid;grid-template-columns:76px 1fr;gap:12px 14px;align-items:center}
  .biz-id{display:contents}
  .biz-hero h1{grid-column:2;margin:0;font-size:1.45rem}
  .biz-badges{grid-column:1 / -1}
}

.partner .pm-adtag{top:-9px;right:18px;background:#fff;padding:0 7px}

/* ---- full-colour badges (the main trust badges are solid, the information badges soft) ---- */
.bd small{font-weight:500;opacity:.85;margin-left:2px}
.bd-s-green{background:#0F7B5F;border-color:#0F7B5F;color:#fff}
.bd-s-teal{background:#0A6C8B;border-color:#0A6C8B;color:#fff}
.bd-s-premium{background:#1D4ED8;border-color:#1D4ED8;color:#fff}
.bd-s-platinum{background:linear-gradient(135deg,#64748b,#334155);border-color:#334155;color:#fff}
.bd-s-gold{background:linear-gradient(135deg,#e0a91e,#a8730a);border-color:#a8730a;color:#fff}
.bd-featured{background:#fff;border-color:#d9a21b;color:#8a5a00;letter-spacing:.06em;text-transform:uppercase;font-size:.74rem}
.bd-featured .ic{fill:#e8a800;stroke:#e8a800}
.bd-open{background:#e8f7ee;border-color:#a9dcbc;color:#126b3a}
.bd-open .ic{color:#1a9a55}
.bd-closed{background:#fdecec;border-color:#f3c3c3;color:#a12a2a}
.bd-reply{background:#e9f1ff;border-color:#bcd2f5;color:#1d4ba3}
.bd-new{background:#f1eafd;border-color:#d6c5f5;color:#5b2fb0}
.bd-loc{padding:3px 11px 3px 4px;gap:7px;background:#fff}
.bd-flag{background:#1d3fbf;color:#fff;border-radius:999px;padding:2px 8px;font-size:.7rem;letter-spacing:.06em}
.bd-code{color:var(--muted);font-weight:500;border-left:1px solid var(--line);padding-left:8px}
/* related-page links */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-block;padding:7px 14px;border-radius:999px;background:#eef3f0;border:1px solid #d9e5df;color:#14503f;font-size:.88rem;text-decoration:none}
.chip:hover{background:#e0efe8;border-color:#b8d4c8}

/* icons inside cards and chips */
.kv dt{display:flex;align-items:center;gap:8px}
.kv dt .ic{width:1rem;height:1rem;color:var(--green);flex:none}
.chip{display:inline-flex;align-items:center;gap:7px}
.chip .ic{width:1rem;height:1rem;color:var(--green)}
.chip .chip-emoji{font-size:1.05rem;line-height:1}
.chip em{font-style:normal;font-size:.76rem;font-weight:700;background:#fff;border:1px solid #cfe0d8;color:#0b5f49;border-radius:999px;padding:0 7px;margin-left:2px}
.card h3.card-h{display:flex}

/* location chips: a shamrock with the place, and the eircode on its own */
.bd-place{background:#f1f7f3;border-color:#cfe3d8;color:#0b5f49}
.bd-place .ic{color:#0F7B5F}
.bd-eir{background:#fff;color:#4d5b55;letter-spacing:.04em}

.bd-cat{background:#eef3ff;border-color:#c9d8f5;color:#1f3f87;text-decoration:none}
.bd-cat:hover{background:#e2ebff}
.bd-emoji{font-size:1rem;line-height:1}

/* FindPro buttons use FindPro's own colours (burnt orange), so visitors can see they lead to a different site */
.btn.fp-btn{background:#C2410C;border:1px solid #C2410C;color:#fff}
.btn.fp-btn:hover{background:#9A3412;border-color:#9A3412;color:#fff}
.fp-card{background:#FFF4EC;border-color:#FFE2CC}
.fp-btn-sm{padding:8px 16px}

.hours-tag{font-family:var(--font-body);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b756f;background:#f1f3f1;border:1px solid var(--line);border-radius:999px;padding:2px 8px;margin-left:6px;vertical-align:middle}

/* profile page: the blocks below the two columns sit close together instead of 56px apart */
.profile > .section{padding:26px 0 0 !important}
.profile > .section.explore{padding-bottom:6px !important}
.profile > .section h2{margin-top:0}
.partner-strip{padding:14px 0 0}
.site-footer{margin-top:28px}
.partner-strip + .site-footer,.pm-wrap + .site-footer{margin-top:22px}
@media (max-width:640px){
  .profile > .section{padding-top:18px !important}
  .site-footer{margin-top:20px;padding:28px 0 22px}
  .partner{padding:14px 16px}
  .partner-text{padding-right:0;min-width:0}
}
/* nothing may push a page wider than the screen */
html,body{max-width:100%}
body{overflow-x:clip}
video,iframe{max-width:100%}

/* add-a-business: owner or agency */
.role-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 8px}
.role-opt{display:flex!important;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:12px;padding:12px;cursor:pointer;background:#fff;margin:0!important}
.role-opt input{margin-top:3px;flex:none}
.role-opt span{display:flex;flex-direction:column;gap:2px;min-width:0}
.role-opt b{font-size:.95rem;color:var(--ink)}
.role-opt small{font-size:.8rem;color:var(--muted);line-height:1.35}
.role-opt:has(input:checked){border-color:var(--green);background:var(--green-50)}
@media (max-width:560px){.role-pick{grid-template-columns:1fr}}

/* owner dashboard: last-30-days results and the Premium nudge */
.own-results{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 16px}
.or-tile{display:flex;align-items:center;gap:12px;border-radius:14px;padding:14px 16px;border:1px solid transparent;color:var(--ink);text-decoration:none;min-width:0}
.or-tile b{font:700 1.7rem/1 var(--font-display)}
.or-tile small{color:inherit;opacity:.75;font-size:.76rem}
.or-tile > span:last-child{font-size:.84rem;line-height:1.25}
.or-ic{flex:none;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#fff}
.or-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.or-views{background:#e6f4ee;color:#0b5f49;border-color:#cfe6dc}
.or-enq{background:#fdeaf3;color:#a3155e;border-color:#f6cfe2}
.or-rev{background:#fff4d6;color:#8a5a00;border-color:#f3e0a6}
.or-lock{background:linear-gradient(120deg,#2a1c4e,#4b2e83);color:#fff;border-color:transparent;position:relative}
.or-lock .or-ic{background:rgba(255,255,255,.16);color:#ffd45a}
.or-lock .or-t{font:700 1rem/1.2 var(--font-body)}
.or-lock small{display:block;opacity:.8}
.or-lock em{margin-left:auto;font-style:normal;font-weight:800;font-size:.8rem;color:#ffd45a;white-space:nowrap}
.or-lock:hover{filter:brightness(1.08)}
@media (max-width:900px){.own-results{grid-template-columns:1fr 1fr}.or-lock{grid-column:1 / -1}}
.up-kicker{display:inline-flex;align-items:center;gap:7px;color:#ffd45a!important}
.up-kicker svg{width:16px;height:16px;fill:#ffd45a;stroke:#ffd45a;stroke-width:1}
.up-grid{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.up-grid li{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:9px 10px;min-width:0}
.up-grid li span:last-child{display:flex;flex-direction:column;min-width:0}
.up-grid b{color:#fff;font-size:.9rem;line-height:1.2}
.up-grid small{color:#c4e6d8;font-size:.74rem;line-height:1.25}
.ug-ic{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center}
.ug-ic svg{width:19px;height:19px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ug-gold{background:#e8a317}.ug-green{background:#25a566}.ug-orange{background:#e8590c}.ug-violet{background:#7c4dcc}.ug-teal{background:#0f9aa8}.ug-pink{background:#d6336c}
.up-btn{background:#ffd45a!important;color:#3a2600!important;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.up-btn:hover{background:#ffe08a!important}
@media (max-width:760px){.up-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.up-grid{grid-template-columns:1fr}}
.pp-crown{width:16px;height:16px;fill:#e8a317;stroke:#e8a317;stroke-width:1;vertical-align:-2px;margin-right:6px}
.pp-name em{background:#ffd45a;color:#3a2600}
.lock-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:linear-gradient(120deg,#fff8e1,#fff2c4);border:1px solid #f0d99a;border-radius:14px;padding:14px 16px}
.lock-card > div{flex:1;min-width:200px}
.lock-card b{color:#5c3b00}
.lock-card p{margin:2px 0 0;font-size:.86rem;color:#7a5a1a}
.lk-ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#e8a317}
.lk-ic svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.btn-gold{background:#e8a317;color:#2a1c00!important;border-color:#e8a317;font-weight:700}
.btn-gold:hover{background:#f2b53a}

/* owner dashboard: side cards stack tightly beside the form (no empty gaps) */
@media (min-width:901px){
  .own-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);grid-template-rows:repeat(6,min-content) 1fr;gap:16px 24px}
  .own-grid > *{grid-column:1}
  .own-grid > .own-form{grid-column:2;grid-row:1 / -1}
}

/* crawlable lists: all businesses of a category, more businesses on a listing, towns of a county */
.biz-links{list-style:none;margin:0;padding:0;columns:3 240px;column-gap:28px}
.biz-links li{break-inside:avoid;display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:.93rem}
.biz-links li span{color:var(--muted);font-size:.82rem;white-space:nowrap}
.pager{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;align-items:center}
.pager a,.pager b{min-width:36px;text-align:center;padding:6px 10px;border:1px solid var(--line);border-radius:9px;font-size:.9rem;background:#fff}
.pager b{background:var(--green);border-color:var(--green);color:#fff}
.more-biz{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}
.more-biz a{display:flex;flex-direction:column;gap:1px;padding:8px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.more-biz b{font-size:.95rem}.more-biz span{font-size:.8rem;color:var(--muted)}
@media (max-width:640px){.more-biz{grid-template-columns:1fr}}
.town-links{list-style:none;margin:0;padding:0;columns:4 180px;column-gap:24px}
.town-links li{break-inside:avoid;padding:5px 0}
.town-links em{font-style:normal;color:var(--muted);font-size:.8rem}

/* the badge offer on the owner dashboard */
.badge-promo{background:linear-gradient(120deg,#effaf5,#fff6dc);border:1.5px solid #bfe3d3}
.badge-card summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.badge-card summary:before{display:none}
.bp-ic{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#0F7B5F}
.bp-ic svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bp-t{display:flex;flex-direction:column;min-width:0;flex:1}
.bp-t b{font-size:1.02rem}.bp-t small{color:var(--muted);font-size:.84rem;line-height:1.3}
.bp-pill{background:#ffd45a;color:#3a2600;font-weight:800;font-size:.78rem;border-radius:999px;padding:4px 11px;white-space:nowrap}
.bp-steps{margin:14px 0 0;padding-left:20px;font-size:.9rem;color:var(--ink);line-height:1.5}

/* owner dashboard: one offer, one next step */
.score-more{margin-top:8px}.score-more summary{cursor:pointer;color:var(--green);font-weight:600;font-size:.88rem}
.own-boost{margin:0 0 16px;background:linear-gradient(120deg,#fff9e6,#fff3c9);border:1.5px solid #f0d99a}
.ob-head{display:flex;gap:12px;align-items:center}
.ob-head h2{margin:0;font-size:1.2rem}
.ob-ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#e8a317}
.ob-ic svg{width:22px;height:22px;fill:#fff;stroke:#fff;stroke-width:1}
.ob-form{margin-top:12px}
.ob-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.ob-l{flex:0 0 64px;font-weight:700;font-size:.88rem;color:#5c3b00}
.ob-opt{display:inline-flex!important;margin:0!important;gap:7px;align-items:center;border:1.5px solid #ecd9a0;background:#fff;border-radius:10px;padding:8px 12px;cursor:pointer;font-size:.92rem}
.ob-opt input{margin:0}
.ob-opt:has(input:checked){border-color:#e8a317;background:#fff8e1;box-shadow:0 0 0 2px rgba(232,163,23,.2)}
.ob-opt em{font-style:normal;font-size:.72rem;font-weight:800;background:#ffd45a;color:#3a2600;border-radius:6px;padding:1px 6px;margin-left:4px}
.ob-buy{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:12px}
.ob-price b{font:700 1.9rem/1 var(--font-display);margin-right:8px;color:#3a2600}
.ob-launch{margin:10px 0 0;background:#fff;border:1px dashed #e8a317;border-radius:10px;padding:8px 12px;font-size:.9rem}
.ob-foot{margin:12px 0 0}
.plans-fold summary{cursor:pointer;list-style:none}.plans-fold summary::-webkit-details-marker{display:none}
.plans-fold[open] summary{margin-bottom:12px}
@media (max-width:640px){.ob-l{flex-basis:100%}}
/* sponsored box on trade pages */
.sponsored{margin:0 0 18px;border:1.5px solid #f0d99a;background:#fffaf0;border-radius:14px;padding:12px 14px}
.sponsored-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a5a00}
.sponsored-h a{font-weight:600;text-transform:none;letter-spacing:0;color:#8a5a00}
.sp-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.sp-card{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;text-decoration:none;color:var(--ink);min-width:0}
.sp-card:hover{border-color:#e8a317}
.sp-logo{flex:none;width:44px;height:44px;border-radius:11px;background:var(--green-50,#e6f4ee);color:var(--green-700,#0b5f49);display:grid;place-items:center;font-weight:800;overflow:hidden}
.sp-logo img{width:100%;height:100%;object-fit:contain}
.sp-t{display:flex;flex-direction:column;min-width:0}.sp-t b{font-size:.96rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-t span{font-size:.8rem;color:var(--muted)}
.sp-ex{font-size:.66rem;font-weight:800;background:#ffd45a;color:#3a2600;border-radius:6px;padding:1px 6px;margin-left:6px;vertical-align:1px}

.skip-link{position:absolute;left:-9999px;top:8px;background:#0F7B5F;color:#fff;padding:8px 14px;border-radius:8px;z-index:100}
.skip-link:focus{left:8px}
main{display:block}
