/* =====================================================================
   clean-base.css — "Clean App" look for bhubaneswar.loconto.net (19 Sep 2026)
   Shared design system: tokens, font, base text, buttons, forms, header,
   footer, phone action bar, girl card (.escort-card), area/category card
   (.location_card), FAQ, breadcrumbs, section headers.

   Loads AFTER the old dark files (redesign.css etc.), which are never edited
   because phones cache them for 10 years. The old files use !important on
   plain tags (body a, body p, body h1...), so colour/font rules here use
   "html body ..." or a class plus !important to win.
   Page files: clean-home.css, clean-lists.css, clean-pages.css.
   ===================================================================== */

:root {
  --red:#d7263d; --red-dk:#b51d31; --red-50:#fdeef0; --red-100:#fbd9de;
  --ink:#1d2129; --ink-2:#4a505c; --ink-3:#6b7280;
  --bg:#ffffff; --bg-2:#f5f6f8; --line:#e6e8ec; --line-2:#d9dce2;
  --r-s:10px; --r:16px; --r-l:22px;
  --sh-1:0 1px 2px rgba(20,24,33,.06),0 1px 1px rgba(20,24,33,.04);
  --sh-2:0 8px 24px rgba(20,24,33,.08),0 2px 6px rgba(20,24,33,.05);
  --sh-3:0 18px 44px rgba(20,24,33,.14),0 4px 12px rgba(20,24,33,.06);
  --sh-red:0 8px 20px rgba(215,38,61,.28);
  --font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --hdr-h:64px;          /* header height on phones */
  --mbar-h:76px;         /* phone action bar incl. its outer gap */
  --wrap:1200px;
}
@media (min-width: 992px) { :root { --hdr-h:76px; --mbar-h:0px; } }

/* ---------- base ---------- */
html { -webkit-text-size-adjust:100%; scroll-padding-top:calc(var(--hdr-h) + 12px); }
html body {
  background:var(--bg) !important;
  color:var(--ink) !important;
  font-family:var(--font) !important;
  font-size:16px; line-height:1.6;
  padding-top:0 !important;
  padding-bottom:calc(var(--mbar-h) + env(safe-area-inset-bottom)) !important;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
html.cl-lock, html.cl-lock body { overflow:hidden !important; }
::selection { background:var(--red-100); color:var(--ink); }
::-webkit-scrollbar { width:auto; }
::-webkit-scrollbar-track { background:var(--bg-2); }
::-webkit-scrollbar-thumb { background:#c7cbd3; border-radius:8px; }

html body h1, html body h2, html body h3, html body h4, html body h5, html body h6 {
  font-family:var(--font) !important;
  color:var(--ink) !important;
  letter-spacing:-.02em;
  text-transform:none !important;
}
html body h1 { font-weight:800 !important; line-height:1.12; letter-spacing:-.03em; }
html body h2 { font-weight:800 !important; line-height:1.2; letter-spacing:-.025em; }
html body h3, html body h4 { font-weight:700 !important; line-height:1.3; }
html body h5, html body h6 { font-weight:700 !important; }
html body p, html body li, html body td, html body th, html body dd, html body dt, html body label {
  font-family:var(--font) !important;
}
html body p { color:var(--ink-2) !important; line-height:1.7; }
html body li { color:var(--ink-2); }
html body strong, html body b { color:var(--ink); font-weight:700; }
html body a { color:var(--red-dk) !important; font-weight:600; text-decoration:none; }
html body a:hover { color:var(--red) !important; }
html body :focus-visible { outline:3px solid var(--red); outline-offset:2px; border-radius:6px; }
img { max-width:100%; }
.heading_font { color:var(--ink) !important; font-family:var(--font) !important; }
.text-theme-1, h2.text-theme-1 { color:var(--ink) !important; }

/* icons from icon() in application/helpers/icons_helper.php */
.ic { width:20px; height:20px; flex:none; display:inline-block; vertical-align:-.2em;
  fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.ic.ic-fill { fill:currentColor; stroke:none; }
.ic-xs { width:14px; height:14px; }
.ic-sm { width:16px; height:16px; }
.ic-lg { width:24px; height:24px; }
.ic-xl { width:32px; height:32px; }

/* ---------- layout helpers ---------- */
.container { max-width:var(--wrap) !important; }
.cl-wrap { max-width:var(--wrap); margin:0 auto; padding:0 16px; }
@media (min-width: 768px) { .cl-wrap { padding:0 24px; } }
.cl-section { padding:40px 0; }
.cl-section--alt { background:var(--bg-2); }
@media (min-width: 992px) { .cl-section { padding:64px 0; } }
.sr, .cl-sr { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* surfaces + small parts */
.cl-card { background:#fff; border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh-1); }
.cl-card--pad { padding:18px; }
@media (min-width: 768px) { .cl-card--pad { padding:24px; } }
.cl-eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase; color:var(--red-dk) !important; }
.cl-eyebrow::before { content:''; width:18px; height:3px; border-radius:3px; background:var(--red); }
.cl-lede { font-size:17px; color:var(--ink-2) !important; }
.cl-muted { color:var(--ink-3) !important; }
.cl-chip { display:inline-flex; align-items:center; gap:6px; min-height:36px; padding:0 14px;
  border-radius:999px; background:#fff; border:1px solid var(--line-2); font-size:14px; font-weight:600;
  color:var(--ink) !important; white-space:nowrap; }
a.cl-chip:hover { border-color:var(--red); color:var(--red-dk) !important; background:var(--red-50); }
.cl-chip .ic { width:16px; height:16px; color:var(--red); }
.cl-badge { display:inline-flex; align-items:center; gap:5px; padding:4px 10px; border-radius:999px;
  background:var(--red-50); color:var(--red-dk) !important; font-size:12px; font-weight:700; line-height:1.3; }
.cl-badge--ink { background:var(--bg-2); color:var(--ink-2) !important; }
.cl-ticks { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.cl-ticks li { position:relative; padding-left:30px; color:var(--ink-2); }
.cl-ticks li::before { content:''; position:absolute; left:0; top:2px; width:20px; height:20px; border-radius:50%;
  background:var(--red-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d7263d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat; }

/* ---------- buttons ---------- */
.cl-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:48px; padding:0 20px; border-radius:14px; border:1.5px solid transparent;
  font-family:var(--font) !important; font-size:15px; font-weight:700 !important; line-height:1.2;
  white-space:nowrap; text-decoration:none !important; cursor:pointer;
  transition:background .15s, border-color .15s, color .15s, box-shadow .15s, transform .15s; }
.cl-btn:active { transform:scale(.98); }
.cl-btn--red, a.cl-btn--red { background:var(--red); border-color:var(--red); color:#fff !important; box-shadow:var(--sh-red); }
.cl-btn--red:hover, a.cl-btn--red:hover { background:var(--red-dk); border-color:var(--red-dk); color:#fff !important; }
.cl-btn--line, a.cl-btn--line { background:#fff; border-color:var(--line-2); color:var(--ink) !important; }
.cl-btn--line:hover, a.cl-btn--line:hover { border-color:var(--ink); color:var(--ink) !important; }
.cl-btn--soft, a.cl-btn--soft { background:var(--red-50); border-color:var(--red-50); color:var(--red-dk) !important; }
.cl-btn--soft:hover, a.cl-btn--soft:hover { background:var(--red-100); color:var(--red-dk) !important; }
.cl-btn--white, a.cl-btn--white { background:#fff; border-color:#fff; color:var(--red-dk) !important; }
.cl-btn--white:hover, a.cl-btn--white:hover { background:var(--red-50); color:var(--red-dk) !important; }
.cl-btn--ghost, a.cl-btn--ghost { background:transparent; border-color:rgba(255,255,255,.55); color:#fff !important; }
.cl-btn--ghost:hover, a.cl-btn--ghost:hover { background:rgba(255,255,255,.12); border-color:#fff; color:#fff !important; }
.cl-btn--sm { min-height:44px; padding:0 16px; border-radius:12px; font-size:14px; }
.cl-btn--lg { min-height:54px; padding:0 26px; border-radius:16px; font-size:16px; }
.cl-btn--block { display:flex; width:100%; }
.cl-btn-row { display:flex; flex-wrap:wrap; gap:10px; }
.cl-btn-row > .cl-btn { flex:1 1 auto; }
.cl-ibtn { width:44px; height:44px; flex:none; display:inline-grid; place-items:center; padding:0;
  border-radius:12px; border:1px solid var(--line); background:#fff; color:var(--ink) !important; cursor:pointer; }
.cl-ibtn:hover { background:var(--bg-2); }

/* ---------- forms (also restyles Bootstrap .form-control on old pages) ---------- */
html body .form-control, html body .cl-input {
  min-height:48px; padding:10px 14px; border-radius:var(--r-s) !important;
  background:#fff !important; border:1.5px solid var(--line-2) !important; color:var(--ink) !important;
  font-family:var(--font) !important; font-size:16px !important; box-shadow:none !important;
}
html body textarea.form-control, html body textarea.cl-input { min-height:120px; }
html body .form-control::placeholder, html body .cl-input::placeholder { color:#9aa0aa !important; }
html body .form-control:focus, html body .cl-input:focus {
  border-color:var(--red) !important; box-shadow:0 0 0 4px var(--red-50) !important; outline:0; }
html body label, .cl-label { color:var(--ink) !important; font-weight:600; font-size:14px; }

/* ---------- desktop top strip ---------- */
.cl-topbar { display:none; background:var(--ink); color:#d6d9df; font-size:12.5px; font-weight:500; }
.cl-topbar-in { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:36px; }
.cl-topbar span { display:inline-flex; align-items:center; gap:6px; color:#d6d9df; }
.cl-topbar .ic { color:#fff; opacity:.8; }
.cl-topbar-r { gap:18px !important; }
@media (min-width: 992px) { .cl-topbar { display:block; } }

/* ---------- header ---------- */
.cl-hdr { position:sticky; top:0; z-index:900; background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:saturate(1.5) blur(10px); backdrop-filter:saturate(1.5) blur(10px);
  border-bottom:1px solid transparent; transition:box-shadow .2s, border-color .2s; }
.cl-hdr.is-scrolled { border-bottom-color:var(--line); box-shadow:0 6px 18px rgba(20,24,33,.06); }
.cl-hdr-in { height:var(--hdr-h); display:flex; align-items:center; gap:12px; }

.cl-logo { display:inline-flex; align-items:center; gap:10px; min-height:44px; margin-right:auto;
  text-decoration:none !important; flex-shrink:0; }
.cl-logo-mk { width:38px; height:38px; flex:none; display:block; border-radius:50%;
  box-shadow:0 5px 12px rgba(215,38,61,.3); }
.cl-logo-mk svg { display:block; }
.cl-logo-txt { display:flex; flex-direction:column; line-height:1; }
.cl-logo-txt b { font-size:21px; font-weight:800; letter-spacing:-.03em; color:var(--ink) !important; }
.cl-logo-txt small { margin-top:4px; font-size:10.5px; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--red-dk); }

/* navbar.css gives every <nav> a dark sticky bar and redesign.css hides every <nav>; undo both for ours */
html body nav.cl-nav, html body nav.cl-sheet-nav, html body nav[aria-label="breadcrumb"] {
  background:transparent !important; box-shadow:none !important; position:static !important; z-index:auto !important; }
html body nav.cl-nav { display:none !important; }
.cl-nav a { display:inline-flex; align-items:center; min-height:40px; padding:0 14px; border-radius:10px;
  font-size:14.5px; font-weight:600 !important; color:var(--ink-2) !important; white-space:nowrap;
  text-decoration:none !important; transition:background .15s, color .15s, box-shadow .15s; }
.cl-nav a:hover { color:var(--ink) !important; background:rgba(255,255,255,.7); }
.cl-nav a.active { background:#fff; color:var(--red-dk) !important; box-shadow:var(--sh-1), 0 0 0 1px var(--line); }

.cl-hdr-act { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.cl-hdr-call { display:none !important; }
.cl-hdr-tg span { display:none; }
.cl-hdr-tg { width:44px; padding:0 !important; box-shadow:0 4px 10px rgba(215,38,61,.22) !important; }
.cl-menu-btn .ic { width:22px; height:22px; }

@media (min-width: 992px) {
  html body nav.cl-nav { display:flex !important; align-items:center; gap:2px; padding:4px;
    background:var(--bg-2) !important; border:1px solid var(--line); border-radius:14px; margin:0 auto; }
  .cl-logo { margin-right:0; }
  .cl-logo-mk { width:42px; height:42px; }
  .cl-logo-mk svg { width:42px; height:42px; }
  .cl-logo-txt b { font-size:23px; }
  .cl-hdr-in { gap:20px; }
  .cl-hdr-call { display:inline-flex !important; }
  .cl-hdr-tg { width:auto; padding:0 16px !important; }
  .cl-hdr-tg span { display:inline; }
  .cl-menu-btn { display:none; }
}
@media (min-width: 992px) and (max-width: 1239px) {
  .cl-nav a { padding:0 10px; font-size:13.5px; }
  .cl-hdr-call span { display:none; }
  .cl-hdr-call { width:44px; padding:0 !important; }
}

/* ---------- phone menu sheet ---------- */
.cl-sheet { position:fixed; inset:0; z-index:1000; visibility:hidden; pointer-events:none; }
.cl-sheet.open { visibility:visible; pointer-events:auto; }
.cl-sheet-bg { position:absolute; inset:0; background:rgba(20,24,33,.5); opacity:0; transition:opacity .22s; }
.cl-sheet.open .cl-sheet-bg { opacity:1; }
.cl-sheet-p { position:absolute; left:0; right:0; bottom:0; max-height:92vh; overflow:auto;
  background:#fff; border-radius:24px 24px 0 0; padding:8px 16px calc(18px + env(safe-area-inset-bottom));
  box-shadow:0 -12px 40px rgba(20,24,33,.18); transform:translateY(100%); transition:transform .26s cubic-bezier(.2,.8,.2,1); }
.cl-sheet.open .cl-sheet-p { transform:none; }
.cl-sheet-grip { width:44px; height:5px; border-radius:5px; background:var(--line-2); margin:4px auto 6px; }
.cl-sheet-top { display:flex; align-items:center; justify-content:space-between; padding:4px 0 10px; }
.cl-sheet-top b { font-size:18px; font-weight:800; color:var(--ink); }
html body nav.cl-sheet-nav { display:grid !important; grid-template-columns:1fr 1fr; gap:8px; }
.cl-sheet-nav a { display:flex; align-items:center; gap:10px; min-height:56px; padding:8px 12px;
  border-radius:14px; background:var(--bg-2); border:1px solid transparent;
  font-size:15px; font-weight:700 !important; color:var(--ink) !important; text-decoration:none !important; }
.cl-sheet-nav a.active { background:var(--red-50); border-color:var(--red-100); color:var(--red-dk) !important; }
.cl-sheet-ic { width:34px; height:34px; flex:none; display:grid; place-items:center; border-radius:10px;
  background:#fff; color:var(--red); box-shadow:var(--sh-1); }
.cl-sheet-ic .ic { width:18px; height:18px; }
.cl-sheet-hours { margin-top:14px; padding:14px; border:1px solid var(--line); border-radius:var(--r); }
.cl-sheet-hours-h, .cl-foot-hours-h { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:800;
  color:var(--ink); text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px; }
.cl-sheet-hours-h .ic, .cl-foot-hours-h .ic { color:var(--red); }
.cl-sheet-hours dl, .cl-foot-hours dl { display:grid; grid-template-columns:auto 1fr; margin:0; }
.cl-sheet-hours dt, .cl-sheet-hours dd, .cl-foot-hours dt, .cl-foot-hours dd {
  margin:0; padding:7px 0; border-top:1px solid var(--line); font-size:14px; }
.cl-sheet-hours dt, .cl-foot-hours dt { color:var(--ink-3); font-weight:600; }
.cl-sheet-hours dd, .cl-foot-hours dd { text-align:right; color:var(--ink); font-weight:700; }
.cl-sheet-cta { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:14px; }
.cl-sheet-cta .cl-btn { padding:0 10px; font-size:14px; }
@media (min-width: 992px) { .cl-sheet { display:none; } }

/* ---------- breadcrumbs ---------- */
html body nav[aria-label="breadcrumb"] { display:block !important; }
html body .breadcrumb {
  display:flex; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; gap:0;
  background:transparent !important; border:0 !important; border-radius:0 !important;
  padding:4px 0 !important; margin:0 0 12px !important; white-space:nowrap;
}
html body .breadcrumb::-webkit-scrollbar { display:none; }
html body .breadcrumb, html body .breadcrumb li, html body .breadcrumb a,
html body .loc_det_bread, html body .loc_det_bread li, html body .loc_det_bread li a {
  font-family:var(--font) !important; font-size:13px !important; font-weight:600 !important;
  letter-spacing:0 !important; color:var(--ink-3) !important;
}
html body .breadcrumb a:hover { color:var(--red-dk) !important; }
html body .breadcrumb-item.active { color:var(--ink) !important; overflow:hidden; text-overflow:ellipsis; }
html body .breadcrumb-item + .breadcrumb-item { padding-left:6px; }
html body .breadcrumb-item + .breadcrumb-item::before {
  content:"" !important; width:14px; height:14px; padding:0 !important; margin-right:6px; vertical-align:-2px;
  display:inline-block; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239aa0aa' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E") center/14px no-repeat;
}

/* ---------- section header (.detail-section-header + .detail-section-line) ---------- */
.detail-section-header { margin:8px 0 20px; }
html body .detail-section-header h2 { font-size:clamp(22px,5.6vw,30px) !important; font-weight:800 !important;
  color:var(--ink) !important; margin:0 0 10px !important; line-height:1.2; }
.detail-section-line { display:block; width:40px; height:4px; border-radius:4px;
  background:var(--red) !important; }
.detail-section-header.text-center .detail-section-line { margin-left:auto; margin-right:auto; }

/* ---------- girl card (.escort-card) ----------
   (.card.escort-card x3 = strong enough to beat redesign.css ".container .col-md-4.col-lg-3 .card")
   Markup: .card.escort-card > .escort-card-img(a>img, .escort-card-location, .escort-card-rating)
           + .escort-card-body(.escort-card-category, h3.escort-card-name, a.escort-card-wa) */
html body .card.escort-card.escort-card.escort-card {
  background:#fff !important; border:1px solid var(--line) !important; border-radius:18px !important;
  box-shadow:var(--sh-1) !important; padding:6px; overflow:hidden !important; height:100%;
  transition:box-shadow .2s, transform .2s !important; animation:none !important;
}
html body .card.escort-card.escort-card.escort-card:hover { transform:translateY(-3px) !important; box-shadow:var(--sh-2) !important;
  border-color:var(--line) !important; }
html body .escort-card::before { display:none !important; }
html body .escort-card-img { position:relative; aspect-ratio:3/4; border-radius:13px; overflow:hidden;
  background:var(--bg-2) !important; }
html body .escort-card-img a { display:block; height:100%; }
html body .escort-card-img img { width:100%; height:100%; object-fit:cover; object-position:50% 20%;
  filter:none !important; transition:transform .5s ease; }
html body .escort-card:hover .escort-card-img img { transform:scale(1.04); filter:none !important; }
html body .escort-card-location {
  position:absolute; left:8px; bottom:8px; right:auto; max-width:calc(100% - 16px);
  display:inline-flex; align-items:center; gap:4px; padding:4px 10px 4px 8px; border-radius:999px;
  background:rgba(255,255,255,.95) !important; -webkit-backdrop-filter:none; backdrop-filter:none;
  color:var(--ink) !important; font-family:var(--font) !important; font-size:12px !important; font-weight:700;
  line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; box-shadow:var(--sh-1);
}
html body .escort-card-location .ic, html body .escort-card-location .fa { color:var(--red); width:13px; height:13px; margin:0 !important; }
html body .escort-card-rating {
  position:absolute; top:8px; right:8px; display:inline-flex; align-items:center; gap:3px;
  padding:3px 9px; border-radius:999px; background:var(--ink) !important; color:#fff !important;
  font-family:var(--font) !important; font-size:12px !important; font-weight:700; line-height:1.5;
}
html body .escort-card-rating .ic, html body .escort-card-rating .fa { color:#ffc53d; width:12px; height:12px; margin:0 !important; }
html body .escort-card-rating .ic { fill:currentColor; stroke:none; }
html body .escort-card-body { padding:10px 6px 6px !important; display:flex; flex-direction:column; }
html body .escort-card-category { order:2; font-family:var(--font) !important; font-size:12px !important;
  font-weight:600; color:var(--ink-3) !important; text-transform:none; letter-spacing:0; line-height:1.3;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:2px; }
html body .escort-card-name { order:1; font-size:16px !important; font-weight:800 !important;
  color:var(--ink) !important; letter-spacing:-.02em; line-height:1.25; margin:0 !important;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
html body .escort-card:hover .escort-card-name { color:var(--ink) !important; }
html body .escort-card-wa {
  order:3; display:flex !important; align-items:center; justify-content:center; gap:6px; width:100%;
  min-height:44px; margin-top:10px; padding:0 10px !important; border-radius:12px !important;
  background:var(--red-50) !important; border:0 !important; color:var(--red-dk) !important;
  font-family:var(--font) !important; font-size:14px !important; font-weight:700 !important;
  text-decoration:none !important; transition:background .15s, color .15s;
}
html body .escort-card-wa:hover, html body .escort-card:hover .escort-card-wa { background:var(--red) !important; color:#fff !important; }
html body .escort-card-wa .fa { margin:0 !important; }
@media (min-width: 768px) {
  html body .card.escort-card.escort-card.escort-card { padding:8px; border-radius:20px !important; }
  html body .escort-card-img { border-radius:14px; }
  html body .escort-card-body { padding:12px 6px 4px !important; }
  html body .escort-card-name { font-size:17px !important; }
}

/* no-results card that sits in girl grids */
html body .no-results-card { background:#fff !important; border:1px dashed var(--line-2) !important;
  border-radius:var(--r) !important; padding:40px 20px !important; text-align:center; }
html body .no-results-card h3 { color:var(--ink) !important; }
html body .no-results-card p { color:var(--ink-2) !important; }
html body .no-results-card i.fa-search { color:var(--line-2) !important; }
html body .no-results-cta { display:inline-flex; align-items:center; gap:8px; min-height:48px; padding:0 20px !important;
  border-radius:14px !important; background:var(--red) !important; color:#fff !important; font-weight:700; }

/* ---------- area / category card (.location_card) ----------
   Markup: a > .card.location_card > .loc-card-img-wrap(img, .loc-card-overlay?) + .card-body.location_card_body > h3.card-title */
html body .card.location_card.location_card.location_card {
  position:relative !important; background:#fff !important; border:1px solid var(--line) !important;
  border-radius:18px !important; padding:6px; overflow:hidden !important; height:100%;
  box-shadow:var(--sh-1) !important; transition:box-shadow .2s, transform .2s !important;
}
html body .card.location_card.location_card.location_card:hover { transform:translateY(-3px) !important; box-shadow:var(--sh-2) !important;
  border-color:var(--line) !important; }
html body .location_card::before { display:none !important; }
html body .loc-card-img-wrap { position:relative; aspect-ratio:4/3; border-radius:13px !important; overflow:hidden;
  background:var(--bg-2) !important; }
html body .loc-card-img-wrap img, html body .location_card .card-img-top {
  width:100%; height:100%; object-fit:cover; aspect-ratio:auto !important; border-radius:0 !important;
  filter:none !important; transition:transform .5s ease !important; }
html body .location_card:hover .loc-card-img-wrap img, html body .location_card:hover .card-img-top { transform:scale(1.05) !important; filter:none !important; }
html body .loc-card-overlay { display:none !important; }
html body .location_card .card-body.location_card_body, html body .location_card_body {
  position:relative; display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:10px 6px 4px !important; background:transparent !important; border:0 !important; text-align:left !important;
}
html body .location_card_body::after {
  content:''; width:32px; height:32px; flex:none; border-radius:10px; background:var(--red-50)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d7263d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/16px no-repeat;
  transition:background-color .15s;
}
html body .location_card:hover .location_card_body::after {
  background-color:var(--red);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}
html body .location_card_body h2, html body .location_card_body h3, html body .location_card_body .card-title {
  margin:0 !important; font-size:15px !important; font-weight:800 !important; color:var(--ink) !important;
  letter-spacing:-.01em; line-height:1.25; text-align:left !important;
  overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
}
html body .location_card_body p { font-size:13px; color:var(--ink-3) !important; margin:0; }
@media (min-width: 768px) {
  html body .card.location_card.location_card.location_card { padding:8px; border-radius:20px !important; }
  html body .location_card_body h2, html body .location_card_body h3, html body .location_card_body .card-title { font-size:17px !important; }
}

/* ---------- FAQ (.faq-item from faq_items(), and the home page's .faq-question variant) ---------- */
html body .faq-list { background:transparent !important; border:0 !important; padding:0 !important; border-radius:0;
  display:grid; gap:10px; }
html body .faq-item, html body .loc-faq-item, html body .cg-faq-item {
  background:#fff !important; border:1px solid var(--line) !important; border-radius:var(--r) !important;
  padding:0 16px !important; margin:0 0 10px; box-shadow:var(--sh-1); transition:border-color .15s, box-shadow .15s;
}
html body .faq-list .faq-item, html body .faq-list .extra-faq-items .faq-item { margin:0; }
html body .extra-faq-items { display:grid; gap:10px; }
html body .faq-item:last-child { border-bottom:1px solid var(--line) !important; }
html body .faq-item:hover { border-color:var(--line-2) !important; }
html body .faq-item.open { border-color:var(--red-100) !important; box-shadow:var(--sh-2); }
html body .faq-q, html body .faq-question {
  display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:56px; padding:14px 0 !important;
  cursor:pointer; font-family:var(--font) !important; font-size:16px !important; font-weight:700 !important;
  line-height:1.4; color:var(--ink) !important;
}
html body .faq-q:hover, html body .faq-question:hover { color:var(--ink) !important; }
html body .faq-chev, html body .faq-chevron {
  flex:none; width:30px; height:30px; display:grid; place-items:center; border-radius:50%;
  background:var(--bg-2); color:transparent !important; font-size:0 !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d2129' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-position:center; background-size:16px; background-repeat:no-repeat;
  transition:transform .25s, background-color .15s;
}
html body .faq-item.open .faq-chev, html body .faq-item.open .faq-chevron { transform:rotate(180deg); background-color:var(--red-50);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d7263d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
html body .faq-a, html body .faq-answer {
  display:none; padding:0 0 16px !important; font-family:var(--font) !important; font-size:15px !important;
  line-height:1.7; color:var(--ink-2) !important;
}
html body .faq-item.open .faq-a, html body .faq-item.open .faq-answer { display:block; }
html body .faq-a a, html body .faq-answer a { text-decoration:underline; text-underline-offset:3px; }

/* ---------- footer ---------- */
html body footer.cl-foot { margin:56px 0 0 !important; padding:0 0 8px; background:var(--bg-2) !important;
  color:var(--ink-2) !important; border-top:1px solid var(--line); }
.cl-foot-cta { position:relative; top:-32px; margin-bottom:-8px; display:flex; flex-direction:column; gap:18px;
  padding:24px 20px; border-radius:var(--r-l); overflow:hidden; color:#fff;
  background:linear-gradient(135deg, #e23048 0%, var(--red) 45%, var(--red-dk) 100%); box-shadow:var(--sh-red); }
.cl-foot-cta::after { content:''; position:absolute; right:-60px; top:-60px; width:220px; height:220px; border-radius:50%;
  border:28px solid rgba(255,255,255,.08); pointer-events:none; }
html body .cl-foot-cta h3 { color:#fff !important; font-size:22px !important; font-weight:800 !important; margin:0 0 6px !important; }
html body .cl-foot-cta p { color:rgba(255,255,255,.9) !important; font-size:15px; margin:0 !important; }
.cl-foot-cta-btns { position:relative; z-index:1; display:grid; grid-template-columns:1fr; gap:10px; }
.cl-foot-main { display:grid; grid-template-columns:1fr 1fr; gap:28px 16px; padding:8px 0 28px; }
.cl-foot-brand { grid-column:1 / -1; }
.cl-foot-brand .cl-logo { margin-bottom:12px; }
html body .cl-foot-tagline { font-size:15px; color:var(--ink-2) !important; margin:0 0 14px !important; max-width:34em; }
.cl-foot-hours { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:12px 14px; max-width:360px; }
.cl-foot-social { display:flex; gap:8px; margin-top:14px; }
html body .cl-foot-social a { width:44px; height:44px; display:grid; place-items:center; border-radius:12px;
  background:#fff; border:1px solid var(--line); color:var(--ink) !important; transition:all .15s; }
html body .cl-foot-social a:hover { background:var(--red); border-color:var(--red); color:#fff !important; }
html body .cl-foot-col h4 { font-size:12px !important; font-weight:800 !important; letter-spacing:.1em;
  text-transform:uppercase !important; color:var(--ink-3) !important; margin:0 0 8px !important; }
.cl-foot-col ul { list-style:none; margin:0; padding:0; display:grid; }
html body .cl-foot-col li { margin:0; }
html body .cl-foot-col ul a { display:flex; align-items:center; min-height:40px; font-size:15px;
  font-weight:600 !important; color:var(--ink) !important; }
html body .cl-foot-col ul a:hover { color:var(--red-dk) !important; }
.cl-foot-areas { grid-column:1 / -1; order:5; }
.cl-foot-areas ul { display:flex; flex-wrap:wrap; gap:8px; }
html body .cl-foot-areas ul a { min-height:40px; padding:0 14px; border-radius:999px; background:#fff;
  border:1px solid var(--line); font-size:14px; }
html body .cl-foot-areas ul a:hover { border-color:var(--red); background:var(--red-50); }
.cl-foot-bottom { display:flex; flex-direction:column; gap:10px; padding:18px 0 10px; border-top:1px solid var(--line-2);
  font-size:13px; color:var(--ink-3); }
html body .cl-foot-copy, html body .cl-foot-copy a { color:var(--ink-3) !important; font-weight:500 !important; }
html body .cl-foot-copy a:hover { color:var(--red-dk) !important; }
.cl-foot-18 { display:inline-flex; align-items:center; gap:8px; color:var(--ink-3); }
.cl-foot-18-badge { display:inline-grid; place-items:center; width:30px; height:30px; border-radius:50%;
  border:2px solid var(--red); color:var(--red-dk); font-size:11px; font-weight:800; }
@media (min-width: 640px) {
  .cl-foot-cta-btns { grid-template-columns:auto auto; justify-content:start; }
}
@media (min-width: 992px) {
  html body footer.cl-foot { margin-top:96px !important; }
  .cl-foot-cta { top:-48px; margin-bottom:-16px; flex-direction:row; align-items:center; justify-content:space-between;
    padding:32px 40px; }
  html body .cl-foot-cta h3 { font-size:28px !important; }
  .cl-foot-cta-btns { flex:none; }
  .cl-foot-main { grid-template-columns:1.5fr 1fr 1.3fr 1fr; gap:40px; padding:16px 0 40px; }
  .cl-foot-brand, .cl-foot-areas { grid-column:auto; order:0; }
  .cl-foot-areas ul { display:grid; gap:0; }
  html body .cl-foot-areas ul a { min-height:40px; padding:0; border:0; background:none; border-radius:0; font-size:15px; }
  html body .cl-foot-areas ul a:hover { background:none; }
  html body .cl-foot-col ul a { min-height:36px; }
  .cl-foot-bottom { flex-direction:row; align-items:center; justify-content:space-between; }
}

/* ---------- phone action bar ---------- */
.cl-mbar { position:fixed; left:10px; right:10px; bottom:calc(10px + env(safe-area-inset-bottom)); z-index:950;
  display:flex; gap:8px; padding:6px; border-radius:20px; background:rgba(255,255,255,.97);
  border:1px solid var(--line); box-shadow:var(--sh-3);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
html body .cl-mbar a { display:flex; align-items:center; justify-content:center; gap:8px; min-height:52px;
  border-radius:15px; font-size:15px; font-weight:800 !important; text-decoration:none !important; }
html body .cl-mbar-call { flex:0 0 96px; background:var(--bg-2); color:var(--ink) !important; }
html body .cl-mbar-call .ic { color:var(--red); }
html body .cl-mbar-tg { flex:1; background:var(--red); color:#fff !important; box-shadow:var(--sh-red); }
html body .cl-mbar-tg:hover { background:var(--red-dk); color:#fff !important; }
@media (min-width: 992px) { .cl-mbar { display:none; } }
html.cl-lock .cl-mbar { visibility:hidden; }

/* go-to-top button (desktop only; the phone has the action bar) */
html body .scroll-top.cl-top-btn { position:fixed; right:24px; bottom:24px; left:auto; z-index:800; width:48px; height:48px;
  display:none; place-items:center; padding:0; border-radius:14px; background:#fff !important;
  border:1px solid var(--line) !important; color:var(--ink); box-shadow:var(--sh-2); cursor:pointer;
  opacity:0; transform:translateY(8px); transition:opacity .2s, transform .2s; pointer-events:none; }
@media (min-width: 992px) { html body .scroll-top.cl-top-btn { display:grid; } }
html body .scroll-top.cl-top-btn.show { opacity:1; transform:none; pointer-events:auto; }
html body .scroll-top.cl-top-btn:hover { color:var(--red); border-color:var(--red-100) !important; }

/* the old floating round buttons are gone; hide them if any cached page still prints them */
.floating-contact-wrap { display:none !important; }

@media (prefers-reduced-motion: reduce) {
  .cl-sheet-p, .cl-sheet-bg, .escort-card, .location_card, .cl-btn { transition:none !important; }
}
