/* /Components/Admin/AdminLayout.razor.rz.scp.css */
.admin-shell[b-8r7s4iuz6x] {
    display: grid;
    grid-template-columns: 240px 1fr;
    min-height: 100vh;
    background: var(--bg);
}

.admin-sidebar[b-8r7s4iuz6x] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 24px 16px;
    background: var(--green-deep);
    color: #C6D3C6;
}

.admin-brand[b-8r7s4iuz6x] {
    font-weight: 700;
    font-size: 18px;
    color: #fff;
    padding: 8px 12px 20px;
}

.admin-nav[b-8r7s4iuz6x] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.admin-nav[b-8r7s4iuz6x]  a {
    display: block;
    padding: 9px 12px;
    border-radius: 8px;
    color: #C6D3C6;
    text-decoration: none;
    font-size: 16px;
    transition: background .15s, color .15s;
}

.admin-nav[b-8r7s4iuz6x]  a:hover {
    background: rgb(255 255 255 / .08);
    color: #fff;
}

.admin-nav[b-8r7s4iuz6x]  a.is-active {
    background: rgb(255 255 255 / .14);
    color: #fff;
    font-weight: 600;
}

.admin-logout[b-8r7s4iuz6x] {
    margin-top: auto;
    padding-top: 20px;
}

.admin-logout button[b-8r7s4iuz6x] {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid rgb(255 255 255 / .22);
    border-radius: 8px;
    background: transparent;
    color: #C6D3C6;
    font-size: 15px;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}

.admin-logout button:hover[b-8r7s4iuz6x] {
    background: rgb(255 255 255 / .08);
    color: #fff;
    border-color: rgb(255 255 255 / .4);
}

main[b-8r7s4iuz6x] {
    padding: 32px;
    max-width: 1100px;
}

/* Shared page chrome — ::deep so these reach the page content rendered into @Body. */
main[b-8r7s4iuz6x]  .admin-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}

main[b-8r7s4iuz6x]  .admin-back {
    color: var(--green);
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
}

main[b-8r7s4iuz6x]  .admin-back:hover {
    text-decoration: underline;
}

main[b-8r7s4iuz6x]  .admin-muted {
    color: var(--muted);
    font-size: 15px;
}

main[b-8r7s4iuz6x]  .admin-error {
    padding: 12px 16px;
    border-radius: 10px;
    background: #FBF3E9;
    border: 1px solid #EAD9C2;
    color: var(--accent-strong);
    font-size: 15px;
    margin-bottom: 18px;
}

main[b-8r7s4iuz6x]  .admin-ok {
    padding: 12px 16px;
    border-radius: 10px;
    background: var(--sage);
    border: 1px solid #CBDBCB;
    color: var(--green);
    font-size: 15px;
    margin-bottom: 18px;
}

main[b-8r7s4iuz6x]  .admin-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
}

main[b-8r7s4iuz6x]  .admin-chip {
    padding: 6px 14px;
    border: 1px solid #D9CFBB;
    border-radius: 999px;
    background: #fff;
    color: var(--muted);
    font-size: 14px;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}

main[b-8r7s4iuz6x]  .admin-chip:hover {
    border-color: var(--green);
    color: var(--green);
}

main[b-8r7s4iuz6x]  .admin-chip.is-active {
    background: var(--green);
    border-color: var(--green);
    color: #fff;
}

main[b-8r7s4iuz6x]  .admin-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid #E4DccB;
    border-radius: 14px;
    overflow: hidden;
}

main[b-8r7s4iuz6x]  .admin-table th,
main[b-8r7s4iuz6x]  .admin-table td {
    text-align: left;
    padding: 12px 16px;
    font-size: 15px;
    border-bottom: 1px solid #EFE8DA;
}

main[b-8r7s4iuz6x]  .admin-table th {
    background: #FAF6EE;
    color: var(--muted);
    font-weight: 600;
}

main[b-8r7s4iuz6x]  .admin-table tbody tr:last-child td {
    border-bottom: none;
}

main[b-8r7s4iuz6x]  .admin-row {
    cursor: pointer;
    transition: background .12s;
}

main[b-8r7s4iuz6x]  .admin-row:hover {
    background: #FAF6EE;
}

main[b-8r7s4iuz6x]  .admin-table a {
    color: var(--green);
    font-weight: 600;
    text-decoration: none;
}

main[b-8r7s4iuz6x]  .admin-table a:hover {
    text-decoration: underline;
}
/* /Components/Admin/Pages/Categories.razor.rz.scp.css */
/* .admin-row-form sits on EditForms, whose rendered <form> never gets the
   isolation scope attribute — anchor on the plain-HTML ancestors
   (.admin-table rows / .admin-panel) and pierce with ::deep. */
.admin-table[b-8cbp0vi41h]  .admin-row-form,
.admin-panel[b-8cbp0vi41h]  .admin-row-form {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.admin-table[b-8cbp0vi41h]  .admin-row-form input,
.admin-panel[b-8cbp0vi41h]  .admin-row-form input {
    padding: 8px 10px;
    border: 1px solid #D9CFBB;
    border-radius: 9px;
    background: #fff;
    color: var(--ink);
    font-size: 15px;
    font-family: inherit;
    flex: 1 1 160px;
    min-width: 0;
}

.admin-table[b-8cbp0vi41h]  .admin-row-form input:focus,
.admin-panel[b-8cbp0vi41h]  .admin-row-form input:focus {
    outline: 2px solid var(--green);
    outline-offset: 1px;
}

.admin-table[b-8cbp0vi41h]  .admin-row-form input.admin-order,
.admin-panel[b-8cbp0vi41h]  .admin-row-form input.admin-order {
    flex: 0 0 90px;
}

.admin-panel[b-8cbp0vi41h] {
    margin-top: 32px;
    padding: 24px;
    background: #fff;
    border: 1px solid #E4DccB;
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    align-items: stretch;
}

.admin-panel h2[b-8cbp0vi41h] {
    font-size: 20px;
    margin: 0;
}

.admin-danger[b-8cbp0vi41h] {
    padding: 8px 14px;
    border: 1px solid #E0B4A2;
    border-radius: 9px;
    background: #FBF3E9;
    color: var(--accent-strong);
    font-size: 15px;
    cursor: pointer;
}

.admin-danger:hover[b-8cbp0vi41h] {
    background: #F6E7D8;
}
/* /Components/Admin/Pages/Content.razor.rz.scp.css */
.admin-section[b-ofljt5wfp5] {
    margin-bottom: 36px;
}

.admin-section h2[b-ofljt5wfp5] {
    font-size: 20px;
    margin: 0 0 14px;
}

/* .admin-row-form sits on EditForms, whose rendered <form> never gets the
   isolation scope attribute — anchor on the plain .admin-section and pierce
   with ::deep. */
.admin-section[b-ofljt5wfp5]  .admin-row-form {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.admin-section[b-ofljt5wfp5]  .admin-row-form input,
.admin-section[b-ofljt5wfp5]  .admin-row-form textarea {
    padding: 8px 10px;
    border: 1px solid #D9CFBB;
    border-radius: 9px;
    background: #fff;
    color: var(--ink);
    font-size: 15px;
    font-family: inherit;
    flex: 1 1 160px;
    min-width: 0;
}

.admin-section[b-ofljt5wfp5]  .admin-row-form textarea {
    flex: 2 1 240px;
    resize: vertical;
}

.admin-section[b-ofljt5wfp5]  .admin-row-form input:focus,
.admin-section[b-ofljt5wfp5]  .admin-row-form textarea:focus {
    outline: 2px solid var(--green);
    outline-offset: 1px;
}

.admin-section[b-ofljt5wfp5]  .admin-row-form input.admin-order {
    flex: 0 0 90px;
}
/* /Components/Admin/Pages/Dashboard.razor.rz.scp.css */
.dash-cards[b-z6a6id7dhn] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
    margin-top: 24px;
}

.dash-card[b-z6a6id7dhn] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 24px;
    background: #fff;
    border: 1px solid #E4DccB;
    border-radius: 14px;
    text-decoration: none;
    color: var(--ink);
    transition: transform .15s, box-shadow .15s;
}

.dash-card:hover[b-z6a6id7dhn] {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgb(var(--accent-shadow-rgb) / .12);
}

.dash-card b[b-z6a6id7dhn] {
    font-size: 40px;
    line-height: 1;
    color: var(--green-deep);
    font-family: 'Spectral', serif;
}

.dash-card span[b-z6a6id7dhn] {
    font-size: 15px;
    color: var(--muted);
}

.dash-card-alert[b-z6a6id7dhn] {
    background: #FBF3E9;
    border-color: #EAD9C2;
}
/* /Components/Admin/Pages/Images.razor.rz.scp.css */
.admin-site-thumb[b-1yw17sj9zp]{display:block;max-width:280px;border-radius:12px;border:1px solid #E0D5C1;margin-bottom:10px;}
/* /Components/Admin/Pages/Login.razor.rz.scp.css */
/* Admin login — centered card, reusing the site's form-input styling (cf. Contact.razor.css). */

.screen[b-s912owk0x0] {
    animation: fviFade .45s ease both;
}

.login-section[b-s912owk0x0] {
    padding-top: clamp(48px, 8vw, 96px);
    padding-bottom: clamp(52px, 8vw, 96px);
}

.login-inner[b-s912owk0x0] {
    max-width: 420px;
}

.login-inner h1[b-s912owk0x0] {
    font-size: clamp(28px, 3.4vw, 40px);
    margin-bottom: 24px;
}

.login-error[b-s912owk0x0] {
    color: var(--accent-strong);
    font-weight: 600;
    margin-bottom: 16px;
}

.login-inner[b-s912owk0x0]  form {
    display: grid;
    gap: 18px;
}

.login-inner label[b-s912owk0x0] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-weight: 600;
    font-size: 16px;
    color: #3B372F;
}

.login-inner[b-s912owk0x0]  input {
    width: 100%;
    font-size: 18px;
    padding: 14px 16px;
    border: 1.5px solid #D8CDB8;
    border-radius: 12px;
    background: #fff;
    color: #26241F;
    font-family: inherit;
}

.login-inner[b-s912owk0x0]  .btn-primary {
    justify-self: start;
}

.login-inner[b-s912owk0x0]  .validation-message {
    color: #B3261E;
    font-size: 14.5px;
    margin-top: -8px;
}
/* /Components/Admin/Pages/Messages.razor.rz.scp.css */
.msg-toggle[b-ykmgc8ivhl] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0 24px;
    font-size: 15px;
    color: var(--muted);
}

.msg-list[b-ykmgc8ivhl] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.msg-card[b-ykmgc8ivhl] {
    padding: 16px 20px;
    background: #fff;
    border: 1px solid #E4DccB;
    border-left: 4px solid #E4DccB;
    border-radius: 12px;
}

.msg-new[b-ykmgc8ivhl] {
    border-left-color: #E0A63C;
    background: #FBF3E9;
}

.msg-name[b-ykmgc8ivhl] {
    margin: 0 0 2px;
    font-size: 16px;
}

.msg-contact[b-ykmgc8ivhl] {
    margin: 0 0 8px;
    font-size: 14px;
}

.msg-body[b-ykmgc8ivhl] {
    margin: 0 0 10px;
    white-space: pre-wrap;
}

.msg-time[b-ykmgc8ivhl] {
    margin: 0 0 12px;
    font-size: 13px;
    color: var(--muted);
}

.msg-actions[b-ykmgc8ivhl] {
    display: flex;
    gap: 8px;
}
/* /Components/Admin/Pages/Prices.razor.rz.scp.css */
.admin-section[b-hm5guz2b88] {
    margin-bottom: 36px;
}

.admin-section h2[b-hm5guz2b88] {
    font-size: 20px;
    margin: 0 0 14px;
}

/* .admin-group/.admin-stack sit on EditForms, whose rendered <form> never gets
   the isolation scope attribute — anchor on the plain .admin-section and
   pierce with ::deep. */
.admin-section[b-hm5guz2b88]  .admin-group {
    padding: 18px;
    margin-bottom: 20px;
    background: #fff;
    border: 1px solid #E4DccB;
    border-radius: 14px;
}

.admin-row-form[b-hm5guz2b88] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.admin-line[b-hm5guz2b88] {
    margin-left: 16px;
}

.admin-row-form[b-hm5guz2b88]  input {
    padding: 8px 10px;
    border: 1px solid #D9CFBB;
    border-radius: 9px;
    background: #fff;
    color: var(--ink);
    font-size: 15px;
    font-family: inherit;
    flex: 1 1 160px;
    min-width: 0;
}

.admin-row-form[b-hm5guz2b88]  input:focus {
    outline: 2px solid var(--green);
    outline-offset: 1px;
}

.admin-row-form[b-hm5guz2b88]  input.admin-order {
    flex: 0 0 90px;
}

.admin-row-form[b-hm5guz2b88]  input.admin-amount {
    flex: 0 0 130px;
}

.admin-line-actions[b-hm5guz2b88] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 4px;
}

.admin-hint[b-hm5guz2b88] {
    font-size: 13px;
    color: var(--muted);
}

.admin-section[b-hm5guz2b88]  .admin-stack {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 640px;
}

.admin-field[b-hm5guz2b88] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.admin-field > span[b-hm5guz2b88] {
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
}

.admin-field[b-hm5guz2b88]  input,
.admin-field[b-hm5guz2b88]  textarea {
    padding: 8px 10px;
    border: 1px solid #D9CFBB;
    border-radius: 9px;
    background: #fff;
    color: var(--ink);
    font-size: 15px;
    font-family: inherit;
}

.admin-field[b-hm5guz2b88]  textarea {
    resize: vertical;
}

.admin-field[b-hm5guz2b88]  input:focus,
.admin-field[b-hm5guz2b88]  textarea:focus {
    outline: 2px solid var(--green);
    outline-offset: 1px;
}

.admin-danger[b-hm5guz2b88] {
    padding: 8px 14px;
    border: 1px solid #E0B4A2;
    border-radius: 9px;
    background: #FBF3E9;
    color: var(--accent-strong);
    font-size: 15px;
    cursor: pointer;
}

.admin-danger:hover[b-hm5guz2b88] {
    background: #F6E7D8;
}
/* /Components/Admin/Pages/Settings.razor.rz.scp.css */
.admin-section[b-rc5yy8lgp5] {
    margin-bottom: 36px;
}

.admin-section h2[b-rc5yy8lgp5] {
    font-size: 20px;
    margin: 0 0 14px;
}

.admin-stack[b-rc5yy8lgp5] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 640px;
}

.admin-field[b-rc5yy8lgp5] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.admin-field > span[b-rc5yy8lgp5] {
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
}

.admin-field[b-rc5yy8lgp5]  input,
.admin-field[b-rc5yy8lgp5]  select,
.admin-field[b-rc5yy8lgp5]  textarea {
    padding: 8px 10px;
    border: 1px solid #D9CFBB;
    border-radius: 9px;
    background: #fff;
    color: var(--ink);
    font-size: 15px;
    font-family: inherit;
}

.admin-field[b-rc5yy8lgp5]  textarea {
    resize: vertical;
}

.admin-field[b-rc5yy8lgp5]  input.admin-order {
    flex: 0 0 90px;
    max-width: 120px;
}

.admin-field[b-rc5yy8lgp5]  input:focus,
.admin-field[b-rc5yy8lgp5]  select:focus,
.admin-field[b-rc5yy8lgp5]  textarea:focus {
    outline: 2px solid var(--green);
    outline-offset: 1px;
}

.admin-check[b-rc5yy8lgp5] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    color: var(--ink);
}

.admin-hint[b-rc5yy8lgp5] {
    font-size: 13px;
    color: var(--muted);
}

/* .admin-row-form sits on EditForms, whose rendered <form> never gets the
   isolation scope attribute — anchor on the plain .admin-section and pierce
   with ::deep. */
.admin-section[b-rc5yy8lgp5]  .admin-row-form {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

/* :not([type="checkbox"]) keeps the "Lukket" InputCheckbox from being stretched
   as a 140px flex item. */
.admin-section[b-rc5yy8lgp5]  .admin-row-form input:not([type="checkbox"]) {
    padding: 8px 10px;
    border: 1px solid #D9CFBB;
    border-radius: 9px;
    background: #fff;
    color: var(--ink);
    font-size: 15px;
    font-family: inherit;
    flex: 1 1 140px;
    min-width: 0;
}

.admin-section[b-rc5yy8lgp5]  .admin-row-form input:focus {
    outline: 2px solid var(--green);
    outline-offset: 1px;
}

.admin-section[b-rc5yy8lgp5]  .admin-row-form input.admin-order {
    flex: 0 0 80px;
}

.admin-section[b-rc5yy8lgp5]  .admin-row-form input.admin-time {
    flex: 0 0 90px;
}
/* /Components/Admin/Pages/VideoEdit.razor.rz.scp.css */
/* EditForm renders the <form> itself, so it never gets the isolation scope
   attribute — anchor on a plain-HTML ancestor and pierce with ::deep. */
.admin-form-wrap[b-igkeytgwyh]  .admin-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
    max-width: 760px;
    margin-top: 8px;
}

.admin-field[b-igkeytgwyh] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.admin-field > span[b-igkeytgwyh] {
    font-size: 14px;
    font-weight: 600;
    color: var(--muted);
}

.admin-field[b-igkeytgwyh]  input,
.admin-field[b-igkeytgwyh]  textarea,
.admin-field[b-igkeytgwyh]  select {
    width: 100%;
    padding: 9px 11px;
    border: 1px solid #D9CFBB;
    border-radius: 9px;
    background: #fff;
    color: var(--ink);
    font-size: 16px;
    font-family: inherit;
}

.admin-field[b-igkeytgwyh]  input:focus,
.admin-field[b-igkeytgwyh]  textarea:focus,
.admin-field[b-igkeytgwyh]  select:focus {
    outline: 2px solid var(--green);
    outline-offset: 1px;
}

.admin-field[b-igkeytgwyh]  input[readonly],
.admin-field[b-igkeytgwyh]  select[disabled] {
    background: #F1ECE0;
    color: var(--muted);
}

.admin-grid[b-igkeytgwyh] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.admin-field-inline[b-igkeytgwyh] {
    max-width: 160px;
}

.admin-toggles[b-igkeytgwyh] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
}

.admin-check[b-igkeytgwyh] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    color: var(--ink);
}

.admin-actions[b-igkeytgwyh] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 4px;
}

.admin-danger[b-igkeytgwyh] {
    padding: 9px 16px;
    border: 1px solid #E0B4A2;
    border-radius: 9px;
    background: #FBF3E9;
    color: var(--accent-strong);
    font-size: 15px;
    cursor: pointer;
}

.admin-danger:hover[b-igkeytgwyh] {
    background: #F6E7D8;
}

.admin-secondary[b-igkeytgwyh] {
    padding: 9px 16px;
    border: 1px solid #D9CFBB;
    border-radius: 9px;
    background: #fff;
    color: var(--ink);
    font-size: 15px;
    cursor: pointer;
}

.admin-panel[b-igkeytgwyh] {
    margin-top: 32px;
    padding: 24px;
    background: #fff;
    border: 1px solid #E4DccB;
    border-radius: 14px;
    max-width: 760px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    align-items: flex-start;
}

.admin-panel h2[b-igkeytgwyh] {
    font-size: 20px;
    margin: 0;
}

.admin-link code[b-igkeytgwyh] {
    font-family: ui-monospace, monospace;
    font-size: 15px;
    background: var(--sage);
    color: var(--green);
    padding: 3px 8px;
    border-radius: 6px;
}

.admin-preview[b-igkeytgwyh] {
    width: 100%;
    max-width: 480px;
    border-radius: 10px;
    background: #000;
}

.admin-upload[b-igkeytgwyh] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.admin-poster[b-igkeytgwyh] {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    flex-wrap: wrap;
    width: 100%;
}

.admin-muted[b-igkeytgwyh] {
    color: var(--muted);
    font-size: 15px;
    margin: 0;
}

.admin-step[b-igkeytgwyh] {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    width: 100%;
    padding: 16px;
    border: 1px solid #E4DccB;
    border-radius: 12px;
    background: #FBF8F1;
}

.admin-step-photo[b-igkeytgwyh] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 0 0 auto;
}

.admin-step-thumb[b-igkeytgwyh] {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 10px;
    background: #fff;
    border: 1px solid #E4DccB;
    box-shadow: 0 2px 8px rgb(var(--accent-shadow-rgb) / .12);
}

.admin-step[b-igkeytgwyh]  .admin-step-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
}

.admin-step-actions[b-igkeytgwyh] {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-thr0s29a7q] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-thr0s29a7q] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/SiteFooter.razor.rz.scp.css */
/* Footer chrome — ported from prototype lines 591–633 (inline styles → scoped CSS). */

.site-footer[b-jq60iuxwjr] {
    background: var(--green-deep);
    color: #C6D3C6;
    padding-top: clamp(48px, 6vw, 72px);
}

.footer-grid[b-jq60iuxwjr] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 36px;
}

.site-footer h4[b-jq60iuxwjr] {
    color: #fff;
    font-family: 'Hanken Grotesk', sans-serif;
    font-size: 15px;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 16px;
}

.footer-brand[b-jq60iuxwjr] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

/* Footer mark: cream disc, green letter (inverse of the header mark) */
.brand-mark[b-jq60iuxwjr] {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--bg);
    color: var(--green);
    display: grid;
    place-items: center;
    font-family: 'Spectral', serif;
    font-weight: 600;
    font-size: 23px;
    flex: none;
}

.footer-brandname[b-jq60iuxwjr] {
    font-family: 'Spectral', serif;
    font-weight: 600;
    font-size: 23px;
    color: #fff;
}

.footer-blurb[b-jq60iuxwjr] {
    font-size: 16px;
    line-height: 1.55;
    color: #A9B9AC;
    max-width: 34ch;
}

.footer-links[b-jq60iuxwjr] {
    display: flex;
    flex-direction: column;
    gap: 11px;
    font-size: 16.5px;
}

.footer-links a[b-jq60iuxwjr],
.footer-links span[b-jq60iuxwjr] {
    display: flex;
    gap: 9px;
    align-items: center;
    color: #C6D3C6;
    text-decoration: none;
    word-break: break-word;
}

.footer-links a:hover[b-jq60iuxwjr] {
    color: #fff;
}

.footer-links span[b-jq60iuxwjr] {
    align-items: flex-start;
}

.footer-links i[b-jq60iuxwjr] {
    font-size: 19px;
    color: #7f9384;
}

/* Mobile: ≥44px link hit areas; smaller gap keeps rows from drifting apart. */
@media (max-width: 720px) {
    .footer-links[b-jq60iuxwjr] {
        gap: 3px;
    }

    .footer-links a[b-jq60iuxwjr],
    .footer-links span[b-jq60iuxwjr] {
        padding-block: 9px;
    }
}

.footer-links span i[b-jq60iuxwjr] {
    margin-top: 2px;
}

.footer-hours[b-jq60iuxwjr] {
    display: flex;
    flex-direction: column;
    gap: 9px;
    font-size: 16.5px;
    color: #A9B9AC;
}

.hrs[b-jq60iuxwjr] {
    text-transform: lowercase;
}

.footer-bar[b-jq60iuxwjr] {
    border-top: 1px solid #33493D;
    margin-top: clamp(36px, 4vw, 52px);
}

.footer-bar-inner[b-jq60iuxwjr] {
    padding: 22px 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
    justify-content: space-between;
    font-size: 14.5px;
    color: #8ea192;
}
/* /Components/Layout/SiteHeader.razor.rz.scp.css */
/* Header chrome — ported from prototype lines 34–58 (inline styles → scoped CSS). */

.site-header[b-81ujoybe6g] {
    position: sticky;
    top: 0;
    z-index: 60;
    background: rgba(244, 239, 230, .93);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line-2);
}

/* Green utility bar */
.topbar[b-81ujoybe6g] {
    background: var(--green);
    color: #E3EAE1;
    font-size: 15px;
}

.topbar-inner[b-81ujoybe6g] {
    padding: 8px 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 22px;
    align-items: center;
    justify-content: space-between;
}

.topbar-loc[b-81ujoybe6g] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.topbar-phone[b-81ujoybe6g] {
    color: #fff;
    text-decoration: none;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.topbar-loc i[b-81ujoybe6g],
.topbar-phone i[b-81ujoybe6g] {
    font-size: 17px;
    color: #9db0a3;
}

/* Brand + nav row */
.header-inner[b-81ujoybe6g] {
    padding: 14px 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 14px 20px;
    align-items: center;
    justify-content: space-between;
}

.brand[b-81ujoybe6g] {
    display: flex;
    align-items: center;
    gap: 13px;
    text-decoration: none;
}

.brand-mark[b-81ujoybe6g] {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--green);
    color: var(--bg);
    display: grid;
    place-items: center;
    font-family: 'Spectral', serif;
    font-weight: 600;
    font-size: 25px;
    flex: none;
}

.brand-text[b-81ujoybe6g] {
    display: flex;
    flex-direction: column;
    line-height: 1.04;
}

.brand-name[b-81ujoybe6g] {
    font-family: 'Spectral', serif;
    font-weight: 600;
    font-size: 24px;
    color: var(--ink);
}

.brand-tag[b-81ujoybe6g] {
    font-size: 12.5px;
    letter-spacing: .03em;
    color: var(--muted-2);
    font-weight: 600;
}

/* Hamburger toggle — mobile only (js/nav.js drives .nav-open on .site-header) */
.nav-toggle[b-81ujoybe6g] {
    display: none;
    width: 44px;
    height: 44px;
    place-items: center;
    border: none;
    background: transparent;
    border-radius: 10px;
    color: var(--green);
    font-size: 27px;
    cursor: pointer;
    padding: 0;
}

.nav-toggle .nav-toggle-close[b-81ujoybe6g] {
    display: none;
}

.site-header.nav-open .nav-toggle .nav-toggle-open[b-81ujoybe6g] {
    display: none;
}

.site-header.nav-open .nav-toggle .nav-toggle-close[b-81ujoybe6g] {
    display: block;
}

/* Nav wraps on small screens without JS; js/nav.js upgrades it to a hamburger panel */
.main-nav[b-81ujoybe6g] {
    display: flex;
    align-items: center;
    gap: clamp(8px, 1.6vw, 26px);
    flex-wrap: wrap;
}

.nav-link[b-81ujoybe6g] {
    position: relative;
    text-decoration: none;
    color: #3B372F;
    font-weight: 600;
    font-size: 17px;
    padding: 6px 2px;
}

.nav-link:hover[b-81ujoybe6g] {
    color: var(--green);
}

/* The underline span is emitted via AddMarkupContent, which bypasses the
   isolation scope attribute — anchor on the plain .nav-link and pierce with ::deep. */
.nav-link[b-81ujoybe6g]  .nav-underline {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6px;
    height: 3px;
    border-radius: 3px;
    background: var(--accent);
}

.btn-cta[b-81ujoybe6g] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: var(--accent);
    color: #fff;
    font-weight: 700;
    font-size: 16px;
    padding: 12px 22px;
    border-radius: 10px;
    text-decoration: none;
    line-height: 1;
    box-shadow: 0 8px 18px rgb(var(--accent-shadow-rgb) / .22);
    transition: background .18s ease, transform .18s ease;
}

.btn-cta:hover[b-81ujoybe6g] {
    background: var(--accent-strong);
    transform: translateY(-2px);
}

.btn-cta i[b-81ujoybe6g] {
    font-size: 18px;
}

/* ===== Mobile (breakpoint shared with VideoDetail.razor.css) ===== */
@media (max-width: 720px) {

    /* Fixed-height single-row topbar; the negative sticky top lets exactly
       that row scroll away so only the brand row stays pinned (~68px). */
    .site-header[b-81ujoybe6g] {
        top: -44px;
    }

    .topbar-inner[b-81ujoybe6g] {
        height: 44px;
        padding-block: 0;
        justify-content: center;
    }

    .topbar-loc[b-81ujoybe6g] {
        display: none;
    }

    .topbar-phone[b-81ujoybe6g] {
        padding-block: 10px; /* ≥44px hit area inside the 44px bar */
    }

    .header-inner[b-81ujoybe6g] {
        gap: 10px;
        padding: 11px 16px;
    }

    /* nowrap only once nav.js is live — without JS the toggle stays hidden and
       the inline nav wraps as before, so nothing overflows the 375px row. */
    .site-header.has-js .header-inner[b-81ujoybe6g] {
        flex-wrap: nowrap;
    }

    .brand[b-81ujoybe6g] {
        gap: 10px;
        min-width: 0;
    }

    .brand-mark[b-81ujoybe6g] {
        width: 40px;
        height: 40px;
        font-size: 22px;
    }

    .brand-name[b-81ujoybe6g] {
        font-size: 21px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .brand-text[b-81ujoybe6g] {
        min-width: 0;
    }

    .brand-tag[b-81ujoybe6g] {
        display: none;
    }

    .btn-cta[b-81ujoybe6g] {
        margin-left: auto;
        padding: 11px 14px;
        font-size: 15px;
        gap: 7px;
        flex: none;
    }

    .site-header.has-js .nav-toggle[b-81ujoybe6g] {
        display: grid;
        flex: none;
    }

    /* Panel is hidden only once nav.js has signalled itself (has-js), so
       no-JS visitors keep the wrapped inline nav instead of losing it. */
    .site-header.has-js .main-nav[b-81ujoybe6g] {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 6px 0 10px;
        background: rgba(244, 239, 230, .97);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        border-bottom: 1px solid var(--line-2);
        box-shadow: 0 18px 30px rgb(38 36 31 / .12);
        max-height: calc(100vh - 68px); /* fallback: iOS Safari < 16.4 has no dvh */
        max-height: calc(100dvh - 68px);
        overflow-y: auto;
    }

    .site-header.nav-open .main-nav[b-81ujoybe6g] {
        display: flex;
    }

    .site-header.has-js .nav-link[b-81ujoybe6g] {
        min-height: 48px;
        display: flex;
        align-items: center;
        padding: 10px 24px;
        font-size: 18px;
        border-left: 3px solid transparent;
    }

    .site-header.has-js .nav-link.is-active[b-81ujoybe6g] {
        border-left-color: var(--accent);
        background: rgb(255 255 255 / .55);
    }

    /* The desktop underline would render as a full-width divider bar here
       (::deep because the span comes from AddMarkupContent — no scope attr). */
    .site-header.has-js .nav-link[b-81ujoybe6g]  .nav-underline {
        display: none;
    }
}
/* /Components/Pages/About.razor.rz.scp.css */
/* About page — ported from prototype (Fysioviden.dc.html lines 221–264).
   Shared .container + primitives handle chrome; page-specific layout scoped here. */

.screen[b-5r6246smor] {
    animation: fviFade .45s ease both;
}

/* ===== HEADER (prototype 224–243) ===== */
.about-hero[b-5r6246smor] {
    padding-top: clamp(44px, 6vw, 84px);
    padding-bottom: clamp(44px, 6vw, 84px);
    background: var(--cream-card);
    border-bottom: 1px solid #EEE6D8;
}

.about-hero-grid[b-5r6246smor] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: clamp(28px, 4vw, 56px);
    align-items: center;
}

.about-hero-copy[b-5r6246smor]  .eyebrow {
    margin-bottom: 14px;
}

.about-hero-copy h1[b-5r6246smor] {
    font-size: clamp(34px, 4.6vw, 54px);
}

.about-role[b-5r6246smor] {
    font-size: 20px;
    color: #4a4438;
    margin-top: 8px;
    font-weight: 600;
}

.about-bio[b-5r6246smor] {
    font-size: 19px;
    color: #5B5347;
    margin-top: 20px;
    line-height: 1.62;
}

.about-pills[b-5r6246smor] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.about-pill[b-5r6246smor] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1px solid #EAE1D2;
    border-radius: 999px;
    padding: 9px 16px;
    font-size: 15.5px;
    font-weight: 600;
    color: #3B372F;
}

.about-pill[b-5r6246smor]  i {
    color: var(--accent);
    font-size: 18px;
}

.about-portrait[b-5r6246smor] {
    position: relative;
}

.about-portrait[b-5r6246smor]  .placeholder {
    max-width: 440px;
    margin-left: auto;
    box-shadow: 0 26px 52px rgba(38, 36, 31, .12);
}

/* ===== BODY (prototype 245–262) ===== */
.about-body[b-5r6246smor] {
    padding-top: clamp(48px, 6vw, 88px);
    padding-bottom: clamp(48px, 6vw, 88px);
}

.about-body-inner[b-5r6246smor] {
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
    padding: 0 24px;
}

.about-body-inner h2[b-5r6246smor] {
    font-size: clamp(26px, 3vw, 36px);
}

.about-h2-osteo[b-5r6246smor] {
    margin-top: 52px;
}

.about-body-inner p[b-5r6246smor] {
    font-size: 19px;
    color: #4a4438;
    margin-top: 18px;
    line-height: 1.66;
}

.about-body-inner p + p[b-5r6246smor] {
    margin-top: 16px;
}

.about-body-inner[b-5r6246smor]  .infobox {
    margin-top: 26px;
    padding: 22px 24px;
}

.about-body-inner[b-5r6246smor]  .infobox > div {
    font-size: 16.5px;
    line-height: 1.55;
}

.about-cta[b-5r6246smor] {
    margin-top: 34px;
}
/* /Components/Pages/Booking.razor.rz.scp.css */
/* Booking page — ported from prototype (Fysioviden.dc.html lines 414–514).
   Shared .container + primitives handle chrome; page-specific layout scoped here. */

.screen[b-gh2ndms79p] {
    animation: fviFade .45s ease both;
}

/* ===== 1. INTRO (prototype 417–423) ===== */
.book-intro[b-gh2ndms79p] {
    padding-top: clamp(40px, 5vw, 72px);
    padding-bottom: clamp(28px, 3vw, 40px);
}

.book-intro[b-gh2ndms79p]  .eyebrow {
    margin-bottom: 14px;
}

.book-intro h1[b-gh2ndms79p] {
    font-size: clamp(34px, 4.4vw, 52px);
    max-width: 18ch;
}

.book-lede[b-gh2ndms79p] {
    font-size: 19px;
    color: var(--muted);
    margin-top: 18px;
    max-width: 60ch;
}

/* ===== 2. CONTACT CARDS (prototype 425–440) ===== */
.book-contact[b-gh2ndms79p] {
    padding-bottom: clamp(24px, 3vw, 40px);
}

.book-contact-grid[b-gh2ndms79p] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
}

.book-card[b-gh2ndms79p] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    text-decoration: none;
    border-radius: 20px;
    padding: 32px 30px;
    transition: transform .18s ease, box-shadow .18s ease;
}

.book-card:hover[b-gh2ndms79p] {
    transform: translateY(-4px);
}

.book-card-icon[b-gh2ndms79p] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    margin-bottom: 8px;
    font-size: 28px;
}

.book-card-label[b-gh2ndms79p] {
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.book-card-value[b-gh2ndms79p] {
    font-family: 'Spectral', serif;
    font-weight: 600;
}

.book-card-note[b-gh2ndms79p] {
    font-size: 16px;
}

/* Call card (green) */
.book-card-call[b-gh2ndms79p] {
    background: var(--green);
    color: #fff;
}

.book-card-call:hover[b-gh2ndms79p] {
    box-shadow: 0 20px 40px rgba(47, 74, 62, .28);
}

.book-card-call .book-card-icon[b-gh2ndms79p] {
    background: rgba(255, 255, 255, .14);
}

.book-card-call .book-card-label[b-gh2ndms79p] {
    color: #C6D3C6;
}

.book-card-call .book-card-value[b-gh2ndms79p] {
    font-size: 32px;
}

.book-card-call .book-card-note[b-gh2ndms79p] {
    color: #C6D3C6;
}

/* Email card (white) */
.book-card-mail[b-gh2ndms79p] {
    background: #fff;
    color: var(--ink);
    border: 1px solid var(--line);
}

.book-card-mail:hover[b-gh2ndms79p] {
    box-shadow: 0 18px 36px rgba(38, 36, 31, .1);
}

.book-card-mail .book-card-icon[b-gh2ndms79p] {
    background: var(--sage);
    color: var(--green);
}

.book-card-mail .book-card-label[b-gh2ndms79p] {
    color: var(--accent);
    font-weight: 700;
}

.book-card-mail .book-card-value[b-gh2ndms79p] {
    font-size: 26px;
    word-break: break-word;
}

.book-card-mail .book-card-note[b-gh2ndms79p] {
    color: var(--muted);
}

/* ===== 3. HOW TO BOOK + HOURS + FIRST VISIT (prototype 442–471) ===== */
.book-how[b-gh2ndms79p] {
    padding-top: clamp(40px, 5vw, 64px);
    padding-bottom: clamp(52px, 7vw, 92px);
}

.book-how-grid[b-gh2ndms79p] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: clamp(28px, 4vw, 48px);
}

.book-steps h2[b-gh2ndms79p] {
    font-size: clamp(26px, 3vw, 36px);
    margin-bottom: 24px;
}

.book-step-list[b-gh2ndms79p] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.book-step[b-gh2ndms79p] {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.book-step-num[b-gh2ndms79p] {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    flex: none;
    border-radius: 50%;
    background: var(--green);
    color: #fff;
    font-family: 'Spectral', serif;
    font-weight: 600;
    font-size: 20px;
}

.book-step h3[b-gh2ndms79p] {
    font-size: 20px;
    margin-bottom: 5px;
}

.book-step p[b-gh2ndms79p] {
    font-size: 16.5px;
    color: var(--muted);
    line-height: 1.55;
}

.book-aside[b-gh2ndms79p] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.book-hours-card[b-gh2ndms79p],
.book-first-card[b-gh2ndms79p] {
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 28px;
}

.book-hours-card[b-gh2ndms79p] {
    background: #fff;
}

.book-first-card[b-gh2ndms79p] {
    background: var(--cream-card);
}

.book-hours-card h3[b-gh2ndms79p],
.book-first-card h3[b-gh2ndms79p] {
    font-size: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.book-hours-card h3[b-gh2ndms79p]  i,
.book-first-card h3[b-gh2ndms79p]  i {
    color: var(--accent);
    font-size: 24px;
}

.book-hours-list[b-gh2ndms79p] {
    margin-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 17px;
}

.book-hours-row[b-gh2ndms79p] {
    display: flex;
    justify-content: space-between;
}

.book-hours-row:not(:last-child)[b-gh2ndms79p] {
    border-bottom: 1px solid #F0E9DC;
    padding-bottom: 10px;
}

.book-hours-row span[b-gh2ndms79p] {
    color: var(--muted);
}

.book-hours-note[b-gh2ndms79p] {
    font-size: 15px;
    color: var(--muted-2);
    margin-top: 14px;
}

.book-first-card p[b-gh2ndms79p] {
    font-size: 16.5px;
    color: var(--muted);
    line-height: 1.55;
    margin-top: 14px;
}

/* ===== 4. PRICING (prototype 473–512) ===== */
.book-prices[b-gh2ndms79p] {
    padding-bottom: clamp(52px, 7vw, 92px);
}

.book-prices-card[b-gh2ndms79p] {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(28px, 4vw, 40px);
}

.book-prices-card h2[b-gh2ndms79p] {
    font-size: clamp(24px, 2.8vw, 34px);
}

.book-price-grid[b-gh2ndms79p] {
    margin-top: 24px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}

.book-price-group[b-gh2ndms79p] {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 24px;
}

.book-price-group-label[b-gh2ndms79p] {
    display: inline-block;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 16px;
}

.book-price-row[b-gh2ndms79p] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
}

.book-price-row:not(:last-child)[b-gh2ndms79p] {
    border-bottom: 1px solid #F0E9DC;
    padding-bottom: 12px;
}

.book-price-row + .book-price-row[b-gh2ndms79p] {
    padding-top: 12px;
}

.book-price-row span[b-gh2ndms79p] {
    font-size: 16.5px;
    color: var(--muted);
}

.book-price-row b[b-gh2ndms79p] {
    font-family: 'Spectral', serif;
    font-size: 22px;
    white-space: nowrap;
}

.book-price-note[b-gh2ndms79p] {
    font-size: 16px;
    color: var(--muted);
    line-height: 1.55;
    margin-top: 22px;
}

.book-price-akut[b-gh2ndms79p] {
    font-size: 16px;
    color: var(--muted);
    margin-top: 10px;
}

.book-notes-grid[b-gh2ndms79p] {
    margin-top: 28px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}

.book-note[b-gh2ndms79p] {
    border-radius: 14px;
    padding: 22px 24px;
}

.book-note h3[b-gh2ndms79p] {
    font-size: 19px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.book-note p[b-gh2ndms79p] {
    font-size: 16px;
    line-height: 1.55;
    margin-top: 12px;
}

.book-note-afbud[b-gh2ndms79p] {
    background: #FBF3E9;
    border: 1px solid #EAD9C2;
}

.book-note-afbud h3[b-gh2ndms79p]  i {
    color: var(--accent);
    font-size: 22px;
}

.book-note-afbud p[b-gh2ndms79p] {
    color: #5B4A3A;
}

.book-note-tilskud[b-gh2ndms79p] {
    background: var(--sage);
}

.book-note-tilskud h3[b-gh2ndms79p] {
    color: var(--green);
}

.book-note-tilskud h3[b-gh2ndms79p]  i {
    font-size: 22px;
}

.book-note-tilskud p[b-gh2ndms79p] {
    color: #3f5a4c;
}

.book-price-footnote[b-gh2ndms79p] {
    font-size: 15px;
    color: var(--muted-2);
    margin-top: 22px;
}
/* /Components/Pages/Contact.razor.rz.scp.css */
/* Contact page — ported from prototype (Fysioviden.dc.html lines 516–585).
   Shared .container + primitives handle chrome; page-specific layout scoped here. */

.screen[b-8biamhqrm5] {
    animation: fviFade .45s ease both;
}

/* ===== INTRO (prototype 519–525) ===== */
.contact-intro[b-8biamhqrm5] {
    padding-top: clamp(40px, 5vw, 72px);
    padding-bottom: clamp(28px, 3vw, 40px);
}

.contact-intro[b-8biamhqrm5]  .eyebrow {
    margin-bottom: 14px;
}

.contact-intro h1[b-8biamhqrm5] {
    font-size: clamp(34px, 4.4vw, 52px);
}

.contact-lede[b-8biamhqrm5] {
    font-size: 19px;
    color: var(--muted);
    margin-top: 18px;
    max-width: 58ch;
}

/* ===== CARDS + MAP (prototype 527–561) ===== */
.contact-main[b-8biamhqrm5] {
    padding-bottom: clamp(52px, 7vw, 92px);
}

.contact-grid[b-8biamhqrm5] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: clamp(24px, 3vw, 40px);
}

.contact-cards[b-8biamhqrm5] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.contact-card[b-8biamhqrm5] {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 24px;
}

.contact-card-icon[b-8biamhqrm5] {
    width: 48px;
    height: 48px;
    flex: none;
    border-radius: 50%;
    background: var(--sage);
    display: grid;
    place-items: center;
}

.contact-card-icon[b-8biamhqrm5]  i {
    color: var(--green);
    font-size: 24px;
}

.contact-card b[b-8biamhqrm5] {
    font-size: 18px;
}

.contact-card p[b-8biamhqrm5] {
    font-size: 17px;
    color: var(--muted);
    margin-top: 4px;
    line-height: 1.5;
}

.contact-link[b-8biamhqrm5] {
    color: var(--green);
    text-decoration: none;
    font-weight: 600;
}

.contact-link-mail[b-8biamhqrm5] {
    word-break: break-word;
}

/* Map + parking */
.contact-aside[b-8biamhqrm5] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.contact-map[b-8biamhqrm5] {
    position: relative;
}

.contact-map[b-8biamhqrm5]  .placeholder {
    border-radius: 18px;
}

.contact-map-btn[b-8biamhqrm5] {
    position: absolute;
    left: 50%;
    bottom: clamp(18px, 6%, 34px);
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    color: var(--green);
    font-weight: 700;
    font-size: 16px;
    padding: 11px 20px;
    border-radius: 10px;
    text-decoration: none;
    border: 1px solid #D8CDB8;
}

.contact-map-btn[b-8biamhqrm5]  i {
    font-size: 16px;
}

.contact-parking[b-8biamhqrm5] {
    background: var(--cream-card);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 24px;
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.contact-parking[b-8biamhqrm5]  i {
    color: var(--accent);
    font-size: 24px;
    flex: none;
    margin-top: 2px;
}

.contact-parking p[b-8biamhqrm5] {
    font-size: 16px;
    color: var(--muted);
    line-height: 1.55;
}

/* ===== MESSAGE FORM (prototype 563–583) ===== */
.contact-form-section[b-8biamhqrm5] {
    padding-bottom: clamp(52px, 7vw, 92px);
}

.form-card[b-8biamhqrm5] {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(28px, 4vw, 44px);
    max-width: 720px;
}

.form-card h2[b-8biamhqrm5] {
    font-size: clamp(24px, 2.8vw, 34px);
}

.form-card-lede[b-8biamhqrm5] {
    font-size: 17px;
    color: var(--muted);
    margin-top: 10px;
}

/* EditForm renders the <form> itself, so it never gets the isolation scope
   attribute — anchor on .form-card (plain div in this file) and pierce with ::deep. */
.form-card[b-8biamhqrm5]  .contact-form {
    margin-top: 24px;
    display: grid;
    gap: 18px;
}

.field[b-8biamhqrm5] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-weight: 600;
    font-size: 16px;
    color: #3B372F;
}

.field[b-8biamhqrm5]  input,
.field[b-8biamhqrm5]  textarea {
    width: 100%;
    font-size: 18px;
    padding: 14px 16px;
    border: 1.5px solid #D8CDB8;
    border-radius: 12px;
    background: #fff;
    color: #26241F;
    font-family: inherit;
}

.field[b-8biamhqrm5]  textarea {
    resize: vertical;
}

.contact-form .btn-primary[b-8biamhqrm5] {
    justify-self: start;
}

/* Honeypot — visually hidden, off-screen */
.hp[b-8biamhqrm5] {
    position: absolute;
    left: -9999px;
    height: 0;
    width: 0;
    overflow: hidden;
}

.form-note[b-8biamhqrm5] {
    font-size: 14.5px;
    color: var(--muted-2);
    line-height: 1.5;
}

.form-card[b-8biamhqrm5]  .validation-message {
    color: #B3261E;
    font-size: 14.5px;
    margin-top: -8px;
}

/* Success block (prototype 576–581) */
.sent-ok[b-8biamhqrm5] {
    margin-top: 24px;
    padding: 28px;
    background: var(--sage);
    border-radius: 16px;
    display: flex;
    gap: 16px;
    align-items: center;
}

.sent-ok-icon[b-8biamhqrm5] {
    width: 52px;
    height: 52px;
    flex: none;
    border-radius: 50%;
    background: var(--green);
    display: grid;
    place-items: center;
}

.sent-ok-icon[b-8biamhqrm5]  i {
    color: #fff;
    font-size: 28px;
}

.sent-ok b[b-8biamhqrm5] {
    font-size: 20px;
    color: var(--green);
}

.sent-ok p[b-8biamhqrm5] {
    font-size: 16.5px;
    color: #3f5a4c;
    margin-top: 4px;
}
/* /Components/Pages/Error.razor.rz.scp.css */
/* Production error page — same card styling as the not-found view (scoped CSS
   doesn't cross components, so the nf-* rules are mirrored from NotFound.razor.css). */

.screen[b-1t4vek0497] {
    animation: fviFade .45s ease both;
}

.nf-section[b-1t4vek0497] {
    padding-top: clamp(30px, 4vw, 52px);
    padding-bottom: clamp(52px, 7vw, 92px);
}

.nf-inner[b-1t4vek0497] {
    width: 100%;
    max-width: 940px;
    margin: 0 auto;
    padding: 0 24px;
}

.nf-card[b-1t4vek0497] {
    background: #fff;
    border: 1px solid #EAE1D2;
    border-radius: 20px;
    padding: clamp(32px, 5vw, 56px);
    text-align: center;
}

.nf-icon[b-1t4vek0497] {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #F1ECE0;
    display: grid;
    place-items: center;
    margin: 0 auto 20px;
}

.nf-icon[b-1t4vek0497]  i {
    color: #7a7161;
    font-size: 34px;
}

.nf-card h1[b-1t4vek0497] {
    font-size: clamp(26px, 3.4vw, 38px);
}

.nf-card p[b-1t4vek0497] {
    font-size: 19px;
    color: #5B5347;
    margin-top: 16px;
    max-width: 46ch;
    margin-left: auto;
    margin-right: auto;
}

.nf-cta[b-1t4vek0497] {
    margin-top: 28px;
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: center;
}

.nf-cta .btn[b-1t4vek0497] {
    font-size: 18px;
    padding: 15px 26px;
}

.nf-request-id[b-1t4vek0497] {
    margin-top: 22px;
    font-size: 15px;
    color: #7a7161;
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* Home page — ported from prototype (Fysioviden.dc.html lines 62–217).
   Reusable .section-head / .grid-cards live in app.css; page-specific layout is scoped here. */

.screen[b-nn4qgmg6aj] {
    animation: fviFade .45s ease both;
}

.accent[b-nn4qgmg6aj] {
    color: var(--accent);
}

/* ===== 1. HERO (prototype 66–94) ===== */
.hero[b-nn4qgmg6aj] {
    position: relative;
    overflow: hidden;
    padding-top: clamp(44px, 6vw, 88px);
    padding-bottom: clamp(52px, 7vw, 96px);
}

.hero-blob[b-nn4qgmg6aj] {
    position: absolute;
    top: -140px;
    right: -160px;
    width: 560px;
    height: 560px;
    border-radius: 50%;
    background: radial-gradient(circle at 32% 32%, #E7EEE7, #EFE7D9 68%);
    opacity: .75;
    pointer-events: none;
}

.hero-inner[b-nn4qgmg6aj] {
    position: relative;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(330px, 100%), 1fr));
    gap: clamp(28px, 4vw, 60px);
    align-items: center;
}

.hero-copy[b-nn4qgmg6aj]  .eyebrow {
    margin-bottom: 16px;
}

.hero-copy h1[b-nn4qgmg6aj] {
    font-size: clamp(38px, 5.2vw, 62px);
    line-height: 1.04;
}

.hero-lede[b-nn4qgmg6aj] {
    font-size: clamp(19px, 2vw, 22px);
    color: var(--muted);
    margin-top: 22px;
    max-width: 36ch;
}

.hero-actions[b-nn4qgmg6aj] {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 34px;
}

.hero-badges[b-nn4qgmg6aj] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    margin-top: 32px;
}

.trust-badge[b-nn4qgmg6aj] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: 15.5px;
    color: #4a4438;
    font-weight: 600;
}

.trust-badge[b-nn4qgmg6aj]  i {
    color: var(--accent);
    font-size: 20px;
}

.hero-media[b-nn4qgmg6aj] {
    position: relative;
}

.hero-media[b-nn4qgmg6aj]  .placeholder {
    box-shadow: 0 30px 60px rgba(38, 36, 31, .13);
}

.hero-float[b-nn4qgmg6aj] {
    position: absolute;
    left: -16px;
    bottom: 28px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 15px 17px;
    box-shadow: 0 16px 34px rgba(38, 36, 31, .15);
    display: flex;
    gap: 13px;
    align-items: center;
    max-width: 258px;
}

.hero-float-icon[b-nn4qgmg6aj] {
    width: 44px;
    height: 44px;
    flex: none;
    border-radius: 50%;
    background: var(--sage);
    display: grid;
    place-items: center;
}

.hero-float-icon[b-nn4qgmg6aj]  i {
    color: var(--green);
    font-size: 23px;
}

.hero-float-text[b-nn4qgmg6aj] {
    line-height: 1.32;
}

.hero-float-text b[b-nn4qgmg6aj] {
    font-size: 16px;
    color: var(--ink);
}

.hero-float-text span[b-nn4qgmg6aj] {
    font-size: 14.5px;
    color: #6E6656;
}

/* ===== 2. SERVICES (prototype 96–114) ===== */
.services[b-nn4qgmg6aj] {
    padding-top: clamp(52px, 7vw, 92px);
    padding-bottom: clamp(52px, 7vw, 92px);
    background: var(--cream-card);
    border-top: 1px solid #EEE6D8;
    border-bottom: 1px solid #EEE6D8;
}

/* ===== 3. OSTEOPATHY EXPLAINER (prototype 116–136) ===== */
.osteo[b-nn4qgmg6aj] {
    padding-top: clamp(52px, 7vw, 96px);
    padding-bottom: clamp(52px, 7vw, 96px);
}

.osteo-grid[b-nn4qgmg6aj] {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: clamp(28px, 4vw, 56px);
    align-items: center;
}

.osteo-text[b-nn4qgmg6aj] {
    order: 2;
}

.osteo-media[b-nn4qgmg6aj] {
    order: 1;
}

.osteo-text[b-nn4qgmg6aj]  .eyebrow {
    margin-bottom: 14px;
}

.osteo-text h2[b-nn4qgmg6aj] {
    font-size: clamp(28px, 3.4vw, 42px);
}

.osteo-text p[b-nn4qgmg6aj] {
    font-size: 19px;
    color: #4a4438;
    margin-top: 18px;
    line-height: 1.62;
}

.osteo-text p + p[b-nn4qgmg6aj] {
    margin-top: 14px;
}

.osteo-text[b-nn4qgmg6aj]  .infobox {
    margin-top: 22px;
    font-size: 15.5px;
    font-weight: 600;
}

.osteo-link[b-nn4qgmg6aj] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 26px;
    font-weight: 700;
    font-size: 18px;
    color: var(--green);
    text-decoration: none;
}

.osteo-link:hover[b-nn4qgmg6aj] {
    color: var(--accent);
}

/* Mobile: ~44px hit area; padding absorbs part of the old top margin. */
@media (max-width: 720px) {
    .osteo-link[b-nn4qgmg6aj] {
        padding-block: 8px;
        margin-top: 18px;
    }
}

.osteo-link[b-nn4qgmg6aj]  i {
    font-size: 19px;
}

/* ===== 4. VIDEO TEASER (prototype 138–165) ===== */
.video-teaser[b-nn4qgmg6aj] {
    padding-top: clamp(52px, 7vw, 92px);
    padding-bottom: clamp(52px, 7vw, 92px);
    background: var(--green);
    color: #EAF0EA;
}

.video-teaser-head[b-nn4qgmg6aj] {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 40px;
}

.video-teaser-intro[b-nn4qgmg6aj] {
    max-width: 620px;
}

.video-teaser-intro[b-nn4qgmg6aj]  .eyebrow {
    color: #E7A98C;
    margin-bottom: 14px;
}

.video-teaser-intro h2[b-nn4qgmg6aj] {
    font-size: clamp(30px, 3.6vw, 44px);
    color: #fff;
}

.video-teaser-intro p[b-nn4qgmg6aj] {
    font-size: 19px;
    color: #C6D3C6;
    margin-top: 14px;
}

.video-teaser-head[b-nn4qgmg6aj]  .btn-ghost {
    color: #fff;
    border-color: rgba(255, 255, 255, .45);
    font-size: 18px;
    padding: 15px 26px;
}

.video-teaser-head[b-nn4qgmg6aj]  .btn-ghost:hover {
    border-color: #fff;
    background: rgba(255, 255, 255, .08);
}

.video-grid[b-nn4qgmg6aj] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: 24px;
}

/* ===== 5. VALUES (prototype 167–184) ===== */
.values[b-nn4qgmg6aj] {
    padding-top: clamp(52px, 7vw, 92px);
    padding-bottom: clamp(52px, 7vw, 92px);
}

.values-grid[b-nn4qgmg6aj] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 22px;
}

/* ===== 6. STEPS (prototype 186–203) ===== */
.steps[b-nn4qgmg6aj] {
    padding-top: clamp(52px, 7vw, 92px);
    padding-bottom: clamp(52px, 7vw, 96px);
    background: var(--cream-card);
    border-top: 1px solid #EEE6D8;
}

.steps-grid[b-nn4qgmg6aj] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 24px;
}

/* ===== 7. CTA BAND (prototype 205–216) ===== */
.cta-band[b-nn4qgmg6aj] {
    padding-top: clamp(56px, 7vw, 96px);
    padding-bottom: clamp(56px, 7vw, 96px);
    background: var(--ink);
    color: #F1ECE0;
    text-align: center;
}

.cta-inner[b-nn4qgmg6aj] {
    width: 100%;
    max-width: 820px;
    margin: 0 auto;
    padding: 0 24px;
}

.cta-inner h2[b-nn4qgmg6aj] {
    font-size: clamp(30px, 3.8vw, 48px);
    color: #fff;
}

.cta-lede[b-nn4qgmg6aj] {
    font-size: 20px;
    color: #CFC7B8;
    margin-top: 18px;
}

.cta-actions[b-nn4qgmg6aj] {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: center;
    margin-top: 34px;
}

.cta-actions[b-nn4qgmg6aj]  .btn {
    font-size: 19px;
    padding: 17px 30px;
}

.cta-actions[b-nn4qgmg6aj]  .btn-primary {
    box-shadow: 0 10px 24px rgb(var(--accent-shadow-rgb) / .3);
}

.cta-actions[b-nn4qgmg6aj]  .btn-ghost {
    color: #fff;
    border-color: rgba(255, 255, 255, .4);
}

.cta-actions[b-nn4qgmg6aj]  .btn-ghost:hover {
    border-color: #fff;
}

.cta-address[b-nn4qgmg6aj] {
    margin-top: 24px;
    color: #9a917f;
    font-size: 16px;
}
/* /Components/Pages/NotFound.razor.rz.scp.css */
/* Not-found view — ported from prototype (Fysioviden.dc.html lines 398–408). */

.screen[b-qpfexogq8q] {
    animation: fviFade .45s ease both;
}

.nf-section[b-qpfexogq8q] {
    padding-top: clamp(30px, 4vw, 52px);
    padding-bottom: clamp(52px, 7vw, 92px);
}

.nf-inner[b-qpfexogq8q] {
    width: 100%;
    max-width: 940px;
    margin: 0 auto;
    padding: 0 24px;
}

.nf-card[b-qpfexogq8q] {
    background: #fff;
    border: 1px solid #EAE1D2;
    border-radius: 20px;
    padding: clamp(32px, 5vw, 56px);
    text-align: center;
}

.nf-icon[b-qpfexogq8q] {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #F1ECE0;
    display: grid;
    place-items: center;
    margin: 0 auto 20px;
}

.nf-icon[b-qpfexogq8q]  i {
    color: #7a7161;
    font-size: 34px;
}

.nf-card h1[b-qpfexogq8q] {
    font-size: clamp(26px, 3.4vw, 38px);
}

.nf-card p[b-qpfexogq8q] {
    font-size: 19px;
    color: #5B5347;
    margin-top: 16px;
    max-width: 46ch;
    margin-left: auto;
    margin-right: auto;
}

.nf-cta[b-qpfexogq8q] {
    margin-top: 28px;
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: center;
}

.nf-cta .btn[b-qpfexogq8q] {
    font-size: 18px;
    padding: 15px 26px;
}

.nf-cta-call[b-qpfexogq8q]  i {
    font-size: 19px;
}
/* /Components/Pages/VideoDetail.razor.rz.scp.css */
/* Video detail — ported from prototype (Fysioviden.dc.html lines 344–412).
   Shared .container/primitives handle chrome; page-specific layout scoped here. */

.screen[b-pwlv1i3q0e] {
    animation: fviFade .45s ease both;
}

.vd-section[b-pwlv1i3q0e] {
    padding-top: clamp(30px, 4vw, 52px);
    padding-bottom: clamp(52px, 7vw, 92px);
}

.vd-inner[b-pwlv1i3q0e] {
    width: 100%;
    max-width: 940px;
    margin: 0 auto;
    padding: 0 24px;
}

/* ===== BACK LINK (prototype 349) ===== */
.vd-back[b-pwlv1i3q0e] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    font-size: 16px;
    color: #2F4A3E;
    text-decoration: none;
    margin-bottom: 24px;
}

.vd-back:hover[b-pwlv1i3q0e] {
    color: var(--accent);
}

.vd-back[b-pwlv1i3q0e]  i {
    font-size: 18px;
}

/* ===== PLAYER PLACEHOLDER (prototype 353–366) ===== */
.vd-player[b-pwlv1i3q0e] {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: 20px;
    overflow: hidden;
    background: #201E1A;
}

.vd-player-stripes[b-pwlv1i3q0e] {
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(135deg, #2c2925, #2c2925 16px, #262420 16px, #262420 32px);
}

.vd-player-center[b-pwlv1i3q0e] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
}

.vd-player-badge[b-pwlv1i3q0e] {
    width: 86px;
    height: 86px;
    border-radius: 50%;
    background: var(--accent);
    display: grid;
    place-items: center;
    box-shadow: 0 12px 32px rgb(0 0 0 / .4);
}

.vd-player-badge[b-pwlv1i3q0e]  i {
    color: #fff;
    font-size: 36px;
    margin-left: 4px;
}

.vd-player-caption[b-pwlv1i3q0e] {
    font-family: ui-monospace, Menlo, monospace;
    font-size: 13px;
    letter-spacing: .03em;
    color: rgb(255 255 255 / .55);
}

.vd-player-bar[b-pwlv1i3q0e] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 48px;
    background: linear-gradient(transparent, rgb(0 0 0 / .6));
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 18px;
}

.vd-player-bar[b-pwlv1i3q0e]  i {
    color: #fff;
    font-size: 18px;
}

.vd-player-track[b-pwlv1i3q0e] {
    flex: 1;
    height: 5px;
    border-radius: 3px;
    background: rgb(255 255 255 / .28);
    position: relative;
}

.vd-player-progress[b-pwlv1i3q0e] {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 24%;
    background: var(--accent);
    border-radius: 3px;
}

.vd-player-time[b-pwlv1i3q0e] {
    color: #fff;
    font-size: 13px;
}

/* ===== META CHIPS (prototype 368–374) ===== */
.vd-chips[b-pwlv1i3q0e] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-top: 24px;
}

.vd-chip[b-pwlv1i3q0e] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border-radius: 999px;
    font-size: 14px;
}

.vd-chip[b-pwlv1i3q0e]  i {
    font-size: 16px;
}

.vd-chip-level[b-pwlv1i3q0e] {
    background: #E7EEE7;
    color: #2F4A3E;
    font-weight: 700;
    padding: 7px 14px;
}

.vd-chip-dur[b-pwlv1i3q0e] {
    background: #F1ECE0;
    color: #5B5347;
    font-weight: 600;
    padding: 7px 14px;
}

.vd-chip-lock[b-pwlv1i3q0e] {
    background: #FBF3E9;
    color: #8f5a2c;
    border: 1px solid #EAD9C2;
    font-weight: 700;
    padding: 6px 14px;
}

/* ===== TITLE + DESCRIPTION (prototype 376–377) ===== */
.vd-title[b-pwlv1i3q0e] {
    font-size: clamp(28px, 3.8vw, 42px);
    margin-top: 16px;
}

.vd-desc[b-pwlv1i3q0e] {
    font-size: 20px;
    color: #4a4438;
    margin-top: 16px;
    line-height: 1.62;
}

/* ===== PERSONAL BOX (prototype 379–384) ===== */
.vd-personal[b-pwlv1i3q0e] {
    margin-top: 24px;
    padding: 20px 22px;
    background: #FBF3E9;
    border: 1px solid #EAD9C2;
    border-radius: 16px;
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.vd-personal[b-pwlv1i3q0e]  i {
    color: var(--accent);
    font-size: 24px;
    flex: none;
    margin-top: 2px;
}

.vd-personal p[b-pwlv1i3q0e] {
    font-size: 16.5px;
    color: #5B4A3A;
    line-height: 1.55;
}

/* ===== SAFETY NOTE (prototype 386–389) ===== */
.vd-safety[b-pwlv1i3q0e] {
    margin-top: 24px;
    padding: 18px 22px;
    background: #F9EFE3;
    border: 1px solid #E3C9A8;
    border-left: 5px solid var(--accent);
    border-radius: 14px;
    display: flex;
    gap: 12px;
    align-items: center;
}

.vd-safety[b-pwlv1i3q0e]  i {
    color: var(--accent);
    font-size: 22px;
    flex: none;
}

.vd-safety p[b-pwlv1i3q0e] {
    font-size: 16px;
    color: #4F4335;
    line-height: 1.5;
}

/* ===== CTA ROW (prototype 391–394) ===== */
.vd-cta[b-pwlv1i3q0e] {
    margin-top: 32px;
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.vd-cta .btn[b-pwlv1i3q0e] {
    font-size: 18px;
    padding: 15px 26px;
}

.vd-cta-call[b-pwlv1i3q0e]  i {
    font-size: 19px;
}

.vd-player-real video[b-pwlv1i3q0e] {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    background: #201E1A;
}

/* ===== TRIN FOR TRIN (step guide) ===== */
.vd-steps[b-pwlv1i3q0e] { margin-top: 32px; }
.vd-steps h2[b-pwlv1i3q0e] { font-size: clamp(24px, 2.6vw, 32px); margin-bottom: 20px; }
.vd-steps-list[b-pwlv1i3q0e] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.vd-step[b-pwlv1i3q0e] { display: flex; gap: 18px; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 22px 24px; }
.vd-step-num[b-pwlv1i3q0e] { display: grid; place-items: center; width: 44px; height: 44px; flex: none; border-radius: 50%;
    background: var(--green); color: #fff; font-family: 'Spectral', serif; font-weight: 600; font-size: 20px; }
.vd-step-body[b-pwlv1i3q0e] { display: flex; gap: 20px; align-items: flex-start; flex: 1; }
.vd-step-text[b-pwlv1i3q0e] { flex: 1; font-size: 17px; line-height: 1.6; color: var(--ink); }
.vd-step-photo[b-pwlv1i3q0e] { width: 40%; max-width: 320px; border-radius: 14px; border: 1px solid var(--line); }
@media (max-width: 720px) {
    .vd-step-body[b-pwlv1i3q0e] { flex-direction: column; }
    .vd-step-photo[b-pwlv1i3q0e] { width: 100%; max-width: none; }
}
/* /Components/Pages/Videos.razor.rz.scp.css */
/* Videos page — ported from prototype (Fysioviden.dc.html lines 266–341).
   Shared .container + primitives handle chrome; page-specific layout scoped here. */

.screen[b-b9z3xb235f] {
    animation: fviFade .45s ease both;
}

/* ===== INTRO (prototype 269–280) ===== */
.videos-intro[b-b9z3xb235f] {
    padding-top: clamp(40px, 5vw, 72px);
    padding-bottom: clamp(28px, 3vw, 40px);
}

.videos-intro[b-b9z3xb235f]  .eyebrow {
    margin-bottom: 14px;
}

.videos-intro h1[b-b9z3xb235f] {
    font-size: clamp(34px, 4.4vw, 52px);
    max-width: 16ch;
}

.videos-lede[b-b9z3xb235f] {
    font-size: 19px;
    color: #5B5347;
    margin-top: 18px;
    max-width: 60ch;
}

.videos-intro[b-b9z3xb235f]  .infobox {
    margin-top: 26px;
    padding: 20px 22px;
    max-width: 820px;
}

.videos-intro[b-b9z3xb235f]  .infobox > div {
    font-size: 16.5px;
    line-height: 1.55;
}

/* ===== CHIPS (prototype 282–291) ===== */
.videos-chips[b-b9z3xb235f] {
    padding-bottom: clamp(20px, 2vw, 28px);
}

.chip-row[b-b9z3xb235f] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

/* Mobile: single scrollable row bleeding to the viewport edge (container pads 24px).
   ::deep on the chips — Chip.razor has no scoped CSS, so they carry no scope attr. */
@media (max-width: 720px) {
    .chip-row[b-b9z3xb235f] {
        flex-wrap: nowrap;
        overflow-x: auto;
        margin-inline: -24px;
        /* end padding > the 32px fade so the last chip scrolls clear of it */
        padding-inline: 24px 40px;
        /* room for the 3px+2px focus ring, which overflow-x would otherwise clip */
        padding-block: 6px;
        margin-block: -6px;
        scroll-snap-type: x proximity;
        scroll-padding-inline: 24px;
        scrollbar-width: none;
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent);
        mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent);
    }

    .chip-row[b-b9z3xb235f]::-webkit-scrollbar {
        display: none;
    }

    .chip-row[b-b9z3xb235f]  .chip {
        flex: none;
        scroll-snap-align: start;
        white-space: nowrap;
    }
}

/* ===== CATEGORY SECTIONS (prototype 293–321) ===== */
.videos-sections[b-b9z3xb235f] {
    padding-bottom: clamp(40px, 5vw, 72px);
}

.videos-sections-inner[b-b9z3xb235f] {
    display: flex;
    flex-direction: column;
    gap: clamp(40px, 5vw, 64px);
}

.videos-category-head[b-b9z3xb235f] {
    display: flex;
    align-items: baseline;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 2px solid #EAE1D2;
}

.videos-category-head h2[b-b9z3xb235f] {
    font-size: clamp(24px, 2.8vw, 32px);
}

.videos-category-head p[b-b9z3xb235f] {
    font-size: 16.5px;
    color: #7a7161;
}

.videos-grid[b-b9z3xb235f] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: 24px;
}

/* ===== CODE BOX (prototype 323–340) ===== */
.videos-codebox[b-b9z3xb235f] {
    padding-bottom: clamp(52px, 7vw, 92px);
}

.codebox[b-b9z3xb235f] {
    background: #FBF8F1;
    border: 1.5px dashed #D8CDB8;
    border-radius: 18px;
    padding: 28px;
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: center;
    justify-content: space-between;
}

.codebox-copy[b-b9z3xb235f] {
    display: flex;
    gap: 16px;
    align-items: center;
    max-width: 520px;
}

.codebox-icon[b-b9z3xb235f] {
    width: 54px;
    height: 54px;
    flex: none;
    border-radius: 50%;
    background: #E7EEE7;
    display: grid;
    place-items: center;
}

.codebox-icon[b-b9z3xb235f]  i {
    color: #2F4A3E;
    font-size: 26px;
}

.codebox-copy b[b-b9z3xb235f] {
    font-size: 19px;
    color: #26241F;
}

.codebox-copy p[b-b9z3xb235f] {
    font-size: 16px;
    color: #5B5347;
    margin-top: 4px;
    line-height: 1.5;
}

.codebox-form[b-b9z3xb235f] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    flex: 1;
    min-width: 280px;
}

.codebox-form input[b-b9z3xb235f] {
    flex: 1;
    min-width: 200px;
    font-size: 18px;
    padding: 14px 16px;
    border: 1.5px solid #D8CDB8;
    border-radius: 12px;
    background: #fff;
    color: #26241F;
}

.codebox-form button[b-b9z3xb235f] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: var(--accent);
    color: #fff;
    font-weight: 700;
    font-size: 17px;
    padding: 14px 24px;
    border-radius: 12px;
    border: none;
    cursor: pointer;
    line-height: 1;
    transition: background .18s ease;
}

.codebox-form button:hover[b-b9z3xb235f] {
    background: var(--accent-strong);
}
/* /Components/Shared/VideoCard.razor.rz.scp.css */
/* Video card — ported from prototype: dark variant lines 151–161, light variant lines 304–315. */

.video-card[b-pbzc5ibwaq] {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    border-radius: 18px;
    overflow: hidden;
    color: inherit;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.video-card:hover[b-pbzc5ibwaq] {
    transform: translateY(-4px);
}

.video-thumb[b-pbzc5ibwaq] {
    position: relative;
    aspect-ratio: 16 / 9;
    display: grid;
    place-items: center;
}

.video-play[b-pbzc5ibwaq] {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 25px;
}

/* icon rendered by child <Icon> — reach past the scope with ::deep */
.video-play[b-pbzc5ibwaq]  i {
    margin-left: 3px;
}

.video-dur[b-pbzc5ibwaq] {
    position: absolute;
    right: 10px;
    bottom: 10px;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 6px;
}

.video-body[b-pbzc5ibwaq] {
    padding: 18px 20px 22px;
}

.video-level[b-pbzc5ibwaq] {
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.video-body h3[b-pbzc5ibwaq] {
    font-size: 21px;
    margin: 8px 0 6px;
}

.video-body p[b-pbzc5ibwaq] {
    font-size: 15.5px;
    line-height: 1.5;
}

/* ===== Dark variant (prototype 151–161) ===== */
.video-card-dark[b-pbzc5ibwaq] {
    background: #38584A;
    border: 1px solid #456253;
}

.video-card-dark:hover[b-pbzc5ibwaq] {
    box-shadow: 0 18px 34px rgba(0, 0, 0, .28);
}

.video-card-dark .video-thumb[b-pbzc5ibwaq] {
    background: repeating-linear-gradient(135deg, #264034, #264034 15px, #223a2f 15px, #223a2f 30px);
}

.video-card-dark .video-play[b-pbzc5ibwaq] {
    background: var(--accent);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .3);
}

.video-card-dark .video-dur[b-pbzc5ibwaq] {
    background: rgba(20, 30, 25, .85);
}

.video-card-dark .video-level[b-pbzc5ibwaq] {
    color: #E7A98C;
}

.video-card-dark .video-body h3[b-pbzc5ibwaq] {
    color: #fff;
}

.video-card-dark .video-body p[b-pbzc5ibwaq] {
    color: #BFCDBF;
}

/* ===== Light variant (prototype 304–315) ===== */
.video-card-light[b-pbzc5ibwaq] {
    background: #fff;
    border: 1px solid var(--line);
}

.video-card-light:hover[b-pbzc5ibwaq] {
    box-shadow: 0 16px 32px rgba(38, 36, 31, .1);
    border-color: #D8CDB8;
}

.video-card-light .video-thumb[b-pbzc5ibwaq] {
    background: repeating-linear-gradient(135deg, #e9dfce, #e9dfce 14px, #e3d8c4 14px, #e3d8c4 28px);
}

.video-card-light .video-play[b-pbzc5ibwaq] {
    width: 58px;
    height: 58px;
    font-size: 24px;
    background: rgba(47, 74, 62, .94);
}

.video-card-light .video-dur[b-pbzc5ibwaq] {
    background: rgba(38, 36, 31, .82);
}

.video-card-light .video-body[b-pbzc5ibwaq] {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.video-card-light .video-level[b-pbzc5ibwaq] {
    color: var(--accent);
}

.video-card-light .video-body p[b-pbzc5ibwaq] {
    color: var(--muted);
    flex: 1;
}

.video-more[b-pbzc5ibwaq] {
    margin-top: 14px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-weight: 700;
    color: var(--green);
    font-size: 16px;
}

.video-more[b-pbzc5ibwaq]  i {
    font-size: 17px;
}

.video-thumb-img[b-pbzc5ibwaq] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* first-frame fallback: clicks must hit the card link, never the video element */
video.video-thumb-img[b-pbzc5ibwaq] {
    pointer-events: none;
}
