:root{color-scheme:light;--cream: #fbf8f1;--paper: #fffdf8;--navy: #0f1d2d;--navy-soft: #2b3948;--muted: #626b73;--line: #d9d3c8;--red: #d52936;--red-dark: #b51f2b;--sage: #dfe5d8;--sage-deep: #23362b;--focus: #2a6f97;--page: min(1600px, calc(100% - 64px) );--radius: 14px;--control-radius: 10px;--ease: cubic-bezier(.23, 1, .32, 1)}:root[data-theme=dark]{color-scheme:dark;--cream: #111922;--paper: #1b2632;--navy: #f7f3eb;--navy-soft: #d8dee5;--muted: #aeb8c3;--line: #384654;--red: #ef4b56;--red-dark: #df6871;--sage: #293b32;--sage-deep: #edf5ed;--focus: #79b9dc}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--cream);color:var(--navy);font-family:Archivo,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Playfair Display,Georgia,serif}.skip-link{position:fixed;left:16px;top:-100px;z-index:100;background:var(--navy);color:var(--cream);padding:12px 16px;border-radius:8px}.skip-link:focus{top:16px}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.site-header{position:sticky;top:0;z-index:40;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--cream) 94%,transparent);backdrop-filter:blur(14px)}.header-inner{width:var(--page);height:78px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:inline-flex;align-items:center;gap:12px;min-height:52px}.brand img{width:50px;height:52px;-o-object-fit:contain;object-fit:contain}.brand-type{display:grid;line-height:.96}.brand-type strong,.brand-type em{font-family:Playfair Display,Georgia,serif;font-size:1.22rem}.brand-type em{margin-top:3px;font-weight:500}.primary-nav{display:flex;align-items:center;gap:clamp(18px,2.1vw,34px);font-size:.74rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.primary-nav a,.theme-toggle{transition:color .16s ease,border-color .16s ease,background .16s ease}.primary-nav a:hover,.primary-nav a[aria-current=page]{color:var(--red)}.theme-toggle,.menu-toggle{min-height:44px;border:1px solid var(--line);border-radius:999px;background:transparent;padding:0 18px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.theme-toggle:hover,.menu-toggle:hover{border-color:var(--red)}.menu-toggle{display:none}.directory-hero{width:var(--page);margin:0 auto;padding:clamp(42px,5vw,72px) 0 62px}.directory-hero>*{min-width:0}.hero-intro{display:grid;grid-template-columns:minmax(360px,.76fr) minmax(520px,1.24fr);align-items:center;gap:clamp(42px,6vw,96px)}.hero-copy{padding:18px 0 78px}.hero-copy h1{max-width:720px;font-size:clamp(3.25rem,5vw,4.85rem);font-weight:500;line-height:.96;letter-spacing:-.04em}.hero-copy p{max-width:590px;margin-top:26px;color:var(--navy-soft);font-size:clamp(1.08rem,1.5vw,1.35rem);line-height:1.55}.hero-image{height:clamp(360px,34vw,520px);margin:0;overflow:hidden;border-radius:var(--radius)}.hero-image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center 48%;object-position:center 48%}.search-panel{position:relative;z-index:5;width:min(1040px,calc(100% - 72px));margin:-70px auto 0;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:clamp(24px,3vw,34px);box-shadow:0 20px 54px color-mix(in srgb,var(--navy) 10%,transparent)}.search-panel>label{display:block;margin-bottom:12px;font-size:.83rem;font-weight:700}.search-row{display:grid;grid-template-columns:1fr auto;gap:12px}.search-combobox{position:relative;min-width:0}.search-row input{width:100%;min-height:58px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--cream);color:var(--navy);padding:0 18px;font-size:1rem}.search-row input::-moz-placeholder{color:var(--muted);opacity:1}.search-row input::placeholder{color:var(--muted);opacity:1}.search-row input:focus{border-color:var(--focus);outline:3px solid color-mix(in srgb,var(--focus) 22%,transparent);outline-offset:1px}.button{min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid transparent;border-radius:var(--control-radius);padding:0 24px;font-weight:700;white-space:nowrap;transition:transform .16s var(--ease),background .16s ease}.button:active{transform:translateY(1px)}.button-primary{background:var(--red);color:#fffdf8}.button-primary:hover{background:var(--red-dark)}.popular-searches{margin-top:16px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.popular-searches>span{color:var(--muted);font-size:.76rem;font-weight:700}.popular-searches button{min-height:36px;border:1px solid var(--line);border-radius:999px;background:transparent;padding:0 12px;color:var(--navy-soft);font-size:.75rem;font-weight:600;cursor:pointer;transition:border-color .16s ease,color .16s ease,background .16s ease}.popular-searches button:hover{border-color:var(--red);background:var(--cream);color:var(--red)}.search-status{min-height:1.2em;margin-top:10px;color:var(--muted);font-size:.76rem}.search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:20;overflow:hidden;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--paper);box-shadow:0 16px 38px color-mix(in srgb,var(--navy) 12%,transparent)}.search-results[hidden]{display:none}.search-results>a{min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 14px;border-bottom:1px solid var(--line);transition:background .15s ease}.search-results>a:last-child{border-bottom:0}.search-results>a:hover,.search-results>a.is-active{background:var(--sage)}.search-results a span{display:grid;gap:3px}.search-results strong{font-size:.9rem}.search-results small{color:var(--muted);font-size:.73rem}.search-results em{color:var(--red);font-size:.65rem;font-style:normal;font-weight:700;text-align:right;text-transform:uppercase;letter-spacing:.08em}.no-results{display:grid;gap:5px;padding:16px}.no-results span{color:var(--muted);font-size:.82rem;line-height:1.45}.no-results a{margin-top:5px;color:var(--red);font-size:.8rem;font-weight:700}.browse-section{width:var(--page);margin:0 auto;padding:74px 0 82px;border-top:1px solid var(--line)}.section-heading{max-width:760px}.section-heading h2{font-size:clamp(2.8rem,5vw,5.6rem);font-weight:500;line-height:1;letter-spacing:-.035em}.section-heading p{max-width:650px;margin-top:15px;color:var(--muted);font-size:1rem;line-height:1.65}.service-hubs{max-width:1280px;margin-top:44px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--navy)}.hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.hub-link{position:relative;min-width:0;min-height:148px;display:grid;grid-template-columns:minmax(0,1fr) clamp(7rem,15%,8.5rem) auto;align-items:center;gap:clamp(16px,1.8vw,26px);padding:16px 0;border-top:1px solid var(--line);transition:color .18s ease,background-color .18s ease}.hub-link:nth-child(-n+2){border-top:0}.hub-link:nth-child(odd){padding-right:clamp(28px,4vw,64px)}.hub-link:nth-child(2n){padding-left:clamp(28px,4vw,64px);padding-right:clamp(28px,4vw,64px);border-left:1px solid var(--line)}.hub-link-copy{display:grid;gap:10px}.hub-link strong{font-family:Playfair Display,Georgia,serif;font-size:clamp(1.65rem,2.35vw,2.45rem);font-weight:500;line-height:1.02;letter-spacing:-.025em;transition:color .18s ease}.hub-link small{max-width:390px;color:var(--muted);font-size:.9rem;line-height:1.5;transition:color .18s ease}.hub-image{height:92px;margin:0;overflow:hidden;border-radius:10px;background:var(--paper)}.hub-image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .36s var(--ease)}.hub-link:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.hub-arrow{flex:0 0 auto;color:var(--red);font-size:1.55rem;transition:color .18s ease,transform .18s var(--ease)}.hub-link:hover,.hub-link:focus-visible{background:var(--sage);color:var(--sage-deep)}.hub-link:hover strong,.hub-link:focus-visible strong,.hub-link:hover .hub-arrow,.hub-link:focus-visible .hub-arrow{color:var(--sage-deep)}.hub-link:hover small,.hub-link:focus-visible small{color:color-mix(in srgb,var(--sage-deep) 76%,var(--sage))}@media (hover: hover) and (pointer: fine){.hub-link:hover .hub-arrow{transform:translate(6px)}.hub-link:hover .hub-image img{transform:scale(1.045)}}.directory-categories{max-width:1280px;margin-top:28px}.need-group{min-width:0}.need-group nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.need-group a{min-height:82px;display:grid;grid-template-columns:minmax(0,1fr) 72px auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:10px 14px 10px 18px;color:var(--navy);font-family:Playfair Display,Georgia,serif;font-size:clamp(1.3rem,1.7vw,1.7rem);font-weight:500;line-height:1;letter-spacing:-.025em;transition:border-color .16s ease,background-color .16s ease,color .16s ease,transform .18s var(--ease)}.need-group figure{height:60px;margin:0;overflow:hidden;border-radius:7px;background:var(--cream)}.need-group figure img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .36s var(--ease)}.need-group a>span:last-child{color:var(--red);font-family:Arial,sans-serif;font-size:1.2rem;transition:transform .18s var(--ease)}.need-group a:hover,.need-group a:focus-visible{border-color:var(--sage-deep);background:var(--sage);color:var(--sage-deep)}@media (hover: hover) and (pointer: fine){.need-group a:hover>span:last-child{transform:translate(4px)}.need-group a:hover figure img{transform:scale(1.045)}}.nearby-section{width:var(--page);margin:0 auto 36px;border-radius:var(--radius);background:var(--sage);color:var(--sage-deep)}.nearby-copy{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(320px,1fr) auto;align-items:center;gap:clamp(28px,5vw,74px);padding:clamp(30px,4vw,52px)}.nearby-copy h2{max-width:520px;font-size:clamp(2.15rem,3.5vw,4rem);font-weight:500;line-height:.98;letter-spacing:-.035em}.nearby-copy p{max-width:500px;font-size:.95rem;line-height:1.6}.directory-all-listings{width:var(--page);margin:0 auto 36px;border-top:1px solid var(--line)}.directory-all-inner{padding:18px 0 0}.directory-all-listings summary{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:12px 0 18px;color:var(--navy);cursor:pointer;list-style:none}.directory-all-listings summary::-webkit-details-marker{display:none}.directory-all-listings summary:after{content:"↓";color:var(--red);font-size:1.1rem;transition:transform .18s var(--ease)}.directory-all-listings details[open] summary:after{transform:rotate(180deg)}.directory-all-listings summary span{font-family:Playfair Display,Georgia,serif;font-size:clamp(1.8rem,3vw,2.8rem);font-weight:500;letter-spacing:-.03em}.directory-all-listings summary small{margin-left:auto;color:var(--muted);font-size:.76rem}.all-listings-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}.all-listings-grid a{min-width:0;display:grid;gap:5px;padding:15px 18px 15px 0;border-bottom:1px solid var(--line);transition:color .16s ease,background-color .16s ease}.all-listings-grid a:hover,.all-listings-grid a:focus-visible{color:var(--red)}.all-listings-grid strong{font-family:Playfair Display,Georgia,serif;font-size:1.05rem;font-weight:500;line-height:1.1}.all-listings-grid small{color:var(--muted);font-size:.7rem;line-height:1.35}.business-note{width:var(--page);margin:0 auto;padding:18px 0 20px;border-top:1px solid var(--line);color:var(--muted);font-size:.77rem}.business-note strong{color:var(--navy)}.business-note a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}.business-note a:hover{color:var(--red)}.site-footer{border-top:1px solid var(--line)}.footer-main{width:var(--page);margin:0 auto;padding:28px 0 24px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(150px,.65fr) minmax(190px,.8fr);align-items:start;gap:clamp(36px,6vw,92px)}.site-footer .footer-brand{min-height:0}.footer-summary{max-width:520px;margin-top:12px;color:var(--navy-soft);font-size:.82rem;line-height:1.55}.footer-disclaimer{max-width:560px;margin-top:10px;color:var(--muted);font-size:.72rem;font-weight:600;line-height:1.45}.footer-column{display:grid;justify-items:start;gap:6px;color:var(--muted);font-size:.78rem}.footer-column h2,.footer-social h2{margin:0 0 4px;color:var(--navy);font-family:Archivo,Arial,sans-serif;font-size:.78rem;font-weight:700}.footer-column a,.footer-social a,.footer-legal a{transition:color .16s ease}.footer-column a:hover,.footer-social a:hover,.footer-legal a:hover{color:var(--red-dark)}.footer-business{display:grid;gap:14px}.footer-social{padding-top:12px;border-top:1px solid var(--line)}.footer-social>div{display:flex;flex-wrap:wrap;gap:8px 16px;color:var(--muted);font-size:.78rem}.footer-legal{border-top:1px solid var(--line)}.footer-legal>div{width:var(--page);margin:0 auto;padding:11px 0 13px;display:flex;flex-wrap:wrap;gap:6px 24px;color:var(--muted);font-size:.68rem;font-weight:600}@media (max-width: 1100px){.hero-intro{grid-template-columns:.9fr 1.1fr;gap:36px}.hero-copy h1,.search-panel{max-width:900px}.nearby-copy{grid-template-columns:1fr 1fr}.nearby-copy .button{grid-column:2;justify-self:start}.footer-main{grid-template-columns:minmax(0,1.2fr) minmax(150px,.8fr);gap:28px 48px}.footer-about{grid-column:1 / -1}}@media (max-width: 900px){.directory-hero{width:100%;padding:0 0 52px}.hero-intro{grid-template-columns:1fr;gap:0}.hero-copy{width:var(--page);margin:0 auto;padding:46px 0 36px}.hero-image{height:320px;border-radius:0}.search-panel{width:min(720px,var(--page));margin-top:-42px}}@media (max-width: 760px){:root{--page: calc(100% - 36px) }.header-inner{height:70px}.brand img{width:42px;height:46px}.brand-type strong,.brand-type em{font-size:1.08rem}.menu-toggle{display:inline-flex;align-items:center}.primary-nav{position:absolute;top:70px;left:0;right:0;display:none;align-items:stretch;gap:0;border-bottom:1px solid var(--line);background:var(--paper);padding:12px 18px 18px}.primary-nav.is-open{display:grid}.primary-nav a,.primary-nav .theme-toggle{min-height:48px;display:flex;align-items:center;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 4px}.directory-hero{width:100%;padding:0 0 48px}.hero-intro{grid-template-columns:1fr;gap:0}.hero-copy{width:var(--page);margin:0 auto;padding:42px 0 34px}.hero-copy h1{font-size:clamp(2.85rem,11vw,3.7rem)}.hero-copy p{margin-top:20px;font-size:1rem}.hero-image{height:260px;border-radius:0}.search-panel{width:var(--page);margin:-34px auto 0;padding:20px}.search-row{grid-template-columns:1fr}.search-row .button{width:100%}.popular-searches{width:100%;min-width:0;flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.popular-searches::-webkit-scrollbar{display:none}.popular-searches>*{flex:0 0 auto}.search-results{position:static;margin-top:8px}.browse-section{padding:54px 0 60px}.section-heading h2{font-size:clamp(2.65rem,13vw,4rem)}.service-hubs{margin-top:30px}.hub-grid{grid-template-columns:1fr}.hub-link,.hub-link:nth-child(-n+2){min-height:0;grid-template-columns:minmax(0,1fr) 5.75rem auto;gap:14px;padding:16px 0;border-top:1px solid var(--line)}.hub-link:first-child{border-top:0}.hub-link:nth-child(odd),.hub-link:nth-child(2n){padding-left:0;padding-right:12px;border-left:0}.hub-image{height:72px}.hub-link strong{font-size:clamp(1.5rem,7vw,2rem)}.hub-link small{font-size:.82rem}.directory-categories{margin-top:22px}.need-group nav{grid-template-columns:1fr;gap:8px}.need-group a{min-height:68px;grid-template-columns:minmax(0,1fr) 64px auto;padding:8px 12px 8px 16px;font-size:1.35rem}.need-group figure{height:52px}.nearby-section{width:100%;margin-bottom:30px;border-radius:0}.nearby-copy{padding:36px 18px 42px;grid-template-columns:1fr;gap:18px}.nearby-copy .button{grid-column:auto;margin-top:6px;justify-self:start}.nearby-copy h2{font-size:clamp(2.55rem,12vw,3.8rem)}.directory-all-listings{width:var(--page)}.directory-all-listings summary{align-items:center}.directory-all-listings summary span{font-size:1.8rem}.directory-all-listings summary small{display:none}.all-listings-grid{grid-template-columns:1fr 1fr}.business-note{padding-bottom:16px}.footer-main{padding:24px 0 20px;grid-template-columns:1fr;gap:24px}.footer-about{grid-column:auto}.footer-legal>div{padding:12px 0 14px;gap:8px 18px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}:root{--red: #b62835;--red-dark: #9e202b}:root[data-theme=dark]{--red: #d3545e;--red-dark: #df6871}
