/* K-Allservice – samma system som k-bemanning.se.
   Full bredd med smala marginaler, 1px grå linjer, etikett vänster och innehåll höger,
   kort med 1px ram och 2px hörn, bilder med mörk toning och varmgrå sidfot. */

:root {
	--ka-black: #000;
	--ka-white: #fff;
	--ka-dark: #34393C;
	--ka-muted: #6E777D;
	--ka-line: #737C82;
	--ka-warm: #C8C5BF;
	--ka-off: #F0F0F0;
	--ka-field: rgba(0, 0, 0, .16);
	--ka-gap: clamp(1rem, .8333vw + .6667rem, 2rem);
	--ka-stack: clamp(1.5rem, .4167vw + 1.3333rem, 2rem);
	--ka-block: 4.5rem;
	--ka-pad: var(--ka-gap);
	--ka-border: 1px solid var(--ka-line);
	--ka-t-display: clamp(2.25rem, .625vw + 2rem, 3rem);
	--ka-t-headline: clamp(1.5rem, .625vw + 1.25rem, 2.25rem);
	--ka-t-subhead: clamp(1.125rem, .3125vw + 1rem, 1.5rem);
	--ka-t-body: clamp(1rem, .1042vw + .9583rem, 1.125rem);
	--ka-t-overline: clamp(.875rem, .1042vw + .8333rem, 1rem);
	--ka-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16.1716 10.9999L10.8076 5.63589L12.2218 4.22168L20 11.9999L12.2218 19.778L10.8076 18.3638L16.1716 12.9999H4V10.9999H16.1716Z'/%3E%3C/svg%3E");
	--ka-arrow-out: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16.0037 9.41421L7.39712 18.0208L5.98291 16.6066L14.5895 8H7.00373V6H18.0037V17H16.0037V9.41421Z'/%3E%3C/svg%3E");
}
@media (min-width: 50em) {
	:root { --ka-pad: clamp(2rem, 2.0833vw + 1.1667rem, 4.5rem); }
}

html { scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}
body { -webkit-font-smoothing: antialiased; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* ---------- Typografi ---------- */
.ka-display { font-size: var(--ka-t-display); font-weight: 400; letter-spacing: -0.04em; line-height: 1.1; text-transform: uppercase; text-wrap: balance; }
.ka-headline { font-size: var(--ka-t-headline); font-weight: 400; letter-spacing: -0.04em; line-height: 1.1; color: var(--ka-dark); text-wrap: balance; }
.ka-subhead { font-size: var(--ka-t-subhead); font-weight: 400; letter-spacing: -0.04em; line-height: 1.1; color: var(--ka-dark); }
.ka-overline { font-size: var(--ka-t-overline); font-weight: 500; letter-spacing: -0.02em; line-height: 1.3; }
.ka-muted { color: var(--ka-muted); }
.ka-label { font-size: var(--ka-t-body); font-weight: 400; margin: 0; }
@media (max-width: 49.99em) { .ka-label { font-weight: 500; } }

/* Pil-länkar som på k-bemanning.se */
.ka-arrow a { position: relative; display: inline-block; margin-right: 1.6em; font-weight: 500; color: var(--ka-black); text-decoration: none; }
.ka-arrow a::after { content: ""; position: absolute; left: 100%; top: .2em; width: 1em; height: 1em; transform: translateX(.5em); background: currentColor; -webkit-mask: var(--ka-arrow) center / contain no-repeat; mask: var(--ka-arrow) center / contain no-repeat; transition: transform .3s ease-in-out; }
.ka-arrow a:hover::after { transform: translateX(1em); }
.ka-arrow.ka-out a::after { -webkit-mask-image: var(--ka-arrow-out); mask-image: var(--ka-arrow-out); }

/* Knappar */
.wp-element-button, .wp-block-button__link { transition: background-color .2s, border-color .2s, color .2s; }
.wp-block-button.is-style-ka-light .wp-block-button__link { background: var(--ka-white); border-color: var(--ka-white); color: var(--ka-black); }
.wp-block-button.is-style-ka-light .wp-block-button__link:hover { background: var(--ka-off); border-color: var(--ka-off); }
.wp-block-buttons { gap: .75rem; }
.ka-btn-out .wp-block-button__link::after { content: ""; display: inline-block; width: 1em; height: 1em; margin-left: .45em; vertical-align: -.15em; background: currentColor; -webkit-mask: var(--ka-arrow-out) center / contain no-repeat; mask: var(--ka-arrow-out) center / contain no-repeat; }

/* ---------- Sidhuvud ---------- */
.ka-header-part { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; background: var(--ka-white); transition: transform .25s ease; }
.ka-header-part.is-hidden { transform: translateY(-110%); }
.ka-header { padding: 0 var(--ka-gap) var(--ka-gap); }
.ka-header .ka-header-inner { gap: var(--ka-gap); padding-block: clamp(1rem, .4167vw + .8333rem, 1.5rem); border-bottom: var(--ka-border); }
.ka-logo { display: flex; color: var(--ka-black); line-height: 0; }
.ka-wordmark { display: block; height: 1.25rem; width: auto; }
.ka-header-menu { gap: var(--ka-gap); }
.ka-nav .wp-block-navigation__container { gap: .25em var(--ka-gap); }
.ka-nav .wp-block-navigation-item__content { text-decoration: none; }
.ka-nav .wp-block-navigation-item__content:hover { text-decoration: underline; text-underline-offset: .2em; }
.ka-nav .wp-block-navigation__responsive-container-open,
.ka-nav .wp-block-navigation__responsive-container-close { font: inherit; font-size: 1rem; letter-spacing: -0.02em; }
.ka-header-buttons .wp-block-button__link { white-space: nowrap; }
.ka-only-mobile { display: none !important; }
.ka-nav .is-menu-open .ka-only-mobile { display: block !important; }

/* Menyn fälls ihop under 68em (WordPress standard är 600px) */
@media (max-width: 67.99em) {
	.ka-header-buttons { display: none !important; }
	.ka-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.ka-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
}
.ka-nav .wp-block-navigation__responsive-container.is-menu-open { padding: clamp(1rem, .4167vw + .8333rem, 1.5rem) var(--ka-gap); background: var(--ka-white); color: var(--ka-black); }
.ka-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3rem; }
.ka-nav .is-menu-open .wp-block-navigation__container { gap: 0 !important; width: 100%; align-items: stretch !important; }
.ka-nav .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: var(--ka-border); }
.ka-nav .is-menu-open .wp-block-navigation-item__content { display: block; padding-block: .9rem !important; font-size: 1.6rem; letter-spacing: -0.04em; color: var(--ka-dark); }

/* ---------- Innehåll ---------- */
.ka-main .wp-block-post-content > * { margin-block: 0; }
.ka-main .wp-block-post-content > * + * { margin-block-start: var(--ka-block); }
.ka-main .wp-block-post-content > .ka-contacts { margin-block-end: 0; }

/* Hero (omslagsblock) */
.wp-block-cover.ka-hero { margin-inline: var(--ka-gap); padding: var(--ka-pad); align-items: flex-end; }
.ka-hero .wp-block-cover__inner-container { width: 100%; color: var(--ka-white); }
.ka-hero .ka-hero-content { width: 100%; }
.ka-hero .ka-hero-content > * { margin-block: 0; }
.ka-hero .ka-hero-content > * + * { margin-block-start: var(--ka-stack); }
.ka-hero .ka-display { color: var(--ka-white); }
@media (min-width: 50em) { .ka-hero .ka-hero-content { width: 58%; } }
@media (min-width: 75em) { .ka-hero .ka-hero-content { width: 42%; } }
@media (max-width: 49.99em) {
	.ka-hero .wp-block-cover__background { background: linear-gradient(0deg, rgba(52, 57, 60, .9) 0%, rgba(52, 57, 60, .6) 55%, rgba(52, 57, 60, .15) 100%) !important; opacity: 1 !important; }
}

/* Block med linje överst: etikett vänster, innehåll höger */
.ka-block { padding-inline: var(--ka-gap); }
.wp-block-columns.ka-base { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ka-stack) var(--ka-gap); margin: 0; padding-top: var(--ka-block); border-top: var(--ka-border); }
@media (min-width: 50em) { .wp-block-columns.ka-base { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.wp-block-columns.ka-base > .wp-block-column { flex-basis: auto !important; margin: 0; min-width: 0; }
.ka-copy > * { margin-block: 0; }
.ka-copy.ka-copy > * + * { margin-block-start: var(--ka-stack); }
.ka-copy.ka-copy > .ka-muted + .ka-muted { margin-block-start: .85em; }
.ka-copy { max-width: 44rem; }

/* Kort */
.wp-block-columns.ka-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ka-gap); margin: var(--ka-block) 0 0; }
@media (min-width: 40em) { .wp-block-columns.ka-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64em) { .wp-block-columns.ka-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.wp-block-column.ka-card { position: relative; display: flex; flex-direction: column; gap: var(--ka-gap); flex-basis: auto !important; margin: 0; padding: 1rem; border: var(--ka-border); border-radius: 2px; transition: background-color .2s; }
.ka-card > * { margin: 0 !important; width: 95%; }
@media (min-width: 50em) { .ka-card > * { width: 90%; } }
.ka-card:has(a):hover { background: var(--ka-off); }
.ka-card .ka-card-link { margin-top: auto !important; padding-top: 10%; }
.ka-card-link a { font-weight: 500; color: var(--ka-black); text-decoration: none; }
.ka-card-link a::after { content: ""; position: absolute; inset: 0; }
.ka-card-link::after { content: ""; position: absolute; right: 1rem; bottom: calc(1rem + .2em); width: 1em; height: 1em; background: currentColor; -webkit-mask: var(--ka-arrow) center / contain no-repeat; mask: var(--ka-arrow) center / contain no-repeat; }

/* Rader med linjer, som kontorslistan på k-bemanning.se */
.ka-rows { list-style: none; margin: 0; padding: 0; width: 100%; }
.ka-rows > li { margin: 0; padding-block: .95rem; border-top: var(--ka-border); color: var(--ka-muted); }
.ka-rows > li:last-child { border-bottom: var(--ka-border); }
.ka-rows > li > strong:first-child { font-weight: 500; color: var(--ka-dark); }
@media (min-width: 36em) {
	.ka-rows > li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); gap: .3rem var(--ka-gap); }
}
@media (max-width: 35.99em) {
	.ka-rows > li > strong:first-child::after { content: ""; display: block; height: .25rem; }
}
.ka-steps { counter-reset: ka-step; }
.ka-steps > li { counter-increment: ka-step; }
.ka-steps > li::before { content: counter(ka-step); display: inline-block; min-width: 1.6em; color: var(--ka-muted); font-variant-numeric: tabular-nums; }
@media (min-width: 36em) {
	.ka-steps > li { grid-template-columns: 1.6em minmax(0, .9fr) minmax(0, 1.7fr); column-gap: 0; }
	.ka-steps > li > strong:first-child { padding-right: var(--ka-gap); }
}

/* Bildband */
.wp-block-image.ka-photo { margin-inline: var(--ka-gap); }
.wp-block-image.ka-photo img { display: block; width: 100%; aspect-ratio: 21 / 8; min-height: 16rem; object-fit: cover; }

/* Värnamo-modellen: stegkort */
.wp-block-columns.ka-flow { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ka-gap); margin: var(--ka-block) 0 0; }
@media (min-width: 44em) {
	.wp-block-columns.ka-flow { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.ka-flow > .ka-step { grid-column: span 2; }
	.ka-flow > .ka-step:nth-child(n+4) { grid-column: span 3; }
}
@media (min-width: 75em) {
	.wp-block-columns.ka-flow { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	.ka-flow > .ka-step, .ka-flow > .ka-step:nth-child(n+4) { grid-column: auto; }
}
.wp-block-column.ka-step { position: relative; display: flex; flex-direction: column; gap: .9rem; flex-basis: auto !important; margin: 0; padding: 1rem; border: var(--ka-border); border-radius: 2px; }
.ka-step > * { margin: 0 !important; }
.ka-step .ka-subhead { padding-right: 1.5em; }
.ka-step:not(.ka-goal)::after { content: ""; position: absolute; top: 1rem; right: 1rem; width: 1em; height: 1em; background: var(--ka-line); -webkit-mask: var(--ka-arrow) center / contain no-repeat; mask: var(--ka-arrow) center / contain no-repeat; }
@media (max-width: 43.99em) { .ka-step:not(.ka-goal)::after { transform: rotate(90deg); } }
.ka-step.ka-goal { background: var(--ka-dark); border-color: var(--ka-dark); color: var(--ka-white); }
.ka-goal .ka-subhead { color: var(--ka-white); }
.ka-goal .ka-muted, .ka-goal .ka-overline { color: #D9DCDE; }
.ka-tags { list-style: none; margin: .2rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ka-tags > li { margin: 0; font-size: 14px; font-weight: 500; line-height: 1.2; padding: .3em .5em; border: var(--ka-border); border-radius: 2px; color: var(--ka-dark); }

/* Banner med bild */
.wp-block-cover.ka-banner { margin-top: var(--ka-block); padding: var(--ka-pad); align-items: center; }
.ka-banner .wp-block-cover__inner-container { width: 100%; color: var(--ka-white); }
.ka-banner .ka-banner-copy > * { margin-block: 0; }
.ka-banner .ka-banner-copy > * + * { margin-block-start: var(--ka-stack); }
.ka-banner .ka-headline { color: var(--ka-white); }
.ka-banner .ka-arrow a { color: var(--ka-white); }
@media (min-width: 50em) { .ka-banner .ka-banner-copy { margin-left: 50%; padding-left: calc(var(--ka-gap) / 2); } }
@media (max-width: 49.99em) {
	.wp-block-cover.ka-banner { align-items: flex-end; }
	.ka-banner .wp-block-cover__background { background: linear-gradient(0deg, rgba(52, 57, 60, .92) 0%, rgba(52, 57, 60, .7) 60%, rgba(52, 57, 60, .35) 100%) !important; opacity: 1 !important; }
}
.ka-block .ka-note { margin-top: var(--ka-gap) !important; }

/* Kontakt */
@media (min-width: 50em) { .wp-block-columns.ka-base.ka-contact { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(2rem, 5vw, 4.5rem); } }
.ka-office { margin: 0; padding-block: .95rem; border-top: var(--ka-border); border-bottom: var(--ka-border); }
.ka-office strong { font-weight: 500; color: var(--ka-dark); }
.ka-office a, .ka-person a, .ka-footer a { color: inherit; text-decoration: none; }
.ka-office a:hover, .ka-person a:hover, .ka-footer a:hover { text-decoration: underline; }

/* Formulär */
.ka-form { margin: 0; }
.ka-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ka-fields { display: grid; gap: var(--ka-gap); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 50em) { .ka-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ka-f-full { grid-column: 1 / -1; } }
.ka-f { min-width: 0; margin: 0; padding: 0; border: 0; }
.ka-f label, .ka-f legend { display: block; padding: 0; font-size: 1rem; }
.ka-f .ka-opt { color: var(--ka-muted); }
.ka-f input:not([type=radio]):not([type=checkbox]), .ka-f textarea { display: block; width: 100%; margin-top: .75rem; padding: .75rem; font: inherit; font-size: 1rem; line-height: 1.4; letter-spacing: -0.02em; color: var(--ka-black); background: var(--ka-white); border: 1px solid var(--ka-field); border-radius: .25rem; box-sizing: border-box; }
.ka-f textarea { min-height: 9rem; resize: vertical; }
.ka-f input::placeholder, .ka-f textarea::placeholder { color: #8A9095; }
.ka-f input:focus, .ka-f textarea:focus { outline: 2px solid var(--ka-dark); outline-offset: 1px; border-color: var(--ka-dark); }
.ka-seg { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.ka-seg label { position: relative; cursor: pointer; }
.ka-seg input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.ka-seg span { display: inline-flex; padding: .6em .75em; font-weight: 500; line-height: 1.2; border: 1px solid var(--ka-line); border-radius: 2px; background: var(--ka-white); }
.ka-seg input:checked + span { background: var(--ka-dark); border-color: var(--ka-dark); color: var(--ka-white); }
.ka-seg input:focus-visible + span { outline: 2px solid var(--ka-dark); outline-offset: 2px; }
.ka-f .ka-consent { display: flex; gap: .75rem; align-items: flex-start; font-size: .95rem; color: var(--ka-muted); }
.ka-consent input { width: 1.1rem; height: 1.1rem; margin: .15rem 0 0; accent-color: var(--ka-dark); flex: none; }
.ka-form-foot { display: flex; flex-wrap: wrap; gap: .75rem var(--ka-gap); align-items: center; margin-top: var(--ka-gap); }
.ka-submit.wp-element-button { background: var(--ka-dark); border-color: var(--ka-dark); color: var(--ka-white); cursor: pointer; }
.ka-submit.wp-element-button:hover { background: var(--ka-black); border-color: var(--ka-black); color: var(--ka-white); }
.ka-form-err { margin: 0; color: #A31C1C; font-size: .95rem; }
.ka-form-err:empty { display: none; }
.ka-done { display: grid; gap: var(--ka-gap); justify-items: start; padding-block: 1rem; }
.ka-done > * { margin: 0; }
.ka-plain-button { display: inline-flex; text-decoration: none; }

/* Kontaktperson, grått block som på k-bemanning.se */
.wp-block-group.ka-contacts { background: var(--ka-off); padding: var(--ka-block) var(--ka-gap); }
.ka-contacts .ka-contacts-inner { border-top: var(--ka-border); padding-top: 1.5rem; }
.ka-contacts .ka-team { display: grid; gap: var(--ka-gap); grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr)); margin-top: clamp(2rem, .8333vw + 1.6667rem, 3rem); }
.ka-team > * { margin: 0 !important; }
.wp-block-group.ka-person { max-width: 20rem; border: 1px solid rgba(115, 124, 130, .45); border-radius: 2px; overflow: hidden; background: var(--ka-off); padding-bottom: 1rem; }
.ka-person > * { margin: 0 !important; }
.ka-person > p { padding-inline: 1rem; font-size: .95rem; line-height: 1.6; }
.ka-person .wp-block-image.ka-portrait img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.ka-person .ka-person-name { margin: 1rem 1rem .5rem !important; padding: 0 0 .6rem; border-bottom: var(--ka-border); font-weight: 500; font-size: 1rem; }

/* ---------- Sidfot ---------- */
.ka-footer { background: var(--ka-warm); color: var(--ka-dark); padding: var(--ka-block) var(--ka-gap) 0; font-size: 1rem; }
.ka-footer > * { margin-block: 0; }
.ka-footer-brand { padding-bottom: 1.5rem; margin-bottom: 2rem; border-bottom: var(--ka-border); color: var(--ka-dark); line-height: 0; }
.wp-block-columns.ka-footer-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ka-block) var(--ka-gap); margin: 0; }
@media (min-width: 50em) { .wp-block-columns.ka-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ka-footer-grid > .wp-block-column { flex-basis: auto !important; margin: 0; min-width: 0; }
.ka-footer-sub > * { margin-block: 0; }
.ka-footer-sub > * + * { margin-block-start: clamp(3rem, 1.25vw + 2.5rem, 4.5rem); }
.ka-footer-text { max-width: 40rem; }
.ka-office-col > * { margin: 0; }
.ka-office-col > * + * { margin-top: .5rem; }
.wp-block-columns.ka-footer-links-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ka-gap); margin: 0; }
@media (max-width: 29.99em) { .wp-block-columns.ka-footer-links-grid { grid-template-columns: minmax(0, 1fr); row-gap: 2.5rem; } }
.ka-footer-links-grid > .wp-block-column { flex-basis: auto !important; margin: 0; min-width: 0; }
.ka-footer-links-grid > .wp-block-column > * { margin: 0; }
.ka-footer-heading { margin: 0 0 1rem; font-size: 1rem; }
.ka-footer-links-grid > .wp-block-column > .ka-footer-heading { margin-bottom: 1rem; }
@media (min-width: 30em) { .ka-footer-links-grid > .wp-block-column > .ka-footer-heading { margin-bottom: 2rem; } }
.ka-footer-links { list-style: none; margin: 0 !important; padding: 0; display: grid; gap: 1rem; line-height: 1.1; }
.ka-footer-links li { margin: 0; }
.ka-footer-links a { font-weight: 500; }
.ka-footer .ka-footer-meta { gap: .75rem var(--ka-gap); margin-top: 2rem; padding-block: 1.5rem; border-top: var(--ka-border); }
.ka-footer-meta > p { margin: 0; }

/* ---------- Vanliga sidor (t.ex. integritetspolicy) ---------- */
.ka-page { padding: var(--ka-block) var(--ka-gap); }
.ka-page .wp-block-post-title { font-size: var(--ka-t-headline); }
