/*
 * Cynk Advice – 2026 Redesign
 * New stylesheet decoupled from Canvas theme.
 * Build against: Bootstrap 5.3 + custom design tokens below.
 */

/* ============================================================
   Design Tokens
   ============================================================ */
:root {
    /* Brand colours */
    --ca-primary:         #334052;
    --ca-primary-dark:    #263040;
    --ca-primary-bright:  #455c7c;
    --ca-primary-rgb:     51, 64, 82;
    --ca-bg:              #fcf2e9;
    --ca-bg-subtle:       #fcf2e9;
    --ca-bg-dark:         #ebded5;
    --ca-white:           #FCF2E9;
    --ca-text:            #333333;
    --ca-text-muted: black;
    --ca-border:          #e8e0d8;

    /* Typography – scale from design spec */
    --ca-font-body:       'Inter', sans-serif;
    --ca-font-heading:    'Pridi', serif;

    /* H1 */
    --ca-h1-size:         32px;
    --ca-h1-lh:           42px;
    --ca-h1-ls:           0.05em;

    /* H2 */
    --ca-h2-size:         32px;
    --ca-h2-lh:           46px;
    --ca-h2-ls:           0.05em;

    /* H3 */
    --ca-h3-size:         22px;
    --ca-h3-lh:           34px;
    --ca-h3-ls:           0;

    /* H4 */
    --ca-h4-size:         18px;
    --ca-h4-lh:           28px;
    --ca-h4-ls:           0;

    /* Body */
    --ca-p-size:          16px;
    --ca-p-lh:            26px;
    --ca-p-ls:            0;

    /* Caption */
    --ca-caption-size:    14px;
    --ca-caption-lh:      22px;
    --ca-caption-ls:      0;

    /* Aliases */
    --ca-font-size-base:  var(--ca-p-size);
    --ca-line-height:     var(--ca-p-lh);

    /* Spacing – navbar only (no topbar in 2026 design) */
    --ca-header-height:   72px;

    /* Radius */
    --ca-radius-sm:       6px;
    --ca-radius-md:       12px;
    --ca-radius-lg:       12px;

    /* Shadows */
    --ca-shadow-sm:       0 1px 4px rgba(0,0,0,.07);
    --ca-shadow-md:       0 4px 16px rgba(0,0,0,.10);
}

@media(max-width:768px) {
    :root {
        --ca-h1-size:         32px;
        --ca-h2-lh:           46px;
    }
}

/* ============================================================
   Base Reset / Global
   ============================================================ */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family:   var(--ca-font-body);
    font-size:     var(--ca-font-size-base);
    line-height:   var(--ca-line-height);
    color:         var(--ca-text);
    background:    #fff;
    -webkit-font-smoothing: antialiased;
}

img,
video {
    max-width: 100%;
    height: auto;
}

/* ============================================================
   Typography scale (design spec)
   Scoped to #ca-content so it never bleeds into the old shell.
   ============================================================ */
#ca-content h1 {
    font-family:    var(--ca-font-heading);
    font-weight:    400;
    font-size:      var(--ca-h1-size);
    line-height:    var(--ca-h1-lh);
    letter-spacing: var(--ca-h1-ls);
    margin-bottom:  12px;
}

#ca-content h2 {
    font-family:    var(--ca-font-heading);
    font-weight:    400;
    font-size:      var(--ca-h2-size);
    line-height:    var(--ca-h2-lh);
    letter-spacing: var(--ca-h2-ls);
    margin-bottom:  6px;
}

#ca-content h3 {
    font-family:    var(--ca-font-body);
    font-weight:    600;
    font-size:      var(--ca-h3-size);
    line-height:    var(--ca-h3-lh);
    letter-spacing: var(--ca-h3-ls);
    margin-bottom:  6px;
}

#ca-content h4 {
    font-family:    var(--ca-font-body);
    font-weight:    600;
    font-size:      var(--ca-h4-size);
    line-height:    var(--ca-h4-lh);
    letter-spacing: var(--ca-h4-ls);
    margin-bottom:  6px;
}

#ca-content h5,
#ca-content h6 {
    margin-bottom: 6px;
}

#ca-content p {
    font-family:    var(--ca-font-body);
    font-weight:    400;
    font-size:      var(--ca-p-size);
    line-height:    var(--ca-p-lh);
    letter-spacing: var(--ca-p-ls);
}

#ca-content p:last-child {
    margin-bottom: 0;
}

#ca-content .ca-caption,
#ca-content caption,
#ca-content small {
    font-family:    var(--ca-font-body);
    font-weight:    400;
    font-size:      var(--ca-caption-size);
    line-height:    var(--ca-caption-lh);
    letter-spacing: var(--ca-caption-ls);
}

/* Mobile: scale headings down slightly on small screens */
@media (max-width: 600px) {
    #ca-content h1 {
        font-size:   32px;
        line-height: 46px;
    }

    #ca-content .ca-values-left h2 {
        font-size:    32px;
        line-height: 46px;
    }

    #ca-content h2 {
        font-size:   26px;
        line-height: 39px;
    }
}

a {
    color: var(--ca-primary);
    text-decoration: none;
    transition: color .2s ease;
}

a:hover {
    color: var(--ca-primary-dark);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--ca-font-heading);
    color:       var(--ca-text);
    line-height: 1.25;
    margin-top:  0;
}

ul {
    padding-left: 1.25rem;
}

ul > li::marker {
    color:     var(--ca-primary);
    font-size: 1.2em;
}

/* ============================================================
   Header / Navigation
   ============================================================ */
.ca-header {
    position:         fixed;
    top:              0;
    left:             0;
    width:            100%;
    z-index:          1000;
    background:       #fff;
    border-bottom:    1px solid var(--ca-border);
    transition:       box-shadow .2s ease;
}

.ca-header.is-scrolled {
    box-shadow: var(--ca-shadow-md);
}

.ca-navbar {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    height:          var(--ca-header-height);
    padding:         0 2rem;
    max-width:       1200px;
    margin:          0 auto;
}

.ca-mobile-logout-btn {
    margin-top:24px;
    text-align: center;
}

.ca-brand {
    display:     flex;
    align-items: center;
    gap:         1.25rem;
    flex-shrink: 0;
    min-width:   0;
}

.ca-logo img {
    height: auto;
    width:  100px;
}

.ca-header-phone {
    display:         inline-flex;
    align-items:     center;
    gap:             0.45rem;
    font-weight:     600;
    font-size:       0.92rem;
    color:           var(--ca-primary);
    text-decoration: none;
    white-space:     nowrap;
    padding:         6px 12px 6px 1.25rem;
    margin-left:     -0.25rem;
    border-left:     1px solid var(--ca-border);
    border-radius:   var(--ca-radius-sm);
    transition:      background .2s ease, color .2s ease;
}

.ca-header-phone:hover {
    color:           var(--ca-primary-dark);
    background:      rgba(var(--ca-primary-rgb), .08);
    text-decoration: none;
}

.ca-header-phone i {
    font-size: 0.95em;
    flex-shrink: 0;
}

.ca-nav {
    display:     flex;
    align-items: center;
    gap:         2rem;
    list-style:  none;
    margin:      0;
    padding:     0;
}

.ca-nav a {
    font-weight:   600;
    font-size:     .9rem;
    color:         var(--ca-text);
    white-space:   nowrap;
    padding:       4px 0;
    border-bottom: 2px solid transparent;
    transition:    border-color .2s ease, color .2s ease;
}

.ca-nav a:hover,
.ca-nav a.active {
    color:         var(--ca-primary);
    border-color:  var(--ca-primary);
}

.ca-nav-btn {
    background:    var(--ca-primary);
    color: var(--ca-white) !important;
    border:        none;
    border-radius: var(--ca-radius-sm);
    padding:       8px 20px !important;
    border-bottom: none !important;
    transition:    background .2s ease !important;
}

.ca-nav-btn:hover {
    background: var(--ca-primary-dark) !important;
    color: var(--ca-white) !important;
}

/* Mitt Cynk nav: desktop shows the button last, mobile shows the dropdown first */
.ca-nav-mitt-cynk-mobile  { display: none; }
.ca-nav-mitt-cynk-desktop { order: 999; }

/* Mobile hamburger */
.ca-hamburger {
    display:    none;
    background: none;
    border:     none;
    cursor:     pointer;
    padding:    4px;
}

.ca-hamburger span {
    display:          block;
    width:            24px;
    height:           2px;
    background:       var(--ca-text);
    margin:           5px 0;
    border-radius:    2px;
    transition:       transform .3s cubic-bezier(.23,1,.32,1), opacity .3s ease, background .3s ease;
}

/* X state – top line rotates down, middle fades out, bottom line rotates up */
.ca-hamburger.is-open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.ca-hamburger.is-open span:nth-child(2) {
    opacity:   0;
    transform: scaleX(0);
}
.ca-hamburger.is-open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* Dropdown */
.ca-dropdown {
    position: relative;
}

.ca-dropdown-menu {
    visibility:    hidden;
    opacity:       0;
    /* Delay hiding by 150ms so the mouse can travel into the menu */
    transition:    opacity .15s ease, visibility 0s linear .15s;
    position:      absolute;
    top:           100%;
    left:          50%;
    transform:     translateX(-50%);
    background:    #fff;
    border:        1px solid var(--ca-border);
    border-radius: var(--ca-radius-md);
    box-shadow:    var(--ca-shadow-md);
    overflow:      hidden;
    /* No container padding – first/last items carry the inset so hover fills
       flush to the rounded corners without leaving a white gap */
    padding:       0;
    min-width:     220px;
    z-index:       100;
    list-style:    none;
    margin:        0;
}

.ca-dropdown:hover .ca-dropdown-menu,
.ca-dropdown:focus-within .ca-dropdown-menu {
    visibility: visible;
    opacity:    1;
    /* Show immediately, no delay */
    transition: opacity .15s ease, visibility 0s;
}

.ca-dropdown-menu li a {
    display:     block;
    padding:     10px 20px;
    color:       var(--ca-text);
    font-size:   .9rem;
    font-weight: 500;
    border:      none;
}

/* Bridge gap at top: padding-top replaces the old container padding-top (16px)
   so the mouse hover area is preserved and the hover fill starts flush at the top */
.ca-dropdown-menu li:first-child a {
    padding-top: 26px;
}

/* Match the old 8px container bottom padding on the last item */
.ca-dropdown-menu li:last-child a {
    padding-bottom: 18px;
}

.ca-dropdown-menu li a:hover {
    background: var(--ca-primary);
    color:      var(--ca-white);
}

/* ============================================================
   Page Content Area
   ============================================================ */
#ca-content {
    padding-top: calc(var(--ca-header-height) + 40px);
    min-height:  70vh;
}

/* ============================================================
   Buttons
   ============================================================ */
.ca-btn {
    display:          inline-flex;
    align-items:      center;
    justify-content:  center;
    gap:              8px;
    font-family:      var(--ca-font-body);
    font-weight:      600;
    font-size:        .95rem;
    padding:          12px 28px;
    border-radius:    var(--ca-radius-sm);
    border:           none;
    cursor:           pointer;
    transition:       background .2s ease, color .2s ease, box-shadow .2s ease;
    text-decoration:  none;
    white-space:      nowrap;
}

.ca-btn-grp {
    margin-top:30px !important;
}

.ca-btn-primary {
    background: var(--ca-primary);
    color: var(--ca-white);
}

.ca-btn-primary:hover {
    background: var(--ca-primary-dark);
    color: var(--ca-bg-dark);
    box-shadow: 0 4px 12px rgba(var(--ca-primary-rgb), .35);
}

.ca-btn-beige {
    background: var(--ca-bg);
    color:      var(--ca-primary);
}

.ca-btn-beige:hover {
    background: var(--ca-bg-dark);
    color:      var(--ca-primary);
}

.ca-btn-outline {
    background:    transparent;
    color:         var(--ca-primary);
    border:        2px solid var(--ca-primary);
}

.ca-btn-outline:hover {
    background: var(--ca-primary);
    color: var(--ca-white);
}

/* Pill modifier — fully rounded, auto-width, left-anchored in flex columns */
.ca-btn--pill {
    border-radius: 9999px;
    align-self:    flex-start;
}

/* ============================================================
   Footer
   ============================================================ */
.ca-footer {
    background:  var(--ca-bg-dark);
    border-top:  1px solid var(--ca-border);
    padding-top: 60px;
}

.ca-footer-inner {
    display:         flex;
    gap:             4rem;
    max-width:       1200px;
    margin:          0 auto;
    padding:         0 2rem;
    align-items:     flex-start;
}

/* Brand column – fixed width on the left */
.ca-footer-brand {
    flex:        0 0 270px;
}

.ca-footer-brand img {
    height:        auto;
    width:         140px;
    margin-bottom: 20px;
    display:       block;
}

.ca-footer-brand p {
    margin-bottom: 6px;
    font-size:     .9rem;
}

.ca-footer-address {
    font-size:  .85rem !important;
    color:      var(--ca-text-muted);
    margin-top: 4px;
}

.ca-footer-socials {
    display:    flex;
    gap:        12px;
    margin-top: 14px;
}

.ca-footer-socials a {
    color:       var(--ca-primary);
    font-size:   1.2rem;
    line-height: 1;
    border:      none;
}

.ca-footer-socials a:hover {
    color: var(--ca-primary-dark);
}

/* Link columns – fill remaining space */
.ca-footer-links {
    display:                 grid;
    grid-template-columns:   1fr 0.5fr 1fr;
    gap:                     3rem;
    margin-left:auto;
}

.ca-footer-col {
    min-width: 0;
    overflow-wrap: break-word;
}

.ca-footer-heading {
    font-family:   var(--ca-font-body);
    font-weight:   700;
    font-size:     .8rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color:         var(--ca-text-muted);
    margin-bottom: 14px;
}

.ca-footer-col ul {
    list-style: none;
    padding:    0;
    margin:     0;
}

.ca-footer-col ul li {
    margin-bottom: 10px;
    font-size:     .9rem;
    color:         var(--ca-text);
}

.ca-footer-col ul li::marker {
    content: none;
}

.ca-footer-col ul li a {
    color:         var(--ca-text);
    border-bottom: none;
}

.ca-footer-col ul li a:hover {
    color: var(--ca-primary);
}

.ca-footer-bottom {
    margin-top:   48px;
    padding:      16px 0;
    border-top:   1px solid var(--ca-border);
    font-size:    .85rem;
    color:        var(--ca-text-muted);
}

.ca-footer-bottom-inner {
    max-width: 1200px;
    margin:    0 auto;
    padding:   0 2rem;
}

/* Footer – mobile: lists on top, brand on bottom */
@media (max-width: 767px) {

    .ca-footer {
        padding-top: 30px;
    }
    .ca-footer-inner {
        flex-direction:  column;
        gap:             2.5rem;
    }

    .ca-footer-brand {
        flex:       0 0 auto;
        width:      100%;
        padding-top: 0;
        border-top: 1px solid var(--ca-border);
    }

    .ca-footer-brand img {
        margin: auto;
        margin-bottom:60px;
    }

    .ca-footer-links {
        grid-template-columns: 1fr;
        gap:                   1.5rem;
        margin-left:unset;
    }

    .ca-footer-col {
        width: 100%;
    }
}

/* ============================================================
   Page: dynamic_start (2026)
   ============================================================ */

/* --- Hero --- */
.ca-hero {
    position:            relative;
    width:               100%;
    min-height:          580px;
    background-color:    var(--ca-primary);        /* fallback colour if image missing */
    background-size:     cover;
    background-position: center;
    background-repeat:   no-repeat;
    display:             flex;
    align-items:         center;
    /* Pull the section flush against the fixed navbar by negating #ca-content's padding */
    margin-top: calc(-1 * (var(--ca-header-height) + 40px));
}

/* Dark scrim – fades left-to-right so the card stays readable */
.ca-hero::after {
    content:    '';
    position:   absolute;
    inset:      0;
    background: linear-gradient(
        to right,
        rgba(0,0,0,.45) 0%,
        rgba(0,0,0,.15) 55%,
        rgba(0,0,0,.0)  100%
    );
    pointer-events: none;
}

.ca-hero-inner {
    position:  relative;
    z-index:   1;
    width:     100%;
    max-width: 1200px;
    margin:    0 auto;
    /* Top padding = navbar height + offset so the card clears the navbar */
    padding:   calc(var(--ca-header-height) + 80px) 18px 80px;
}

/* Content card – brand blue, left-aligned */
.ca-hero-card {
    background:    var(--ca-primary);
    border-radius: var(--ca-radius-lg);
    padding:       2.75rem 2.5rem;
    max-width:     520px;
    box-shadow:    0 8px 40px rgba(0,0,0,.25);
}

/* Duplicate card rendered below the hero section; hidden on desktop */
.ca-hero-card--below {
    display: none;
}

.ca-hero-card .ca-hero-title {
    font-size:     clamp(1.8rem, 3.5vw, 2.8rem);
    color: var(--ca-white);
    margin-bottom: 1rem;
    line-height:   1.2;
}

.ca-hero-card .ca-hero-sub,
.ca-hero-card .ca-hero-sub p,
.ca-hero-card p {
    font-size:     1rem;
    color: var(--ca-white);
    line-height:   var(--ca-line-height);
}

/* Buttons inside the hero card – beige, full width */
.ca-hero-card .ca-btn-primary {
    background:      var(--ca-bg);
    color:           var(--ca-primary);
    width:           100%;
    justify-content: center;
}

.ca-hero-card .ca-btn-primary:hover {
    background: var(--ca-bg-dark);
    color:      var(--ca-primary-dark);
    box-shadow: none;
}

/* Two-button layout for service pages – side by side */
.ca-hero-service-btns {
    display: flex;
    gap:     .75rem;
}

.ca-hero-service-btns .ca-btn {
    flex:            1;
    justify-content: center;
}

/* "Beställ tjänst" – solid primary blue, stands out against beige sibling */
.ca-btn-hero-solid {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    gap:             8px;
    font-family:     var(--ca-font-body);
    font-weight:     600;
    font-size:       .95rem;
    padding:         12px 28px;
    border-radius:   var(--ca-radius-sm);
    border:          none;
    cursor:          pointer;
    text-decoration: none;
    white-space:     nowrap;
    background:      var(--ca-primary-dark);
    color: var(--ca-white);
    transition:      background .2s ease, box-shadow .2s ease;
    flex:            1;
}

.ca-btn-hero-solid:hover {
    background: var(--ca-primary-dark);
    color: var(--ca-white);
    box-shadow: 0 4px 12px rgba(0,0,0,.25);
}

.ca-btn-hero-solid.ca-btn--pill {
    border-radius: 9999px;
}

/* Price badge – top of the service hero card */
.ca-hero-price-badge {
    display:         inline-block;
    background:      var(--ca-primary-bright);
    color: var(--ca-white);
    font-family:     var(--ca-font-body);
    font-size:       18px;
    font-weight:     600;
    padding:         4px 12px;
    border-radius:   var(--ca-radius-sm);
    margin-bottom:   1.25rem;
    letter-spacing:  .02em;
}

/* --- USP strip --- */
.ca-usp {
    background:  #fff;
    padding:     48px 0;
}

.ca-usp-inner {
    max-width:   1200px;
    margin:      0 auto;
    padding:     0 2rem;
}

.ca-usp-list {
    list-style:  none;
    padding:     0;
    margin:      0;
    width:       100%;
    display:     grid;
    grid-template-columns: repeat(2, 1fr);
    gap:         1.5rem 3rem;
}

.ca-usp-list li {
    display:     flex;
    gap:         12px;
    font-size:   16px;
    font-weight: 400;
    color:       var(--ca-text);
}

.ca-usp-list li::marker {
    content: none;
}

.ca-usp-list li .bi-check-circle-fill {
    color:      var(--ca-primary);
    font-size:  1.1rem;
    flex-shrink: 0;
}

@media (max-width: 575px) {
    .ca-usp {
        padding: 36px 0;
    }

    .ca-usp-inner {
        padding: 0 1.25rem;
    }

    .ca-usp-list {
        gap: 1.25rem 1.5rem;
    }
}

/* --- About strip --- */
.ca-about {
    background: #fff;
}

.ca-about-inner {
    display:     flex;
    align-items: center;
    gap:         4rem;
    max-width:   1200px;
    margin:      0 auto;
    padding:     0 18px;
}

.ca-about-image {
    flex:      0 0 420px;
    max-width: 420px;
}

.ca-about-image img {
    width:         100%;
    border-radius: var(--ca-radius-lg);
    object-fit:    cover;
}

.ca-about-text {
    flex: 1;
}

.ca-about-text h2 {
    margin-bottom: 1rem;
}

.ca-prose {
    color:       var(--ca-text);
    line-height: var(--ca-line-height);
}

/* --- Services – alternating rows --- */
.ca-services-section {
    background: var(--ca-primary);
    padding:    80px 0;
}

/* ============================================================
   Feature split section – unified layout classes
   Template:
     <section class="ca-[name]">
       <div class="ca-fsplit">
         <div class="ca-fsplit-row">
           <div class="ca-fsplit-img"><img ...></div>
           <div class="ca-fsplit-body"><h2>…</h2><p>…</p><a>…</a></div>
         </div>
         <div class="ca-fsplit-row ca-fsplit-row--reversed">…</div>
       </div>
     </section>
   ============================================================ */
.ca-fsplit {
    max-width:      1200px;
    margin:         0 auto;
    padding:        0 18px;
    display:        flex;
    flex-direction: column;
    gap:            2rem;
}

.ca-fsplit-row {
    display:     flex;
    align-items: stretch;
    gap:         24px;
    min-height: 300px;
}

.ca-fsplit-row--reversed {
    flex-direction: row-reverse;
}

.ca-fsplit-img {
    position:      relative;
    flex:          0 0 400px;
    overflow:      hidden;
    border-radius: var(--ca-radius-lg);
}

.ca-fsplit-img img {
    position:      absolute;
    inset:         0;
    width:         100%;
    height:        100%;
    object-fit:    cover;
    display:       block;
    border-radius: var(--ca-radius-lg);
}

.ca-fsplit-body {
    flex:           1;
    border-radius:  var(--ca-radius-lg);
    padding:        2.5rem;
    display:        flex;
    flex-direction: column;
    justify-content: center;
}

.ca-fsplit-body > .ca-caption-badge {
    align-self:  flex-start;
    width:       fit-content;
}

.ca-fsplit-text,
.ca-fsplit-text p {
    flex:          1;
}

/* --- Section colour overrides --- */

/* Start page: dark blue boxes, white text */
.ca-services-section .ca-fsplit-body {
    background: var(--ca-primary-dark);
}
.ca-services-section .ca-fsplit-body h3 {
    color: var(--ca-white);
    margin-bottom: 1rem;
}
.ca-services-section .ca-fsplit-text,
.ca-services-section .ca-fsplit-text p {
    color:       rgba(255,255,255,.85);
    font-size:   16px;
    line-height: var(--ca-line-height);
    font-weight:500;
}

/* Hjalpcenter guides: dark blue boxes, white text */
.ca-hc-guides .ca-fsplit-body {
    background: var(--ca-primary);
}
.ca-hc-guides .ca-fsplit-body h2,
.ca-hc-guides .ca-fsplit-body h3 {
    color: var(--ca-white);
}
.ca-hc-guides .ca-fsplit-body p {
    color: rgba(255,255,255,.85);
}

/* Kontakta blocks: beige boxes, dark text */
.ca-contact-blocks .ca-fsplit-body {
    background: var(--ca-bg);
}
.ca-contact-blocks .ca-fsplit-body h2,
.ca-contact-blocks .ca-fsplit-body h3 {
    color: var(--ca-primary);
}
.ca-contact-blocks .ca-fsplit-body p {
    color: var(--ca-text);
}

/* Service-link button (start page only) */
.ca-btn-service-link {
    display:         inline-flex;
    align-items:     center;
    background:      var(--ca-bg);
    color:           var(--ca-primary);
    font-family:     var(--ca-font-body);
    font-weight:     600;
    font-size:       .9rem;
    padding:         10px 22px;
    border-radius:   9999px;
    border:          none;
    align-self:      flex-start;
    cursor:          pointer;
    transition:      background .2s ease, color .2s ease;
    text-decoration: none;
    margin-top:      auto;
}
.ca-btn-service-link:hover,
.ca-fsplit-row.is-active .ca-btn-service-link {
    background: var(--ca-bg-dark);
    color:      var(--ca-primary-dark);
}
.ca-fsplit-row.is-active .ca-fsplit-body {
    outline: 3px solid var(--ca-bg);
}

/* ============================================================
   Expanded service detail panel
   ============================================================ */
.ca-service-detail {
    background:   var(--ca-bg);
    overflow:     hidden;
    max-height:   0;
    transition:   max-height .45s ease, padding .45s ease, opacity .3s ease;
    opacity:      0;
}

.ca-service-detail.is-open {
    max-height: 600px;   /* generous upper bound for transition */
    opacity:    1;
    padding:    60px 0;
}

.ca-service-detail-inner {
    display:     flex;
    gap:         4rem;
    align-items: flex-start;
    max-width:   1200px;
    margin:      0 auto;
    padding:     0 18px;
}

.ca-service-detail-left {
    flex:           1 1 50%;
    display:        flex;
    flex-direction: column;
    gap:            1rem;
}

.ca-service-detail-title {
    color:       var(--ca-text);
    font-size:   1.5rem;
    margin:      0;
    line-height: 1.25;
}

.ca-service-detail-sub {
    color:     var(--ca-text-muted);
    font-size: .95rem;
    margin:    0;
}

.ca-btn-detail-link {
    display:         inline-flex;
    align-items:     center;
    background:      var(--ca-primary);
    color: var(--ca-white);
    font-family:     var(--ca-font-body);
    font-weight:     600;
    font-size:       .875rem;
    padding:         9px 20px;
    border-radius:   var(--ca-radius-sm);
    transition:      background .2s ease;
    text-decoration: none;
    align-self:      flex-start;
    margin-top:      .5rem;
}

.ca-btn-detail-link:hover {
    background: var(--ca-primary-dark);
    color: var(--ca-white);
}

.ca-service-detail-blocks {
    flex:           1 1 50%;
    display:        flex;
    flex-direction: column;
    gap:            1rem;
}

.ca-detail-block {
    background:    var(--ca-bg-dark);
    border-radius: var(--ca-radius-md);
    padding:       1.25rem 1.5rem;
}

.ca-detail-block-title {
    color:         var(--ca-text);
    font-family:   var(--ca-font-body);
    font-size:     1rem;
    font-weight:   700;
    margin-bottom: .4rem;
}

.ca-detail-block-content {
    color:       var(--ca-text-muted);
    font-size:   .875rem;
    margin:      0;
    line-height: 1.6;
}

@media (max-width: 991px) {
    .ca-service-detail-inner {
        flex-direction: column;
        gap:            2rem;
    }

    .ca-service-detail-left {
        flex: 0 0 auto;
    }

    .ca-service-detail-blocks {
        grid-template-columns: 1fr;
    }

    .ca-service-detail.is-open {
        max-height: 1200px;
    }
}

/* ============================================================
   Page: dynamic_service (2026)
   ============================================================ */

/* --- Process section --- */
/* ca-values modifier: image on the left column instead of text */
.ca-values-left--img {
    position:      relative;
    overflow:      hidden;
    border-radius: var(--ca-radius-lg);
}

.ca-values-left--img img {
    position:   absolute;
    inset:      0;
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
}

/* Section heading sitting above the item cards in the right column */
.ca-values-right-header {
    margin-bottom: .25rem;
}

@media (max-width: 767px) {
    .ca-values-left--img {
        order:  2;
        height: 260px;
    }

    .ca-values-right {
        order: 1;
    }

    .ca-values-left--img img {
        /* fills the 260px container via position:absolute on parent */
    }

    .ca-services-section {
        background: white;
        padding-top:0;
        padding-bottom:42px;
    }
}

/* --- Main content --- */
.ca-svc-content {
    background: #fff;
    padding:    72px 0;
}

.ca-svc-content-inner {
    max-width:      760px;
    margin:         0 auto;
    padding:        0 2rem;
    display:        flex;
    flex-direction: column;
    gap:            2rem;
}

.ca-svc-about1,
.ca-svc-about2 {
    color:       var(--ca-text);
    line-height: var(--ca-line-height);
}

.ca-svc-about1 p,
.ca-svc-about2 p {
    margin-bottom: 1rem;
}

/* USP list – 2-column grid */
.ca-svc-usps {
    list-style:            none;
    padding:               0;
    margin:                0;
    display:               grid;
    grid-template-columns: 1fr 1fr;
    gap:                   12px 2rem;
}

.ca-svc-usps li {
    display:     flex;
    align-items: center;
    gap:         10px;
    font-weight: 600;
    font-size:   .95rem;
    color:       var(--ca-text);
}

.ca-svc-usps li::marker { content: none; }

.ca-svc-usps li .bi-check-circle-fill {
    color:       var(--ca-primary);
    font-size:   1.1rem;
    flex-shrink: 0;
}

.ca-svc-contact-btn {
    padding-top: .5rem;
}

/* --- Steps flow --- */
.ca-steps-section {
    background: var(--ca-primary);
    padding:    72px 0;
}

.ca-steps-inner {
    max-width: 1200px;
    margin:    0 auto;
    padding:   0 2rem;
}

/* Centred header */
.ca-steps-header--centered {
    text-align:    center;
    max-width:     680px;
    margin:        0 auto 3.5rem;
}

.ca-steps-header--centered h2 {
    color: var(--ca-white);
    margin-bottom: 1rem;
}

.ca-steps-sub,
.ca-steps-sub p {
    color:     rgba(255,255,255,.8);
    font-size: 1rem;
}

/* Steps flow — desktop: each step is a column (icon above text) */
.ca-steps-flow {
    display:       flex;
    align-items:   flex-start;
    gap:           30px;
    margin-bottom: 3rem;
}

/* One column per step */
.ca-step-col {
    flex:           1;
    display:        flex;
    flex-direction: column;
    align-items:    flex-start;
    gap:            .75rem;
    min-width:      0;
}

/* Icon slot: flex row so the ::after connector grows naturally as a flex child */
.ca-step-icon-slot {
    display:     flex;
    align-items: center;
    width:       100%;
}

/* Desktop horizontal connector: flex child that fills remaining column width */
@media (min-width: 769px) {
    .ca-step-col:not(.ca-step-col--last) .ca-step-icon-slot::after {
        content:     '';
        flex:        1;
        height:      3px;
        background:  #597396;
        margin-left: 30px; /* small gap between circle and line */
    }
}

/* Icon circle */
.ca-step-circle {
    width:           52px;
    height:          52px;
    border-radius:   50%;
    background:      var(--ca-primary-bright);
    color:           var(--ca-white);
    display:         flex;
    align-items:     center;
    justify-content: center;
    font-size:       1.3rem;
    flex-shrink:     0;
}

/* Material Symbols renders slightly larger by default — normalise to match Material Icons */
.ca-step-circle .material-symbols-outlined {
    font-size:               24px;
    font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* Step text */
.ca-step-text {
    min-width: 0;
}

.ca-step-text h4 {
    color:         var(--ca-white);
    font-family:   var(--ca-font-body);
    font-size:     .95rem;
    font-weight:   700;
    margin-bottom: .5rem;
    line-height:   1.3;
}

.ca-step-text p {
    color:       rgba(255,255,255,.75);
    font-size:   .85rem;
    margin:      0;
    line-height: 1.55;
}

.ca-steps-cta {
    display:         flex;
    justify-content: center;
    gap:             1rem;
    flex-wrap:       wrap;
}

.ca-steps-cta .ca-btn-primary {
    background: var(--ca-bg);
    color:      var(--ca-primary);
}

.ca-steps-cta .ca-btn-primary:hover {
    background: #fff;
    color:      var(--ca-primary-dark);
    box-shadow: none;
}

/* Mobile: steps – each step-col becomes a 2-col grid (icon left, text right) */
@media (max-width: 768px) {
    .ca-steps-flow {
        flex-direction: column;
        gap:            0;
        margin-bottom:  2rem;
    }

    #ca-content .ca-faq-inner p {
        max-width: 100%;
    }

    /* Each step-col: 2-column grid so circle and text sit side-by-side */
    .ca-step-col {
        display:               grid;
        grid-template-columns: 52px 1fr;
        column-gap:            1rem;
        align-items:           start;
        position:              relative;
        flex:                  unset;
        gap:                   0;
        padding-bottom:        1rem;
    }

    .ca-step-col--last {
        padding-bottom: 0;
    }

    .ca-step-icon-slot {
        grid-column: 1;
        grid-row:    1;
        display:     flex;
        align-items: flex-start;
    }

    .ca-step-circle {
        z-index: 2;
    }

    /* Vertical connector: bottom of circle → bottom of the col's padding-bottom gap */
    .ca-step-col:not(.ca-step-col--last)::after {
        content:    '';
        position:   absolute;
        left:       26px;
        transform:  translateX(-50%);
        top:        52px;
        bottom:     0;
        width:      3px;
        background: #597396;
        z-index:    1;
    }

    .ca-step-text {
        grid-column: 2;
        grid-row:    1;
        align-self:  start;
        text-align:  left;
        padding:     0;
        margin-left:18px;
    }
}

/* --- Info blocks --- */
.ca-info-blocks {
    background: #fff;
    padding:    72px 0;
    border-top: 1px solid var(--ca-border);
}

.ca-info-blocks-inner {
    max-width: 1200px;
    margin:    0 auto;
    padding:   0 2rem;
}

.ca-info-blocks-header {
    margin-bottom: 2.5rem;
}

.ca-info-blocks-header h2 {
    margin-bottom: .6rem;
}

.ca-info-blocks-header p {
    color:     var(--ca-text-muted);
    max-width: 600px;
    margin:    0;
}

.ca-info-blocks-grid {
    display:               grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap:                   12px;
}

.ca-info-block {
    background:    var(--ca-bg-dark);
    border-radius: var(--ca-radius-md);
    padding:       2rem 1.75rem;
}

.ca-info-block-icon-wrap {
    width:           44px;
    height:          44px;
    border-radius:   50%;
    background:      var(--ca-primary);
    display:         flex;
    align-items:     center;
    justify-content: center;
    margin-bottom:   60px;
    flex-shrink:     0;
}

.ca-info-block-icon {
    font-size:      1.25rem;
    color:          #fff;
    letter-spacing: 0;
    line-height:    1;
}

.ca-info-block-title {
    font-family:   var(--ca-font-heading);
    font-size:     1.15rem;
    color:         var(--ca-text);
    margin-bottom: .75rem;
}

.ca-info-block-content {
    font-size:   .9rem;
    color:       var(--ca-text-muted);
    margin:      0;
    line-height: var(--ca-line-height);
}

@media (max-width: 767px) {
    .ca-info-blocks-grid {
        grid-template-columns: 1fr;
    }
    .ca-info-blocks {
        padding: 42px 0;
    }

    .ca-info-blocks-inner {
        padding: 0 18px;
    }

    .ca-info-block-icon-wrap {
        margin-bottom: 24px;
    }
}

/* --- FAQ section --- */
.ca-faq {
    background: var(--ca-bg);
    padding: 72px 0;
}

.ca-faq-inner {
    max-width: 860px;
    margin: 0 auto;
    padding: 0 24px;
}

.ca-faq-inner p {
    max-width:50%;
}

.ca-faq-title {
    font-family: var(--ca-font-heading);
    color: var(--ca-primary);
    margin-bottom: 40px;
}

.ca-faq-accordion {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom:10px;
}

.ca-faq-item {
    border: 1px solid #dac9b5 !important;
    border-radius: 6px !important;
    overflow: hidden;
    margin-bottom: 0;
    background: var(--ca-bg-dark);
}

.ca-faq-btn {
    font-family: var(--ca-font-body);
    font-size: 16px;
    font-weight: 500;
    line-height: 26px;
    color: var(--ca-text);
    background: var(--ca-bg-dark);
    padding: 18px;
    box-shadow: none !important;
}

.ca-faq-btn:not(.collapsed) {
    color: var(--ca-primary);
    background: var(--ca-bg-dark);
    box-shadow: none !important;
}

.ca-faq-btn::after {
    margin-left:12px;
    filter: none;
    color: var(--ca-primary);
}

.ca-faq-btn:focus {
    box-shadow: none !important;
}

.ca-faq-footer {
    text-align: center;
}

.ca-faq-body {
    background: var(--ca-bg-dark);
    color: var(--ca-text);
    padding: 0px 24px 28px;
    font-size: 0.97rem;
    line-height: 1.7;
}

/* --- Related services --- */
.ca-related {
    background: var(--ca-bg);
    padding:    72px 0;
}

.ca-related-inner {
    max-width: 1200px;
    margin:    0 auto;
    padding:   0 2rem;
}

.ca-related-title {
    font-family:   var(--ca-font-heading);
    color:         var(--ca-primary);
    text-align:    center;
    margin-bottom: 2.5rem;
}

.ca-related-grid {
    display:               grid;
    grid-template-columns: repeat(2, 1fr);
    gap:                   12px;
}

.ca-related-card {
    border-radius:   var(--ca-radius-md);
    overflow:        hidden;
    display:         flex;
    flex-direction:  column;
    text-decoration: none;
    color:           inherit;
    transition:      transform .2s ease, box-shadow .2s ease;
}

.ca-related-card:hover {
    transform:  translateY(-4px);
    box-shadow: var(--ca-shadow-md);
}

.ca-related-card-img {
    height:   240px;
    overflow: hidden;
    flex-shrink: 0;
}

.ca-related-card-img img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
    transition: transform .35s ease;
}

.ca-related-card:hover .ca-related-card-img img {
    transform: scale(1.05);
}

.ca-related-card-body {
    background:     var(--ca-primary-bright);
    padding:        1.75rem;
    flex:           1;
    display:        flex;
    flex-direction: column;
}

.ca-related-card-body h3 {
    font-family:   var(--ca-font-heading);
    font-size:     1.15rem;
    color: var(--ca-white);
    margin-bottom: .65rem;
}

#ca-content .ca-related-card-body p {
    color:         rgba(255,255,255,.75);
    font-size:     16px;
    line-height:   26px;
    font-weight:500;
    flex:          1;
    margin-bottom: 1.25rem;
}

.ca-related-link {
    display:     inline-flex;
    align-items: center;
    gap:         .35rem;
    color:       var(--ca-bg);
    font-size:   18px;
    font-weight: 600;
    align-self:  flex-start;
    transition:  gap .2s ease;
}

.ca-related-card:hover .ca-related-link {
    gap: .6rem;
}

/* --- Support section --- */
.ca-support {
    background: #fff;
    padding:    72px 0;
    border-top: 1px solid var(--ca-border);
}

.ca-support-inner {
    max-width:   1200px;
    margin:      0 auto;
    padding:     0 18px;
    display:     flex;
    align-items: center;
    gap:         4rem;
}

.ca-support-text {
    flex: 1;
}

.ca-support-title {
    font-family:   var(--ca-font-heading);
    color:         var(--ca-primary);
    font-size:     clamp(1.3rem, 2.2vw, 1.75rem);
    margin-bottom: 1.25rem;
}

.ca-support-body {
    color:       var(--ca-text);
    font-size:   1rem;
    line-height: 1.8;
    margin:      0 0 30px;
}

.ca-support-bullets {
    list-style:     none;
    padding:        0;
    margin:         0;
    display:        flex;
    flex-direction: column;
    gap:            .7rem;
}

.ca-support-bullets li {
    display:     flex;
    align-items: center;
    gap:         .75rem;
    font-size:   .95rem;
    color:       var(--ca-text);
}

.ca-support-bullets li::before {
    content:             '';
    display:             inline-flex;
    flex-shrink:         0;
    width:               22px;
    height:              22px;
    border-radius:       50%;
    background-color:    var(--ca-primary);
    background-image:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpolyline points='1,5.5 4,8.5 11,1.5' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:   no-repeat;
    background-position: center;
    background-size:     12px;
}

.ca-support-image {
    flex:          0 0 420px;
    border-radius: var(--ca-radius-lg);
    overflow:      hidden;
    min-height:    340px;
}

.ca-support-image img {
    width:      100%;
    height:     100%;
    min-height: 340px;
    object-fit: cover;
    display:    block;
}

/* --- Service CTA section --- */
.ca-svc-cta {
    background: var(--ca-primary);
    padding:    80px 0;
}

.ca-svc-cta-inner {
    max-width:       760px;
    margin:          0 auto;
    padding:         0 2rem;
    display:         flex;
    flex-direction:  column;
    align-items:     center;
    text-align:      center;
}

.ca-svc-cta-title {
    font-family:   var(--ca-font-heading);
    color:         var(--ca-white);
    font-size:     clamp(1.3rem, 2.2vw, 1.75rem);
    margin:        0;
}

.ca-svc-cta-text {
    color:       var(--ca-white);
    font-size:   .97rem;
    line-height: 1.75;
    margin:      0;
}

.ca-svc-cta-actions {
    display:         flex;
    flex-direction:  row;
    gap:             1rem;
    justify-content: center;
    flex-wrap:       wrap;
}

.ca-btn-svc-cta {
    min-width:       200px;
    text-align:      center;
    justify-content: center;
}

/* "Boka" button in the service CTA — beige */
.ca-svc-cta .ca-btn-primary {
    background:   var(--ca-bg);
    color:        var(--ca-primary);
    border-color: var(--ca-bg);
}
.ca-svc-cta .ca-btn-primary:hover {
    background:   var(--ca-bg-dark);
    border-color: var(--ca-bg-dark);
}

/* "Beställ" button in the service CTA — brighter blue */
.ca-svc-cta .ca-btn-hero-solid {
    background:   var(--ca-primary-bright);
    border-color: var(--ca-primary-bright);
    color: var(--ca-white);
}
.ca-svc-cta .ca-btn-hero-solid:hover {
    background:   var(--ca-primary);
    border-color: var(--ca-primary);
}

/* Responsive: dynamic_service */
@media (max-width: 767px) {
    .ca-svc-usps {
        grid-template-columns: 1fr;
    }

    .ca-steps-inner {
        padding: 0 18px;
    }

    .ca-steps-grid {
        grid-template-columns: 1fr;
    }

    .ca-related-grid {
        grid-template-columns: 1fr;
    }

    .ca-support-inner {
        flex-direction: column-reverse;
        gap:            30px;
    }

    .ca-support-image {
        flex:  unset;
        width: 100%;
    }

    .ca-svc-cta-actions {
        flex-direction: column;
        width:          100%;
    }

    .ca-btn-svc-cta {
        width: 100%;
    }
}

/* ============================================================ */

/* --- Partner & statistics strip --- */
/* ============================================================
   Values / benefits strip
   ============================================================ */
.ca-values {
    background: var(--ca-bg);
    padding:    60px 0;
}

.ca-values-inner {
    display:     flex;
    align-items: stretch;
    gap:         12px;
    max-width:   1200px;
    margin:      0 auto;
    padding:     0 18px;
}

.ca-values-left {
    flex:            1;
    display:         flex;
    flex-direction:  column;
    justify-content: center;
}

#ca-content .ca-values-title {
    margin-bottom: 6px;
}

.ca-values-sub {
    color:       var(--ca-text-muted);
    font-size:   .95rem;
    line-height: 1.6;
    margin:      0;
    margin-bottom:24px;
    max-width:80%
}

.ca-values-right {
    flex:           1;
    display:        flex;
    flex-direction: column;
    gap:            12px;
    min-width:      0;
}

.ca-value-item {
    background:    var(--ca-bg-dark);
    border-radius: var(--ca-radius-md);
    padding:       24px 18px;
}

.ca-value-icon {
    display:       block;
    width:         28px;
    height:        28px;
    margin-bottom: 24px;
}

.ca-value-title {
    font-size:     1rem;
    font-weight:   600;
    margin-bottom: .35rem;
    color:         var(--ca-text);
}

.ca-value-text {
    font-size:   .9rem;
    line-height: 1.6;
    color:       var(--ca-text-muted);
    margin:      0;
}

@media (max-width: 767px) {
    .ca-values-inner {
        flex-direction: column;
        padding: 0 18px;
    }

    .ca-faq {
        padding: 42px 0;
    }

    .ca-support-inner {
        padding: 0 18px;
    }

    .ca-svc-cta-inner {
        padding: 0 18px;
    }

    .ca-related-inner {
        padding: 0 18px;
    }

    .ca-values {
        padding:    42px 0;
    }

    .ca-support {
        padding: 42px 0;
    }

    .ca-faq-footer .ca-btn {
        width:100%;
    }

    .ca-values-left {
        flex: none;
        text-align: center;
    }

    #ca-content .ca-values-title {
        margin-bottom:6px;
        font-size: var(--ca-h2-size);
        line-height: var(--ca-h2-lh);
        letter-spacing: var(--ca-h2-ls);
    }

}

/* ============================================================
   Partner & statistics strip
   ============================================================ */
.ca-partners {
    background: #fff;
    padding:    60px 0;
    border-top: 1px solid var(--ca-border);
}

.ca-partners-inner {
    display:     flex;
    align-items: center;
    gap:         4rem;
    max-width:   1200px;
    margin:      0 auto;
    padding:     0 18px;
}

/* Left column always holds text + stats */
.ca-partners-left {
    flex:    1;
    display: flex;
    gap:     3rem;
    align-items: center;
}

/* Without image: text takes most space, stats sit to its right */
.ca-partners-text {
    flex: 1;
}

#ca-content .ca-partners-text h3 {
    margin-bottom: 6px;
}

.ca-partners-text p {
    color:         var(--ca-text);
}

.ca-partners-stats {
    flex:           0 0 auto;
    display:        flex;
    flex-direction: column;
    gap:            2.5rem;
    align-items:    center;
}



/* With image: left column stacks text above stats */
.ca-partners--with-image .ca-partners-left {
    flex-direction: column;
    align-items:    flex-start;
    gap:            60px;
}

.ca-partners--with-image .ca-partners-stats {
    flex-direction: row;
    gap:            3rem;
    width:          100%;
    justify-content: flex-start;
}

/* Right image column */
.ca-partners-image {
    flex:       0 0 420px;
    max-width:  420px;
}

.ca-partners-image img {
    width:         100%;
    height:        340px;
    object-fit:    cover;
    border-radius: var(--ca-radius-lg);
    display:       block;
}

.ca-stat {
    display:        flex;
    flex-direction: column;
    align-items:    center;
    text-align:     center;
}

.ca-stat-value {
    font-family:   var(--ca-font-heading);
    font-size:     32px;
    font-weight:   400;
    color:         var(--ca-primary-bright);
    line-height:   1;
    margin-bottom: .4rem;
}

.ca-stat-label {
    font-size:   16px;
    color:       var(--ca-text-muted);
    font-weight: 400;
}

@media (max-width: 768px) {
    .ca-partners-inner,
    .ca-partners--with-image .ca-partners-inner {
        flex-direction: column-reverse;
        gap:            24px;
    }

    .ca-partners {
        padding: 42px 0;
    }

    .ca-hero-service-btns {
        flex-direction: column;
    }

    .ca-hero-service-btns .ca-btn {
        width: 100%;
    }

    .ca-partners-left,
    .ca-partners--with-image .ca-partners-left {
        flex-direction: column;
        gap:            2rem;
        width:          100%;
    }

    .ca-partners-image {
        flex:      0 0 auto;
        max-width: 100%;
        width:     100%;
    }

    .ca-partners-image img {
        height: 240px;
    }

    .ca-partners-stats,
    .ca-partners--with-image .ca-partners-stats {
        flex-direction:  row;
        justify-content: space-around;
        width:           100%;
        text-align:      center;
    }

    .ca-partners-text .ca-btn {
        width:       100%;
        text-align:  center;
        box-sizing:  border-box;
    }

    #ca-content .ca-partners-text h3 {
        font-family: var(--ca-font-heading);
        font-size: 32px;
    }

}

/* ============================================================
   Contact CTA section
   Template: three action cards (icon + title + sub) in a row.
   ============================================================ */
.ca-contact-cta {
    background: var(--ca-bg);
    border-top: 1px solid var(--ca-border);
    padding:    60px 0;
    display:     flex;
    justify-content: center;
}

.ca-contact-cta-inner {
    max-width:       1200px;
    display:         flex;
    width:100%;
    gap: 12px;
    padding: 0 2rem;
}

.ca-cta-card {
    flex:            1;
    display:         flex;
    align-items:     center;
    gap:             1.1rem;
    background:      var(--ca-primary);
    color: var(--ca-white);
    border-radius:   var(--ca-radius-lg);
    padding:         1.5rem 1.75rem;
    text-decoration: none;
    border:          none;
    cursor:          pointer;
    transition:      background .2s ease, transform .15s ease;
    text-align:      left;
    font-family:     Inter, sans-serif;
}

.ca-cta-card:hover {
    background: var(--ca-primary-bright);
    color: var(--ca-white);
    transform:  translateY(-2px);
}

.ca-cta-card:hover .ca-cta-icon-wrap {
    background: var(--ca-primary);
}



.ca-cta-icon-wrap {
    width:           48px;
    height:          48px;
    border-radius:   50%;
    background:      var(--ca-primary-bright);
    display:         flex;
    align-items:     center;
    justify-content: center;
    flex-shrink:     0;
}

.ca-cta-icon {
    font-size:   1.5rem;
    line-height: 1;
    color:       var(--ca-white);
    opacity:     .95;
    /* Material Icons renders as inline; prevent any inherited letter-spacing */
    letter-spacing: 0;
}

.ca-cta-card-text {
    display:        flex;
    flex-direction: column;
    gap:            .2rem;
}

.ca-cta-card-title {
    font-family:  var(--ca-font-body);
    font-size:    18px;
    font-weight:  600;
    line-height:  1.25;
    color: var(--ca-white);
}

.ca-cta-card-sub {
    font-size:   16px;
    line-height: 1.35;
    color:       rgba(255,255,255,.75);
}

@media (max-width: 680px) {
    .ca-contact-cta-inner {
        flex-direction: column;
    }

    .ca-cta-card {
        width: 100%;
    }
}

/* --- Responsive: feature split sections --- */
@media (max-width: 767px) {
    .ca-fsplit-row,
    .ca-fsplit-row--reversed {
        flex-direction: column;
    }
    .ca-contact-cta {
        padding: 42px 0;
    }

    .ca-fsplit-row {
        gap: 0;
        max-height:unset;
    }

    .ca-fsplit-img {
        flex:      unset;
        width:     100%;
        max-width: 100%;
        height:    220px;
        border-radius: var(--ca-radius-lg) var(--ca-radius-lg) 0 0;
    }

    .ca-fsplit-img img {
        border-radius: var(--ca-radius-lg) var(--ca-radius-lg) 0 0;
    }

    .ca-fsplit-body {
        padding: 18px;
        padding-bottom:30px;
        border-radius: 0 0 var(--ca-radius-lg) var(--ca-radius-lg);
    }

    .ca-fsplit-body .ca-btn {
        width:100%;
    }
}

@media (max-width: 768px) {
    .ca-hero {
        min-height:          75vh;
        background-position: 70% center;
    }

    /* Inner is empty on mobile (card is hidden); just clear the navbar */
    .ca-hero-inner {
        padding:    var(--ca-header-height) 0 0;
        min-height: 0;
    }

    /* Hide the card that sits on top of the hero image */
    .ca-hero .ca-hero-card {
        display: none;
    }

    /* Show the duplicate card below the hero section */
    .ca-hero-card--below {
        display:       block;
        max-width:     100%;
        border-radius: 0;
        box-shadow:    none;
        padding:       42px 18px;
    }
}

/* ============================================================
   Page: dynamic_about (2026)
   ============================================================ */

/* Centered hero variant — symmetrical scrim + card centred */
.ca-hero--centered::after {
    background: rgba(0,0,0,.35);
}

.ca-hero-inner--center {
    display:         flex;
    justify-content: center;
}

.ca-hero--centered .ca-hero-card {
    text-align: center;
    max-width:  640px;
}

/* Intro + blocks section */
.ca-about-intro {
    background: var(--ca-bg);
    padding:    60px;
}

.ca-about-intro-inner {
    max-width: 1200px;
    margin:    0 auto;
}

.ca-about-intro-title {
    font-family:   var(--ca-font-heading);
    color:         var(--ca-primary);
    font-size:     clamp(1.4rem, 2.5vw, 2rem);
    margin-bottom: 1rem;
}

.ca-about-intro-text {
    font-size:     1.05rem;
    line-height:   1.8;
    color:         var(--ca-text);
    max-width:     none;
    margin:        0 0 36px;
    text-align:    left;
}

.ca-about-intro-text p {
    color:  var(--ca-text);
    margin: 0;
}

/* About page — reason cards in a compact 2×2 grid */
.ca-about-reasons-grid {
    display:               grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap:                   1rem;
    max-width:             1200px;
    margin:                2.5rem auto 0;
    padding:               0 18px;
}

.ca-about-reason-card {
    display:         flex;
    flex-direction:  column;
    border-radius:   var(--ca-radius-lg);
    overflow:        hidden;
    background:      var(--ca-primary-dark);
}

.ca-about-reason-img {
    position:   relative;
    height:     140px;
    flex-shrink: 0;
    overflow:   hidden;
}

.ca-about-reason-img img {
    position:   absolute;
    inset:      0;
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
}

.ca-about-reason-body {
    padding:        1.25rem 1.5rem 1.5rem;
    display:        flex;
    flex-direction: column;
}

.ca-about-reason-title {
    color:         var(--ca-white);
    font-family:   var(--ca-font-heading);
    font-size:     1.1rem;
    margin:        0 0 .5rem;
    line-height:   1.3;
}

.ca-about-reason-text,
.ca-about-reason-text p {
    color:       rgba(255, 255, 255, .85);
    font-size:   .9375rem;
    line-height: 1.55;
    font-weight: 500;
    margin:      0;
}

.ca-about-reason-text p {
    margin: 0 0 .75rem;
}

.ca-about-reason-text p:last-child {
    margin-bottom: 0;
}

.ca-about-reason-icon {
    display:       block;
    margin-bottom: .75rem;
}

.ca-about-reason-icon svg {
    height:  26px;
    width:   auto;
    display: block;
}

.ca-about-reason-icon svg path,
.ca-about-reason-icon svg polygon,
.ca-about-reason-icon svg rect,
.ca-about-reason-icon svg circle,
.ca-about-reason-icon svg ellipse {
    fill: var(--ca-primary-bright) !important;
}

@media (max-width: 767px) {
    .ca-about-reasons-grid {
        grid-template-columns: 1fr;
        gap:                   .875rem;
    }

    .ca-about-reason-img {
        height: 120px;
    }

    .ca-about-reason-body {
        padding: 1rem 1.125rem 1.25rem;
    }
}

/* --- Partners section --- */
.ca-about-partners {
    background: var(--ca-bg-dark);
    padding:    80px 0;
}

.ca-about-partners-inner {
    max-width:   1200px;
    margin:      0 auto;
    padding:     0 18px;
    display:     grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap:         2rem;
    min-height:  360px;
}

/* Shared column base — full height, flex column */
.ca-about-partners-col {
    display:        flex;
    flex-direction: column;
}

/* Left col: box pinned to top */
.ca-about-partners-col--left {
    justify-content: flex-start;
}

.ca-about-partners-box {
    background:     var(--ca-primary-bright);
    border-radius:  var(--ca-radius-md);
    padding:        2rem 1.75rem;
    display:        flex;
    flex-direction: column;
}

.ca-about-partners-title {
    font-family:   var(--ca-font-heading);
    color: var(--ca-white);
    font-size:     1.5rem;
    margin-bottom: .9rem;
}

.ca-about-partners-text {
    color:       rgba(255,255,255,.9);
    font-size:   .92rem;
    line-height: 1.7;
    margin:      0;
}

/* --- Partner dropdown toggle button --- */
.ca-partners-toggle-btn {
    display:         flex;
    align-items:     center;
    gap:             .4rem;
    margin-top:      1.25rem;
    padding:         .55rem 1rem;
    background:      rgba(255,255,255,.15);
    border:          1px solid rgba(255,255,255,.3);
    border-radius:   var(--ca-radius-sm);
    color:           var(--ca-white);
    font-size:       .88rem;
    font-weight:     500;
    cursor:          pointer;
    transition:      background .2s, border-color .2s;
    width:           100%;
    justify-content: space-between;
}
.ca-partners-toggle-btn:hover {
    background:   rgba(255,255,255,.22);
    border-color: rgba(255,255,255,.5);
}
.ca-partners-toggle-icon {
    font-size:   1.1rem;
    transition:  transform .25s ease;
    flex-shrink: 0;
}
.ca-partners-toggle-btn.is-open .ca-partners-toggle-icon {
    transform: rotate(180deg);
}

/* --- Partner dropdown panel --- */
.ca-partners-panel {
    margin-top:     .75rem;
    display:        flex;
    flex-direction: column;
    gap:            .6rem;
}

.ca-partners-search-wrap {
    position:     relative;
    display:      flex;
    align-items:  center;
}
.ca-partners-search-icon {
    position:    absolute;
    left:        .6rem;
    font-size:   1rem;
    color:       rgba(255,255,255,.6);
    pointer-events: none;
}
.ca-partners-search {
    width:            100%;
    padding:          .5rem .75rem .5rem 2.1rem;
    background:       rgba(255,255,255,.12);
    border:           1px solid rgba(255,255,255,.25);
    border-radius:    var(--ca-radius-sm);
    color:            var(--ca-white);
    font-size:        .85rem;
    outline:          none;
    transition:       border-color .2s, background .2s;
}
.ca-partners-search::placeholder { color: rgba(255,255,255,.5); }
.ca-partners-search:focus {
    border-color: rgba(255,255,255,.55);
    background:   rgba(255,255,255,.18);
}

.ca-partners-list {
    list-style:   none;
    margin:       0;
    padding:      0;
    max-height:   220px;
    overflow-y:   auto;
    display:      flex;
    flex-direction: column;
    gap:          1px;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.25) transparent;
}
.ca-partners-list::-webkit-scrollbar       { width: 4px; }
.ca-partners-list::-webkit-scrollbar-thumb { background: rgba(255,255,255,.25); border-radius: 2px; }

.ca-partners-list-item {
    display:         flex;
    justify-content: space-between;
    align-items:     baseline;
    gap:             .5rem;
    padding:         .42rem .6rem;
    border-radius:   var(--ca-radius-sm);
    font-size:       .85rem;
    color:           var(--ca-white);
    background:      rgba(255,255,255,.07);
    transition:      background .15s;
}
.ca-partners-list-item:hover { background: rgba(255,255,255,.14); }

.ca-partners-list-sub {
    font-size:   .75rem;
    color:       rgba(255,255,255,.55);
    white-space: nowrap;
    flex-shrink: 0;
}

.ca-partners-empty {
    font-size: .85rem;
    color:     rgba(255,255,255,.55);
    margin:    0;
    padding:   .4rem .6rem;
}

/* Middle col: map fills the column */
.ca-about-partners-col--map {
    justify-content: stretch;
}

.ca-about-partners-map {
    width:           100%;
    height:          100%;
    object-fit:      contain;
    object-position: center;
    display:         block;
    border-radius:   var(--ca-radius-md);
}

/* Right col: stats pinned to bottom */
.ca-about-partners-col--right {
    justify-content: flex-end;
}

.ca-about-partners-stats {
    display:        flex;
    flex-direction: column;
    gap:            1.25rem;
    align-items:    flex-end;
}

.ca-about-partners-stat {
    display:        flex;
    flex-direction: column;
    align-items:    flex-start;
    text-align:     left;
    width:222px;
}

.ca-about-stat-number {
    font-family: var(--ca-font-heading);
    font-size:   38px;
    font-weight: 400;
    color:       var(--ca-primary);
    line-height: 1.1;
}

.ca-about-stat-label {
    font-size:  16px;
    font-weight:500;
    color:      var(--ca-text-muted);
    margin-top: .2rem;
}

/* --- Human section --- */
.ca-about-human {
    background: #fff;
    padding:    80px 0;
    border-top: 1px solid var(--ca-border);
}

.ca-about-human-inner {
    max-width:   1200px;
    margin:      0 auto;
    padding:     0 18px;
    display:     flex;
    align-items: center;
    gap:         4rem;
}

.ca-about-human-text {
    flex: 1;
}

.ca-about-human-title {
    font-family:   var(--ca-font-heading);
    color:         var(--ca-primary);
    font-size:     clamp(1.3rem, 2.2vw, 1.9rem);
    margin-bottom: 1.25rem;
}

.ca-about-human-body,
.ca-about-human-text p {
    color:       var(--ca-text);
    font-size:   1rem;
    line-height: 1.8;
    margin:      0;
}

.ca-about-human-image {
    flex:          0 0 500px;
    border-radius: var(--ca-radius-md);
    overflow:      hidden;
    max-height:    380px;
}

.ca-about-human-image img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
}

/* --- Bottom info blocks --- */
.ca-about-blocks {
    background: var(--ca-bg);
    padding:    80px 0;
}

.ca-about-blocks-inner {
    max-width:             1200px;
    margin:                0 auto;
    padding:               0 2rem;
    display:               grid;
    grid-template-columns: repeat(3, 1fr);
    gap:                   12px;
}

.ca-about-infoblock {
    background:     var(--ca-bg-dark);
    border-radius:  var(--ca-radius-md);
    padding:        2rem 1.75rem;
    display:        flex;
    flex-direction: column;

}

.ca-about-infoblock-icon-wrap {
    width:           44px;
    height:          44px;
    border-radius:   50%;
    background:      var(--ca-primary-bright);
    display:         flex;
    align-items:     center;
    justify-content: center;
    margin-bottom:   60px;
    flex-shrink:     0;
}

.ca-about-infoblock-icon {
    font-size:      1.25rem;
    color:          var(--ca-white);
    letter-spacing: 0;
    line-height:    1;
}

.ca-about-infoblock-title {
    font-family:   var(--ca-font-heading);
    color:         var(--ca-primary);
    font-size:     1.1rem;
    margin-bottom: .75rem;
}

.ca-about-infoblock-text,
.ca-about-infoblock p {
    color:       var(--ca-text);
    font-size:   .92rem;
    line-height: 1.7;
    margin:      0;
    flex:        1; /* grows to fill available space, pushing the button to the bottom */
}

.ca-about-infoblock-btn-wrap {
    margin-top:  auto;
    padding-top: 1.25rem;
}

.ca-about-infoblock-btn {
    width:           100%;
    justify-content: center;
}

/* Responsive: dynamic_about */
@media (max-width: 900px) {
    .ca-about-partners-inner {
        grid-template-columns: 1fr;
        min-height:            unset;
    }

    /* Mobile order: Map → Stats → Partner block */
    .ca-about-partners-col--map   { order: 1; }
    .ca-about-partners-col--right { order: 2; justify-content: flex-start; }
    .ca-about-partners-col--left  { order: 3; }

    .ca-about-partners-stats {
        align-items: flex-start;
    }

    .ca-about-partners-stat {
        align-items: flex-start;
        text-align:  left;
    }

    .ca-about-human-inner {
        flex-direction: column;
        gap:            2rem;
    }

    .ca-about-human-image {
        flex:  unset;
        width: 100%;
    }

    .ca-about-blocks-inner {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .ca-hero--centered .ca-hero-card {
        max-width: 100%;
    }
}

/* ============================================================
   Page: kontakta (2026)
   ============================================================ */

.ca-contact-hero {
    background:     var(--ca-primary);
    padding-top:    calc(var(--ca-header-height) + 50px + 8px);
    padding-bottom: 60px;
    margin-top:     calc(-1 * (var(--ca-header-height) + 40px));
}

.ca-contact-hero-inner {
    max-width:     1200px;
    margin:        0 auto;
    padding:       0 2rem;
    display:       flex;
    gap:           2.5rem;
    align-items:   stretch;
}

/* Left: details */
.ca-contact-details {
    flex: 1;
    display:        flex;
    flex-direction: column;
    gap:            36px;
}

.ca-contact-groups {
    display:        flex;
    flex-direction: column;
    gap:            24px;
}

.ca-contact-title {
    font-family:   var(--ca-font-heading);
    color:         var(--ca-white);
    font-size:     clamp(1.5rem, 3vw, 2rem);
    margin:        0;
}

.ca-contact-group {
    display:        flex;
    flex-direction: column;
    gap:            .2rem;
}

/* Icon + title on the same line */
.ca-contact-group-header {
    display:     flex;
    gap:         8px;
}

.ca-contact-group-icon {
    color:       var(--ca-bg);
    flex-shrink: 0;
    line-height: 1;
    margin-right:12px;
    font-size:24px;
    padding-top:2px;
}

/* Indent content under the title to align with the text, not the icon */
.ca-contact-group--icon p {
    padding-left: 42px;
}

.ca-contact-group-title {
    font-family:    var(--ca-font-body);
    color:          var(--ca-white);
    font-size:      16px;
    font-weight:    600;
    line-height:    26px;
    letter-spacing: 0;
    text-transform: none;
    margin:         0;
}

.ca-contact-group p {
    color:       rgba(255,255,255,.88);
    font-family: var(--ca-font-body);
    font-size:   16px;
    font-weight: 400;
    line-height: 26px;
    margin:      0;
}

.ca-contact-link {
    color:           rgba(255,255,255,.88);
    text-decoration: none;
    display:         inline-flex;
    align-items:     center;
    transition:      color .2s;
}
.ca-contact-link:hover {
    color: var(--ca-white);
}

.ca-contact-social {
    display: flex;
    gap:     1rem;
}

.ca-contact-social-link {
    display:         flex;
    align-items:     center;
    justify-content: center;
    width:           40px;
    height:          40px;
    border-radius:   50%;
    background:      var(--ca-primary-bright);
    color: var(--ca-bg);
    font-size:       1.1rem;
    text-decoration: none;
    transition:      background .2s;
}
.ca-contact-social-link:hover {
    background: var(--ca-primary-dark);
    color: var(--ca-white);
}

/* Right: action buttons */
.ca-contact-actions {
    flex:           1;
    display:        flex;
    flex-direction: column;
    gap:            .75rem;
}

.ca-contact-action-btn {
    flex:            1;
    display:         flex;
    flex-direction:  column;
    align-items:     center;
    justify-content: center;
    text-align:      center;
    background:      var(--ca-bg);
    border:          none;
    border-radius:   var(--ca-radius-md);
    padding:         1.25rem 1.5rem;
    cursor:          pointer;
    text-decoration: none;
    transition:      background .2s, transform .2s;
}
.ca-contact-action-btn:hover {
    background:  var(--ca-bg-dark);
    transform:   translateY(-2px);
}

.ca-contact-action-icon-wrap {
    width:           44px;
    height:          44px;
    border-radius:   50%;
    background:      var(--ca-primary);
    display:         flex;
    align-items:     center;
    justify-content: center;
    flex-shrink:     0;
    margin-bottom:   18px;
}

.ca-contact-action-icon-wrap i,
.ca-contact-action-icon-wrap .material-icons {
    font-size:      24px;
    color:          var(--ca-white);
    line-height:    1;
    letter-spacing: 0;
}

.ca-contact-action-label {
    font-family: var(--ca-font-body);
    font-size:   var(--ca-h4-size);
    font-weight: 500;
    color:       var(--ca-primary);
    line-height: var(--ca-h4-lh);
}

.ca-contact-action-sub {
    font-size: .88rem;
    color:     var(--ca-text-muted);
}

/* --- Self-service blocks --- */
.ca-contact-blocks {
    background: var(--ca-bg-dark);
    padding:    80px 0;
}

/* .ca-contact-blocks-inner replaced by .ca-fsplit */

/* Old .ca-contact-block* layout rules removed — now handled by .ca-fsplit* */

/* Responsive: kontakta */
@media (max-width: 768px) {
    .ca-contact-hero-inner {
        flex-direction: column;
        gap:            2.5rem;
    }

    .ca-contact-blocks{
        padding: 42px 0;
    }

    .ca-about-partners-stats {
        flex-direction: row;
    }
    .ca-about-partners-stat {
        width:unset;
        text-align: center;
        align-items: center;
    }

    .ca-about-stat-number {
        font-size:   32px;
    }

    .ca-about-partners {
        padding:    42px 0;
    }

    .ca-about-human {
        padding:    42px 0;
    }

    .ca-about-blocks {
        padding:    42px 0;
    }

    .ca-about-intro {
        padding:    42px 18px;
    }

    .ca-contact-actions {
        flex:  unset;
        width: 100%;
    }
}

/* ============================================================
   Page: hjalpcenter (2026)
   ============================================================ */

/* Category grid */
.ca-hc-categories {
    background: #fff;
    padding:    72px 0;
}

.ca-hc-categories-inner {
    max-width: 1200px;
    margin:    0 auto;
    padding:   0 2rem;
}

.ca-hc-categories-title {
    font-family:   var(--ca-font-heading);
    color:         var(--ca-primary);
    font-size:     clamp(1.5rem, 2.5vw, 2.2rem);
    margin-bottom: .5rem;
}

.ca-hc-categories-sub {
    color:         var(--ca-text-muted);
    margin-bottom: 30px;
    font-size:     1rem;
}

.ca-hc-grid {
    display:               grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap:                   12px;
}

.ca-hc-card {
    display:         flex;
    align-items:     center;
    gap:             1.25rem;
    background:      var(--ca-primary);
    border:          none;
    border-radius:   var(--ca-radius-md);
    padding:         1.5rem 1.25rem;
    text-decoration: none;
    color: var(--ca-white);
    transition:      background .2s, transform .2s, box-shadow .2s;
}

.ca-hc-card:hover {
    background:  var(--ca-primary-dark, #1a3a5c);
    transform:   translateY(-2px);
    box-shadow:  var(--ca-shadow-md);
    color: var(--ca-white);
}

.ca-hc-card-icon {
    flex-shrink:     0;
    width:           48px;
    height:          48px;
    background:      var(--ca-primary-bright);
    border-radius:   50%;
    display:         flex;
    align-items:     center;
    justify-content: center;
    color: var(--ca-white);
    font-size:       1.3rem;
}

.ca-hc-card-body {
    flex: 1;
}

.ca-hc-card-title {
    font-family:   var(--ca-font-heading);
    color: var(--ca-white);
    font-size:     1rem;
    font-weight:   600;
    margin-bottom: .2rem;
}


.ca-hc-empty {
    color:      var(--ca-text-muted);
    font-style: italic;
}

/* Category subpage */
.ca-hc-cat-hero {
    background:     var(--ca-primary);
    padding-top:    calc(var(--ca-header-height) + 40px + 16px);
    padding-bottom: 48px;
    margin-top:     calc(-1 * (var(--ca-header-height) + 40px));
    text-align:     center;
}

.ca-hc-cat-hero-inner {
    max-width: 720px;
    margin:    0 auto;
    padding:   0 2rem;
    display:   flex;
    flex-direction: column;
    align-items: center;
    gap:       .75rem;
}

.ca-hc-cat-hero .ca-caption-badge {
    color:           var(--ca-white);
    background:      var(--ca-primary-bright);
    text-decoration: none;
    transition:      background .2s;
}

.ca-hc-cat-hero .ca-caption-badge:hover {
    background: var(--ca-primary-dark);
    color:      var(--ca-white);
}

.ca-hc-cat-title {
    font-family:   var(--ca-font-heading);
    color:         var(--ca-white);
    font-size:     clamp(1.6rem, 3vw, 2.4rem);
    margin:        0;
}

.ca-hc-cat-sub {
    color:     rgba(255,255,255,.75);
    font-size: .95rem;
    margin:    0;
}

.ca-hc-faqs {
    background: #fff;
    padding:    60px 0;
}

.ca-hc-faqs-inner {
    max-width: 860px;
    margin:    0 auto;
    padding:   0 2rem;
}

/* Blue accordion override for hjalpcenter subpages */
.ca-hc-faqs .ca-faq-item {
    background:   var(--ca-primary);
    border-color: rgba(255,255,255,.15) !important;
}

.ca-hc-faqs .accordion-header {
    margin-bottom: 0 !important;
}

.ca-hc-faqs .ca-faq-btn {
    background:  var(--ca-primary);
    color:       var(--ca-white);
    padding:     0 16px !important;
    height:      44px !important;
    min-height:  0 !important;
    display:     flex !important;
    align-items: center !important;
    line-height: normal;
}

.ca-hc-faqs .ca-faq-btn:not(.collapsed) {
    background: var(--ca-primary);
    color:      var(--ca-white);
}

.ca-hc-faqs .ca-faq-btn::after {
    filter: brightness(0) invert(1);
}

.ca-hc-faqs .ca-faq-body {
    background: var(--ca-primary);
    color:      var(--ca-white);
    padding:    8px 16px 12px !important;
}

.ca-hc-faqs .ca-faq-body p,
.ca-hc-faqs .ca-faq-body li {
    color: rgba(255,255,255,.92);
}

/* Footer: not-found prompt */
.ca-hc-faqs-footer {
    margin-top:     3rem;
    padding-top:    2rem;
    border-top:     1px solid var(--ca-bg-dark);
    display:        flex;
    flex-direction: column;
    align-items:    flex-start;
    gap:            1rem;
}

.ca-hc-faqs-footer-title {
    font-family:   var(--ca-font-heading);
    color:         var(--ca-primary);
    font-size:     clamp(1.1rem, 2vw, 1.4rem);
    margin:        0;
}

/* --- Guide blocks (hjalpcenter main page) --- */
.ca-hc-guides {
    background: var(--ca-primary-bright);
    padding:    72px 0;
}

/* .ca-hc-guides-inner replaced by .ca-fsplit */

/* Old .ca-hc-guide* layout rules removed — now handled by .ca-fsplit* */

.ca-btn-hc-guide {
    display:         inline-flex;
    align-items:     center;
    background:      var(--ca-bg);
    color:           var(--ca-primary);
    border:          none;
    padding:         .65rem 1.4rem;
    font-weight:     600;
    font-size:       .92rem;
    text-decoration: none;
    transition:      background .2s;
    align-self:      flex-start;
}
.ca-btn-hc-guide:hover {
    background: var(--ca-bg-dark);
    color:      var(--ca-primary);
}

@media (max-width: 768px) {
    .ca-hc-categories {
        padding: 42px 0;
    }

    .ca-nav-mitt-cynk-desktop { display: none; }

    .ca-hc-guides {
        padding: 42px 0;
    }
    .ca-hc-faqs {
        padding: 42px 0;
    }
}

/* ============================================================
   Contact Modal / BankID (carry-over, adjusted for new shell)
   ============================================================ */
.ca-modal-overlay {
    display:          flex;
    align-items:      center;
    justify-content:  center;
}

/* BankID buttons (unchanged logic, re-skinned) */
.bankid-button-primary {
    background:    var(--ca-primary);
    color: var(--ca-white);
    border:        none;
    border-radius: var(--ca-radius-sm);
    padding:       0 16px;
    height:        54px;
    line-height:   54px;
    font-size:     1.1em;
    font-weight:   600;
    width:         100%;
    max-width:     320px;
    display:       flex;
    align-items:   center;
    justify-content: space-between;
    cursor:        pointer;
    transition:    background .2s ease;
    text-decoration: none;
}

.bankid-button-secondary {
    background:    #fff;
    color:         var(--ca-primary);
    border:        2px solid var(--ca-primary);
    border-radius: var(--ca-radius-sm);
    padding:       0 16px;
    height:        54px;
    line-height:   54px;
    font-size:     1.1em;
    font-weight:   600;
    width:         100%;
    max-width:     320px;
    display:       flex;
    align-items:   center;
    justify-content: space-between;
    cursor:        pointer;
    transition:    all .2s ease;
    text-decoration: none;
}

.bankid-button-primary:hover { background: var(--ca-primary-dark); color: var(--ca-white); }
.bankid-button-secondary:hover { background: var(--ca-primary); color: var(--ca-white); }

.bankid-image-dark {
    width:              54px;
    height:             54px;
    background-image:   url('/assets/images/bankid-white.svg');
    background-size:    contain;
    background-repeat:  no-repeat;
    background-position: center;
    flex-shrink: 0;
}

.bankid-image-light {
    width:              54px;
    height:             54px;
    background-image:   url('/assets/images/bankid-red.png');
    background-size:    contain;
    background-repeat:  no-repeat;
    background-position: center;
    flex-shrink: 0;
}

/* BankID QR loader (identical animation, same canvas original) */
.bankid-qr {
    width:       100%;
    margin:      0 auto;
    height:      200px;
    text-align:  center;
}
.bankid-qr > div {
    display:     inline-block;
    width:       200px;
}
.bankid-loader {
    position:    relative;
    width:       200px;
    height:      200px;
}
.bankid-loader > div:nth-child(1) {
    width:            100%;
    height:           100%;
    border-radius:    50%;
    background:       conic-gradient(from 180deg at 50% 50%, #6564db 0deg, rgba(179,170,119,0) 360deg);
    animation:        loadspin 1s linear infinite;
}
.bankid-loader > div:nth-child(2) {
    position:         absolute;
    top: 4px; left: 4px;
    width:            calc(100% - 8px);
    height:           calc(100% - 8px);
    border-radius:    50%;
    background-color: white;
}
.bankid-loader > div:nth-child(3) {
    position:         absolute;
    top: 8px; left: 8px;
    width:            calc(100% - 16px);
    height:           calc(100% - 16px);
    border-radius:    50%;
    background-color: #F3F3F3;
    display:          flex;
    justify-content:  center;
    align-items:      center;
}
.bankid-loader > div:nth-child(3) img { width: 50%; }

@keyframes loadspin {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(1turn); }
}

/* ============================================================
   Utilities
   ============================================================ */
.ca-section {
    padding: 80px 0;
}

.ca-bg-brand {
    background: var(--ca-bg);
}

.form-result {
    display: none !important;
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 991px) {
    .ca-navbar {
        padding: 0 1rem;
    }

    .ca-nav {
        display:        none;
        flex-direction: column;
        align-items:    stretch;
        gap:            0;
        position:       absolute;
        top:            100%;
        left:           0;
        width:          100%;
        background:     #fff;
        border-top:     1px solid var(--ca-border);
        padding:        0 1.5rem;
        box-shadow:     var(--ca-shadow-md);
    }

    .ca-nav.is-open {
        display: flex;
    }

    .ca-nav > li {
        width:         100%;
        border-bottom: 1px solid var(--ca-border);
    }

    .ca-nav > li:last-child {
        border-bottom: none;
    }

    .ca-nav a {
        padding:  14px 0;
        width:    100%;
        display:  block;
        border:   none;
    }

    .ca-nav-btn {
        display:       block;
        margin:        12px 0;
        padding:       10px 20px !important;
        text-align:    center;
    }

    .ca-hamburger {
        display: block;
    }

    .ca-brand {
        gap: 0.75rem;
    }

    .ca-logo img {
        width: 82px;
    }

    .ca-header-phone {
        font-size:   0.82rem;
        padding:     5px 8px 5px 0.75rem;
        margin-left: 0;
    }

    .ca-nav-mitt-cynk-desktop { display: none; }
    .ca-nav-mitt-cynk-mobile  { display: block; }

    .ca-dropdown-menu {
        display:       none;
        visibility:    visible;
        opacity:       1;
        transition:    none;
        position:      static;
        transform:     none;
        box-shadow:    none;
        border:        none;
        background:    transparent;
        border-radius: 0;
        overflow:      visible;
        padding:       0;
        width:         100%;
    }

    .ca-dropdown.is-open .ca-dropdown-menu {
        display: block;
    }

    /* Restore normal padding on first/last items for the mobile flat layout */
    .ca-dropdown-menu li:first-child a,
    .ca-dropdown-menu li:last-child a {
        padding-top:    10px;
        padding-bottom: 10px;
    }
}

/* ============================================================
   Caption badge  (reusable utility)
   Usage: <span class="ca-caption-badge">label</span>
   On dark bg: default (white text, translucent white bg)
   On light bg: add ca-caption-badge--dark
   ============================================================ */
.ca-caption-badge {
    display:        inline-block;
    background:     var(--ca-primary-bright);
    color: var(--ca-white);
    font-family:    var(--ca-font-body);
    font-size:      16px;
    font-weight:    400;
    padding:        2px 6px;
    border-radius:  6px;
    margin-bottom:12px;
    min-width:      120px;
    text-align:     center;
}

.ca-policy-hero .ca-caption-badge {
    background: var(--ca-primary-bright);
}

.ca-caption-badge--dark {
    background: var(--ca-bg-dark);
    color:      var(--ca-primary);
}

/* ============================================================
   Policy pages (2026)
   ============================================================ */
.ca-policy-hero {
    background:     var(--ca-primary);
    text-align:     center;
    display:        flex;
    flex-direction: column;
    align-items:    center;
    gap:            1rem;
    padding:        calc(var(--ca-header-height) + 3rem) 2rem 3rem;
    margin-top:     calc(-1 * (var(--ca-header-height) + 40px));
}

.ca-policy-hero h1 {
    color: var(--ca-white);
    margin:     0;
    max-width:  700px;
}

.ca-policy-subtitle {
    color:     rgba(255,255,255,.8);
    max-width: 620px;
    margin:    0;
}

.ca-policy-body {
    max-width: 800px;
    margin:    0 auto;
    padding:   3rem 2rem 4rem;
}

/* Table of contents */
.ca-policy-toc {
    list-style: none;
    padding:    0;
    margin:     0 0 3rem;
}

.ca-policy-toc li {
    position:      relative;
    padding-left:  1.3rem;
    margin-bottom: .5rem;
}

.ca-policy-toc li::before {
    content:  '▸';
    position: absolute;
    left:     0;
    top:      .05em;
    color:    #c94040;
    font-size: .95rem;
}

.ca-policy-toc a {
    color:           var(--ca-primary);
    text-decoration: none;
    font-size:       .95rem;
    transition:      color .15s;
}

.ca-policy-toc a:hover {
    color:           var(--ca-primary-bright);
    text-decoration: underline;
}

/* Individual sections */
.ca-policy-section {
    scroll-margin-top: calc(var(--ca-header-height) + 24px);
    padding-top:       2.5rem;
    margin-top:        2.5rem;
    border-top:        1px solid var(--ca-border);
}

.ca-policy-section h2,
.ca-policy-section h3 {
    color:         var(--ca-primary);
    margin-bottom: 1rem;
}

.ca-policy-section h4 {
    color:         var(--ca-primary);
    margin-bottom: .6rem;
}

.ca-policy-section p,
.ca-policy-section li {
    color:       var(--ca-text);
    line-height: 1.8;
}

.ca-policy-section ol,
.ca-policy-section ul {
    padding-left: 1.25rem;
}

.ca-policy-section a {
    color: var(--ca-primary-bright);
    text-decoration: underline;
}

@media (max-width: 767px) {
    .ca-policy-body {
        padding: 2rem 1.25rem 3rem;
    }
}

/* ============================================================
   Mitt Cynk – sidebar layout
   ============================================================ */

/* Outer two-column wrapper */
.mc-layout {
    display:    flex;
    align-items: stretch;
    min-height: calc(100vh - var(--ca-header-height));
    /* pull up to remove the 40px gap #ca-content adds */
    margin-top: -40px;
}

/* ---- Sidebar ---- */
.mc-sidebar {
    width:        260px;
    flex-shrink:  0;
    background:   var(--ca-bg);
    border-right: 1px solid var(--ca-border);
    display:      flex;
    flex-direction: column;
    position:     sticky;
    top:          var(--ca-header-height);
    height:       calc(100vh - var(--ca-header-height));
    overflow-y:   auto;
    overflow-x:   hidden;
}

/* User block */
.mc-sidebar-user {
    display:         flex;
    flex-direction:  column;
    align-items:     center;
    gap:             .6rem;
    padding:         2rem 1rem 1.5rem;
    border-bottom:   1px solid var(--ca-border);
    flex-shrink:     0;
}

.mc-sidebar-avatar {
    width:           52px;
    height:          52px;
    border-radius:   50%;
    background:      var(--ca-bg-dark);
    color:           var(--ca-primary);
    font-family:     var(--ca-font-heading);
    font-weight:     600;
    font-size:       1.1rem;
    display:         flex;
    align-items:     center;
    justify-content: center;
    flex-shrink:     0;
}

.mc-sidebar-name {
    font-family:  var(--ca-font-body);
    font-size:    .88rem;
    font-weight:  600;
    color:        var(--ca-primary);
    white-space:  nowrap;
    overflow:     hidden;
    text-overflow: ellipsis;
    max-width:    100%;
    text-align:   center;
}

/* Nav list */
.mc-sidebar-nav {
    flex:           1;
    display:        flex;
    flex-direction: column;
    padding:        .75rem 0;
    overflow:       hidden;
}

.mc-nav-item {
    display:         flex;
    align-items:     center;
    gap:             .8rem;
    padding:         .75rem 1.25rem;
    color:           var(--ca-primary);
    text-decoration: none;
    font-size:       .92rem;
    font-weight:     500;
    white-space:     nowrap;
    transition:      background .15s ease;
    border:          none;
    background:      transparent;
    width:           100%;
    cursor:          pointer;
    font-family:     var(--ca-font-body);
}

.mc-nav-item i {
    font-size:  1.1rem;
    flex-shrink: 0;
    width:      1.1rem;
    text-align: center;
}

.mc-nav-item:hover {
    background: var(--ca-bg-dark);
    color:      var(--ca-primary);
}

.mc-nav-item.is-active {
    background:  var(--ca-bg-dark);
    font-weight: 600;
    color:       var(--ca-primary);
}

/* Footer (logout) */
.mc-sidebar-footer {
    flex-shrink:  0;
    border-top:   1px solid var(--ca-border);
    padding:      .5rem 0;
    overflow:     hidden;
}

/* ---- Main content area ---- */
.mc-main {
    flex:            1;
    min-width:       0;
    padding:         2.5rem 2rem 3rem;
    display:         flex;
    justify-content: center;
    align-items:     flex-start;
}

.mc-main-inner {
    width:     100%;
    max-width: 860px;
    display:    flex;
    flex-direction: column;
    flex: 1;
    gap:24px;
}

/* ---- Errand hero box ---- */
.mc-errand-hero {
    background:    var(--ca-primary);
    border-radius: var(--ca-radius-lg);
    padding:       2.5rem 2rem;
    display:       flex;
    flex-direction: column;
    align-items:   center;
    text-align:    center;
    gap:           1rem;
    margin-bottom: 1.5rem;
}

.mc-errand-hero-icon {
    width:           64px;
    height:          64px;
    border-radius:   50%;
    background:      var(--ca-bg);
    display:         flex;
    align-items:     center;
    justify-content: center;
    flex-shrink:     0;
    margin-bottom:   .25rem;
}

.mc-errand-hero-icon i {
    font-size: 1.75rem;
    color:     var(--ca-primary);
    line-height: 1;
}

#ca-content .mc-errand-hero h2 {
    font-family:    var(--ca-font-body);
    font-weight:    600;
    font-size:      22px;
    line-height:    34px;
    letter-spacing: 0;
    text-align:     center;
    color:          var(--ca-white);
    margin:         0;
}

.mc-errand-hero p {
    color:      rgba(255,255,255,.82);
    margin:     0;
}

.mc-errand-timeline {
    background:     var(--ca-primary-bright);
    border-radius:  var(--ca-radius-lg);
    padding:        1.5rem 2rem;
    display:        flex;
    flex-direction: column;
    align-items:    center;
    gap:            0;
    margin-top:     .5rem;
    width:          100%;
}

.mc-errand-timeline-item {
    display:     flex;
    flex-direction: row;
    align-items: center;
    gap:         .6rem;
}

.mc-errand-timeline-label {
    font-size:   .95rem;
    color:       var(--ca-white);
    font-weight: 700;
}

.mc-errand-timeline-label::after {
    content: ':';
}

.mc-errand-timeline-value {
    font-size:   .95rem;
    font-weight: 400;
    color:       var(--ca-white);
}

/* Support card below errand hero */
.mc-errand-support {
    background:    #fff;
    border:        1.5px solid #C7C7C7;
    border-radius: var(--ca-radius-lg);
    padding:       2rem 2rem 2.25rem;
    display:       flex;
    flex-direction: column;
    align-items:   center;
    text-align:    center;
}

.mc-errand-support-icon {
    width:           52px;
    height:          52px;
    border-radius:   50%;
    background:      var(--ca-primary-bright);
    display:         flex;
    align-items:     center;
    justify-content: center;
    flex-shrink:     0;
    margin-bottom:   18px;
    color: var(--ca-bg);
}

.mc-errand-support-icon i {
    font-size:   1.4rem;
    line-height: 1;
}

.mc-errand-support h3 {
    color:         var(--ca-primary);
    margin:        0;
}

.mc-errand-support p {
    color:     var(--ca-text);
    margin:    0;
}

.mc-errand-support .ca-btn--pill {
    align-self: center;
}

/* No-errand inline notice */
.mc-errand-notice {
    background:    #fff;
    border:        1.5px solid var(--ca-primary);
    border-radius: var(--ca-radius-md);
    padding:       1.25rem 1.5rem;
}

.mc-errand-notice-header {
    display:       flex;
    align-items:   center;
    gap:           .85rem;
    margin-bottom: .5rem;
}

.mc-errand-notice-icon {
    width:           21.5px;
    height:          21.5px;
    border-radius:   50%;
    background:      var(--ca-primary-bright);
    display:         flex;
    align-items:     center;
    justify-content: center;
    flex-shrink:     0;
}

.mc-errand-notice-icon i {
    font-size:  1rem;
    color:      var(--ca-white);
    line-height: 1;
}

.mc-errand-notice-content {
    flex: 1;
}

#ca-content .mc-errand-notice-title {
    font-weight: 700;
    color:       var(--ca-primary);
    margin:      0;
    font-size:   1.05rem;
    line-height: 1.3;
}

#ca-content .mc-errand-notice p {
    font-weight: 400;
    color:       var(--ca-primary);
    margin:      0 0 .35rem;
    font-size:   .95rem;
    line-height: 1.5;
}

#ca-content .mc-errand-notice p:last-child {
    margin-bottom: 0;
}

#ca-content .mc-errand-notice-inline-text {
    font-weight: 600;
    color:       var(--ca-primary);
    margin:      0;
    font-size:   .95rem;
    line-height: 1.3;
}

.mc-errand-notice--bookings .mc-errand-notice-header {
    margin-bottom: 0;
}

.mc-bookings-empty-cta {
    margin-top:    1rem;
    align-self:    flex-start;
    white-space:   normal;
    text-align:    center;
    line-height:   1.35;
    max-width:     100%;
}

@media (max-width: 600px) {
    .mc-bookings-empty-cta {
        width:         100%;
        padding-left:  1.25rem;
        padding-right: 1.25rem;
    }
}

/* Completed errand: external platform link cards */
.mc-errand-links {
    display:    flex;
    gap:        1rem;
    margin-top: 1rem;
    margin-bottom: 1.5rem;
}

.mc-errand-link-card {
    flex:           1;
    background:     var(--ca-primary-bright);
    border-radius:  var(--ca-radius-lg);
    padding:        1.75rem 1.5rem;
    display:        flex;
    flex-direction: column;
    gap:            .6rem;
}

.mc-errand-link-card h3 {
    color:  var(--ca-white);
    margin: 0;
}

.mc-errand-link-card p {
    color:      rgba(252,242,233,.8);
    font-size:  .9rem;
    margin:     0;
    flex:       1;
}

.mc-errand-link-card-btn {
    align-self: flex-start;
    margin-top: .5rem;
}

@media (max-width: 600px) {
    .mc-errand-links {
        flex-direction: column;
    }
}

/* No-errand service blocks */
.mc-no-errand-services {
    margin-top:     1.5rem;
    margin-bottom:  1.5rem;
    display:        flex;
    flex-direction: column;
    gap:            12px;
}

.mc-service-block {
    background:    var(--ca-primary);
    border-radius: 12px;
    overflow:      hidden;
}

.mc-service-block--wide {
    display: flex;
    flex-direction: row;
}

.mc-service-block--wide-reverse {
    display:        flex;
    flex-direction: row-reverse;
}

.mc-service-block--wide-reverse .mc-service-block-image {
    position:   relative;
    width:      42%;
    flex-shrink: 0;
    min-height: 300px;
}

.mc-service-block--wide-reverse .mc-service-block-image img {
    position:   absolute;
    inset:      0;
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
}

.mc-service-block--wide .mc-service-block-image {
    position:   relative;
    width:      42%;
    flex-shrink: 0;
    min-height: 300px;
}

.mc-service-block--wide .mc-service-block-image img {
    position:   absolute;
    inset:      0;
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
}

.mc-service-block-row {
    display: flex;
    gap:     12px;
}

.mc-service-block-row .mc-service-block {
    flex: 1;
}

.mc-service-block-content {
    padding:        1.75rem;
    display:        flex;
    flex-direction: column;
    gap:            .75rem;
    height:         100%;
    box-sizing:     border-box;
}

.mc-service-block .ca-caption-badge {
    background: var(--ca-primary-bright);
    align-self: flex-start;
}

#ca-content .mc-service-block h3 {
    font-family:    var(--ca-font-body);
    font-weight:    600;
    font-size:      18px;
    line-height:    28px;
    letter-spacing: 0;
    color:          var(--ca-white);
    margin:         0;
}

#ca-content .mc-service-block p {
    font-family:    var(--ca-font-body);
    font-weight:    400;
    font-size:      16px;
    line-height:    26px;
    letter-spacing: 0;
    color:          rgba(252,242,233,.8);
    margin:         0;
    flex:           1;
}

.mc-service-block-actions {
    display:    flex;
    align-items: center;
    gap:        1.25rem;
    margin-top: .25rem;
    flex-wrap:  wrap;
}

.mc-service-block-link {
    display:         inline-flex;
    align-items:     center;
    gap:             .35rem;
    color:           var(--ca-white);
    text-decoration: none;
    font-size:       .88rem;
    font-weight:     600;
    transition:      opacity .15s;
    align-self:      flex-start;
}


.mc-service-block-link:hover {
    opacity: .75;
    color:   var(--ca-white);
}

@media (max-width: 700px) {
    .mc-service-block--wide,
    .mc-service-block--wide-reverse {
        flex-direction: column;
    }
    .mc-service-block--wide .mc-service-block-image,
    .mc-service-block--wide-reverse .mc-service-block-image {
        width:  100%;
        height: 180px;
    }
    .mc-service-block-content .ca-btn,
    .mc-service-block-actions .ca-btn {
        width: 100%;
        text-align: center;
        justify-content: center;
    }
    .mc-service-block-row {
        flex-direction: column;
    }
}

/* Bookings page */
.mc-bookings-section-label {
    font-size:      .78rem;
    font-weight:    700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color:          var(--ca-text-muted);
    margin-bottom:  .75rem;
}

.mc-bookings-section-header {
    font-family:   var(--ca-font-body);
    font-weight:   600;
    font-size:     1.1rem;
    color:         var(--ca-text);
    text-align:    center;
    margin-top:    2rem;
    margin-bottom: .75rem;
}

/* Date caption: primary bg, white text */
.mc-booking-caption--date {
    background: var(--ca-primary);
    color:      var(--ca-white);
}

/* Type caption: keep dark-beige bg, black text */
.mc-booking-caption--type {
    color: #000;
}

/* Slightly less rounded caption badges on booking cards */
.mc-booking-captions .ca-caption-badge {
    border-radius: 4px;
}

.mc-bookings-list {
    display:        flex;
    flex-direction: column;
    gap:            .75rem;
}

.mc-booking-card {
    background:     var(--ca-bg);
    border-radius:  var(--ca-radius-lg);
    padding:        1.25rem 1.5rem;
    display:        flex;
    flex-direction: column;
    gap:            .6rem;
}

.mc-booking-captions {
    display:  flex;
    flex-wrap: wrap;
    gap:      .4rem;
}

.mc-booking-title {
    font-family:  var(--ca-font-body);
    font-weight:  600;
    font-size:    1rem;
    color:        var(--ca-primary);
    line-height:  1.4;
}

.mc-booking-advisor {
    font-size: .85rem;
    color:     var(--ca-text-muted);
}

.mc-booking-actions {
    display:     flex;
    align-items: center;
    gap:         1.25rem;
    margin-top:  .25rem;
    flex-wrap:   wrap;
}

.mc-booking-action-link {
    display:         inline-flex;
    align-items:     center;
    gap:             .3rem;
    font-size:       .85rem;
    font-weight:     500;
    color:           var(--ca-primary-bright);
    text-decoration: none;
    transition:      opacity .15s;
}

.mc-booking-action-link:hover {
    opacity: .7;
    color:   var(--ca-primary-bright);
}

.mc-booking-action-link--cancel {
    color: #b94040;
}

.mc-booking-action-link--cancel:hover {
    color: #b94040;
}

.mc-booking-join-btn {
    display:         inline-flex;
    align-items:     center;
    gap:             .4rem;
    background:      var(--ca-primary);
    color:           var(--ca-white);
    font-size:       .85rem;
    font-weight:     600;
    padding:         .4rem 1rem;
    border-radius:   100px;
    text-decoration: none;
    margin-left:     auto;
    transition:      background .15s;
}

.mc-booking-join-btn:hover {
    background: var(--ca-primary-dark);
    color:      var(--ca-white);
}

/* Settings / profile card */
.mc-settings-card {
    background:    #fff;
    border:        1.5px solid var(--ca-primary);
    border-radius: var(--ca-radius-lg);
    padding:       1.5rem 1.75rem;
}

.mc-settings-card-header {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    margin-bottom:   .35rem;
}

.mc-settings-edit-link {
    font-size:       .88rem;
    font-weight:     400;
    color:           var(--ca-primary-bright);
    text-decoration: underline;
    cursor:          pointer;
}

.mc-settings-edit-link:hover {
    color: var(--ca-primary);
}

.mc-settings-name {
    font-family:    var(--ca-font-body);
    font-weight:    600;
    font-size:      16px;
    line-height:    26px;
    letter-spacing: 0;
    color:          var(--ca-primary);
    margin-bottom:  0;
}

.mc-settings-detail {
    font-size:     .93rem;
    color:         var(--ca-text-muted);
    margin-bottom: .2rem;
}

.mc-settings-form {
    padding-top: .25rem;
}

/* Override Bootstrap's bright-blue checked radio/checkbox colour */
#ca-content .form-check-input:checked {
    background-color: var(--ca-primary);
    border-color:     var(--ca-primary);
}

/* Radio/checkbox on a primary-coloured background (e.g. Giltighetstid block)
   — white ring, primary-coloured dot so both states are visible */
#ca-content .poa-section--primary .form-check-input {
    border-color:     #ffffff;
    background-color: #ffffff;
}

#ca-content .poa-section--primary .form-check-input:checked {
    background-color: #ffffff;
    border-color:     #ffffff;
    /* Primary-coloured dot instead of Bootstrap's white one */
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23334052'/%3e%3c/svg%3e");
}

.mc-settings-privacy {
    margin-top: 1.5rem;
}

#ca-content .mc-settings-privacy h3 {
    font-family:    var(--ca-font-body);
    font-weight:    600;
    font-size:      22px;
    line-height:    124%;
    letter-spacing: -0.019em;
    color:          var(--ca-primary);
    margin-bottom:  .6rem;
}

#ca-content .mc-settings-privacy p {
    font-size:   var(--ca-p-size);
    line-height: var(--ca-p-lh);
    color:       var(--ca-text);
    margin:      0;
}

#ca-content .mc-settings-privacy a {
    color:           var(--ca-primary-bright);
    text-decoration: underline;
}

/* ============================================================
   BOOKING FLOW  (ca-bk-*)
   ============================================================ */

.ca-bk-wrap {
    padding: 3rem 1rem 4rem;
}

.ca-bk-inner {
    max-width: 680px;
    margin:    0 auto;
}

/* Step header with back button */
.ca-bk-step-header {
    display:         flex;
    justify-content: space-between;
    align-items:     center;
    margin-bottom:   1rem;
}

.ca-bk-spacer {
    width: 100px;
}

/* Step title */
#ca-content .ca-bk-step-title {
    font-family:    var(--ca-font-body);
    font-weight:    600;
    font-size:      1.5rem;
    color:          var(--ca-primary);
    text-align:     center;
    margin-bottom:  0;
}

/* Step counter  */
.ca-bk-counter {
    font-family:    var(--ca-font-body);
    font-weight:    600;
    font-size:      18px;
    line-height:    28px;
    letter-spacing: 0;
    color:          var(--ca-primary-bright);
    margin-bottom:  .5rem;
}

/* Description line */
#ca-content .ca-bk-description {
    font-size:     16px;
    line-height:   26px;
    color:         var(--ca-text-muted);
    margin-bottom: 1rem;
}

/* Card wrapper */
.ca-bk-card {
    background-color: var(--ca-bg);
    border-radius:    16px;
    padding:          2rem;
    margin-bottom:    2rem;
}

.ca-bk-card--success {
    text-align: center;
}

/* Success icon */
.ca-bk-success-icon {
    width:            56px;
    height:           56px;
    border-radius:    50%;
    background-color: var(--ca-primary);
    color:            var(--ca-white);
    font-size:        1.4rem;
    display:          flex;
    align-items:      center;
    justify-content:  center;
    margin:           0 auto 1rem;
}

/* Badge row */
.ca-bk-badge-row {
    display:     flex;
    flex-wrap:   wrap;
    gap:         .5rem;
    margin-bottom: -.5rem;
}

.ca-bk-badge {
    background-color: var(--ca-bg-dark);
    color:            var(--ca-primary);
    font-weight:      600;
}

.ca-bk-badge--secondary {
    background-color: rgba(69, 92, 124, .12);
    color:            var(--ca-primary-bright);
}

/* Override ca-caption-badge defaults inside booking flow (light card bg) */
.ca-bk-badge-row .ca-caption-badge.ca-bk-badge {
    background:     var(--ca-bg-dark);
    color:          var(--ca-primary);
    font-weight:    600;
    margin-bottom:  0;
}

.ca-bk-badge-row .ca-caption-badge.ca-bk-badge--secondary {
    background:     rgba(69, 92, 124, .12);
    color:          var(--ca-primary-bright);
    font-weight:    600;
    margin-bottom:  0;
}

/* Choice buttons (service / contact method) */
.service-grid,
.choice-grid {
    display:       flex;
    flex-direction: column;
    gap:           1rem;
    margin-top:    1.5rem;
}

.choice-btn {
    background-color: #ffffff;
    border:           2px solid #d8cfc8;
    border-radius:    12px;
    padding:          1.25rem 1.5rem;
    text-align:       left;
    cursor:           pointer;
    transition:       all .25s ease;
    width:            100%;
    display:          flex;
    align-items:      center;
    gap:              1.25rem;
}

.choice-btn:hover {
    background-color: var(--ca-primary);
    border-color:     var(--ca-primary);
    transform:        translateY(-2px);
    box-shadow:       0 4px 14px rgba(51,64,82,.18);
}

#ca-content .choice-btn:hover h4,
#ca-content .choice-btn:hover p {
    color: var(--ca-white);
}

.choice-btn.selected {
    background-color: var(--ca-primary);
    border-color:     var(--ca-primary);
}

.choice-btn.selected .choice-icon {
    background-color: var(--ca-bg);
}

.choice-btn.selected .choice-icon i {
    color: var(--ca-primary);
}

#ca-content .choice-btn.selected h4,
#ca-content .choice-btn.selected p {
    color: var(--ca-white);
}

.choice-icon {
    flex-shrink:      0;
    width:            56px;
    height:           56px;
    border-radius:    50%;
    background-color: var(--ca-primary);
    display:          flex;
    align-items:      center;
    justify-content:  center;
    font-size:        1.5rem;
    color:            var(--ca-bg);
    transition:       all .25s ease;
}

.choice-btn:hover .choice-icon {
    background-color: var(--ca-bg);
    color:            var(--ca-primary);
}

.choice-text {
    flex: 1;
}

#ca-content .choice-text h4 {
    font-family:   var(--ca-font-body);
    font-weight:   600;
    font-size:     1rem;
    color:         var(--ca-primary);
    margin-bottom: .2rem;
    transition:    color .25s ease;
    pointer-events: none;
}

#ca-content .choice-text p {
    font-size:     .9rem;
    color:         var(--ca-text-muted);
    margin:        0;
    transition:    color .25s ease;
    pointer-events: none;
}

/* Calendar */
.calendar-container {
    margin: 1.5rem auto 0;
    max-width: 85%;
    width: 100%;
}

.calendar-header {
    display:         flex;
    justify-content: space-between;
    align-items:     center;
    margin-bottom:   1rem;
}

.calendar-nav-btn {
    background-color: #ffffff;
    border:           2px solid #d8cfc8;
    color:            var(--ca-primary);
    border-radius:    8px;
    padding:          .45rem .9rem;
    cursor:           pointer;
    transition:       all .25s ease;
}

.calendar-nav-btn:hover {
    background-color: var(--ca-primary);
    border-color:     var(--ca-primary);
    color:            var(--ca-white);
}

#ca-content .calendar-month-year {
    font-family:  var(--ca-font-body);
    font-weight:  600;
    font-size:    1.1rem;
    color:        var(--ca-primary);
    margin:       0;
}

.calendar-grid {
    background-color: #ffffff;
    border-radius:    12px;
    padding:          1rem;
}

.calendar-weekdays,
.calendar-days {
    display:               grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap:                   .5rem;
    width:                 100%;
}

.calendar-weekdays {
    margin-bottom: .5rem;
}

.weekday {
    text-align:  center;
    font-weight: 600;
    color:       var(--ca-primary-bright);
    padding:     .35rem 0;
    font-size:   .85rem;
}

.calendar-day {
    aspect-ratio:    1;
    width:           100%;
    display:         flex;
    align-items:     center;
    justify-content: center;
    border-radius:   8px;
    cursor:          pointer;
    transition:      all .2s ease;
    font-weight:     500;
    font-size:       .95rem;
}

.calendar-day.available {
    background-color: transparent;
    border:           none;
    color:            var(--ca-primary);
}

.calendar-day.available:hover {
    background-color: var(--ca-primary);
    border:           none;
    color:            var(--ca-white);
    transform:        scale(1.06);
}

.calendar-day.selected {
    background-color: var(--ca-primary);
    border:           none;
    color:            var(--ca-white);
}

.calendar-day.disabled,
.calendar-day.other-month {
    background-color: transparent;
    color:            #bbb;
    cursor:           not-allowed;
    border:           none;
}

/* Time slots */
.ca-bk-time-header {
    display:     flex;
    align-items: center;
    gap:         .75rem;
    margin-top:  1.5rem;
    margin-bottom: .75rem;
}

#ca-content .ca-bk-time-header h3 {
    font-family:   var(--ca-font-body);
    font-weight:   600;
    font-size:     1.05rem;
    color:         var(--ca-primary);
    margin-bottom: 0;
}

.time-slots-grid {
    display:               grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap:                   .75rem;
    margin-top:            .5rem;
}

.time-slot-btn {
    background-color: #ffffff;
    border:           2px solid #d8cfc8;
    border-radius:    8px;
    padding:          .85rem;
    text-align:       center;
    cursor:           pointer;
    transition:       all .25s ease;
    font-weight:      500;
    color:            var(--ca-primary);
    font-size:        .95rem;
}

.time-slot-btn:hover {
    background-color: var(--ca-primary);
    border-color:     var(--ca-primary);
    color:            var(--ca-white);
    transform:        translateY(-2px);
}

.time-slot-btn.selected {
    background-color: var(--ca-primary);
    border-color:     var(--ca-primary);
    color:            var(--ca-white);
}

/* Loading */
.ca-bk-loading {
    text-align: center;
    padding:    1.5rem;
}

/* Booking summary card */
.ca-bk-summary {
    background-color: #EBDED5;
    border-left:      4px solid var(--ca-primary);
    border-radius:    8px;
    padding:          1.25rem 1.5rem;
    margin-bottom:    1.5rem;
    display:          flex;
    flex-direction:   column;
    gap:              .35rem;
}

.ca-bk-summary-item {
    font-size: .93rem;
    color:     var(--ca-text);
}

.ca-bk-summary-item strong {
    color: var(--ca-primary);
}

/* Form fields */
.ca-bk-field {
    margin-bottom: 1.25rem;
}

.ca-bk-field label {
    font-weight:   600;
    color:         var(--ca-primary);
    margin-bottom: .4rem;
    display:       block;
    font-size:     .93rem;
}

.ca-bk-input {
    width:         100%;
    border-radius: 8px;
    border:        2px solid #d8cfc8;
    padding:       .7rem .9rem;
    font-size:     .95rem;
    color:         var(--ca-text);
    background:    #ffffff;
    transition:    border-color .2s;
    outline:       none;
}

.ca-bk-input:focus {
    border-color: var(--ca-primary);
    box-shadow:   0 0 0 3px rgba(51,64,82,.1);
}

.ca-bk-check {
    display:     flex;
    align-items: flex-start;
    gap:         .6rem;
}

.ca-bk-check input[type="checkbox"] {
    margin-top: .25rem;
    flex-shrink: 0;
    accent-color: var(--ca-primary);
    width:  16px;
    height: 16px;
}

#ca-content .ca-bk-check label {
    font-size:   .88rem;
    color:       var(--ca-text-muted);
    font-weight: 400;
    margin:      0;
}

#ca-content .ca-bk-check a {
    color:           var(--ca-primary-bright);
    text-decoration: underline;
}

/* Action area */
.ca-bk-actions {
    text-align: center;
    margin-top: 1.75rem;
}

/* Next / submit button */
.ca-bk-next-btn,
.ca-bk-submit-btn {
    display:          inline-block;
    background-color: var(--ca-primary);
    color:            var(--ca-white);
    border:           none;
    border-radius:    999px;
    padding:          .75rem 2.5rem;
    font-size:        1rem;
    font-weight:      600;
    cursor:           pointer;
    transition:       all .25s ease;
    letter-spacing:   .01em;
}

.ca-bk-next-btn:hover:not(:disabled),
.ca-bk-submit-btn:hover:not(:disabled) {
    background-color: var(--ca-primary-dark);
    transform:        translateY(-2px);
    box-shadow:       0 4px 14px rgba(51,64,82,.25);
    color:            var(--ca-white);
}

.ca-bk-next-btn:disabled,
.ca-bk-submit-btn:disabled {
    background-color: #c5bfba;
    border-color:     #c5bfba;
    cursor:           not-allowed;
    opacity:          .7;
}

/* Back button */
.ca-bk-back-btn {
    background:  transparent;
    border:      none;
    color:       var(--ca-text-muted);
    padding:     .4rem 0;
    cursor:      pointer;
    font-size:   .9rem;
    transition:  color .2s;
    min-width:   100px;
    text-align:  left;
}

.ca-bk-back-btn:hover {
    color: var(--ca-primary);
}

/* Error banner */
.ca-bk-error {
    background-color: #fde8e8;
    color:            #b91c1c;
    border-radius:    8px;
    padding:          1rem 1.25rem;
    margin-top:       1rem;
    display:          flex;
    align-items:      center;
    gap:              .6rem;
    font-size:        .93rem;
}

/* Responsive */
@media (max-width: 768px) {
    .ca-bk-wrap {
        padding: 2rem .5rem 3rem;
    }

    .ca-bk-card {
        padding:       1.5rem 1.25rem;
        border-radius: 12px;
    }

    .ca-bk-spacer {
        width: 40px;
    }

    .ca-bk-back-text {
        display: none;
    }

    .choice-btn {
        flex-direction: column;
        text-align:     center;
        gap:            .75rem;
    }

    .choice-text {
        text-align: center;
    }

    .calendar-container {
        max-width: none;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    .calendar-grid {
        padding: .5rem;
    }

    .calendar-weekdays,
    .calendar-days {
        gap: .4rem;
    }

    .weekday {
        font-size: .75rem;
        padding:   .25rem 0;
    }

    .calendar-day {
        font-size: .85rem;
    }

    .time-slots-grid {
        grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    }
}

@media (max-width: 400px) {
    .weekday    { font-size: .7rem; }
    .calendar-day { font-size: .8rem; }

    .ca-header-phone-text {
        display: none;
    }

    .ca-header-phone {
        padding: 6px 8px;
    }
}

/* ---- Responsive: sidebar on small screens ---- */
@media (max-width: 767px) {
    .mc-sidebar {
        position:   fixed;
        top:        var(--ca-header-height);
        left:       0;
        z-index:    200;
        height:     calc(100vh - var(--ca-header-height));
        box-shadow: 4px 0 20px rgba(0,0,0,.1);
        transform:  translateX(-100%);
    }

    .mc-layout {
        margin-top: -40px;
    }

    .mc-main {
        padding: 1.5rem 1rem 2rem;
    }
}

/* ============================================================
   NEWS PAGES  (ca-news-*)
   ============================================================ */

/* Hero */
.ca-news-hero {
    background-color: var(--ca-primary);
    color:            var(--ca-white);
    text-align:       center;
    padding:          4rem 1.5rem 3.5rem;
    margin-top:       calc(-1 * (var(--ca-header-height) + 40px));
    padding-top:      calc(var(--ca-header-height) + 40px + 3rem);
}

#ca-content .ca-news-hero h1 {
    font-family:   var(--ca-font-heading);
    font-size:     38px;
    line-height:   52px;
    letter-spacing: .05em;
    color:         var(--ca-white);
    margin-bottom: .75rem;
}

#ca-content .ca-news-hero p {
    font-size:   16px;
    line-height: 26px;
    color:       var(--ca-white);
    max-width:   540px;
    margin:      0 auto;
}

.ca-news-article-date {
    margin-bottom:    1rem;
    display:          inline-block;
}

/* List section */
.ca-news-list-section {
    background-color: #ffffff;
    padding:          3rem 1.5rem 4rem;
}

.ca-news-empty {
    text-align: center;
    color:      var(--ca-text-muted);
    padding:    3rem 0;
}

/* Grid */
.ca-news-grid {
    display:               grid;
    grid-template-columns: repeat(3, 1fr);
    gap:                   12px;
    max-width:             1080px;
    margin:                0 auto 3rem;
}

/* Card */
.ca-news-card {
    background-color: var(--ca-primary);
    border-radius:    12px;
    display:          flex;
    flex-direction:   column;
    text-decoration:  none;
    overflow:         hidden;
    transition:       transform .2s ease, box-shadow .2s ease;
}

.ca-news-card:hover {
    background-color: var(--ca-primary-bright);
    transform:        translateY(-4px);
    box-shadow:       0 8px 24px rgba(0,0,0,.2);
}

.ca-news-card:hover .ca-news-date-badge {
    background-color: var(--ca-primary);
    color:            var(--ca-white);
}

/* Card image (optional, sits above the body) */
.ca-news-card-image {
    width:        100%;
    aspect-ratio: 16 / 9;
    overflow:     hidden;
    flex-shrink:  0;
    line-height:  0;
}

.ca-news-card-image img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
    transition: transform .35s ease;
}

.ca-news-card:hover .ca-news-card-image img {
    transform: scale(1.05);
}

.ca-news-card-body {
    padding: 1.5rem 1.5rem 1rem;
    flex:    1;
}

.ca-news-date-badge {
    background-color: var(--ca-primary-bright);
    color:            var(--ca-white);
    margin-bottom:    .75rem;
    display:          inline-block;
}

#ca-content .ca-news-card h3 {
    font-family:   var(--ca-font-body);
    font-weight:   600;
    font-size:     18px;
    line-height:   28px;
    color:         var(--ca-white);
    margin-bottom: .5rem;
}

#ca-content .ca-news-card p {
    color:       rgba(252,242,233,.75);
    margin:      0;
}

.ca-news-card-footer {
    padding:     .85rem 1.5rem;
    border-top:  1px solid rgba(255,255,255,.12);
    font-size:   .88rem;
    font-weight: 600;
    color:       var(--ca-white);
    display:     flex;
    align-items: center;
    gap:         .35rem;
}

/* Pagination */
.ca-news-pagination {
    display:         flex;
    justify-content: center;
    align-items:     center;
    gap:             .5rem;
    max-width:       1080px;
    margin:          0 auto;
}

.ca-news-page-btn {
    display:          inline-flex;
    align-items:      center;
    justify-content:  center;
    width:            38px;
    height:           38px;
    border-radius:    8px;
    background-color: #ffffff;
    color:            var(--ca-primary);
    text-decoration:  none;
    font-weight:      600;
    font-size:        .9rem;
    transition:       background-color .2s, color .2s;
}

.ca-news-page-btn:hover {
    background-color: var(--ca-primary);
    color:            var(--ca-white);
}

.ca-news-page-btn--active {
    background-color: var(--ca-primary);
    color:            var(--ca-white);
    pointer-events:   none;
}

/* Article section */
.ca-news-article-section {
    padding:          60px 0;
}

.ca-news-back-link {
    display:         inline-flex;
    align-items:     center;
    color:           var(--ca-primary-bright);
    text-decoration: none;
    font-weight:     600;
    font-size:       .93rem;
    margin-bottom:   2rem;
    transition:      opacity .15s;
}

.ca-news-back-link:hover {
    opacity: .75;
}

/* Article hero image – sits on top of the article body, sharing the same width */
.ca-news-article-figure {
    max-width:     760px;
    margin:        0 auto;
    padding:       0;
    border-radius: 16px 16px 0 0;
    overflow:      hidden;
    line-height:   0;
}

.ca-news-article-figure img {
    width:      100%;
    height:     380px;
    object-fit: cover;
    display:    block;
}

.ca-news-article-body {
    background-color: #ffffff;
    border-radius:    16px;
    max-width:        900px;
    margin:           0 auto;
    padding:          2rem 2.5rem;
    color:            var(--ca-text);
}

/* When an image is present, flatten the top corners so image + body read as one block */
.ca-news-article-body--with-image {
    border-radius: 0 0 16px 16px;
}

#ca-content .ca-news-article-body h1,
#ca-content .ca-news-article-body h2,
#ca-content .ca-news-article-body h3 {
    color: var(--ca-primary);
}

/* Responsive */
@media (max-width: 900px) {
    .ca-news-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .ca-news-article-section {
        padding: 42px 0;
    }
}

@media (max-width: 600px) {
    .ca-news-grid {
        grid-template-columns: 1fr;
    }

    .ca-news-article-figure img {
        height: 220px;
    }

    .ca-news-article-body {
        padding: 1.5rem 1.25rem;
    }

    #ca-content .ca-news-hero h1 {
        font-size:   28px;
        line-height: 38px;
    }
}

@media (max-width: 368px) {
    .ca-partners--with-image .ca-partners-stats {
        gap: 0;
    }
    .ca-partners-stats {
        align-items:unset;
    }
}

/* ============================================================
   Contact Panel (slide-in booking + contact)
   ============================================================ */
.spam-protection span:nth-child(1), .spam-protection span:nth-child(3) {
    display: none;
}

#contactPanel {
    width: 500px;
    max-width: 100vw;
}

.contact-panel-body {
    padding: 0;
    overflow-y: auto;
    position: relative;
}

.cpanel-floating-nav {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem 0.5rem;
    background: #fff;
}

.cpanel-back-btn {
    font-size: 0.9rem;
    color: #555 !important;
}

.cpanel-back-btn:hover {
    color: var(--ca-primary) !important;
}

.cpanel-close-x {
    font-size: 1.25rem;
    color: #555 !important;
    line-height: 1;
}

.cpanel-close-x:hover {
    color: var(--ca-primary) !important;
}

.contact-panel-inner {
    padding: 0.5rem 1.5rem 2rem;
}

.cpanel-step-title {
    font-size: 1.35rem;
    font-weight: 700;
    color: #333;
    margin-bottom: 0.35rem;
}

.cpanel-step-subtitle {
    color: #666;
    font-size: 0.95rem;
    margin-bottom: 1.25rem;
}

.cpanel-choice-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.cpanel-choice-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #fff;
    border: 2px solid var(--ca-border);
    border-radius: 12px;
    padding: 1rem 1.25rem;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
    width: 100%;
}

.cpanel-choice-card:hover {
    border-color: var(--ca-primary);
    background: var(--ca-bg);
    box-shadow: 0 3px 10px rgba(var(--ca-primary-rgb), .12);
}

.cpanel-choice-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: var(--ca-bg-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    color: var(--ca-primary);
    transition: background 0.2s ease, color 0.2s ease;
}

.cpanel-choice-card:hover .cpanel-choice-icon {
    background: var(--ca-primary);
    color: var(--ca-white);
}

.cpanel-choice-text {
    flex: 1;
    min-width: 0;
}

.cpanel-choice-text h4 {
    margin: 0 0 0.2rem;
    font-size: 1rem;
    font-weight: 600;
    color: #333;
}

.cpanel-choice-text p {
    margin: 0;
    font-size: 0.875rem;
    color: #777;
    line-height: 1.4;
}

.cpanel-choice-arrow {
    flex-shrink: 0;
    color: #bbb;
    font-size: 0.85rem;
    transition: color 0.2s, transform 0.2s;
}

.cpanel-choice-card:hover .cpanel-choice-arrow {
    color: var(--ca-primary);
    transform: translateX(3px);
}

.cpanel-badge {
    display: inline-block;
    background: var(--ca-bg-dark);
    color: var(--ca-primary);
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.3rem 0.75rem;
    border-radius: 20px;
}

.cpanel-badge-secondary {
    background: #e8e8e8;
    color: #444;
}

.cpanel-info-card {
    background: var(--ca-bg);
    border-radius: 10px;
    padding: 1rem 1.25rem;
}

.cpanel-info-row {
    padding: 0.35rem 0;
    font-size: 0.9rem;
    color: #444;
}

.cpanel-info-row + .cpanel-info-row {
    border-top: 1px solid var(--ca-border);
}

.cpanel-loading {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #666;
    font-size: 0.9rem;
    padding: 0.5rem 0;
}

.cpanel-calendar-wrap {
    background: #fff;
    border: 2px solid var(--ca-border);
    border-radius: 12px;
    overflow: hidden;
}

.cpanel-cal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    background: var(--ca-bg);
    border-bottom: 1px solid var(--ca-border);
}

.cpanel-month-year {
    font-weight: 600;
    color: #333;
    font-size: 1rem;
}

.cpanel-cal-nav {
    background: none;
    border: none;
    color: var(--ca-primary);
    cursor: pointer;
    padding: 0.3rem 0.6rem;
    border-radius: 6px;
    transition: background 0.2s;
}

.cpanel-cal-nav:hover {
    background: var(--ca-bg-dark);
}

.cpanel-cal-grid {
    padding: 0.75rem;
}

.cpanel-cal-weekdays {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 3px;
    margin-bottom: 4px;
}

.cpanel-cal-weekdays div {
    text-align: center;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--ca-primary);
    padding: 0.3rem 0;
}

.cpanel-cal-days {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 3px;
}

.cpanel-cal-day {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: default;
    transition: all 0.15s ease;
}

.cpanel-cal-day.available {
    background: #fff;
    border: 2px solid var(--ca-border);
    color: #333;
    cursor: pointer;
}

.cpanel-cal-day.available:hover {
    background: var(--ca-primary);
    border-color: var(--ca-primary);
    color: var(--ca-white);
}

.cpanel-cal-day.selected {
    background: var(--ca-primary);
    border: 2px solid var(--ca-primary);
    color: var(--ca-white);
}

.cpanel-cal-day.disabled,
.cpanel-cal-day.other-month {
    background: #f5f2ef;
    color: #ccc;
}

.cpanel-time-slots-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 0.6rem;
}

.cpanel-time-btn {
    background: #fff;
    border: 2px solid var(--ca-border);
    border-radius: 8px;
    padding: 0.65rem 0.5rem;
    text-align: center;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    color: #333;
}

.cpanel-time-btn:hover {
    background: var(--ca-primary);
    border-color: var(--ca-primary);
    color: var(--ca-white);
}

.cpanel-time-btn.selected {
    background: var(--ca-primary);
    border-color: var(--ca-primary);
    color: var(--ca-white);
}

.cpanel-btn-primary {
    background-color: var(--ca-primary) !important;
    border-color: var(--ca-primary) !important;
}

.cpanel-btn-primary:hover:not(:disabled) {
    background-color: var(--ca-primary-dark) !important;
    border-color: var(--ca-primary-dark) !important;
}

.cpanel-btn-primary:disabled {
    background-color: #a8b0bc !important;
    border-color: #a8b0bc !important;
    cursor: not-allowed;
}

.cpanel-method-link {
    display: block;
    width: 100%;
    margin: 0 0 1rem;
    padding: 0;
    background: none;
    border: none;
    font-size: 0.85rem;
    color: #777;
    text-align: left;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    transition: color 0.2s ease;
}

.cpanel-method-link:hover {
    color: var(--ca-primary);
}

#contactPanel .form-control:focus {
    border-color: var(--ca-primary);
    box-shadow: 0 0 0 0.2rem rgba(var(--ca-primary-rgb), .15);
}

#contactPanel .form-check-input:checked {
    background-color: var(--ca-primary);
    border-color: var(--ca-primary);
}

@media (max-width: 576px) {
    #contactPanel {
        width: 100vw;
    }

    .cpanel-floating-nav {
        padding: 0.75rem 1rem 0.4rem;
    }

    .contact-panel-inner {
        padding: 0.25rem 1rem 1.75rem;
    }

    .cpanel-time-slots-grid {
        grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
    }
}

/* ---- Mitt Cynk errand progress card (private insurance) ---- */
.mc-section-label {
    font-family: var(--ca-font-heading);
    color:       var(--ca-primary);
    font-size:   1.15rem;
    margin:      0 0 1rem;
}

.mc-errand-list {
    display:        flex;
    flex-direction: column;
    gap:            1rem;
    width:          100%;
    min-width:      0;
}

.mc-errand-list-card {
    background:     #fff;
    border:         1.5px solid #C7C7C7;
    border-radius:  var(--ca-radius-lg);
    padding:        1.35rem 1.5rem;
    display:        flex;
    flex-direction: column;
    gap:            .65rem;
    width:          100%;
    min-width:      0;
    max-width:      100%;
    box-sizing:     border-box;
}

.mc-errand-list-card-head {
    display:     flex;
    align-items: flex-start;
    gap:         1rem;
    min-width:   0;
}

.mc-errand-list-card-head > div {
    min-width:     0;
    flex:          1;
    overflow-wrap: break-word;
    word-wrap:     break-word;
}

.mc-errand-list-card-icon {
    width:           44px;
    height:          44px;
    border-radius:   50%;
    background:      var(--ca-bg-dark);
    color:           var(--ca-primary-bright);
    display:         flex;
    align-items:     center;
    justify-content: center;
    flex-shrink:     0;
    font-size:       1.35rem;
}

.mc-errand-list-card-title {
    margin:        0 0 .25rem;
    font-size:     1.05rem;
    font-weight:   600;
    color:         var(--ca-primary);
    overflow-wrap: break-word;
    word-wrap:     break-word;
    hyphens:       auto;
}

.mc-errand-list-card-person {
    margin:        0;
    font-size:     .9rem;
    color:         var(--ca-text-muted);
    overflow-wrap: anywhere;
    word-break:    break-word;
}

.mc-errand-list-card-status {
    margin:      0;
    font-size:   .9rem;
    color:       var(--ca-text);
    display:     flex;
    align-items: center;
    gap:         .5rem;
    flex-wrap:   wrap;
}

.mc-errand-list-card-started {
    color: var(--ca-text-muted);
}

.mc-errand-list-badge {
    display:       inline-block;
    padding:       .15rem .55rem;
    border-radius: 999px;
    font-size:     .78rem;
    font-weight:   600;
    background:    rgba(var(--ca-primary-rgb), .1);
    color:         var(--ca-primary);
}

.mc-errand-list-badge--done {
    background: rgba(var(--ca-primary-rgb), .08);
}

.mc-errand-list-card--insurance {
    gap: .85rem;
}

.mc-errand-list-card--advice {
    --mc-card-accent: var(--ca-primary);
}

.mc-errand-list-card--advice .mc-errand-status-hero--ongoing .mc-errand-status-hero-icon {
    background: rgba(var(--ca-primary-rgb), .1);
    color:      var(--ca-primary);
}

.mc-errand-list-card-header {
    display:        flex;
    flex-direction: column;
    gap:            .5rem;
    padding-bottom: .85rem;
    border-bottom:  1px solid var(--ca-border);
}

.mc-errand-list-card-closed,
.mc-errand-list-card-worked {
    color: var(--ca-text-muted);
}

.mc-errand-card-columns {
    display:               grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap:                   0;
    align-items:           stretch;
    width:                 100%;
    min-width:             0;
}

.mc-errand-card-left,
.mc-errand-card-right {
    min-width:     0;
    max-width:     100%;
    overflow-wrap: break-word;
    word-wrap:     break-word;
}

.mc-errand-card-left {
    display:        flex;
    flex-direction: column;
    gap:            1rem;
    height:         100%;
    padding-right:  1.25rem;
    border-right:   1px solid #e0e0e0;
}

.mc-errand-card-right {
    background: #fff;
    padding:    0 0 0 1.25rem;
    min-height: 10rem;
    overflow:   hidden;
}

.mc-errand-right-placeholder {
    margin:      0;
    font-size:   .9rem;
    color:       var(--ca-text-muted);
    line-height: 1.55;
}

.mc-errand-status-hero {
    display:     flex;
    align-items: flex-start;
    gap:         .85rem;
    min-width:   0;
    flex-shrink: 0;
}

.mc-errand-status-hero-text {
    min-width:     0;
    flex:          1;
    overflow-wrap: break-word;
}

.mc-errand-status-hero-icon {
    width:           44px;
    height:          44px;
    border-radius:   50%;
    display:         flex;
    align-items:     center;
    justify-content: center;
    flex-shrink:     0;
    font-size:       1.5rem;
}

.mc-errand-status-hero--ongoing .mc-errand-status-hero-icon {
    background: rgba(var(--ca-primary-rgb), .1);
    color:      var(--ca-primary);
}

.mc-errand-status-hero--done .mc-errand-status-hero-icon {
    background: rgba(30, 110, 60, .14);
    color:      #1a6b38;
}

.mc-errand-status-hero-title {
    margin:      0 0 .35rem;
    font-size:   1rem;
    font-weight: 600;
    color:       var(--ca-primary);
}

.mc-errand-status-hero-body,
.mc-errand-status-hero-result {
    margin:      0;
    font-size:   .9rem;
    line-height: 1.55;
    color:       var(--ca-text);
}

.mc-errand-status-hero-download-hint {
    margin:      .45rem 0 0;
    font-size:   .88rem;
    line-height: 1.55;
    color:       var(--ca-text-muted);
}

.mc-errand-card-actions {
    display:        flex;
    flex-direction: column;
    align-items:    stretch;
    gap:            .75rem;
    width:          100%;
    min-width:      0;
    margin-top:     auto;
    flex-shrink:    0;
}

.mc-errand-card-actions .mc-errand-action-btn {
    align-self:      stretch;
    width:           100%;
    justify-content: center;
    box-sizing:      border-box;
    display:         inline-flex;
    align-items:     center;
    gap:             .35rem;
}

.mc-errand-download-label--short {
    display: none;
}

.mc-errand-yes-panel {
    display:        flex;
    flex-direction: column;
    gap:            .85rem;
    min-width:      0;
    max-width:      100%;
}

.mc-errand-yes-panel-head {
    display:     flex;
    align-items: flex-start;
    gap:         .75rem;
    min-width:   0;
}

.mc-errand-yes-panel-head > div {
    min-width:     0;
    flex:          1;
    overflow-wrap: break-word;
}

.mc-errand-yes-panel-icon {
    width:           40px;
    height:          40px;
    border-radius:   50%;
    background:      rgba(30, 110, 60, .14);
    color:           #1a6b38;
    display:         flex;
    align-items:     center;
    justify-content: center;
    flex-shrink:     0;
    font-size:       1.35rem;
}

.mc-errand-yes-panel-title {
    margin:      0 0 .15rem;
    font-size:   .92rem;
    font-weight: 600;
    color:       var(--ca-text);
}

.mc-errand-yes-panel-count {
    margin:      0;
    font-size:   2rem;
    font-weight: 700;
    line-height: 1;
    color:       #1a6b38;
}

.mc-errand-yes-panel-sub {
    margin:      .2rem 0 0;
    font-size:   .78rem;
    color:       var(--ca-text-muted);
    line-height: 1.4;
}

.mc-errand-yes-panel-icon--neutral {
    background: rgba(var(--ca-primary-rgb), .1);
    color:      var(--ca-primary);
}

.mc-errand-no-engagements-text {
    margin:      .45rem 0 0;
    font-size:   .85rem;
    line-height: 1.55;
    color:       var(--ca-text-muted);
}

.mc-errand-yes-panel-list {
    gap:       .45rem;
    min-width: 0;
}

.mc-errand-card-right .mc-errand-yes-panel-lazy,
.mc-errand-card-right .mc-errand-progress-loading {
    padding:   0;
    min-width: 0;
    max-width: 100%;
}

.mc-errand-expand-btn {
    gap: .35rem;
}

.mc-errand-expand-icon {
    font-size:  1.15rem;
    transition: transform .2s ease;
}

.mc-errand-expand-btn.is-expanded .mc-errand-expand-icon {
    transform: rotate(180deg);
}

.mc-errand-card-body {
    display:        flex;
    flex-direction: column;
    gap:            .75rem;
    margin-top:     .85rem;
    padding-top:    .85rem;
    border-top:     1px solid var(--ca-border);
}

.mc-errand-card-body[hidden] {
    display: none;
}

.mc-errand-progress-loading {
    display:     flex;
    align-items: center;
    gap:         .65rem;
    padding:     .5rem 0;
    color:       var(--ca-text-muted);
    font-size:   .92rem;
}

.mc-errand-spinner.spinner-border {
    color: var(--ca-primary);
}

.mc-errand-details-loading {
    justify-content: center;
    min-height:      4.5rem;
    padding:         1.25rem 0;
}

.mc-errand-progress-error {
    margin:    0;
    padding:   .5rem 0;
    color:     var(--ca-primary);
    font-size: .92rem;
}

.mc-inv-progress-list {
    list-style:     none;
    margin:         0;
    padding:        0;
    display:        flex;
    flex-direction: column;
    gap:            .5rem;
}

.mc-inv-progress-item {
    border:            1px solid var(--ca-border);
    border-radius:     var(--ca-radius-md);
    padding:           .7rem .9rem;
    border-left-width: 4px;
}

.mc-inv-progress-item--yes {
    background:        rgba(30, 110, 60, .09);
    border-color:      rgba(30, 110, 60, .28);
    border-left-color: #1a6b38;
}

.mc-inv-progress-item--no {
    background:        rgba(170, 45, 45, .07);
    border-color:      rgba(170, 45, 45, .25);
    border-left-color: #9a2b2b;
}

.mc-inv-progress-item--unknown {
    background:        rgba(140, 100, 40, .08);
    border-color:      rgba(140, 100, 40, .22);
    border-left-color: #9a7428;
}

.mc-inv-progress-item--pending {
    background:        var(--ca-bg-dark);
    border-color:      var(--ca-border);
    border-left-color: var(--ca-text-muted);
}

.mc-inv-progress-item-row {
    display:     flex;
    align-items: center;
    gap:         .65rem;
    flex-wrap:   wrap;
}

.mc-inv-progress-status {
    flex-shrink:    0;
    display:        inline-flex;
    align-items:    center;
    gap:            .3rem;
    font-size:      .72rem;
    font-weight:    700;
    text-transform: uppercase;
    letter-spacing: .03em;
    padding:        .28rem .6rem;
    border-radius:  999px;
    line-height:    1.2;
}

.mc-inv-progress-status-icon {
    font-size: 1rem !important;
}

.mc-inv-progress-status--yes {
    background: #1a6b38;
    color:      #fff;
}

.mc-inv-progress-status--no {
    background: #9a2b2b;
    color:      #fff;
}

.mc-inv-progress-status--unknown {
    background: #9a7428;
    color:      #fff;
}

.mc-inv-progress-status--company-name {
    text-transform: none;
    letter-spacing: normal;
    font-weight:    600;
    font-size:      .8rem;
    white-space:    normal;
    line-height:    1.3;
}

.mc-inv-progress-status--pending {
    background: rgba(var(--ca-primary-rgb), .12);
    color:      var(--ca-text-muted);
}

.mc-inv-progress-company {
    font-size:     .92rem;
    font-weight:   600;
    color:         var(--ca-text);
    overflow-wrap: break-word;
    word-wrap:     break-word;
}

.mc-inv-item-toggle {
    margin-top:            .5rem;
    padding:               0;
    border:                none;
    background:            none;
    font-size:             .82rem;
    font-weight:           600;
    color:                 var(--ca-primary);
    cursor:                pointer;
    text-decoration:       underline;
    text-underline-offset: 2px;
}

.mc-inv-item-toggle:hover {
    color: var(--ca-primary-bright);
}

.mc-inv-item-extra {
    margin-top: .55rem;
    font-size:  .88rem;
    color:      var(--ca-text);
}

.mc-inv-item-extra[hidden] {
    display: none;
}

.mc-inv-progress-note-label {
    display:        block;
    font-size:      .72rem;
    font-weight:    600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color:          var(--ca-text-muted);
    margin-bottom:  .25rem;
}

.mc-inv-progress-note p {
    margin:      0;
    line-height: 1.55;
}

.mc-inv-progress-docs {
    margin-top: .65rem;
}

.mc-inv-progress-doc-list {
    list-style:     none;
    margin:         0;
    padding:        0;
    display:        flex;
    flex-direction: column;
    gap:            .35rem;
}

.mc-inv-progress-doc-link {
    display:         inline-flex;
    align-items:     center;
    gap:             .35rem;
    color:           var(--ca-primary);
    font-weight:     600;
    text-decoration: none;
    font-size:       .88rem;
}

.mc-inv-progress-doc-link:hover {
    text-decoration: underline;
}

.mc-inv-progress-item--compact {
    position:          relative;
    padding:           .65rem .75rem;
    border-left-width: 3px;
}

.mc-inv-progress-item--compact .mc-inv-progress-item-row {
    flex-wrap: nowrap;
    position:  relative;
}

.mc-inv-item-toggle--card {
    position:   absolute;
    inset:      0;
    margin:     0;
    padding:    0;
    border:     none;
    background: none;
    opacity:    0;
    cursor:     pointer;
    z-index:    1;
}

.mc-inv-progress-item-check {
    color:       #1a6b38;
    font-size:   1.2rem !important;
    flex-shrink: 0;
}

.mc-inv-progress-item-main {
    flex:      1;
    min-width: 0;
}

.mc-inv-progress-item-chevron {
    color:      var(--ca-text-muted);
    font-size:  1.1rem !important;
    flex-shrink: 0;
    transition: transform .2s ease;
}

.mc-inv-progress-item--compact.is-expanded .mc-inv-progress-item-chevron {
    transform: rotate(90deg);
}

.mc-inv-details-empty {
    margin:    0;
    padding:   .5rem 0;
    color:     var(--ca-text-muted);
    font-size: .9rem;
}

.mc-inv-tabs {
    display:        flex;
    flex-direction: column;
    gap:            .85rem;
}

.mc-inv-tabs-bar {
    display:   flex;
    flex-wrap: wrap;
    gap:       .5rem;
}

.mc-inv-tabs-bar .mc-inv-tab {
    white-space: normal;
    font-size:   .88rem;
    padding:     10px 18px;
    line-height: 1.35;
    align-self:  auto;
}

.mc-inv-tabs-bar .mc-inv-tab:not(.is-active):hover {
    background:   var(--ca-primary);
    color:        #fff;
    border-color: var(--ca-primary);
}

.mc-inv-tabs-bar .mc-inv-tab:not(.is-active):hover .mc-inv-tab-count {
    background: rgba(255, 255, 255, .22);
    color:      #fff;
}

.mc-inv-tabs-bar .mc-inv-tab.is-active {
    background:   var(--ca-primary);
    color:        #fff;
    border-color: var(--ca-primary);
    box-shadow:   0 4px 12px rgba(var(--ca-primary-rgb), .25);
}

.mc-inv-tabs-bar .mc-inv-tab.is-active:hover {
    background: var(--ca-primary-dark);
    color:      #fff;
}

.mc-inv-tabs-bar .mc-inv-tab.is-active:hover .mc-inv-tab-count {
    background: rgba(255, 255, 255, .22);
    color:      #fff;
}

.mc-inv-tab-count {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    min-width:       1.35rem;
    height:          1.35rem;
    padding:         0 .35rem;
    border-radius:   999px;
    background:      rgba(var(--ca-primary-rgb), .1);
    font-size:       .72rem;
    font-weight:     700;
    color:           var(--ca-primary);
    flex-shrink:     0;
}

.mc-inv-tabs-bar .mc-inv-tab.is-active .mc-inv-tab-count {
    background: rgba(255, 255, 255, .22);
    color:      #fff;
}

.mc-inv-tab-panel {
    display: none;
}

.mc-inv-tab-panel.is-active {
    display: block;
}

.mc-inv-tab-panel[hidden] {
    display: none !important;
}

.mc-inv-tab-intro {
    margin:        0 0 .85rem;
    padding:       .75rem .9rem;
    background:    rgba(140, 100, 40, .08);
    border-left:   3px solid #9a7428;
    border-radius: var(--ca-radius-md);
    font-size:     .88rem;
    line-height:   1.55;
    color:         var(--ca-text);
}

.mc-inv-tab-intro p {
    margin: 0;
}

@media (max-width: 768px) {
    .mc-errand-list-card {
        padding: 1rem 1.1rem;
    }

    .mc-errand-list-card-header {
        gap: .65rem;
    }

    .mc-errand-list-card-head {
        gap:         0;
        align-items: flex-start;
    }

    .mc-errand-list-card-icon {
        display: none;
    }

    .mc-errand-list-card-title {
        font-size:   .8rem;
        line-height: 1.35;
    }

    .mc-errand-list-card-person {
        font-size:   .8rem;
        line-height: 1.45;
    }

    .mc-errand-list-card-status {
        flex-direction: column;
        align-items:    flex-start;
        gap:            .3rem;
        font-size:      .78rem;
        line-height:    1.45;
        padding-left:   0;
        margin-top:     0;
    }

    .mc-errand-list-card-started,
    .mc-errand-list-card-closed,
    .mc-errand-list-card-worked {
        display: block;
    }

    .mc-errand-list-card-closed::before,
    .mc-errand-list-card-worked::before {
        content: none;
    }

    .mc-errand-card-columns {
        grid-template-columns: 1fr;
    }

    .mc-errand-card-left {
        padding-right:  0;
        border-right:   none;
        padding-bottom: 1rem;
        border-bottom:  1px solid #e0e0e0;
        gap:            .75rem;
    }

    .mc-errand-card-right {
        min-height: 0;
        padding:    1rem 0 0;
    }

    .mc-errand-status-hero {
        gap: 0;
    }

    .mc-errand-status-hero-icon {
        display: none;
    }

    .mc-errand-status-hero-title {
        font-size:   .84rem;
        line-height: 1.35;
    }

    .mc-errand-status-hero-body,
    .mc-errand-status-hero-download-hint {
        font-size:   .82rem;
        line-height: 1.5;
    }

    .mc-errand-yes-panel-head {
        gap: 0;
    }

    .mc-errand-yes-panel-icon {
        display: none;
    }

    .mc-errand-yes-panel-title {
        font-size: .82rem;
    }

    .mc-errand-yes-panel-count {
        font-size: 1.65rem;
    }

    .mc-errand-yes-panel-sub,
    .mc-errand-no-engagements-text,
    .mc-errand-right-placeholder {
        font-size:   .82rem;
        line-height: 1.5;
    }

    .mc-errand-download-label--full {
        display: none;
    }

    .mc-errand-download-label--short {
        display: inline;
    }

    .mc-inv-tabs-bar {
        display:        flex;
        flex-direction: column;
        align-items:    stretch;
        gap:            .45rem;
    }

    .mc-inv-tabs-bar .mc-inv-tab {
        width:           100%;
        justify-content: center;
        font-size:       .8rem;
        padding:         10px 14px;
    }
}

/* ---- Genomgång booking panel (completed errand card) ---- */
.mc-genomgang {
    margin-top:  1rem;
    padding-top: 1rem;
    border-top:  1px solid var(--ca-border);
}

.mc-genomgang-title {
    margin:      0 0 .35rem;
    font-size:   1.05rem;
    font-weight: 600;
    color:       var(--ca-primary);
}

.mc-genomgang-teaser {
    margin:      .55rem 0 0;
    font-size:   .85rem;
    line-height: 1.45;
    color:       var(--ca-text-muted);
}

.mc-genomgang-open-btn {
    width:           100%;
    justify-content: center;
    gap:             .35rem;
}

.mc-genomgang-open-icon {
    font-size:  1.15rem;
    transition: transform .2s ease;
}

.mc-genomgang-open-btn.is-expanded .mc-genomgang-open-icon {
    transform: rotate(180deg);
}

.mc-genomgang-panel {
    display:               grid;
    grid-template-rows:    0fr;
    opacity:               0;
    transition:            grid-template-rows .3s ease, opacity .25s ease;
    margin-top:            .85rem;
}

.mc-genomgang-panel.is-open {
    grid-template-rows: 1fr;
    opacity:            1;
}

.mc-genomgang-panel[hidden] {
    display: none;
}

.mc-genomgang-panel:not([hidden]) {
    display: grid;
}

.mc-genomgang-panel-inner {
    overflow: hidden;
    min-height: 0;
}

.mc-genomgang-booked {
    display:     flex;
    align-items: flex-start;
    gap:         .85rem;
}

.mc-genomgang-booked-icon {
    width:           40px;
    height:          40px;
    border-radius:   50%;
    background:      rgba(30, 110, 60, .14);
    color:           #1a6b38;
    display:         flex;
    align-items:     center;
    justify-content: center;
    flex-shrink:     0;
    font-size:       1.35rem;
}

.mc-genomgang-booked-meta {
    margin:      0;
    font-size:   .92rem;
    color:       var(--ca-text);
}

.mc-genomgang-error {
    margin-bottom:  .85rem;
    padding:        .65rem .85rem;
    border-radius:  var(--ca-radius-md);
    background:     rgba(170, 45, 45, .08);
    color:          #8f2424;
    font-size:      .88rem;
}

.mc-genomgang-cal {
    margin-bottom: .85rem;
    width:         100%;
    max-width:     none;
    display:       flex;
    flex-direction: column;
    align-items:   center;
}

.mc-genomgang-cal-nav {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    margin-bottom:   .65rem;
    width:           calc(5 * 120px + 4 * .5rem);
    max-width:       100%;
}

.mc-genomgang-cal-label {
    font-weight: 600;
    font-size:   1.15rem;
    color:       var(--ca-primary);
}

.mc-genomgang-cal-prev,
.mc-genomgang-cal-next {
    border:        none;
    background:    var(--ca-bg-dark);
    width:         44px;
    height:        44px;
    border-radius: 50%;
    font-size:     1.5rem;
    line-height:   1;
    cursor:        pointer;
    color:         var(--ca-primary);
}

.mc-genomgang-cal-prev:hover,
.mc-genomgang-cal-next:hover {
    background: rgba(var(--ca-primary-rgb), .15);
}

.mc-genomgang-cal-weekdays {
    display:               grid;
    grid-template-columns: repeat(5, 120px);
    gap:                   .5rem;
    margin-bottom:         .45rem;
    text-align:            center;
    font-size:             1rem;
    font-weight:           600;
    color:                 var(--ca-text-muted);
    justify-content:       center;
}

.mc-genomgang-cal-days {
    display:               grid;
    grid-template-columns: repeat(5, 120px);
    gap:                   .5rem;
    justify-content:       center;
}

.mc-genomgang-cal-loading,
.mc-genomgang-slots-loading {
    display:     flex;
    align-items: center;
    gap:         .5rem;
    padding:     .5rem 0;
    color:       var(--ca-text-muted);
    font-size:   .92rem;
}

.mc-genomgang-cal-loading[hidden],
.mc-genomgang-slots-loading[hidden] {
    display: none !important;
}

.mc-genomgang-cal-day {
    width:           120px;
    height:          80px;
    aspect-ratio:    auto;
    border:          1.5px solid var(--ca-border);
    border-radius:   10px;
    background:      #fff;
    display:         flex;
    align-items:     center;
    justify-content: center;
    font-size:       1.15rem;
    font-weight:     600;
    padding:         0;
    color:           var(--ca-text-muted);
}

.mc-genomgang-cal-day.available {
    cursor:      pointer;
    color:       var(--ca-primary);
    font-weight: 700;
    background:  rgba(var(--ca-primary-rgb), .06);
}

.mc-genomgang-cal-day.available:hover {
    background: rgba(var(--ca-primary-rgb), .14);
}

.mc-genomgang-cal-day.selected {
    background:   var(--ca-primary);
    color:        #fff;
    border-color: var(--ca-primary);
}

.mc-genomgang-cal-day.disabled,
.mc-genomgang-cal-day.other-month {
    opacity: .4;
    cursor:  default;
    width:   120px;
    height:  80px;
}

@media (max-width: 700px) {
    .mc-genomgang-cal-nav,
    .mc-genomgang-cal-weekdays,
    .mc-genomgang-cal-days {
        width: 100%;
    }

    .mc-genomgang-cal-weekdays,
    .mc-genomgang-cal-days {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .mc-genomgang-cal-day,
    .mc-genomgang-cal-day.disabled,
    .mc-genomgang-cal-day.other-month {
        width:  100%;
        height: 64px;
    }
}

.mc-genomgang-slots-label {
    margin:      0 0 .45rem;
    font-size:   .82rem;
    font-weight: 600;
    color:       var(--ca-primary);
}

.mc-genomgang-slots-grid {
    display:       flex;
    flex-wrap:     wrap;
    gap:           .35rem;
    margin-bottom: .85rem;
}

.mc-genomgang-slot {
    border:        1px solid var(--ca-border);
    background:    #fff;
    border-radius: 999px;
    padding:       .28rem .65rem;
    font-size:     .78rem;
    font-weight:   600;
    color:         var(--ca-primary);
    cursor:        pointer;
}

.mc-genomgang-slot:hover {
    border-color: var(--ca-primary);
}

.mc-genomgang-slot.selected {
    background:   var(--ca-primary);
    color:        #fff;
    border-color: var(--ca-primary);
}

.mc-genomgang-slots-empty {
    margin:    0;
    font-size: .82rem;
    color:     var(--ca-text-muted);
}

.mc-genomgang-field {
    margin-bottom: .85rem;
}

.mc-genomgang-field label {
    display:       block;
    font-size:     .82rem;
    font-weight:   600;
    margin-bottom: .3rem;
    color:         var(--ca-primary);
}

.mc-genomgang-field .required {
    color: #8f2424;
}

.mc-genomgang-field .optional {
    font-weight: 400;
    color:       var(--ca-text-muted);
}

.mc-genomgang-field-hint {
    margin:      0 0 .35rem;
    font-size:   .78rem;
    line-height: 1.4;
    color:       var(--ca-text-muted);
}

.mc-genomgang-field .form-control {
    border-radius: var(--ca-radius-md);
    border-color:  var(--ca-border);
    font-size:     .9rem;
    padding:       .45rem .7rem;
}

.mc-genomgang-privacy {
    margin-bottom: .85rem;
    font-size:     .82rem;
}

.mc-genomgang-submit {
    width: 100%;
}

.mc-genomgang-success {
    text-align: center;
    padding:    .5rem 0;
}

.mc-genomgang-success .mc-genomgang-booked-icon {
    margin: 0 auto .75rem;
}
