/*
Theme Name:  Happy Digital
Theme URI:   https://happydigital.se
Description: Lättviktigt child-tema från Happy Digital, byggt på WordPress standardtema Twenty Twenty-Five. Design byggs i Gutenberg/Webbplatsredigeraren – egen CSS och kod bor här. Aktiv på connectflyttstad.se.
Author:      Happy Digital
Author URI:  https://happydigital.se
Template:    twentytwentyfive
Version:     1.0.1
Text Domain: happy-digital
*/

/* =========================================================================
   Egna stilar – skriv din CSS nedan.
   ========================================================================= */

/* =========================================================================
   Page Sections — shared + Om oss, Tjänster, Varför välja oss, Omdömen, Kontakt
   ========================================================================= */

/* Shared */
.hd-section {
	padding: 96px 64px;
	box-sizing: border-box;
	width: 100%;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-section--tint { background: #f6fafe; }
.hd-section__inner { max-width: 1312px; margin: 0 auto; }

.hd-eyebrow {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-bottom: 16px;
}
.hd-eyebrow__dot { width: 7px; height: 7px; border-radius: 50%; background: #1aa39c; flex-shrink: 0; }
.hd-eyebrow__text { font-size: 12.5px; font-weight: 800; letter-spacing: .16em; color: #1aa39c; text-transform: uppercase; }

.hd-section__heading {
	margin: 0;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 44px;
	line-height: 1.08;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.02em;
	text-wrap: balance;
}
.hd-section__lead {
	margin: 18px 0 0;
	font-size: 18px;
	line-height: 1.6;
	color: #5a6a7a;
	max-width: 620px;
}
.hd-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 52px;
	padding: 0 26px;
	border-radius: 14px;
	background: linear-gradient(180deg, #3d8ae8 0%, #1568c9 100%);
	color: #fff;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 800;
	font-size: 15.5px;
	text-decoration: none;
	box-shadow: 0 10px 22px -8px rgba(21,104,201,.55);
	transition: filter .15s, transform .15s;
	white-space: nowrap;
}
.hd-btn:hover { filter: brightness(1.07); transform: translateY(-1px); color: #fff; }

/* --- Om oss --- */
.hd-about__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 72px;
	align-items: center;
}
.hd-about__photo {
	aspect-ratio: 4 / 3;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 24px 50px -28px rgba(22,39,60,.4);
}
.hd-about__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }
.hd-about__facts {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px 24px;
	margin: 30px 0 32px;
}
.hd-about__fact { display: flex; gap: 12px; }
.hd-about__fact-icon { flex-shrink: 0; margin-top: 2px; color: #1568c9; }
.hd-about__fact-title { font-weight: 700; font-size: 15.5px; color: #16273c; }
.hd-about__fact-desc { font-size: 14px; color: #5a6a7a; margin-top: 2px; line-height: 1.45; }

/* --- Tjänster --- */
.hd-services__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin-top: 44px;
}
.hd-service-card {
	background: #fff;
	border-radius: 18px;
	border: 1px solid #e4ebf3;
	padding: 26px 24px 22px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-height: 168px;
	box-shadow: 0 4px 16px -12px rgba(22,39,60,.25);
	transition: box-shadow .2s, transform .2s;
}
.hd-service-card:hover { box-shadow: 0 12px 30px -16px rgba(22,39,60,.35); transform: translateY(-2px); }
.hd-service-card__icon {
	width: 50px; height: 50px;
	border-radius: 14px;
	background: #eef5fc;
	color: #1568c9;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.hd-service-card__title { font-weight: 800; font-size: 18px; color: #16273c; line-height: 1.25; margin-top: auto; }
.hd-service-card__link {
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 13.5px;
	font-weight: 700;
	color: #1568c9;
	text-decoration: none;
}
.hd-service-card__link:hover { color: #0f4f9e; }

/* --- Varför välja oss --- */
.hd-whyus__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px 44px;
	margin-top: 48px;
}
.hd-whyus__item__header { display: flex; align-items: baseline; gap: 14px; }
.hd-whyus__num { font-size: 15px; font-weight: 800; color: #3d8ae8; letter-spacing: .08em; }
.hd-whyus__line { flex: 1; height: 1px; background: #e4ebf3; }
.hd-whyus__title { margin: 16px 0 0; font-size: 21px; font-weight: 800; color: #16273c; letter-spacing: -.01em; }
.hd-whyus__desc { margin: 8px 0 0; font-size: 15.5px; line-height: 1.55; color: #5a6a7a; }

/* --- Kundrecensioner --- */
.hd-testimonials__grid {
	display: grid;
	grid-template-columns: 380px 1fr;
	gap: 64px;
	align-items: center;
}
.hd-testimonials__rating {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 24px;
	background: #fff;
	border: 1px solid #e4ebf3;
	border-radius: 16px;
	padding: 16px 20px;
	max-width: 320px;
	box-shadow: 0 6px 18px -12px rgba(22,39,60,.2);
}
.hd-testimonials__score { font-size: 40px; font-weight: 800; color: #16273c; line-height: 1; }
.hd-testimonials__stars { color: #f6b212; font-size: 15px; letter-spacing: 1px; }
.hd-testimonials__count { font-size: 13px; color: #5a6a7a; margin-top: 5px; font-weight: 600; }
.hd-testimonials__cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.hd-review-card {
	background: #fff;
	border-radius: 22px;
	border: 1px solid #e4ebf3;
	padding: 30px;
	box-shadow: 0 12px 34px -20px rgba(22,39,60,.28);
	display: flex;
	flex-direction: column;
}
.hd-review-card__quote-icon { color: #eef5fc; margin-bottom: 4px; }
.hd-review-card__stars { color: #f6b212; font-size: 15px; letter-spacing: 1px; }
.hd-review-card__text {
	margin: 14px 0 0;
	font-size: 17.5px;
	line-height: 1.5;
	color: #22303f;
	font-weight: 600;
	flex: 1;
	letter-spacing: -.005em;
}
.hd-review-card__author {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid #e4ebf3;
}
.hd-review-card__avatar {
	width: 44px; height: 44px;
	border-radius: 50%;
	color: #fff;
	font-weight: 800;
	font-size: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.hd-review-card__name { font-weight: 800; font-size: 15.5px; color: #16273c; }
.hd-review-card__city { font-size: 13.5px; color: #5a6a7a; margin-top: 1px; }

/* --- Kontakta oss --- */
.hd-contact { padding: 0 64px 96px; box-sizing: border-box; width: 100%; font-family: 'Plus Jakarta Sans', sans-serif; }
.hd-contact__card {
	max-width: 1312px;
	margin: 0 auto;
	background: linear-gradient(155deg, #0f2233, #16273c 60%, #0d3a6b 130%);
	border-radius: 32px;
	padding: 64px;
	position: relative;
	overflow: hidden;
}
.hd-contact__glow {
	position: absolute;
	width: 460px; height: 460px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(61,138,232,.4), transparent 70%);
	top: -160px; right: -120px;
	pointer-events: none;
}
.hd-contact__grid {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 72px;
	align-items: center;
}
.hd-contact__heading {
	margin: 0;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 44px;
	line-height: 1.08;
	font-weight: 800;
	color: #fff;
	letter-spacing: -.02em;
	max-width: 420px;
}
.hd-contact__lead { margin: 18px 0 0; font-size: 18px; line-height: 1.6; color: rgba(255,255,255,.7); max-width: 400px; }
.hd-contact__infos { display: flex; flex-direction: column; gap: 22px; margin-top: 36px; }
.hd-contact__info { display: flex; align-items: center; gap: 16px; }
.hd-contact__info-icon {
	width: 48px; height: 48px;
	border-radius: 13px;
	background: rgba(255,255,255,.1);
	color: #3d8ae8;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.hd-contact__info-label { font-size: 13px; color: rgba(255,255,255,.55); font-weight: 600; }
.hd-contact__info-value { font-size: 16.5px; color: #fff; font-weight: 700; margin-top: 2px; }
.hd-contact__info-value a { color: #fff; text-decoration: none; }
.hd-contact__map-wrap {
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 22px;
	padding: 12px;
	overflow: hidden;
}
.hd-contact__map-inner { border-radius: 14px; overflow: hidden; height: 420px; }
.hd-contact__map-inner iframe { width: 100%; height: 100%; border: 0; display: block; filter: saturate(.92); }

/* Responsive — Sections */
@media (max-width: 1024px) {
	.hd-section { padding: 72px 32px; }
	.hd-about__grid { grid-template-columns: 1fr; gap: 40px; }
	.hd-services__grid { grid-template-columns: repeat(2, 1fr); }
	.hd-whyus__grid { grid-template-columns: repeat(2, 1fr); }
	.hd-testimonials__grid { grid-template-columns: 1fr; }
	.hd-contact { padding: 0 32px 72px; }
	.hd-contact__card { padding: 48px 40px; }
	.hd-contact__grid { grid-template-columns: 1fr; gap: 48px; }
	.hd-section__heading { font-size: 36px; }
	.hd-contact__heading { font-size: 36px; }
}
@media (max-width: 640px) {
	.hd-section { padding: 56px 20px; }
	.hd-services__grid { grid-template-columns: 1fr 1fr; gap: 14px; }
	.hd-whyus__grid { grid-template-columns: 1fr; }
	.hd-testimonials__cards { grid-template-columns: 1fr; }
	.hd-about__facts { grid-template-columns: 1fr; }
	.hd-contact { padding: 0 20px 56px; }
	.hd-contact__card { padding: 32px 24px; border-radius: 22px; }
	.hd-contact__map-inner { height: 280px; }
	.hd-section__heading { font-size: 30px; }
	.hd-contact__heading { font-size: 30px; }
}

/* =========================================================================
   HD Footer
   ========================================================================= */
.hd-footer {
	background: #0c1a29;
	color: rgba(255,255,255,.7);
	padding: 64px 64px 32px;
	box-sizing: border-box;
	width: 100%;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-footer__inner { max-width: 1312px; margin: 0 auto; }

/* 4-col grid */
.hd-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 48px;
	padding-bottom: 48px;
	border-bottom: 1px solid rgba(255,255,255,.1);
}

/* Brand col */
.hd-footer__logo-chip {
	display: inline-block;
	background: #fff;
	border-radius: 10px;
	padding: 8px 14px;
}
.hd-footer__logo { display: block; height: 44px; width: auto; }
.hd-footer__blurb {
	margin: 20px 0 0;
	font-size: 14.5px;
	line-height: 1.6;
	color: rgba(255,255,255,.6);
	max-width: 280px;
}
.hd-footer__badges {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 20px;
	margin-top: 32px;
}
.hd-footer__badges img { width: 64px; height: 64px; display: block; flex-shrink: 0; object-fit: contain; }
.hd-footer__badge span {
	font-size: 13.5px;
	font-weight: 700;
	color: rgba(255,255,255,.85);
	max-width: 150px;
	line-height: 1.4;
}

/* Link columns */
.hd-footer__col-heading {
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #fff;
	margin-bottom: 18px;
}
.hd-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.hd-footer__links a {
	font-size: 14.5px;
	color: rgba(255,255,255,.62);
	text-decoration: none;
	transition: color .15s;
}
.hd-footer__links a:hover { color: #fff; }

/* Bottom bar */
.hd-footer__bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	padding-top: 28px;
	font-size: 13px;
	color: rgba(255,255,255,.5);
}

/* Responsive */
@media (max-width: 1024px) {
	.hd-footer { padding: 48px 32px 28px; }
	.hd-footer__grid { grid-template-columns: 1fr 1fr; gap: 36px; }
}
@media (max-width: 640px) {
	.hd-footer { padding: 40px 20px 24px; }
	.hd-footer__grid { grid-template-columns: 1fr; gap: 32px; }
	.hd-footer__bottom { flex-direction: column; text-align: center; }
}

/* ---- Contact Form 7 – varumärkesanpassad styling ---- */
.wpcf7 .hd-field { margin-bottom: 1rem; }
.wpcf7 .hd-field label { display: block; font-weight: 600; margin-bottom: .35rem; }

.wpcf7 input[type="text"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="email"],
.wpcf7 textarea {
	width: 100%;
	box-sizing: border-box;
	padding: .7rem .9rem;
	border: 1px solid #d4dde6;
	border-radius: 6px;
	font: inherit;
	background: #fff;
	color: var(--wp--preset--color--contrast, #1a1a1a);
}
.wpcf7 textarea { min-height: 120px; resize: vertical; }

.wpcf7 input:focus,
.wpcf7 textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--primary, #0274be);
	box-shadow: 0 0 0 3px rgba(2, 116, 190, .15);
}

.wpcf7 .hd-submit { margin-top: 1.25rem; margin-bottom: 0; }
.wpcf7 .wpcf7-submit {
	background: var(--wp--preset--color--primary, #0274be);
	color: #fff;
	border: 0;
	border-radius: 6px;
	padding: .8rem 1.7rem;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	transition: background .15s ease;
}
.wpcf7 .wpcf7-submit:hover { background: var(--wp--preset--color--secondary, #145086); }

/* Validation / response feedback */
.wpcf7 .wpcf7-not-valid-tip { color: #b00020; font-size: .85rem; }
.wpcf7-response-output { border-radius: 6px; margin: 1rem 0 0; padding: .6rem .9rem; font-size: .95rem; }

/* =========================================================================
   HD Hero — Variant A "Förfinad klassiker"
   Design tokens: #1568c9 blue · #1aa39c teal · #16273c navy · #5a6a7a slate
                  #e4ebf3 line · #f6b212 gold · #eef5fc tintA
   Font: Plus Jakarta Sans 400/600/700/800
   ========================================================================= */

.hd-hero {
	background: radial-gradient(120% 90% at 88% -10%, #eef5fc 0%, #ffffff 55%);
	padding: 64px 64px 80px;
	position: relative;
	overflow: hidden;
	box-sizing: border-box;
	width: 100%;
}

/* Decorative dot pattern in upper-right */
.hd-hero::before {
	content: '';
	position: absolute;
	top: 0; right: 0;
	width: 54%; height: 72%;
	background-image: radial-gradient(circle, #cfe0f1 1.4px, transparent 1.4px);
	background-size: 26px 26px;
	pointer-events: none;
	z-index: 0;
}

.hd-hero__inner {
	max-width: 1312px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 480px;
	gap: 60px;
	align-items: start;
	position: relative;
	z-index: 1;
}

/* --- Left column --- */
.hd-hero__rating-chip {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	background: #fff;
	border: 1px solid #e4ebf3;
	border-radius: 999px;
	padding: 8px 15px;
	box-shadow: 0 4px 14px -8px rgba(22,39,60,.2);
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 13.5px;
	font-weight: 700;
	color: #16273c;
	line-height: 1;
}
.hd-hero__stars { color: #f6b212; letter-spacing: 1px; }

.hd-hero__h1 {
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 800;
	font-size: 60px;
	line-height: 1.04;
	letter-spacing: -0.02em;
	color: #16273c;
	text-wrap: balance;
	margin: 26px 0 0;
}
.hd-hero__h1 em { font-style: normal; color: #1568c9; }

.hd-hero__sub {
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 19px;
	line-height: 1.55;
	color: #5a6a7a;
	max-width: 470px;
	margin: 24px 0 0;
}

/* Trust chips */
.hd-hero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 22px;
	margin: 30px 0 0;
	padding: 0;
	list-style: none;
}
.hd-hero__trust li {
	display: flex;
	align-items: center;
	gap: 7px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 14.5px;
	font-weight: 700;
	color: #22303f;
}
.hd-hero__trust svg { flex-shrink: 0; }

/* Google review card */
.hd-hero__review {
	margin: 38px 0 0;
	background: #fff;
	border: 1px solid #e4ebf3;
	border-radius: 18px;
	padding: 18px 20px;
	box-shadow: 0 6px 18px -10px rgba(22,39,60,.18);
	max-width: 380px;
}
.hd-hero__review-top {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}
.hd-hero__avatar {
	width: 48px; height: 48px;
	border-radius: 50%;
	background: #1aa39c;
	color: #fff;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 800;
	font-size: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	position: relative;
}
.hd-hero__avatar-badge {
	position: absolute;
	bottom: -2px; right: -2px;
	width: 18px; height: 18px;
	border-radius: 50%;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #e4ebf3;
}
.hd-hero__review-name {
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 800;
	font-size: 15px;
	color: #16273c;
	white-space: nowrap;
}
.hd-hero__review-stars { color: #f6b212; font-size: 13px; }
.hd-hero__review-quote {
	font-size: 13.5px;
	color: #5a6a7a;
	line-height: 1.4;
	margin: 0 0 8px;
}
.hd-hero__review-meta { font-size: 12px; color: #90a0b0; }
.hd-hero__review-meta strong { color: #16273c; }

/* --- Right column: form card --- */
.hd-hero__form-card {
	background: #fff;
	border: 1px solid #e4ebf3;
	border-radius: 26px;
	padding: 38px;
	box-shadow: 0 30px 70px -28px rgba(22,39,60,.30);
}
.hd-hero__eyebrow {
	display: flex;
	align-items: center;
	gap: 7px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: .12em;
	color: #1aa39c;
	text-transform: uppercase;
}
.hd-hero__eyebrow-dot {
	width: 9px; height: 9px;
	border-radius: 50%;
	background: #1aa39c;
	flex-shrink: 0;
}
.hd-hero__form-title {
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 800;
	font-size: 30px;
	color: #16273c;
	letter-spacing: -0.01em;
	margin: 12px 0 0;
	line-height: 1.15;
}
.hd-hero__form-sub {
	font-size: 15px;
	color: #5a6a7a;
	margin: 8px 0 24px;
}

/* Form fields inside hero card */
.hd-form-stack { display: flex; flex-direction: column; gap: 16px; }
.hd-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.hd-form-field label {
	display: block;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 13.5px;
	font-weight: 700;
	color: #16273c;
	margin-bottom: 7px;
}
.hd-form-field input[type="text"],
.hd-form-field input[type="email"],
.hd-form-field input[type="tel"],
.hd-form-field input[type="date"],
.hd-form-field select {
	width: 100%;
	height: 50px;
	border: 1.5px solid #e4ebf3;
	border-radius: 14px;
	background: #fff;
	padding: 0 16px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 14.5px;
	color: #16273c;
	appearance: none;
	-webkit-appearance: none;
	box-sizing: border-box;
	transition: border-color .15s, box-shadow .15s;
}
.hd-form-field select {
	background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 7L11 1' stroke='%235a6a7a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 36px;
	cursor: pointer;
}
.hd-form-field input::placeholder { color: #5a6a7a; }
.hd-form-field input:focus,
.hd-form-field select:focus,
.hd-form-field textarea:focus {
	outline: none;
	border-color: #1568c9;
	box-shadow: 0 0 0 3px rgba(21,104,201,.12);
}
/* CF7 wraps fields in a span – make it block */
.hd-form-field .wpcf7-form-control-wrap { display: block; }

.hd-form-field textarea {
	width: 100%;
	min-height: 100px;
	border: 1.5px solid #e4ebf3;
	border-radius: 14px;
	background: #fff;
	padding: 12px 16px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 14.5px;
	color: #16273c;
	box-sizing: border-box;
	resize: vertical;
	transition: border-color .15s, box-shadow .15s;
}
.hd-form-field textarea::placeholder { color: #5a6a7a; }

/* Section separator labels inside stacked forms */
.hd-form-section-label {
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #1568c9;
	padding-top: 18px;
	border-top: 1.5px solid #e4ebf3;
	margin-top: 6px;
}
.hd-form-section-label:first-child {
	border-top: none;
	padding-top: 0;
	margin-top: 0;
}

/* Form footer */
.hd-hero__form-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 26px;
}
.hd-hero__form-alt {
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 14px;
	font-weight: 700;
	color: #1568c9;
	text-decoration: none;
	white-space: nowrap;
}
.hd-hero__form-alt:hover { text-decoration: underline; }
/* High-specificity (0,3,0) so it beats .wpcf7 .wpcf7-submit (0,2,0) */
.hd-hero__form-card .wpcf7-form .wpcf7-submit {
	height: 52px;
	padding: 0 26px;
	border-radius: 14px;
	background: linear-gradient(180deg, #3d8ae8 0%, #1568c9 100%);
	background-color: transparent; /* prevent fallback from overriding gradient */
	color: #fff;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 800;
	font-size: 15.5px;
	border: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	box-shadow: 0 10px 22px -8px rgba(21,104,201,.55);
	white-space: nowrap;
	transition: filter .15s, transform .15s;
	line-height: 1;
	width: auto;
}
.hd-hero__form-card .wpcf7-form .wpcf7-submit:hover { filter: brightness(1.07); transform: translateY(-1px); }

/* Kill CF7 injected <p> margins, <br> tags and fieldset padding inside hero form card */
.hd-hero__form-card .wpcf7-form p         { margin: 0; padding: 0; }
.hd-hero__form-card .wpcf7-form br        { display: none; }
.hd-hero__form-card .wpcf7-form fieldset  { margin: 0; padding: 0; border: none; }
.hd-hero__form-card .wpcf7-form           { margin: 0; }

/* CF7 wraps the form-footer content in a <p> — pass through the flex layout */
.hd-hero__form-footer > p {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
}
/* CF7 spinner is a 3rd flex child that breaks space-between — hide until submit */
.hd-hero__form-footer .wpcf7-spinner { display: none; }
.hd-hero__form-footer .submitting .wpcf7-spinner { display: inline-block; }

/* Response messages inside hero form */
.hd-hero__form-card .wpcf7-response-output {
	border-radius: 10px;
	margin: 16px 0 0;
	padding: 10px 14px;
	font-size: .9rem;
}

/* === Responsive === */
@media (max-width: 1100px) {
	.hd-hero { padding: 48px 32px 64px; }
	.hd-hero__inner { grid-template-columns: 1fr; gap: 48px; }
	.hd-hero__h1 { font-size: 44px; }
	.hd-hero__form-card { max-width: 560px; }
}
@media (max-width: 640px) {
	.hd-hero { padding: 32px 20px 48px; }
	.hd-hero__h1 { font-size: 32px; }
	.hd-form-row { grid-template-columns: 1fr; }
	.hd-hero__trust { gap: 10px 16px; }
	.hd-hero__form-footer { flex-direction: column; align-items: stretch; }
	.hd-hero__form-footer > p { flex-direction: column; align-items: stretch; gap: 10px; }
	.hd-hero__form-alt { text-align: center; }
	.hd-hero__submit { justify-content: center; }
	.hd-hero__form-card .wpcf7-form .wpcf7-submit { width: 100%; justify-content: center; }
}

/* =====================================================
   MULTI-STEP FORMS
   ===================================================== */

/* Hide inactive steps */
.hd-form-step[hidden] { display: none !important; }

/* Progress dots */
.hd-step-progress {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin-bottom: 20px;
}
.hd-step-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #e4ebf3;
	transition: all .25s;
	flex-shrink: 0;
}
.hd-step-dot.is-active {
	width: 24px;
	border-radius: 4px;
	background: #1568c9;
}
.hd-step-dot.is-done {
	background: #1aa39c;
}

/* Step navigation row */
.hd-step-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-top: 16px;
	border-top: 1.5px solid #e4ebf3;
	margin-top: 4px;
}
.hd-step-nav__spacer { flex: 1; }

/* Next button — matches submit style */
.hd-step-next {
	height: 50px;
	padding: 0 24px;
	border-radius: 14px;
	background: linear-gradient(180deg, #3d8ae8 0%, #1568c9 100%);
	color: #fff;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 800;
	font-size: 15px;
	border: none;
	cursor: pointer;
	box-shadow: 0 8px 18px -6px rgba(21,104,201,.5);
	transition: filter .15s, transform .15s;
	white-space: nowrap;
	line-height: 1;
}
.hd-step-next:hover { filter: brightness(1.07); transform: translateY(-1px); }

/* Back button — outlined ghost */
.hd-step-prev {
	height: 46px;
	padding: 0 18px;
	border-radius: 12px;
	background: transparent;
	color: #5a6a7a;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 700;
	font-size: 14px;
	border: 1.5px solid #e4ebf3;
	cursor: pointer;
	transition: border-color .15s, color .15s;
	white-space: nowrap;
	line-height: 1;
}
.hd-step-prev:hover { border-color: #1568c9; color: #1568c9; }

/* Submit button inside step-nav: prevent full-width override from flytt card */
.hd-fl-hero__form-card .hd-step-nav input[type="submit"],
.hd-hero__form-card .hd-step-nav input[type="submit"] {
	width: auto;
	margin-top: 0;
}
/* Hide CF7 spinner in step-nav so it doesn't break the layout */
.hd-step-nav .wpcf7-spinner { display: none; }

/* Required-field error highlight */
.hd-form-field input.hd-field-error,
.hd-form-field select.hd-field-error,
.hd-form-field textarea.hd-field-error,
.hd-fl-hero__form-card input.hd-field-error,
.hd-fl-hero__form-card select.hd-field-error {
	border-color: #e53e3e !important;
	box-shadow: 0 0 0 3px rgba(229,62,62,.12) !important;
}

@media (max-width: 480px) {
	.hd-step-next { font-size: 13.5px; padding: 0 18px; height: 46px; }
	.hd-step-prev { font-size: 13px; padding: 0 14px; height: 42px; }
}

/* =====================================================
   STICKY TRANSPARENT HEADER
   ===================================================== */

/* Header height — used by hero sections to pull up behind it */
:root { --hd-header-h: 90px; }

/* Prevent horizontal scroll without turning body into a sticky-breaking scroll container. */
body {
	overflow-x: clip !important;
}

/* ── Fixed header ───────────────────────────────────────────────────────────
   `position: sticky` can't work inside `header.wp-block-template-part` because
   that wrapper is exactly as tall as the header itself — leaving no scroll room.
   `position: fixed` is simpler and fully reliable.
   ─────────────────────────────────────────────────────────────────────────── */
header.wp-block-group.alignfull {
	position: fixed !important;
	top: var(--wp-admin--admin-bar--height, 0px) !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	z-index: 200;
	transition: background .22s, box-shadow .22s;
}

/* Push all page content below the fixed header so nothing hides underneath.
   Hero pages cancel this with their margin-top: calc(var(--hd-header-h) * -1)
   so the hero intentionally slides under the transparent header. */
.wp-site-blocks {
	padding-top: var(--hd-header-h);
}

/* Transparent when a hero section is present on the page */
/* Transparent only when hero is present AND the user hasn't scrolled yet.
   :not(.hd-header--scrolled) ensures this rule stops matching the moment JS
   adds that class — avoiding any cascade tie with the scrolled rule below. */
body:has(.hd-hero) header.wp-block-group.alignfull:not(.hd-header--scrolled),
body:has(.hd-fl-hero) header.wp-block-group.alignfull:not(.hd-header--scrolled),
body:has(.hd-omoss-hero) header.wp-block-group.alignfull:not(.hd-header--scrolled),
body:has(.hd-vf-hero) header.wp-block-group.alignfull:not(.hd-header--scrolled),
body:has(.hd-kt-hero) header.wp-block-group.alignfull:not(.hd-header--scrolled),
body:has(.hd-tp-hero) header.wp-block-group.alignfull:not(.hd-header--scrolled),
body:has(.hd-sb-hero) header.wp-block-group.alignfull:not(.hd-header--scrolled),
body:has(.hd-vk-hero) header.wp-block-group.alignfull:not(.hd-header--scrolled) {
	background: transparent !important;
	box-shadow: none !important;
}

/* Becomes opaque white once the user scrolls past the hero. */
body header.wp-block-group.alignfull.hd-header--scrolled {
	background: rgba(255,255,255,.97) !important;
	box-shadow: 0 1px 20px -8px rgba(22,39,60,.14) !important;
}

/* === Hero sections: pull up behind the sticky header === */

/* !important beats the WP layout rule:
   `:root :where(.is-layout-flow) > :first-child { margin-block-start: 0 }` */
.hd-hero {
	margin-top: calc(var(--hd-header-h) * -1) !important;
	padding-top: calc(64px + var(--hd-header-h));
}

.hd-omoss-hero,
.hd-vf-hero,
.hd-kt-hero,
.hd-tp-hero,
.hd-sb-hero,
.hd-vk-hero {
	margin-top: calc(var(--hd-header-h) * -1) !important;
	padding-top: calc(80px + var(--hd-header-h));
}
.hd-vf-hero { padding-top: calc(104px + var(--hd-header-h)); }

/* Flytt/städning hero: pull up behind header (padding lives on __inner) */
.hd-fl-hero { margin-top: calc(var(--hd-header-h) * -1) !important; }

/* Remove the extra 19px margin TT25 adds to <main> — only on hero pages
   so the hero background fills flush behind the header. */
body:has(.hd-hero) main.wp-block-group,
body:has(.hd-fl-hero) main.wp-block-group,
body:has(.hd-omoss-hero) main.wp-block-group,
body:has(.hd-vf-hero) main.wp-block-group,
body:has(.hd-kt-hero) main.wp-block-group,
body:has(.hd-tp-hero) main.wp-block-group,
body:has(.hd-sb-hero) main.wp-block-group,
body:has(.hd-vk-hero) main.wp-block-group {
	margin-top: 0 !important;
}

@media (max-width: 1024px) {
	.hd-hero      { padding-top: calc(48px + var(--hd-header-h)); }
	.hd-omoss-hero,
	.hd-vf-hero { padding-top: calc(64px + var(--hd-header-h)); }
}

@media (max-width: 640px) {
	.hd-hero      { padding-top: calc(32px + var(--hd-header-h)); }
	.hd-omoss-hero,
	.hd-vf-hero { padding-top: calc(40px + var(--hd-header-h)); }
}

/* =====================================================
   SHARED SECTION ELEMENTS
   ===================================================== */

.hd-eyebrow {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-bottom: 16px;
}
.hd-eyebrow__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #1aa39c;
	flex-shrink: 0;
}
.hd-eyebrow span:last-child {
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: .16em;
	color: #1aa39c;
	text-transform: uppercase;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-eyebrow--light .hd-eyebrow__dot { background: #1aa39c; }
.hd-eyebrow--light span:last-child { color: #1aa39c; }

.hd-section-h2 {
	margin: 0;
	font-size: 44px;
	line-height: 1.08;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.02em;
	font-family: 'Plus Jakarta Sans', sans-serif;
	text-wrap: balance;
}
.hd-section-h2--narrow { max-width: 320px; }

.hd-section-lead {
	margin: 18px 0 0;
	font-size: 18px;
	line-height: 1.6;
	color: #5a6a7a;
	max-width: 560px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}

.hd-section-btn {
	display: inline-flex;
	align-items: center;
	background: #1568c9;
	color: #fff !important;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 15px;
	font-weight: 700;
	padding: 14px 26px;
	border-radius: 14px;
	text-decoration: none !important;
	transition: filter .18s, transform .18s;
}
.hd-section-btn:hover { filter: brightness(1.08); transform: translateY(-1px); }

/* =====================================================
   OM OSS
   ===================================================== */

.hd-about {
	background: #fff;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-about__inner {
	max-width: 1312px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 72px;
	align-items: center;
}
.hd-about__photo-wrap {
	aspect-ratio: 4 / 3;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 24px 50px -28px rgba(22,39,60,.4);
}
.hd-about__photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%;
	display: block;
}
.hd-about__lead {
	font-size: 18px;
	line-height: 1.6;
	color: #5a6a7a;
	margin: 0;
}
.hd-about__lead--gap { margin-top: 14px; }
.hd-about__facts {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px 24px;
	margin: 30px 0 32px;
}
.hd-about__fact {
	display: flex;
	gap: 12px;
}
.hd-about__fact svg { flex-shrink: 0; margin-top: 2px; }
.hd-about__fact-title {
	font-weight: 700;
	font-size: 15.5px;
	color: #16273c;
	line-height: 1.3;
}
.hd-about__fact-desc {
	font-size: 14px;
	color: #5a6a7a;
	margin-top: 2px;
	line-height: 1.45;
}

/* =====================================================
   TJÄNSTER
   ===================================================== */

.hd-services {
	background: #f6fafe;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-services__inner { max-width: 1312px; margin: 0 auto; }
.hd-services__header { max-width: 680px; }
.hd-services__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin-top: 44px;
}
.hd-services__card {
	background: #fff;
	border-radius: 18px;
	border: 1px solid #e4ebf3;
	padding: 26px 24px 22px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-height: 168px;
	box-shadow: 0 4px 16px -12px rgba(22,39,60,.25);
	transition: box-shadow .2s, transform .2s;
}
.hd-services__card:hover {
	box-shadow: 0 10px 28px -14px rgba(22,39,60,.3);
	transform: translateY(-2px);
}
.hd-services__icon {
	width: 50px;
	height: 50px;
	border-radius: 14px;
	background: #eef5fc;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.hd-services__name {
	font-weight: 800;
	font-size: 18px;
	color: #16273c;
	line-height: 1.25;
	margin-top: auto;
}
.hd-services__link {
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 13.5px;
	font-weight: 700;
	color: #1568c9 !important;
	text-decoration: none !important;
}
.hd-services__link:hover { text-decoration: underline !important; }

/* =====================================================
   VARFÖR VÄLJA OSS
   ===================================================== */

.hd-whyus {
	background: #fff;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-whyus__inner { max-width: 1312px; margin: 0 auto; }
.hd-whyus__header { max-width: 680px; }
.hd-whyus__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px 44px;
	margin-top: 48px;
}
.hd-whyus__num-row {
	display: flex;
	align-items: baseline;
	gap: 14px;
}
.hd-whyus__num {
	font-size: 15px;
	font-weight: 800;
	color: #3d8ae8;
	letter-spacing: .08em;
	flex-shrink: 0;
}
.hd-whyus__rule {
	flex: 1;
	height: 1px;
	background: #e4ebf3;
}
.hd-whyus__title {
	margin: 16px 0 0;
	font-size: 21px;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.01em;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-whyus__desc {
	margin: 8px 0 0;
	font-size: 15.5px;
	line-height: 1.55;
	color: #5a6a7a;
}

/* =====================================================
   OMDÖMEN
   ===================================================== */

.hd-testimonials {
	background: #f6fafe;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-testimonials__inner {
	max-width: 1312px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 380px 1fr;
	gap: 64px;
	align-items: center;
}
.hd-testimonials__rating-card {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 24px;
	background: #fff;
	border: 1px solid #e4ebf3;
	border-radius: 16px;
	padding: 16px 20px;
	max-width: 300px;
	box-shadow: 0 6px 18px -12px rgba(22,39,60,.2);
}
.hd-testimonials__rating-score {
	font-size: 40px;
	font-weight: 800;
	color: #16273c;
	line-height: 1;
}
.hd-testimonials__stars {
	font-size: 15px;
	color: #f6b212;
	letter-spacing: 1px;
}
.hd-testimonials__rating-label {
	font-size: 13px;
	color: #5a6a7a;
	margin-top: 5px;
	font-weight: 600;
}
.hd-testimonials__reviews {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.hd-testimonials__card {
	background: #fff;
	border-radius: 22px;
	border: 1px solid #e4ebf3;
	padding: 30px;
	box-shadow: 0 12px 34px -20px rgba(22,39,60,.28);
	display: flex;
	flex-direction: column;
}
.hd-testimonials__card-stars {
	font-size: 15px;
	color: #f6b212;
	letter-spacing: 1px;
	margin-top: 4px;
}
.hd-testimonials__quote {
	margin: 14px 0 0;
	font-size: 17.5px;
	line-height: 1.5;
	color: #22303f;
	font-weight: 600;
	flex: 1;
	letter-spacing: -.005em;
}
.hd-testimonials__card-footer {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid #e4ebf3;
}
.hd-testimonials__avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	color: #fff;
	font-weight: 800;
	font-size: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.hd-testimonials__avatar--blue { background: #1568c9; }
.hd-testimonials__avatar--teal { background: #1aa39c; }
.hd-testimonials__reviewer-name {
	font-weight: 800;
	font-size: 15.5px;
	color: #16273c;
}
.hd-testimonials__reviewer-city {
	font-size: 13.5px;
	color: #5a6a7a;
	margin-top: 1px;
}

/* =====================================================
   KONTAKTA OSS
   ===================================================== */

.hd-contact-outer {
	padding: 0 64px 96px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-contact-outer__inner { max-width: 1312px; margin: 0 auto; }
.hd-contact {
	background: linear-gradient(155deg, #0f2233, #16273c 60%, #0d3a6b 130%);
	border-radius: 32px;
	padding: 64px;
	position: relative;
	overflow: hidden;
}
.hd-contact__glow {
	position: absolute;
	width: 460px;
	height: 460px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(61,138,232,.4), transparent 70%);
	top: -160px;
	right: -120px;
	pointer-events: none;
}
.hd-contact__grid {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 72px;
	align-items: center;
}
.hd-contact__info {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.hd-contact__heading {
	margin: 0;
	font-size: 44px;
	line-height: 1.08;
	font-weight: 800;
	color: #fff;
	letter-spacing: -.02em;
	max-width: 420px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-contact__lead {
	margin: 18px 0 0;
	font-size: 18px;
	line-height: 1.6;
	color: rgba(255,255,255,.7);
	max-width: 400px;
}
.hd-contact__items {
	display: flex;
	flex-direction: column;
	gap: 22px;
	margin-top: 36px;
}
.hd-contact__item {
	display: flex;
	align-items: center;
	gap: 16px;
}
.hd-contact__icon-wrap {
	width: 48px;
	height: 48px;
	border-radius: 13px;
	background: rgba(255,255,255,.1);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.hd-contact__item-label {
	font-size: 13px;
	color: rgba(255,255,255,.55);
	font-weight: 600;
}
.hd-contact__item-value {
	font-size: 16.5px;
	color: #fff;
	font-weight: 700;
	margin-top: 2px;
}
.hd-contact__map-wrap {
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 22px;
	padding: 12px;
	overflow: hidden;
}
.hd-contact__map-frame {
	border-radius: 14px;
	overflow: hidden;
	height: 420px;
}

/* =====================================================
   RESPONSIVE — TABLET
   ===================================================== */

@media (max-width: 1024px) {
	.hd-about { padding: 72px 32px; }
	.hd-about__inner { grid-template-columns: 1fr; gap: 48px; }

	.hd-services { padding: 72px 32px; }
	.hd-services__grid { grid-template-columns: repeat(2, 1fr); }
	.hd-section-h2 { font-size: 34px; }

	.hd-whyus { padding: 72px 32px; }
	.hd-whyus__grid { grid-template-columns: repeat(2, 1fr); gap: 32px; }

	.hd-testimonials { padding: 72px 32px; }
	.hd-testimonials__inner { grid-template-columns: 1fr; gap: 40px; }
	.hd-testimonials__rating-card { max-width: 100%; }

	.hd-contact-outer { padding: 0 32px 72px; }
	.hd-contact { padding: 48px 40px; }
	.hd-contact__grid { grid-template-columns: 1fr; gap: 44px; }
	.hd-contact__map-frame { height: 300px; }
	.hd-contact__heading { font-size: 34px; }
}

/* =====================================================
   RESPONSIVE — MOBILE
   ===================================================== */

@media (max-width: 640px) {
	.hd-about { padding: 56px 20px; }
	.hd-about__facts { grid-template-columns: 1fr; }

	.hd-services { padding: 56px 20px; }
	.hd-services__grid { grid-template-columns: 1fr 1fr; gap: 14px; }
	.hd-services__name { font-size: 15px; }
	.hd-section-h2 { font-size: 28px; }

	.hd-whyus { padding: 56px 20px; }
	.hd-whyus__grid { grid-template-columns: 1fr; gap: 28px; }

	.hd-testimonials { padding: 56px 20px; }
	.hd-testimonials__reviews { grid-template-columns: 1fr; }
	.hd-section-h2--narrow { max-width: none; }

	.hd-contact-outer { padding: 0 20px 56px; }
	.hd-contact { padding: 36px 24px; border-radius: 22px; }
	.hd-contact__heading { font-size: 28px; }
	.hd-contact__map-frame { height: 240px; }
}

/* =====================================================
   EYEBROW CENTER MODIFIER
   ===================================================== */

.hd-eyebrow--center { justify-content: center; }

/* =====================================================
   HEADER — NAV LINKS + CONTACT STRIP
   ===================================================== */

/* Compact logo — constrain height so the header stays slim.
   width:auto overrides the block's inline width so aspect ratio is preserved. */
.wp-block-site-logo img {
	max-height: 40px !important;
	width: auto !important;
	display: block;
}

/* Nav link base styles */
.wp-block-navigation .wp-block-navigation-item__label {
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 13.5px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #22303f !important;
	text-decoration: none;
	transition: color .15s;
}
.wp-block-navigation .wp-block-navigation-item__label:hover { color: #1568c9 !important; }

/* Dropdown caret */
.wp-block-navigation-submenu__toggle svg path { stroke: #5a6a7a; }

/* --- Contact strip: email + phone pill --- */
.hd-header-contact {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-left: 18px;
	border-left: 1px solid #e4ebf3;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-header-email {
	font-size: 13.5px;
	font-weight: 600;
	color: #5a6a7a;
	white-space: nowrap;
}
.hd-header-phone {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: #eef5fc;
	color: #0f4f9e !important;
	font-weight: 800;
	font-size: 13.5px;
	padding: 8px 13px;
	border-radius: 999px;
	text-decoration: none !important;
	white-space: nowrap;
	transition: background .15s, color .15s;
}
.hd-header-phone:hover { background: #dbeaf8; }

/* Mobile: hide the whole contact block — sticky CTA bar already has the phone */
@media (max-width: 767px) {
	.hd-header-contact { display: none; }
}

/* =====================================================
   OM OSS — HERO
   ===================================================== */

.hd-omoss-hero {
	position: relative;
	overflow: hidden;
	font-family: 'Plus Jakarta Sans', sans-serif;
	background: radial-gradient(120% 90% at 88% -10%, #eef5fc 0%, #ffffff 55%);
	padding: calc(80px + var(--hd-header-h)) 64px 96px;
}
.hd-omoss-hero__dots {
	position: absolute;
	inset: 0;
	opacity: .5;
	pointer-events: none;
}
.hd-omoss-hero__inner {
	max-width: 1312px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 520px;
	gap: 64px;
	align-items: center;
}
.hd-omoss-hero__text { display: flex; flex-direction: column; align-items: flex-start; }
.hd-omoss-hero__h1 {
	margin: 4px 0 0;
	font-size: 58px;
	line-height: 1.05;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.02em;
	text-wrap: balance;
}
.hd-omoss-hero__h1 em {
	font-style: normal;
	color: #1568c9;
}
.hd-omoss-hero__lead {
	margin: 24px 0 0;
	font-size: 19px;
	line-height: 1.6;
	color: #5a6a7a;
	max-width: 540px;
}
.hd-omoss-hero__actions {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-top: 34px;
	flex-wrap: wrap;
}
.hd-omoss-hero__stars-row {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 700;
	color: #16273c;
}
.hd-omoss-hero__stars { color: #f6b212; font-size: 15px; letter-spacing: 1px; }
.hd-omoss-hero__photo-wrap {
	aspect-ratio: 4 / 5;
	border-radius: 26px;
	overflow: hidden;
	box-shadow: 0 30px 64px -30px rgba(22,39,60,.42);
}
.hd-omoss-hero__photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 25%;
	display: block;
}

/* =====================================================
   OM OSS — VILKA ÄR VI
   ===================================================== */

.hd-omoss-vilka {
	background: #fff;
	padding: 104px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-omoss-vilka__inner {
	max-width: 980px;
	margin: 0 auto;
	text-align: center;
}
.hd-omoss-vilka__statement {
	margin: 8px 0 0;
	font-size: 38px;
	line-height: 1.28;
	font-weight: 700;
	color: #16273c;
	letter-spacing: -.018em;
	text-wrap: balance;
}
.hd-omoss-vilka__accent { color: #1568c9; }

/* =====================================================
   OM OSS — STATS
   ===================================================== */

.hd-omoss-stats {
	background: #f6fafe;
	padding: 56px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-omoss-stats__inner {
	max-width: 1312px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
	gap: 0;
	align-items: center;
}
.hd-omoss-stats__item { text-align: center; }
.hd-omoss-stats__value {
	font-size: 52px;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.03em;
	line-height: 1;
}
.hd-omoss-stats__label {
	font-size: 15px;
	font-weight: 600;
	color: #5a6a7a;
	margin-top: 10px;
}
.hd-omoss-stats__divider {
	width: 1px;
	height: 52px;
	background: #e4ebf3;
	margin: 0 32px;
}

/* =====================================================
   OM OSS — NÅGRA ORD OM OSS
   ===================================================== */

.hd-omoss-nagra {
	background: #fff;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-omoss-nagra__inner {
	max-width: 1312px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 520px 1fr;
	gap: 72px;
	align-items: center;
}
.hd-omoss-nagra__photo-wrap {
	aspect-ratio: 4 / 3;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 24px 50px -28px rgba(22,39,60,.4);
}
.hd-omoss-nagra__photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.hd-omoss-nagra__content { display: flex; flex-direction: column; align-items: flex-start; }
.hd-omoss-nagra__checks {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 26px 0;
}
.hd-omoss-nagra__check {
	display: flex;
	align-items: center;
	gap: 13px;
	font-size: 16.5px;
	font-weight: 600;
	color: #22303f;
}
.hd-omoss-nagra__check-icon {
	width: 28px;
	height: 28px;
	border-radius: 9px;
	background: #eef5fc;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.hd-omoss-nagra__tagline {
	margin: 0;
	font-size: 17px;
	line-height: 1.55;
	color: #16273c;
	font-weight: 700;
}

/* =====================================================
   OM OSS — VISION & MISSION
   ===================================================== */

.hd-omoss-vision {
	background: #f6fafe;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-omoss-vision__inner {
	max-width: 1312px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}
.hd-omoss-vision__card {
	background: #fff;
	border-radius: 24px;
	border: 1px solid #e4ebf3;
	padding: 44px;
	box-shadow: 0 14px 38px -24px rgba(22,39,60,.28);
	display: flex;
	flex-direction: column;
}
.hd-omoss-vision__icon {
	width: 56px;
	height: 56px;
	border-radius: 16px;
	background: #eef5fc;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 22px;
	flex-shrink: 0;
}
.hd-omoss-vision__tag {
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: .14em;
	color: #1aa39c;
	text-transform: uppercase;
	margin-bottom: 12px;
}
.hd-omoss-vision__title {
	margin: 0;
	font-size: 25px;
	line-height: 1.25;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.015em;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-omoss-vision__body {
	margin: 16px 0 0;
	font-size: 16px;
	line-height: 1.6;
	color: #5a6a7a;
}

/* =====================================================
   OM OSS — LEDORD (VALUES)
   ===================================================== */

.hd-omoss-ledord {
	background: #fff;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-omoss-ledord__inner { max-width: 1312px; margin: 0 auto; }
.hd-omoss-ledord__header { max-width: 680px; margin-bottom: 44px; }
.hd-omoss-ledord__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
.hd-omoss-ledord__card {
	background: #f6fafe;
	border-radius: 18px;
	border: 1px solid #e4ebf3;
	padding: 28px 26px 26px;
	display: flex;
	flex-direction: column;
}
.hd-omoss-ledord__icon {
	width: 50px;
	height: 50px;
	border-radius: 14px;
	background: #fff;
	border: 1px solid #e4ebf3;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 18px;
	flex-shrink: 0;
}
.hd-omoss-ledord__title {
	margin: 0;
	font-size: 19px;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.01em;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-omoss-ledord__desc {
	margin: 8px 0 0;
	font-size: 15px;
	line-height: 1.55;
	color: #5a6a7a;
}

/* =====================================================
   SHARED PAGE CTA (dark navy band — reusable)
   ===================================================== */

.hd-page-cta-outer {
	padding: 0 64px 96px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-page-cta-outer__inner { max-width: 1312px; margin: 0 auto; }
.hd-page-cta {
	background: linear-gradient(155deg, #0f2233, #16273c 60%, #0d3a6b 130%);
	border-radius: 32px;
	padding: 72px 64px;
	position: relative;
	overflow: hidden;
	text-align: center;
}
.hd-page-cta__glow {
	position: absolute;
	width: 460px;
	height: 460px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(61,138,232,.4), transparent 70%);
	top: -180px;
	right: -100px;
	pointer-events: none;
}
.hd-page-cta__content { position: relative; }
.hd-page-cta__rating {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.16);
	border-radius: 999px;
	padding: 8px 16px;
	margin-bottom: 22px;
	font-size: 13.5px;
	font-weight: 700;
	color: #fff;
}
.hd-page-cta__stars { color: #f6b212; font-size: 14px; letter-spacing: 1px; }
.hd-page-cta__heading {
	margin: 0;
	font-size: 42px;
	line-height: 1.1;
	font-weight: 800;
	color: #fff;
	letter-spacing: -.02em;
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
	text-wrap: balance;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-page-cta__lead {
	margin: 18px auto 0;
	font-size: 18px;
	line-height: 1.6;
	color: rgba(255,255,255,.72);
	max-width: 520px;
}
.hd-page-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-top: 32px;
	height: 52px;
	padding: 0 26px;
	border-radius: 14px;
	background: linear-gradient(180deg, #3d8ae8, #1568c9);
	color: #fff !important;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 15.5px;
	font-weight: 800;
	text-decoration: none !important;
	letter-spacing: .01em;
	box-shadow: 0 10px 22px -8px rgba(21,104,201,.55);
	transition: filter .18s, transform .18s;
}
.hd-page-cta__btn:hover { filter: brightness(1.08); transform: translateY(-1px); }

/* =====================================================
   OM OSS — RESPONSIVE
   ===================================================== */

@media (max-width: 1024px) {
	.hd-omoss-hero { padding: calc(56px + var(--hd-header-h)) 32px 72px; }
	.hd-omoss-hero__inner { grid-template-columns: 1fr; gap: 44px; }
	.hd-omoss-hero__h1 { font-size: 44px; }
	.hd-omoss-hero__photo-wrap { max-width: 480px; }

	.hd-omoss-vilka { padding: 72px 32px; }
	.hd-omoss-vilka__statement { font-size: 28px; }

	.hd-omoss-stats { padding: 48px 32px; }
	.hd-omoss-stats__inner { grid-template-columns: 1fr 1fr; gap: 32px; }
	.hd-omoss-stats__divider { display: none; }
	.hd-omoss-stats__item:nth-child(odd) { border-right: 1px solid #e4ebf3; padding-right: 32px; }

	.hd-omoss-nagra { padding: 72px 32px; }
	.hd-omoss-nagra__inner { grid-template-columns: 1fr; gap: 44px; }

	.hd-omoss-vision { padding: 72px 32px; }
	.hd-omoss-vision__inner { grid-template-columns: 1fr; }

	.hd-omoss-ledord { padding: 72px 32px; }
	.hd-omoss-ledord__grid { grid-template-columns: 1fr 1fr; }

	.hd-page-cta-outer { padding: 0 32px 72px; }
	.hd-page-cta { padding: 56px 40px; }
	.hd-page-cta__heading { font-size: 32px; }
}

@media (max-width: 640px) {
	.hd-omoss-hero { padding: calc(40px + var(--hd-header-h)) 20px 56px; }
	.hd-omoss-hero__h1 { font-size: 32px; }
	.hd-omoss-hero__actions { flex-direction: column; align-items: flex-start; }

	.hd-omoss-vilka { padding: 56px 20px; }
	.hd-omoss-vilka__statement { font-size: 22px; }

	.hd-omoss-stats { padding: 40px 20px; }
	.hd-omoss-stats__value { font-size: 40px; }

	.hd-omoss-nagra { padding: 56px 20px; }

	.hd-omoss-vision { padding: 56px 20px; }
	.hd-omoss-vision__card { padding: 32px 24px; }

	.hd-omoss-ledord { padding: 56px 20px; }
	.hd-omoss-ledord__grid { grid-template-columns: 1fr; }

	.hd-page-cta-outer { padding: 0 20px 56px; }
	.hd-page-cta { padding: 44px 24px; border-radius: 22px; }
	.hd-page-cta__heading { font-size: 26px; }
}

/* =========================================================================
   Flytt page sections (.hd-fl-*)
   ========================================================================= */

.hd-fl-section__inner { max-width: 1312px; margin: 0 auto; }
.hd-fl-section__header { max-width: 680px; margin-bottom: 48px; }

/* ---------- Hero ---------- */
.hd-fl-hero {
	position: relative;
	overflow: hidden;
	background: radial-gradient(120% 92% at 90% -10%, #eef5fc 0%, #ffffff 56%);
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-fl-hero__dots {
	position: absolute;
	inset: 0;
	opacity: .5;
	pointer-events: none;
}
.hd-fl-hero__inner {
	position: relative;
	max-width: 1312px;
	margin: 0 auto;
	padding: calc(64px + var(--hd-header-h)) 64px 88px;
	display: grid;
	grid-template-columns: 1fr 480px;
	gap: 72px;
	align-items: center;
}
.hd-fl-hero__left { display: flex; flex-direction: column; }
.hd-fl-hero__h1 {
	margin: 4px 0 0;
	font-size: clamp(36px, 4vw, 58px);
	line-height: 1.05;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.02em;
	text-wrap: balance;
}
.hd-fl-hero__accent { color: #1568c9; }
.hd-fl-hero__sub {
	margin: 24px 0 28px;
	font-size: 19px;
	line-height: 1.6;
	color: #5a6a7a;
	max-width: 540px;
}
.hd-fl-hero__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 20px;
	margin-bottom: 2px;
}

/* Form card */
.hd-fl-hero__form-card {
	background: #fff;
	border-radius: 26px;
	border: 1px solid #e4ebf3;
	padding: 32px;
	box-shadow: 0 30px 70px -28px rgba(22,39,60,.30);
}
.hd-fl-hero__form-eyebrow {
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: .16em;
	color: #1aa39c;
	text-transform: uppercase;
	margin-bottom: 8px;
}
.hd-fl-hero__form-title {
	margin: 0 0 8px;
	font-size: 27px;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.02em;
}
.hd-fl-hero__form-sub {
	margin: 0 0 20px;
	font-size: 14.5px;
	color: #5a6a7a;
	line-height: 1.5;
}

/* CF7 form inside flytt hero card */
.hd-fl-hero__form-card .wpcf7 { margin: 0; }
.hd-fl-hero__form-card .wpcf7 form { display: flex; flex-direction: column; gap: 0; }
.hd-fl-hero__form-card .wpcf7 p { margin: 0 0 14px; }
.hd-fl-hero__form-card .wpcf7 label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13.5px;
	font-weight: 700;
	color: #16273c;
}
.hd-fl-hero__form-card .wpcf7 br { display: none; }
.hd-fl-hero__form-card .wpcf7 input[type="text"],
.hd-fl-hero__form-card .wpcf7 input[type="email"],
.hd-fl-hero__form-card .wpcf7 input[type="tel"],
.hd-fl-hero__form-card .wpcf7 input[type="date"],
.hd-fl-hero__form-card .wpcf7 select {
	width: 100%;
	height: 48px;
	border-radius: 12px;
	border: 1.5px solid #e4ebf3;
	background: #fff;
	padding: 0 14px;
	font-size: 14.5px;
	color: #5a6a7a;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
	transition: border-color .15s;
}
.hd-fl-hero__form-card .wpcf7 input[type="text"]:focus,
.hd-fl-hero__form-card .wpcf7 input[type="email"]:focus,
.hd-fl-hero__form-card .wpcf7 input[type="tel"]:focus,
.hd-fl-hero__form-card .wpcf7 input[type="date"]:focus,
.hd-fl-hero__form-card .wpcf7 select:focus,
.hd-fl-hero__form-card .wpcf7 textarea:focus { outline: none; border-color: #1568c9; }
.hd-fl-hero__form-card .wpcf7 .wpcf7-form-control-wrap { display: block; }
.hd-fl-hero__form-card .wpcf7 textarea {
	width: 100%;
	min-height: 100px;
	border-radius: 12px;
	border: 1.5px solid #e4ebf3;
	background: #fff;
	padding: 12px 14px;
	font-size: 14.5px;
	color: #5a6a7a;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
	resize: vertical;
	transition: border-color .15s;
}
.hd-fl-hero__form-card .wpcf7 input[type="submit"] {
	width: 100%;
	height: 52px;
	border-radius: 14px;
	border: none;
	cursor: pointer;
	background: linear-gradient(180deg, #3d8ae8, #1568c9);
	color: #fff;
	font-weight: 800;
	font-size: 15.5px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	letter-spacing: .01em;
	box-shadow: 0 10px 22px -8px rgba(21,104,201,.55);
	margin-top: 4px;
	transition: filter .15s, transform .15s;
}
.hd-fl-hero__form-card .wpcf7 input[type="submit"]:hover { filter: brightness(1.07); transform: translateY(-1px); }

/* 2-column layout for paired fields */
.hd-fl-hero__form-card .hd-fl-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-bottom: 14px;
}
.hd-fl-hero__form-card .hd-fl-form-row p { margin: 0; }

/* ---------- Services ---------- */
.hd-fl-services {
	padding: 96px 64px;
	background: #fff;
	box-sizing: border-box;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-fl-services__list { display: flex; flex-direction: column; gap: 20px; }

.hd-fl-svc-card {
	display: grid;
	grid-template-columns: 340px 1fr;
	border-radius: 24px;
	border: 1px solid #e4ebf3;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 14px 38px -26px rgba(22,39,60,.30);
}
.hd-fl-svc-card__left {
	background: linear-gradient(160deg, #eef5fc, #ffffff);
	padding: 40px 36px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	border-right: 1px solid #e4ebf3;
}
.hd-fl-svc-card__icon {
	width: 60px;
	height: 60px;
	border-radius: 17px;
	background: #fff;
	border: 1px solid #e4ebf3;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
	box-shadow: 0 8px 20px -12px rgba(21,104,201,.5);
}
.hd-fl-svc-card__tag {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .14em;
	color: #1aa39c;
	text-transform: uppercase;
	margin-bottom: 8px;
}
.hd-fl-svc-card__title { margin: 0; font-size: 26px; font-weight: 800; color: #16273c; letter-spacing: -.018em; }
.hd-fl-svc-card__right {
	padding: 40px 40px 40px 44px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.hd-fl-svc-card__body { margin: 0 0 22px; font-size: 17px; line-height: 1.6; color: #5a6a7a; max-width: 620px; }
.hd-fl-svc-card__points {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 28px;
}
.hd-fl-svc-card__points li { display: flex; align-items: center; gap: 11px; font-size: 15px; font-weight: 600; color: #22303f; }
.hd-fl-svc-card__check {
	width: 24px;
	height: 24px;
	border-radius: 7px;
	background: #eef5fc;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

/* ---------- Process ---------- */
.hd-fl-process {
	padding: 96px 64px;
	background: #f6fafe;
	box-sizing: border-box;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-fl-process__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.hd-fl-step__head { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.hd-fl-step__num {
	width: 54px;
	height: 54px;
	border-radius: 15px;
	background: linear-gradient(180deg, #3d8ae8, #1568c9);
	color: #fff;
	font-weight: 800;
	font-size: 19px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 10px 22px -10px rgba(21,104,201,.6);
	flex-shrink: 0;
}
.hd-fl-step__dash {
	flex: 1;
	height: 2px;
	background: repeating-linear-gradient(90deg, #e4ebf3 0 6px, transparent 6px 12px);
}
.hd-fl-step__title { margin: 0; font-size: 19px; font-weight: 800; color: #16273c; letter-spacing: -.01em; }
.hd-fl-step__desc { margin: 10px 0 0; font-size: 15px; line-height: 1.55; color: #5a6a7a; }

/* ---------- RUT ---------- */
.hd-fl-rut {
	padding: 96px 64px;
	background: #fff;
	box-sizing: border-box;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-fl-rut__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.hd-fl-rut__body { margin: 16px 0 28px; font-size: 17px; line-height: 1.6; color: #5a6a7a; max-width: 520px; }
.hd-fl-rut__card {
	background: linear-gradient(160deg, #eef5fc, #ffffff);
	border-radius: 24px;
	border: 1px solid #e4ebf3;
	padding: 40px;
}
.hd-fl-rut__card-label { font-size: 13.5px; font-weight: 700; color: #5a6a7a; margin-bottom: 6px; }
.hd-fl-rut__rows { display: flex; flex-direction: column; }
.hd-fl-rut__row { display: flex; justify-content: space-between; align-items: center; padding: 16px 0; border-bottom: 1px solid #e4ebf3; }
.hd-fl-rut__row--total { border-bottom: none; padding: 20px 0 4px; }
.hd-fl-rut__row-label { font-size: 16px; font-weight: 600; color: #22303f; }
.hd-fl-rut__row-value { font-size: 17px; font-weight: 800; color: #16273c; }
.hd-fl-rut__row-value--accent { color: #1aa39c; }
.hd-fl-rut__total-label { font-size: 17px; font-weight: 800; color: #16273c; }
.hd-fl-rut__total-value { font-size: 26px; font-weight: 800; color: #1568c9; }
.hd-fl-rut__disclaimer { margin: 18px 0 0; font-size: 12.5px; line-height: 1.5; color: #90a0b0; }

/* ---------- Why ---------- */
.hd-fl-why {
	padding: 96px 64px;
	background: #f6fafe;
	box-sizing: border-box;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-fl-why__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 40px; }
.hd-fl-why__item-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.hd-fl-why__check {
	width: 34px;
	height: 34px;
	border-radius: 10px;
	background: #fff;
	border: 1px solid #e4ebf3;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.hd-fl-why__title { margin: 0; font-size: 18.5px; font-weight: 800; color: #16273c; letter-spacing: -.01em; }
.hd-fl-why__desc { margin: 0; padding-left: 46px; font-size: 15px; line-height: 1.55; color: #5a6a7a; }

/* ---------- CTA ---------- */
.hd-fl-cta { padding: 0 64px 96px; box-sizing: border-box; font-family: 'Plus Jakarta Sans', sans-serif; }
.hd-fl-cta__inner { max-width: 1312px; margin: 0 auto; }
.hd-fl-cta__card {
	background: linear-gradient(155deg, #0f2233, #16273c 60%, #0d3a6b 130%);
	border-radius: 32px;
	padding: 72px 64px;
	position: relative;
	overflow: hidden;
	text-align: center;
}
.hd-fl-cta__glow {
	position: absolute;
	width: 460px;
	height: 460px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(61,138,232,.4), transparent 70%);
	top: -180px;
	right: -100px;
	pointer-events: none;
}
.hd-fl-cta__content { position: relative; }
.hd-fl-cta__heading {
	margin: 0 auto;
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.1;
	font-weight: 800;
	color: #fff;
	letter-spacing: -.02em;
	max-width: 640px;
	text-wrap: balance;
}
.hd-fl-cta__lead { margin: 18px auto 0; font-size: 18px; line-height: 1.6; color: rgba(255,255,255,.72); max-width: 520px; }
.hd-fl-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-top: 32px;
	height: 52px;
	padding: 0 26px;
	border-radius: 14px;
	background: linear-gradient(180deg, #3d8ae8, #1568c9);
	color: #fff;
	font-weight: 800;
	font-size: 15.5px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	text-decoration: none;
	letter-spacing: .01em;
	box-shadow: 0 10px 22px -8px rgba(21,104,201,.55);
	transition: filter .15s, transform .15s;
}
.hd-fl-cta__btn:hover { filter: brightness(1.07); transform: translateY(-1px); color: #fff; }

/* ---- Flytt responsive ---- */
@media (max-width: 1024px) {
	.hd-fl-hero__inner { grid-template-columns: 1fr; padding: calc(48px + var(--hd-header-h)) 32px 64px; gap: 48px; }
	.hd-fl-hero__sub { font-size: 17px; }
	.hd-fl-services { padding: 72px 32px; }
	.hd-fl-svc-card { grid-template-columns: 1fr; }
	.hd-fl-svc-card__left { border-right: none; border-bottom: 1px solid #e4ebf3; }
	.hd-fl-process { padding: 72px 32px; }
	.hd-fl-process__grid { grid-template-columns: repeat(2, 1fr); }
	.hd-fl-step__dash { display: none; }
	.hd-fl-rut { padding: 72px 32px; }
	.hd-fl-rut__grid { grid-template-columns: 1fr; gap: 40px; }
	.hd-fl-why { padding: 72px 32px; }
	.hd-fl-why__grid { grid-template-columns: repeat(2, 1fr); }
	.hd-fl-cta { padding: 0 32px 72px; }
	.hd-fl-cta__card { padding: 48px 40px; border-radius: 24px; }
}

@media (max-width: 640px) {
	.hd-fl-hero__inner { padding: calc(32px + var(--hd-header-h)) 20px 48px; gap: 36px; }
	.hd-fl-hero__h1 { font-size: 34px; }
	.hd-fl-hero__chips { gap: 8px 16px; }
	.hd-fl-hero__form-card { padding: 24px 20px; }
	.hd-fl-hero__form-card .hd-fl-form-row { grid-template-columns: 1fr; }
	.hd-fl-services { padding: 56px 20px; }
	.hd-fl-svc-card__right { padding: 28px 24px; }
	.hd-fl-svc-card__points { grid-template-columns: 1fr; }
	.hd-fl-process { padding: 56px 20px; }
	.hd-fl-process__grid { grid-template-columns: 1fr; }
	.hd-fl-rut { padding: 56px 20px; }
	.hd-fl-why { padding: 56px 20px; }
	.hd-fl-why__grid { grid-template-columns: 1fr; }
	.hd-fl-why__desc { padding-left: 0; margin-top: 6px; }
	.hd-fl-cta { padding: 0 20px 56px; }
	.hd-fl-cta__card { padding: 40px 24px; border-radius: 22px; }
}

/* =========================================================================
   Städning page sections (.hd-st-*)
   ========================================================================= */

/* ---------- Services (photo cards) ---------- */
.hd-st-services {
	padding: 96px 64px;
	background: #fff;
	box-sizing: border-box;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-st-services__list { display: flex; flex-direction: column; gap: 28px; }

.hd-st-svc-card {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-radius: 24px;
	border: 1px solid #e4ebf3;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 16px 40px -28px rgba(22,39,60,.32);
	min-height: 340px;
}
.hd-st-svc-card__img {
	position: relative;
	min-height: 340px;
	order: 1;
}
.hd-st-svc-card__img img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.hd-st-svc-card__content {
	padding: 44px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	order: 2;
}
.hd-st-svc-card--flip .hd-st-svc-card__img { order: 2; }
.hd-st-svc-card--flip .hd-st-svc-card__content { order: 1; }

.hd-st-svc-card__tag {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .14em;
	color: #1aa39c;
	text-transform: uppercase;
	margin-bottom: 10px;
}
.hd-st-svc-card__title { margin: 0; font-size: 28px; font-weight: 800; color: #16273c; letter-spacing: -.018em; }
.hd-st-svc-card__body { margin: 16px 0 22px; font-size: 16.5px; line-height: 1.6; color: #5a6a7a; }
.hd-st-svc-card__points {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 24px;
}
.hd-st-svc-card__points li { display: flex; align-items: center; gap: 11px; font-size: 14.5px; font-weight: 600; color: #22303f; }
.hd-st-svc-card__check {
	width: 24px;
	height: 24px;
	border-radius: 7px;
	background: #eef5fc;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

/* ---------- Guarantee ---------- */
.hd-st-guarantee {
	padding: 96px 64px;
	background: #fff;
	box-sizing: border-box;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-st-guarantee__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.hd-st-guarantee__body { margin: 16px 0 28px; font-size: 17px; line-height: 1.6; color: #5a6a7a; max-width: 520px; }
.hd-st-guarantee__card {
	background: linear-gradient(160deg, #eef5fc, #ffffff);
	border-radius: 24px;
	border: 1px solid #e4ebf3;
	padding: 44px;
	display: flex;
	align-items: center;
	gap: 28px;
}
.hd-st-guarantee__icon {
	width: 96px;
	height: 96px;
	border-radius: 26px;
	background: #fff;
	border: 1px solid #e4ebf3;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-shadow: 0 14px 30px -16px rgba(21,104,201,.5);
}
.hd-st-guarantee__days { font-size: 46px; font-weight: 800; color: #16273c; letter-spacing: -.03em; line-height: 1; }
.hd-st-guarantee__desc { font-size: 16px; font-weight: 600; color: #5a6a7a; margin-top: 8px; line-height: 1.5; }

/* ---- Städning responsive ---- */
@media (max-width: 1024px) {
	.hd-st-services { padding: 72px 32px; }
	.hd-st-svc-card { grid-template-columns: 1fr; min-height: auto; }
	.hd-st-svc-card__img { order: 1 !important; min-height: 260px; }
	.hd-st-svc-card__content { order: 2 !important; }
	.hd-st-guarantee { padding: 72px 32px; }
	.hd-st-guarantee__grid { grid-template-columns: 1fr; gap: 40px; }
}

@media (max-width: 640px) {
	.hd-st-services { padding: 56px 20px; }
	.hd-st-svc-card__img { min-height: 220px; }
	.hd-st-svc-card__content { padding: 28px 24px; }
	.hd-st-svc-card__points { grid-template-columns: 1fr; }
	.hd-st-guarantee { padding: 56px 20px; }
	.hd-st-guarantee__card { flex-direction: column; align-items: flex-start; gap: 20px; }
	.hd-st-guarantee__icon { width: 72px; height: 72px; border-radius: 18px; }
	.hd-st-guarantee__days { font-size: 36px; }
}

/* =========================================================================
   Varför välja oss page sections (.hd-vf-*)
   ========================================================================= */

/* ---------- Hero ---------- */
.hd-vf-hero {
	position: relative;
	overflow: hidden;
	font-family: 'Plus Jakarta Sans', sans-serif;
	background: radial-gradient(120% 92% at 90% -10%, #eef5fc 0%, #ffffff 56%);
	padding-right: 64px;
	padding-bottom: 96px;
	padding-left: 64px;
}
.hd-vf-hero__dots {
	position: absolute;
	inset: 0;
	opacity: .5;
	pointer-events: none;
}
.hd-vf-hero__inner {
	position: relative;
	max-width: 1312px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 520px;
	gap: 64px;
	align-items: start;
}
.hd-vf-hero__text { display: flex; flex-direction: column; align-items: flex-start; }
.hd-vf-hero__h1 {
	margin: 4px 0 0;
	font-size: 58px;
	line-height: 1.05;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.02em;
	text-wrap: balance;
}
.hd-vf-hero__accent { color: #1568c9; }
.hd-vf-hero__lead {
	margin: 24px 0 0;
	font-size: 19px;
	line-height: 1.6;
	color: #5a6a7a;
	max-width: 540px;
}
.hd-vf-hero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 22px;
	margin-top: 30px;
}
.hd-vf-hero__chip {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 14.5px;
	font-weight: 700;
	color: #22303f;
}
.hd-vf-hero__actions {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-top: 36px;
	flex-wrap: wrap;
}
.hd-vf-hero__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 800;
	color: #1568c9;
	text-decoration: none;
}
.hd-vf-hero__link:hover { color: #0f4f9e; }
.hd-vf-hero__photo-col { position: relative; }
.hd-vf-hero__photo-wrap {
	aspect-ratio: 4 / 5;
	border-radius: 26px;
	overflow: hidden;
	box-shadow: 0 30px 64px -30px rgba(22,39,60,.42);
}
.hd-vf-hero__photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 25%;
	display: block;
}
.hd-vf-hero__badge {
	position: absolute;
	left: -28px;
	bottom: 36px;
	background: #fff;
	border-radius: 20px;
	border: 1px solid #e4ebf3;
	box-shadow: 0 24px 50px -24px rgba(22,39,60,.4);
	padding: 20px 26px;
	display: flex;
	align-items: center;
	gap: 16px;
}
.hd-vf-hero__badge-num {
	font-size: 46px;
	font-weight: 800;
	color: #1568c9;
	letter-spacing: -.03em;
	line-height: 1;
}
.hd-vf-hero__badge-text {
	font-size: 14.5px;
	font-weight: 700;
	color: #16273c;
	line-height: 1.3;
	max-width: 120px;
}

/* ---------- Statement ---------- */
.hd-vf-statement {
	background: #fff;
	padding: 104px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-vf-statement__inner {
	max-width: 980px;
	margin: 0 auto;
	text-align: center;
}
.hd-vf-statement__text {
	margin: 8px 0 0;
	font-size: 38px;
	line-height: 1.28;
	font-weight: 700;
	color: #16273c;
	letter-spacing: -.018em;
	text-wrap: balance;
}
.hd-vf-statement__accent { color: #1568c9; }

/* ---------- Six Reasons ---------- */
.hd-vf-reasons {
	background: #f6fafe;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
}
.hd-vf-reasons__inner { max-width: 1312px; margin: 0 auto; }
.hd-vf-reasons__header { max-width: 680px; margin-bottom: 48px; }
.hd-vf-reasons__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.hd-vf-reasons__card {
	background: #fff;
	border-radius: 20px;
	border: 1px solid #e4ebf3;
	padding: 32px 30px 30px;
	box-shadow: 0 8px 24px -18px rgba(22,39,60,.28);
	display: flex;
	flex-direction: column;
}
.hd-vf-reasons__card-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.hd-vf-reasons__icon {
	width: 54px;
	height: 54px;
	border-radius: 15px;
	background: #eef5fc;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.hd-vf-reasons__num {
	font-size: 15px;
	font-weight: 800;
	color: #b9cce0;
	letter-spacing: .06em;
}
.hd-vf-reasons__title {
	margin: 22px 0 0;
	font-size: 21px;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.01em;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-vf-reasons__desc {
	margin: 10px 0 0;
	font-size: 15.5px;
	line-height: 1.58;
	color: #5a6a7a;
}

/* ---------- Personal Service ---------- */
.hd-vf-service {
	background: #fff;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
}
.hd-vf-service__inner {
	max-width: 1312px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 520px;
	gap: 72px;
	align-items: center;
}
.hd-vf-service__text { display: flex; flex-direction: column; align-items: flex-start; }
.hd-vf-service__checks {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 30px 0 34px;
}
.hd-vf-service__check {
	display: flex;
	gap: 14px;
}
.hd-vf-service__check-icon {
	width: 30px;
	height: 30px;
	border-radius: 9px;
	background: #eef5fc;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-top: 1px;
}
.hd-vf-service__check-title {
	font-weight: 800;
	font-size: 16.5px;
	color: #16273c;
}
.hd-vf-service__check-desc {
	font-size: 15px;
	color: #5a6a7a;
	margin-top: 3px;
	line-height: 1.5;
}
.hd-vf-service__photo-col { position: relative; }
.hd-vf-service__photo-wrap {
	aspect-ratio: 4 / 5;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 30px 60px -30px rgba(22,39,60,.42);
}
.hd-vf-service__photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* Google review card */
.hd-vf-service__google {
	position: absolute;
	right: -24px;
	top: 40px;
	background: #fff;
	border-radius: 18px;
	border: 1px solid #e4ebf3;
	box-shadow: 0 18px 40px -18px rgba(22,39,60,.28);
	padding: 18px 20px;
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: 320px;
}
.hd-vf-service__google-avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #1aa39c;
	color: #fff;
	font-weight: 800;
	font-size: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.hd-vf-service__google-body { min-width: 0; }
.hd-vf-service__google-top {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
.hd-vf-service__google-name {
	font-weight: 800;
	font-size: 15px;
	color: #16273c;
	white-space: nowrap;
}
.hd-vf-service__google-stars { color: #f6b212; font-size: 13px; }
.hd-vf-service__google-quote {
	margin: 5px 0 0;
	font-size: 13.5px;
	color: #5a6a7a;
	line-height: 1.4;
}
.hd-vf-service__google-meta {
	margin-top: 6px;
	font-size: 12px;
	color: #90a0b0;
	font-weight: 600;
}
.hd-vf-service__google-meta strong { color: #16273c; }

/* ---------- Stats ---------- */
.hd-vf-stats {
	background: #f6fafe;
	padding: 60px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
}
.hd-vf-stats__inner {
	max-width: 1312px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
	gap: 0;
	align-items: center;
}
.hd-vf-stats__item { text-align: center; }
.hd-vf-stats__value {
	font-size: 52px;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.03em;
	line-height: 1;
}
.hd-vf-stats__label {
	font-size: 15px;
	font-weight: 600;
	color: #5a6a7a;
	margin-top: 10px;
}
.hd-vf-stats__divider {
	width: 1px;
	height: 52px;
	background: #e4ebf3;
	margin: 0 32px;
}

/* ---------- CTA phone link ---------- */
.hd-page-cta__btns {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 18px;
	margin-top: 32px;
	flex-wrap: wrap;
}
.hd-page-cta__phone {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 16px;
	font-weight: 700;
	color: #fff !important;
	text-decoration: none !important;
}

/* ---- Varför välja oss — responsive ---- */
@media (max-width: 1024px) {
	.hd-vf-hero { padding: calc(56px + var(--hd-header-h)) 32px 72px; }
	.hd-vf-hero__inner { grid-template-columns: 1fr; gap: 44px; }
	.hd-vf-hero__h1 { font-size: 44px; }
	.hd-vf-hero__photo-wrap { max-width: 480px; }
	.hd-vf-hero__badge { left: -10px; }

	.hd-vf-statement { padding: 72px 32px; }
	.hd-vf-statement__text { font-size: 28px; }

	.hd-vf-reasons { padding: 72px 32px; }
	.hd-vf-reasons__grid { grid-template-columns: repeat(2, 1fr); }

	.hd-vf-service { padding: 72px 32px; }
	.hd-vf-service__inner { grid-template-columns: 1fr; gap: 44px; }
	.hd-vf-service__google { right: 0; }

	.hd-vf-stats { padding: 48px 32px; }
	.hd-vf-stats__inner { grid-template-columns: 1fr 1fr; gap: 32px; }
	.hd-vf-stats__divider { display: none; }
	.hd-vf-stats__item:nth-child(odd) { border-right: 1px solid #e4ebf3; padding-right: 32px; }
}

@media (max-width: 640px) {
	.hd-vf-hero { padding: calc(40px + var(--hd-header-h)) 20px 56px; }
	.hd-vf-hero__inner { gap: 36px; }
	.hd-vf-hero__h1 { font-size: 32px; }
	.hd-vf-hero__actions { flex-direction: column; align-items: flex-start; }
	.hd-vf-hero__badge { left: 0; bottom: 24px; }

	.hd-vf-statement { padding: 56px 20px; }
	.hd-vf-statement__text { font-size: 22px; }

	.hd-vf-reasons { padding: 56px 20px; }
	.hd-vf-reasons__grid { grid-template-columns: 1fr; }

	.hd-vf-service { padding: 56px 20px; }
	.hd-vf-service__google { position: static; margin-top: 20px; max-width: 100%; }

	.hd-vf-stats { padding: 40px 20px; }
	.hd-vf-stats__value { font-size: 40px; }
	.hd-vf-stats__item:nth-child(odd) { border-right: none; padding-right: 0; }
}

/* =========================================================================
   Shared eyebrow gold variant (used on dark navy sections)
   ========================================================================= */
.hd-eyebrow--gold { color: #f6b212; }
.hd-eyebrow--gold span:last-child { color: #f6b212; }
.hd-eyebrow__dot--gold { background: #f6b212 !important; }

/* =========================================================================
   Kontakt page (.hd-kt-*)
   ========================================================================= */

/* --- Hero --- */
.hd-kt-hero {
	position: relative;
	overflow: hidden;
	font-family: 'Plus Jakarta Sans', sans-serif;
	background: radial-gradient(120% 90% at 88% -12%, #eef5fc 0%, #ffffff 56%);
	padding-right: 64px;
	padding-bottom: 90px;
	padding-left: 64px;
}
.hd-kt-hero__dots {
	position: absolute;
	inset: 0;
	opacity: .5;
	pointer-events: none;
}
.hd-kt-hero__inner {
	position: relative;
	max-width: 1312px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 560px;
	gap: 72px;
	align-items: start;
	padding-top: 64px;
}
.hd-kt-hero__left { display: flex; flex-direction: column; align-items: flex-start; }
.hd-kt-hero__h1 {
	margin: 4px 0 0;
	font-size: 56px;
	line-height: 1.04;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.02em;
	text-wrap: balance;
}
.hd-kt-hero__accent { color: #1568c9; }
.hd-kt-hero__lead {
	margin: 24px 0 0;
	font-size: 19px;
	line-height: 1.6;
	color: #5a6a7a;
	max-width: 520px;
}
.hd-kt-hero__methods {
	display: flex;
	gap: 18px;
	margin-top: 36px;
	width: 100%;
}
.hd-kt-hero__method {
	flex: 1;
	background: #fff;
	border-radius: 18px;
	border: 1px solid #e4ebf3;
	padding: 24px 26px;
	box-shadow: 0 10px 28px -20px rgba(22,39,60,.3);
	display: flex;
	flex-direction: column;
}
.hd-kt-hero__method-icon {
	width: 48px;
	height: 48px;
	border-radius: 13px;
	background: #eef5fc;
	color: #1568c9;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
	flex-shrink: 0;
}
.hd-kt-hero__method-tag {
	font-size: 13px;
	font-weight: 700;
	color: #1aa39c;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.hd-kt-hero__method-value {
	font-size: 17px;
	font-weight: 800;
	color: #16273c;
	margin-top: 6px;
	text-decoration: none;
}
.hd-kt-hero__method-value:hover { color: #1568c9; }
.hd-kt-hero__method-sub { font-size: 13.5px; color: #5a6a7a; margin-top: 4px; }
.hd-kt-hero__hours {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 26px;
	font-size: 14.5px;
	color: #5a6a7a;
	font-weight: 600;
	color: #1568c9;
}
/* Form card */
.hd-kt-hero__form-card {
	background: #fff;
	border-radius: 24px;
	border: 1px solid #e4ebf3;
	padding: 40px 40px 36px;
	box-shadow: 0 26px 56px -28px rgba(22,39,60,.34);
}
.hd-kt-hero__form-title {
	margin: 0;
	font-size: 24px;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.015em;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-kt-hero__form-sub {
	margin: 7px 0 22px;
	font-size: 14.5px;
	color: #5a6a7a;
	line-height: 1.5;
}
/* CF7 inside kontakt form card */
.hd-kt-hero__form-card .wpcf7 { margin: 0; }
.hd-kt-hero__form-card .wpcf7 form { display: flex; flex-direction: column; gap: 0; }
.hd-kt-hero__form-card .wpcf7 p { margin: 0 0 16px; }
.hd-kt-hero__form-card .wpcf7 label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13.5px;
	font-weight: 700;
	color: #16273c;
}
.hd-kt-hero__form-card .wpcf7 br { display: none; }
.hd-kt-hero__form-card .wpcf7 .hd-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-bottom: 16px;
}
.hd-kt-hero__form-card .wpcf7 .hd-form-row p { margin: 0; }
.hd-kt-hero__form-card .wpcf7 input[type="text"],
.hd-kt-hero__form-card .wpcf7 input[type="tel"],
.hd-kt-hero__form-card .wpcf7 input[type="email"],
.hd-kt-hero__form-card .wpcf7 textarea {
	width: 100%;
	border-radius: 12px;
	border: 1.5px solid #e4ebf3;
	background: #f6fafe;
	padding: 13px 16px;
	font-size: 14.5px;
	color: #5a6a7a;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
	transition: border-color .15s;
	resize: vertical;
}
.hd-kt-hero__form-card .wpcf7 input:focus,
.hd-kt-hero__form-card .wpcf7 textarea:focus { outline: none; border-color: #1568c9; }
.hd-kt-hero__form-card .wpcf7 textarea { min-height: 110px; }
.hd-kt-hero__form-card .wpcf7 input[type="submit"] {
	width: 100%;
	height: 52px;
	border-radius: 14px;
	border: none;
	cursor: pointer;
	background: linear-gradient(180deg, #3d8ae8, #1568c9);
	color: #fff;
	font-weight: 800;
	font-size: 15.5px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	letter-spacing: .01em;
	box-shadow: 0 10px 22px -8px rgba(21,104,201,.55);
	margin-top: 6px;
	transition: filter .15s, transform .15s;
}
.hd-kt-hero__form-card .wpcf7 input[type="submit"]:hover { filter: brightness(1.07); transform: translateY(-1px); }

/* --- Areas section --- */
.hd-kt-areas {
	background: #f6fafe;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
}
.hd-kt-areas__outer { max-width: 1312px; margin: 0 auto; }
.hd-kt-areas__card {
	background: #16273c;
	border-radius: 28px;
	padding: 56px 60px;
	position: relative;
	overflow: hidden;
	box-shadow: 0 26px 56px -30px rgba(22,39,60,.5);
}
.hd-kt-areas__dots {
	position: absolute;
	top: -200px;
	right: -160px;
	opacity: .14;
	pointer-events: none;
}
.hd-kt-areas__grid {
	position: relative;
	display: grid;
	grid-template-columns: 420px 1fr;
	gap: 64px;
	align-items: start;
}
.hd-kt-areas__heading {
	margin: 8px 0 0;
	font-size: 40px;
	line-height: 1.08;
	font-weight: 800;
	color: #fff;
	letter-spacing: -.02em;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-kt-areas__body {
	margin: 20px 0 0;
	font-size: 17px;
	line-height: 1.6;
	color: rgba(255,255,255,.74);
	max-width: 380px;
}
.hd-kt-areas__base {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-top: 30px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.16);
	border-radius: 16px;
	padding: 16px 20px;
}
.hd-kt-areas__base-icon {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: #f6b212;
	color: #16273c;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.hd-kt-areas__base-label { font-size: 13px; color: rgba(255,255,255,.6); font-weight: 600; }
.hd-kt-areas__base-city { font-size: 16.5px; color: #fff; font-weight: 800; margin-top: 2px; }
.hd-kt-areas__cities-col { padding-top: 6px; }
.hd-kt-areas__cities-label {
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(255,255,255,.55);
	margin-bottom: 22px;
}
.hd-kt-areas__cities {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px 24px;
}
.hd-kt-areas__city {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 15.5px;
	font-weight: 600;
	color: rgba(255,255,255,.9);
}
.hd-kt-areas__city-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #3d8ae8;
	flex-shrink: 0;
}
.hd-kt-areas__footer-note {
	text-align: center;
	margin-top: 40px;
	font-size: 15.5px;
	color: #5a6a7a;
}
.hd-kt-areas__footer-note a { color: #1568c9; font-weight: 800; text-decoration: none; }
.hd-kt-areas__footer-note a:hover { text-decoration: underline; }

/* --- Map section --- */
.hd-kt-map {
	background: #fff;
	padding: 0 64px 96px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
}
.hd-kt-map__inner { max-width: 1312px; margin: 0 auto; }
.hd-kt-map__embed {
	border-radius: 24px;
	overflow: hidden;
	border: 1px solid #e4ebf3;
	box-shadow: 0 20px 50px -30px rgba(22,39,60,.3);
	height: 440px;
}
.hd-kt-map__embed iframe { width: 100%; height: 100%; display: block; }

/* --- Kontakt responsive --- */
@media (max-width: 1024px) {
	.hd-kt-hero { padding: calc(48px + var(--hd-header-h)) 32px 72px; }
	.hd-kt-hero__inner { grid-template-columns: 1fr; padding-top: 44px; gap: 44px; }
	.hd-kt-hero__h1 { font-size: 42px; }
	.hd-kt-areas { padding: 72px 32px; }
	.hd-kt-areas__grid { grid-template-columns: 1fr; gap: 40px; }
	.hd-kt-areas__card { padding: 44px 36px; }
	.hd-kt-map { padding: 0 32px 72px; }
}
@media (max-width: 640px) {
	.hd-kt-hero { padding: calc(32px + var(--hd-header-h)) 20px 56px; }
	.hd-kt-hero__h1 { font-size: 32px; }
	.hd-kt-hero__methods { flex-direction: column; }
	.hd-kt-areas { padding: 56px 20px; }
	.hd-kt-areas__card { padding: 32px 24px; border-radius: 20px; }
	.hd-kt-areas__cities { grid-template-columns: 1fr 1fr; }
	.hd-kt-map { padding: 0 20px 56px; }
	.hd-kt-map__embed { height: 300px; }
	.hd-kt-hero__form-card .wpcf7 .hd-form-row { grid-template-columns: 1fr; }
}

/* =========================================================================
   Tips inför din flytt (.hd-tp-*)
   ========================================================================= */

/* --- Hero --- */
.hd-tp-hero {
	position: relative;
	overflow: hidden;
	font-family: 'Plus Jakarta Sans', sans-serif;
	background: radial-gradient(120% 92% at 90% -10%, #eef5fc 0%, #ffffff 56%);
	padding-right: 64px;
	padding-bottom: 96px;
	padding-left: 64px;
}
.hd-tp-hero__dots {
	position: absolute;
	inset: 0;
	opacity: .5;
	pointer-events: none;
}
.hd-tp-hero__inner {
	position: relative;
	max-width: 1312px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 500px;
	gap: 64px;
	align-items: start;
	padding-top: 64px;
}
.hd-tp-hero__text { display: flex; flex-direction: column; align-items: flex-start; }
.hd-tp-hero__h1 {
	margin: 4px 0 0;
	font-size: 58px;
	line-height: 1.04;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.02em;
	text-wrap: balance;
}
.hd-tp-hero__accent { color: #1568c9; }
.hd-tp-hero__lead {
	margin: 24px 0 0;
	font-size: 19px;
	line-height: 1.6;
	color: #5a6a7a;
	max-width: 540px;
}
.hd-tp-hero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 22px;
	margin-top: 30px;
}
.hd-tp-hero__cta { margin-top: 34px; }
.hd-tp-hero__photo-col { position: relative; }
.hd-tp-hero__photo-wrap {
	aspect-ratio: 4 / 5;
	border-radius: 26px;
	overflow: hidden;
	box-shadow: 0 30px 64px -30px rgba(22,39,60,.42);
}
.hd-tp-hero__photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.hd-tp-hero__badge {
	position: absolute;
	left: -28px;
	bottom: 36px;
	background: #fff;
	border-radius: 20px;
	border: 1px solid #e4ebf3;
	box-shadow: 0 24px 50px -24px rgba(22,39,60,.4);
	padding: 18px 24px;
	display: flex;
	align-items: center;
	gap: 14px;
}
.hd-tp-hero__badge-num {
	font-size: 44px;
	font-weight: 800;
	color: #1568c9;
	letter-spacing: -.03em;
	line-height: 1;
}
.hd-tp-hero__badge-text {
	font-size: 14.5px;
	font-weight: 700;
	color: #16273c;
	line-height: 1.3;
	max-width: 130px;
}

/* --- Tips list --- */
.hd-tp-tips {
	background: #fff;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
}
.hd-tp-tips__inner { max-width: 1312px; margin: 0 auto; }
.hd-tp-tips__header { max-width: 620px; margin: 0 auto 56px; text-align: center; }
.hd-tp-tips__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.hd-tp-tips__card {
	background: #fff;
	border-radius: 20px;
	border: 1px solid #e4ebf3;
	padding: 32px 34px;
	box-shadow: 0 8px 24px -18px rgba(22,39,60,.28);
	display: flex;
	gap: 22px;
}
.hd-tp-tips__card--highlight {
	background: #16273c;
	border-color: #16273c;
	box-shadow: 0 20px 44px -24px rgba(22,39,60,.5);
}
.hd-tp-tips__num {
	font-size: 34px;
	font-weight: 800;
	color: #cdddec;
	letter-spacing: -.02em;
	line-height: 1;
	flex-shrink: 0;
	width: 48px;
}
.hd-tp-tips__num--highlight { color: #3d8ae8; }
.hd-tp-tips__title {
	margin: 0;
	font-size: 21px;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.01em;
	line-height: 1.2;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-tp-tips__title--highlight { color: #fff; }
.hd-tp-tips__desc {
	margin: 11px 0 0;
	font-size: 15px;
	line-height: 1.6;
	color: #5a6a7a;
}
.hd-tp-tips__desc--highlight { color: rgba(255,255,255,.75); }
.hd-tp-tips__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 18px;
	font-size: 14.5px;
	font-weight: 800;
	color: #fff;
	text-decoration: none;
}
.hd-tp-tips__link:hover { opacity: .85; }

/* --- Tips responsive --- */
@media (max-width: 1024px) {
	.hd-tp-hero { padding: calc(48px + var(--hd-header-h)) 32px 72px; }
	.hd-tp-hero__inner { grid-template-columns: 1fr; padding-top: 44px; gap: 44px; }
	.hd-tp-hero__h1 { font-size: 44px; }
	.hd-tp-hero__photo-wrap { max-width: 480px; }
	.hd-tp-hero__badge { left: -10px; }
	.hd-tp-tips { padding: 72px 32px; }
}
@media (max-width: 640px) {
	.hd-tp-hero { padding: calc(32px + var(--hd-header-h)) 20px 56px; }
	.hd-tp-hero__h1 { font-size: 32px; }
	.hd-tp-hero__badge { left: 0; bottom: 24px; }
	.hd-tp-tips { padding: 56px 20px; }
	.hd-tp-tips__grid { grid-template-columns: 1fr; }
	.hd-tp-tips__card { padding: 24px 22px; }
}

/* =========================================================================
   Samarbeta med oss (.hd-sb-*)
   ========================================================================= */

/* --- Hero (centered) --- */
.hd-sb-hero {
	position: relative;
	overflow: hidden;
	font-family: 'Plus Jakarta Sans', sans-serif;
	background: radial-gradient(120% 92% at 88% -12%, #eef5fc 0%, #ffffff 58%);
	padding-right: 64px;
	padding-bottom: 0;
	padding-left: 64px;
}
.hd-sb-hero__dots {
	position: absolute;
	inset: 0;
	opacity: .5;
	pointer-events: none;
}
.hd-sb-hero__inner {
	position: relative;
	max-width: 1312px;
	margin: 0 auto;
}
.hd-sb-hero__text {
	padding: 74px 0 84px;
	max-width: 760px;
}
.hd-sb-hero__h1 {
	margin: 4px 0 0;
	font-size: 58px;
	line-height: 1.04;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.02em;
	text-wrap: balance;
}
.hd-sb-hero__accent { color: #1568c9; }
.hd-sb-hero__lead {
	margin: 24px 0 0;
	font-size: 19px;
	line-height: 1.6;
	color: #5a6a7a;
	max-width: 600px;
}
.hd-sb-hero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 22px;
	margin-top: 30px;
}

/* --- Partners grid --- */
.hd-sb-partners {
	background: #fff;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
}
.hd-sb-partners__inner { max-width: 1312px; margin: 0 auto; }
.hd-sb-partners__header { max-width: 640px; margin-bottom: 48px; }
.hd-sb-partners__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.hd-sb-partners__card {
	background: #fff;
	border-radius: 20px;
	border: 1px solid #e4ebf3;
	padding: 30px 28px;
	box-shadow: 0 8px 24px -18px rgba(22,39,60,.28);
}
.hd-sb-partners__icon {
	width: 54px;
	height: 54px;
	border-radius: 15px;
	background: #eef5fc;
	color: #1568c9;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
}
.hd-sb-partners__title {
	margin: 0;
	font-size: 18.5px;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.01em;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-sb-partners__desc {
	margin: 9px 0 0;
	font-size: 14.5px;
	line-height: 1.55;
	color: #5a6a7a;
}

/* --- Form section --- */
.hd-sb-form {
	background: #f6fafe;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
}
.hd-sb-form__inner {
	max-width: 1312px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 560px;
	gap: 72px;
	align-items: center;
}
.hd-sb-form__pitch { display: flex; flex-direction: column; align-items: flex-start; }
.hd-sb-form__benefits {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-top: 32px;
}
.hd-sb-form__benefit {
	display: flex;
	align-items: center;
	gap: 13px;
	font-size: 16px;
	font-weight: 600;
	color: #22303f;
}
.hd-sb-form__benefit-icon {
	width: 28px;
	height: 28px;
	border-radius: 8px;
	background: #eef5fc;
	color: #1568c9;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.hd-sb-form__card {
	background: #fff;
	border-radius: 24px;
	border: 1px solid #e4ebf3;
	padding: 40px 40px 36px;
	box-shadow: 0 24px 54px -28px rgba(22,39,60,.32);
}
.hd-sb-form__card-title {
	margin: 0;
	font-size: 23px;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.015em;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-sb-form__card-sub {
	margin: 7px 0 22px;
	font-size: 14.5px;
	color: #5a6a7a;
	line-height: 1.5;
}
/* CF7 inside samarbeta card */
.hd-sb-form__card .wpcf7 { margin: 0; }
.hd-sb-form__card .wpcf7 form { display: flex; flex-direction: column; gap: 0; }
.hd-sb-form__card .wpcf7 p { margin: 0 0 16px; }
.hd-sb-form__card .wpcf7 label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13.5px;
	font-weight: 700;
	color: #16273c;
}
.hd-sb-form__card .wpcf7 br { display: none; }
.hd-sb-form__card .wpcf7 .hd-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-bottom: 16px;
}
.hd-sb-form__card .wpcf7 .hd-form-row p { margin: 0; }
.hd-sb-form__card .wpcf7 input[type="text"],
.hd-sb-form__card .wpcf7 input[type="tel"],
.hd-sb-form__card .wpcf7 input[type="email"],
.hd-sb-form__card .wpcf7 textarea {
	width: 100%;
	border-radius: 12px;
	border: 1.5px solid #e4ebf3;
	background: #f6fafe;
	padding: 13px 16px;
	font-size: 14.5px;
	color: #5a6a7a;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
	transition: border-color .15s;
	resize: vertical;
}
.hd-sb-form__card .wpcf7 input:focus,
.hd-sb-form__card .wpcf7 textarea:focus { outline: none; border-color: #1568c9; }
.hd-sb-form__card .wpcf7 textarea { min-height: 100px; }
.hd-sb-form__card .wpcf7 input[type="submit"] {
	width: 100%;
	height: 52px;
	border-radius: 14px;
	border: none;
	cursor: pointer;
	background: linear-gradient(180deg, #3d8ae8, #1568c9);
	color: #fff;
	font-weight: 800;
	font-size: 15.5px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	letter-spacing: .01em;
	box-shadow: 0 10px 22px -8px rgba(21,104,201,.55);
	margin-top: 6px;
	transition: filter .15s, transform .15s;
}
.hd-sb-form__card .wpcf7 input[type="submit"]:hover { filter: brightness(1.07); transform: translateY(-1px); }

/* --- Samarbeta responsive --- */
@media (max-width: 1024px) {
	.hd-sb-hero { padding: calc(48px + var(--hd-header-h)) 32px 0; }
	.hd-sb-hero__text { padding: 44px 0 64px; }
	.hd-sb-hero__h1 { font-size: 44px; }
	.hd-sb-partners { padding: 72px 32px; }
	.hd-sb-partners__grid { grid-template-columns: 1fr 1fr; }
	.hd-sb-form { padding: 72px 32px; }
	.hd-sb-form__inner { grid-template-columns: 1fr; gap: 44px; }
}
@media (max-width: 640px) {
	.hd-sb-hero { padding: calc(32px + var(--hd-header-h)) 20px 0; }
	.hd-sb-hero__text { padding: 32px 0 48px; }
	.hd-sb-hero__h1 { font-size: 32px; }
	.hd-sb-partners { padding: 56px 20px; }
	.hd-sb-partners__grid { grid-template-columns: 1fr; }
	.hd-sb-form { padding: 56px 20px; }
	.hd-sb-form__card .wpcf7 .hd-form-row { grid-template-columns: 1fr; }
}

/* =========================================================================
   Allmänna villkor / Viktig information (.hd-vk-*)
   ========================================================================= */

/* --- Hero (centered) --- */
.hd-vk-hero {
	position: relative;
	overflow: hidden;
	font-family: 'Plus Jakarta Sans', sans-serif;
	background: radial-gradient(120% 92% at 88% -12%, #eef5fc 0%, #ffffff 58%);
	padding-right: 64px;
	padding-bottom: 0;
	padding-left: 64px;
}
.hd-vk-hero__dots {
	position: absolute;
	inset: 0;
	opacity: .5;
	pointer-events: none;
}
.hd-vk-hero__inner {
	position: relative;
	max-width: 1312px;
	margin: 0 auto;
}
.hd-vk-hero__text {
	padding: 74px 0 84px;
	max-width: 760px;
}
.hd-vk-hero__h1 {
	margin: 4px 0 0;
	font-size: 58px;
	line-height: 1.04;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.02em;
	text-wrap: balance;
}
.hd-vk-hero__accent { color: #1568c9; }
.hd-vk-hero__lead {
	margin: 24px 0 0;
	font-size: 19px;
	line-height: 1.6;
	color: #5a6a7a;
	max-width: 600px;
}
.hd-vk-hero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 22px;
	margin-top: 30px;
}

/* --- Docs section --- */
.hd-vk-docs {
	background: #fff;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
}
.hd-vk-docs__inner { max-width: 1312px; margin: 0 auto; }
.hd-vk-docs__header { max-width: 640px; margin-bottom: 48px; }
.hd-vk-docs__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.hd-vk-docs__card {
	text-decoration: none !important;
	display: flex;
	gap: 22px;
	background: #fff;
	border: 1px solid #e4ebf3;
	border-radius: 20px;
	padding: 28px 30px;
	box-shadow: 0 8px 24px -18px rgba(22,39,60,.28);
	align-items: flex-start;
	transition: box-shadow .18s, transform .18s;
}
.hd-vk-docs__card:hover { box-shadow: 0 16px 36px -16px rgba(22,39,60,.36); transform: translateY(-2px); }
.hd-vk-docs__pdf-icon {
	width: 56px;
	min-height: 68px;
	border-radius: 10px;
	background: #eef5fc;
	border: 1px solid #e4ebf3;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.hd-vk-docs__pdf-label {
	margin-top: 5px;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .08em;
	color: #1568c9;
}
.hd-vk-docs__card-body { flex: 1; }
.hd-vk-docs__tag {
	display: inline-block;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #1aa39c;
	margin-bottom: 8px;
}
.hd-vk-docs__title {
	margin: 0;
	font-size: 19.5px;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.01em;
	line-height: 1.25;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-vk-docs__desc {
	margin: 9px 0 0;
	font-size: 14.5px;
	line-height: 1.55;
	color: #5a6a7a;
}
.hd-vk-docs__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 18px;
}
.hd-vk-docs__open {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 800;
	color: #1568c9;
}
.hd-vk-docs__size { font-size: 12.5px; font-weight: 600; color: #9aabbb; }

/* --- Key terms section --- */
.hd-vk-keyterms {
	background: #f6fafe;
	padding: 96px 64px;
	font-family: 'Plus Jakarta Sans', sans-serif;
	box-sizing: border-box;
}
.hd-vk-keyterms__inner { max-width: 1312px; margin: 0 auto; }
.hd-vk-keyterms__header { max-width: 560px; margin-bottom: 44px; }
.hd-vk-keyterms__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.hd-vk-keyterms__card {
	background: #fff;
	border-radius: 18px;
	border: 1px solid #e4ebf3;
	padding: 28px 26px;
}
.hd-vk-keyterms__icon {
	width: 50px;
	height: 50px;
	border-radius: 14px;
	background: #eef5fc;
	color: #1568c9;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 18px;
}
.hd-vk-keyterms__title {
	margin: 0;
	font-size: 18px;
	font-weight: 800;
	color: #16273c;
	letter-spacing: -.01em;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.hd-vk-keyterms__desc {
	margin: 8px 0 0;
	font-size: 14.5px;
	line-height: 1.55;
	color: #5a6a7a;
}

/* --- Villkor responsive --- */
@media (max-width: 1024px) {
	.hd-vk-hero { padding: calc(48px + var(--hd-header-h)) 32px 0; }
	.hd-vk-hero__text { padding: 44px 0 64px; }
	.hd-vk-hero__h1 { font-size: 44px; }
	.hd-vk-docs { padding: 72px 32px; }
	.hd-vk-keyterms { padding: 72px 32px; }
	.hd-vk-keyterms__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
	.hd-vk-hero { padding: calc(32px + var(--hd-header-h)) 20px 0; }
	.hd-vk-hero__text { padding: 32px 0 48px; }
	.hd-vk-hero__h1 { font-size: 32px; }
	.hd-vk-docs { padding: 56px 20px; }
	.hd-vk-docs__grid { grid-template-columns: 1fr; }
	.hd-vk-keyterms { padding: 56px 20px; }
	.hd-vk-keyterms__grid { grid-template-columns: 1fr 1fr; }
}

/* =========================================================================
   MOBILE GLOBAL — hamburger nav, sticky CTA, overflow fix
   ========================================================================= */

/* Prevent horizontal scroll on all pages */
body { overflow-x: hidden; }

/* ---- Navigation hamburger (≤767px) ---- */
@media (max-width: 767px) {

    /* Show hamburger button */
    .wp-block-navigation .wp-block-navigation__responsive-container-open {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 42px;
        background: transparent;
        border: 1.5px solid #e4ebf3;
        border-radius: 10px;
        cursor: pointer;
        padding: 0;
        flex-shrink: 0;
        color: #16273c;
    }

    /* Hide nav container before it's opened */
    .wp-block-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
        display: none !important;
    }

    /* Full-screen overlay when opened */
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open {
        display: block !important;
        position: fixed !important;
        top: 0 !important; right: 0 !important;
        bottom: 0 !important; left: 0 !important;
        z-index: 9999 !important;
        background: #fff;
        overflow-y: auto;
    }
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-close {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        padding: 14px 20px;
        border-bottom: 1px solid #e4ebf3;
    }
    /* Close button */
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 42px;
        background: transparent;
        border: 1.5px solid #e4ebf3;
        border-radius: 10px;
        cursor: pointer;
        padding: 0;
        color: #16273c;
        flex-shrink: 0;
    }

    /* Nav items list */
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__container {
        display: flex !important;
        flex-direction: column;
        gap: 0;
        padding: 8px 20px 100px;
    }
    /* Each nav item: row layout so link + chevron sit side by side */
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item {
        border-bottom: 1px solid #f0f4f8;
        flex-direction: row !important;
        flex-wrap: wrap;
    }
    /* The link: grow to fill available space, not 100% (that causes wrapping) */
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item > a {
        display: flex !important;
        align-items: center;
        flex: 1;
        padding: 16px 4px;
        font-size: 17px;
        font-weight: 700;
        color: #16273c;
        text-decoration: none;
        font-family: 'Plus Jakarta Sans', sans-serif;
    }
    /* Submenu toggle button: compact chevron on the right */
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item > .wp-block-navigation-submenu__toggle {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 52px;
        flex-shrink: 0;
        padding: 0;
        background: none;
        border: none;
        outline: none;
        cursor: pointer;
        color: #5a6a7a;
    }
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item > .wp-block-navigation-submenu__toggle svg {
        width: 10px !important;
        height: 10px !important;
    }
    /* Kill all focus outlines inside the mobile overlay */
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item,
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:focus,
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item:focus-within,
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item > a:focus,
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item > .wp-block-navigation-submenu__toggle:focus,
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__submenu-container:focus-within {
        outline: none !important;
        box-shadow: none !important;
    }
    /* Submenu container: hidden by default in overlay (overrides TT25's display:flex) */
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__submenu-container {
        display: none;
        width: 100%;
        flex-direction: column;
        gap: 0;
        padding-left: 12px;
        margin-bottom: 8px;
        position: static !important;
        background: transparent;
    }
    /* Show submenu when its toggle button is expanded */
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-container {
        display: flex;
        border-top: 1px solid #e4ebf3;
        padding-top: 4px;
    }
    /* Submenu links */
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__submenu-container .wp-block-navigation-item {
        border-bottom: 1px solid #f6f8fa;
        flex-wrap: nowrap;
    }
    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__submenu-container a {
        display: block;
        padding: 10px 4px;
        font-size: 15px;
        font-weight: 600;
        color: #5a6a7a;
        text-decoration: none;
    }
}

/* ---- Sticky mobile CTA bar ---- */
.hd-mobile-cta { display: none; transition: opacity .3s; }

@media (max-width: 767px) {
    .hd-mobile-cta {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 400;
        background: #fff;
        border-top: 1px solid #e4ebf3;
        padding: 10px 16px;
        gap: 10px;
        box-shadow: 0 -4px 16px -4px rgba(22,39,60,.10);
        font-family: 'Plus Jakarta Sans', sans-serif;
    }
    .hd-mobile-cta__offert {
        flex: 1;
        height: 48px;
        border-radius: 12px;
        border: none;
        background: linear-gradient(180deg, #3d8ae8, #1568c9);
        color: #fff !important;
        font-weight: 800;
        font-size: 15px;
        font-family: 'Plus Jakarta Sans', sans-serif;
        text-decoration: none !important;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        box-shadow: 0 6px 14px -6px rgba(21,104,201,.45);
        cursor: pointer;
    }
    .hd-mobile-cta__phone {
        width: 48px;
        height: 48px;
        border-radius: 12px;
        background: #eef5fc;
        color: #1568c9 !important;
        display: flex;
        align-items: center;
        justify-content: center;
        text-decoration: none !important;
        flex-shrink: 0;
    }
    /* Extra footer padding so CTA bar doesn't cover content */
    .hd-footer { padding-bottom: 90px !important; }

    /* ---- Section tweaks ---- */

    /* Kontakt areas */
    .hd-kt-areas__grid { grid-template-columns: 1fr; }
    .hd-kt-areas__card { padding: 32px 24px; border-radius: 20px; }
    .hd-kt-areas__cities { grid-template-columns: 1fr 1fr; }

    /* Stat bands 2×2 */
    .hd-vf-stats__inner { grid-template-columns: 1fr 1fr !important; gap: 28px; }
    .hd-vf-stats__divider { display: none !important; }
    .hd-omoss-stats__inner { grid-template-columns: 1fr 1fr !important; }
    .hd-omoss-stats__divider { display: none !important; }
    .hd-omoss-stats__item:nth-child(odd) { border-right: 1px solid #e4ebf3; padding-right: 24px; }

    /* Flytt service cards */
    .hd-fl-svc-card { grid-template-columns: 1fr !important; }
    .hd-fl-svc-card__left { border-right: none; border-bottom: 1px solid #e4ebf3; }
    .hd-fl-svc-card__points { grid-template-columns: 1fr !important; }

    /* Tips */
    .hd-tp-tips__grid { grid-template-columns: 1fr; }

    /* CTA sections */
    .hd-page-cta-outer { padding: 0 20px 72px; }
    .hd-page-cta { padding: 40px 24px; border-radius: 22px; }
    .hd-page-cta__heading { font-size: 26px; }
    .hd-page-cta__phone { color: #fff !important; }
    .hd-fl-cta { padding: 0 20px 90px; }
    .hd-fl-cta__card { padding: 40px 24px; border-radius: 22px; }
    .hd-fl-cta__heading { font-size: 26px; }

    /* Google review card — no absolute on small screens */
    .hd-vf-service__google { position: static; margin-top: 20px; max-width: 100%; }

    /* Why grid → single col */
    .hd-fl-why__grid { grid-template-columns: 1fr; }
    .hd-fl-why__desc { padding-left: 0; margin-top: 6px; }

    /* Process → single col */
    .hd-fl-process__grid { grid-template-columns: 1fr; }
    .hd-fl-step__dash { display: none; }

    /* Samarbeta */
    .hd-sb-partners__grid { grid-template-columns: 1fr; }
    .hd-sb-partners { padding: 56px 20px; }
    .hd-sb-form { padding: 56px 20px; }
    .hd-sb-form__inner { grid-template-columns: 1fr; gap: 40px; }

    /* Map height */
    .hd-kt-map__embed { height: 260px; }
    .hd-kt-map { padding: 0 20px 72px; }
}

/* =========================================================================
   Google Places Autocomplete dropdown
   ========================================================================= */

.pac-container {
	z-index: 9999 !important;
	font-family: 'Plus Jakarta Sans', sans-serif;
	border: 1.5px solid #e4ebf3;
	border-radius: 12px;
	box-shadow: 0 8px 24px -4px rgba(21, 104, 201, .12);
	margin-top: 4px;
	overflow: hidden;
}
.pac-item {
	padding: 9px 14px;
	font-size: 14px;
	color: #1a2535;
	cursor: pointer;
	border-top: 1px solid #f0f4f9;
}
.pac-item:first-child { border-top: none; }
.pac-item:hover,
.pac-item-selected {
	background: #eef5fc;
}
.pac-item-query {
	font-size: 14px;
	color: #1a2535;
}
.pac-matched { font-weight: 700; }
.pac-icon { display: none; }
.pac-logo { display: none !important; }
