/* Norrlandswebb SEO Cluster 3.12.2
 * Clean editorial design: white / very light gray, square edges, no decorative shadows.
 */
:root {
    --nw-text: #17191c;
    --nw-heading: #111214;
    --nw-muted: #626870;
    --nw-line: #e5e7ea;
    --nw-soft: #f7f8f8;
    --nw-blue: #1457d9;
    --nw-blue-dark: #0e45b0;
    --nw-white: #ffffff;
    --nw-width: 75%;
    --nw-reading: 760px;
}

.nwseo-page,
.nwseo-page * {
    box-sizing: border-box;
}

.nwseo-page {
    width: 100%;
    margin: 0;
    color: var(--nw-text);
    background: var(--nw-white);
    font-size: 16px;
    line-height: 1.75;
}

.nwseo-page img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 5px !important;
}

.nwseo-page h1,
.nwseo-page h2,
.nwseo-page h3 {
    margin: 0;
    color: var(--nw-heading);
    font-weight: 600;
    letter-spacing: -0.025em;
    line-height: 1.16;
}

.nwseo-page h1 {
    max-width: 850px;
    font-size: clamp(2.3rem, 5vw, 4.5rem);
}

.nwseo-page h2 {
    font-size: clamp(1.75rem, 3vw, 2.65rem);
}

.nwseo-page h3 {
    font-size: 1.15rem;
    line-height: 1.35;
}

.nwseo-page p {
    margin: 0;
}

.nwseo-page a {
    color: inherit;
}

.nwseo-container,
.nwseo-clean-container {
    width: 70%;
    max-width: none;
    margin-inline: auto;
}

.nwseo-reading,
.nwseo-clean-reading {
    max-width: var(--nw-reading);
}

.nwseo-kicker,
.nwseo-clean-kicker,
.nwseo-eyebrow {
    margin: 0 0 14px !important;
    color: var(--nw-blue);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.11em;
    line-height: 1.4;
    text-transform: uppercase;
}

.nwseo-lead,
.nwseo-clean-lead {
    max-width: 760px;
    margin-top: 24px !important;
    color: #42474d;
    font-size: clamp(1.05rem, 1.6vw, 1.22rem);
    line-height: 1.75;
}

.nwseo-breadcrumb,
.nwseo-clean-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    padding: 22px 0 0;
    color: #72777d;
    font-size: 12px;
}

.nwseo-breadcrumb a,
.nwseo-clean-breadcrumb a {
    color: #555b62;
    text-decoration: none;
}

.nwseo-breadcrumb a:hover,
.nwseo-clean-breadcrumb a:hover {
    text-decoration: underline;
}

.nwseo-location-hero,
.nwseo-clean-hero,
.nwseo-hero {
    padding: 58px 0 92px;
    background: #fff;
}

.nwseo-location-hero-grid,
.nwseo-clean-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 56px;
    align-items: center;
}

.nwseo-location-hero-grid.has-image,
.nwseo-clean-hero-grid.has-image {
    grid-template-columns: minmax(0, 1.15fr) minmax(330px, .85fr);
}

.nwseo-location-hero-image,
.nwseo-clean-hero-image {
    margin: 0;
    border: 0;
}

.nwseo-location-hero-image img,
.nwseo-clean-hero-image img {
    width: 100%;
    aspect-ratio: 5 / 4;
    object-fit: cover;
    border-radius: 5px !important;
}

.nwseo-actions,
.nwseo-clean-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: center;
    margin-top: 32px;
}

.nwseo-button,
.nwseo-clean-button {
    display: inline-flex;
    min-height: 48px;
    padding: 12px 20px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--nw-blue);
    border-radius: 0 !important;
    background: var(--nw-blue);
    box-shadow: none !important;
    color: #fff !important;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none !important;
    transform: none !important;
}

.nwseo-button:hover,
.nwseo-clean-button:hover {
    border-color: var(--nw-blue-dark);
    background: var(--nw-blue-dark);
    transform: none !important;
}

.nwseo-text-link,
.nwseo-clean-text-link,
.nwseo-link {
    color: var(--nw-heading) !important;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none !important;
}

.nwseo-text-link:hover,
.nwseo-clean-text-link:hover,
.nwseo-link:hover {
    text-decoration: underline !important;
}

.nwseo-section,
.nwseo-clean-section {
    padding: 94px 0;
    background: #fff;
}

.nwseo-section-soft,
.nwseo-clean-section-soft,
.nwseo-soft {
    background: var(--nw-soft) !important;
}

.nwseo-section-heading,
.nwseo-clean-section-intro {
    max-width: 760px;
    margin-bottom: 46px;
}

.nwseo-section-heading > p:last-child,
.nwseo-clean-section-intro > p:last-child,
.nwseo-clean-section-lead {
    margin-top: 18px !important;
    color: var(--nw-muted);
    font-size: 16px;
    line-height: 1.8;
}

/* Unified service list – deliberately not cards. */
.nwseo-service-list {
    border-top: 1px solid var(--nw-line);
}

.nwseo-service-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 48px;
    padding: 30px 0;
    border-bottom: 1px solid var(--nw-line);
    background: transparent;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.nwseo-service-row p {
    max-width: 720px;
    margin-top: 10px;
    color: var(--nw-muted);
}

.nwseo-service-meta {
    display: flex;
    flex-direction: column;
    gap: 9px;
    align-items: flex-start;
    justify-content: center;
}

.nwseo-service-meta span {
    color: #4e545a;
    font-size: 13px;
}

.nwseo-service-meta a {
    color: var(--nw-blue) !important;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

/* Contact */
.nwseo-contact-grid,
.nwseo-location-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: 72px;
    align-items: start;
}

.nwseo-contact-copy h2,
.nwseo-location-contact-copy h2 {
    margin-bottom: 20px;
}

.nwseo-contact-copy > p:not(.nwseo-kicker),
.nwseo-location-contact-copy > p:not(.nwseo-clean-kicker) {
    color: var(--nw-muted);
}

.nwseo-contact-direct {
    margin-top: 32px !important;
    padding-top: 22px;
    border-top: 1px solid var(--nw-line);
}

.nwseo-contact-direct span {
    display: block;
    margin-bottom: 4px;
    color: var(--nw-muted);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.nwseo-contact-direct a {
    color: var(--nw-heading) !important;
    font-weight: 600;
}

.nwseo-contact-form-wrap,
.nwseo-location-contact-form-wrap {
    padding: 0;
    border: 0;
    border-radius: 0 !important;
    background: transparent;
    box-shadow: none !important;
}

.nwseo-contact-form,
.nwseo-clean-form {
    display: grid;
    gap: 18px;
    margin: 0;
}

.nwseo-form-row,
.nwseo-location-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.nwseo-contact-form label,
.nwseo-clean-form label {
    display: grid;
    gap: 7px;
    color: #363a3f;
    font-size: 13px;
    font-weight: 500;
}

.nwseo-contact-form input,
.nwseo-contact-form select,
.nwseo-contact-form textarea,
.nwseo-clean-form input,
.nwseo-clean-form select,
.nwseo-clean-form textarea {
    width: 100%;
    margin: 0;
    padding: 12px 13px;
    border: 1px solid #d8dce0;
    border-radius: 0 !important;
    outline: 0;
    background: #fff;
    box-shadow: none !important;
    color: var(--nw-text);
    font-size: 14px;
    line-height: 1.5;
}

.nwseo-contact-form input:focus,
.nwseo-contact-form select:focus,
.nwseo-contact-form textarea:focus,
.nwseo-clean-form input:focus,
.nwseo-clean-form select:focus,
.nwseo-clean-form textarea:focus {
    border-color: #7b9ee7;
    box-shadow: none !important;
}

.nwseo-contact-form textarea,
.nwseo-clean-form textarea {
    min-height: 132px;
    resize: vertical;
}

.nwseo-form-footer,
.nwseo-location-form-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    align-items: center;
}

.nwseo-form-footer small,
.nwseo-location-form-footer small {
    color: var(--nw-muted);
}

.nwseo-form-message {
    margin: 0 0 20px;
    padding: 12px 14px;
    border-left: 3px solid #a33;
    border-radius: 0 !important;
    background: #fff;
    box-shadow: none !important;
}

.nwseo-hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

/* Editorial image + text */
.nwseo-editorial-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 58px;
    align-items: center;
}

.nwseo-editorial-grid.has-image {
    grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
}

.nwseo-editorial-grid .nwseo-reading p:not(.nwseo-kicker) {
    margin-top: 20px;
    color: var(--nw-muted);
}

.nwseo-editorial-image {
    margin: 0;
}

.nwseo-editorial-image img {
    max-height: 510px;
    object-fit: cover;
    border-radius: 5px !important;
}

/* Process as a list with lines, not cards. */
.nwseo-process-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 60px;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--nw-line);
    list-style: none;
}

.nwseo-process-list li {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 18px;
    padding: 28px 0;
    border-bottom: 1px solid var(--nw-line);
}

.nwseo-process-list li > span {
    color: #8a9096;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
}

.nwseo-process-list p {
    margin-top: 8px;
    color: var(--nw-muted);
}

/* Price */
.nwseo-pricing-grid {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(360px, 1.2fr);
    gap: 80px;
    align-items: start;
}

.nwseo-price-lines {
    border-top: 1px solid var(--nw-line);
}

.nwseo-price-lines > div {
    display: flex;
    gap: 24px;
    justify-content: space-between;
    padding: 20px 0;
    border-bottom: 1px solid var(--nw-line);
}

.nwseo-price-lines span {
    color: #4e545a;
}

.nwseo-price-lines strong {
    color: var(--nw-heading);
    font-weight: 600;
    text-align: right;
}

.nwseo-price-lines > a {
    display: inline-block;
    margin-top: 22px;
}

/* Local section */
.nwseo-local-grid {
    display: grid;
    grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
    gap: 80px;
}

.nwseo-local-copy {
    max-width: 760px;
}

.nwseo-local-copy p + p,
.nwseo-local-copy h3 {
    margin-top: 22px;
}

.nwseo-local-copy p {
    color: #4d5359;
}

/* Reviews */
.nwseo-review-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 36px;
    margin-top: 12px;
}

.nwseo-review-list blockquote,
.nwseo-clean-reviews blockquote {
    margin: 0;
    padding: 0 0 0 22px;
    border: 0;
    border-left: 2px solid var(--nw-line);
    border-radius: 0 !important;
    background: transparent;
    box-shadow: none !important;
}

.nwseo-review-list blockquote p,
.nwseo-clean-reviews blockquote p {
    color: #3d4247;
    font-size: 15px;
}

.nwseo-review-list footer,
.nwseo-clean-reviews footer {
    margin-top: 14px;
    color: var(--nw-muted);
    font-size: 13px;
}

/* Guides + related */
.nwseo-resources-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 80px;
}

.nwseo-resources-grid h2 {
    margin-bottom: 28px;
    font-size: clamp(1.5rem, 2.3vw, 2rem);
}

.nwseo-link-list,
.nwseo-clean-link-list {
    border-top: 1px solid var(--nw-line);
}

.nwseo-link-list a,
.nwseo-clean-link-list a {
    display: flex;
    gap: 18px;
    justify-content: space-between;
    padding: 15px 0;
    border-bottom: 1px solid var(--nw-line);
    color: var(--nw-heading) !important;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none !important;
}

.nwseo-link-list a:hover,
.nwseo-clean-link-list a:hover {
    color: var(--nw-blue) !important;
}

/* FAQ */
.nwseo-faq-grid {
    display: grid;
    grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
    gap: 80px;
    align-items: start;
}

.nwseo-accordion,
.nwseo-clean-accordion {
    border-top: 1px solid var(--nw-line);
}

.nwseo-accordion details,
.nwseo-clean-accordion details {
    border: 0;
    border-bottom: 1px solid var(--nw-line);
    border-radius: 0 !important;
    background: transparent;
    box-shadow: none !important;
}

.nwseo-accordion summary,
.nwseo-clean-accordion summary {
    position: relative;
    padding: 20px 36px 20px 0;
    cursor: pointer;
    color: var(--nw-heading);
    font-size: 15px;
    font-weight: 600;
    list-style: none;
}

.nwseo-accordion summary::-webkit-details-marker,
.nwseo-clean-accordion summary::-webkit-details-marker {
    display: none;
}

.nwseo-accordion summary::after,
.nwseo-clean-accordion summary::after {
    position: absolute;
    top: 20px;
    right: 0;
    content: "+";
    color: #7a8086;
    font-size: 20px;
    font-weight: 400;
}

.nwseo-accordion details[open] summary::after,
.nwseo-clean-accordion details[open] summary::after {
    content: "−";
}

.nwseo-accordion details > div,
.nwseo-clean-accordion details > div {
    padding: 0 36px 20px 0;
    color: var(--nw-muted);
}

/* Final */
.nwseo-final-section,
.nwseo-final {
    padding: 82px 0;
    border-top: 1px solid var(--nw-line);
    background: #fff;
}

.nwseo-final-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 60px;
    align-items: end;
}

.nwseo-final-grid p:not(.nwseo-kicker) {
    max-width: 700px;
    margin-top: 16px;
    color: var(--nw-muted);
}

/* Legacy location template selectors kept clean while old URLs are consolidating. */
.nwseo-clean-content {
    width: 75%;
    max-width: none;
    margin-inline: auto;
}
.nwseo-clean-subsections,
.nwseo-clean-steps,
.nwseo-clean-reviews {
    display: grid;
    gap: 0;
    margin-top: 34px;
    border-top: 1px solid var(--nw-line);
}
.nwseo-clean-subsection,
.nwseo-clean-steps > div {
    padding: 22px 0;
    border-bottom: 1px solid var(--nw-line);
    border-radius: 0 !important;
    box-shadow: none !important;
}
.nwseo-clean-subsection p,
.nwseo-clean-steps p {
    margin-top: 8px;
    color: var(--nw-muted);
}
.nwseo-clean-price-box,
.nwseo-clean-note {
    border-radius: 0 !important;
    box-shadow: none !important;
}
.nwseo-location-editorial-image,
.nwseo-location-editorial-image img {
    border-radius: 5px !important;
    box-shadow: none !important;
}

/* Taxonomy / municipality hub classes. */
.nwseo-hub-page .nwseo-hero,
.nwseo-hub-hero {
    padding: 70px 0;
}
.nwseo-narrow {
    max-width: 780px;
}
.nwseo-service-links {
    display: grid;
    gap: 0;
    margin-top: 28px;
    border-top: 1px solid var(--nw-line);
}
.nwseo-service-links a {
    padding: 15px 0;
    border-bottom: 1px solid var(--nw-line);
    text-decoration: none;
}

@media (max-width: 900px) {
    .nwseo-container,
    .nwseo-clean-container,
    .nwseo-clean-content {
        width: 95%;
    }

    .nwseo-location-hero-grid.has-image,
    .nwseo-clean-hero-grid.has-image,
    .nwseo-contact-grid,
    .nwseo-location-contact-grid,
    .nwseo-editorial-grid.has-image,
    .nwseo-pricing-grid,
    .nwseo-local-grid,
    .nwseo-faq-grid,
    .nwseo-resources-grid,
    .nwseo-final-grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .nwseo-location-hero-image,
    .nwseo-clean-hero-image {
        max-width: 620px;
    }

    .nwseo-service-row {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .nwseo-service-meta {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: space-between;
    }

    .nwseo-process-list,
    .nwseo-review-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .nwseo-container,
    .nwseo-clean-container,
    .nwseo-clean-content {
        width: 95%;
    }

    .nwseo-location-hero,
    .nwseo-clean-hero,
    .nwseo-hero {
        padding: 42px 0 62px;
    }

    .nwseo-section,
    .nwseo-clean-section {
        padding: 66px 0;
    }

    .nwseo-page h1 {
        font-size: clamp(2rem, 10vw, 3rem);
    }

    .nwseo-page h2 {
        font-size: clamp(1.6rem, 8vw, 2.1rem);
    }

    .nwseo-form-row,
    .nwseo-location-form-row {
        grid-template-columns: 1fr;
    }

    .nwseo-location-hero-image img,
    .nwseo-clean-hero-image img {
        aspect-ratio: 16 / 10;
    }

    .nwseo-actions,
    .nwseo-clean-actions,
    .nwseo-form-footer,
    .nwseo-location-form-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .nwseo-button,
    .nwseo-clean-button {
        width: 100%;
    }

    .nwseo-price-lines > div {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }

    .nwseo-price-lines strong {
        text-align: left;
    }
}


/* 3.12.2 – one consistent outer content width + softly rounded images. */
@media (min-width: 901px) {
    .nwseo-page .nwseo-container,
    .nwseo-page .nwseo-clean-container,
    .nwseo-page .nwseo-clean-content {
        width: 70% !important;
        max-width: none !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}
@media (max-width: 900px) {
    .nwseo-page .nwseo-container,
    .nwseo-page .nwseo-clean-container,
    .nwseo-page .nwseo-clean-content {
        width: 95% !important;
        max-width: none !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}
.nwseo-page img { border-radius:5px !important; }

/* 4.0: proof/offer strip – competitor research pattern, using only Norrlandswebb's real offer facts. */
.nwseo-proof-strip {
    border-top: 1px solid var(--nw-line);
    border-bottom: 1px solid var(--nw-line);
    background: var(--nw-soft);
}
.nwseo-proof-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.nwseo-proof-grid > div {
    display: flex;
    min-height: 70px;
    gap: 10px;
    align-items: center;
    padding: 16px 20px;
    border-right: 1px solid var(--nw-line);
    font-size: 13px;
    line-height: 1.45;
}
.nwseo-proof-grid > div:first-child { padding-left: 0; }
.nwseo-proof-grid > div:last-child { border-right: 0; padding-right: 0; }
.nwseo-proof-grid span { color: var(--nw-blue); font-weight: 700; }
.nwseo-proof-grid strong { font-weight: 500; }

@media (max-width: 980px) {
    .nwseo-proof-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nwseo-proof-grid > div:nth-child(2) { border-right: 0; }
    .nwseo-proof-grid > div:nth-child(3), .nwseo-proof-grid > div:nth-child(4) { border-top: 1px solid var(--nw-line); }
    .nwseo-proof-grid > div:nth-child(3) { padding-left: 0; }
}
@media (max-width: 620px) {
    .nwseo-proof-grid { grid-template-columns: 1fr; }
    .nwseo-proof-grid > div { min-height: 0; padding: 13px 0; border-right: 0; border-top: 1px solid var(--nw-line); }
    .nwseo-proof-grid > div:first-child { border-top: 0; }
}

/* 4.0.1 visual QA pass: consistent width, theme-safe top spacing and hub rhythm. */
@media (min-width: 901px) {
    .nwseo-page .nwseo-container,
    .nwseo-page .nwseo-clean-container,
    .nwseo-page .nwseo-clean-content {
        width: var(--nw-layout-width, 70%) !important;
        max-width: var(--nw-layout-max, none) !important;
    }
}
@media (max-width: 900px) {
    .nwseo-page .nwseo-container,
    .nwseo-page .nwseo-clean-container,
    .nwseo-page .nwseo-clean-content {
        width: var(--nw-layout-mobile, 94%) !important;
        max-width: none !important;
    }
}
.nwseo-location-hero,.nwseo-clean-hero,.nwseo-hero{padding-top:44px;padding-bottom:72px}
.nwseo-section,.nwseo-clean-section{padding-top:82px;padding-bottom:82px}
.nwseo-hub-page>.nwseo-soft{padding:82px 0;background:var(--nw-soft)!important}
.nwseo-hub-page>.nwseo-final{padding:68px 0}
.nwseo-hub-hero{padding:44px 0 66px!important}
.nwseo-contact-form input,.nwseo-contact-form select,.nwseo-clean-form input,.nwseo-clean-form select{min-height:46px;border-radius:6px!important}
.nwseo-contact-form textarea,.nwseo-clean-form textarea{border-radius:6px!important}
.nwseo-button,.nwseo-clean-button{min-height:46px;border-radius:6px!important}
.nwseo-section-heading{margin-bottom:38px}
.nwseo-service-row{padding:25px 0}
.nwseo-process-list li{padding:24px 0}
.nwseo-review-list{gap:28px}
.nwseo-final-section,.nwseo-final{padding:68px 0}
@media(max-width:700px){
    .nwseo-location-hero,.nwseo-clean-hero,.nwseo-hero{padding:34px 0 54px}
    .nwseo-section,.nwseo-clean-section,.nwseo-hub-page>.nwseo-soft{padding:58px 0}
    .nwseo-final-section,.nwseo-final,.nwseo-hub-page>.nwseo-final{padding:54px 0}
    .nwseo-section-heading{margin-bottom:30px}
}
.nwseo-button-light{
    border-color:var(--nw-heading)!important;
    background:transparent!important;
    color:var(--nw-heading)!important;
}
.nwseo-button-light:hover{
    border-color:var(--nw-blue)!important;
    background:var(--nw-blue)!important;
    color:#fff!important;
}


/* 5.2.0 – edge-ready large imagery and protected action states. */
.nwseo-location-hero-image img,
.nwseo-clean-hero-image img,
.nwseo-editorial-image img,
.nwseo-location-editorial-image img {
    border-radius:0 !important;
}
.nwseo-actions{gap:18px;margin-top:30px!important}
.nwseo-button:focus,.nwseo-button:focus-visible,.nwseo-button:active,
.nwseo-clean-button:focus,.nwseo-clean-button:focus-visible,.nwseo-clean-button:active{
    border-color:var(--nw-blue)!important;
    background:var(--nw-blue)!important;
    background-image:none!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    box-shadow:none!important;
    transform:none!important;
}
