/* Location directory 4.0.1 – one calm, responsive directory layout. */
:root{
    --nwd-text:#17191c;
    --nwd-heading:#111214;
    --nwd-muted:#626870;
    --nwd-line:#e4e7eb;
    --nwd-soft:#f6f7f8;
    --nwd-blue:#1457d9;
    --nwd-blue-dark:#0e45b0;
}

.nwseo-directory-main{
    color:var(--nwd-text);
    background:#fff;
    font-size:16px;
    line-height:1.72;
}
.nwseo-directory-container{
    width:var(--nw-layout-width,70%);
    max-width:var(--nw-layout-max,none);
    margin-inline:auto;
}
.nwseo-directory-eyebrow{
    margin:0 0 12px!important;
    color:var(--nwd-blue);
    font-size:12px;
    font-weight:600;
    line-height:1.35;
    letter-spacing:.105em;
    text-transform:uppercase;
}
.nwseo-directory-main h1,
.nwseo-directory-main h2,
.nwseo-directory-main h3{
    margin:0;
    color:var(--nwd-heading);
    font-weight:600;
    letter-spacing:-.026em;
    line-height:1.17;
}
.nwseo-directory-main h1{max-width:900px;font-size:clamp(2.25rem,4.6vw,4.2rem)}
.nwseo-directory-main h2{font-size:clamp(1.7rem,2.8vw,2.5rem)}
.nwseo-directory-main h3{font-size:1.08rem;line-height:1.35}

/* Hero begins close to the site header; theme top spacing is reset in global.css. */
.nwseo-directory-hero{
    padding:46px 0 72px;
    border-bottom:1px solid var(--nwd-line);
    background:#fff;
}
.nwseo-directory-lead{
    max-width:780px;
    margin:20px 0 0!important;
    color:#454b52;
    font-size:clamp(1.02rem,1.45vw,1.18rem);
    line-height:1.72;
}
.nwseo-directory-actions{
    display:flex;
    flex-wrap:wrap;
    gap:16px;
    align-items:center;
    margin-top:28px;
}
.nwseo-directory-button{
    display:inline-flex;
    min-height:46px;
    padding:11px 18px;
    align-items:center;
    justify-content:center;
    border:1px solid var(--nwd-blue);
    border-radius:6px!important;
    background:var(--nwd-blue);
    box-shadow:none!important;
    color:#fff!important;
    font-size:14px;
    font-weight:600;
    line-height:1.35;
    text-decoration:none!important;
    transition:background-color .16s ease,border-color .16s ease;
}
.nwseo-directory-button:hover{border-color:var(--nwd-blue-dark);background:var(--nwd-blue-dark)}
.nwseo-directory-button-light{border-color:var(--nwd-heading);background:transparent;color:var(--nwd-heading)!important}
.nwseo-directory-button-light:hover{border-color:var(--nwd-blue);background:var(--nwd-blue);color:#fff!important}
.nwseo-directory-text-link{color:var(--nwd-heading)!important;font-size:14px;font-weight:500;text-decoration:none!important}
.nwseo-directory-text-link:hover{color:var(--nwd-blue)!important;text-decoration:underline!important}

.nwseo-directory-facts{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    margin-top:44px;
    border-top:1px solid var(--nwd-line);
}
.nwseo-directory-facts>span{
    min-width:0;
    padding:20px 24px 0 0;
    color:var(--nwd-muted);
    font-size:13px;
}
.nwseo-directory-facts>span+span{padding-left:24px;border-left:1px solid var(--nwd-line)}
.nwseo-directory-facts strong{display:block;margin-bottom:3px;color:var(--nwd-heading);font-size:1.05rem;font-weight:600}

.nwseo-directory-featured,
.nwseo-directory-services-overview,
.nwseo-directory-browser,
.nwseo-directory-why{
    padding:82px 0;
}
.nwseo-directory-featured{background:#fff}
.nwseo-directory-services-overview,.nwseo-directory-why{background:var(--nwd-soft)}
.nwseo-directory-browser{background:#fff}
.nwseo-directory-section-heading{max-width:780px;margin-bottom:34px}
.nwseo-directory-section-heading>p:last-child,
.nwseo-directory-browser .nwseo-directory-intro>div>p:last-child{
    margin:15px 0 0!important;
    color:var(--nwd-muted);
    line-height:1.75;
}

/* Featured locations: compact bordered tiles, not oversized cards. */
.nwseo-directory-featured-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.nwseo-directory-featured-item{
    min-width:0;
    padding:22px;
    border:1px solid var(--nwd-line);
    border-radius:8px!important;
    background:#fff;
    box-shadow:none!important;
}
.nwseo-directory-featured-item h3 a{color:var(--nwd-heading)!important;text-decoration:none!important}
.nwseo-directory-featured-item h3 a:hover{color:var(--nwd-blue)!important}
.nwseo-directory-featured-item>p{margin:7px 0 0!important;color:var(--nwd-muted);font-size:13px}
.nwseo-directory-featured-links{margin-top:17px;padding-top:14px;border-top:1px solid var(--nwd-line)}
.nwseo-directory-featured-links a{color:var(--nwd-blue)!important;font-size:13px;font-weight:600;text-decoration:none!important}

/* Service overview */
.nwseo-directory-service-columns{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    border-top:1px solid var(--nwd-line);
}
.nwseo-directory-service-columns>div{padding:24px 28px 4px 0}
.nwseo-directory-service-columns>div+div{padding-left:28px;border-left:1px solid var(--nwd-line)}
.nwseo-directory-service-columns p{margin:9px 0 0!important;color:var(--nwd-muted);font-size:14px;line-height:1.7}

/* Directory/search section */
.nwseo-directory-intro{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);
    gap:64px;
    align-items:end;
    padding:0 0 38px;
}
.nwseo-directory-search{display:grid;gap:8px;margin:0}
.nwseo-directory-search>span:first-child{color:#3c4146;font-size:13px;font-weight:500}
.nwseo-directory-search-field{
    display:flex;
    min-height:48px;
    align-items:center;
    gap:10px;
    padding:0 13px;
    border:1px solid #d8dce0;
    border-radius:6px!important;
    background:#fff;
    color:#7b8187;
    box-shadow:none!important;
}
.nwseo-directory-search-field:focus-within{border-color:#7b9ee7}
.nwseo-directory-search-field input{
    width:100%;
    min-width:0;
    height:46px;
    margin:0!important;
    padding:0!important;
    border:0!important;
    outline:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:var(--nwd-text)!important;
    font-size:14px!important;
}
.nwseo-directory-counties{border-top:1px solid var(--nwd-line)}
.nwseo-directory-county{
    margin:0;
    padding:0;
    border:0;
    border-bottom:1px solid var(--nwd-line);
    border-radius:0!important;
    background:transparent;
}
.nwseo-directory-county summary{
    position:relative;
    display:flex;
    min-height:62px;
    gap:20px;
    align-items:center;
    justify-content:space-between;
    padding:17px 34px 17px 0;
    color:var(--nwd-heading);
    font-size:15px;
    font-weight:600;
    list-style:none;
    cursor:pointer;
}
.nwseo-directory-county summary::-webkit-details-marker{display:none}
.nwseo-directory-county summary::after{position:absolute;right:2px;content:"+";color:#7a8086;font-size:20px;font-weight:400}
.nwseo-directory-county[open] summary::after{content:"−"}
.nwseo-directory-county summary small{color:var(--nwd-muted);font-size:12px;font-weight:400}
.nwseo-directory-town-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 38px;
    padding:0 0 16px;
    border-top:1px solid #eef0f2;
}
.nwseo-directory-town-row{
    display:flex;
    min-width:0;
    gap:18px;
    align-items:center;
    justify-content:space-between;
    padding:15px 0;
    border-bottom:1px solid #eef0f2;
    color:var(--nwd-heading)!important;
    text-decoration:none!important;
}
.nwseo-directory-town-row>span{display:block;min-width:0}
.nwseo-directory-town-row strong,.nwseo-directory-town-row small{display:block}
.nwseo-directory-town-row strong{font-size:13px;font-weight:600;line-height:1.4}
.nwseo-directory-town-row small{margin-top:3px;color:var(--nwd-muted);font-size:11px;line-height:1.45}
.nwseo-directory-town-row i{flex:0 0 auto;color:#9aa0a6;font-size:11px}
.nwseo-directory-town-row:hover strong,.nwseo-directory-town-row:hover i{color:var(--nwd-blue)}
.nwseo-directory-empty,.nwseo-directory-empty-state{padding:24px 0;color:var(--nwd-muted)}

.nwseo-directory-why-inner{
    display:grid;
    grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);
    gap:72px;
    align-items:start;
}
.nwseo-directory-why p{margin:0!important;color:var(--nwd-muted)}
.nwseo-directory-why p+p{margin-top:16px!important}

.nwseo-directory-final{
    padding:68px 0;
    border-top:1px solid var(--nwd-line);
    background:#fff;
}
.nwseo-directory-final-inner{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:50px;
    align-items:end;
}
.nwseo-directory-final p:not(.nwseo-directory-eyebrow){max-width:700px;margin:14px 0 0!important;color:var(--nwd-muted)}

@media(max-width:980px){
    .nwseo-directory-featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .nwseo-directory-service-columns{grid-template-columns:1fr}
    .nwseo-directory-service-columns>div{padding:22px 0;border-bottom:1px solid var(--nwd-line)}
    .nwseo-directory-service-columns>div+div{padding-left:0;border-left:0}
    .nwseo-directory-intro,.nwseo-directory-why-inner{grid-template-columns:1fr;gap:30px}
}
@media(max-width:700px){
    .nwseo-directory-container{width:var(--nw-layout-mobile,94%)}
    .nwseo-directory-hero{padding:34px 0 54px}
    .nwseo-directory-featured,.nwseo-directory-services-overview,.nwseo-directory-browser,.nwseo-directory-why{padding:58px 0}
    .nwseo-directory-facts{grid-template-columns:1fr;margin-top:34px}
    .nwseo-directory-facts>span{padding:13px 0;border-bottom:1px solid var(--nwd-line)}
    .nwseo-directory-facts>span+span{padding-left:0;border-left:0}
    .nwseo-directory-featured-grid{grid-template-columns:1fr;gap:10px}
    .nwseo-directory-featured-item{padding:19px}
    .nwseo-directory-town-list{grid-template-columns:1fr;gap:0}
    .nwseo-directory-actions{align-items:stretch;flex-direction:column}
    .nwseo-directory-button{width:100%}
    .nwseo-directory-final{padding:56px 0}
    .nwseo-directory-final-inner{grid-template-columns:1fr;gap:24px;align-items:start}
}


/* 5.2.0 theme-state guard */
.nwseo-directory-button:focus,.nwseo-directory-button:focus-visible,.nwseo-directory-button:active{
    background:var(--nwd-blue)!important;background-image:none!important;border-color:var(--nwd-blue)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:none!important;transform:none!important
}
