/* ==========================================================================
   Hub pages (Privat, Företag, Om oss …): inner hero, benefit strip,
   heading row, service cards, closing band. Loaded on all inner pages.
   ========================================================================== */

/* ---------- inner hero: photo fades in from the left; copy left; scroll cue at the bottom ---------- */
.ck-ihero { position: relative; isolation: isolate; height: min(620px, calc(100svh - 230px)); min-height: 530px; border-radius: 0 0 40px 40px; }
.ck-ihero > .e-con-inner { position: relative; height: 100%; align-items: center; }
.ck-ihero-media { position: absolute !important; z-index: -1; inset: 0 0 0 auto; width: min(86%, 1350px) !important; height: 100%; opacity: .95; -webkit-mask-image: linear-gradient(to right, transparent, #000 26%); mask-image: linear-gradient(to right, transparent, #000 26%); }
.ck-ihero-media::after { content: ""; position: absolute; inset: -5%; pointer-events: none; background: linear-gradient(117deg, transparent 24%, #ffffff80 27%, transparent 30%, transparent 57%, #ffffff60 60%, transparent 64%); opacity: .12; transform: translateX(-12px); }
.ck-ihero-img { position: absolute !important; inset: 0; width: 100% !important; margin: 0 !important; }
.ck-ihero-img .elementor-widget-container, .ck-ihero-img img { width: 100%; height: 100%; }
.ck-ihero-img img { object-fit: cover; object-position: center; border-radius: 0 !important; }
.ck-ihero-copy { width: 51% !important; max-width: 600px; }
.ck-ihero h1 span { color: var(--e-global-color-secondary); }
.ck-ihero-desc p { max-width: 49ch; }
.ck-ihero-scroll { position: absolute !important; left: 0; bottom: 20px; }
.ck-ihero-scroll .elementor-icon-list-icon svg { width: 14px; height: 14px; }
.ck-ihero-note .elementor-icon-list-item { align-items: center; }
@media (prefers-reduced-motion: no-preference) {
	.ck-ihero-media::after { animation: ck-water-light 4800ms ease-in-out 1 both; }
}
@keyframes ck-water-light { 0%, 100% { opacity: .12; transform: translateX(-12px); } 50% { opacity: .22; transform: translateX(12px); } }

/* water drops (decorative) */
.ck-drops { position: absolute !important; inset: 0; overflow: hidden; pointer-events: none; }
.ck-drop { position: absolute !important; width: 42px !important; height: 52px; top: 18%; right: 18%; padding: 0 !important; border: 1px solid #ffffffb3; border-radius: 8% 70% 65% 70%; transform: rotate(45deg); background: linear-gradient(135deg, #ffffff8c, #dceefb18 48%, #6ea6c230); box-shadow: inset 3px 3px 5px #ffffff70, inset -2px -3px 6px #08418e20, 3px 5px 10px #08418e12; }
.ck-drop::after { content: ""; position: absolute; top: 9px; left: 8px; width: 5px; height: 13px; border-radius: 50%; background: #ffffffa6; transform: rotate(-15deg); }
.ck-drop:nth-child(2) { width: 25px !important; height: 32px; top: 34%; right: 10%; }
.ck-drop:nth-child(3) { width: 17px !important; height: 23px; top: 15%; right: 32%; }
.ck-drop:nth-child(3)::after { width: 2px; height: 6px; top: 5px; left: 4px; }
@media (prefers-reduced-motion: no-preference) {
	.ck-drop { animation: ck-drop-drift 3400ms ease-in-out 1 both; }
	.ck-drop:nth-child(2) { animation-delay: 180ms; }
	.ck-drop:nth-child(3) { animation-delay: 320ms; }
}
@keyframes ck-drop-drift { 0% { opacity: .35; transform: translateY(-9px) rotate(45deg); } 60% { opacity: 1; transform: translateY(3px) rotate(48deg); } 100% { opacity: 1; transform: translateY(0) rotate(45deg); } }

@media (max-width: 959px) {
	.ck-ihero-media { width: 85% !important; right: -10%; }
	.ck-ihero-copy { width: 57% !important; }
}
@media (max-width: 800px) {
	.ck-drop:nth-child(n+2) { display: none; }
	.ck-drop { animation: none; width: 24px !important; height: 31px; top: 22%; right: 14%; }
}
@media (max-width: 700px) { .ck-ihero-desc p { max-width: 40ch; } }
@media (max-width: 639px) {
	.ck-ihero { height: min(660px, calc(100svh - 205px)); min-height: 600px; }
	.ck-ihero > .e-con-inner { align-items: flex-start !important; }
	.ck-ihero-media { inset: auto 0 0 0; width: 100% !important; height: 48%; right: 0; -webkit-mask-image: linear-gradient(to bottom, transparent, #000 24%); mask-image: linear-gradient(to bottom, transparent, #000 24%); }
	.ck-ihero-img img { object-position: 57% center; }
	.ck-ihero-copy { width: 100% !important; max-width: none; }
	.ck-ihero-desc p { max-width: 360px; }
	.ck-ihero-note { display: none; }
	.ck-ihero-scroll { bottom: 14px; }
	.ck-ihero-btn .elementor-button { font-size: 11px !important; line-height: 1.5 !important; padding-inline: 13px !important; }
	.ck-ihero-btn .elementor-button-content-wrapper { gap: 8px; }
}
@media (max-width: 639px) and (max-height: 760px) {
	.ck-ihero { min-height: 515px; height: calc(100svh - 180px); }
	.ck-ihero-media { height: 45%; }
}

/* ---------- benefit strip: 3 facts; 2 on tablets; only the phone link on phones ---------- */
.ck-benefits .elementor-icon-list-items { display: grid !important; grid-template-columns: 1fr 1.15fr 1fr; align-items: center; min-height: 84px; }
.ck-benefits .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; min-height: 24px; justify-content: center; border-left: 1px solid #d9e6ee; }
.ck-benefits .elementor-icon-list-item > a { justify-content: inherit; }
.ck-benefits .elementor-icon-list-item:first-child { border-left: 0; justify-content: flex-start; }
.ck-benefits .elementor-icon-list-item:last-child { justify-content: flex-end; }
.ck-benefits .elementor-icon-list-item:last-child .elementor-icon-list-icon svg { width: 14px; height: 14px; }
.ck-benefits .elementor-icon-list-item::after { display: none !important; }
@media (max-width: 1199px) { .ck-benefits .elementor-icon-list-icon { padding: 0 8px 0 0 !important; } .ck-benefits .elementor-icon-list-text { padding: 0 !important; } }
@media (max-width: 959px) {
	.ck-benefits .elementor-icon-list-items { grid-template-columns: 1fr 1fr; }
	.ck-benefits .elementor-icon-list-item:nth-child(2) { display: none !important; }
}
@media (max-width: 639px) {
	.ck-benefits .elementor-icon-list-items { display: flex !important; justify-content: center; min-height: 60px; }
	.ck-benefits .elementor-icon-list-item:first-child { display: none !important; }
	.ck-benefits .elementor-icon-list-item:last-child { border: 0; justify-content: center; }
	.ck-benefits .elementor-icon-list-text { font-size: 11px !important; }
}

/* ---------- heading row (eyebrow + h2 | short copy), as the design's .section-heading ---------- */
.ck-sec-head > .e-con, .ck-sec-head > .elementor-widget { flex: 0 1 auto !important; width: auto !important; min-width: 0; }
@media (max-width: 1199px) { .ck-sec-head-copy br { display: none; } .ck-sec-head-copy p { max-width: 300px; } .ck-sec-head > .ck-sec-head-copy { flex-shrink: 0 !important; } }
@media (max-width: 959px) { .ck-sec-head { align-items: flex-start !important; } .ck-sec-head-copy p { max-width: 230px; } }
@media (max-width: 639px) { .ck-sec-head > .e-con, .ck-sec-head > .elementor-widget { width: 100% !important; } .ck-sec-head-copy p { max-width: none; } }

/* ---------- service cards (photo, title + arrow, copy) ---------- */
.ck-svc-card { color: inherit; }
.ck-svc-card-img .elementor-widget-container { overflow: hidden; border-radius: 22px; background: #e4eef4; }
.ck-svc-card-img img { display: block; width: 100%; aspect-ratio: 1.45; height: auto; object-fit: cover; border-radius: 22px !important; transition: transform 240ms ease; }
.ck-svc-card:hover .ck-svc-card-img img { transform: scale(1.025); }
.ck-svc-card:hover h3 { color: var(--e-global-color-secondary); text-decoration: underline; text-underline-offset: 6px; }
@media (max-width: 959px) { .ck-svc-card-img img { aspect-ratio: 1.1; } }
@media (max-width: 639px) { .ck-svc-card-img img { aspect-ratio: 1.6; } }

/* ---------- closing band: small hand-drawn rule under the copy ---------- */
.ck-closing-copy::after { content: ""; display: block; box-sizing: content-box; width: 76px; height: 7px; margin-top: 22px; border-top: 1px solid currentColor; border-bottom: 1px dashed currentColor; border-radius: 0 0 50% 0; opacity: .35; }
@media (max-width: 600px) {
	.ck-closing-actions { display: grid !important; grid-template-columns: minmax(0, 1fr); width: 100% !important; }
	.ck-closing-actions .elementor-button { width: 100%; }
}

/* ---------- measures ---------- */
.ck-mw-360 p { max-width: 360px; }
.ck-mw-19ch .elementor-heading-title { max-width: 19ch; }
.ck-mw-48ch p { max-width: 48ch; }
.ck-mw-54ch p { max-width: 54ch; }
.ck-mw-64ch p { max-width: 64ch; }
@media (max-width: 639px) { .ck-mw-360 p { max-width: none; } }
.ck-mw-570 p { max-width: 570px; }

/* ==========================================================================
   Business service pages (/foretagets-tvattjanster/<tjänst>/)
   ========================================================================== */
/* hero: copy on a pale band, photo on the right 70% */
.ck-bsvc-hero { position: relative; isolation: isolate; }
.ck-bsvc-hero-img { position: absolute !important; z-index: -1; top: 0; right: 0; bottom: 0; left: 30%; width: auto !important; margin: 0 !important; opacity: .75; -webkit-mask-image: linear-gradient(to right, transparent, #000 65%); mask-image: linear-gradient(to right, transparent, #000 65%); }
.ck-bsvc-hero-img .elementor-widget-container, .ck-bsvc-hero-img img { width: 100%; height: 100%; }
.ck-bsvc-hero-img img { object-fit: cover; border-radius: 24px; }
.ck-bsvc-hero-copy { width: 65% !important; max-width: 680px; }
@media (max-width: 959px) { .ck-bsvc-hero-copy { width: 80% !important; } }
@media (max-width: 639px) { .ck-bsvc-hero-copy { width: 100% !important; } }
@media (max-width: 639px) {
	.ck-bsvc-hero-img { top: auto; left: 0; height: 190px; opacity: 1; -webkit-mask-image: linear-gradient(to bottom, transparent, #000 40%); mask-image: linear-gradient(to bottom, transparent, #000 40%); }
}

/* scope facts: 3 columns, 1 on phones */
.ck-bsvc-scope .elementor-icon-list-items { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ck-bsvc-scope .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.ck-bsvc-scope .elementor-icon-list-item::after { display: none !important; }
@media (max-width: 959px) { .ck-bsvc-scope .elementor-icon-list-items { gap: 14px; } }
@media (max-width: 639px) { .ck-bsvc-scope .elementor-icon-list-items { grid-template-columns: minmax(0, 1fr); } }

/* editorial (business variant): notes in two columns divided by a rule */
.ck-ed-notes-business { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px !important; padding-top: 26px !important; border-top: 1px solid #bdd3e2; }
.ck-ed-notes-business .ck-ed-note + .ck-ed-note { padding-left: 24px !important; border-left: 1px solid #bdd3e2; }
@media (max-width: 760px) {
	.ck-ed-notes-business { grid-template-columns: minmax(0, 1fr); }
	.ck-ed-notes-business .ck-ed-note + .ck-ed-note { padding-left: 0 !important; border-left: 0; padding-top: 22px !important; border-top: 1px solid #bdd3e2; }
}
.ck-material-list { width: 100%; }

/* transport price table inside the rate accordion */
.ck-transport .elementor-price-list li { margin: 0 !important; padding: 16px 0; border-bottom: 1px solid #cfdee7; }
.ck-transport .elementor-price-list-header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin: 0 !important; align-items: start !important; }
.ck-transport .elementor-price-list-title { max-width: none !important; }
.ck-transport .elementor-price-list-separator { display: none; }

/* "Nästa steg" checklist */
.ck-bsvc-brief ul { margin: 16px 0; padding-left: 20px; line-height: 1.85; }
.ck-bsvc-brief li { padding: 7px 0 7px 5px; line-height: 1.7; }

/* a text link next to a button takes the button's height (underline sits at the bottom) */
.ck-related-row .ck-related-link > .elementor-widget-container, .ck-related-row .ck-related-link .elementor-icon-list-items, .ck-related-row .ck-related-link .elementor-icon-list-item, .ck-related-row .ck-related-link a { height: 100%; }
.ck-related-row .ck-related-link a { align-items: center; }
.ck-crumbs-pad12 { --padding-top: 12px !important; --padding-bottom: 12px !important; }
@media (max-width: 639px) { .ck-btn-full-639, .ck-btn-full-639 .elementor-button { width: 100%; } }
.ck-ed-notes-business .ck-ed-note:nth-child(3) { grid-column: 1 / -1; }

/* ---------- Hotelltvätt ---------- */
.ck-mw-650 { max-width: 650px; }
.ck-mw-396 p { max-width: 396px; }
.ck-hotel-img img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 24px !important; }
.ck-hotel-img figcaption { padding: 14px 0; border-bottom: 1px solid #d9e6ee; text-align: left; }
.ck-hotel-list .ck-hotel-row { padding-bottom: 24px; }
.ck-hotel-list .ck-hotel-row + .ck-hotel-row { padding-top: 24px; border-top: 1px solid #d9e6ee; }
.ck-hotel-row .elementor-icon-box-icon { padding-top: 3px; }
.ck-hotel-row .elementor-icon, .ck-hotel-row .elementor-icon svg { width: 20px; height: 20px; }
.ck-hotel-row .elementor-icon-box-description { margin: 0; }
.ck-rates-hotel .e-n-accordion-item-title-text small { margin-top: 6px; }
.ck-hotel-checks .elementor-icon-list-item { align-items: flex-start !important; padding: 6px 0 !important; margin: 0 !important; }
.ck-hotel-checks .elementor-icon-list-item::after { display: none !important; }
.ck-hotel-checks .elementor-icon-list-icon { padding-top: 4px; }
.ck-hotel-row .elementor-icon-box-title { margin-top: 0; }
@media (max-width: 639px) { .ck-hotel-img img { aspect-ratio: 3 / 2; } }
/* related links as a wrapping row (Hotelltvätt) */
.ck-related.ck-related-flex .elementor-icon-list-items { display: flex !important; flex-wrap: wrap; gap: 18px 28px; }
.ck-related.ck-related-flex .elementor-icon-list-item > a { width: auto; min-height: 0; padding: 0 0 4px; border-bottom: 0; justify-content: flex-start; gap: 12px; }
.ck-related.ck-related-flex .elementor-icon-list-text { padding: 0 !important; line-height: 1.65; }
.ck-related.ck-related-flex .elementor-icon-list-icon { padding: 0 !important; margin: 0 !important; }
.ck-related.ck-related-flex .elementor-icon-list-items { margin: 0 !important; }

/* ==========================================================================
   Utility pages (Vanliga frågor, Priser, Tjänster, Integritet)
   ========================================================================== */
.ck-mw-730 p { max-width: 730px; }
.ck-util-content > * { max-width: 100%; }
.ck-util-aside { position: sticky; top: 110px; }
.ck-util-support { gap: 14px; }
.ck-util-support .elementor-widget-button, .ck-btn-full, .ck-btn-full .elementor-button { width: 100%; }
@media (max-width: 959px) { .ck-util-aside { position: static; } }
/* topic pills spanning the column */
.ck-jumps-full, .ck-jumps-full .elementor-icon-list-items { width: 100%; }
/* FAQ */
.ck-help-search { width: 100%; }
.ck-help-search .elementor-field-group .elementor-field-textual { min-height: 48px; padding: 12px 14px !important; }
.ck-help-results p:empty, .ck-help-results:has(p:empty) { display: none; }
.ck-help-empty { display: none; }
.ck-help-empty.is-visible { display: block; }
.ck-help-group[hidden] { display: none !important; }
.ck-help-groups { width: 100%; }
.ck-help-group:first-child { margin-top: 0 !important; }
.ck-faq-inner-answer a.text-link { display: inline-flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 600; line-height: 1.7; color: inherit; padding-bottom: 4px; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 2px no-repeat; }
.ck-util-prose p { margin: 0; }
.ck-util-prose a { color: inherit; text-decoration: underline; }
.ck-util-section { width: 100%; }
.ck-related.ck-related-flex.ck-tap44 .elementor-icon-list-item > a { min-height: 44px; align-items: center; }

/* service directory list (Tjänster): two columns of bordered rows with the arrow at the end */
.ck-svc-list .elementor-icon-list-items { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; margin: 0 !important; }
.ck-svc-list .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.ck-svc-list .elementor-icon-list-item::after { display: none !important; }
.ck-svc-list .elementor-icon-list-item > a { display: flex; flex-direction: row-reverse; justify-content: space-between; align-items: center; gap: 12px; width: 100%; min-height: 52px; padding: 12px 0 0; border-bottom: 1px solid #d7e4ed; }
.ck-svc-list .elementor-icon-list-text { padding: 0 !important; }
.ck-svc-list .elementor-icon-list-icon { padding: 0 !important; margin: 0 !important; }
.ck-util-steps ol { margin: 16px 0; padding-left: 40px; }
@media (max-width: 600px) { .ck-svc-list .elementor-icon-list-items { grid-template-columns: minmax(0, 1fr); } }

/* ---------- editorial layout (Tjänsteöversikt, Så fungerar företagstvätt, journal) ---------- */
.ck-ed-content > .elementor-element { width: 100%; }
.ck-ed-content > .ck-ed-pager { width: auto; }
.ck-ed-prose p { margin: 0 0 20px; }
.ck-ed-prose p:last-child, .ck-ed-aside-p p { margin-bottom: 0; }
.ck-ed-prose ul, .ck-ed-prose ol { margin: 0; padding-left: 24px; }
.ck-ed-prose li { margin: 8px 0; }
.ck-ed-prose a { color: var(--e-global-color-secondary); text-decoration: underline; text-underline-offset: 4px; }
.ck-ed-links.ck-related-flex .elementor-icon-list-text { line-height: 1.85; }
.ck-ed-aside-wrap { position: sticky !important; top: 130px; }
.ck-ed-aside .ck-textlink-full .elementor-icon-list-item > a { width: 100%; }
.ck-ed-aside .elementor-widget-text-editor { font-size: 14px; }
@media (max-width: 900px) {
	.ck-ed-layout { grid-template-columns: minmax(0, 1fr) !important; --e-con-grid-template-columns: minmax(0, 1fr) !important; gap: 36px !important; }
	.ck-ed-aside-wrap { position: static !important; max-width: 480px; }
}
@media (max-width: 600px) {
	.ck-ed-head-inner { --padding-top: 25px !important; --padding-bottom: 25px !important; }
	.ck-ed-wrap { --padding-top: 30px !important; --padding-bottom: 50px !important; }
}
.ck-ed-pager .elementor-icon-list-text { line-height: 1.85 !important; }
.ck-ed-prose li:first-child { margin-top: 0; }
.ck-ed-prose li:last-child { margin-bottom: 0; }
@media (max-width: 600px) { .ck-ed-intro .elementor-widget-container, .ck-ed-intro p { font-size: 16px !important; line-height: 1.75 !important; } }
