@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap");

:root {
  --brand: #B8298A;
  --brand-dark: #961E70;
  --brand-soft: #FBF2F8;
  --brand-soft-strong: #F4DDEB;
  --ink: #0f172a;
  --text: #334155;
  --muted: #64748b;
  --line: #e2e8f0;
  --soft-line: #f1f5f9;
  --canvas: #f8fafc;
  --white: #fff;
  --container: min(1280px, calc(100vw - 32px));
  --content: min(1180px, calc(100vw - 32px));
  --shadow-sm: 0 8px 24px rgba(15, 23, 42, .07);
  --shadow-md: 0 18px 44px rgba(15, 23, 42, .12);
  font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--white); }
body, button, input, select, textarea { font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: 0; }
body:not(.panelBody) { margin: 0; overflow-x: hidden; color: var(--ink); background: var(--white); font-size: 14px; font-weight: 500; }
body:not(.panelBody) a { color: inherit; text-decoration: none; }
body:not(.panelBody) button, body:not(.panelBody) select { cursor: pointer; }
body:not(.panelBody) button { transition: transform .16s ease, opacity .16s ease, color .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease; }
body:not(.panelBody) button:active { transform: scale(.95); }
body:not(.panelBody) img, body:not(.panelBody) video { display: block; max-width: 100%; }
body:not(.panelBody) h1, body:not(.panelBody) h2, body:not(.panelBody) h3, body:not(.panelBody) p { margin-top: 0; }
body:not(.panelBody) h1 { max-width: 820px; font-size: clamp(32px, 4vw, 40px); line-height: 1.08; font-weight: 800; letter-spacing: 0; }
body:not(.panelBody) h2, body:not(.panelBody) h3 { line-height: 1.22; font-weight: 700; letter-spacing: 0; }
body:not(.panelBody) h2 { font-size: clamp(22px, 2.2vw, 24px); }
body:not(.panelBody) h3 { font-size: 16px; }
body:not(.panelBody) p { color: var(--muted); line-height: 1.65; }
body:not(.panelBody) :focus-visible { outline: 3px solid rgba(184, 41, 138, .28); outline-offset: 3px; }
.kicker { margin-bottom: 7px; color: var(--brand); font-size: 11px; line-height: 1.2; font-weight: 800; text-transform: uppercase; }

/* Hero */
.hero.compactHero { position: relative; isolation: isolate; width: var(--container); min-height: 520px; margin: 16px auto 0; padding: 22px 24px 34px; overflow: visible; color: var(--white); }
.heroImageStage { position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: 24px; background: #1f2937; }
.heroImageStage picture, .heroImageStage img { width: 100%; height: 100%; }
.heroImageStage img { object-fit: cover; object-position: center 52%; }
.heroImageStage::after { content: ""; position: absolute; inset: 0; background: none; }
.heroFloatScene { display: none; }
.topNav, .staticNav, .blogNav { position: relative; z-index: 20; width: min(1180px, calc(100% - 32px)); min-height: 54px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.hero .topNav { width: 100%; max-width: 1180px; }
.logo, .logoAsset, .blogLogoImage { display: inline-flex; align-items: center; flex: 0 0 auto; }
.logo img, .logoAsset img, .blogLogoImage img { width: 190px; max-height: 46px; object-fit: contain; }
.hero .logo img { filter: brightness(0) invert(1); }
.navActions, .blogNav > div { display: flex; align-items: center; gap: 4px; }
.outline, .blogNav > div a { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 0 13px; border: 1px solid transparent; border-radius: 999px; color: var(--text); background: transparent; font-size: 12px; font-weight: 700; transition: color .16s ease, border-color .16s ease, background .16s ease; }
.hero .outline { color: rgba(255,255,255,.9); }
.outline:not(.ghostLink) { border-color: var(--line); background: var(--white); color: var(--ink); }
.hero .outline:not(.ghostLink) { border-color: rgba(255,255,255,.62); background: rgba(255,255,255,.08); color: var(--white); }
.outline:hover, .blogNav > div a:hover, .outline[aria-current="page"] { color: var(--brand); border-color: var(--line); background: var(--white); }
.navMenuActions { position: relative; gap: 10px; }
.listYourPlace { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; padding: 0 16px; border: 1px solid rgba(255,255,255,.58); border-radius: 999px; color: var(--white); background: rgba(255,255,255,.08); font-size: 11px; font-weight: 700; transition: border-color .16s ease, color .16s ease, background .16s ease; }
.staticNav .listYourPlace, .staticTop .listYourPlace, .blogNav .listYourPlace { border-color: var(--line); color: var(--ink); background: var(--white); }
.listYourPlace:hover { border-color: var(--brand); color: var(--brand); background: var(--white); }
.userMenu { position: relative; }
.menuToggle { width: 42px; height: 42px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.58); border-radius: 50%; color: var(--white); background: rgba(255,255,255,.08); }
.staticNav .menuToggle, .staticTop .menuToggle, .blogNav .menuToggle { border-color: var(--line); color: var(--ink); background: var(--white); box-shadow: 0 4px 14px rgba(15,23,42,.05); }
.menuToggle:hover, .userMenu.open .menuToggle { border-color: var(--brand); color: var(--brand); background: var(--white); }
.menuToggle svg { width: 19px; height: 19px; }
.menuDropdown { position: absolute; top: calc(100% + 12px); right: 0; z-index: 70; width: 256px; display: none; padding: 8px; border: 1px solid var(--soft-line); border-radius: 16px; background: rgba(255,255,255,.95); box-shadow: 0 24px 60px rgba(15,23,42,.18); backdrop-filter: blur(20px); }
.userMenu.open .menuDropdown { display: grid; }
.menuDropdown a { min-height: 42px; display: flex; align-items: center; gap: 11px; padding: 0 12px; border-radius: 12px; color: var(--text); font-size: 12px; font-weight: 600; transition: color .16s ease, background .16s ease, transform .16s ease; }
.menuDropdown a:hover { color: var(--brand); background: var(--brand-soft); }
.menuDropdown svg { width: 17px; height: 17px; color: #94a3b8; }
.menuDropdown a:hover svg { color: var(--brand); }
.heroLayout { width: min(860px, 100%); margin: 66px auto 0; text-align: center; }
.heroCopy { margin: 0 auto; }
.heroPill { display: inline-flex; align-items: center; min-height: 30px; margin-bottom: 12px; padding: 0 12px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; color: rgba(255,255,255,.94); background: rgba(15,23,42,.24); font-size: 11px; font-weight: 700; backdrop-filter: blur(8px); }
.hero h1 { margin: 0 auto 12px; color: var(--white); text-wrap: balance; }
.heroCopy > p { max-width: 720px; margin: 0 auto; padding: 0; border: 0; border-radius: 0; color: var(--white); background: transparent; box-shadow: none; font-size: 14px; line-height: 1.65; font-weight: 600; text-align: center; backdrop-filter: none; }
.searchTabs { position: relative; z-index: 25; width: min(760px, calc(100% - 32px)); margin: 24px auto 8px; display: flex; align-items: center; justify-content: center; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.searchTabs::-webkit-scrollbar, .categoryRail::-webkit-scrollbar { display: none; }
.searchTabs button { min-height: 30px; flex: 0 0 auto; padding: 0 10px; border: 0; border-radius: 999px; color: rgba(255,255,255,.76); background: transparent; font-size: 11px; font-weight: 700; }
.searchTabs button.active { color: var(--brand); background: var(--white); box-shadow: 0 4px 14px rgba(15,23,42,.08); }

/* Search capsule */
.searchBar { position: relative; z-index: 30; width: min(860px, calc(100% - 32px)); min-height: 66px; margin: 0 auto; display: grid; grid-template-columns: minmax(190px,1.25fr) minmax(290px,1.55fr) minmax(190px,1fr) 48px; align-items: stretch; padding: 6px; border: 1px solid var(--soft-line); border-radius: 999px; background: var(--white); box-shadow: 0 20px 52px rgba(15,23,42,.24); }
.searchBar > label { position: relative; min-width: 0; display: grid; grid-template-columns: 24px minmax(0,1fr); grid-template-rows: auto auto; align-content: center; column-gap: 9px; padding: 4px 15px; border-right: 1px solid var(--line); }
.searchBar > label > svg { grid-row: 1 / 3; align-self: center; width: 20px; height: 20px; color: var(--brand); stroke-width: 2; }
.searchBar > label > span:not(.dateInputs) { grid-column: 2; margin-bottom: 1px; color: var(--muted); font-size: 10px; line-height: 1.2; font-weight: 700; }
.searchBar input, .searchBar select { width: 100%; min-width: 0; height: 22px; padding: 0; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 12px; line-height: 22px; font-weight: 700; }
.dateInputs { grid-column: 2; min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) 14px minmax(0,1fr); align-items: center; gap: 4px; }
.dateInputs input { font-size: 10px; }
.dateInputs svg { width: 13px; height: 13px; color: var(--muted); }
.guestSelects { grid-column: 2; min-width: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.guestSelects select { font-size: 10px; }
.searchSubmit { width: 44px; height: 44px; align-self: center; justify-self: end; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; color: var(--white); background: var(--brand); box-shadow: 0 8px 20px rgba(184,41,138,.3); transition: opacity .16s ease, transform .16s ease, background .16s ease; }
.searchSubmit:hover { background: var(--brand-dark); }
.searchSubmit:hover { transform: translateY(-1px); opacity: .95; }
.searchSubmit svg { width: 19px; height: 19px; }
.cityPicker { z-index: 40; }
.cityDropdown { position: absolute; top: calc(100% + 10px); left: 0; z-index: 50; width: 310px; max-width: calc(100vw - 32px); max-height: 280px; display: none; overflow-y: auto; padding: 8px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); box-shadow: var(--shadow-md); }
.cityDropdown.open { display: grid; }
.cityDropdown button { min-height: 38px; padding: 0 12px; border: 0; border-radius: 8px; color: var(--text); background: transparent; text-align: left; font-size: 12px; font-weight: 600; }
.cityDropdown button:hover { color: var(--brand); background: var(--brand-soft); }

/* Categories */
.categoryRail { width: var(--content); min-height: 92px; margin: 0 auto; display: flex; align-items: stretch; justify-content: center; gap: 22px; overflow-x: auto; padding: 14px 2px 8px; border-bottom: 1px solid var(--line); background: var(--white); scrollbar-width: none; }
.categoryRail button { position: relative; min-width: 86px; height: 68px; flex: 0 0 auto; display: grid; place-items: center; align-content: center; gap: 7px; padding: 0 6px; border: 0; color: var(--muted); background: transparent; font-size: 11px; font-weight: 600; }
.categoryRail button::after { content: ""; position: absolute; right: 18px; bottom: -9px; left: 18px; height: 2px; border-radius: 2px; background: transparent; }
.categoryRail button svg { width: 24px; height: 24px; stroke-width: 1.8; }
.categoryRail button:hover, .categoryRail button.active { color: var(--brand); }
.categoryRail button.active::after { background: var(--brand); }

/* Results */
.latest, .customerGuide, .businessNudge, .faqSection { width: var(--content); margin: 0 auto; padding: 34px 0; }
.sectionTitle { max-width: 720px; margin-bottom: 18px; }
.sectionTitle h2 { margin-bottom: 6px; }
.sectionTitle > p:last-child { margin-bottom: 0; font-size: 13px; }
.smartFilter { min-height: 52px; margin-bottom: 18px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--canvas); }
.feeToggle, .budgetRange { display: flex; align-items: center; gap: 9px; color: var(--text); font-size: 11px; font-weight: 700; }
.feeToggle input { width: 17px; height: 17px; accent-color: var(--brand); }
.budgetRange input { width: min(220px,24vw); accent-color: var(--brand); }
.budgetRange strong { min-width: 70px; color: var(--brand); font-size: 11px; text-align: right; }
.resultsShell { display: grid; grid-template-columns: minmax(0,7fr) minmax(360px,5fr); align-items: start; gap: 24px; }
#publicListings.cards { min-width: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.homeResultsShell { display: block; }
.homePage #publicListings.cards { grid-template-columns: repeat(3,minmax(0,1fr)); }
.dealCard { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--soft-line); border-radius: 16px; background: var(--white); box-shadow: 0 1px 0 rgba(15,23,42,.03); cursor: pointer; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.dealCard:hover { transform: translateY(-3px); border-color: var(--brand-soft-strong); box-shadow: var(--shadow-sm); }
.dealImage { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--canvas); }
.dealImage img { width: 100%; height: 100%; object-fit: cover; transition: transform .28s ease; }
.dealCard:hover .dealImage img { transform: scale(1.025); }
.bestPriceBadge { position: absolute; top: 11px; left: 11px; min-height: 25px; display: inline-flex; align-items: center; padding: 0 9px; border-radius: 999px; color: var(--brand); background: rgba(255,255,255,.94); box-shadow: 0 6px 16px rgba(15,23,42,.1); font-size: 9px; font-weight: 800; }
.imageDots { position: absolute; right: 0; bottom: 9px; left: 0; display: flex; justify-content: center; gap: 4px; }
.imageDots i { width: 5px; height: 5px; border-radius: 50%; background: rgba(255,255,255,.62); }
.imageDots i:first-child { background: var(--white); }
.favoriteAction { position: absolute; top: 11px; right: 11px; z-index: 3; width: 34px; height: 34px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.56); border-radius: 50%; color: var(--ink); background: rgba(255,255,255,.84); backdrop-filter: blur(8px); }
.favoriteAction svg { width: 17px; height: 17px; }
.favoriteAction.active { color: var(--brand); background: var(--white); }
.dealBody { padding: 13px 14px 14px; }
.dealBody > p { margin-bottom: 4px; overflow: hidden; display: flex; align-items: center; gap: 4px; color: #94a3b8; font-size: 10px; line-height: 1.3; font-weight: 800; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.dealBody > p svg { width: 12px; height: 12px; flex: 0 0 auto; }
.dealBody h3 { margin: 0 0 7px; overflow: hidden; color: var(--ink); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.dealBody h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.dealActions, .favoriteAction { z-index: 2; }
.dealActions { position: relative; }
.dealMeta { min-height: 22px; display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 10px; }
.dealMeta span { display: inline-flex; align-items: center; gap: 4px; }
.dealMeta svg { width: 14px; height: 14px; }
.dealPrice { margin-top: 4px; display: flex; align-items: baseline; gap: 4px; }
.dealPrice strong { color: var(--brand-dark); font-size: 16px; font-weight: 800; }
.dealPrice span { color: var(--muted); font-size: 10px; }
.publicLegal { display: block; margin-top: 5px; overflow: hidden; color: #94a3b8; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.dealActions { margin-top: 11px; display: flex; align-items: center; gap: 6px; }
.detailAction { min-height: 36px; flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 16px; border-radius: 12px; color: var(--white); background: var(--brand); box-shadow: 0 4px 12px rgba(184,41,138,.16); font-size: 10px; font-weight: 700; transition: background .16s ease, transform .16s ease, box-shadow .16s ease; }
.detailAction:hover { background: #961E70; box-shadow: 0 7px 18px rgba(184,41,138,.22); }
.detailAction svg { width: 14px; height: 14px; }
.iconAction { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 8px; color: var(--text); background: var(--white); }
.iconAction:hover { color: var(--brand); border-color: var(--brand-soft-strong); background: var(--brand-soft); }
.iconAction svg { width: 15px; height: 15px; }

.emptyListings { min-height: 360px; grid-column: 1 / -1; display: grid; place-items: center; align-content: center; gap: 9px; padding: 32px; border: 1px dashed #cbd5e1; border-radius: 16px; background: var(--canvas); text-align: center; }
.emptyListings > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; color: var(--brand); background: var(--brand-soft); }
.emptyListings h3, .emptyListings p { margin-bottom: 0; }
.emptyListings p { max-width: 340px; font-size: 12px; }
.emptyListings a { min-height: 36px; display: inline-flex; align-items: center; padding: 0 14px; border-radius: 8px; color: var(--white); background: var(--brand); font-size: 11px; font-weight: 800; }

/* Supporting sections */
.customerGuide { border-top: 1px solid var(--line); }
.customerIntro { margin-right: auto; margin-left: auto; text-align: center; }
.customerCards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.customerCards article { min-height: 190px; display: grid; justify-items: center; align-content: start; padding: 22px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); text-align: center; }
.guideSketch { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 12px; border-radius: 12px; color: var(--brand); background: var(--brand-soft); }
.guideSketch svg { width: 23px; height: 23px; }
.customerCards article b { width: 22px; height: 22px; display: grid; place-items: center; margin-bottom: 8px; border-radius: 50%; color: var(--white); background: var(--brand); font-size: 9px; }
.customerCards article strong { font-size: 13px; }
.customerCards article p { margin: 6px 0 0; font-size: 11px; }
.businessNudge { position: relative; min-height: 330px; margin-top: 12px; margin-bottom: 12px; display: grid; align-items: center; overflow: hidden; border-radius: 16px; color: var(--white); background: #0f172a url("assets/likya-optimized.webp") center / cover no-repeat; }
.businessNudge::before { display: none; content: none; }
.nudgeCopy { position: relative; z-index: 1; max-width: 600px; padding: 36px; }
.ownerBadge { display: inline-flex; align-items: center; min-height: 26px; margin-bottom: 12px; padding: 0 9px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; color: var(--white); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.nudgeCopy h2 { max-width: 560px; margin-bottom: 14px; color: var(--white); }
.nudgeCopy ul { display: grid; gap: 7px; margin: 0 0 18px; padding: 0; list-style: none; color: rgba(255,255,255,.86); font-size: 11px; }
.nudgeCopy li::before { content: "\2713"; margin-right: 8px; color: #F4DDEB; font-weight: 800; }
.nudgeCta, .primaryCta, .articleCta, .readMore, .blogCta > a { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 0 15px; border-radius: 8px; color: var(--white); background: var(--brand); font-size: 11px; font-weight: 800; transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.nudgeCta:hover, .primaryCta:hover, .articleCta:hover, .readMore:hover, .blogCta > a:hover { background: var(--brand-dark); box-shadow: 0 10px 24px rgba(184,41,138,.22); }
.faqSection { border-top: 1px solid var(--line); }
.faqSection .sectionTitle { margin-right: auto; margin-left: auto; text-align: center; }
.faqGrid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.faqGrid details { border: 1px solid var(--line); border-radius: 10px; background: var(--white); }
.faqGrid summary { min-height: 52px; display: flex; align-items: center; justify-content: space-between; padding: 0 15px; color: var(--ink); cursor: pointer; font-size: 11px; font-weight: 700; list-style: none; }
.faqGrid summary::after { content: "+"; color: var(--brand); font-size: 18px; font-weight: 500; }
.faqGrid details[open] summary::after { content: "−"; }
.faqGrid details p { margin: 0; padding: 0 15px 15px; font-size: 11px; }

/* Footer */
.siteFooter { width: var(--content); margin: 0 auto; display: grid; grid-template-columns: 1.1fr .72fr .78fr 1.45fr; gap: 34px; padding: 40px 0 22px; border-top: 1px solid var(--line); color: var(--muted); background: var(--white); font-size: 11px; }
.footerBrand, .footerCol, .footerLinks { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.footerLogo { display: inline-flex; align-items: center; gap: 8px; color: var(--brand); font-size: 15px; font-weight: 800; }
.footerFavicon, .footerBrand > img { width: 28px; height: 28px; object-fit: contain; }
.footerBrand p { max-width: 300px; margin: 3px 0; font-size: 11px; line-height: 1.6; }
.footerCol strong, .footerLinks strong, .footerTrust strong { margin-bottom: 3px; color: var(--ink); font-size: 11px; }
.footerCol a, .footerLinks a, .footerBrand > a:not(.footerLogo), .blogFooter nav a { color: var(--muted); font-size: 11px; }
.footerCol a:hover, .footerLinks a:hover, .footerBrand > a:hover, .blogFooter nav a:hover { color: var(--brand); }
.qrBox { width: 172px; height: 150px; display: grid; place-items: center; border: 0; color: var(--ink); background: linear-gradient(90deg,var(--ink) 12%,transparent 12% 24%,var(--ink) 24% 36%,transparent 36% 48%,var(--ink) 48% 60%,transparent 60% 72%,var(--ink) 72% 84%,transparent 84%), linear-gradient(var(--ink) 12%,transparent 12% 24%,var(--ink) 24% 36%,transparent 36% 48%,var(--ink) 48% 60%,transparent 60% 72%,var(--ink) 72% 84%,transparent 84%); background-size: 18px 18px; font-size: 0; }
.storeBadge { min-height: 30px; display: inline-flex; align-items: center; padding: 0 11px; border-radius: 7px; color: var(--white); background: var(--ink); font-size: 9px; font-weight: 800; }
.footerBottom { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 20px; margin-top: 8px; padding-top: 16px; border-top: 1px solid var(--soft-line); color: #94a3b8; font-size: 10px; }
.mobileDock { display: none; }
.compareBar { position: fixed; right: 20px; bottom: 20px; z-index: 80; min-width: 240px; display: none; grid-template-columns: 1fr auto; align-items: center; gap: 14px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); box-shadow: var(--shadow-md); }
.compareBar.open { display: grid; }
.compareBar div { display: grid; gap: 2px; }
.compareBar strong { font-size: 11px; }
.compareBar span { color: var(--muted); font-size: 9px; }
.compareBar button { min-height: 32px; padding: 0 10px; border: 1px solid var(--line); border-radius: 7px; color: var(--text); background: var(--white); font-size: 10px; font-weight: 700; }

/* Static pages */
.staticNav, .topNav.staticTop, .blogNav { min-height: 72px; padding: 8px 0; border-bottom: 1px solid var(--line); background: var(--white); }
.aboutBody main, .staticPage main { min-height: 100vh; }
.searchPage { background: var(--white); }
.searchPage .staticTop { position: sticky; top: 0; z-index: 60; }
.searchWorkspace { width: var(--content); margin: 0 auto; padding: 28px 0 8px; }
.searchPageIntro { max-width: 760px; margin-bottom: 18px; }
.searchPageIntro h1 { margin-bottom: 8px; font-size: clamp(26px,3vw,34px); }
.searchPageIntro p { margin-bottom: 0; font-size: 12px; }
.searchPage .searchTabs { width: 100%; margin: 0 0 8px; justify-content: flex-start; }
.searchPage .searchTabs button { color: var(--muted); }
.searchPage .searchTabs button:hover { color: var(--brand); background: var(--brand-soft); }
.searchPage .searchTabs button.active { color: var(--white); background: var(--brand); box-shadow: 0 5px 16px rgba(184,41,138,.16); }
.searchPage .searchBar { width: 100%; margin: 0; border-color: var(--line); box-shadow: var(--shadow-sm); }
.searchPage .categoryRail { width: 100%; min-height: 84px; justify-content: flex-start; padding-left: 0; }
.searchPage .latest { width: var(--content); padding-top: 24px; }
.aboutHero, .pricingHero, .legalShell, .articleWrap, .blogMain { width: var(--content); margin: 0 auto; }
.aboutHero { padding: 46px 0 28px; }
.pricingHero { padding: 32px 0 20px; }
.aboutHero h1, .pricingHero h1, .legalShell h1, .articleWrap h1, .blogHero h1 { color: var(--ink); }
.aboutHero > p, .pricingHero > p { max-width: 820px; font-size: 13px; }
.aboutHeroMap { margin-top: 24px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.aboutHeroMap div, .aboutGrid article, .pricingExplain article, .blogGrid article, .detailInfoGrid article { border: 1px solid var(--line); border-radius: 12px; background: var(--white); }
.aboutHeroMap div { display: grid; gap: 5px; padding: 16px; }
.aboutHeroMap span, .detailInfoGrid span { color: var(--muted); font-size: 10px; }
.aboutHeroMap strong, .detailInfoGrid strong { color: var(--ink); font-size: 12px; }
.aboutGrid, .pricingExplain { width: var(--content); margin: 0 auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; padding: 12px 0 34px; }
.aboutGrid article, .pricingExplain article { padding: 20px; }
.aboutGrid article > span, .pricingExplain article > span { color: var(--brand); font-size: 10px; font-weight: 800; }
.aboutGrid h2, .pricingExplain h2 { margin: 12px 0 7px; font-size: 17px; }
.aboutGrid p, .pricingExplain p { margin-bottom: 0; font-size: 11px; }
.aboutLegal, .aboutSeo, .pricingSection { width: var(--content); margin: 0 auto 30px; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.pricingSection { padding: 28px; }
.pricingPage .pricingSection { padding: 0; border: 0; border-radius: 0; background: transparent; }
.aboutLegal p, .aboutSeo p, .pricingSection p { font-size: 12px; }
.pricingListHead { max-width: 720px; }
.pricingRows { max-width: 1100px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; gap: 24px; margin: 28px auto 20px; }
.priceRow { position: relative; min-height: 410px; display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 24px; border: 2px solid var(--soft-line); border-radius: 24px; background: var(--white); box-shadow: 0 10px 30px rgba(15,23,42,.05); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.priceRow:not(.popular):hover { transform: translateY(-3px); border-color: rgba(184,41,138,.3); box-shadow: 0 16px 36px rgba(15,23,42,.08); }
.priceRow .planEyebrow { margin-bottom: 18px; color: var(--brand-dark); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.priceRow h3 { margin: 0 0 13px; display: flex; align-items: baseline; gap: 4px; }
.priceRow h3 strong { color: var(--ink); font-size: 30px; font-weight: 800; }
.priceRow h3 span { color: var(--muted); font-size: 11px; font-weight: 600; }
.priceRow .planSummary { min-height: 44px; margin-bottom: 18px; font-size: 11px; }
.priceRow ul { display: grid; gap: 11px; margin: 0 0 24px; padding: 0; list-style: none; color: var(--text); font-size: 11px; }
.priceRow li { position: relative; padding-left: 21px; }
.priceRow li::before { content: "\2713"; position: absolute; top: 0; left: 0; color: var(--brand); font-weight: 800; }
.priceRow > a { min-height: 42px; margin-top: auto; display: inline-flex; align-items: center; justify-content: center; padding: 0 14px; border-radius: 12px; color: var(--white); background: var(--brand); font-size: 11px; font-weight: 800; transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.priceRow > a:hover { transform: translateY(-2px); background: var(--brand-dark); box-shadow: 0 12px 28px rgba(184,41,138,.24); }
.priceRow.popular { z-index: 2; color: var(--white); border: 2px solid var(--brand); background: linear-gradient(180deg,#B8298A,#961E70); box-shadow: 0 24px 58px rgba(150,30,112,.24); transform: scale(1.05); }
.priceRow.popular .planEyebrow, .priceRow.popular h3 strong, .priceRow.popular h3 span, .priceRow.popular .planSummary, .priceRow.popular ul { color: var(--white); }
.priceRow.popular .planSummary, .priceRow.popular h3 span { color: rgba(255,255,255,.82); }
.priceRow.popular li::before { color: var(--white); }
.priceRow.popular > a { color: var(--brand); background: var(--white); }
.priceRow.popular > a:hover { color: var(--brand-dark); background: var(--brand-soft); }
.popularBadge { position: absolute; top: -13px; left: 50%; min-height: 26px; display: inline-flex; align-items: center; padding: 0 12px; border-radius: 999px; color: var(--brand); background: var(--white); box-shadow: 0 8px 20px rgba(126,26,94,.22); font-size: 9px; font-weight: 900; text-transform: uppercase; transform: translateX(-50%); white-space: nowrap; }
.pricingFlow { margin-top: 14px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--line); border-radius: 9px; background: var(--white); }
.pricingFlow span { min-height: 42px; display: grid; place-items: center; border-right: 1px solid var(--line); color: var(--text); font-size: 10px; font-weight: 700; }
.pricingFlow span:last-child { border-right: 0; }
.pricingNote { margin-top: 14px; padding: 15px; border-left: 3px solid var(--brand); background: var(--brand-soft); }
.pricingNote p { margin: 5px 0 0; }
.pricingExplain { grid-template-columns: repeat(2,minmax(0,1fr)); }
.aboutTrustSection, .aboutStepsSection { width: var(--content); margin: 0 auto; padding: 30px 0; }
.aboutSectionHead { max-width: 720px; margin-bottom: 18px; }
.aboutSectionHead h2 { margin-bottom: 0; }
.aboutSectionHead.centered { margin-right: auto; margin-left: auto; text-align: center; }
.aboutTrustGrid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.aboutTrustGrid article { min-height: 210px; padding: 22px; border: 1px solid var(--brand-soft-strong); border-radius: 20px; background: linear-gradient(135deg,var(--canvas),rgba(251,242,248,.62)); }
.trustIcon, .stepIcon { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 16px; border-radius: 16px; color: var(--brand); background: var(--brand-soft-strong); }
.trustIcon svg, .stepIcon svg { width: 23px; height: 23px; }
.trustBadge { display: inline-flex; align-items: center; min-height: 24px; margin-bottom: 10px; padding: 0 9px; border: 1px solid rgba(184,41,138,.18); border-radius: 999px; color: var(--brand); background: rgba(255,255,255,.84); font-size: 9px; font-weight: 800; }
.aboutTrustGrid h3 { margin-bottom: 8px; font-size: 15px; }
.aboutTrustGrid p { margin-bottom: 0; font-size: 11px; }
.aboutStepsSection { border-top: 1px solid var(--line); }
.aboutGrid.aboutSteps { width: 100%; padding: 0; }
.aboutSteps article { min-height: 220px; display: flex; flex-direction: column; align-items: center; padding: 24px; border-color: var(--brand-soft-strong); border-radius: 24px; background: linear-gradient(135deg,var(--canvas),rgba(251,242,248,.7)); text-align: center; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.aboutSteps article:hover { transform: translateY(-4px); border-color: rgba(184,41,138,.34); box-shadow: 0 16px 34px rgba(15,23,42,.08); }
.aboutSteps article:hover .stepIcon { color: var(--white); background: var(--brand); }
.aboutSteps article > b { width: 28px; height: 28px; display: grid; place-items: center; margin-bottom: 9px; border-radius: 50%; color: var(--white); background: var(--brand); font-size: 9px; }
.aboutSteps article > .stepIcon { margin-bottom: 12px; }
.aboutSteps h2 { margin: 0 0 7px; font-size: 16px; }
.aboutSteps p { margin-bottom: 0; }
.legalShell, .articleWrap { max-width: 840px; padding: 52px 0 70px; }
.legalShell p, .articleWrap p, .articleWrap li { color: var(--text); font-size: 13px; line-height: 1.75; }
.legalShell h2, .articleWrap h2 { margin-top: 28px; font-size: 20px; }
.categoryLanding a, .legalShell a:not(.logo) { color: var(--brand); font-weight: 700; }

/* Detail */
.detailShell { width: var(--content); min-height: 66vh; margin: 0 auto; padding: 34px 0 54px; }
.detailHeroCard { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(340px,.85fr); gap: 24px; }
.detailPhoto { overflow: hidden; aspect-ratio: 4 / 3; border-radius: 16px; background: var(--canvas); }
.detailPhoto img { width: 100%; height: 100%; object-fit: cover; }
.detailSummary { align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding: 26px; border: 1px solid var(--line); border-radius: 16px; background: var(--white); }
.detailSummary h1 { margin-bottom: 12px; font-size: clamp(28px,3vw,38px); }
.detailSummary > p { font-size: 12px; }
.detailPrice { display: grid; gap: 3px; margin: 14px 0; }
.detailPrice span { color: var(--muted); font-size: 10px; }
.detailPrice strong { color: var(--ink); font-size: 24px; }
.detailActions { display: flex; flex-wrap: wrap; gap: 8px; }
.detailPrimary, .detailSecondary { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; padding: 0 14px; border-radius: 8px; font-size: 11px; font-weight: 800; }
.detailPrimary { color: var(--white); background: var(--brand); }
.detailSecondary { border: 1px solid var(--line); color: var(--text); background: var(--white); }
.detailInfoGrid { margin-top: 18px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.detailInfoGrid article { display: grid; gap: 5px; padding: 16px; }
.detailNotice, .detailEmpty { margin-top: 18px; padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.detailEmpty { min-height: 340px; display: grid; place-items: center; align-content: center; text-align: center; }

/* Blog */
.blogHeader { border-bottom: 1px solid var(--line); }
.blogHero { width: var(--content); margin: 0 auto; padding: 48px 0 30px; }
.blogHero p { max-width: 780px; font-size: 13px; }
.blogMain { padding: 30px 0 50px; }
.blogGrid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.blogGrid article { min-height: 205px; display: flex; flex-direction: column; align-items: flex-start; padding: 19px; }
.blogGrid article > span { color: var(--brand); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.blogGrid h2 { margin: 12px 0 8px; font-size: 16px; }
.blogGrid p { margin-bottom: 16px; font-size: 11px; }
.blogGrid .readMore { min-height: 32px; margin-top: auto; }
.blogCta { margin-top: 24px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px; border-radius: 12px; background: var(--canvas); }
.blogCta h2 { margin-bottom: 6px; }
.blogCta p { max-width: 760px; margin-bottom: 0; font-size: 11px; }
.blogFooter { grid-template-columns: 1fr auto; align-items: start; }
.blogFooter nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 14px; }
.articleWrap article { padding: 26px; border: 1px solid var(--line); border-radius: 12px; }
.articleWrap .lead { color: var(--muted); font-size: 14px; }

/* Motion */
.motion-ready .motionItem, .motion-ready .dealCard, .motion-ready .customerCards article { opacity: 0; transform: translateY(10px); transition: opacity .36s ease, transform .36s ease; }
.motion-ready .motionItem.inView, .motion-ready .dealCard.inView, .motion-ready .customerCards article.inView { opacity: 1; transform: none; }

/* Panel font only; panel-theme owns its layout */
body.panelBody, body.panelBody *, body.panelBody input, body.panelBody select, body.panelBody textarea, body.panelBody button { font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: 0; }

@media (max-width: 1050px) {
  .hero.compactHero { min-height: 540px; }
  .navActions .ghostLink:nth-child(3), .navActions .ghostLink:nth-child(4), .navActions .ghostLink:nth-child(5) { display: none; }
  .searchBar { grid-template-columns: minmax(170px,1fr) minmax(260px,1.35fr) minmax(170px,.9fr) 48px; }
  .categoryRail { justify-content: flex-start; }
  .resultsShell { grid-template-columns: minmax(0,1fr) 360px; }
  #publicListings.cards { grid-template-columns: 1fr; }
  .homePage #publicListings.cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .blogGrid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 820px) {
  body.homePage, body.searchPage { padding-bottom: 64px; }
  .hero.compactHero { width: 100%; min-height: 560px; margin-top: 0; padding: 16px 14px 24px; }
  .heroImageStage { border-radius: 0 0 18px 18px; }
  .hero .topNav { width: 100%; }
  .logo img, .logoAsset img, .blogLogoImage img { width: 150px; }
  .navActions .ghostLink { display: none; }
  .listYourPlace { min-height: 36px; padding: 0 12px; font-size: 10px; }
  .menuToggle { width: 38px; height: 38px; }
  .heroLayout { margin-top: 54px; }
  .searchTabs { justify-content: flex-start; }
  .searchBar { width: min(600px,calc(100% - 12px)); grid-template-columns: 1fr 48px; border-radius: 14px; }
  .searchBar > label { grid-column: 1; min-height: 56px; border-right: 0; border-bottom: 1px solid var(--line); }
  .searchBar > label:nth-of-type(3) { border-bottom: 0; }
  .searchSubmit { grid-column: 2; grid-row: 1 / 4; align-self: stretch; width: 42px; height: auto; margin: 2px 0; border-radius: 10px; }
  .cityDropdown { width: min(320px,calc(100vw - 48px)); }
  .resultsShell { grid-template-columns: 1fr; }
  #publicListings.cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .homePage #publicListings.cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .customerCards, .aboutGrid, .aboutHeroMap, .detailInfoGrid { grid-template-columns: 1fr; }
  .detailHeroCard, .faqGrid, .pricingRows, .pricingExplain, .aboutTrustGrid { grid-template-columns: 1fr; }
  .priceRow.popular { transform: none; }
  .siteFooter { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mobileDock { position: fixed; right: 0; bottom: 0; left: 0; z-index: 90; min-height: 58px; display: grid; grid-template-columns: repeat(4,1fr); padding: 6px max(10px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)); border-top: 1px solid var(--line); background: rgba(255,255,255,.96); box-shadow: 0 -8px 22px rgba(15,23,42,.08); backdrop-filter: blur(12px); }
  .mobileDock a { display: grid; place-items: center; align-content: center; gap: 3px; color: var(--muted); font-size: 9px; }
  .mobileDock a.active { color: var(--brand); }
  .mobileDock svg { width: 19px; height: 19px; }
  .compareBar { right: 12px; bottom: 72px; }
}

@media (max-width: 580px) {
  :root { --content: min(100% - 24px, 1180px); }
  body:not(.panelBody) h1 { font-size: 30px; }
  .hero.compactHero { min-height: 590px; }
  .heroPill { max-width: 94%; min-height: 0; padding: 6px 10px; line-height: 1.35; }
  .heroLayout { margin-top: 46px; }
  .heroCopy > p { font-size: 12px; }
  .searchTabs { width: calc(100% - 6px); margin-top: 18px; }
  .searchBar { width: calc(100% - 6px); }
  .dateInputs input { font-size: 9px; }
  .categoryRail { width: 100%; gap: 8px; padding-right: 12px; padding-left: 12px; }
  .categoryRail button { min-width: 74px; }
  .latest, .customerGuide, .faqSection { padding-top: 26px; padding-bottom: 26px; }
  .smartFilter { align-items: stretch; flex-direction: column; }
  .budgetRange { display: grid; grid-template-columns: auto 1fr auto; }
  .budgetRange input { width: 100%; }
  #publicListings.cards { grid-template-columns: 1fr; }
  .homePage #publicListings.cards { grid-template-columns: 1fr; }
  .dealCard { border-radius: 14px; }
  .businessNudge { width: 100%; min-height: 340px; border-radius: 0; }
  .nudgeCopy { padding: 28px 18px; }
  .siteFooter { grid-template-columns: 1fr; gap: 24px; padding-top: 32px; }
  .footerBottom { display: grid; gap: 5px; }
  .staticNav, .topNav.staticTop, .blogNav { width: calc(100% - 24px); }
  .topNav,
  .staticNav,
  .blogNav { gap: 8px; }
  .logo img,
  .logoAsset img,
  .blogLogoImage img { width: 120px; }
  .navMenuActions { gap: 6px; }
  .certificateLookupNav,
  .listYourPlace { min-height: 36px; padding: 0 9px; font-size: 9px; }
  .certificateLookupNav svg { width: 13px; height: 13px; }
  .menuToggle { width: 36px; height: 36px; }
  .blogNav > div { display: none; }
  .aboutHero, .pricingHero, .legalShell, .articleWrap, .blogMain, .blogHero { width: calc(100% - 24px); }
  .aboutHero, .pricingHero, .blogHero { padding-top: 34px; }
  .searchWorkspace { width: calc(100% - 24px); padding-top: 20px; }
  .searchPage .latest { width: calc(100% - 24px); }
  .aboutLegal, .aboutSeo, .pricingSection { width: calc(100% - 24px); padding: 18px; }
  .pricingFlow { grid-template-columns: 1fr 1fr; }
  .pricingFlow span:nth-child(2) { border-right: 0; }
  .pricingFlow span:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .blogGrid { grid-template-columns: 1fr; }
  .blogCta { align-items: flex-start; flex-direction: column; }
  .blogFooter { display: grid; }
  .blogFooter nav { justify-content: flex-start; }
  .detailShell { width: calc(100% - 24px); }
  .detailSummary { padding: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* v409 full-width brand hero, customer drawer and detail-only map */
.hero.compactHero {
  width: 100%;
  min-height: 85vh;
  margin: 0;
  padding: 22px max(24px,calc((100vw - 1180px) / 2)) 30px;
  overflow: hidden;
}
.heroImageStage { border-radius: 0; }
.heroImageStage::after { background: none; }
.hero .topNav { width: min(1180px,100%); padding: 4px 0; transition: color .2s ease, background .2s ease, box-shadow .2s ease, padding .2s ease; }
.heroLayout { margin-top: clamp(56px,8vh,92px); }
.hero h1 { max-width: 980px; margin-bottom: 16px; font-size: clamp(40px,5vw,64px); font-weight: 800; filter: drop-shadow(0 4px 9px rgba(15,23,42,.42)); }
.heroCopy > p {
  max-width: 780px;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: #FCD34D;
  background: transparent;
  box-shadow: none;
  font-size: clamp(16px,1.6vw,20px);
  line-height: 1.55;
  font-weight: 700;
  filter: drop-shadow(0 3px 8px rgba(15,23,42,.72));
  backdrop-filter: none;
}
.heroCategoryRail {
  position: relative;
  z-index: 20;
  width: min(980px,calc(100% - 32px));
  min-height: 78px;
  margin: 12px auto 0;
  justify-content: flex-start;
  gap: 12px;
  padding: 7px 12px 6px;
  overflow-x: auto;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 14px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 16px 36px rgba(15,23,42,.2);
  backdrop-filter: blur(14px);
}
.heroCategoryRail button { min-width: 92px; height: 62px; }
.heroCategoryRail button::after { bottom: -6px; }
.resultsOnlyShell { display: block; }
.searchPage #publicListings.cards { grid-template-columns: repeat(3,minmax(0,1fr)); }
.searchPage .staticTop { position: relative; top: auto; }
.staticNav, .topNav.staticTop, .blogNav { position: relative; }

.mobile-scrolled .hero .topNav {
  padding: 4px 12px;
  border: 1px solid rgba(255,255,255,.86);
  border-radius: 12px;
  color: var(--ink);
  background: rgba(255,255,255,.96);
  box-shadow: 0 12px 30px rgba(15,23,42,.12);
  backdrop-filter: blur(14px);
}
.mobile-scrolled .hero .logo img { filter: none; }
.mobile-scrolled .hero .listYourPlace { border-color: var(--line); color: var(--brand); background: var(--white); }
.mobile-scrolled .hero .menuToggle { border-color: var(--line); color: var(--brand); background: var(--white); }

.drawerOpen { overflow: hidden; }
.menuBackdrop {
  position: fixed;
  inset: 0;
  z-index: 110;
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: rgba(15,23,42,.42);
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease;
  backdrop-filter: blur(3px);
}
.menuBackdrop:active { transform: none; }
.menuDrawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 120;
  width: min(360px,calc(100vw - 28px));
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 18px;
  overflow-y: auto;
  color: var(--ink);
  background: rgba(255,255,255,.98);
  box-shadow: -24px 0 70px rgba(15,23,42,.2);
  transform: translateX(104%);
  transition: transform .25s cubic-bezier(.22,.8,.25,1);
  backdrop-filter: blur(20px);
}
.userMenu.open .menuBackdrop { opacity: 1; pointer-events: auto; }
.userMenu.open .menuDrawer { transform: translateX(0); }
.drawerProfile { display: grid; grid-template-columns: 46px 1fr 38px; align-items: center; gap: 12px; margin-bottom: 6px; padding: 4px 2px 16px; border-bottom: 1px solid var(--line); }
.drawerAvatar { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; color: var(--white); background: var(--brand); }
.drawerAvatar svg { width: 21px; height: 21px; }
.drawerProfile div { display: grid; gap: 2px; }
.drawerProfile small, .drawerSupport small { color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.drawerProfile strong { color: var(--ink); font-size: 13px; }
.drawerClose { width: 38px; height: 38px; display: grid; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--text); background: var(--white); }
.drawerClose:hover { color: var(--brand); border-color: var(--brand-soft-strong); background: var(--brand-soft); }
.drawerClose svg { width: 18px; height: 18px; }
.drawerLinks { display: grid; gap: 3px; }
.drawerLinks a { min-height: 44px; display: flex; align-items: center; gap: 12px; padding: 0 12px; border-radius: 10px; color: var(--ink); font-size: 12px; font-weight: 700; transition: color .16s ease, background .16s ease, transform .16s ease; }
.drawerLinks a:hover { color: var(--brand); background: var(--brand-soft); transform: translateX(3px); }
.drawerLinks svg { width: 18px; height: 18px; color: var(--muted); }
.drawerLinks a:hover svg { color: var(--brand); }
.drawerDivider { position: relative; margin: 8px 0 3px; border-top: 1px solid var(--line); }
.drawerDivider span { position: relative; top: -7px; padding-right: 8px; color: var(--muted); background: var(--white); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.drawerSupport { margin-top: auto; display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--brand-soft-strong); border-radius: 12px; color: var(--brand); background: var(--brand-soft); }
.drawerSupport > svg { width: 20px; height: 20px; }
.drawerSupport div { display: grid; gap: 2px; }
.drawerSupport a { color: var(--ink); font-size: 11px; font-weight: 800; }

.detailLocation { margin-top: 18px; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--white); }
.detailLocationHead { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 15px; }
.detailLocationHead h2 { margin-bottom: 6px; }
.detailLocationHead p:last-child { max-width: 720px; margin-bottom: 0; font-size: 11px; }
.detailLocationHead > a { min-height: 38px; flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; padding: 0 13px; border-radius: 10px; color: var(--white); background: var(--brand); font-size: 10px; font-weight: 800; }
.detailLocationHead > a:hover { background: var(--brand-dark); }
.detailLocationHead > a svg { width: 15px; height: 15px; }
.detailMapWrap { overflow: hidden; aspect-ratio: 16 / 6; min-height: 280px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.detailMapFrame { width: 100%; height: 100%; display: block; border: 0; }

@media (max-width: 1050px) {
  .searchPage #publicListings.cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 820px) {
  .hero.compactHero { width: 100%; min-height: max(700px,85svh); margin: 0; padding: 16px 14px 24px; }
  .heroImageStage { border-radius: 0; }
  .hero h1 { font-size: clamp(38px,9vw,54px); }
  .heroCopy > p { font-size: 16px; }
  .heroCategoryRail { width: calc(100% - 12px); }
  .menuDrawer { width: min(360px,calc(100vw - 18px)); }
  .detailLocationHead { align-items: flex-start; flex-direction: column; }
  .detailMapWrap { aspect-ratio: 4 / 3; min-height: 260px; }
}

@media (max-width: 580px) {
  .hero.compactHero { min-height: max(740px,92svh); }
  .heroLayout { margin-top: 42px; }
  .heroPill { color: var(--white); background: rgba(15,23,42,.28); }
  .heroCategoryRail { width: calc(100% - 6px); min-height: 72px; border-radius: 12px; }
  .heroCategoryRail button { min-width: 80px; height: 58px; }
  .searchPage #publicListings.cards { grid-template-columns: 1fr; }
  .detailLocation { padding: 14px; }
}

/* v411 body-level drawer, compact global search header and original business band */
.hero.compactHero { min-height: 80vh; }
.hero::before,
.hero::after { display: none !important; content: none !important; }
.heroImageStage::after { background: none !important; }
.hero h1,
.heroCopy > p { position: relative; z-index: 2; }
.homePage .hero .heroCopy > p.heroSubtitle {
  max-width: 780px;
  margin-right: auto;
  margin-left: auto;
  padding: 0;
  border: 0;
  color: #FCD34D !important;
  background: transparent;
  box-shadow: none;
  filter: drop-shadow(0 3px 8px rgba(15,23,42,.72));
}

.businessNudge {
  width: 100%;
  min-height: 300px;
  margin: 16px 0;
  display: grid;
  grid-template-columns: minmax(0,1.35fr) minmax(320px,.65fr);
  align-items: center;
  gap: clamp(32px,6vw,88px);
  padding: 34px max(24px,calc((100vw - 1180px) / 2));
  border-radius: 0;
  background: linear-gradient(100deg,#B8298A 0%,#961E70 72%,#6A1350 100%);
}
.businessNudge::before { display: none; content: none; }
.businessNudge .nudgeCopy { width: min(760px,100%); max-width: none; padding: 0; }
.businessNudge .ownerBadge { color: var(--brand); background: var(--white); }
.homePage .businessNudge h2 { max-width: 760px; margin-bottom: 0; color: var(--white); font-size: clamp(24px,2.1vw,30px); }
.businessNudge .nudgeCopy .nudgeBenefits { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 13px 0 15px; padding: 0; list-style: none; }
.nudgeBenefits li { min-height: 28px; display: inline-flex; align-items: center; gap: 7px; margin: 0; padding: 0; border: 0; border-radius: 0; color: var(--white); background: transparent; font-size: 10px; font-weight: 800; }
.businessNudge .nudgeBenefits li::before { display: none; content: none; }
.nudgeBenefits svg { width: 18px; height: 18px; }
.businessNudge .nudgeCta { min-height: 40px; border-radius: 8px; color: var(--brand); background: var(--white); box-shadow: 0 12px 28px rgba(67,14,50,.18); }
.businessNudge .nudgeCta:hover { color: var(--brand-dark); transform: translateY(-2px); }
.nudgeSignal { min-width: 0; padding: 4px 0 4px clamp(24px,4vw,52px); border-left: 1px solid rgba(255,255,255,.32); color: var(--white); }
.nudgeSignal > p { margin-bottom: 19px; color: rgba(255,255,255,.72) !important; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.nudgeNumbers { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.nudgeNumbers > span { min-width: 0; display: grid; gap: 5px; padding-right: 13px; }
.nudgeNumbers > span + span { padding-left: 13px; border-left: 1px solid rgba(255,255,255,.24); }
.nudgeNumbers strong { color: var(--white); font-size: clamp(28px,3vw,42px); line-height: 1; }
.nudgeNumbers small { color: rgba(255,255,255,.78); font-size: 9px; line-height: 1.35; font-weight: 700; }
.nudgeCategories { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 24px; }
.nudgeCategories span { padding: 5px 0; color: rgba(255,255,255,.74); font-size: 9px; font-weight: 800; }
.nudgeCategories span + span::before { content: "/"; margin-right: 7px; color: rgba(255,255,255,.34); }

.navQuickSearch {
  position: absolute;
  left: 50%;
  width: min(440px,38vw);
  min-height: 44px;
  display: grid;
  grid-template-columns: 1.1fr 1fr .72fr 38px;
  align-items: stretch;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--text);
  background: var(--white);
  box-shadow: 0 7px 20px rgba(15,23,42,.08);
  transform: translateX(-50%);
  transition: opacity .18s ease, visibility .18s ease, box-shadow .18s ease;
}
.navQuickSearch:hover { box-shadow: 0 10px 26px rgba(15,23,42,.12); }
.navQuickSearch > span { min-width: 0; display: flex; align-items: center; gap: 7px; padding: 0 10px; border-right: 1px solid var(--line); }
.navQuickSearch svg { width: 15px; height: 15px; flex: 0 0 auto; color: var(--brand); }
.navQuickSearch b { overflow: hidden; font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.navQuickSearch em { display: grid; place-items: center; border-radius: 7px; color: var(--white); background: var(--brand); font-style: normal; }
.navQuickSearch em svg { color: var(--white); }
.homePage:not(.mobile-scrolled) .hero .navQuickSearch { visibility: hidden; opacity: 0; }

.menuToggle {
  width: 46px;
  height: 38px;
  border-radius: 8px;
  border-left: 3px solid var(--brand);
}
.brandMenuGlyph { width: 20px; display: grid; justify-items: end; gap: 4px; }
.brandMenuGlyph > span { height: 2px; border-radius: 2px; background: currentColor; }
.brandMenuGlyph > span:nth-child(1) { width: 20px; }
.brandMenuGlyph > span:nth-child(2) { width: 14px; color: var(--brand); background: var(--brand); }
.brandMenuGlyph > span:nth-child(3) { width: 17px; }
.menuBackdrop { z-index: 9999; background: rgba(15,23,42,.5); backdrop-filter: none; }
.menuDrawer { z-index: 10000; color: var(--ink); background: var(--white); backdrop-filter: none; }
.drawerOpen .menuBackdrop { opacity: 1; pointer-events: auto; }
.drawerOpen .menuDrawer { transform: translateX(0); }
.drawerOpen .menuToggle { border-color: var(--brand); color: var(--brand); background: var(--white); }
.drawerOpen .topNav,
.drawerOpen .staticNav,
.drawerOpen .blogNav { z-index: 9000 !important; }
.searchBar { position: relative; z-index: 30; }
.searchBar:focus-within { z-index: 9999; }
.cityDropdown,
.menuDropdown { z-index: 9999 !important; }

.mobile-scrolled .hero .topNav {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9000;
  width: 100%;
  max-width: none;
  padding: 8px max(24px,calc((100vw - 1180px) / 2));
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: var(--white);
  box-shadow: 0 8px 24px rgba(15,23,42,.08);
  backdrop-filter: none;
}
.staticNav,
.topNav.staticTop,
.blogNav,
.searchPage .staticTop {
  position: sticky;
  top: 0;
  z-index: 9000;
  width: 100%;
  max-width: none;
  padding: 8px max(24px,calc((100vw - 1180px) / 2));
  background: var(--white);
}

.aboutHero,
.pricingHero { margin-top: 0; padding-top: 32px; }
.aboutTrustSection,
.aboutStepsSection,
.pricingExplain { padding-top: 32px; padding-bottom: 32px; }

.authPage { margin: 0; min-height: 100vh; color: var(--ink); background: var(--canvas); }
.authPage a { color: inherit; text-decoration: none; }
.authShell { min-height: 100vh; display: grid; grid-template-columns: minmax(320px,.8fr) minmax(480px,1.2fr); }
.authBrand { display: flex; flex-direction: column; justify-content: space-between; gap: 44px; padding: clamp(32px,5vw,72px); color: var(--white); background: var(--brand); }
.authLogo { width: 190px; height: 70px; display: flex; align-items: center; }
.authLogo img { width: 190px; height: 70px; object-fit: contain; object-position: left center; filter: brightness(0) invert(1); }
.authEyebrow { margin: 0 0 12px; color: rgba(255,255,255,.8); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.authBrand h1 { max-width: 560px; margin: 0 0 16px; color: var(--white); font-size: clamp(36px,4vw,58px); line-height: 1.02; }
.authBrand > div > p:last-child { max-width: 560px; margin: 0; color: rgba(255,255,255,.84); font-size: 15px; }
.authTrust { display: flex; flex-wrap: wrap; gap: 10px 20px; margin: 0; padding: 0; list-style: none; }
.authTrust li { display: flex; align-items: center; gap: 8px; color: var(--white); font-size: 11px; font-weight: 800; }
.authTrust svg { width: 18px; height: 18px; }
.authFormWrap { position: relative; display: flex; flex-direction: column; justify-content: center; padding: clamp(32px,6vw,90px); background: var(--white); }
.authBack { position: absolute; top: 28px; left: clamp(32px,6vw,90px); display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; font-weight: 800; }
.authBack:hover { color: var(--brand); }
.authBack svg { width: 16px; height: 16px; }
.authMode { width: min(420px,100%); display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-bottom: 24px; padding: 4px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); }
.authMode a { min-height: 38px; display: grid; place-items: center; border-radius: 6px; color: var(--muted); font-size: 11px; font-weight: 800; }
.authMode a.active { color: var(--brand); background: var(--white); box-shadow: 0 3px 10px rgba(15,23,42,.06); }
.authForm { width: min(420px,100%); display: grid; gap: 14px; }
.authForm h2 { margin: 0 0 8px; color: var(--ink); font-size: clamp(27px,3vw,36px); }
.authForm .kicker { margin-bottom: -6px; color: var(--brand); }
.authForm label { display: grid; gap: 6px; color: var(--ink); font-size: 11px; font-weight: 800; }
.authForm label[hidden] { display: none; }
.authForm input { min-height: 46px; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: var(--white); font: inherit; }
.authForm input:focus { outline: 3px solid rgba(184,41,138,.13); border-color: var(--brand); }
.authForm button { min-height: 46px; border: 0; border-radius: 8px; color: var(--white); background: var(--brand); font-size: 12px; font-weight: 800; }
.authForm button:hover { background: var(--brand-dark); }
.authForm .authTextButton { min-height: 32px; justify-self: start; padding: 0; color: var(--brand); background: transparent; }
.authForm .authTextButton:hover { color: var(--brand-dark); background: transparent; text-decoration: underline; }
.authMessage { min-height: 20px; margin: 0; color: var(--brand-dark); font-size: 11px; font-weight: 700; }
.businessAccess { width: min(420px,100%); min-height: 58px; display: grid; grid-template-columns: 22px 1fr 18px; align-items: center; gap: 10px; margin-top: 20px; padding: 0 13px; border: 1px solid var(--line); border-radius: 8px; color: var(--text); background: var(--canvas); font-size: 10px; }
.businessAccess strong { display: block; color: var(--ink); font-size: 11px; }
.businessAccess svg { width: 18px; height: 18px; color: var(--brand); }
.businessAccess:hover { border-color: var(--brand); background: var(--brand-soft); }

@media (min-width: 768px) {
  .aboutHero,
  .pricingHero { padding-top: 48px; }
  .aboutTrustSection,
  .aboutStepsSection,
  .pricingExplain { padding-top: 48px; padding-bottom: 48px; }
}

@media (max-width: 820px) {
  .mobile-scrolled .hero .topNav,
  .staticNav,
  .topNav.staticTop,
  .blogNav,
  .searchPage .staticTop { padding-left: 14px; padding-right: 14px; }
  .navQuickSearch { display: none; }
  .businessNudge { min-height: 340px; grid-template-columns: 1fr; gap: 26px; padding: 40px 20px; }
  .nudgeSignal { padding: 24px 0 0; border-top: 1px solid rgba(255,255,255,.3); border-left: 0; }
  .authShell { grid-template-columns: 1fr; }
  .authBrand { min-height: 340px; padding: 28px 24px; }
  .authFormWrap { min-height: 580px; padding: 84px 24px 40px; }
  .authBack { left: 24px; }
}

@media (max-width: 580px) {
  .menuToggle { width: 42px; height: 36px; }
  .businessNudge .nudgeCopy .nudgeBenefits { display: grid; }
  .nudgeBenefits li { width: 100%; }
  .nudgeNumbers strong { font-size: 28px; }
  .authBrand h1 { font-size: 36px; }
}

@media (min-width: 821px) and (max-width: 1080px) {
  .navQuickSearch { width: min(360px,34vw); }
  .navQuickSearch > span:nth-child(3) { display: none; }
  .navQuickSearch { grid-template-columns: 1.1fr 1fr 38px; }
}

/* v412 stable home header, moving category belt and compact business flow */
.homePage .hero.compactHero {
  position: relative;
  z-index: 3;
  min-height: 80vh;
  padding-top: 86px;
  overflow: visible;
}
.homePage main { position: relative; z-index: 1; }
.homePage .hero .topNav {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9000;
  width: 100%;
  max-width: none;
  min-height: 70px;
  margin: 0;
  padding: 8px max(24px,calc((100vw - 1180px) / 2));
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transition: color .2s ease, background .2s ease, box-shadow .2s ease;
}
.mobile-scrolled.homePage .hero .topNav {
  min-height: 70px;
  padding: 8px max(24px,calc((100vw - 1180px) / 2));
  border-bottom-color: var(--line);
  background: var(--white);
  box-shadow: 0 8px 24px rgba(15,23,42,.08);
}
.homePage .hero .logo img { filter: brightness(0) invert(1); }
.mobile-scrolled.homePage .hero .logo img { filter: none; }
.homePage .hero .heroCopy > p.heroSubtitle {
  color: #D7FF00 !important;
  font-family: inherit;
  font-size: 19px;
  line-height: 1.5;
  font-weight: 700;
  text-shadow: none;
  filter: none;
}
.homePage .searchBar { z-index: 120; }
.homePage .searchBar:focus-within { z-index: 10020; }
.homePage .cityDropdown { z-index: 10030 !important; }

.categoryTicker {
  width: 100%;
  margin: 20px 0 4px;
  overflow: hidden;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--white);
  box-shadow: 0 8px 28px rgba(15,23,42,.04);
}
.categoryTickerTrack {
  width: max-content;
  display: flex;
  align-items: center;
  animation: categoryTickerMove 34s linear infinite;
  will-change: transform;
}
.categoryTicker:hover .categoryTickerTrack,
.categoryTicker:focus-within .categoryTickerTrack { animation-play-state: paused; }
.categoryTicker .categoryRail {
  width: auto;
  min-height: 78px;
  flex: 0 0 auto;
  justify-content: flex-start;
  gap: 8px;
  margin: 0;
  padding: 7px 18px;
  overflow: visible;
  border: 0;
}
.categoryTicker .categoryRail button {
  width: 112px;
  min-width: 112px;
  height: 62px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 6px;
  color: var(--muted);
  background: transparent;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}
.categoryTicker .categoryRail button::after { right: 20px; bottom: -7px; left: 20px; }
.categoryTickerClone > button svg { width: 24px; height: 24px; stroke-width: 1.8; }
@keyframes categoryTickerMove {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.businessNudge {
  min-height: 320px;
  grid-template-columns: minmax(0,1.3fr) minmax(360px,.7fr);
  gap: clamp(34px,6vw,82px);
  background: linear-gradient(105deg,#B8298A 0%,#981F73 68%,#701653 100%);
}
.businessNudge .nudgeCopy .nudgeBenefits {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,max-content));
  column-gap: 24px;
  row-gap: 7px;
}
.nudgeFlow {
  min-width: 0;
  padding-left: clamp(22px,4vw,48px);
  border-left: 1px solid rgba(255,255,255,.28);
  color: var(--white);
}
.nudgeFlow > p:first-child {
  margin: 0 0 14px;
  color: rgba(255,255,255,.76);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}
.nudgeFlow ol { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.nudgeFlow li { position: relative; min-height: 52px; display: grid; grid-template-columns: 38px 1fr; align-items: center; gap: 12px; }
.nudgeFlow li:not(:last-child)::after { content: ""; position: absolute; top: 43px; bottom: -10px; left: 18px; width: 1px; background: rgba(255,255,255,.28); }
.nudgeFlow li > svg { width: 38px; height: 38px; padding: 9px; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; color: var(--brand); background: var(--white); }
.nudgeFlow li span { min-width: 0; display: grid; grid-template-columns: 24px 1fr; align-items: baseline; column-gap: 6px; }
.nudgeFlow li small { grid-row: 1 / span 2; color: rgba(255,255,255,.48); font-size: 9px; font-weight: 800; }
.nudgeFlow li strong { color: var(--white); font-size: 12px; }
.nudgeFlow li em { color: rgba(255,255,255,.7); font-size: 9px; font-style: normal; }
.nudgeFlowNote { display: flex; align-items: center; gap: 7px; margin: 15px 0 0 !important; color: rgba(255,255,255,.78) !important; font-size: 9px !important; font-weight: 700; }
.nudgeFlowNote svg { width: 15px; height: 15px; }

.menuToggle {
  width: 44px;
  height: 40px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 12px;
  background: rgba(255,255,255,.13);
}
.menuAccountIcon { width: 22px; height: 22px; display: block; color: var(--white); stroke-width: 1.8; }
.mobile-scrolled .menuToggle,
.staticNav .menuToggle,
.staticTop .menuToggle,
.blogNav .menuToggle { border-color: var(--line); background: var(--white); }
.mobile-scrolled .menuAccountIcon,
.staticNav .menuAccountIcon,
.staticTop .menuAccountIcon,
.blogNav .menuAccountIcon { color: var(--brand); }

[data-panel-view][hidden],
.panelGrid[hidden] { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  .categoryTickerTrack { animation: none; }
}

@media (max-width: 820px) {
  .homePage .hero.compactHero { padding-top: 78px; }
  .homePage .hero .topNav,
  .mobile-scrolled.homePage .hero .topNav { min-height: 64px; padding: 7px 14px; }
  .homePage .hero .heroCopy > p.heroSubtitle { font-size: 16px; }
  .categoryTicker { margin-top: 14px; }
  .categoryTicker .categoryRail { min-height: 70px; padding: 5px 10px; }
  .categoryTicker .categoryRail button { width: 94px; min-width: 94px; height: 58px; font-size: 10px; }
  .businessNudge { grid-template-columns: 1fr; }
  .nudgeFlow { padding: 23px 0 0; border-top: 1px solid rgba(255,255,255,.28); border-left: 0; }
}

@media (max-width: 580px) {
  .businessNudge .nudgeCopy .nudgeBenefits { grid-template-columns: 1fr; }
}

/* v412 real auth controls, listing amenities and compact location */
.authBrand .authEyebrow,
.authBrand > div > p:last-child,
.authBrand .authTrust li { color: var(--white) !important; }
.googleAuthButton {
  min-height: 48px !important;
  display: grid;
  grid-template-columns: 24px 1fr 24px;
  align-items: center;
  padding: 0 12px !important;
  border: 1px solid var(--line) !important;
  color: var(--ink) !important;
  background: var(--white) !important;
  box-shadow: 0 5px 14px rgba(15,23,42,.05);
}
.googleAuthButton:hover { border-color: var(--brand) !important; background: var(--brand-soft) !important; }
.googleAuthButton > span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; color: #4285F4; background: #F8FAFC; font-size: 15px; font-weight: 900; }
.googleAuthButton strong { grid-column: 2; font-size: 12px; }
.authDivider { position: relative; display: grid; place-items: center; margin: 2px 0; border-top: 1px solid var(--line); }
.authDivider span { position: relative; top: -8px; padding: 0 9px; color: var(--muted); background: var(--white); font-size: 9px; font-weight: 700; }
.authForm button:disabled { opacity: .62; cursor: wait; }

.dealAmenities { min-height: 25px; display: flex; align-items: center; gap: 5px; margin: 8px 0 2px; overflow: hidden; }
.dealAmenities span { min-width: max-content; display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px; border: 1px solid var(--line); border-radius: 6px; color: var(--text); background: var(--canvas); font-size: 8px; font-weight: 700; }
.dealAmenities svg { width: 12px; height: 12px; color: var(--brand); }

.detailAmenities { margin-top: 18px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); }
.detailSectionHead { margin-bottom: 12px; }
.detailSectionHead h2 { margin: 3px 0 0; font-size: 18px; }
.detailAmenities > div:last-child { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.detailAmenities > div:last-child span { min-height: 44px; display: flex; align-items: center; gap: 8px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: var(--canvas); font-size: 10px; font-weight: 750; }
.detailAmenities span svg { width: 17px; height: 17px; flex: 0 0 auto; color: var(--brand); }
.detailLocation { padding: 16px 18px; border-radius: 12px; }
.detailLocationHead { align-items: center; margin-bottom: 12px; }
.detailLocationHead h2 { font-size: 18px; }
.detailLocationGrid { display: grid; grid-template-columns: minmax(0,1fr) 270px; gap: 12px; }
.detailMapWrap { height: 218px; min-height: 0; aspect-ratio: auto; border-radius: 9px; }
.locationFacts { display: grid; align-content: stretch; gap: 7px; }
.locationFacts > span { min-height: 64px; display: grid; grid-template-columns: 30px 1fr; align-content: center; column-gap: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); }
.locationFacts svg { grid-row: 1 / span 2; width: 20px; height: 20px; align-self: center; color: var(--brand); }
.locationFacts b { color: var(--ink); font-size: 10px; }
.locationFacts small { color: var(--muted); font-size: 9px; line-height: 1.35; }

body .detailPrimary,
body .detailPrimary:visited,
body .dealActions .detailAction,
body .dealActions .detailAction:visited,
body .detailLocationHead > a,
body .detailLocationHead > a:visited { color: #FFFFFF !important; }
body .detailPrimary svg,
body .detailLocationHead > a svg { color: #FFFFFF !important; }

.searchLoadingScreen {
  position: fixed;
  inset: 0;
  z-index: 30000;
  display: grid;
  place-items: center;
  padding: 24px;
  visibility: hidden;
  opacity: 0;
  color: var(--ink);
  background: rgba(255,255,255,.97);
  transition: opacity .18s ease, visibility .18s ease;
}
.searchLoadingScreen.open { visibility: visible; opacity: 1; }
.searchLoadingContent {
  width: min(460px,100%);
  display: grid;
  justify-items: center;
  text-align: center;
}
.searchLoadingIcon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  margin-bottom: 18px;
  border-radius: 50%;
  color: var(--white);
  background: var(--brand);
  animation: searchIconPulse 1s ease-in-out infinite;
}
.searchLoadingIcon svg { width: 24px; height: 24px; }
.searchLoadingContent p { margin: 0 0 7px; color: var(--brand); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.searchLoadingContent strong { color: var(--ink); font-size: clamp(23px,4vw,34px); line-height: 1.16; }
.searchLoadingContent small { margin-top: 10px; color: var(--muted); font-size: 12px; }
.searchLoadingProgress { width: min(300px,76vw); height: 4px; margin-top: 24px; overflow: hidden; border-radius: 4px; background: var(--line); }
.searchLoadingProgress i { width: 42%; height: 100%; display: block; border-radius: inherit; background: var(--brand); animation: searchProgress 1s ease-in-out infinite; }
.searchIsLoading { overflow: hidden; }
@keyframes searchIconPulse { 50% { transform: scale(.92); opacity: .78; } }
@keyframes searchProgress { from { transform: translateX(-120%); } to { transform: translateX(340%); } }

@media (prefers-reduced-motion: reduce) {
  .searchLoadingIcon,
  .searchLoadingProgress i { animation: none; }
}

@media (max-width: 820px) {
  .detailAmenities > div:last-child { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .detailLocationGrid { grid-template-columns: 1fr; }
  .detailMapWrap { height: 210px; min-height: 0; aspect-ratio: auto; }
  .locationFacts { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 580px) {
  .detailAmenities > div:last-child,
  .locationFacts { grid-template-columns: 1fr; }
  .detailLocationHead { align-items: flex-start; }
  .detailMapWrap { height: 190px; min-height: 0; }
}

/* v414 listing flow, compact content and stable drawer states */
.homePage #publicListings.cards {
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 14px;
}
.searchPage #publicListings.cards {
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 14px;
}
.dealCard { border-radius: 12px; }
.dealImage { aspect-ratio: 16 / 11; }
.dealBody { padding: 11px 12px 12px; }
.dealBody h3 { font-size: 14px; }
.dealActions { gap: 5px; }
.dealActions .detailAction { min-height: 36px; }
.dealActions .iconAction { width: 36px; height: 36px; }
.listingLoadMore {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 20px auto 0;
  padding: 0 18px;
  border: 1px solid var(--brand);
  border-radius: 8px;
  color: var(--white);
  background: var(--brand);
  font-size: 11px;
  font-weight: 800;
}
.listingLoadMore:hover { color: var(--white); background: var(--brand-dark); box-shadow: 0 10px 24px rgba(184,41,138,.2); }
.listingLoadMore[hidden] { display: none !important; }
.listingLoadMore svg { width: 16px; height: 16px; }
.dealBadges {
  position: absolute;
  top: 9px;
  left: 9px;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  max-width: calc(100% - 58px);
}
.dealBadges .bestPriceBadge,
.discountBadge {
  position: static;
  min-height: 23px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 8px;
  font-weight: 800;
  box-shadow: 0 5px 14px rgba(15,23,42,.1);
}
.discountBadge { color: var(--white); background: var(--brand); }
.discountBadge svg { width: 12px; height: 12px; }
.sponsoredBadge,
.featuredBadge,
.verifiedBadge {
  position: static;
  min-height: 23px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0 8px;
  border-radius: 999px;
  color: var(--white);
  font-size: 8px;
  font-weight: 850;
  box-shadow: 0 5px 14px rgba(15,23,42,.12);
}
.sponsoredBadge { background: #B8298A; }
.featuredBadge { background: #0F172A; }
.verifiedBadge { color: #FFFFFF; background: #2563EB; }
.sponsoredBadge svg,
.featuredBadge svg,
.verifiedBadge svg { width: 12px; height: 12px; }
.dealPrice { flex-wrap: wrap; }
.dealPrice del { margin-right: 5px; color: #94a3b8; font-size: 9px; font-weight: 700; }
.detailPrice { align-items: flex-start; }
.detailPrice del { color: var(--muted); font-size: 11px; }
.detailDiscountBadge { width: max-content; display: inline-flex; align-items: center; gap: 5px; margin: 4px 0 2px; padding: 5px 8px; border-radius: 999px; color: var(--white); background: var(--brand); font-size: 9px; font-weight: 800; }
.detailDiscountBadge svg { width: 13px; height: 13px; }

.categoryTicker {
  margin: 2px 0 10px;
  box-shadow: none;
}
.categoryTickerTrack {
  animation: categoryTickerMove 24s linear infinite !important;
  animation-play-state: running !important;
}
.categoryTicker:hover .categoryTickerTrack,
.categoryTicker:focus-within .categoryTickerTrack { animation-play-state: running !important; }
@media (prefers-reduced-motion: reduce) {
  .categoryTickerTrack { animation: categoryTickerMove 54s linear infinite !important; }
}

/* v415: immediate content, seamless category ticker and category identities */
.motion-ready .motionItem,
.motion-ready .dealCard,
.motion-ready .customerCards article {
  opacity: 1 !important;
  transform: none !important;
  transition-delay: 0ms !important;
}
.categoryTickerTrack {
  animation: categoryTickerMove 26s linear infinite !important;
  backface-visibility: hidden;
}
.categoryTicker:hover .categoryTickerTrack,
.categoryTicker:focus-within .categoryTickerTrack { animation-play-state: paused !important; }
@keyframes categoryTickerMove {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(calc(-1 * var(--ticker-shift, 960px)),0,0); }
}
@media (prefers-reduced-motion: reduce) {
  .categoryTickerTrack { animation: categoryTickerMove 36s linear infinite !important; }
}
.categoryTicker .categoryRail button:hover::after,
.categoryTicker .categoryRail button:focus-visible::after { background: currentColor; }
.categoryTicker .categoryRail button[data-category="all"]:hover,
.categoryTicker .categoryRail button[data-category="all"]:focus-visible { color: #B8298A; }
.categoryTicker .categoryRail button[data-category="Villa"]:hover,
.categoryTicker .categoryRail button[data-category="Villa"]:focus-visible { color: #e11d48; }
.categoryTicker .categoryRail button[data-category="Bungalov"]:hover,
.categoryTicker .categoryRail button[data-category="Bungalov"]:focus-visible { color: #16803c; }
.categoryTicker .categoryRail button[data-category="Tiny House"]:hover,
.categoryTicker .categoryRail button[data-category="Tiny House"]:focus-visible { color: #d97706; }
.categoryTicker .categoryRail button[data-category="Tur"]:hover,
.categoryTicker .categoryRail button[data-category="Tur"]:focus-visible { color: #7c3aed; }
.categoryTicker .categoryRail button[data-category="Tekne"]:hover,
.categoryTicker .categoryRail button[data-category="Tekne"]:focus-visible { color: #087ec7; }
.categoryTicker .categoryRail button[data-category="Karavan"]:hover,
.categoryTicker .categoryRail button[data-category="Karavan"]:focus-visible { color: #b45309; }
.categoryTicker .categoryRail button[data-category="Rent a car"]:hover,
.categoryTicker .categoryRail button[data-category="Rent a car"]:focus-visible { color: #0e7490; }
body .detailPrice .detailDiscountBadge,
body .detailPrice .detailDiscountBadge svg,
body .detailPrice .detailDiscountBadge i { color: #fff !important; stroke: currentColor !important; }

.aboutCredentialStrip {
  width: var(--content);
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 8px;
  margin: 0 auto;
  padding: 0 0 16px;
}
.aboutCredentialStrip article {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr);
  align-items: center;
  gap: 9px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
}
.aboutCredentialStrip > article > svg {
  width: 34px;
  height: 34px;
  padding: 8px;
  border-radius: 7px;
  color: var(--brand);
  background: var(--brand-soft);
}
.aboutCredentialStrip article div { min-width: 0; display: grid; gap: 3px; }
.aboutCredentialStrip strong { color: var(--ink); font-size: 10px; }
.aboutCredentialStrip span { color: var(--muted); font-size: 8px; line-height: 1.4; }
.aboutBody .aboutHero { padding: 24px 0 14px; }
.aboutBody .aboutHeroMap { margin-top: 14px; gap: 8px; }
.aboutBody .aboutHeroMap div { padding: 12px; }
.aboutBody .aboutTrustSection,
.aboutBody .aboutStepsSection { padding: 16px 0; }
.aboutBody .aboutSectionHead { margin-bottom: 12px; }
.aboutBody .aboutTrustGrid { gap: 8px; }
.aboutBody .aboutTrustGrid article { min-height: 0; padding: 15px; border-radius: 8px; background: var(--canvas); }
.aboutBody .aboutSteps article { min-height: 0; padding: 16px; border-radius: 8px; background: var(--canvas); }
.aboutBody .aboutLegal,
.aboutBody .aboutSeo { margin-bottom: 12px; padding: 16px; }
.aboutBody .siteFooter { padding-top: 24px; }

.pricingPage .pricingHero { padding: 22px 0 12px; }
.pricingPage .pricingSection { margin-bottom: 12px; padding: 18px; }
.pricingPage .pricingRows { gap: 12px; margin: 16px auto 12px; }
.pricingPage .priceRow { min-height: 0; padding: 17px; border-width: 1px; border-radius: 9px; }
.pricingPage .priceRow.popular { transform: none; }
.pricingPage .priceRow .planEyebrow { margin-bottom: 10px; }
.pricingPage .priceRow .planSummary { min-height: 0; margin-bottom: 12px; }
.pricingPage .priceRow ul { gap: 7px; margin-bottom: 16px; }
.pricingPage .pricingFlow { margin-top: 12px; }
.pricingPage .pricingExplain { gap: 10px; padding: 0 0 18px; }
.pricingPage .pricingExplain article { padding: 15px; }
.pricingPage .siteFooter { padding-top: 24px; }

.pricingPage .priceRow ul li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.pricingPage .priceRow ul li::before {
  content: "✓";
  flex: 0 0 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--white);
  background: var(--brand);
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}
.pricingContactCta {
  margin-top: 16px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(184,41,138,.2);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(184,41,138,.1), rgba(255,255,255,.96));
}
.pricingContactCta h2 { margin: 0 0 4px; color: var(--ink); font-size: 20px; }
.pricingContactCta p { margin: 0; color: var(--muted); font-size: 12px; }
.pricingContactCta a {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--brand);
  color: var(--white);
  padding: 0 16px;
  font-size: 11px;
  font-weight: 850;
  text-decoration: none;
}

.certificateLookupNav {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  justify-content: center;
  padding: 0 14px;
  border: 1px solid var(--brand);
  border-radius: 999px;
  color: var(--white);
  background: var(--brand);
  box-shadow: 0 10px 24px rgba(184,41,138,.18);
  font-size: 11px;
  font-weight: 800;
}
.hero .certificateLookupNav { border-color: rgba(255,255,255,.7); color: var(--white); background: rgba(184,41,138,.9); }
.staticNav .certificateLookupNav,
.staticTop .certificateLookupNav,
.blogNav .certificateLookupNav { color: var(--white); background: var(--brand); }
.certificateLookupNav:hover { background: var(--brand-dark); color: var(--white); }
.certificateLookupNav svg { width: 15px; height: 15px; }

.certificatePage main {
  width: var(--content);
  margin: 0 auto;
  padding: 28px 0 34px;
}
.certificateHero {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
}
.certificateHero h1 { margin: 0 0 8px; color: var(--ink); font-size: clamp(30px,5vw,48px); line-height: 1.05; }
.certificateHero p { margin: 0; max-width: 760px; color: var(--muted); font-size: 13px; }
.certificateHero a,
.certificateFrameHead a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--brand);
  color: var(--white);
  padding: 0 14px;
  font-size: 11px;
  font-weight: 850;
  text-decoration: none;
}
.certificateFrameShell {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--white);
  box-shadow: 0 18px 45px rgba(15,23,42,.08);
}
.certificateFrameHead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: rgba(184,41,138,.06);
}
.certificateFrameHead strong { color: var(--ink); font-size: 13px; }
.certificateFrameHead span { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }
.certificateFrame {
  width: 100%;
  height: min(760px, 78vh);
  min-height: 560px;
  border: 0;
  background: #FFFFFF;
}

.footerTrustImages,
.footerPaymentImages {
  width: 100%;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.footerTrustImages { justify-content: flex-start; }
.footerTrustImages img {
  width: 128px;
  height: 98px;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
}
.footerTrustImages .footerLocalBrand { width: 172px; height: 150px; }
.footerEtbisMark {
  width: 172px;
  height: 150px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: var(--ink);
  text-decoration: none;
}
.footerTrustImages .footerEtbisMark img { width: 172px; height: auto; max-height: 74px; object-fit: contain; }
.footerPaymentImages {
  margin-top: 8px;
  align-items: center;
  justify-content: center;
  gap: 18px;
}
.footerPaymentImages img {
  width: auto;
  height: 58px;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
}
.footerPaymentImages .footerPaytr { width: min(100%, 360px); height: auto; max-height: 58px; }
.footerPaymentImages .footerShopier { width: 150px; height: auto; max-height: 58px; }

.detailTrustBadges {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 8px 0 2px;
}
.detailTrustBadges span,
.adminBadgeLine {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: max-content;
  max-width: 100%;
  border-radius: 999px;
  background: rgba(184,41,138,.1);
  color: var(--brand);
  padding: 6px 9px;
  font-size: 10px;
  font-weight: 850;
}
.detailTrustBadges svg { width: 14px; height: 14px; }

.menuBackdrop {
  transition: none !important;
  outline: 0 !important;
  -webkit-tap-highlight-color: transparent;
}
.homePage:not(.mobile-scrolled) .hero .menuToggle:hover,
.homePage:not(.mobile-scrolled) .hero .userMenu.open .menuToggle { color: var(--brand); background: var(--white); }
.homePage:not(.mobile-scrolled) .hero .menuToggle:hover .menuAccountIcon,
.homePage:not(.mobile-scrolled) .hero .userMenu.open .menuAccountIcon { color: var(--brand); }

body:not(.panelBody) .listingLoadMore,
body:not(.panelBody) .searchSubmit,
body:not(.panelBody) .primaryCta,
body:not(.panelBody) .articleCta,
body:not(.panelBody) .readMore,
body:not(.panelBody) .blogCta > a,
body:not(.panelBody) .detailPrimary,
body:not(.panelBody) .detailLocationHead > a,
body:not(.panelBody) .dealActions .detailAction,
body:not(.panelBody) .emptyListings a,
body:not(.panelBody) .priceRow:not(.popular) > a { color: var(--white) !important; }
body:not(.panelBody) .listingLoadMore svg,
body:not(.panelBody) .searchSubmit svg,
body:not(.panelBody) .detailPrimary svg,
body:not(.panelBody) .detailLocationHead > a svg,
body:not(.panelBody) .dealActions .detailAction svg { color: var(--white) !important; }

@media (max-width: 1080px) {
  .homePage #publicListings.cards { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .searchPage #publicListings.cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .aboutCredentialStrip { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .homePage #publicListings.cards,
  .searchPage #publicListings.cards { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .dealBody { padding: 10px; }
}
@media (max-width: 560px) {
  .homePage #publicListings.cards,
  .searchPage #publicListings.cards,
  .aboutCredentialStrip { grid-template-columns: 1fr; }
  .aboutCredentialStrip { width: calc(100% - 24px); }
  .categoryTicker { margin-bottom: 4px; }
}
.boostCards,
.dopingRows {
  margin-top: 16px;
}

.pricingBuy {
  border: 0;
  border-radius: 8px;
  background: #B8298A;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  min-height: 44px;
  padding: 12px 16px;
  width: 100%;
}

.trustTools,
.businessLookupForm {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  align-items: end;
}

.trustTools .documentRequirement,
.businessLookupResult {
  grid-column: 1 / -1;
}

.businessLookupPanel {
  margin: 18px auto;
  max-width: min(1120px, calc(100% - 32px));
}

.businessLookupForm input {
  min-height: 44px;
}

.businessLookupForm button,
.businessLookupForm a {
  align-items: center;
  border: 0;
  border-radius: 8px;
  background: #B8298A;
  color: #fff;
  display: inline-flex;
  font: inherit;
  font-weight: 800;
  justify-content: center;
  min-height: 44px;
  padding: 10px 14px;
  text-decoration: none;
}

.lookupSuccess {
  border: 1px solid rgba(184, 41, 138, 0.24);
  border-radius: 8px;
  display: grid;
  gap: 4px;
  padding: 14px;
}

.lookupSuccess strong {
  color: #B8298A;
}

.reviewNotice blockquote {
  border-left: 3px solid #B8298A;
  margin: 12px 0 0;
  padding-left: 12px;
}

@media (max-width: 640px) {
  .trustTools,
  .businessLookupForm {
    grid-template-columns: 1fr;
  }
  .pricingContactCta,
  .certificateHero {
    grid-template-columns: 1fr;
  }
  .certificateFrameHead {
    align-items: flex-start;
    flex-direction: column;
  }
  .certificateFrame {
    min-height: 620px;
  }
}

@media (max-width: 760px) {
  html body.panelBody {
    overflow-x: hidden !important;
  }

  html body.panelBody .sidebar,
  html body.panelBody aside.sidebar,
  html body.panelBody .sidebar nav {
    box-sizing: border-box !important;
    max-width: calc(100vw - 24px) !important;
    overflow-x: auto !important;
  }

  html body.panelBody .sidebar nav a {
    flex: 0 0 auto !important;
    max-width: 160px !important;
    white-space: nowrap !important;
  }
}
