
/* NORDICMIX RESPONSIVE SYSTEM V1
   Faelles standard for mobil, tablet og desktop.
   Bevarer eksisterende NordicMix-farver og speciallayouts.
*/

:root {
    --nm-ui-font: -apple-system, BlinkMacSystemFont,
                  "Segoe UI", Roboto, Arial, sans-serif;
    --nm-ui-text-size: 16px;
    --nm-ui-small-size: 14px;
    --nm-ui-touch: 48px;
    --nm-ui-radius: 12px;
    --nm-ui-space: 16px;
    --nm-ui-deep: #14323D;
    --nm-ui-green: #2E7D32;
    --nm-ui-text: #2C3E43;
}

html {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

html body,
html body.nm-dashboard {
    font-family: var(--nm-ui-font);
    font-size: 16px !important;
    line-height: 1.55;
}

html body :where(*, *::before, *::after) {
    box-sizing: border-box;
}

html body :where(img, video) {
    max-width: 100%;
}

html body:not(.nm-calendar) :is(
    button,
    input[type="submit"],
    input[type="button"],
    a.btn,
    a.button
) {
    min-height: var(--nm-ui-touch) !important;
    font-size: 16px !important;
    line-height: 1.3;
    touch-action: manipulation;
}

html body:not(.nm-calendar) :is(
    input:not([type="checkbox"]):not([type="radio"])
         :not([type="hidden"]):not([type="range"]),
    select,
    textarea
) {
    font-size: 16px !important;
    max-width: 100%;
    min-height: var(--nm-ui-touch);
}

html body :where(small, .nm-ui-help) {
    font-size: 14px;
    line-height: 1.5;
}

html body .nm-public-mainnav a,
html body .nm-public-actions a {
    min-height: 48px !important;
    font-size: 15px !important;
}

html body :where(main, article, section, aside) {
    min-width: 0;
}

html body :focus-visible {
    outline: 3px solid var(--nm-ui-green);
    outline-offset: 3px;
}

.nm-ui-container {
    width: min(100% - 32px, 1200px);
    margin-inline: auto;
}

.nm-ui-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

@media (max-width: 767px) {
    .nm-ui-container {
        width: calc(100% - 24px);
    }

    .nm-ui-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .nm-ui-actions > * {
        width: 100%;
    }

    html body :where(p, li) {
        overflow-wrap: anywhere;
    }
}

@media (min-width: 768px) and (max-width: 1100px) {
    .nm-ui-container {
        width: calc(100% - 40px);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}


/* NM RESPONSIVE V2 */
:root {
    --nm-ui-font-size: 16px;
    --nm-ui-help-size: 14px;
    --nm-ui-control-height: 48px;
    --nm-ui-gap: 16px;
}

html body:not(.nm-calendar) :is(
    button, [role="button"], .btn, .nm-btn,
    a.button, a.btn,
    input[type="submit"], input[type="button"]
) {
    min-height: 48px !important;
    font-size: 16px !important;
    line-height: 1.35;
    touch-action: manipulation;
}

html body :is(
    input[type="text"], input[type="email"],
    input[type="password"], input[type="tel"],
    input[type="number"], input[type="date"],
    input[type="time"], select, textarea
) {
    font-size: 16px !important;
    max-width: 100%;
}

html body :where(small, .form-hint, .nm-ui-help) {
    font-size: 14px !important;
    line-height: 1.5;
}

html body .nm-public-mainnav a,
html body .nm-public-actions a {
    min-height: 48px !important;
    font-size: 16px !important;
}

html body :where(img, video, iframe) {
    max-width: 100%;
}

html body :where(.table-responsive, .nm-table-scroll) {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 767px) {
    html body :where(.nm-ui-actions) {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    html body :where(.nm-ui-actions > *) {
        width: 100%;
    }

    html body :where(.nm-ui-grid) {
        grid-template-columns: minmax(0, 1fr);
    }
}


/* NM-RESPONSIVE-HOME-BOOKING-V3
   Mobilforbedringer for forsiden og bookingsiden.
   Ingen ændringer i bookinglogik eller interaktive funktioner.
*/

@media (max-width:900px) {
    .nm-header-inner,
    .nm-hero-inner,
    .nm-trust-inner,
    .nm-section,
    .nm-events,
    .nm-how-inner,
    .nm-results,
    .nm-provider-inner,
    .nm-top-inner,
    .nm-shell,
    .booking-shell {
        max-width:calc(100% - 24px) !important;
        min-width:0 !important;
        box-sizing:border-box;
    }

    .nm-hero h1,
    .nm-hero-copy,
    .nm-hero-search,
    .nm-section-head p,
    .nm-provider p,
    .provider-about-text,
    .nm-booking-welcome p,
    .progress-head,
    .provider-strip-copy,
    .provider-about,
    .step-pane,
    .form {
        max-width:100% !important;
        min-width:0 !important;
        box-sizing:border-box;
    }

    .nm-kicker,
    .nm-hero-card-label,
    .nm-check,
    .nm-trust-item span,
    .nm-category span,
    .nm-event-provider,
    .nm-event-meta,
    .nm-event-spots,
    .nm-event-status,
    .nm-event-kicker,
    .nm-result-count,
    .card-klinik,
    .card-meta,
    .filter-field label,
    .nm-booking-welcome span,
    .provider-about-kicker,
    .nm-unified-chip,
    .nm-date-chip,
    .nm-pass-shop__label,
    .nm-pass-shop__tag,
    .nm-pass-link-card__label {
        font-size:14px !important;
        line-height:1.5;
    }

    .nm-hero-search input,
    .booking-shell input,
    .booking-shell select,
    .booking-shell textarea {
        max-width:100%;
        box-sizing:border-box;
    }
}

@media (max-width:600px) {
    .nm-hero h1,
    .nm-booking-welcome h1 {
        overflow-wrap:break-word;
    }

    .nm-hero-search,
    .booking-shell,
    .step-pane {
        min-width:0 !important;
    }
}


/* NM-PROFILE-OVERVIEW-RESPONSIVE-V4 */

/* Ensartet tekst paa behandlerprofiler */
.nm-profile-clip .nm-clip-eyebrow,
.nm-profile-clip .nm-clip-lead,
.nm-profile-clip .nm-clip-extras,
.nm-profile-clip .nm-clip-secure,
.nm-profile-clip .nm-clip-error,
.nm-profile-clip .nm-clip-tags span,
.nm-profile-clip .nm-clip-purchase label,
.nm-feature-hero .nm-eyebrow {
    font-size:14px !important;
    line-height:1.55;
}

/* Laesbar tekst i bookingdashboard */
.bo-status,
.bo-meta,
.nm-activity-card span {
    font-size:14px !important;
    line-height:1.5;
}

/* Ensartede handlingsknapper */
.bo-actions button,
.bo-actions a,
.bo-link,
.bo-detail-btn {
    min-height:48px !important;
    font-size:16px !important;
    line-height:1.35;
}

/* Mobil */
@media (max-width:600px) {
    .nm-profile-clip,
    .bo-panel {
        max-width:100%;
        min-width:0;
    }

    .nm-distinct-grid {
        grid-template-columns:minmax(0,1fr) !important;
    }

    .bo-actions {
        display:flex;
        flex-wrap:wrap;
        gap:10px;
    }
}

/* Ekstra smalle telefoner */
@media (max-width:390px) {
    .bo-stats {
        grid-template-columns:minmax(0,1fr) !important;
    }
}


/* NM-TEST-PROFILE-READABILITY-20261027-V1 */
/* Shared responsive typography. Scoped to provider profile; colors from nm-brand-theme.css. */
html body.nm-profile-page .nm-profile-field > label,
html body.nm-profile-page .nm-help,
html body.nm-profile-page .nm-counter,
html body.nm-profile-page .nm-profile-head p,
html body.nm-profile-page .nm-suggestion summary,
html body.nm-profile-page .nm-suggestion p,
html body.nm-profile-page .nm-flash {
    font-size:var(--nm-type-body,16px) !important;
    line-height:1.55;
}
html body.nm-profile-page .nm-faggrupper legend {
    font-size:var(--nm-type-title,22px) !important;
    color:var(--nm-brand-deep,#14323D);
}
html body.nm-profile-page .nm-faggrupper p,
html body.nm-profile-page .nm-faggrupper label,
html body.nm-profile-page .nm-faggrupper label span,
html body.nm-profile-page .nm-faggrupper summary span {
    font-size:var(--nm-type-body,16px) !important;
    line-height:1.6;
}
html body.nm-profile-page .nm-faggrupper summary {
    font-size:var(--nm-type-section,18px) !important;
    line-height:1.5;
    color:var(--nm-brand-deep,#14323D) !important;
    padding-block:6px;
}
html body.nm-profile-page .nm-faggrupper label {
    min-height:44px;
    align-items:center !important;
    padding:7px 4px;
}
html body.nm-profile-page .nm-faggrupper input[type="checkbox"] {
    width:22px !important;
    height:22px !important;
    min-width:22px;
    flex-shrink:0;
    accent-color:var(--nm-brand-cta,#2E7D32);
}
@media (max-width:767px) {
    html body.nm-profile-page .nm-faggrupper > div > details > div {
        grid-template-columns:minmax(0,1fr) !important;
    }
    html body.nm-profile-page .nm-faggrupper {
        padding:14px !important;
    }
}
@media (min-width:768px) and (max-width:1100px) {
    html body.nm-profile-page .nm-faggrupper > div > details > div {
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
}
