:root {
  color-scheme: light;
  --orange: #f47721;
  --orange-deep: #d85b12;
  --ink: #172d40;
  --muted: #536270;
  --paper: #fffdf9;
  --line: #e8e2d9;
  --font-body: 'DM Sans', sans-serif;
  --font-display: 'Manrope', sans-serif;
  font-family: var(--font-body);
  scroll-behavior: smooth;
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font-body); }
.site-container { width: min(100% - 40px, 1200px); max-width: 1200px; }
.site-header { position: relative; z-index: 5; background: rgba(255, 253, 249, .96); border-bottom: 1px solid rgba(23, 45, 64, .08); }
.site-header .navbar { min-height: 78px; padding: 12px 0; }
.brand { display: inline-flex; align-items: center; color: var(--ink); line-height: 1.05; }
.brand:hover { color: var(--ink); }
.brand-logo { display: block; width: 68px; height: 68px; object-fit: contain; }
.menu-toggle { border: 1px solid var(--line); color: var(--ink); border-radius: 10px; padding: 9px 12px; font-size: 18px; box-shadow: none !important; }
.navbar-nav { gap: 8px; padding-top: 12px; }
.nav-link { padding: 11px 14px !important; color: var(--ink); font-weight: 600; }
.nav-link:hover, .nav-link.active { color: var(--orange-deep); }
.nav-cta { display: inline-flex; align-items: center; gap: 12px; padding: 12px 17px !important; border: 1px solid var(--line); border-radius: 8px; }
.nav-cta:hover { border-color: var(--orange); }
.nav-cta i { font-size: 12px; }

.hero { position: relative; overflow: hidden; padding: 52px 0 60px; background: var(--paper); }
.hero-inner { display: grid; align-items: center; gap: 38px; }
.hero-copy { position: relative; z-index: 1; }
.hero-location { display: inline-flex; align-items: center; gap: 9px; margin: 0 0 21px; color: var(--orange-deep); font-size: 13px; font-weight: 700; letter-spacing: .04em; }
.location-mark { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #fff0e5; }
h1 { max-width: 680px; margin: 0; font: 800 clamp(2.5rem, 9vw, 4.5rem)/1.08 var(--font-display); letter-spacing: -.045em; }
h1 span { color: var(--orange); }
.hero-description { max-width: 490px; margin: 22px 0 0; color: var(--muted); font-size: 17px; line-height: 1.7; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 29px; }
.btn { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 13px; padding: 12px 18px; border-radius: 8px; font-family: var(--font-body); font-size: 14px; font-weight: 700; transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-orange { border: 1px solid var(--orange); color: #fff; background: var(--orange); }
.btn-orange:hover { border-color: var(--orange-deep); color: #fff; background: var(--orange-deep); }
.btn-outline-dark { border: 1px solid #bdc3c6; color: var(--ink); background: transparent; }
.btn-outline-dark:hover { border-color: var(--ink); color: var(--ink); background: #fff; }
.hero-note { display: flex; align-items: center; gap: 12px; margin-top: 30px; color: var(--muted); font-size: 12px; }
.note-rule { width: 28px; height: 2px; background: var(--orange); }
.hero-visual { position: relative; min-height: 310px; border-radius: 15px; background: #e3e6e5; }
.hero-photo { position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(180deg, transparent 56%, rgba(15, 31, 45, .23)), url('../img/intro.webp') 77% center / cover no-repeat; }
.photo-caption { position: absolute; right: 14px; bottom: 14px; display: flex; align-items: center; gap: 11px; padding: 11px 15px; border: 1px solid rgba(255,255,255,.5); border-radius: 10px; color: var(--ink); background: rgba(255,253,249,.95); font-size: 12px; line-height: 1.4; }
.photo-caption strong { font-size: 14px; }
.caption-icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 9px; color: var(--orange-deep); background: #fff0e5; }
.hero-bottom { position: absolute; bottom: 0; left: 50%; display: flex; width: min(100% - 40px, 1200px); height: 3px; transform: translateX(-50%); }
.hero-bottom span:nth-child(1) { width: 64%; background: var(--orange); }
.hero-bottom span:nth-child(2) { width: 22%; background: #f4c59f; }
.hero-bottom span:nth-child(3) { flex: 1; background: #f0ece5; }
.quick-search { position: relative; z-index: 2; padding: 0 0 44px; background: var(--paper); }
.quick-search-panel { width: 100%; margin: -7px auto 0; padding: 22px; border-radius: 8px; background: var(--orange); }
.quick-search-panel h2 { margin: 0 0 14px; color: #172d40; font: 800 clamp(1.25rem, 4vw, 1.75rem)/1.2 var(--font-display); letter-spacing: -.025em; }
.quick-search-fields { display: grid; gap: 9px; }
.quick-search-input { position: relative; display: flex; min-width: 0; min-height: 50px; align-items: center; gap: 10px; padding: 0 13px; border: 1px solid #d7dadd; border-radius: 4px; color: var(--muted); background: #fff; }
.quick-search-input i { color: var(--orange-deep); font-size: 14px; }
.quick-search-input input { width: 100%; min-width: 0; height: 48px; border: 0; outline: 0; color: var(--ink); background: transparent; font: 500 15px var(--font-body); }
.quick-search-input input::placeholder { color: #596570; opacity: 1; }
.quick-search-input:focus-within { outline: 3px solid rgba(23,45,64,.18); }
.quick-search-input:focus-within { z-index: 4; }
.quick-search-suggestions { position: absolute; z-index: 5; top: calc(100% + 7px); right: -1px; left: -1px; max-height: 260px; overflow-y: auto; padding: 5px; border: 1px solid #e4e7e8; border-radius: 7px; background: #fff; box-shadow: 0 12px 28px rgba(23,45,64,.16); }
.quick-search-suggestions[hidden] { display: none; }
.quick-search-suggestion { display: block; width: 100%; padding: 10px 11px; border: 0; border-radius: 4px; color: var(--ink); background: transparent; text-align: left; font: 500 14px/1.35 var(--font-body); cursor: pointer; }
.quick-search-suggestion:hover, .quick-search-suggestion:focus-visible { outline: 0; color: var(--ink); background: #fff0e5; }
.quick-search-submit { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 12px; border: 1px solid #172d40; border-radius: 4px; color: #fff; background: #172d40; font: 700 15px var(--font-body); transition: background-color .18s ease, transform .18s ease; }
.quick-search-submit:hover { transform: translateY(-1px); background: #243f55; }
.quick-search-submit:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.companies-section { position: relative; overflow: hidden; padding: 70px 0 76px; background: #f1f4f5; }
.companies-layout { display: grid; gap: 38px; }
.companies-intro { max-width: 550px; }
.companies-region { display: flex; align-items: center; gap: 9px; margin: 0 0 16px; color: var(--orange-deep); font-size: 12px; font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
.companies-region i { font-size: 14px; }
.companies-intro h2 { margin: 0; font: 800 clamp(2rem, 7vw, 3.25rem)/1.12 var(--font-display); letter-spacing: -.04em; }
.companies-intro h2 span { color: var(--orange-deep); }
.companies-description { max-width: 460px; margin: 18px 0 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
.company-list { display: grid; }
.company-row { position: relative; display: grid; grid-template-columns: 84px minmax(0, 1fr) 26px; align-items: center; gap: 14px; min-height: 124px; padding: 18px 0; border-bottom: 1px solid #d9dfe1; }
.company-row:first-child { border-top: 1px solid #d9dfe1; }
.company-all-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 21px; color: var(--ink); font-size: 14px; font-weight: 700; text-decoration: none; }
.company-all-link i { color: var(--orange-deep); transition: transform 180ms ease; }
.company-all-link:hover { color: var(--orange-deep); }
.company-all-link:hover i { transform: translateX(4px); }
.company-logo { display: grid; width: 84px; height: 76px; place-items: center; padding: 9px; border-radius: 10px; background: #fff; }
.company-logo img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.company-info { min-width: 0; }
.company-info h3 { margin: 0; color: var(--ink); font: 700 16px/1.3 var(--font-display); }
.company-info h3 a { color: inherit; text-decoration: none; text-decoration-color: var(--orange); text-underline-offset: 4px; }
.company-info h3 a:hover { color: var(--orange-deep); text-decoration: underline; }
.company-info p { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.company-info p i { color: var(--orange-deep); font-size: 12px; }
.company-separator { color: #9aa5aa; }
.company-index { align-self: start; padding-top: 4px; color: #8b979e; font: 700 11px/1 var(--font-body); font-variant-numeric: tabular-nums; }
.motion-ready [data-reveal-item]:not(.is-visible) { clip-path: inset(0 100% 0 0); opacity: .82; }
[data-reveal-item] { transition: clip-path 680ms cubic-bezier(.16, 1, .3, 1), opacity 420ms ease; }
[data-reveal-item].is-visible { clip-path: inset(0 0 0 0); opacity: 1; }
[data-reveal-item]:nth-child(2) { transition-delay: 80ms; }
[data-reveal-item]:nth-child(3) { transition-delay: 160ms; }
[data-reveal-item]:nth-child(4) { transition-delay: 240ms; }
[data-reveal-item]:nth-child(5) { transition-delay: 300ms; }
[data-reveal-item]:nth-child(6) { transition-delay: 360ms; }
[data-reveal-item]:nth-child(7) { transition-delay: 420ms; }
[data-reveal-item]:nth-child(8) { transition-delay: 480ms; }
.business-invite { padding: 24px 0; color: #fff; background: var(--ink); }
.invite-inner { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.invite-inner p { margin: 0; font: 700 16px/1.4 var(--font-display); }
.invite-inner a { display: inline-flex; align-items: center; gap: 11px; color: #ffd0ad; font-size: 14px; font-weight: 700; text-decoration: none; }
.invite-inner a:hover { color: #fff; }
.business-promo { overflow: hidden; padding: 58px 0 62px; background: #f1f4f7; }
.business-promo-heading { max-width: 940px; margin: 0 auto 40px; }
.business-promo-heading h2 { max-width: none; }
.business-promo-heading p { max-width: 820px; margin-top: 16px; color: var(--ink); }
.business-promo-layout { display: grid; align-items: center; gap: 35px; }
.business-promo-copy { display: grid; gap: 24px; }
.business-promo-benefit h3 { margin: 0; color: var(--ink); font: 700 clamp(1.2rem, 3vw, 1.48rem)/1.35 var(--font-display); }
.business-promo-benefit h3 span { color: var(--orange); }
.business-promo-benefit p { max-width: 470px; margin: 10px 0 0; color: var(--muted); font-size: 15px; line-height: 1.65; }
.business-promo-cta { display: flex; min-height: 58px; align-items: center; justify-content: center; gap: 12px; margin-top: 2px; padding: 15px 22px; border: 1px solid var(--orange); border-radius: 6px; color: #fff; background: var(--orange); font-size: 15px; font-weight: 700; text-decoration: none; transition: background-color .18s ease, transform .18s ease; }
.business-promo-cta:hover { transform: translateY(-2px); color: #fff; background: var(--orange-deep); }
.business-promo-more { justify-self: center; margin-top: -12px; color: var(--ink); font-size: 14px; font-weight: 600; text-decoration: none; text-underline-offset: 4px; }
.business-promo-more:hover { color: var(--orange-deep); text-decoration: underline; }
.profile-device-showcase { position: relative; width: min(100%, 620px); min-height: 340px; justify-self: center; }
.device-laptop { position: absolute; top: 5%; left: 3%; width: 88%; padding: 11px 11px 13px; border-radius: 17px 17px 8px 8px; background: #111; box-shadow: 0 20px 34px rgba(23,45,64,.16); }
.device-laptop::after { position: absolute; right: -5%; bottom: -10px; left: -5%; height: 12px; border-radius: 0 0 22px 22px; background: linear-gradient(#dfe2e5, #bfc4c9); content: ""; }
.device-laptop-screen { overflow: hidden; aspect-ratio: 1.55; background: #fff; }
.device-browser-bar { display: flex; height: 22px; align-items: center; gap: 4px; padding: 0 8px; border-bottom: 1px solid #e5e8ea; color: #78838a; font-size: 6px; }
.device-browser-bar > span { width: 4px; height: 4px; border-radius: 50%; background: #d1d7db; }
.device-browser-bar i { margin-left: 8px; color: var(--orange-deep); font-size: 6px; }
.device-profile-preview { height: calc(100% - 22px); overflow: hidden; background: #f7f8f8; }
.device-preview-nav { display: flex; height: 27px; align-items: center; justify-content: flex-end; gap: 13px; padding: 0 7%; border-bottom: 1px solid #e6e8e9; color: #63717a; font-size: 6px; }
.device-preview-nav .device-brand-mark { display: grid; width: 15px; height: 15px; place-items: center; margin-right: auto; border-radius: 4px; color: #fff; background: var(--orange); }
.device-preview-body { position: relative; width: 73%; margin: 5% auto; padding: 5% 6%; border: 1px solid #e5e8e9; border-radius: 7px; background: #fff; box-shadow: 0 4px 13px rgba(23,45,64,.05); }
.device-preview-logo { display: grid; width: 48px; height: 26px; place-items: center; margin-bottom: 5px; }
.device-preview-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.device-preview-body > small { display: block; color: #74818a; font-size: 6px; }
.device-preview-body > small i { color: var(--orange-deep); }
.device-preview-body > strong { display: block; margin-top: 4px; color: var(--ink); font: 800 12px/1.2 var(--font-display); }
.device-partner-label { display: inline-flex; align-items: center; gap: 3px; margin-top: 4px; color: var(--orange-deep); font-size: 6px; font-weight: 700; }
.device-preview-body > p { max-width: 75%; margin: 5px 0; color: #64727a; font-size: 6px; line-height: 1.4; }
.device-preview-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.device-preview-tags span { padding: 3px 5px; border-radius: 3px; color: #485964; background: #f0f3f4; font-size: 5px; }
.device-preview-button { display: inline-flex; align-items: center; gap: 4px; margin-top: 7px; padding: 4px 7px; border-radius: 3px; color: #fff; background: var(--orange); font-size: 6px; }
.device-tablet { position: absolute; z-index: 2; right: 2%; bottom: 5%; width: 44%; padding: 8px; border: 2px solid #34383a; border-radius: 14px; background: #17191a; box-shadow: 0 13px 24px rgba(23,45,64,.22); }
.device-tablet-screen { display: flex; min-height: 145px; flex-direction: column; align-items: flex-start; padding: 9px 10px; border-radius: 7px; background: #fff; }
.device-mini-top { width: 100%; height: 8px; margin-bottom: 12px; border-bottom: 1px solid #e6e8e9; }
.device-mini-logo { width: 30px; height: 16px; margin: 4px 0; border-radius: 2px; background: url('../img/schluesseldienst-frankfurt-schluesselscout24-logo.png') center / contain no-repeat; }
.device-mini-lines { width: 91%; height: 5px; margin-top: 7px; border-radius: 4px; background: #e8ecee; }
.device-mini-lines.short { width: 62%; margin-top: 4px; }
.device-mini-button { width: 45%; height: 13px; margin-top: 10px; border-radius: 3px; background: var(--orange); }
.device-mini-section { width: 100%; height: 32px; margin-top: 11px; border-radius: 4px; background: #f1f4f5; }
.device-tablet-screen > strong, .device-phone-screen > strong { color: var(--ink); font: 800 7px/1.2 var(--font-display); }
.device-phone { position: absolute; z-index: 3; bottom: 1%; left: 4%; width: 23%; padding: 6px 5px 7px; border: 2px solid #303436; border-radius: 14px; background: #111; box-shadow: 0 12px 22px rgba(23,45,64,.25); }
.device-phone-screen { display: flex; min-height: 185px; flex-direction: column; align-items: flex-start; padding: 13px 6px 8px; border-radius: 9px; background: #fff; }
.device-phone-camera { position: absolute; top: 5px; left: calc(50% - 8px); width: 16px; height: 3px; border-radius: 4px; background: #505458; }
.device-phone-screen .device-mini-logo { width: 25px; height: 14px; margin-top: 4px; }
.device-phone-screen > strong { font-size: 6px; }
.device-phone-screen .device-mini-lines { height: 4px; margin-top: 6px; }
.device-phone-screen .device-mini-button { height: 11px; margin-top: 9px; }
.device-phone-screen .device-mini-section { height: 45px; margin-top: 8px; }
.trade-section { padding: 64px 0 74px; background: var(--paper); }
.section-heading { max-width: 760px; margin: 0 auto 34px; text-align: center; }
.section-heading h2 { margin: 0; color: var(--ink); font: 800 clamp(1.9rem, 6vw, 3rem)/1.15 var(--font-display); letter-spacing: -.035em; }
.section-heading p { max-width: 700px; margin: 13px auto 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
.trade-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.trade-item { display: grid; width: 100%; aspect-ratio: 1 / 1; align-content: center; justify-items: center; gap: 17px; padding: 14px 10px; border: 1px solid #e0e3e4; border-radius: 7px; color: var(--ink); background: #fff; text-align: center; transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease; }
.trade-item-link { color: inherit; text-decoration: none; }
.trade-item-link:hover { color: inherit; }
.trade-item:hover { transform: translateY(-3px); border-color: #efb48a; box-shadow: 0 12px 25px rgba(23,45,64,.09); }
.trade-item:focus-visible { outline: 3px solid var(--orange-deep); outline-offset: 3px; }
.trade-icon { display: grid; min-width: 42px; height: 46px; place-items: center; color: var(--orange-deep); font-size: 33px; }
.trade-item h3, .trade-more-label { margin: 0; color: var(--ink); font: 600 clamp(.88rem, 2.2vw, 1.05rem)/1.35 var(--font-body); }
.trade-more-items { display: contents; }
.trade-more-items[hidden] { display: none !important; }
.trade-more-items:not([hidden]) .trade-item { animation: trade-card-reveal 360ms cubic-bezier(.16,1,.3,1) both; }
.trade-more-items:not([hidden]) .trade-item:nth-child(2) { animation-delay: 45ms; }
.trade-more-items:not([hidden]) .trade-item:nth-child(3) { animation-delay: 90ms; }
.trade-more-items:not([hidden]) .trade-item:nth-child(4) { animation-delay: 135ms; }
.trade-more-items:not([hidden]) .trade-item:nth-child(5) { animation-delay: 180ms; }
.trade-more-items:not([hidden]) .trade-item:nth-child(6) { animation-delay: 225ms; }
.trade-more-button { font-family: var(--font-body); cursor: pointer; box-shadow: 0 9px 23px rgba(23,45,64,.09); }
.trade-more-button .trade-icon { color: #616d76; }
.trade-more-button:hover { box-shadow: 0 14px 27px rgba(23,45,64,.13); }
@keyframes trade-card-reveal { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: translateY(0); } }
.cities-section { padding: 62px 0 72px; color: var(--ink); background: var(--paper); }
.cities-heading { margin-bottom: 29px; }
.city-trade-grid .trade-item h3 { max-width: 15ch; }
.advice-section { padding: 66px 0 78px; background: #f1f4f5; }
.advice-section > .site-container { max-width: 1100px; }
.advice-heading { max-width: 850px; margin: 0 auto 34px; text-align: center; }
.advice-heading h2 { max-width: 30ch; margin-inline: auto; }
.advice-heading p { margin: 14px 0 0; }
.advice-heading p span { color: var(--orange-deep); font-weight: 700; }
.find-business-section { padding: 58px 0 68px; background: #fff; }
.find-business-heading { max-width: 980px; margin: 0 auto; text-align: center; }
.find-business-heading h2 { margin: 0; color: var(--ink); font: 800 clamp(1.8rem, 5vw, 2.65rem)/1.18 var(--font-display); letter-spacing: -.035em; }
.find-business-heading p { margin: 22px 0 0; color: var(--ink); font-size: clamp(14px, 2vw, 18px); line-height: 1.55; }
.find-business-steps { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; max-width: 1100px; margin: 34px auto 0; padding: 0; list-style: none; }
.find-business-step { position: relative; display: flex; min-width: 0; flex-direction: column; align-items: flex-start; padding: 27px 25px 24px; border: 1px solid #e3e8eb; border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(23,45,64,.045); }
.find-business-step-number { position: absolute; top: 20px; right: 20px; color: #dce2e6; font: 800 1rem/1 var(--font-display); letter-spacing: .04em; }
.find-business-step-icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 12px; background: rgba(242,112,32,.11); color: var(--orange-deep); font-size: 20px; }
.find-business-step h3 { margin: 22px 0 0; color: var(--ink); font: 700 1.18rem/1.3 var(--font-display); }
.find-business-step p { margin: 10px 0 20px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.find-business-step a { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; color: var(--ink); font-size: 14px; font-weight: 700; text-decoration: none; }
.find-business-step a i { color: var(--orange-deep); transition: transform 180ms ease; }
.find-business-step a:hover { color: var(--orange-deep); }
.find-business-step a:hover i { transform: translateX(4px); }
.why-portal-section { padding: 62px 0 72px; background: #f7f8f8; }
.why-portal-heading { max-width: 900px; margin: 0 auto 35px; text-align: center; }
.why-portal-heading h2 { max-width: none; margin-inline: auto; }
.why-portal-heading p { margin: 14px auto 0; color: var(--ink); font-size: clamp(14px, 2vw, 18px); line-height: 1.6; }
.why-portal-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.why-portal-card { display: flex; min-width: 0; min-height: 220px; flex-direction: column; align-items: center; justify-content: flex-start; padding: 25px 21px 27px; border: 1px solid rgba(23,45,64,.08); border-radius: 18px; background: var(--orange); box-shadow: 0 12px 20px rgba(23,45,64,.2); text-align: center; }
.why-portal-icon { display: grid; width: 45px; height: 45px; place-items: center; border-radius: 50%; background: rgba(255,255,255,.19); color: #fff; font-size: 20px; }
.why-portal-card h3 { margin: 13px 0 0; color: var(--ink); font: 700 clamp(1.12rem, 2vw, 1.38rem)/1.35 var(--font-display); }
.why-portal-card p { margin: 13px 0 0; color: #fff; font-size: 15px; line-height: 1.6; }
.article-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.article-card { min-width: 0; }
.article-image { display: block; overflow: hidden; aspect-ratio: 3 / 2; border-radius: 12px; background: #dfe4e4; }
.article-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 420ms cubic-bezier(.16, 1, .3, 1); }
.article-image:hover img { transform: scale(1.025); }
.article-content { display: flex; min-height: 270px; flex-direction: column; align-items: flex-start; padding-top: 17px; }
.article-content time { color: #677580; font-size: 12px; font-variant-numeric: tabular-nums; }
.article-content h3 { margin: 9px 0 0; font: 700 clamp(1.15rem, 3vw, 1.4rem)/1.3 var(--font-display); letter-spacing: -.02em; }
.article-content h3 a { color: var(--ink); text-decoration: none; text-decoration-color: var(--orange); text-underline-offset: 4px; }
.article-content h3 a:hover { color: var(--orange-deep); text-decoration: underline; }
.article-content p { margin: 11px 0 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.article-readmore { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 14px; color: var(--ink); font-size: 14px; font-weight: 700; text-decoration: none; }
.article-readmore span { color: var(--orange-deep); transition: transform 180ms ease; }
.article-readmore:hover { color: var(--orange-deep); }
.article-readmore:hover span { transform: translateX(4px); }
.business-page { padding: 20px 0 76px; background: #f7f8f8; }
.business-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 6px 0 24px; color: #73808a; font-size: 12px; }
.business-breadcrumb a { color: var(--muted); text-decoration: none; }
.business-breadcrumb a:hover { color: var(--orange-deep); }
.business-breadcrumb i { color: #a2aaae; font-size: 9px; }
.business-profile { display: grid; gap: 24px; align-items: center; padding: 27px; border: 1px solid #e6e9e9; border-radius: 16px; background: #fff; box-shadow: 0 12px 36px rgba(23,45,64,.045); }
.business-profile-logo { display: grid; width: 116px; height: 116px; place-items: center; padding: 12px; border: 1px solid #e9eceb; border-radius: 14px; background: #fff; }
.business-mark { display: grid; width: 100%; height: 100%; place-items: center; border-radius: 10px; color: #fff; background: #18334a; font: 800 28px/1 var(--font-display); letter-spacing: -.04em; }
.business-profile-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.business-profile-logo-dark { border-color: #202b37; background: #202b37; }
.business-profile-logo-wide { width: min(100%, 220px); height: 88px; padding: 10px; border-radius: 12px; }
.business-profile-logo-wide img { width: 100%; height: 100%; object-fit: contain; }
.business-eyebrow { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: var(--orange-deep); font-size: 12px; font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
.business-profile h1 { max-width: 100%; font-size: clamp(1.75rem, 7vw, 3.5rem); overflow-wrap: anywhere; }
.business-profile-lead { margin: 13px 0 0; color: var(--muted); font-size: 16px; line-height: 1.65; }
.business-tags { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 17px; }
.business-tags span { display: inline-flex; align-items: center; gap: 8px; padding: 8px 11px; border: 1px solid #f1d6c4; border-radius: 999px; color: #79380e; background: #fff6ef; font-size: 12px; font-weight: 700; }
.business-tags i { color: var(--orange-deep); }
.business-profile-cta { margin-top: 22px; }
.business-content-grid { display: grid; align-items: start; gap: 25px; margin-top: 25px; }
.business-details { display: grid; gap: 16px; }
.business-panel { padding: 23px; border: 1px solid #e6e9e9; border-radius: 14px; background: #fff; }
.business-section-label { margin: 0 0 8px; color: var(--orange-deep); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.business-panel h2, .inquiry-card h2 { margin: 0; color: var(--ink); font: 800 22px/1.25 var(--font-display); letter-spacing: -.025em; }
.business-panel > p:not(.business-section-label) { margin: 13px 0 0; color: var(--muted); font-size: 14px; line-height: 1.75; }
.business-service-list { display: grid; gap: 12px; margin: 17px 0 0; padding: 0; list-style: none; }
.business-service-list li { display: flex; align-items: center; gap: 11px; color: var(--ink); font-size: 14px; font-weight: 600; }
.service-check { display: grid; width: 27px; height: 27px; flex: 0 0 auto; place-items: center; border-radius: 8px; color: var(--orange-deep); background: #fff0e5; font-size: 11px; }
.business-prices { display: grid; gap: 0; margin: 17px 0 0; }
.business-prices > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid #edf0f0; }
.business-prices > div:first-child { padding-top: 0; }
.business-prices dt { margin: 0; color: var(--muted); font-size: 12px; font-weight: 500; line-height: 1.45; }
.business-prices dd { flex: 0 0 auto; margin: 0; color: var(--ink); font: 800 16px/1 var(--font-display); font-variant-numeric: tabular-nums; }
.pricing-note { padding: 11px 12px; border-radius: 8px; color: #785034 !important; background: #fff6ef; font-size: 11px !important; line-height: 1.6 !important; }
.business-location-panel > p:not(.business-section-label) i { margin-right: 5px; color: var(--orange-deep); }
.business-contact-links { display: grid; gap: 8px; margin-top: 18px; }
.business-contact-links > a { display: flex; min-width: 0; align-items: center; gap: 12px; padding: 11px; border: 1px solid #e9eded; border-radius: 10px; color: var(--ink); background: #fff; text-decoration: none; transition: border-color 160ms ease, background-color 160ms ease; }
.business-contact-links > a:hover { border-color: #efb48a; background: #fffaf6; }
.contact-link-icon { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; border-radius: 9px; color: var(--orange-deep); background: #fff0e5; font-size: 14px; }
.contact-link-copy { display: grid; min-width: 0; gap: 3px; }
.contact-link-copy small { color: #75828a; font-size: 10px; }
.contact-link-copy strong { overflow-wrap: anywhere; font-size: 13px; }
.contact-link-arrow { margin-left: auto; color: #8c989e; font-size: 10px; }
.inquiry-card { overflow: hidden; border: 1px solid #e2e7e8; border-radius: 15px; background: #fff; box-shadow: 0 12px 36px rgba(23,45,64,.055); scroll-margin-top: 20px; }
.inquiry-card-heading { padding: 23px 23px 19px; border-bottom: 1px solid #edf0f0; background: linear-gradient(135deg, #fffaf5, #fff 72%); }
.inquiry-icon { display: grid; width: 39px; height: 39px; margin-bottom: 17px; place-items: center; border-radius: 11px; color: var(--orange-deep); background: #fff0e5; }
.inquiry-card-heading > p:last-child { margin: 9px 0 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.inquiry-form { display: grid; gap: 9px; padding: 21px 23px 23px; }
.inquiry-form > label:not(.inquiry-consent) { margin-top: 5px; color: var(--ink); font-size: 12px; font-weight: 700; }
.inquiry-form > label span { color: #7b878e; font-weight: 400; }
.inquiry-form input[type="text"], .inquiry-form input[type="email"], .inquiry-form input[type="tel"], .inquiry-form select, .inquiry-form textarea { width: 100%; min-height: 45px; padding: 11px 12px; border: 1px solid #dfe4e5; border-radius: 8px; color: var(--ink); background: #fff; font: 400 13px/1.45 var(--font-body); }
.inquiry-form textarea { min-height: 118px; resize: vertical; }
.inquiry-form input::placeholder, .inquiry-form textarea::placeholder { color: #929da3; }
.inquiry-form :is(input,select,textarea):focus { border-color: var(--orange); outline: 3px solid rgba(244,119,33,.14); }
.inquiry-consent { display: flex; align-items: flex-start; gap: 9px; margin-top: 9px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.inquiry-consent input { flex: 0 0 auto; margin-top: 2px; accent-color: var(--orange-deep); }
.inquiry-submit { width: 100%; margin-top: 4px; }
.inquiry-notice { margin: 0; color: #7a858b; font-size: 11px; line-height: 1.5; text-align: center; }
.form-feedback { margin: 0 0 6px; padding: 11px 12px; border-radius: 8px; font-size: 13px; line-height: 1.5; }
.form-feedback-success { border: 1px solid #b9dfc7; color: #205b35; background: #effaf2; }
.form-feedback-error { border: 1px solid #f1c3bd; color: #8b2c21; background: #fff3f1; }
.inquiry-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; }
.premium-ad-slot { overflow: hidden; margin-top: 36px; border: 1px dashed #e6b18d; border-radius: 14px; background: #fffaf6; }
.premium-ad-link { display: block; min-height: 150px; }
.premium-ad-link img { display: block; width: 100%; max-height: 300px; aspect-ratio: 970 / 250; object-fit: cover; }
.premium-ad-placeholder { display: flex; min-height: 150px; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 24px; color: var(--muted); text-align: center; }
.premium-ad-label { display: inline-flex; align-items: center; gap: 7px; color: var(--orange-deep); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.premium-ad-placeholder strong { color: var(--ink); font: 700 clamp(15px, 3vw, 19px)/1.35 var(--font-display); }
.premium-ad-placeholder > span:last-child { font-size: 12px; line-height: 1.6; }
.business-faq { margin-top: 56px; }
.business-faq-heading { max-width: 700px; margin: 0 auto 24px; text-align: center; }
.business-faq-heading h2 { margin: 0; color: var(--ink); font: 800 clamp(1.65rem, 5vw, 2.35rem)/1.2 var(--font-display); letter-spacing: -.03em; }
.business-faq-heading > p:last-child { margin: 10px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.business-faq-list { display: grid; max-width: 900px; gap: 10px; margin: 0 auto; }
.business-faq-item { overflow: hidden; border: 1px solid #e3e8e8; border-radius: 11px; background: #fff; }
.business-faq-item summary { position: relative; display: flex; min-height: 59px; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 18px; color: var(--ink); cursor: pointer; list-style: none; font: 700 14px/1.45 var(--font-display); }
.business-faq-item summary::-webkit-details-marker { display: none; }
.business-faq-item summary::after { content: ''; width: 8px; height: 8px; flex: 0 0 auto; margin: -4px 9px 0 0; border-right: 2px solid var(--orange-deep); border-bottom: 2px solid var(--orange-deep); transform: rotate(45deg); transition: transform 180ms ease; }
.business-faq-item[open] summary::after { margin-top: 4px; transform: rotate(225deg); }
.business-faq-item summary:focus-visible { outline-offset: -4px; }
.business-faq-item > p { margin: 0; padding: 0 18px 18px; color: var(--muted); font-size: 13px; line-height: 1.75; }
.related-businesses { margin-top: 54px; padding: 28px 0 8px; border-top: 1px solid #e2e6e6; }
.related-businesses-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.related-businesses-heading h2 { margin: 0; color: var(--ink); font: 800 clamp(1.5rem, 4vw, 2rem)/1.2 var(--font-display); letter-spacing: -.03em; }
.related-businesses-controls { display: flex; gap: 9px; }
.related-scroll-button { display: grid; width: 40px; height: 40px; flex: 0 0 auto; place-items: center; border: 1px solid #e0e4e4; border-radius: 50%; color: var(--ink); background: #fff; transition: border-color 160ms ease, color 160ms ease, background-color 160ms ease; }
.related-scroll-button:hover { border-color: var(--orange); color: var(--orange-deep); background: #fff7f1; }
.related-scroll-button:focus-visible { outline: 3px solid var(--orange-deep); outline-offset: 3px; }
.related-businesses-track { display: grid; grid-auto-columns: minmax(74%, 1fr); grid-auto-flow: column; gap: 15px; overflow-x: auto; overscroll-behavior-inline: contain; padding: 2px 2px 14px; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-color: #c6ced1 transparent; scrollbar-width: thin; }
.related-businesses-track:focus-visible { outline: 3px solid var(--orange-deep); outline-offset: 3px; }
.related-business-card { min-width: 0; scroll-snap-align: start; }
.related-business-link { display: block; color: inherit; text-decoration: none; }
.related-business-link:hover .related-business-name { color: var(--orange-deep); text-decoration: underline; text-underline-offset: 3px; }
.related-business-image { display: grid; height: 166px; place-items: center; overflow: hidden; padding: 20px; border-radius: 9px; background: #f1f3f3; }
.related-business-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.related-business-image .business-mark { width: 72px; height: 72px; }
.related-business-ad-image { position: relative; display: flex; height: 166px; flex-direction: column; align-items: center; justify-content: center; gap: 9px; overflow: hidden; padding: 22px; border: 1px dashed #e4b18f; border-radius: 9px; color: var(--muted); background: #fffaf6; text-align: center; }
.related-business-ad-label { position: absolute; top: 10px; right: 11px; display: inline-flex; align-items: center; gap: 5px; color: var(--orange-deep); font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.related-business-ad-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; color: var(--orange-deep); background: #ffeadb; font-size: 17px; }
.related-business-ad-image > strong { color: var(--ink); font: 700 15px/1.3 var(--font-display); }
.related-business-ad-copy { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.related-business-name { display: block; margin-top: 11px; color: var(--ink); font: 700 16px/1.3 var(--font-display); transition: color 160ms ease; }
.related-business-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; color: #707c83; font-size: 12px; }
.related-business-rating .review-stars { gap: 2px; }
.related-business-rating .review-stars i { font-size: 12px; }
.related-business-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 9px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.related-business-meta > i { color: var(--orange-deep); }
.business-footer { padding: 20px 0; border-top: 1px solid #e6e9e9; background: #fff; }
.business-footer-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; color: #73808a; font-size: 11px; }
.business-back-link { display: inline-flex; align-items: center; gap: 9px; color: var(--ink); font-size: 12px; font-weight: 700; text-decoration: none; }
.business-back-link:hover { color: var(--orange-deep); }
.directory-page { min-height: 75vh; background: #f7f8f8; }
.directory-intro { padding: 19px 0 34px; background: #fffdf9; }
.directory-heading { max-width: 760px; margin: 4px auto 25px; text-align: center; }
.directory-eyebrow { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 12px; color: var(--orange-deep); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.directory-heading h1 { max-width: none; font-size: clamp(2.15rem, 7vw, 3.7rem); }
.directory-heading > p:last-child { max-width: 620px; margin: 14px auto 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
.city-map-section { margin: 0 0 24px; }
.city-map-heading { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 22px; margin-bottom: 12px; }
.city-map-heading h2 { margin: 0; color: var(--ink); font: 800 clamp(1.25rem, 4vw, 1.65rem)/1.25 var(--font-display); letter-spacing: -.025em; }
.city-map-heading p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.city-map-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; color: var(--ink); font-size: 11px; font-weight: 600; }
.city-map-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.city-map-legend-pin { color: var(--orange-deep); }
.city-map-legend-partner { color: #b34d13; }
.city-map-frame { overflow: hidden; border: 1px solid #dce2e2; border-radius: 13px; background: #e6eceb; }
.city-business-map { width: 100%; height: 310px; background: #e6eceb; }
.city-map-frame .leaflet-container { color: var(--ink); font: 400 12px/1.5 var(--font-body); }
.city-map-frame .leaflet-control-attribution { font-size: 10px; }
.city-map-frame .leaflet-control-attribution a { color: #175a79; }
.city-map-marker { border: 0; background: transparent; }
.city-map-pin { display: grid; width: 36px; height: 36px; place-items: center; border: 2px solid #fff; border-radius: 50% 50% 50% 6px; color: #fff; background: var(--orange-deep); box-shadow: 0 3px 9px rgba(23,45,64,.28); font-size: 15px; transform: rotate(-45deg); }
.city-map-pin i { transform: rotate(45deg); }
.city-map-pin-partner { color: #fff; background: var(--ink); }
.city-map-frame .leaflet-popup-content-wrapper { border-radius: 10px; }
.city-map-frame .leaflet-popup-content { margin: 12px 14px; }
.city-map-popup { display: grid; min-width: 185px; gap: 7px; }
.city-map-popup strong { color: var(--ink); font: 700 13px/1.35 var(--font-display); }
.city-map-popup > span { color: var(--ink); font-size: 11px; font-weight: 600; }
.city-map-popup-business { display: grid; gap: 4px; padding-top: 6px; border-top: 1px solid #e6e9e9; }
.city-map-popup .city-map-popup-partner { display: inline-flex; align-items: center; gap: 6px; color: #8f3b0c; font-weight: 700; }
.city-map-popup a { color: #8f3b0c; font-size: 12px; font-weight: 700; text-underline-offset: 3px; }
.city-map-popup > a { margin-top: 3px; }
.city-map-note { display: flex; align-items: flex-start; gap: 7px; margin: 9px 2px 0; color: #586773; font-size: 11px; line-height: 1.5; }
.city-map-note i { flex: 0 0 auto; margin-top: 2px; color: var(--orange-deep); }
.directory-filters { display: grid; gap: 12px; align-items: end; padding: 18px; border: 1px solid #e7e9e8; border-radius: 14px; background: #fff; box-shadow: 0 10px 30px rgba(23,45,64,.05); }
.directory-filters label { display: block; margin: 0 0 7px; color: var(--ink); font-size: 12px; font-weight: 700; }
.directory-input-wrap { position: relative; display: flex; min-width: 0; align-items: center; }
.directory-input-wrap > i { position: absolute; left: 13px; color: var(--orange-deep); font-size: 14px; pointer-events: none; }
.directory-input-wrap input, .directory-category-field select { width: 100%; min-width: 0; height: 48px; padding: 10px 13px; border: 1px solid #dfe4e5; border-radius: 8px; color: var(--ink); background: #fff; font: 500 13px/1.4 var(--font-body); }
.directory-input-wrap input { padding-left: 39px; }
.directory-input-wrap input::placeholder { color: #87939a; }
.directory-filters :is(input, select):focus { border-color: var(--orange); outline: 3px solid rgba(244,119,33,.14); }
.directory-reset { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 8px; padding: 10px 13px; border: 1px solid #dfe4e5; border-radius: 8px; color: var(--ink); background: #fff; font: 700 12px/1 var(--font-body); transition: border-color 160ms ease, color 160ms ease; }
.directory-reset:hover { border-color: var(--orange); color: var(--orange-deep); }
.directory-reset i { color: var(--orange-deep); }
.directory-results-section { padding: 35px 0 70px; }
.directory-results-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 18px; }
.directory-results-heading h2 { margin: 0; color: var(--ink); font: 800 clamp(1.45rem, 4vw, 2rem)/1.25 var(--font-display); letter-spacing: -.025em; }
.directory-results-heading p { margin: 0; color: #687781; font-size: 12px; font-weight: 600; }
.directory-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 15px; }
.directory-card { display: flex; min-width: 0; flex-direction: column; padding: 17px; border: 1px solid #e4e8e8; border-radius: 13px; background: #fff; box-shadow: 0 8px 24px rgba(23,45,64,.035); transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease; }
.directory-ad-card { min-height: 100%; align-items: center; justify-content: center; gap: 12px; border-style: dashed; border-color: #e4b18f; color: var(--muted); background: #fffaf6; text-align: center; }
.directory-ad-card[hidden] { display: none !important; }
.directory-ad-label { display: inline-flex; align-items: center; gap: 6px; color: var(--orange-deep); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.directory-ad-icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 12px; color: var(--orange-deep); background: #ffeadb; font-size: 20px; }
.directory-ad-card h3 { margin: 0; color: var(--ink); font: 800 18px/1.3 var(--font-display); }
.directory-ad-card p { max-width: 25ch; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.directory-card:hover { transform: translateY(-3px); border-color: #edc2a5; box-shadow: 0 14px 30px rgba(23,45,64,.08); }
.directory-card[hidden] { display: none !important; }
.directory-card-top { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 12px; }
.directory-logo { display: grid; width: 74px; height: 66px; flex: 0 0 auto; place-items: center; padding: 9px; border: 1px solid #edf0ef; border-radius: 9px; background: #fff; }
.directory-logo .business-mark { width: 46px; height: 46px; border-radius: 8px; font-size: 18px; }
.directory-logo img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.directory-location { display: inline-flex; min-width: 0; align-items: center; gap: 6px; color: #687781; font-size: 11px; line-height: 1.4; text-align: right; }
.directory-location i { color: var(--orange-deep); }
.directory-card-content { flex: 1; padding: 18px 0 17px; }
.directory-card-content h3 { margin: 0; font: 800 18px/1.3 var(--font-display); letter-spacing: -.02em; }
.directory-card-content h3 a { color: var(--ink); text-decoration: none; text-decoration-color: var(--orange); text-underline-offset: 4px; }
.directory-card-content h3 a:hover { color: var(--orange-deep); text-decoration: underline; }
.directory-card-content > p { min-height: 45px; margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.directory-service-tags { display: flex; flex-wrap: wrap; gap: 7px; margin: 14px 0 0; padding: 0; list-style: none; }
.directory-service-tags li { padding: 6px 9px; border: 1px solid #f0e3d9; border-radius: 999px; color: #704323; background: #fff8f2; font-size: 10px; font-weight: 600; line-height: 1.2; }
.directory-card-link { display: flex; min-height: 43px; align-items: center; justify-content: space-between; gap: 10px; padding-top: 12px; border-top: 1px solid #edf0f0; color: var(--ink); font-size: 12px; font-weight: 700; text-decoration: none; }
.directory-card-link i { color: var(--orange-deep); transition: transform 180ms ease; }
.directory-card-link:hover { color: var(--orange-deep); }
.directory-card-link:hover i { transform: translateX(4px); }
.directory-pagination-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; margin-top: 25px; }
.directory-page-size { display: inline-flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; font-weight: 600; }
.directory-page-size select { min-height: 40px; padding: 7px 32px 7px 11px; border: 1px solid #dce2e2; border-radius: 8px; color: var(--ink); background: #fff; font: 700 13px/1 var(--font-body); }
.directory-page-size select:focus-visible, .directory-page-button:focus-visible { outline: 3px solid rgba(244,119,33,.24); outline-offset: 2px; }
.directory-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.directory-pagination[hidden] { display: none; }
.directory-page-button { display: inline-flex; min-width: 40px; min-height: 40px; align-items: center; justify-content: center; padding: 0 11px; border: 1px solid transparent; border-radius: 8px; color: var(--ink); background: transparent; font: 600 14px/1 var(--font-body); cursor: pointer; transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease; }
.directory-page-button:hover:not(:disabled) { border-color: #f3d1ba; color: var(--orange-deep); background: #fff8f2; }
.directory-page-button[aria-current="page"] { border-color: var(--orange); color: #fff; background: var(--orange); }
.directory-page-button:disabled { color: #aab2b8; cursor: not-allowed; }
.directory-page-button.directory-page-arrow { font-size: 22px; }
.directory-page-button.directory-page-next { min-width: 120px; margin-left: 8px; border-color: var(--orange); color: #fff; background: var(--orange); }
.directory-page-button.directory-page-next:hover:not(:disabled) { border-color: var(--orange-deep); color: #fff; background: var(--orange-deep); }
.directory-page-button.directory-page-next:disabled { border-color: #f0c6a9; color: #fff; background: #f0c6a9; }
.directory-page-ellipsis { padding: 0 4px; color: #89939a; }
.directory-empty { margin: 0; padding: 28px 20px; border: 1px dashed #d4dcde; border-radius: 12px; color: var(--muted); background: #fff; font-size: 14px; line-height: 1.7; text-align: center; }
.directory-empty[hidden] { display: none; }
.category-hero { padding: 18px 0 67px; background: #fffdf9; }
.category-hero-copy { max-width: 780px; margin: 24px auto 0; text-align: center; }
.category-hero-copy h1 { max-width: none; font-size: clamp(2.2rem, 8vw, 4.25rem); }
.category-hero-copy > p:not(.directory-eyebrow) { max-width: 680px; margin: 18px auto 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.category-hero-copy .btn { margin-top: 25px; }
.category-services { padding: 58px 0 65px; background: #f1f4f5; }
.category-section-heading { margin-bottom: 27px; }
.category-service-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.category-service-item { padding: 21px; border: 1px solid #e1e6e6; border-radius: 12px; background: #fff; }
.category-service-item > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 10px; color: var(--orange-deep); background: #fff0e5; font-size: 17px; }
.category-service-item h3 { margin: 15px 0 0; color: var(--ink); font: 700 16px/1.35 var(--font-display); }
.category-service-item p { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.category-ad-section { padding: 25px 0; background: #fffdf9; }
.category-ad-slot { margin-top: 0; }
.category-providers { padding: 55px 0 60px; }
.category-providers .directory-results-heading { align-items: end; }
.category-providers .directory-results-heading h2 { margin: 0; }
.category-provider-card { display: grid; gap: 20px; align-items: center; padding: 21px; border: 1px solid #e3e8e8; border-radius: 14px; background: #fff; box-shadow: 0 9px 27px rgba(23,45,64,.045); }
.category-provider-logo { width: 100px; height: 88px; }
.category-provider-info { min-width: 0; }
.category-provider-info .directory-location { margin: 0 0 7px; }
.category-provider-info h3 { margin: 0; font: 800 21px/1.3 var(--font-display); }
.category-provider-info h3 a { color: var(--ink); text-decoration: none; text-decoration-color: var(--orange); text-underline-offset: 4px; }
.category-provider-info h3 a:hover { color: var(--orange-deep); text-decoration: underline; }
.category-provider-info > p:not(.directory-location) { margin: 9px 0 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.category-provider-actions { display: grid; gap: 11px; justify-items: start; }
.category-provider-actions .btn { min-height: 45px; padding: 10px 14px; font-size: 12px; }
.category-profile-link { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font-size: 12px; font-weight: 700; text-decoration: none; }
.category-profile-link i { color: var(--orange-deep); }
.category-profile-link:hover { color: var(--orange-deep); }
.category-faq { margin-top: 0; padding: 58px 0 66px; background: #f1f4f5; }
.category-more { padding: 25px 0; color: #fff; background: var(--ink); }
.category-more-inner { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.category-more-inner p { margin: 0; font: 700 15px/1.4 var(--font-display); }
.category-more .btn-outline-dark { border-color: rgba(255,255,255,.45); color: #fff; font-size: 12px; }
.category-more .btn-outline-dark:hover { border-color: #fff; background: rgba(255,255,255,.1); }
:focus-visible { outline: 3px solid #194f70; outline-offset: 3px; }
::selection { color: #fff; background: var(--orange-deep); }

@media (min-width: 768px) {
  .quick-search { padding-bottom: 58px; }
  .quick-search-panel { padding: 24px; }
  .quick-search-fields { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 120px; }
  .quick-search-input:first-of-type { border-radius: 4px 0 0 4px; }
  .quick-search-input:nth-of-type(2) { margin-left: -9px; border-radius: 0; }
  .quick-search-submit { margin-left: -9px; border-radius: 0 4px 4px 0; }
  .hero { padding: 70px 0 76px; }
  .hero-inner { grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr); gap: 50px; }
  .hero-visual { min-height: 460px; }
  .hero-copy { padding: 12px 0; }
  .photo-caption { right: 20px; bottom: 20px; padding: 13px 17px; }
  .companies-section { padding: 90px 0 96px; }
  .company-row { grid-template-columns: 105px minmax(0, 1fr) 32px; gap: 20px; min-height: 140px; }
  .company-logo { width: 105px; height: 92px; padding: 12px; }
  .company-info h3 { font-size: 18px; }
  .company-info p { font-size: 13px; }
  .trade-section { padding: 86px 0 96px; }
  .section-heading { margin-bottom: 42px; }
  .trade-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .trade-item { aspect-ratio: 1.25; padding: 22px 16px; gap: 22px; }
  .cities-section { padding: 82px 0 92px; }
  .advice-section { padding: 86px 0 98px; }
  .find-business-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 42px; }
  .find-business-step { padding: 25px 20px 22px; }
  .why-portal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .article-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
  .article-content { min-height: 280px; }
  .directory-filters { grid-template-columns: minmax(0, 1.6fr) minmax(220px, 1fr) auto; gap: 13px; padding: 19px; }
  .directory-reset { min-height: 48px; }
  .directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .city-business-map { height: 390px; }
  .directory-card { padding: 20px; }
  .category-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
  .category-provider-card { grid-template-columns: 100px minmax(0, 1fr); gap: 17px 20px; }
  .category-provider-actions { grid-column: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
  .business-page { padding-top: 28px; }
  .business-profile { grid-template-columns: 130px minmax(0, 1fr); gap: 25px; padding: 34px; }
  .business-profile-logo { width: 130px; height: 130px; }
  .business-content-grid { grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); gap: 24px; margin-top: 28px; }
  .business-panel { padding: 27px; }
  .related-businesses { margin-top: 66px; padding-top: 32px; }
  .related-businesses-track { grid-auto-columns: calc((100% - 45px) / 4); gap: 15px; }
  .related-business-image { height: 180px; }
  .inquiry-card-heading { padding: 25px 26px 21px; }
  .inquiry-form { padding: 23px 26px 26px; }
}
@media (min-width: 992px) {
  .why-portal-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
  .business-promo { padding: 70px 0 76px; }
  .business-promo-heading { margin-bottom: 48px; }
  .business-promo-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 46px; }
  .business-promo-copy { gap: 27px; }
  .profile-device-showcase { min-height: 440px; }
  .device-tablet-screen { min-height: 185px; }
  .device-phone-screen { min-height: 225px; }
  .navbar-nav { gap: 10px; padding-top: 0; }
  .hero-inner { gap: 70px; }
  .hero-visual { min-height: 510px; }
  .companies-layout { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: center; gap: 76px; }
  .companies-intro { padding: 24px 0; }
  .trade-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
  .trade-item { aspect-ratio: 1.35; padding: 25px 18px; gap: 22px; }
  .directory-intro { padding-bottom: 42px; }
  .directory-heading { margin-bottom: 31px; }
  .directory-results-section { padding-top: 43px; }
  .directory-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
  .directory-card { padding: 19px; }
  .category-services { padding: 82px 0 90px; }
  .category-service-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; }
  .category-service-item { padding: 21px 18px; }
  .category-provider-card { grid-template-columns: 100px minmax(0, 1fr) auto; gap: 25px; padding: 27px; }
  .category-provider-actions { grid-column: auto; display: grid; justify-items: end; }
  .advice-heading { margin-bottom: 42px; }
  .article-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
}
@media (max-width: 575px) {
  .site-container { width: min(100% - 30px, 1200px); }
  .hero-actions .btn { width: 100%; }
  .invite-inner { align-items: flex-start; flex-direction: column; gap: 9px; }
  .directory-filters { grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); }
  .directory-search-field { grid-column: 1 / -1; }
  .directory-reset { align-self: end; }
  .category-more-inner { align-items: stretch; flex-direction: column; gap: 13px; }
  .category-more-inner .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .trade-item:hover, .city-item:hover { transform: none; }
  .trade-more-items:not([hidden]) .trade-item { animation: none; }
}

.partner-badge { display: inline-flex; width: fit-content; align-items: center; gap: 7px; margin-top: 8px; padding: 6px 10px; border: 1px solid #f3c29e; border-radius: 999px; color: #713b18; background: #fff2e8; font: 700 11px/1.2 var(--font-body); letter-spacing: .01em; }
.partner-badge i { color: var(--orange-deep); font-size: 11px; }
.profile-partner-badge { margin-top: 12px; }

.site-footer { color: #f8f5ef; background: #172d40; }
.site-footer-main { padding: 46px 0 40px; }
.site-footer-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: 28px 22px; }
.footer-brand, .footer-brand:hover { color: #fff; text-decoration: none; }
.footer-brand .brand-logo { width: 78px; height: 78px; }
.site-footer-brand > p { max-width: 30ch; margin: 16px 0 0; color: #d0d8dd; font-size: 13px; line-height: 1.7; }
.site-footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 11px; }
.site-footer-column h2 { margin: 4px 0 5px; color: #fff; font: 700 14px/1.3 var(--font-display); }
.site-footer-column a, .site-footer-legal a { color: #d0d8dd; font-size: 12px; line-height: 1.5; text-decoration: none; text-underline-offset: 4px; }
.site-footer-column a:hover, .site-footer-legal a:hover { color: #fff; text-decoration: underline; }
.site-footer-column a:focus-visible, .site-footer-legal a:focus-visible { outline: 2px solid #ffad71; outline-offset: 4px; border-radius: 2px; }
.site-footer-bottom { border-top: 1px solid rgba(255,255,255,.16); }
.site-footer-bottom-inner { display: flex; min-height: 60px; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding-top: 12px; padding-bottom: 12px; color: #d0d8dd; font-size: 11px; }
.site-footer-legal { display: flex; flex-wrap: wrap; gap: 20px; }
.legal-page { min-height: 65vh; padding: 48px 0 70px; background: #fffdf9; }
.legal-page-heading { max-width: 760px; margin: 36px auto 30px; }
.legal-page h1 { max-width: 820px; margin: 0; font-size: clamp(2.2rem, 7vw, 3.5rem); }
.legal-page-heading p { margin-top: 10px; color: var(--muted); font-size: 15px; line-height: 1.75; }
.legal-details { display: grid; max-width: 760px; gap: 24px; margin: 0 auto; }
.legal-details section { padding-top: 20px; border-top: 1px solid #e5e8e8; }
.legal-details h2 { margin: 0; color: var(--ink); font: 700 18px/1.4 var(--font-display); }
.legal-details p, .legal-details address { max-width: 68ch; margin: 10px 0 0; color: var(--muted); font-size: 15px; font-style: normal; line-height: 1.75; }
.legal-details address strong { color: var(--ink); }
.legal-details a { color: var(--orange-deep); text-underline-offset: 3px; }
@media (max-width: 767px) { .site-footer-main { padding: 36px 0 31px; } .site-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 22px; } .site-footer-brand { grid-column: 1 / -1; } }
@media (max-width: 420px) { .site-footer-bottom-inner { align-items: flex-start; flex-direction: column; } }
.advice-page-heading { max-width: 850px; }
.advice-page-heading h1 { max-width: 18ch; margin-inline: auto; font-size: clamp(2.2rem, 7vw, 3.7rem); }
.advice-page-heading > p:not(.directory-eyebrow) { max-width: 58ch; margin: 17px auto 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
.advice-list-section { padding: 38px 0 74px; background: #fff; }
.advice-article-grid { max-width: 950px; margin-inline: auto; }
.advice-article-grid .article-content { min-height: 245px; }
.guide-article-page { padding: 18px 0 76px; background: #f7f8f8; }
.guide-article-header { max-width: 850px; margin: 28px auto 30px; text-align: center; }
.guide-article-header .directory-eyebrow { justify-content: center; }
.guide-article-header h1 { max-width: 18ch; margin: 0 auto; font-size: clamp(2.25rem, 7vw, 3.8rem); }
.guide-article-lead { max-width: 690px; margin: 18px auto 0; color: var(--muted); font-size: clamp(16px, 2.4vw, 19px); line-height: 1.7; }
.guide-article-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 19px; color: #687781; font-size: 12px; }
.guide-article-meta i { color: var(--orange-deep); }
.guide-article-cover { max-width: 1020px; margin: 0 auto 34px; overflow: hidden; aspect-ratio: 16 / 7; border-radius: 16px; background: #e4e9e9; }
.guide-article-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.guide-article-layout { display: grid; max-width: 1020px; gap: 27px; align-items: start; margin: 0 auto; }
.guide-article-aside { padding: 18px; border: 1px solid #e4e8e8; border-radius: 12px; background: #fff; }
.guide-article-aside > p { margin: 0 0 10px; color: var(--ink); font: 700 14px/1.4 var(--font-display); }
.guide-article-aside nav { display: flex; flex-wrap: wrap; gap: 8px; }
.guide-article-aside a { padding: 7px 10px; border: 1px solid #f0e3d9; border-radius: 999px; color: #704323; background: #fff8f2; font-size: 11px; text-decoration: none; }
.guide-article-aside a:hover { border-color: var(--orange); color: var(--orange-deep); }
.guide-article-content { min-width: 0; padding: clamp(20px, 5vw, 42px); border: 1px solid #e4e8e8; border-radius: 14px; background: #fff; }
.guide-article-content > p, .guide-article-content section > p { color: #465663; font-size: 15px; line-height: 1.8; }
.guide-article-content section > ul, .guide-article-content section > ol { display: grid; gap: 10px; margin: 13px 0; padding-left: 23px; color: #465663; font-size: 15px; line-height: 1.75; }
.guide-article-content section > ul li::marker, .guide-article-content section > ol li::marker { color: var(--orange-deep); font-weight: 700; }
.guide-article-content .guide-article-intro { color: var(--ink); font-size: 17px; line-height: 1.8; }
.guide-article-content section { padding-top: 20px; scroll-margin-top: 24px; }
.guide-article-content section h2, .guide-article-related h2 { margin: 0 0 12px; color: var(--ink); font: 800 clamp(1.25rem, 3vw, 1.55rem)/1.35 var(--font-display); letter-spacing: -.02em; }
.guide-article-content section > p:last-child { margin-bottom: 0; }
.guide-article-conclusion { margin-top: 24px; padding: 23px; border: 1px solid #f2d3bd; border-radius: 12px; background: #fff8f2; }
.guide-article-conclusion .btn { margin-top: 8px; }
.guide-article-related { display: grid; gap: 11px; margin-top: 26px; padding-top: 22px; border-top: 1px solid #e6eaea; }
.guide-article-related h2 { margin-bottom: 2px; font-size: 18px; }
.guide-article-related a { display: flex; justify-content: space-between; gap: 12px; padding: 11px 13px; border: 1px solid #e7ebeb; border-radius: 8px; color: var(--ink); font-size: 13px; font-weight: 600; text-decoration: none; }
.guide-article-related a i { color: var(--orange-deep); }
.guide-article-related a:hover { border-color: #edc2a5; color: var(--orange-deep); }
.recommended-articles { display: grid; max-width: 1020px; gap: 16px; margin: 42px auto 0; padding: 27px clamp(18px, 3vw, 30px); border: 1px solid #e4e8e8; border-radius: 14px; background: #fff; }
.recommended-articles > h2 { margin: 0; color: var(--ink); font: 800 clamp(1.35rem, 3vw, 1.7rem)/1.25 var(--font-display); letter-spacing: -.025em; }
.recommended-articles-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.recommended-article { min-width: 0; }
.recommended-article-image { display: block; overflow: hidden; aspect-ratio: 16 / 9; border-radius: 10px; background: #e4e9e9; }
.recommended-article-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 320ms ease; }
.recommended-article-image:hover img { transform: scale(1.025); }
.recommended-article-copy { display: grid; align-content: start; gap: 7px; padding-top: 11px; }
.recommended-article-copy time { color: #687781; font-size: 11px; }
.recommended-article-copy h3 { margin: 0; font: 700 16px/1.35 var(--font-display); }
.recommended-article-copy h3 a { color: var(--ink); text-decoration: none; text-underline-offset: 3px; }
.recommended-article-copy h3 a:hover { color: var(--orange-deep); text-decoration: underline; }
.recommended-article-copy .article-readmore { margin-top: 0; padding-top: 2px; font-size: 12px; }
.guide-article-faq { padding-top: 25px !important; }
.guide-article-faq details { margin-top: 10px; padding: 14px 16px; border: 1px solid #e4e8e8; border-radius: 9px; background: #fff; }
.guide-article-faq summary { color: var(--ink); font: 700 14px/1.5 var(--font-display); cursor: pointer; }
.guide-article-faq summary::marker { color: var(--orange-deep); }
.guide-article-faq details p { margin: 10px 0 0; color: #465663; font-size: 14px; line-height: 1.7; }
@media (min-width: 992px) { .guide-article-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 32px; } .guide-article-aside { position: sticky; top: 20px; } .guide-article-aside nav { display: grid; } }
@media (max-width: 767px) { .guide-article-page { padding-bottom: 52px; } .guide-article-header { margin: 22px auto; text-align: left; } .guide-article-header .directory-eyebrow { justify-content: flex-start; } .guide-article-header h1 { margin-inline: 0; font-size: clamp(2rem, 10vw, 2.8rem); } .guide-article-lead { margin-inline: 0; font-size: 16px; } .guide-article-meta { justify-content: flex-start; } .guide-article-cover { margin-bottom: 20px; aspect-ratio: 4 / 3; border-radius: 11px; } .guide-article-aside nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .guide-article-aside a { border-radius: 7px; text-align: center; } .guide-article-content { padding: 20px 17px; } .guide-article-content > p, .guide-article-content section > p { font-size: 14px; } .guide-article-content .guide-article-intro { font-size: 16px; } .guide-article-conclusion { padding: 18px; } .guide-article-conclusion .btn { width: 100%; } }
.guide-article-layout-full { max-width: 820px; grid-template-columns: minmax(0, 1fr); }
.guide-article-layout-ad { grid-template-columns: 300px minmax(0, 1fr); gap: 32px; }
.guide-article-layout-ad .guide-article-aside { position: sticky; top: 20px; }
.guide-article-layout-ad .guide-article-aside nav { display: grid; }
.guide-banner-ad { margin: 20px 0 0; }
.guide-banner-ad .premium-ad-placeholder { min-height: 250px; padding: 20px 14px; }
.advice-all-link-wrap { display: flex; justify-content: center; margin-top: 30px; }
@media (max-width: 991px) { .guide-article-layout-ad { grid-template-columns: minmax(0, 1fr); gap: 20px; } .guide-article-layout-ad .guide-article-aside { position: static; } .guide-article-layout-ad .guide-article-aside nav { display: flex; } }
@media (max-width: 767px) { .guide-banner-ad .premium-ad-placeholder { min-height: 180px; padding: 20px 16px; } }
@media (max-width: 575px) { .recommended-articles-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; } .recommended-article-image { aspect-ratio: 16 / 8; } }
@media (max-width: 767px) { .advice-list-section { padding: 30px 0 55px; } .advice-article-grid .article-content { min-height: 0; } .advice-article-grid .article-readmore { margin-top: 12px; } }
.guest-post-section { padding: 42px 0; background: #f1f4f5; }
.guest-post-inner { display: grid; grid-template-columns: 54px minmax(0, 1fr); align-items: start; gap: 16px; }
.guest-post-icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 12px; color: #fff; background: var(--orange); font-size: 19px; }
.guest-post-copy h2 { max-width: 26ch; margin: 0; color: var(--ink); font: 800 clamp(1.35rem, 4vw, 2rem)/1.22 var(--font-display); letter-spacing: -.025em; }
.guest-post-copy p { max-width: 68ch; margin: 13px 0 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.guest-post-copy .btn { margin-top: 18px; }
.advice-ad-section { padding: 26px 0 55px; background: #fff; }
.advice-ad-slot { margin-top: 0; }
@media (min-width: 768px) { .guest-post-section { padding: 58px 0; } .guest-post-inner { grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 22px; } .guest-post-icon { width: 56px; height: 56px; font-size: 21px; } }
.signup-heading { max-width: 780px; margin-bottom: 0; }
.signup-heading h1 { max-width: 19ch; margin-inline: auto; font-size: clamp(2.1rem, 7vw, 3.6rem); }
.signup-heading > p { max-width: 62ch; margin: 17px auto 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.signup-content { padding: 34px 0 72px; background: #f7f8f8; }
.signup-layout { display: grid; gap: 20px; align-items: start; }
.signup-aside-column { display: grid; gap: 18px; align-items: start; }
.signup-card { min-width: 0; }
.signup-form { padding: 20px; }
.signup-fields { display: grid; gap: 14px; }
.signup-field { display: grid; gap: 7px; min-width: 0; }
.signup-field label { color: var(--ink); font-size: 12px; font-weight: 700; }
.signup-field label span { color: var(--muted); font-weight: 400; }
.signup-field input, .signup-field textarea { width: 100%; min-height: 46px; padding: 11px 12px; border: 1px solid #d4dcde; border-radius: 8px; color: var(--ink); background: #fff; font: 400 13px/1.5 var(--font-body); }
.signup-field textarea { min-height: 128px; resize: vertical; }
.signup-field input::placeholder, .signup-field textarea::placeholder { color: #66757f; opacity: 1; }
.signup-field :is(input,textarea):focus-visible { border-color: var(--orange-deep); outline: 3px solid rgba(244,119,33,.18); outline-offset: 1px; }
.signup-consent { margin: 18px 0; }
.signup-consent a { color: var(--orange-deep); text-underline-offset: 3px; }
.signup-notice { display: flex; align-items: flex-start; gap: 8px; margin: 0; color: #485a66; font-size: 12px; line-height: 1.6; }
.signup-notice i { margin-top: 3px; color: var(--orange-deep); }
.signup-aside { padding: 23px; border: 1px solid #e0e6e7; border-radius: 14px; background: #fff; }
.signup-aside h2 { margin: 0; color: var(--ink); font: 800 20px/1.3 var(--font-display); letter-spacing: -.02em; }
.signup-aside > p { margin: 11px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.signup-aside ul { display: grid; gap: 12px; margin: 18px 0 0; padding: 0; list-style: none; }
.signup-aside li { display: flex; align-items: flex-start; gap: 10px; color: var(--ink); font-size: 13px; line-height: 1.5; }
.signup-aside li i { margin-top: 3px; color: var(--orange-deep); font-size: 12px; }
.signup-aside-link { display: inline-flex; align-items: center; gap: 9px; margin-top: 22px; color: var(--ink); font-size: 13px; font-weight: 700; text-decoration: none; }
.signup-aside-link:hover { color: var(--orange-deep); }
.signup-aside-link:focus-visible { outline: 2px solid var(--orange-deep); outline-offset: 4px; }
.signup-partner { display: grid; overflow: hidden; margin: 0; border: 1px solid #e9e1d8; border-radius: 14px; background: #fff; box-shadow: 0 10px 25px rgba(23,45,64,.08); }
.signup-partner-copy { display: grid; grid-template-columns: 50px minmax(0,1fr); align-items: start; gap: 15px; padding: 23px 20px; }
.signup-partner-icon { display: grid; width: 50px; height: 50px; place-items: center; border-radius: 13px; color: #a8440d; background: #fff0e5; font-size: 20px; }
.signup-partner-copy h2 { max-width: 25ch; margin: 0; color: var(--ink); font: 800 clamp(1.35rem, 5vw, 2rem)/1.2 var(--font-display); letter-spacing: -.03em; }
.signup-partner-copy p { max-width: 48ch; margin: 10px 0 0; color: #4b5a65; font-size: 14px; line-height: 1.65; }
.signup-partner-action { display: flex; min-height: 60px; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 20px; color: #172d40; background: #f47721; font: 800 14px/1.3 var(--font-display); }
.signup-partner-action i { font-size: 19px; }
@media (min-width: 680px) { .signup-form { padding: 24px; } .signup-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } .signup-field-wide { grid-column: 1 / -1; } }
@media (min-width: 992px) { .signup-content { padding: 44px 0 82px; } .signup-layout { grid-template-columns: minmax(0, 1.45fr) minmax(260px, .75fr); gap: 25px; } .signup-form { padding: 27px; } .signup-aside { padding: 27px; } }

.review-stars { display: inline-flex; align-items: center; gap: 3px; color: #b64c0d; line-height: 1; }
.review-stars i { font-size: 13px; }
.review-stars .review-star-filled { color: #b64c0d; }
.review-stars .review-star-empty { color: #66747d; }
.review-summary-stars .review-stars i { font-size: 14px; }
.business-rating-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; color: var(--muted); font-size: 13px; }
.business-rating-summary > strong { color: var(--ink); font-size: 14px; font-variant-numeric: tabular-nums; }
.business-rating-summary > a { display: inline-flex; align-items: center; gap: 6px; margin-left: 3px; color: var(--orange-deep); font-weight: 700; text-decoration: none; text-underline-offset: 3px; }
.business-rating-summary > a:hover { text-decoration: underline; }
.business-rating-summary > a:focus-visible, .directory-review-summary a:focus-visible, .company-review-summary a:focus-visible { outline: 2px solid var(--orange-deep); outline-offset: 3px; border-radius: 3px; }
.business-reviews { margin-top: 28px; padding: 23px; border: 1px solid #e4e8e8; border-radius: 14px; background: #fff; scroll-margin-top: 24px; }
.business-reviews-heading { display: flex; flex-direction: column; gap: 14px; }
.business-reviews-heading h2 { margin: 0; color: var(--ink); font: 800 clamp(1.35rem, 4vw, 1.8rem)/1.25 var(--font-display); letter-spacing: -.025em; }
.business-reviews-heading p { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.business-reviews-overview { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; }
.business-reviews-overview strong { color: var(--ink); font-size: 14px; font-variant-numeric: tabular-nums; }
.business-reviews-layout { display: grid; gap: 24px; margin-top: 23px; }
.review-list { display: grid; align-content: start; gap: 12px; min-width: 0; }
.review-empty { margin: 0; padding: 16px; border-radius: 9px; color: var(--muted); background: #f4f6f6; font-size: 13px; line-height: 1.6; }
.review-item { padding: 16px 0; border-bottom: 1px solid #e8ecec; }
.review-item:first-child { padding-top: 0; }
.review-item:last-child { border-bottom: 0; }
.review-item-heading { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 9px; }
.review-item-heading h3 { margin: 0; color: var(--ink); font: 700 14px/1.4 var(--font-display); }
.review-item-heading time { display: block; margin-top: 3px; color: #5c6871; font-size: 11px; }
.review-item > p { margin: 11px 0 0; color: #3f505c; font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.review-form { display: grid; gap: 10px; align-content: start; padding: 18px; border: 1px solid #e4e8e8; border-radius: 11px; background: #fafbfa; }
.review-form h3 { margin: 0; color: var(--ink); font: 800 17px/1.3 var(--font-display); }
.review-form > p:first-of-type { margin: -3px 0 3px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.review-rating-fieldset { min-width: 0; margin: 0 0 4px; padding: 0; border: 0; }
.review-rating-fieldset legend, .review-form-label { display: block; margin: 0 0 6px; color: var(--ink); font-size: 12px; font-weight: 700; }
.review-rating-options { display: flex; align-items: center; gap: 4px; }
.review-rating-options input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.review-rating-options label { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border-radius: 6px; color: #73808a; cursor: pointer; font-size: 22px; transition: color .14s ease, background-color .14s ease, transform .14s ease; }
.review-rating-options label:hover { color: #9f410d; background: #fff0e5; transform: translateY(-1px); }
.review-rating-options input:focus-visible + label { outline: 3px solid rgba(216,91,18,.35); outline-offset: 2px; }
.review-rating-options:has(#review-rating-1:checked) label[for="review-rating-1"],
.review-rating-options:has(#review-rating-2:checked) label:is([for="review-rating-1"],[for="review-rating-2"]),
.review-rating-options:has(#review-rating-3:checked) label:is([for="review-rating-1"],[for="review-rating-2"],[for="review-rating-3"]),
.review-rating-options:has(#review-rating-4:checked) label:is([for="review-rating-1"],[for="review-rating-2"],[for="review-rating-3"],[for="review-rating-4"]),
.review-rating-options:has(#review-rating-5:checked) label[for^="review-rating-"] { color: #b64c0d; }
.review-text-input { width: 100%; min-height: 43px; padding: 10px 11px; border: 1px solid #cbd3d5; border-radius: 7px; color: var(--ink); background: #fff; font: 400 13px/1.55 var(--font-body); }
.review-text-input:focus-visible { border-color: var(--orange-deep); outline: 3px solid rgba(244,119,33,.18); outline-offset: 1px; }
textarea.review-text-input { min-height: 118px; resize: vertical; }
.review-public-note { margin: 2px 0 0; color: #4b5962; font-size: 11px; line-height: 1.55; }
.review-submit { width: 100%; margin-top: 3px; }
.review-feedback { display: flex; align-items: flex-start; gap: 8px; margin: 16px 0 0; padding: 11px 13px; border-radius: 8px; font-size: 12px; line-height: 1.55; }
.review-feedback-success { color: #174e35; background: #eaf5ee; }
.review-feedback-error { color: #762f20; background: #fff0e9; }
.review-honeypot { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.directory-review-summary, .company-review-summary { margin-top: 7px; }
.directory-review-summary a, .company-review-summary a { display: inline-flex; min-height: 24px; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; text-decoration: none; }
.directory-review-summary a:hover, .company-review-summary a:hover { color: var(--ink); }
.directory-review-summary .review-stars i, .company-review-summary .review-stars i { font-size: 11px; }
.directory-review-summary .review-summary-stars, .company-review-summary .review-summary-stars { display: inline-flex; }
.directory-review-summary strong, .company-review-summary strong { color: var(--ink); font-size: 11px; font-variant-numeric: tabular-nums; }
@media (min-width: 768px) {
  .business-reviews { padding: 29px; }
  .business-reviews-heading { flex-direction: row; align-items: center; justify-content: space-between; gap: 22px; }
  .business-reviews-layout { grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); align-items: start; gap: 30px; }
}
