/* Private nursing, co-branded with Nursing & Consulting Switzerland (template-nursing.php, 2026-10-16).
   Their palette and typeface inside our frame: the tokens below are read from their site's global colours
   (nursing-consulting.com, Elementor globals, 2026-10-16) and are defined here once, used as variables only. */

@font-face { font-family: 'Onest'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/onest-400-latin.woff2') format('woff2'); }
@font-face { font-family: 'Onest'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/onest-600-latin.woff2') format('woff2'); }

body.ca-nc {
    --nc-navy: #012963;      /* their primary */
    --nc-deep: #01204D;      /* their accent */
    --nc-stone: #F1EFEC;     /* their warm grey */
    --nc-mist: #C6CED1;      /* their blue-grey */
    --nc-text: #343434;      /* their text */
    --nc-on-navy: color-mix(in srgb, var(--nc-stone) 92%, transparent);
    --nc-line: color-mix(in srgb, var(--nc-navy) 14%, transparent);
    --nc-font: 'Onest', 'Jost', sans-serif;
    --nc-gutter: clamp(1.25rem, 4vw, 2rem);
    --nc-r: 18px;
    --nc-ease: cubic-bezier(.2, .7, .2, 1);
    background: var(--nc-stone); color: var(--nc-text);
}
html body.ca-nc main.nc, html body.ca-nc main.nc :is(h1, h2, h3, p, li, button, summary) { font-family: var(--nc-font); text-transform: none; letter-spacing: normal; }
body.ca-nc .nc-wrap { max-width: 1200px; margin: 0 auto; padding: 0 var(--nc-gutter); }
body.ca-nc .nc-eyebrow { font-size: 13px; font-weight: 600; letter-spacing: .14em !important; text-transform: uppercase !important; color: var(--nc-navy); margin: 0 0 .75rem; }
html body.ca-nc main.nc .nc-h2 { font-weight: 600; font-size: clamp(1.7rem, 1.2rem + 1.8vw, 2.6rem); line-height: 1.12; color: var(--nc-deep); margin: 0 0 1rem; max-width: 22em; }
html body.ca-nc main.nc .nc-h3 { font-weight: 600; font-size: 1.25rem; line-height: 1.25; color: var(--nc-deep); margin: 0 0 .5rem; }
body.ca-nc .nc-intro { font-size: 1.1rem; line-height: 1.65; max-width: 44em; margin: 0 0 2.5rem; }
body.ca-nc section { scroll-margin-top: 90px; }

/* ---- buttons --------------------------------------------------------------------------------------- */
body.ca-nc .nc-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
body.ca-nc .nc-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 1.4rem; border-radius: 999px; font: 600 16px/1.2 var(--nc-font); text-decoration: none; transition: background .3s var(--nc-ease), color .3s var(--nc-ease), border-color .3s var(--nc-ease); }
html body.ca-nc .nc-btn-wa { background: var(--wa-green); color: var(--ivory); border: 1px solid var(--wa-green); }
body.ca-nc .nc-btn-line { border: 1px solid currentColor; color: inherit; background: transparent; }
body.ca-nc .nc-btn-line:hover { background: color-mix(in srgb, currentColor 10%, transparent); }

/* ---- hero: their navy ------------------------------------------------------------------------------ */
body.ca-nc .nc-hero { background: var(--nc-navy); color: var(--nc-on-navy); padding: clamp(2rem, 5vw, 4rem) 0 0; position: relative; overflow: hidden; }
body.ca-nc .nc-hero::before { content: ""; position: absolute; inset: -30% -10% auto auto; width: 60vw; height: 60vw; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--nc-mist) 22%, transparent), transparent); pointer-events: none; }
body.ca-nc .nc-hero-grid { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
body.ca-nc .nc-crumb { display: flex; gap: .5rem; font-size: 14px; margin-bottom: 1.5rem; color: var(--nc-mist); }
body.ca-nc .nc-crumb a { color: var(--nc-mist); text-decoration: none; }
body.ca-nc .nc-lockup { display: flex; align-items: center; gap: .9rem; margin: 0 0 1.5rem; }
body.ca-nc .nc-lockup-ca { font: 600 15px/1 'Jost', sans-serif !important; letter-spacing: .04em !important; color: var(--nc-stone); }
body.ca-nc .nc-x { color: var(--nc-mist); font-size: 18px; }
body.ca-nc .nc-logo { display: block; height: 38px; width: auto; }
html body.ca-nc main.nc .nc-h1 { font-weight: 600; font-size: clamp(2.6rem, 1.6rem + 3.6vw, 4.6rem); line-height: 1.02; color: var(--nc-stone); margin: 0 0 1rem; }
body.ca-nc .nc-lead { font-size: clamp(1.25rem, 1rem + .9vw, 1.7rem); line-height: 1.3; color: var(--nc-stone); margin: 0 0 1rem; max-width: 22em; }
body.ca-nc .nc-sub { line-height: 1.65; color: var(--nc-mist); margin: 0; max-width: 34em; }
body.ca-nc .nc-hero .nc-btn-line { color: var(--nc-stone); }
body.ca-nc .nc-hero-media { margin: 0; position: relative; }
body.ca-nc .nc-hero-media img { display: block; width: 100%; height: auto; aspect-ratio: 1050 / 1177; object-fit: cover; border-radius: var(--nc-r) var(--nc-r) 0 0; box-shadow: 0 30px 80px color-mix(in srgb, var(--nc-deep) 60%, transparent); }
body.ca-nc .nc-hero-media figcaption { position: absolute; left: 1rem; bottom: 1rem; padding: .35rem .75rem; border-radius: 999px; font-size: 13px; background: color-mix(in srgb, var(--nc-navy) 75%, transparent); color: var(--nc-stone); backdrop-filter: blur(8px); }
body.ca-nc .nc-keys { position: relative; list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0 auto; padding-top: 0; padding-bottom: 0; }
body.ca-nc .nc-keys li { padding: 1.4rem 1.25rem 1.6rem 0; border-top: 1px solid color-mix(in srgb, var(--nc-mist) 35%, transparent); margin: 0; }
body.ca-nc .nc-keys strong { display: block; color: var(--nc-stone); font-weight: 600; margin-bottom: .25rem; }
body.ca-nc .nc-keys span { font-size: 15px; color: var(--nc-mist); }

/* ---- the care journey ------------------------------------------------------------------------------ */
body.ca-nc .nc-journey { padding: clamp(3.5rem, 8vw, 6rem) 0; }
body.ca-nc .nc-jgrid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
body.ca-nc .nc-jvis { position: sticky; top: 110px; }
body.ca-nc .nc-jvis-frame { position: relative; aspect-ratio: 9 / 7; border-radius: var(--nc-r); overflow: hidden; background: var(--nc-mist); }
body.ca-nc .nc-jimg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity .7s var(--nc-ease), transform 1.2s var(--nc-ease); }
body.ca-nc .nc-jimg.is-on { opacity: 1; transform: none; }
body.ca-nc .nc-jnum { position: absolute; right: 1rem; bottom: .5rem; font: 600 clamp(3rem, 2rem + 4vw, 6rem)/1 var(--nc-font); color: var(--nc-stone); text-shadow: 0 6px 30px color-mix(in srgb, var(--nc-deep) 60%, transparent); }
body.ca-nc .nc-jrail { list-style: none; display: flex; gap: .5rem; margin: 1rem 0 0; padding: 0; }
body.ca-nc .nc-jrail li { flex: 1; margin: 0; padding-top: .6rem; font-size: 14px; color: color-mix(in srgb, var(--nc-text) 60%, transparent); border-top: 3px solid var(--nc-mist); transition: color .4s var(--nc-ease), border-color .4s var(--nc-ease); }
body.ca-nc .nc-jrail li.is-on { color: var(--nc-deep); border-color: var(--nc-navy); font-weight: 600; }
body.ca-nc .nc-stops { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; }
body.ca-nc .nc-stop { margin: 0; padding: 1.75rem; border-radius: var(--nc-r); background: color-mix(in srgb, white 70%, var(--nc-stone)); border: 1px solid var(--nc-line); opacity: .55; transform: translateY(8px); transition: opacity .5s var(--nc-ease), transform .5s var(--nc-ease), box-shadow .5s var(--nc-ease); }
body.ca-nc .nc-stop.is-on, body.ca-nc:not(.nc-js) .nc-stop { opacity: 1; transform: none; box-shadow: 0 18px 50px color-mix(in srgb, var(--nc-navy) 12%, transparent); }
body.ca-nc .nc-stop-n { font-weight: 600; color: var(--nc-navy); margin: 0 0 .25rem; }
body.ca-nc .nc-two { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; }
body.ca-nc .nc-half { padding: 1rem 1.1rem; border-radius: calc(var(--nc-r) - 6px); }
body.ca-nc .nc-half p, body.ca-nc .nc-half li { font-size: 15px; line-height: 1.6; margin: 0; }
body.ca-nc .nc-half ul { margin: 0; padding-left: 1.1rem; }
body.ca-nc .nc-half-care { background: var(--nc-navy); color: var(--nc-on-navy); }
body.ca-nc .nc-half-ours { background: var(--nc-stone); }
body.ca-nc .nc-who { font-size: 13px !important; font-weight: 600; letter-spacing: .12em !important; text-transform: uppercase !important; margin: 0 0 .5rem !important; }
body.ca-nc .nc-who span { display: block; font-size: 13px; letter-spacing: normal; text-transform: none; font-weight: 400; opacity: .75; }
body.ca-nc .nc-half-ours .nc-who { color: var(--ui-accent); }

/* ---- their six steps ------------------------------------------------------------------------------- */
body.ca-nc .nc-way { padding: clamp(3.5rem, 8vw, 6rem) 0; background: color-mix(in srgb, white 55%, var(--nc-stone)); }
body.ca-nc .nc-stepper { display: grid; grid-template-columns: 280px 1fr; gap: 2rem; margin-top: 1rem; }
body.ca-nc .nc-steptabs { display: grid; gap: .35rem; align-content: start; }
body.ca-nc .nc-steptabs button { display: flex; align-items: center; gap: .9rem; min-height: 52px; padding: 0 1rem; border: 1px solid transparent; border-radius: 12px; background: transparent; color: var(--nc-text); font-size: 16px; text-align: left; cursor: pointer; transition: background .3s var(--nc-ease), color .3s var(--nc-ease); }
body.ca-nc .nc-steptabs button span { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--nc-mist); font-size: 14px; font-weight: 600; }
body.ca-nc .nc-steptabs button[aria-selected="true"] { background: var(--nc-navy); color: var(--nc-stone); }
body.ca-nc .nc-steptabs button[aria-selected="true"] span { border-color: var(--nc-stone); }
body.ca-nc .nc-steppanels { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 300px; padding: 2rem 2.25rem; border-radius: var(--nc-r); background: var(--nc-stone); border: 1px solid var(--nc-line); }
body.ca-nc .nc-steppanel { display: grid; grid-template-columns: auto 1fr; gap: 1.75rem; align-items: start; animation: nc-fade .5s var(--nc-ease); }
body.ca-nc.nc-js .nc-steppanel[data-off] { display: none; }
body.ca-nc .nc-bignum { font: 600 clamp(4rem, 3rem + 4vw, 7rem)/.9 var(--nc-font); color: var(--nc-mist); margin: 0; }
body.ca-nc .nc-steppanel p { font-size: 1.1rem; line-height: 1.65; margin: 0; max-width: 30em; }
body.ca-nc .nc-stepnav { display: flex; align-items: center; gap: 1rem; margin-top: 2rem; }
body.ca-nc:not(.nc-js) .nc-stepnav { display: none; }
body.ca-nc .nc-round { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--nc-navy); background: transparent; color: var(--nc-navy); cursor: pointer; }
body.ca-nc .nc-stepbar { flex: 1; height: 3px; border-radius: 3px; background: var(--nc-mist); overflow: hidden; }
body.ca-nc .nc-stepbar span { display: block; height: 100%; width: 16.66%; background: var(--nc-navy); transition: width .5s var(--nc-ease); }
@keyframes nc-fade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ---- services explorer ----------------------------------------------------------------------------- */
body.ca-nc .nc-explore { padding: clamp(3.5rem, 8vw, 6rem) 0; }
body.ca-nc .nc-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 1.5rem; }
body.ca-nc .nc-chips button { min-height: 44px; padding: 0 1.1rem; border-radius: 999px; border: 1px solid var(--nc-mist); background: color-mix(in srgb, white 60%, var(--nc-stone)); color: var(--nc-deep); font-size: 15px; cursor: pointer; transition: background .3s var(--nc-ease), color .3s var(--nc-ease), border-color .3s var(--nc-ease); }
body.ca-nc .nc-chips button:hover { border-color: var(--nc-navy); }
body.ca-nc .nc-chips button[aria-selected="true"] { background: var(--nc-navy); color: var(--nc-stone); border-color: var(--nc-navy); }
body.ca-nc .nc-chippanel { padding: 2rem 2.25rem; border-radius: var(--nc-r); background: var(--nc-navy); color: var(--nc-on-navy); animation: nc-fade .45s var(--nc-ease); margin-bottom: 1rem; }
body.ca-nc.nc-js .nc-chippanel[data-off] { display: none; }
html body.ca-nc main.nc .nc-chippanel .nc-h3 { color: var(--nc-stone); }
body.ca-nc .nc-chippanel > p { color: var(--nc-mist); margin: 0 0 1.25rem; max-width: 40em; }
body.ca-nc .nc-chippanel ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem 1.5rem; }
body.ca-nc .nc-chippanel li { position: relative; margin: 0; padding: .55rem 0 .55rem 1.5rem; border-top: 1px solid color-mix(in srgb, var(--nc-mist) 25%, transparent); font-size: 15px; }
body.ca-nc .nc-chippanel li::before { content: ""; position: absolute; left: 0; top: 1.05em; width: .55rem; height: .55rem; border-radius: 50%; border: 2px solid var(--nc-mist); }
body.ca-nc .nc-source { font-size: 14px; margin: .75rem 0 0; }
body.ca-nc .nc-source a { color: var(--nc-navy); }

/* ---- team ------------------------------------------------------------------------------------------ */
body.ca-nc .nc-team { padding: clamp(3.5rem, 8vw, 6rem) 0; background: color-mix(in srgb, white 55%, var(--nc-stone)); }
body.ca-nc .nc-people { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
body.ca-nc .nc-person { margin: 0; }
body.ca-nc .nc-person img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--nc-r); margin-bottom: 1rem; background: var(--nc-mist); filter: saturate(.9); transition: filter .5s var(--nc-ease), transform .5s var(--nc-ease); }
body.ca-nc .nc-person:hover img { filter: none; transform: translateY(-4px); }
body.ca-nc .nc-role { font-weight: 600; color: var(--nc-navy); margin: 0 0 .35rem; font-size: 15px; }
body.ca-nc .nc-cred { font-size: 14px; line-height: 1.55; margin: 0; color: color-mix(in srgb, var(--nc-text) 80%, transparent); }

/* ---- questions and close --------------------------------------------------------------------------- */
body.ca-nc .nc-faq { padding: clamp(3.5rem, 8vw, 6rem) 0; }
body.ca-nc .nc-faq-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 2rem; }
body.ca-nc .nc-q { border-top: 1px solid var(--nc-line); }
body.ca-nc .nc-q:last-of-type { border-bottom: 1px solid var(--nc-line); }
body.ca-nc .nc-q summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 60px; cursor: pointer; list-style: none; font-weight: 600; color: var(--nc-deep); }
body.ca-nc .nc-q summary::-webkit-details-marker { display: none; }
body.ca-nc .nc-q[open] summary svg { transform: rotate(45deg); }
body.ca-nc .nc-q summary svg { flex: none; color: var(--nc-navy); transition: transform .3s var(--nc-ease); }
body.ca-nc .nc-a { padding: 0 0 1.25rem; line-height: 1.65; }
body.ca-nc .nc-a a { color: var(--nc-navy); }
body.ca-nc .nc-close { padding: clamp(3.5rem, 8vw, 5rem) 0; background: var(--nc-navy); color: var(--nc-on-navy); }
html body.ca-nc main.nc .nc-close .nc-h2 { color: var(--nc-stone); }
body.ca-nc .nc-close-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 3rem; align-items: center; }
body.ca-nc .nc-close .nc-btn-line { color: var(--nc-stone); }
body.ca-nc .nc-partner { padding: 1.75rem; border-radius: var(--nc-r); border: 1px solid color-mix(in srgb, var(--nc-mist) 35%, transparent); }
body.ca-nc .nc-partner .nc-logo { height: 44px; margin: .25rem 0 1rem; }
body.ca-nc .nc-partner p { font-size: 15px; line-height: 1.6; margin: 0 0 1rem; color: var(--nc-mist); }
body.ca-nc .nc-partner-link { color: var(--nc-stone); }

/* ---- widths ---------------------------------------------------------------------------------------- */
@media (max-width: 960px) {
    body.ca-nc .nc-hero-grid, body.ca-nc .nc-jgrid, body.ca-nc .nc-stepper, body.ca-nc .nc-faq-grid, body.ca-nc .nc-close-grid { grid-template-columns: minmax(0, 1fr); }
    body.ca-nc .nc-hero-media { max-width: 520px; }
    body.ca-nc .nc-keys { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.ca-nc .nc-jvis { position: sticky; top: 64px; z-index: 2; }
    body.ca-nc .nc-jvis-frame { aspect-ratio: 16 / 7; }
    body.ca-nc .nc-people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.ca-nc .nc-chippanel ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* the six steps become a swipe row of tabs above the panel */
    body.ca-nc .nc-steptabs { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 calc(var(--nc-gutter) * -1); padding: 0 var(--nc-gutter); }
    body.ca-nc .nc-steptabs button { flex: none; scroll-snap-align: start; }
}
@media (max-width: 600px) {
    body.ca-nc .nc-two, body.ca-nc .nc-chippanel ul { grid-template-columns: minmax(0, 1fr); }
    body.ca-nc .nc-stop { padding: 1.25rem; }
    body.ca-nc .nc-jrail li { font-size: 13px; }
    body.ca-nc .nc-steppanels, body.ca-nc .nc-chippanel { padding: 1.5rem 1.25rem; }
    body.ca-nc .nc-steppanel { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
    body.ca-nc .nc-bignum { font-size: 3.2rem; }
    body.ca-nc .nc-lockup { flex-wrap: wrap; gap: .6rem; }
    body.ca-nc .nc-logo { height: 32px; }
}
@media (prefers-reduced-motion: reduce) {
    body.ca-nc .nc-jimg, body.ca-nc .nc-stop, body.ca-nc .nc-person img { transition: none; }
    body.ca-nc .nc-steppanel, body.ca-nc .nc-chippanel { animation: none; }
}

/* Sticky needs a body that is not a scroll container: the theme sets overflow-x hidden on body, which makes body
   the scroller (overflow-y computes to auto) and the journey picture never sticks. clip hides the same overflow
   without creating a scroll container. */
html body.ca-nc { overflow-x: clip !important; overflow-y: visible !important; }
body.ca-nc .nc-stop { opacity: .78; }
body.ca-nc .nc-steppanel p.nc-bignum { font: 600 clamp(4rem, 3rem + 4vw, 7rem)/.9 var(--nc-font); color: var(--nc-mist); max-width: none; }
body.ca-nc .nc-hero-media figcaption { text-transform: none !important; letter-spacing: normal !important; font-family: var(--nc-font) !important; }
@media (max-width: 600px) { body.ca-nc .nc-steppanel p.nc-bignum { font-size: 3.2rem; } }
/* Phones and tablets: the journey keeps only a slim sticky rail on solid stone; the picture would cover the stops. */
@media (max-width: 960px) {
    body.ca-nc .nc-jvis { top: 68px; z-index: 3; margin: 0 calc(var(--nc-gutter) * -1); padding: .4rem var(--nc-gutter) .6rem; background: var(--nc-stone); box-shadow: 0 8px 18px -12px color-mix(in srgb, var(--nc-deep) 35%, transparent); }
    body.ca-nc .nc-jvis-frame { display: none; }
    body.ca-nc .nc-jrail { margin: 0; }
}
