/* ==========================================================================
   company.css — Company profile page (preview)
   Layered on top of style.css. Palette: brand #6865e7, ink #150d15,
   soft #f5f6fe, lilac #f1edfa, pastel #f4f2fb.
   ========================================================================== */

:root{
  --c-brand:#6865e7;
  --c-brand-dark:#524fd4;
  --c-ink:#150d15;
  --c-soft:#f5f6fe;
  --c-lilac:#f1edfa;
  --c-pastel:#f4f2fb;
  --c-line:#e6e3f2;
  --c-body:#5a5568;
  --c-muted:#8a86a0;
  --c-green:#1f9d55;
}

/* ---------- shared stars (SVG mask, font-independent) ---------- */
.stars{position:relative;display:inline-block;width:90px;height:16px;vertical-align:middle;
  --star:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M9 1.3l2.1 4.6 5 .5-3.8 3.4 1.1 5L9 12.7 4.6 14.8l1.1-5L1.9 6.4l5-.5z'/%3E%3C/svg%3E");
  background:#d7d3e6;
  -webkit-mask:var(--star) left center/18px 16px repeat-x;mask:var(--star) left center/18px 16px repeat-x}
.stars__fill{position:absolute;inset:0;width:0;background:#f5a623;
  -webkit-mask:var(--star) left center/18px 16px repeat-x;mask:var(--star) left center/18px 16px repeat-x}

/* ======================= HERO (photo montage over the page-hero shell) ===================== */
/* The montage itself (.company-hero, __media, __scrim, __montage, .chm-cell)
   now lives in style.css, shared with the category hero — ONE scrim for both,
   so a company profile and /catalogue/{category} always look the same. There
   used to be a duplicate here; company.css loads AFTER style.css on the
   profile, so the old copy silently overrode the shared one. Only the bits
   that exist purely on a company profile stay below. */

/* gradient fallback when the business has no photos (keeps the .page-hero gradient) */
.company-hero--gradient .company-hero__media{display:none}
.company-hero--gradient .company-hero__all{display:none}

/* preview-only note about the description limit — remove on the real Blade page */
.company-hero__hint{margin:8px 0 0;font-size:.78rem;color:rgba(255,255,255,.62);font-style:italic}

/* ======================= PHOTO GALLERY (below the hero, only when photos exist) ===================== */
.cgallery{padding:0 0 26px}
.cgallery__grid{display:grid;gap:8px}
/* Montage layouts by photo count (1-5). Only --5 existed, so 1-4 photos fell back
   to a single full-width column (stacked); these restore the grid. (2026-08-04) */
.cgallery__grid--1{grid-template-columns:1fr;grid-template-rows:340px}
.cgallery__grid--2{grid-template-columns:1fr 1fr;grid-template-rows:300px}
.cgallery__grid--3{grid-template-columns:2fr 1fr;grid-template-rows:146px 146px}
.cgallery__grid--3 .cgphoto--feature{grid-row:1 / span 2}
.cgallery__grid--4{grid-template-columns:2fr 1fr 1fr;grid-template-rows:146px 146px}
.cgallery__grid--4 .cgphoto--feature{grid-row:1 / span 2}
.cgallery__grid--4 .cgphoto:last-child{grid-column:2 / span 2}
/* feature photo left (2 rows tall) + 2x2 thumbnails right */
.cgallery__grid--5{grid-template-columns:2fr 1fr 1fr;grid-template-rows:150px 150px}
.cgallery__grid--5 .cgphoto--feature{grid-row:1 / span 2}
@media (max-width:640px){
  .cgallery__grid{grid-template-columns:1fr !important;grid-template-rows:none !important}
  .cgallery__grid .cgphoto{grid-column:auto !important;grid-row:auto !important;aspect-ratio:16/10}
  /* Show ONLY the feature photo; the rest live in the lightbox behind the pill */
  .cgallery__grid .cgphoto:not(.cgphoto--feature){display:none}
  .cgphoto .cgphoto__all--mobile{display:inline-flex;position:absolute;inset:auto 12px 12px auto;width:auto;
    z-index:2;background:rgba(21,13,21,.72);border-radius:999px;padding:9px 14px;font-size:.82rem;gap:6px;
    box-shadow:0 2px 10px rgba(0,0,0,.28)}
  .cgphoto .cgphoto__all--mobile:hover{background:rgba(21,13,21,.88)}
}
.cgphoto{position:relative;margin:0;overflow:hidden;border-radius:12px;background:var(--c-pastel)}
.cgphoto img{width:100%;height:100%;object-fit:cover;display:block}
/* "See all" overlay on the last thumbnail */
.cgphoto--more::after{content:"";position:absolute;inset:0;background:rgba(21,13,21,.5)}
.cgphoto__all{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;background:none;border:0;color:#fff;font:700 .9rem/1.2 inherit;cursor:pointer;text-align:center;padding:8px}
.cgphoto__all svg{width:18px;height:18px;fill:currentColor}
.cgphoto__all:hover{background:rgba(21,13,21,.15)}
/* Mobile-only "See all N photos" pill on the feature photo (hidden on desktop) */
.cgphoto__all--mobile{display:none}
/* clickable photos open the lightbox */
.cgphoto--zoom img{cursor:zoom-in;transition:transform .25s ease}
.cgphoto--zoom:hover img{transform:scale(1.04)}
.cgphoto--zoom img:focus-visible{outline:3px solid var(--c-brand,#6865e7);outline-offset:-3px}

/* ======================= LIGHTBOX ======================= */
.clightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
  background:rgba(12,8,14,.92);padding:24px;animation:clb-fade .18s ease}
.clightbox[hidden]{display:none}
@keyframes clb-fade{from{opacity:0}to{opacity:1}}
.clightbox__stage{margin:0;max-width:100%;max-height:100%;display:flex;align-items:center;justify-content:center}
.clightbox__stage img{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:8px;
  box-shadow:0 20px 60px rgba(0,0,0,.5);background:#150d15}
/* Solid dark circle + subtle ring so the controls stay visible over BRIGHT photo
   areas too (a translucent-white button vanished against a white window). */
.clightbox__btn{position:absolute;display:flex;align-items:center;justify-content:center;
  border:0;background:rgba(21,13,21,.62);color:#fff;cursor:pointer;border-radius:50%;
  width:48px;height:48px;box-shadow:0 2px 12px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.35);
  transition:background .15s ease,transform .15s ease}
.clightbox__btn:hover{background:rgba(21,13,21,.85);transform:scale(1.06)}
.clightbox__nav:hover{transform:translateY(-50%) scale(1.06)}
.clightbox__btn svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.clightbox__close{top:18px;right:18px}
.clightbox__nav{top:50%;transform:translateY(-50%)}
.clightbox__nav--prev{left:18px}
.clightbox__nav--next{right:18px}
.clightbox__count{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);
  color:#fff;font:600 .85rem/1 inherit;background:rgba(0,0,0,.4);padding:6px 12px;border-radius:8px}
@media (max-width:560px){
  .clightbox__btn{width:44px;height:44px}
  .clightbox__btn svg{width:22px;height:22px}
  .clightbox__nav--prev{left:10px}
  .clightbox__nav--next{right:10px}
  .clightbox__close{top:10px;right:10px}
}

/* ======================= MAIN LAYOUT ===================== */
.company-wrap{background:#fff;padding:30px 0 60px}
/* Four grid items: main content + reviews (left column), contacts + similar (right).
   Splitting them out lets the mobile order interleave the two columns. */
.company-grid{display:grid;grid-template-columns:1fr 340px;gap:40px 40px;align-items:start}
.company-main{min-width:0;grid-column:1;grid-row:1}
.company-reviews{min-width:0;grid-column:1;grid-row:2;padding-top:0}
.company-side{display:flex;flex-direction:column;gap:18px;grid-column:2}
.company-side--contacts{grid-row:1}
.company-side--similar{grid-row:2}

/* generic content block */
.cblock{padding:26px 0;border-top:1px solid var(--c-line)}
.cblock:first-child{border-top:0}
.cblock__title{font-size:1.35rem;font-weight:800;color:var(--c-ink);margin:0 0 .6em}
.cblock__lead{color:var(--c-muted);margin:-.4em 0 1.1em;font-size:.95rem}
.company-main p,.company-reviews p{color:var(--c-body);line-height:1.7}

/* ======================= STATUS BLOCK ===================== */
.cstatus{background:var(--c-soft);border:1px solid var(--c-line);border-radius:8px;
  padding:22px;margin-bottom:8px}
/* Native collapsible accordion at all widths (same as the promo / FAQ blocks).
   Open by default via the [open] attribute; the summary toggles, chevron rotates. */
.cstatus__summary{display:flex;align-items:center;justify-content:space-between;gap:14px;
  list-style:none;cursor:pointer}
.cstatus__summary::-webkit-details-marker{display:none}
.cstatus__chevron{display:flex;align-items:center;justify-content:center;flex:none;
  width:30px;height:30px;border-radius:8px;transition:transform .25s,background .18s}
.cstatus__chevron svg{width:20px;height:20px;fill:var(--c-brand)}
.cstatus__summary:hover .cstatus__chevron{background:rgba(104,101,231,.12)}
.cstatus[open] .cstatus__chevron{transform:rotate(180deg)}
.cstatus__summary:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px;border-radius:8px}
.cstatus__flags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:0}
/* spacing before the cards goes on the cards (shown only when open) so the
   SUMMARY height never changes on toggle - otherwise the chevron jumps. */
.cstatus__cards{margin-top:16px}
.cflag{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:8px;
  font-weight:700;font-size:.86rem}
.cflag svg{width:16px;height:16px;fill:currentColor}
.cflag--claimed{background:#e7f7ee;color:#137a45}
.cflag--recognized{background:var(--c-lilac);color:var(--c-brand-dark)}
.cflag--unclaimed{background:#fbeaea;color:#b23b3b}

.cstatus__cards{display:grid;grid-template-columns:1fr;gap:14px}
.cstatus-card{background:#fff;border:1px solid var(--c-line);border-radius:8px;padding:16px 18px;
  display:flex;flex-direction:column;gap:4px}
.cstatus-card__label{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted)}
.cstatus-card__value{font-size:1.5rem;font-weight:800;color:var(--c-ink);letter-spacing:.01em}
.cstatus-card__meta{font-size:.84rem;color:var(--c-muted)}
.cstatus-card__link{margin-top:auto;font-weight:700;font-size:.85rem;color:var(--c-brand);text-decoration:none;padding-top:6px}
.cstatus-card__link:hover{color:var(--c-brand-dark)}

/* ---- Recognition Rating card: same visual language as the /ratings/ badges ---- */
.cstatus-card--rating{
  --tier:#6865e7; --tier-d:#524fd4; --tier-soft:#f1edfa;
  position:relative;overflow:hidden;gap:12px;
}
.cstatus-card--rating.tier-top   { --tier:#0f9d58; --tier-d:#0b7c45; --tier-soft:#e4f6ec; }
.cstatus-card--rating.tier-strong{ --tier:#2e7d32; --tier-d:#256428; --tier-soft:#e8f4e9; }
.cstatus-card--rating.tier-good  { --tier:#6865e7; --tier-d:#524fd4; --tier-soft:#f1edfa; }
.cstatus-card--rating.tier-fair  { --tier:#e0a400; --tier-d:#b98600; --tier-soft:#fdf4dc; }
.cstatus-card--rating.tier-weak  { --tier:#e8721f; --tier-d:#c65e15; --tier-soft:#fdeede; }
.cstatus-card--rating.tier-poor  { --tier:#d64545; --tier-d:#b53535; --tier-soft:#fbe6e6; }
.cstatus-card--rating::after{
  content:"";position:absolute;top:-40px;right:-40px;width:150px;height:150px;
  background:var(--tier-soft);border-radius:50%;opacity:.7;z-index:0;
}
.cstatus-card--rating > *{position:relative;z-index:1}

.cstatus-card__brandline{display:flex;align-items:center;gap:9px}
.cstatus-card__seal{
  width:30px;height:30px;border-radius:8px;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--tier,var(--c-brand));color:#fff;
}
.cstatus-card__seal svg{width:18px;height:18px;fill:currentColor}

.cstatus-card__ratingrow{display:flex;align-items:center;gap:14px}
/* Square for a short grade (A, B), but grows for wide ones ("AA+", "AAA") —
   a fixed width let the text spill outside the tinted background. */
.rating-seal{display:inline-flex;align-items:center;justify-content:center;min-width:64px;height:64px;
  padding:0 10px;border-radius:8px;background:var(--tier-soft);flex:none}
.rating-seal__grade{font-size:2.1rem;font-weight:800;line-height:1;color:var(--tier);letter-spacing:-.02em;white-space:nowrap}
.cstatus-card__ratinginfo{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
.cstatus-card__tier{font-size:1.05rem;font-weight:700;color:var(--c-ink);line-height:1}
.cstatus-card__meter{height:8px;border-radius:999px;background:var(--c-line);overflow:hidden}
.cstatus-card__meter-fill{height:100%;border-radius:999px;background:var(--tier)}

.cstatus-card--rating--na{--tier:#c9c9c9;--tier-d:#a8a8a8;--tier-soft:#eee}
.cstatus-card--rating--na .rating-seal__grade{color:var(--c-muted)}

/* ======================= PROMO BANNERS ===================== */
.promo{border-radius:8px;margin:18px 0}
.promo--verify{background:linear-gradient(120deg,#f4f2fb,#eae6fb);border:1px solid var(--c-line)}
.promo--accredit{background:linear-gradient(120deg,#150d15,#2c2030);color:#fff}

/* ---- accordion header (collapsed by default) ---- */
.promo__summary{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 26px;cursor:pointer;list-style:none;border-radius:8px}
.promo__summary::-webkit-details-marker{display:none}
.promo__summary-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.promo__chevron{flex:none;display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:8px;transition:background .18s,transform .25s}
.promo__chevron svg{width:20px;height:20px;fill:var(--c-brand)}
.promo--accredit .promo__chevron svg{fill:#b9a7ff}
.promo__summary:hover .promo__chevron{background:rgba(104,101,231,.12)}
.promo--accredit .promo__summary:hover .promo__chevron{background:rgba(255,255,255,.12)}
.promo[open] .promo__chevron{transform:rotate(180deg)}
.promo__summary:focus-visible{outline:2px solid var(--c-brand);outline-offset:-2px}

/* body: only the padding below the header, since the summary owns the top */
.promo__body{padding:0 26px 24px}

.promo__eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--c-brand)}
.promo--accredit .promo__eyebrow{color:#b9a7ff}
.promo__title{font-size:1.5rem;font-weight:800;color:inherit;line-height:1.2}
.promo--verify .promo__title{color:var(--c-ink)}
.promo__text{margin:0 0 14px;opacity:.92}
.promo--verify .promo__text{color:var(--c-body)}
.promo__perks{list-style:none;padding:0;margin:0 0 18px;display:grid;grid-template-columns:1fr 1fr;gap:8px 22px}
.promo__perks li{position:relative;padding-left:24px;font-size:.92rem}
.promo__perks li::before{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;
  background:var(--c-brand);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/14px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/14px no-repeat}
.promo--accredit .promo__perks li::before{background:#b9a7ff}

/* ---- Rating source inside the promo banners ---- */
.promo-rating{display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  border-radius:8px;padding:14px 16px;margin:0 0 12px}
.promo--verify .promo-rating{background:rgba(255,255,255,.6);border:1px solid var(--c-line)}
.promo--accredit .promo-rating{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14)}
.promo-rating__now,.promo-rating__next{display:flex;flex-direction:column;gap:6px;min-width:0}
.promo-rating__next{flex:none}
.promo-rating__label{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--c-muted)}
.promo--accredit .promo-rating__label{color:#b9a7ff}
.promo-rating__value{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.promo-rating__num{font-size:1.5rem;font-weight:800;line-height:1;color:var(--c-ink)}
.promo--accredit .promo-rating__num{color:#fff}
.promo-rating__meta{font-size:.82rem;color:var(--c-muted)}
.promo--accredit .promo-rating__meta{color:rgba(255,255,255,.72)}
.promo-rating__grade{display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:8px;background:#e8f4e9;color:#2e7d32;
  font-size:1.35rem;font-weight:800;line-height:1;letter-spacing:-.02em}
.promo-rating__arrow{flex:none;color:var(--c-muted);display:flex;align-items:center}
.promo--accredit .promo-rating__arrow{color:rgba(255,255,255,.45)}
.promo-rating__arrow svg{width:22px;height:22px;fill:currentColor}
.promo-rating__note{margin:0;font-size:.85rem;line-height:1.5;color:var(--c-muted);flex:1;min-width:200px}
.promo--accredit .promo-rating__note{color:rgba(255,255,255,.72)}
.promo-rating__note--wide{margin:0 0 18px}
/* empty stars are near-invisible on the dark banner */
.promo--accredit .promo-rating .stars{background:rgba(255,255,255,.24)}

/* ======================= ABOUT (logo + text) ===================== */
.cabout{display:flex;gap:20px;align-items:flex-start}
.cabout__logo{flex:0 0 96px}
.cabout__logo img{width:96px;height:96px;object-fit:cover;border-radius:16px}
.cabout__body{min-width:0}
.cabout__body .cblock__title{margin-top:0}

/* ======================= TAGS ===================== */
.ctags{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.ctag{display:inline-flex;align-items:center;gap:8px;background:var(--c-lilac);color:var(--c-brand-dark);
  font-weight:700;font-size:.88rem;padding:8px 14px;border-radius:8px;
  text-decoration:none;border:1px solid transparent;
  transition:background .18s,border-color .18s,color .18s,transform .18s}
.ctag:hover{background:#fff;border-color:var(--c-brand);color:var(--c-brand);transform:translateY(-1px)}
.ctag:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px}
.ctag__ic{display:inline-flex;width:18px;height:18px}
.ctag__ic svg{width:18px;height:18px;fill:currentColor}
/* Branded tag line icons render with fill="none" + a stroke; colour via stroke. */
.ctag__ic svg[fill="none"]{fill:none;stroke:currentColor;stroke-width:1.75}

/* Geo link-farm ("Explore {city}") — reuses .ctags/.ctag chips; just the labels. */
.clinks__sub{margin:1.2rem 0 .55rem;font-size:.72rem;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--c-brand)}
.clinks__sub:first-of-type{margin-top:0}

/* Amenity filter-links: keep the amenity look, hint interactivity on hover. */
.camen__link{color:inherit;text-decoration:none}
.camen__link:hover{color:var(--c-brand);text-decoration:underline}

/* Sidebar card headings — icon + label, uniform across every card. */
.cside-card__title{display:flex;align-items:center;gap:8px}
.cside-card__ic{display:inline-flex;width:20px;height:20px;color:var(--c-brand);flex:none}
.cside-card__ic svg{width:20px;height:20px}

/* {City} Listings card — a small tree: city node -> category branch -> nearby. */
.clistings{margin-top:.15rem}
.clistings__city{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--c-brand-dark);text-decoration:none;font-size:.95rem}
.clistings__city:hover{color:var(--c-brand)}
.clistings__ic{display:inline-flex;width:20px;height:20px;color:var(--c-brand);flex:none}
.clistings__ic svg{width:20px;height:20px}
.clistings__branch{margin:.5rem 0 0 9px;padding:.55rem 0 .1rem 18px;border-left:2px solid #e0def3;display:flex;gap:10px;align-items:flex-start}
.clistings__ic--cat{width:22px;height:22px;margin-top:1px}
.clistings__ic--cat svg{width:22px;height:22px}
.clistings__catlinks{display:flex;flex-direction:column;gap:.4rem;padding-top:1px}
.clistings__catlinks a{color:var(--c-brand);text-decoration:none;font-weight:600;font-size:.9rem;line-height:1.3}
.clistings__catlinks a:hover{text-decoration:underline}
.clistings__nearby{margin-top:.8rem;padding-top:.65rem;border-top:1px dashed #e7e6f5;font-size:.8rem;line-height:1.7}
.clistings__nearby-lbl{display:block;text-transform:uppercase;letter-spacing:.05em;font-size:.66rem;font-weight:700;color:#b3b2c2;margin-bottom:.25rem}
.clistings__nearby a{color:#8a89a0;text-decoration:none}
.clistings__nearby a:hover{color:var(--c-brand);text-decoration:underline}

/* Popular searches card — styled like search-autocomplete suggestions. */
.csearch{list-style:none;margin:.15rem 0 0;padding:0}
.csearch__row{display:flex;align-items:center;gap:9px;padding:.5rem;margin:0 -.4rem;border-radius:9px;text-decoration:none;color:var(--c-brand-dark);font-size:.9rem;transition:background .14s}
.csearch__row:hover{background:var(--c-lilac)}
.csearch__ic{display:inline-flex;width:15px;height:15px;color:#a6a5b8;flex:none}
.csearch__ic svg{width:15px;height:15px}
.csearch__q{flex:1;font-weight:600;line-height:1.3}
.csearch__go{display:inline-flex;width:14px;height:14px;color:var(--c-brand);flex:none;opacity:0;transform:translateX(-3px);transition:opacity .14s,transform .14s}
.csearch__go svg{width:14px;height:14px}
.csearch__row:hover .csearch__go{opacity:1;transform:none}

/* Cost guide sidebar card. */
.cside-cost{background:linear-gradient(180deg,var(--c-lilac),#fff);border:1px solid #e7e6f5}
.cside-cost__item+.cside-cost__item{margin-top:.85rem;padding-top:.85rem;border-top:1px solid #e7e6f5}
.cside-cost__price{margin:.4rem 0 .6rem;font-size:.92rem;color:var(--c-brand-dark)}
.cside-cost__price strong{color:#150d15;font-weight:800}
.cside-cost__link{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.9rem;color:var(--c-brand);text-decoration:none}
.cside-cost__link:hover{text-decoration:underline}

/* About: sanitised rich text (bold/italic/underline/lists). */
.cabout__rte p{margin:0 0 .8em}
.cabout__rte ul,.cabout__rte ol{margin:.4em 0 .9em;padding-left:1.5em}
.cabout__rte ul{list-style:disc}
.cabout__rte ol{list-style:decimal}
.cabout__rte li{margin:.25em 0}
.cabout__rte h3{font-size:1.12rem;font-weight:800;margin:1.1em 0 .35em;color:var(--c-ink)}
.cabout__rte h3:first-child{margin-top:0}
.cabout__rte blockquote{margin:.9em 0;padding:.4em 0 .4em 1em;border-left:3px solid var(--c-brand);color:var(--c-muted);font-style:italic}
.cabout__rte > :last-child{margin-bottom:0}

/* ======================= HIGHLIGHTS ===================== */
.chighlights{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.chl{background:var(--c-pastel);border:1px solid var(--c-line);border-radius:8px;padding:18px;
  display:flex;flex-direction:column;align-items:center;text-align:center}
.chl__ic{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;
  background:#fff;border-radius:8px;margin-bottom:10px}
.chl__ic svg{width:22px;height:22px;fill:var(--c-brand)}
/* Lucide line icons (chosen in the wizard) come through with fill="none" and a
   stroke; colour them brand without touching the static previews' filled ones. */
.chl__ic svg[fill="none"]{fill:none;stroke:var(--c-brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.chl h3{font-size:1rem;font-weight:800;color:var(--c-ink);margin:0 0 .3em}
.chl p{font-size:.9rem;margin:0}

/* ======================= AMENITIES ===================== */
.camenities{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 24px}
.camen{display:flex;align-items:center;gap:10px;font-size:.94rem;color:var(--c-ink)}
.camen__ic{position:relative;display:inline-flex;width:22px;height:22px;border-radius:8px;flex:0 0 22px;
  font-size:0}
.camen__ic::before{content:"";position:absolute;inset:0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;-webkit-mask-size:13px;mask-size:13px}
.camen--on .camen__ic{background:#e7f7ee}
.camen--on .camen__ic::before{background:#137a45;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E")}
.camen--off{color:var(--c-muted)}
.camen--off .camen__ic{background:#eeeef2}
.camen--off .camen__ic::before{background:var(--c-muted);
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='5' y='11' width='14' height='2'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='5' y='11' width='14' height='2'/%3E%3C/svg%3E")}

/* ======================= REVIEWS ===================== */
.creviews-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px}
.creviews-head .cblock__title{margin-bottom:0}
/* overall rating: full-width band under the heading */
.coverall{display:flex;align-items:center;gap:10px;background:var(--c-soft);border:1px solid var(--c-line);
  border-radius:8px;padding:12px 16px;width:100%;margin-top:14px}
.coverall__num{font-size:1.6rem;font-weight:800;color:var(--c-ink);line-height:1}
.coverall__count{font-size:.82rem;color:var(--c-muted);margin-left:auto}
/* Separate "Verified X.X (N)" trust stat - links to the verified-only filter. */
.coverall__verified{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;
  background:#e7f7ee;color:#137a45;font-weight:800;font-size:.85rem;text-decoration:none;
  border:1px solid #bfe6cf;white-space:nowrap}
.coverall__verified:hover{background:#d9f2e4}
.coverall__verified svg{width:15px;height:15px;flex:none}
.coverall__verified-n{font-weight:700;opacity:.85}

.creviews-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:18px 0 22px}
.cctl{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--c-body)}
/* pill to match the Sort by select next to it */
.cctl--check{cursor:pointer;padding:10px 16px;border:1.5px solid var(--c-line);border-radius:8px;
  background:#fff;font-weight:600;color:var(--c-ink);
  transition:border-color .18s,background .18s}
.cctl--check:hover{border-color:var(--c-brand);background:var(--c-lilac)}
.cctl--check:focus-within{border-color:var(--c-brand);box-shadow:0 0 0 4px rgba(106,101,231,.16)}
.cctl--check input{width:16px;height:16px;accent-color:var(--c-brand);cursor:pointer;margin:0}
/* Sort by: same white pill + hover as the "Verified reviews only" control next to it */
.creviews-controls .register-select__input{min-width:180px;border-radius:8px;
  background:#fff;border:1.5px solid var(--c-line);color:var(--c-ink);
  transition:border-color .18s,background .18s,box-shadow .18s}
.creviews-controls .register-select__input:hover{border-color:var(--c-brand);background:var(--c-lilac)}
.creviews-controls .register-select__input:focus-visible{border-color:var(--c-brand);
  box-shadow:0 0 0 4px rgba(106,101,231,.16)}

.creview-list{display:flex;flex-direction:column;gap:0}
.creview-empty{padding:22px 0;color:var(--c-muted);font-size:.92rem}
/* Reviews pagination: real <a> links (crawlable), styled to match the profile. */
.crev-pager{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:20px 0 2px;padding-top:18px;border-top:1px solid var(--c-line)}
.crev-pager__btn,.crev-pager__num{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;
  padding:0 12px;border:1px solid var(--c-line);border-radius:8px;background:#fff;color:var(--c-ink);
  font-weight:700;font-size:.88rem;text-decoration:none;transition:border-color .15s ease,background .15s ease,color .15s ease}
.crev-pager__num{padding:0 10px}
.crev-pager__btn:hover,.crev-pager__num:hover{border-color:var(--c-brand);color:var(--c-brand)}
.crev-pager__num.is-current{background:var(--c-brand,#6865e7);border-color:var(--c-brand,#6865e7);color:#fff}
.crev-pager__btn.is-disabled{color:var(--c-muted);background:var(--c-soft);border-color:var(--c-line);cursor:default;opacity:.65}
.cctl--apply{padding:0 16px;height:40px;border:0;border-radius:8px;background:var(--c-brand,#6865e7);color:#fff;font-weight:700;cursor:pointer}
.creview{display:flex;gap:14px;padding:18px 0;border-top:1px solid var(--c-line)}
.creview:first-child{border-top:0}
.creview__avatar{flex:0 0 48px}
.creview__avatar img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.creview__avatar-fallback{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;
  background:var(--c-lilac);color:var(--c-brand-dark);font-weight:800;font-size:1rem}
.creview__body{min-width:0;flex:1}
.creview__top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.creview__name{color:var(--c-ink);font-size:1rem}
.creview__meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 8px;font-size:.82rem;color:var(--c-muted)}
.creview__country{white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.ccountry-ic{width:13px;height:13px;fill:var(--c-muted);flex:0 0 13px}
.vbadge{font-size:.72rem;font-weight:800;letter-spacing:.03em;padding:2px 8px;border-radius:999px}
.vbadge--yes{background:#e7f7ee;color:#137a45}
.vbadge--no{background:#f0eef6;color:var(--c-muted)}
.creview__text{margin:0 0 8px;color:var(--c-body);line-height:1.6;font-size:.95rem}
.creview__photos{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.creview__photo{width:84px;height:84px;object-fit:cover;border-radius:8px;border:1px solid var(--c-line);
  cursor:zoom-in;transition:transform .12s ease,box-shadow .12s ease}
.creview__photo:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(21,13,21,.12)}
.creview__photo:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px}
.creview__actions{display:flex;gap:16px}
.creview__act{display:inline-flex;align-items:center;gap:5px;background:none;border:0;padding:0;color:var(--c-muted);font-size:.82rem;font-weight:600;cursor:pointer}
.creview__act svg{width:14px;height:14px;flex:none}
.creview__act:hover{color:var(--c-brand)}

/* Owner reply: the business's public response, set from the cabinet review
   manager. Visually distinct from the review - indented, brand-tinted card with
   a left accent, the company logo in place of the avatar and its name in place
   of the reviewer. */
.creview__reply{display:flex;gap:11px;margin-top:14px;padding:14px 16px;
  border:1px solid var(--c-line);
  border-left:3px solid var(--c-brand,#6865e7);border-radius:10px}
.creview__reply-avatar{flex:0 0 36px}
.creview__reply-avatar img{width:36px;height:36px;border-radius:8px;object-fit:contain}
.creview__reply-fallback{display:flex;align-items:center;justify-content:center;width:36px;height:36px;
  border-radius:8px;background:var(--c-brand,#6865e7);color:#fff;font-weight:800;font-size:.82rem}
.creview__reply-main{min-width:0;flex:1}
.creview__reply-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.creview__reply-name{color:var(--c-ink);font-size:.95rem;font-weight:800}
.creview__reply-badge{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;font-weight:800;
  letter-spacing:.02em;text-transform:uppercase;padding:2px 8px;border-radius:999px;
  background:var(--c-brand,#6865e7);color:#fff}
.creview__reply-badge svg{width:11px;height:11px}
.creview__reply-meta{margin:3px 0 6px;font-size:.78rem;color:var(--c-muted)}
.creview__reply-text{margin:0;color:var(--c-body);line-height:1.6;font-size:.92rem}

/* write a review */
.creview-form{margin-top:26px;background:var(--c-soft);border:1px solid var(--c-line);border-radius:8px;padding:22px}
.creview-form h3{margin:0 0 14px;font-size:1.1rem;font-weight:800;color:var(--c-ink)}
/* "Write a review" as a native <details> accordion. The label is a prominent
   brand chip so it reads as a call-to-action, not a plain heading. Collapsed the
   card is a slim CTA bar; open it holds the full form. */
/* Keep the summary FIXED across toggle: the top padding is the same open or
   closed (so the chip never jumps), only the bottom padding grows when open. */
.creview-acc{padding-top:15px;padding-bottom:15px}
.creview-acc[open]{padding-bottom:22px}
.creview-acc__summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}
.creview-acc__summary::-webkit-details-marker{display:none}
.creview-acc__summary:focus-visible{outline:2px solid var(--c-brand);outline-offset:3px;border-radius:8px}
.creview-acc__chip{display:inline-flex;align-items:center;gap:8px;background:var(--c-brand,#6865e7);color:#fff;
  font-weight:800;font-size:.95rem;padding:10px 16px;border-radius:8px;
  box-shadow:0 8px 20px rgba(104,101,231,.25);transition:background .15s ease,box-shadow .15s ease,transform .1s ease}
.creview-acc__chip svg{width:17px;height:17px}
.creview-acc__summary:hover .creview-acc__chip{background:#524fd4;box-shadow:0 10px 24px rgba(104,101,231,.32)}
.creview-acc__summary:active .creview-acc__chip{transform:translateY(1px)}
.creview-acc__chev{width:20px;height:20px;flex:none;color:var(--c-muted);transition:transform .2s ease}
.creview-acc[open] .creview-acc__chev{transform:rotate(180deg)}
.creview-acc__body{margin-top:18px}
.cform-row{margin-bottom:12px}
.cform-row--2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cform-row--submit{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:0}
.creview-form input,.creview-form textarea{width:100%;border:1px solid var(--c-line);border-radius:8px;
  padding:11px 13px;font:inherit;font-size:.95rem;background:#fff;color:var(--c-ink)}
.creview-form input:focus,.creview-form textarea:focus{outline:0;border-color:var(--c-brand)}
.cform-stars{direction:rtl;display:inline-flex;gap:4px}
/* Screen-reader-only text (star labels etc). Was undefined -> "1 star" leaked
   visibly next to the widget. */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* The radio itself is the state holder, not shown — only the star labels are
   visible (was rendering as raw radio buttons next to the stars). */
.cform-star-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
/* Checked star + all to its right (rtl) fill; keeps the pre-submit selection. */
.cform-star-input:checked ~ .cform-star{background:#f5a623}
.cform-star{width:30px;height:30px;border:0;padding:0;background:#d7d3e6;cursor:pointer;transition:background .1s;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M9 1.3l2.1 4.6 5 .5-3.8 3.4 1.1 5L9 12.7 4.6 14.8l1.1-5L1.9 6.4l5-.5z'/%3E%3C/svg%3E") center/28px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M9 1.3l2.1 4.6 5 .5-3.8 3.4 1.1 5L9 12.7 4.6 14.8l1.1-5L1.9 6.4l5-.5z'/%3E%3C/svg%3E") center/28px no-repeat}
.cform-star:hover,.cform-star:hover ~ .cform-star{background:#f5a623}
.cform-captcha{font-size:.9rem;color:var(--c-body);display:inline-flex;align-items:center;gap:8px}
.cform-captcha input{display:inline-block;width:64px}

/* Sign-in panel: shown inside the "Write a review" accordion for guests.
   Reviews now require a confirmed account (social or emailed magic-link). */
.creview-signin__lead{margin:0 0 14px;font-size:1.05rem;font-weight:800;color:var(--c-ink)}
.creview-signin__providers{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:560px){.creview-signin__providers{grid-template-columns:1fr}}
.btn-social{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:11px 16px;border-radius:8px;font-weight:800;font-size:.92rem;text-decoration:none;
  border:1px solid var(--c-line);background:#fff;color:var(--c-ink);transition:background .15s,border-color .15s,box-shadow .15s}
.btn-social:hover{background:var(--c-soft);box-shadow:0 4px 14px rgba(21,13,21,.06)}
.btn-social svg{flex:none}
.creview-signin__or{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--c-muted);font-size:.82rem}
.creview-signin__or::before,.creview-signin__or::after{content:"";height:1px;flex:1;background:var(--c-line)}
.creview-signin__email .cform-row input[type=email]{width:100%;border:1px solid var(--c-line);border-radius:8px;
  padding:11px 13px;font:inherit;font-size:.95rem;background:#fff;color:var(--c-ink)}
.creview-signin__email input[type=email]:focus{outline:0;border-color:var(--c-brand)}
.creview-signin__fine{margin:12px 0 0;font-size:.8rem;color:var(--c-muted)}
.cform-hint{display:block;margin:0 0 12px;font-size:.82rem;color:var(--c-muted)}

/* Review photo upload (premium perk) inside the review form. */
.cform-photos__lbl{display:block;font-weight:700;font-size:.9rem;color:var(--c-ink);margin-bottom:8px}
.cform-photos__lbl span{font-weight:600;color:var(--c-muted)}
.cform-photos__current{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.cform-photos__current img{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--c-line)}
/* One-line "Remove my photos" toggle. The generic .creview-form input rule
   (width:100% + padding) would otherwise inflate the checkbox into a full-width
   box and wrap the label across three lines - reset it to a native tick. */
.cform-photos__remove{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:var(--c-body);margin:2px 0 8px;white-space:nowrap;cursor:pointer}
.cform-photos__remove input[type=checkbox]{flex:none;width:16px;height:16px;margin:0;padding:0;border:0;background:none;box-shadow:none;accent-color:var(--c-brand,#6865e7)}
.cform-photos input[type=file]{font-size:.9rem;color:var(--c-body)}

/* Verify-your-review panel (premium listings): earns the Verified badge. */
.creview-verify{margin-top:18px;margin-bottom:18px;padding:16px 18px;border:1px solid var(--c-line);
  border-radius:10px;background:var(--c-lilac,#f1edfa)}
.creview-verify__head{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--c-ink);font-size:1rem}
.creview-verify__head svg{width:18px;height:18px;color:var(--c-brand,#6865e7);flex:none}
.creview-verify__free{font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  padding:2px 8px;border-radius:999px;background:#137a45;color:#fff}
.creview-verify__lead{margin:8px 0 12px;font-size:.88rem;color:var(--c-body);line-height:1.55}
.creview-verify__row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.creview-verify__row input{flex:1;min-width:180px;border:1px solid var(--c-line);border-radius:8px;
  padding:11px 13px;font:inherit;font-size:.95rem;background:#fff;color:var(--c-ink)}
.creview-verify__row input:focus{outline:0;border-color:var(--c-brand)}
.creview-verify__row .btn{white-space:nowrap}
.creview-verify__alt{margin-top:10px}
.creview-verify__alt summary{cursor:pointer;font-size:.82rem;font-weight:700;color:var(--c-brand);list-style:none}
.creview-verify__alt summary::-webkit-details-marker{display:none}
.creview-verify__alt .creview-verify__row{margin-top:10px}
.creview-verify--done{display:flex;align-items:center;gap:8px;font-weight:800;color:#137a45;
  background:#e7f7ee;border-color:#bfe6cf}
.creview-verify--done svg{width:18px;height:18px;flex:none}
.creview-verify__num{font-weight:700;color:#0f5c34}

/* ======================= SIMILAR (compact rows in the sidebar) ===================== */
.csim-list{display:flex;flex-direction:column;gap:4px}
.csim-row{--tier:#6865e7;--tier-soft:#f1edfa;
  display:flex;align-items:center;gap:11px;padding:10px;border-radius:8px;
  text-decoration:none;border:1px solid transparent;transition:background .15s,border-color .15s}
.csim-row:hover{background:var(--c-soft);border-color:var(--c-line)}
.csim-row__img{flex:none;width:46px;height:46px;border-radius:10px;overflow:hidden}
.csim-row__img img{width:100%;height:100%;object-fit:cover;display:block}
.csim-row__body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.csim-row__name{font-size:.92rem;font-weight:800;color:var(--c-ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.csim-row__meta{font-size:.76rem;color:var(--c-muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.csim-row__rate{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;color:var(--c-ink)}
.csim-row__rate .stars{width:66px;height:12px;-webkit-mask-size:13px 12px;mask-size:13px 12px}
.csim-row__rate .stars__fill{-webkit-mask-size:13px 12px;mask-size:13px 12px}
.csim-row__grade{flex:none;display:inline-flex;align-items:center;justify-content:center;
  min-width:32px;height:32px;padding:0 7px;border-radius:8px;font-weight:800;font-size:.82rem;
  background:var(--tier-soft);color:var(--tier)}
.csim-row__grade--na{background:#eee;color:var(--c-muted)}

/* ======================= SIDEBAR CARDS ===================== */
.cside-card{background:#fff;border:1px solid var(--c-line);border-radius:8px;padding:20px}
.cside-card__title{margin:0 0 14px;font-size:1.05rem;font-weight:800;color:var(--c-ink)}
.ccontacts{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.ccontacts li{display:flex;gap:11px;align-items:center;font-size:.92rem;color:var(--c-body)}
.ccontacts a{color:var(--c-body);text-decoration:none}
.ccontacts a:hover{color:var(--c-brand)}
.ccontacts__ic{flex:0 0 20px;display:inline-flex}
.ccontacts__ic svg{width:20px;height:20px;fill:var(--c-brand)}
.cmap{margin-top:16px}
.cmap__placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  height:150px;border-radius:8px;background:var(--c-pastel);border:1px dashed var(--c-line);color:var(--c-muted);font-size:.85rem;font-weight:600}
.cmap__placeholder svg{width:26px;height:26px;fill:var(--c-muted)}
/* Live Leaflet map — rounded to match the card system. Leaflet uses high
   z-indexes internally; keep the container itself modest so it never covers
   the sticky header. */
.wh-map{border-radius:8px;overflow:hidden;border:1px solid var(--c-line);z-index:0}
.wh-map .leaflet-control-attribution{font-size:10px}
/* The global `img{max-width:100%;height:auto}` reset breaks Leaflet's marker
   and tile images (they need their exact pixel sizes). Opt them out. */
.leaflet-container img{max-width:none!important;height:auto}
.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{max-width:none!important}
.leaflet-marker-icon{display:block}

.btn-block{display:block;width:100%;text-align:center}
.btn-outline{background:#fff;border:1.5px solid var(--c-brand);color:var(--c-brand)}
.btn-outline:hover{background:var(--c-lilac)}

/* ======================= RESPONSIVE ===================== */
@media (max-width:960px){
  /* single column. align-items:stretch is required: the desktop rule sets
     align-items:start, which in a flex column shrinks children to content width. */
  /* gap spaces every stacked block evenly - no per-item margins needed */
  .company-grid{display:flex;flex-direction:column;align-items:stretch;gap:26px}
  .company-main,.company-reviews,.company-side{grid-column:auto;grid-row:auto;width:100%}
  /* content -> contacts -> reviews -> similar (CTA band lives outside this grid) */
  .company-main{order:1}
  .company-side--contacts{order:2}
  .company-reviews{order:3}
  .company-side--similar{order:4}
  /* Drop the border: the contacts card above already reads as a separator.
     Keep a padding-top so the "Reviews" heading is not flush against that card. */
  .company-grid .company-reviews{padding-top:6px;border-top:0}
  .chighlights{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .company-hero{padding-top:120px;padding-bottom:100px}
  .company-hero__inner{max-width:100%}
  .company-hero__title{font-size:1.7rem;line-height:1.1;margin-top:.5em}
  .company-hero__text{font-size:.96rem}
  /* Phone: keep the feature photo (style.css collapses the 5-cell grid to it),
     same as a category hero — a single shot reads better than a bare gradient.
     The "see all photos" button still goes: there's no room for it. */
  .company-hero__all{display:none}
  /* shrink the wave CONTAINER, not just the svg inside it - otherwise the
     leftover container height shows a cut-off strip of the hero background */
  .company-hero .hero__wave{height:60px}
  /* the "more" cell is ~1/4 of the screen: stack the icon over the label
     so the text is not squeezed to one word per line */
  .cgphoto__all{flex-direction:column;gap:4px;font-size:.76rem;line-height:1.25;padding:6px 4px}
  .cgphoto__all svg{width:22px;height:22px}

  /* status block: mobile layout tweaks only (accordion mechanics are global now) */
  .cstatus{padding:16px}
  .cstatus__summary{align-items:flex-start}
  .cstatus__cards,.promo__perks,.camenities,.cform-row--2{grid-template-columns:1fr}
  .chighlights{grid-template-columns:1fr}
  .promo-rating{flex-direction:column;align-items:flex-start;gap:12px}
  .promo-rating__arrow{transform:rotate(90deg)}
  .promo .btn-cta{display:block;text-align:center}
  .cabout{flex-direction:column}
  .creviews-head{align-items:flex-start}
  /* Sort by + Verified reviews only stay on one line, sharing the width */
  .creviews-controls{flex-wrap:nowrap;gap:8px}
  .creviews-controls .register-select{flex:1 1 0;min-width:0}
  .creviews-controls .register-select__input{width:100%;min-width:0;
    padding-left:12px;padding-right:32px;font-size:.82rem}
  .creviews-controls .register-select__chevron{right:9px}
  .cctl--check{flex:0 1 auto;min-width:0;padding:10px 12px;gap:6px;font-size:.82rem}
  .cctl--check span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* rating summary: let it wrap - it is display:flex with NO wrap, so the
     order/width rules below never actually stacked anything (client mobile
     pass 2026-09-20: "4.2 / Based on / Verified" was crushed side by side) */
  .coverall{flex-wrap:wrap;row-gap:9px}
  .coverall__count{width:100%;margin-left:0;order:3}
  .coverall__verified{order:4}

  /* recognition strip: row 1 = logo + state pill, row 2 = the two text lines
     full-width (was one cramped flex line) */
  .rec-block__summary{flex-wrap:wrap;row-gap:10px;position:relative}
  .rec-block__head-txt{flex:1 1 100%;order:3}
  .rec-block__pill{margin-left:auto;margin-right:34px}
  .rec-block__chevron{position:absolute;right:14px;top:21px}
}

/* ==========================================================================
   Professional profile — additions (contacts with verified ticks, service
   radius map, offer-work button, popup form). Classes are unique to the
   professional page; other pages ignore them.
   ========================================================================== */

/* Contact rows: label/value on the left, verified tick on the right */
.ccontacts--pro li{align-items:center;justify-content:space-between;gap:10px}
.ccontacts--pro .ccontacts__main{display:flex;gap:11px;align-items:center;min-width:0}
.ccontacts--pro .ccontacts__main a,
.ccontacts--pro .ccontacts__main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cverify{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;font-size:.7rem;font-weight:800;
  letter-spacing:.02em;padding:3px 8px 3px 6px;border-radius:999px}
.cverify--yes{background:#e7f7ee;color:#137a45}
.cverify--no{background:#f0eef6;color:var(--c-muted)}
/* Amber "not yet" state: a free phone-verified pro that has not taken the
   identity check. Calm amber, not an alarming red - reads as "room to grow". */
.cverify--pending{background:#fdf3df;color:#9a6a00}
.cverify svg{width:13px;height:13px;flex:0 0 13px}
.cverify--yes svg{fill:#137a45}
.cverify--no svg{fill:var(--c-muted)}
.cverify--pending svg{fill:#9a6a00}
/* Tooltip on the amber "Not verified" - hover (desktop) + tap/focus (mobile). */
.cverify--tip{position:relative;cursor:help;outline:none}
.cverify--tip:focus-visible{box-shadow:0 0 0 2px #9a6a0055}
.cverify__tip{position:absolute;bottom:calc(100% + 8px);right:0;width:240px;max-width:72vw;
  background:#150d15;color:#fff;font-weight:600;font-size:.72rem;line-height:1.45;letter-spacing:0;
  text-align:left;padding:9px 11px;border-radius:9px;opacity:0;visibility:hidden;transform:translateY(4px);
  transition:opacity .15s ease,transform .15s ease,visibility .15s;z-index:30;pointer-events:none;
  box-shadow:0 8px 24px rgba(0,0,0,.22)}
.cverify__tip::after{content:"";position:absolute;top:100%;right:16px;border:6px solid transparent;border-top-color:#150d15}
.cverify--tip:hover .cverify__tip,
.cverify--tip:focus .cverify__tip,
.cverify--tip:focus-within .cverify__tip{opacity:1;visibility:visible;transform:translateY(0)}

/* Service-radius map: static tinted map with a coverage circle + pin */
/* Now wraps a live Leaflet map + an absolute caption plate. No fixed height
   (the map sets it), just a positioning context. */
.cmap--radius{position:relative;border-radius:8px}
.cmap--radius .cmap-grid{position:absolute;inset:0;
  background-image:linear-gradient(var(--c-line) 1px,transparent 1px),
    linear-gradient(90deg,var(--c-line) 1px,transparent 1px);
  background-size:26px 26px;opacity:.5}
.cmap-circle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:150px;height:150px;border-radius:50%;
  background:rgba(104,101,231,.14);border:2px solid rgba(104,101,231,.5)}
.cmap-pin{position:absolute;top:50%;left:50%;transform:translate(-50%,-100%);z-index:2}
.cmap-pin svg{width:30px;height:30px;fill:var(--c-brand);filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}
/* Sits above the Leaflet map (which uses z-index up to ~700 for controls). */
/* Caption sits UNDER the map, not floating over it: coverage text like
   "Greater London, 25 miles (40 km) of London" is too long to fit inside the
   map without truncating, so it wraps onto as many lines as it needs. */
.cmap-caption{margin-top:8px;
  background:#fff;border:1px solid var(--c-line);border-radius:8px;
  padding:7px 12px;font-size:.78rem;font-weight:700;color:var(--c-ink);
  display:flex;align-items:flex-start;gap:7px;line-height:1.45;
  overflow-wrap:anywhere}
.cmap-caption svg{width:14px;height:14px;fill:var(--c-brand);flex:none;margin-top:2px}

/* Offer-work button spacing under contacts */
.cside-card__cta{margin-top:16px}

/* ---------- Popup form (offer work) ---------- */
.cmodal[hidden]{display:none}
.cmodal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.cmodal__backdrop{position:absolute;inset:0;background:rgba(21,13,21,.5)}
.cmodal__dialog{position:relative;z-index:1;width:100%;max-width:460px;background:#fff;
  border-radius:8px;padding:26px 26px 24px;box-shadow:0 24px 60px rgba(21,13,21,.28);
  max-height:calc(100vh - 40px);overflow:auto}
.cmodal__close{position:absolute;top:14px;right:14px;width:34px;height:34px;border:0;border-radius:50%;
  background:var(--c-lilac);color:var(--c-ink);font-size:1.2rem;line-height:1;cursor:pointer}
.cmodal__close:hover{background:#e6e1f5}
.cmodal__title{margin:0 0 4px;font-size:1.25rem;font-weight:800;color:var(--c-ink)}
.cmodal__sub{margin:0 0 18px;font-size:.9rem;color:var(--c-body)}
.cmodal__row{margin-bottom:12px}
.cmodal__row--2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cmodal input,.cmodal textarea{width:100%;border:1px solid var(--c-line);border-radius:8px;
  padding:11px 13px;font:inherit;font-size:.95rem;background:#fff;color:var(--c-ink)}
.cmodal input:focus,.cmodal textarea:focus{outline:0;border-color:var(--c-brand)}
@media (max-width:480px){.cmodal__row--2{grid-template-columns:1fr}}
/* Brand SVG pin (divIcon) — strip the default divIcon box. */
.wh-pin{background:none;border:0;}
.wh-pin svg{display:block;filter:drop-shadow(0 2px 3px rgba(21,13,21,.3));}

/* "Part of {brand}" badge in the listing hero (a branch links back to its hub) */
.hero-brandtag{
  display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;
  padding:6px 12px 6px 10px;border-radius:999px;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.34);
  color:#fff;font-size:.86rem;font-weight:600;text-decoration:none;
  backdrop-filter:blur(4px);transition:background-color .2s,border-color .2s;
}
.hero-brandtag:hover{background:rgba(255,255,255,.28);border-color:rgba(255,255,255,.55);}
.hero-brandtag svg{width:17px;height:17px;flex:none;opacity:.9;}
.hero-brandtag strong{font-weight:800;}
.hero-brandtag__rec{
  display:inline-flex;align-items:center;margin-left:2px;padding:2px 9px;border-radius:999px;
  background:linear-gradient(135deg,#6865e7,#a06bd6);color:#fff;font-size:.7rem;font-weight:800;
  letter-spacing:.02em;text-transform:uppercase;
}

/* ===== Brand hub + city locator ===== */
.bhub-hero{background:linear-gradient(135deg,#6f6be9 0%,#8f6fd6 55%,#c98bbf 100%);position:relative;padding-bottom:70px;}
.bhub-head{display:flex;gap:20px;align-items:flex-start;margin-top:6px;}
.bhub-head__logo{flex:none;width:74px;height:74px;border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 8px 24px rgba(30,20,80,.22);}
.bhub-head__logo img{width:100%;height:100%;object-fit:contain;padding:8px;}
.bhub-head__body{min-width:0;}
.bhub-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:14px;}
.bhub-meta__stat{color:#fff;font-size:.95rem;opacity:.92;}
.bhub-meta__stat strong{font-weight:800;font-size:1.05rem;}
.bhub-rec{display:inline-flex;align-items:center;gap:9px;padding:6px 14px 6px 8px;border-radius:999px;background:rgba(255,255,255,.94);color:#150d15;font-weight:700;font-size:.86rem;}
.bhub-rec__grade{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:26px;padding:0 7px;border-radius:8px;background:var(--tier-bg,#eef);color:var(--tier-ink,#333);font-weight:800;font-size:.82rem;}
.bhub-rec__ico{width:26px;height:26px;object-fit:contain;display:block;}
.bhub-wrap{padding:44px 0 72px;}
.bhub-title{font-size:1.5rem;font-weight:800;color:#150d15;margin:0 0 8px;}
.bhub-city{margin-top:28px;}
/* City accordions on the brand hub (big chains fold instead of sprawling) */
.bhub-cityacc{margin-top:12px;border:1px solid #e6e9f2;border-radius:14px;background:#fff;padding:0 18px;}
.bhub-cityacc summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;padding:15px 0;}
.bhub-cityacc summary::-webkit-details-marker{display:none;}
.bhub-cityacc__name{font-size:1.02rem;font-weight:800;color:#150d15;}
.bhub-cityacc__car{margin-left:auto;width:9px;height:9px;border-right:2px solid #656d80;border-bottom:2px solid #656d80;transform:rotate(45deg);transition:transform .16s;}
.bhub-cityacc[open] .bhub-cityacc__car{transform:rotate(225deg);}
.bhub-cityacc .bhub-grid{padding:2px 0 18px;}
.bhub-cityacc--more{background:#faf9ff;}
.bhub-cityacc--more .catx-subs{padding-bottom:18px;}
.bhub-explore-more{margin-top:12px;}
.bhub-explore-more summary{display:inline-flex;cursor:pointer;list-style:none;font-weight:800;font-size:.92rem;color:#6865e7;}
.bhub-explore-more summary::-webkit-details-marker{display:none;}
.bhub-explore-more summary:hover{text-decoration:underline;}
.bhub-city__name{font-size:1.05rem;font-weight:800;color:#150d15;margin:0 0 14px;display:flex;align-items:center;gap:10px;}
.bhub-city__count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;border-radius:999px;background:#efedfd;color:#4a47c4;font-size:.78rem;font-weight:800;}
.bhub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;}
.bhub-card{position:relative;display:flex;flex-direction:column;gap:5px;padding:16px 40px 16px 16px;border:1px solid var(--line);border-radius:8px;background:#fff;text-decoration:none;transition:border-color .18s,box-shadow .18s,transform .18s;}
.bhub-card:hover{border-color:var(--primary);box-shadow:0 10px 26px rgba(30,20,80,.10);transform:translateY(-1px);}
.bhub-card__label{font-weight:800;color:#150d15;}
.bhub-card__addr{font-size:.84rem;color:var(--muted,#67617f);}
.bhub-card__stars{color:#e0a13c;font-size:.85rem;letter-spacing:1px;margin-top:2px;}
.bhub-card__avg{color:var(--muted,#67617f);font-size:.8rem;margin-left:4px;letter-spacing:0;}
.bhub-card__go{position:absolute;right:15px;top:50%;transform:translateY(-50%);color:var(--primary);font-weight:800;font-size:1.1rem;}
.bhub-back{margin-top:30px;}
.bhub-back a{color:var(--primary);font-weight:700;text-decoration:none;}
.bhub-back a:hover{text-decoration:underline;}
@media (max-width:620px){.bhub-head{flex-direction:column;gap:14px;}.bhub-grid{grid-template-columns:1fr;}}

/* Opening hours (sidebar card; omitted entirely when no hours are set) */
.chours{list-style:none;margin:0;padding:0;}
.chours li{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px solid var(--line);font-size:.9rem;}
.chours li:last-child{border-bottom:0;}
.chours__day{color:#150d15;font-weight:700;}
.chours__time{color:var(--muted,#67617f);font-variant-numeric:tabular-nums;text-align:right;}

/* Brand hub / locator overview map */
.bhub-map{margin:0 0 8px;border:1px solid var(--line);border-radius:8px;overflow:hidden;}
.bhub-map .wh-map{width:100%;}

/* ---- Brand hero (2026-07-31): logo + stats + recognition badge sit INSIDE the
   shared .site-band, so crumbs/h1/padding/fill are identical to every other page.
   (Old .bhub-hero gradient markup retired.) ---- */
.bhub-band { display:flex; align-items:center; flex-wrap:wrap; gap:12px 18px; margin-top:16px; }
.bhub-band__logo { flex:none; width:52px; height:52px; border-radius:12px; background:#fff; border:1px solid #e9ebf3; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.bhub-band__logo img { width:100%; height:100%; object-fit:contain; padding:6px; }
.bhub-meta__stat { color:#150d15; font-size:.95rem; }
.bhub-meta__stat strong { font-weight:800; font-size:1.05rem; }
.bhub-rec { display:inline-flex; align-items:center; gap:9px; padding:6px 14px 6px 8px; border-radius:999px; background:#fff; border:1px solid #e9ebf3; color:#150d15; font-weight:700; font-size:.86rem; }

/* "Part of {brand}" chip — moved to the top of the profile sidebar (2026-07-31). */
.cside-brandtag { display:flex; align-items:center; gap:9px; padding:11px 14px; margin-bottom:14px; background:#f1f0fd; border:1px solid #e9ebf3; border-radius:8px; color:#150d15; font-weight:700; font-size:.9rem; text-decoration:none; transition:border-color .15s ease; }
.cside-brandtag:hover { border-color:var(--primary,#6865e7); }
.cside-brandtag svg { width:18px; height:18px; color:var(--primary,#6865e7); flex:none; }
.cside-brandtag strong { font-weight:800; }
.cside-brandtag__rec { margin-left:auto; font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--primary,#6865e7); background:#fff; border:1px solid #e9ebf3; padding:3px 8px; border-radius:999px; }

/* ---- Premium perks: cover banner + video embed + sidebar CTA ---- */
.ccover-band{margin:0 0 22px}
.ccover{display:block;width:100%;aspect-ratio:16/5;object-fit:cover;border-radius:16px;box-shadow:0 10px 30px rgba(21,13,21,.10)}
.cvideo__frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000}
.cvideo__frame iframe,.cvideo__frame video{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:#000;object-fit:contain}
.cside-cta{width:100%;display:flex;justify-content:center;margin:0 0 14px}
@media (max-width:760px){.ccover{aspect-ratio:16/7}}

/* Breadcrumbs relocated from the band to the top of the content column (2026-08-04). */
/* Content/sidebar top-alignment: zero the top margin of whichever block leads
   each column so they start on the same line (the Verify promo carries an 18px
   top margin that otherwise pushes the content below the sidebar's CTA button). */
.company-main > :first-child,
.company-side > :first-child { margin-top:0; }

/* Website = primary contact: bold, set off from phone/address by a rule. */
.ccontacts__weblink { font-weight:800; font-size:1rem; color:var(--c-ink); }
.ccontacts__row--web { padding-bottom:12px; border-bottom:1px solid var(--c-line); }
/* Social links grouped at the end, above a rule, each with its own brand icon. */
.ccontacts--social { margin-top:14px; padding-top:14px; border-top:1px solid var(--c-line); }

/* Breadcrumbs under the About copy: a leading tag icon + the trail, restyled
   dark for a white background (base .breadcrumbs is white-on-banner). */
.cabout__crumbs { display:flex; align-items:center; gap:8px; margin-top:16px; }
.cabout__crumbs--top { margin:0 0 18px; }
.cabout__crumbs-ic { flex:0 0 15px; width:15px; height:15px; color:var(--c-brand); }
.company-crumbs { margin:0; font-size:.7rem; gap:6px; }
.company-crumbs a { color:var(--c-muted); }
.company-crumbs a:hover { color:var(--c-brand); }
.company-crumbs li[aria-current] { color:var(--c-ink); }
.company-crumbs .breadcrumbs__sep::before { background:#c2c7d6; }

/* Logo inside the alt-state banner (not-verified / accredit) summary. Living in
   the <summary> means it is vertically centred against the ALWAYS-VISIBLE header
   only, so it doesn't drift to the middle when the accordion body opens. The logo
   is dropped from About while this banner is present. */
.cpromo-row { margin:18px 0 8px; }
.cpromo-row .promo { margin:0; }
.cpromo-row__logo { flex:0 0 88px; display:flex; margin-right:16px; }
.cpromo-row__logo img { width:88px; height:88px; object-fit:cover; border-radius:16px; display:block; }
.cpromo-row .promo__summary-text { flex:1; }
@media (max-width:560px){
  .cpromo-row__logo { flex-basis:56px; margin-right:10px; }
  .cpromo-row__logo img { width:56px; height:56px; border-radius:12px; }
  .cpromo-row .promo__summary { gap:12px; padding:16px 18px; }
}

/* ===================== SIMILAR (sidebar card) ===================== */
/* Exact competitors (same subcategory + city) + a daily-rotated mix, as a
   vertical list inside the profile sidebar. Each row links to a peer listing -
   the internal-link web across competitors. */
.csim__list { list-style:none; margin:0; padding:0; }
.csim__list > li + li { border-top:1px solid var(--c-line); }
.csim-card { display:flex; align-items:center; gap:12px; padding:12px 0; text-decoration:none;
  color:inherit; transition:opacity .15s ease; }
.csim-card:hover .csim-card__name { color:var(--c-brand); }
.csim-card__logo { flex:0 0 44px; width:44px; height:44px; border-radius:10px; overflow:hidden;
  background:var(--c-pastel); display:flex; align-items:center; justify-content:center; }
.csim-card__logo img { width:100%; height:100%; object-fit:cover; display:block; }
.csim-card__ph { font-size:1.15rem; font-weight:800; color:var(--c-brand); }
.csim-card__body { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.csim-card__name { font-weight:800; font-size:.92rem; color:var(--c-ink); line-height:1.25;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; transition:color .15s ease; }
.csim-card__meta { display:flex; align-items:center; gap:6px; min-width:0; }
.csim-card__chip { flex:0 1 auto; font-size:.68rem; font-weight:700; color:var(--c-brand);
  background:var(--c-lilac); padding:2px 7px; border-radius:999px; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; }
.csim-card__loc { flex:0 0 auto; font-size:.76rem; color:var(--c-muted); white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; }
.csim-card__grade { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
  min-width:30px; height:24px; padding:0 7px; border-radius:7px; font-size:.78rem; font-weight:800;
  color:var(--c-brand); background:var(--c-lilac); }

/* Overall review rating shown under the name in the band (2026-08-04). */
.band-rating { display:inline-flex; align-items:center; gap:9px; margin-top:8px; text-decoration:none; }
.band-rating__num { font-size:1.15rem; font-weight:800; color:#150d15; line-height:1; }
.band-rating .stars { font-size:1.05rem; }
.band-rating__count { font-size:.9rem; font-weight:600; color:var(--muted,#656d80); }
.band-rating:hover .band-rating__count { color:var(--primary,#6865e7); }
.band-rating--empty { display:inline-block; margin-top:8px; font-size:.92rem; color:var(--muted,#656d80); }

/* Flat full-width video preview (opens the player in a modal on click). 2026-08-04 */
.cvthumb{position:relative;display:block;width:100%;height:132px;margin:0 0 26px;padding:0;border:0;border-radius:12px;overflow:hidden;cursor:pointer;background:#2a2540 center/cover no-repeat}
.cvthumb__scrim{position:absolute;inset:0;background:rgba(21,13,21,.42)}
.cvthumb__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.94);color:#150d15;box-shadow:0 10px 26px rgba(0,0,0,.28);transition:transform .15s ease}
.cvthumb__play svg{width:24px;height:24px;margin-left:3px}
.cvthumb:hover .cvthumb__play{transform:translate(-50%,-50%) scale(1.09)}
.cvthumb__label{position:absolute;left:16px;bottom:12px;z-index:1;color:#fff;font-weight:800;font-size:.95rem;text-shadow:0 1px 5px rgba(0,0,0,.55)}
.cvthumb:focus-visible{outline:3px solid var(--c-brand,#6865e7);outline-offset:2px}

/* Video modal */
body.cv-lock{overflow:hidden}
.cvmodal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:rgba(10,8,16,.9);padding:20px}
.cvmodal[hidden]{display:none}
.cvmodal__stage{position:relative;width:min(1000px,92vw);aspect-ratio:16/9;background:#000;border-radius:12px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.cvmodal__stage iframe,.cvmodal__stage video{position:absolute;inset:0;width:100%;height:100%;border:0}
.cvmodal__close{position:absolute;top:16px;right:20px;z-index:1;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:1.7rem;line-height:1;cursor:pointer}
.cvmodal__close:hover{background:rgba(255,255,255,.24)}

/* Review share / report modals (centred card on a dim backdrop) */
.revmodal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:rgba(10,8,16,.55);padding:20px}
.revmodal[hidden]{display:none}
.revmodal__box{position:relative;width:min(440px,100%);background:#fff;border-radius:14px;padding:26px 24px 24px;box-shadow:0 30px 80px rgba(20,13,21,.35);animation:revpop .18s ease}
@keyframes revpop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.revmodal__close{position:absolute;top:10px;right:12px;width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:var(--c-muted);font-size:1.6rem;line-height:1;cursor:pointer}
.revmodal__close:hover{background:var(--c-soft);color:var(--c-ink)}
.revmodal__title{margin:0 0 16px;font-size:1.2rem;font-weight:800;color:var(--c-ink)}
.revmodal__sub{margin:0 0 16px;font-size:.9rem;line-height:1.5;color:var(--c-body)}
.revmodal__sub strong{color:var(--c-ink)}
/* share networks */
.revshare__nets{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}
.revshare__net{display:inline-flex;align-items:center;gap:9px;padding:11px 14px;border:1px solid var(--c-line);border-radius:10px;
  color:var(--c-ink);font-weight:700;font-size:.9rem;text-decoration:none;transition:border-color .15s ease,background .15s ease,color .15s ease}
.revshare__net svg{width:19px;height:19px;flex:none;color:var(--c-muted)}
.revshare__net:hover{border-color:var(--c-brand);background:var(--c-lilac)}
.revshare__net--fb:hover{color:#1877f2}.revshare__net--fb:hover svg{color:#1877f2}
.revshare__net--x:hover{color:#111}.revshare__net--x:hover svg{color:#111}
.revshare__net--rd:hover{color:#ff4500}.revshare__net--rd:hover svg{color:#ff4500}
.revshare__net--li:hover{color:#0a66c2}.revshare__net--li:hover svg{color:#0a66c2}
/* copy link row */
.revshare__copy{display:flex;gap:8px}
.revshare__url{flex:1;min-width:0;border:1px solid var(--c-line);border-radius:9px;padding:10px 12px;font:inherit;font-size:.85rem;color:var(--c-muted);background:var(--c-soft)}
.revshare__url:focus{outline:0;border-color:var(--c-brand)}
.revshare__copybtn{flex:none;border:0;border-radius:9px;padding:0 16px;background:var(--c-brand,#6865e7);color:#fff;font-weight:700;font-size:.85rem;cursor:pointer}
.revshare__copybtn:hover{background:#524fd4}
/* report form */
.revfield{margin-bottom:12px}
.revfield input,.revfield textarea{width:100%;border:1px solid var(--c-line);border-radius:9px;padding:11px 13px;font:inherit;font-size:.92rem;background:#fff;color:var(--c-ink)}
.revfield input:focus,.revfield textarea:focus{outline:0;border-color:var(--c-brand)}
.revfield--sub{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:0;margin-top:4px}
.revreport__msg{margin:14px 0 0;padding:10px 12px;border-radius:9px;font-size:.88rem;font-weight:600}
.revreport__msg.is-ok{background:#e7f7ee;color:#137a45}
.revreport__msg.is-err{background:#fdecec;color:#c02626}
@media (max-width:460px){.revshare__nets{grid-template-columns:1fr}}

/* Uniform 8px corners for the buttons on this page (blocks with a radius; the
   global .btn-cta is 5px, style.css loads before this file so this wins). The
   ::before hover fill inherits the radius. Photos/videos keep their own radius. */
.btn-cta{border-radius:8px}
/* Bold label on the custom "Send a Message" listing CTA (.cside-cta). */
.cside-cta{font-weight:700}
/* Colour + hover match the header "Business / Customers" pills (light header
   .main-nav a): dark label on white, brand text on a lavender ground on hover.
   Overrides the .btn-cta--fill purple fill (company.css loads after style.css). */
.cside-cta{background:#f1f0fd;color:#150d15;border:1px solid #e3e1ef;box-shadow:none}
/* Kill the .btn-cta wipe overlay (var(--ink) sweep) so only the solid dark
   hover shows - not two overlapping colours. */
.cside-cta::before{display:none}
.cside-cta:hover{background:#150d15;color:#fff;border-color:#150d15;box-shadow:none}

/* Unclaimed-company disclosures (source note under the About copy, illustration
   note under the stock photo gallery). Muted footnote styling. */
.cabout__disclosure{margin:1.2em 0 0;padding-top:.9em;border-top:1px solid rgba(0,0,0,.06);
  font-size:.82rem;line-height:1.5;color:var(--c-muted)}
.cabout__disclosure strong{font-weight:800}
.cgallery__note{margin:.65rem 2px 0;font-size:.78rem;line-height:1.45;color:var(--c-muted);font-style:italic}
.cgallery__note strong{font-style:normal;font-weight:800}

/* ---- Certificates & licenses sidebar block (Recognized tier) ---- */
.cside-certs{border:1.5px solid #ecd48a}
.cside-certs .cside-card__title{color:#8a6608;padding-bottom:11px;margin-bottom:12px;border-bottom:1px solid #ecd48a}
.cside-certs .cside-card__ic{color:#b8860b}
.ccerts{list-style:none;margin:0;padding:0}
.ccert{display:flex;gap:11px;align-items:flex-start;padding:11px 0;border-top:1px solid #e7e5f0}
.ccert:first-child{border-top:0;padding-top:0}
.ccert__ic{flex:0 0 44px;width:44px;height:44px;border-radius:10px;display:grid;place-items:center;overflow:hidden;border:1px solid #e7e5f0;background:#f4f4fb;color:#6b6880}
.ccert__ic svg{width:22px;height:22px}
/* The document-scan placeholder fills the whole icon box (like a thumbnail). */
.ccert__ic--doc svg{width:100%;height:100%}
.ccert__ic img{width:100%;height:100%;object-fit:cover}
.ccert__ic--pdf{color:#c0392b;background:#fdeeec;border-color:#f4cdc6}
.ccert__ic--ours{background:#fdf7e3;border-color:#ecd48a;color:#8a6608}
.ccert__body{min-width:0;flex:1}
.ccert__name{font-weight:800;font-size:.9rem;line-height:1.25;margin:0 0 2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:#150d15}
.ccert__issuer{font-size:.76rem;color:#6b6880;margin:0;line-height:1.35}
.ccert__vbadge{font-size:.6rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#8a6608;background:#fdf7e3;border:1px solid #ecd48a;border-radius:999px;padding:1px 7px}
.ccert__links{display:flex;gap:14px;margin-top:6px;flex-wrap:wrap}
.ccert__link,.ccert__links a{font-size:.78rem;font-weight:800;color:var(--primary,#6865e7);text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.ccert__link:hover,.ccert__links a:hover{text-decoration:underline}
.ccert__link svg,.ccert__links a svg{width:13px;height:13px;flex:0 0 13px}
.ccert__links a.ccert__ext{color:#6b6880}
.ccert__links a.ccert__ext:hover{color:#150d15}

/* ===== Sidebar "Get a quote" card (accepts_requests listings only) ===== */
.cside-quote{background:linear-gradient(180deg,#f1edfa,#fff 70%);border:1.5px solid #cdccf5;border-radius:16px;padding:20px;position:relative}
.cside-quote__badge{position:absolute;top:-11px;left:16px;display:inline-flex;align-items:center;gap:5px;background:#e3f6ec;color:#0f7a4d;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:4px 11px;border:1px solid #c6ecd7}
.cside-quote__badge svg{width:11px;height:11px}
.cside-quote__title{display:flex;align-items:center;gap:8px;font-weight:800;color:#150d15;font-size:15.5px;margin:4px 0 6px}
.cside-quote__title svg{width:20px;height:20px;color:var(--primary,#6865e7);flex:none}
.cside-quote__lede{font-size:13.5px;color:#5a6478;margin:0 0 12px}
.cside-quote__ta{width:100%;border:1px solid #dcdff0;border-radius:12px;padding:11px 13px;font:inherit;font-size:13.5px;color:#150d15;resize:none;height:74px;background:#fff}
.cside-quote__ta::placeholder{color:#9aa2b5}
.cside-quote__btn{display:flex;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:10px;background:var(--primary,#6865e7);color:#fff;font-weight:800;font-size:14.5px;border:0;border-radius:999px;padding:13px 20px;cursor:pointer;transition:background .15s}
.cside-quote__btn:hover{background:#524fd4}
.cside-quote__trust{display:flex;justify-content:center;gap:14px;margin-top:10px;font-size:11.5px;font-weight:700;color:#656d80}
.cside-quote__trust span{display:inline-flex;align-items:center;gap:4px}
.cside-quote__trust svg{width:12px;height:12px;color:#0f7a4d}
.cside-quote__alt{margin:10px 0 0;text-align:center;font-size:12.5px}
.cside-quote__alt a{color:var(--primary,#6865e7);font-weight:800;text-decoration:none}
.cside-quote__alt a:hover{text-decoration:underline}
