/*
Theme Name: Flytta till Polen (WPVibe Draft)
Theme URI: https://flyttatillpolen.se
Description: Ett snabbt och responsivt blocktema för Flytta till Polen. Child theme till Twenty Twenty-Five.
Author: Flytta till Polen
Version: 2.1.2
Template: twentytwentyfive
Requires at least: 6.6
Requires PHP: 8.0
Text Domain: flytta-till-polen
*/
:root{--ftp-navy:#172033;--ftp-red:#b4232d;--ftp-red-dark:#921b24;--ftp-cream:#f7f6f2;--ftp-white:#fff;--ftp-muted:#667085;--ftp-border:#e7e5df;--ftp-soft-red:#f8e9eb;--ftp-radius:18px;--ftp-shadow:0 16px 45px rgba(23,32,51,.08)}
html{scroll-behavior:smooth}body{background:var(--ftp-cream);color:var(--ftp-navy)}a{text-underline-offset:.18em}.ftp-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.admin-bar .ftp-header{top:32px}.ftp-header-row{min-height:64px}.ftp-header .wp-block-site-title{margin:0;white-space:nowrap;font-weight:800;letter-spacing:-.04em}.ftp-header .wp-block-site-title a{text-decoration:none;color:var(--ftp-navy)}.ftp-header .wp-block-navigation{margin-left:auto}.ftp-header .wp-block-navigation-item__content{text-decoration:none;font-weight:600}.ftp-header .wp-block-navigation-item__content:hover,.ftp-header .wp-block-navigation-item__content:focus{color:var(--ftp-red)}.ftp-header .wp-block-navigation__submenu-container{border:1px solid var(--ftp-border);border-radius:12px;box-shadow:var(--ftp-shadow);padding:.4rem}.ftp-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:.65rem .8rem;border-radius:8px}.ftp-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{background:var(--ftp-soft-red)}.ftp-cta .wp-block-button__link,.ftp-primary-button .wp-block-button__link{white-space:nowrap;background:var(--ftp-red);color:#fff;border-radius:999px;padding:.82rem 1.25rem;font-weight:800;text-decoration:none}.ftp-cta .wp-block-button__link:hover,.ftp-primary-button .wp-block-button__link:hover{background:var(--ftp-red-dark);transform:translateY(-1px)}.ftp-secondary-button .wp-block-button__link{white-space:nowrap;background:transparent;color:var(--ftp-navy);border:1px solid var(--ftp-navy);border-radius:999px;padding:.78rem 1.2rem;font-weight:800;text-decoration:none}.ftp-secondary-button .wp-block-button__link:hover{background:var(--ftp-navy);color:#fff}.ftp-hero{overflow:hidden}.ftp-kicker{color:var(--ftp-red);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.82rem}.ftp-hero h1{max-width:14ch;letter-spacing:-.055em;line-height:1.02}.ftp-hero-copy{max-width:640px;color:#475467;font-size:clamp(1.08rem,1.3vw,1.25rem);line-height:1.7}.ftp-check-card,.ftp-guide-card,.ftp-highlight-card,.ftp-trust-card{background:#fff;border:1px solid var(--ftp-border);border-radius:var(--ftp-radius);box-shadow:var(--ftp-shadow)}.ftp-check-card{transform:rotate(1.2deg)}.ftp-check-card ul{padding-left:1.35rem}.ftp-check-card li::marker{color:var(--ftp-red)}.ftp-guide-card{height:100%;transition:transform 180ms ease,box-shadow 180ms ease}.ftp-guide-card:hover{transform:translateY(-4px);box-shadow:0 20px 52px rgba(23,32,51,.12)}.ftp-guide-card a{font-weight:800;color:var(--ftp-red)}.ftp-section-title{max-width:19ch;letter-spacing:-.04em}.ftp-muted{color:var(--ftp-muted)}.ftp-highlight-card{background:var(--ftp-navy);color:#fff}.ftp-highlight-card a{color:#fff}.ftp-trust-card{border-left:5px solid var(--ftp-red)}.ftp-content-shell{background:#fff;border:1px solid var(--ftp-border);border-radius:var(--ftp-radius);box-shadow:var(--ftp-shadow)}.ftp-content-shell h1,.ftp-content-shell h2,.ftp-content-shell h3{letter-spacing:-.035em}.ftp-content-shell p,.ftp-content-shell li{line-height:1.75}.ftp-footer{background:var(--ftp-navy);color:#fff}.ftp-footer a{color:#fff;text-decoration-color:rgba(255,255,255,.45)}.ftp-footer a:hover{color:#f4c9cd}.ftp-footer .wp-block-site-title a{color:#fff;text-decoration:none;font-weight:800}.ftp-footer-small{color:#d8dde7;font-size:.88rem}.ftp-footer .wp-block-separator{border-color:rgba(255,255,255,.2)}
@media(max-width:980px){.ftp-header .ftp-cta{display:none}.ftp-header-row{justify-content:space-between}.ftp-hero h1{max-width:none}.ftp-check-card{transform:none}}
@media(max-width:782px){.admin-bar .ftp-header{top:46px}.ftp-header{padding-left:1rem!important;padding-right:1rem!important}.ftp-header .wp-block-site-title{font-size:1.25rem!important}.ftp-header .wp-block-navigation__responsive-container.is-menu-open{padding:1.5rem;background:var(--ftp-cream)}.ftp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{align-items:flex-start}.ftp-header .wp-block-navigation__container{gap:.35rem}.ftp-header .wp-block-navigation-item__content{font-size:1.1rem;padding:.45rem 0}.ftp-hero{padding-top:3.5rem!important;padding-bottom:3.5rem!important}.ftp-footer{padding-left:1.25rem!important;padding-right:1.25rem!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;transform:none!important}}


/* Version 2.0 */
.ftp-home-section { padding-top: 5rem; padding-bottom: 5rem; }
.ftp-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.4rem; }
.ftp-city-card, .ftp-work-card, .ftp-return-card { background:#fff; border:1px solid var(--ftp-border); border-radius:var(--ftp-radius); overflow:hidden; box-shadow:var(--ftp-shadow); }
.ftp-city-card-body, .ftp-work-card, .ftp-return-card { padding:1.6rem; }
.ftp-city-card .ftp-cj-hero-media, .ftp-city-card .ftp-cj-photo-placeholder { border-radius:0; }
.ftp-city-card h3, .ftp-work-card h3 { margin-top:0; }
.ftp-home-section-dark { background:var(--ftp-navy); color:#fff; }
.ftp-home-section-dark h2, .ftp-home-section-dark h3 { color:#fff; }
.ftp-home-section-dark a { color:#fff; }
.ftp-badge { display:inline-flex; padding:.35rem .65rem; border-radius:999px; background:var(--ftp-soft-red); color:var(--ftp-red); font-size:.82rem; font-weight:800; }
.ftp-checklist-download { background:#fff; border:1px solid var(--ftp-border); border-left:5px solid var(--ftp-red); border-radius:var(--ftp-radius); padding:1.6rem; box-shadow:var(--ftp-shadow); margin-bottom:2rem; }
.ftp-checklist-download .wp-element-button, .ftp-download-button { display:inline-flex; background:var(--ftp-red); color:#fff; text-decoration:none; border-radius:999px; padding:.8rem 1.25rem; font-weight:800; }
.ftp-forum-placeholder { border:1px solid var(--ftp-border); border-radius:var(--ftp-radius); background:#fff; padding:1.5rem; }
.ftp-search-404 .wp-block-search__input { border-radius:999px 0 0 999px; }
.ftp-search-404 .wp-block-search__button { border-radius:0 999px 999px 0; }
@media (max-width:980px){ .ftp-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));} .ftp-header .wp-block-navigation{margin-left:0;} }
@media (max-width:680px){ .ftp-card-grid{grid-template-columns:1fr;} .ftp-home-section{padding-top:3.5rem;padding-bottom:3.5rem;} }


/* Version 2.1.1 — front-page layout repair */
/* Shortcode blocks inside constrained sections must use the wide site width. */
.ftp-home-section > .wp-block-shortcode,
.ftp-home-section .wp-block-shortcode:has(> .ftp-card-grid) {
	width: min(100%, var(--wp--style--global--wide-size, 1200px)) !important;
	max-width: var(--wp--style--global--wide-size, 1200px) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.ftp-home-section .ftp-card-grid {
	width: 100%;
	max-width: none;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
}

.ftp-home-section .ftp-work-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Previous height:100% rule caused the two guide rows to overlap vertically. */
.ftp-card-grid > .ftp-guide-card,
.ftp-card-grid > .ftp-city-card,
.ftp-card-grid > .ftp-work-card,
.ftp-card-grid > .ftp-return-card {
	height: auto !important;
	min-width: 0;
	box-sizing: border-box;
}

.ftp-card-grid > .ftp-guide-card,
.ftp-card-grid > .ftp-work-card,
.ftp-card-grid > .ftp-return-card {
	min-height: 220px;
	display: flex;
	flex-direction: column;
}

.ftp-card-grid > .ftp-guide-card p:last-child,
.ftp-card-grid > .ftp-work-card p:last-child,
.ftp-card-grid > .ftp-return-card p:last-child {
	margin-top: auto;
}

.ftp-card-grid h2,
.ftp-card-grid h3 {
	font-size: clamp(1.3rem, 2vw, 1.75rem) !important;
	line-height: 1.18 !important;
	letter-spacing: -0.035em;
	overflow-wrap: anywhere;
	word-break: normal;
}

.ftp-city-card h2 {
	font-size: clamp(1.5rem, 2.25vw, 2rem) !important;
	margin-top: 1rem;
	margin-bottom: 1rem;
}

.ftp-city-card-body {
	overflow: hidden;
}

.ftp-city-card .ftp-cj-hero-media,
.ftp-city-card .ftp-cj-photo-placeholder {
	width: 100%;
	aspect-ratio: 16 / 9 !important;
	min-height: 0 !important;
}

/* White cards on the dark return section previously inherited white text. */
.ftp-home-section-dark .ftp-return-card {
	color: var(--ftp-navy) !important;
}
.ftp-home-section-dark .ftp-return-card h3 {
	color: var(--ftp-navy) !important;
}
.ftp-home-section-dark .ftp-return-card p {
	color: #475467 !important;
}
.ftp-home-section-dark .ftp-return-card a {
	color: var(--ftp-red) !important;
}

/* Keep desktop sections visually balanced. */
.ftp-home-section .ftp-section-title,
.ftp-home-section > .wp-block-heading.alignwide,
.ftp-home-section > .wp-block-paragraph.alignwide {
	width: min(100%, var(--wp--style--global--wide-size, 1200px));
	max-width: var(--wp--style--global--wide-size, 1200px);
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 980px) {
	.ftp-home-section .ftp-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.ftp-home-section .ftp-work-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 680px) {
	.ftp-home-section .ftp-card-grid {
		grid-template-columns: 1fr;
	}
	.ftp-card-grid > .ftp-guide-card,
	.ftp-card-grid > .ftp-work-card,
	.ftp-card-grid > .ftp-return-card {
		min-height: 0;
	}
}


/* Version 2.1.2 — mobile header and navigation repair */
@media (max-width: 782px) {
	html,
	body {
		overflow-x: hidden;
	}

	.ftp-header {
		position: sticky;
		top: 0;
		z-index: 9990;
		width: 100%;
		box-sizing: border-box;
		padding-top: max(0.7rem, env(safe-area-inset-top)) !important;
		padding-right: max(1rem, env(safe-area-inset-right)) !important;
		padding-bottom: 0.7rem !important;
		padding-left: max(1rem, env(safe-area-inset-left)) !important;
		background: rgba(255,255,255,0.98) !important;
		border-bottom: 1px solid var(--ftp-border) !important;
		-webkit-backdrop-filter: blur(14px);
		backdrop-filter: blur(14px);
	}

	.admin-bar .ftp-header {
		top: 0;
	}

	.ftp-header-row {
		width: 100%;
		max-width: none !important;
		min-height: 48px;
		gap: 0.75rem;
		justify-content: space-between !important;
		align-items: center !important;
		flex-wrap: nowrap !important;
	}

	.ftp-header .wp-block-site-title {
		flex: 1 1 auto;
		min-width: 0;
		max-width: calc(100vw - 96px);
		margin: 0 !important;
		font-size: clamp(1.05rem, 5vw, 1.28rem) !important;
		line-height: 1.1 !important;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.ftp-header .wp-block-site-title a {
		display: block;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.ftp-header .ftp-nav {
		flex: 0 0 auto;
		margin: 0 !important;
	}

	.ftp-header .wp-block-navigation__responsive-container-open {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 46px;
		height: 46px;
		margin: 0;
		padding: 0;
		border: 1px solid var(--ftp-border);
		border-radius: 999px;
		background: #fff;
		color: var(--ftp-navy);
		box-shadow: 0 5px 18px rgba(23,32,51,0.08);
	}

	.ftp-header .wp-block-navigation__responsive-container-open svg {
		width: 25px;
		height: 25px;
	}

	.ftp-header .ftp-cta {
		display: none !important;
	}

	.ftp-header .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		inset: 0 !important;
		z-index: 100000 !important;
		width: 100vw !important;
		max-width: none !important;
		height: 100vh !important;
		height: 100dvh !important;
		margin: 0 !important;
		padding:
			calc(env(safe-area-inset-top) + 1rem)
			max(1.25rem, env(safe-area-inset-right))
			calc(env(safe-area-inset-bottom) + 1.5rem)
			max(1.25rem, env(safe-area-inset-left)) !important;
		box-sizing: border-box;
		overflow-y: auto !important;
		overscroll-behavior: contain;
		background: var(--ftp-cream) !important;
		color: var(--ftp-navy) !important;
	}

	.ftp-header .wp-block-navigation__responsive-container-close {
		position: absolute;
		top: calc(env(safe-area-inset-top) + 0.75rem);
		right: max(1rem, env(safe-area-inset-right));
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 46px;
		height: 46px;
		margin: 0;
		padding: 0;
		border: 1px solid var(--ftp-border);
		border-radius: 999px;
		background: #fff;
		color: var(--ftp-navy);
		box-shadow: 0 5px 18px rgba(23,32,51,0.08);
	}

	.ftp-header .wp-block-navigation__responsive-container-close svg {
		width: 25px;
		height: 25px;
	}

	.ftp-header .wp-block-navigation__responsive-dialog {
		width: 100%;
		min-height: 100%;
		padding-top: calc(env(safe-area-inset-top) + 4.8rem);
		box-sizing: border-box;
	}

	.ftp-header .wp-block-navigation__responsive-container-content {
		display: flex !important;
		width: 100%;
		align-items: stretch !important;
		justify-content: flex-start !important;
		padding: 0 !important;
	}

	.ftp-header .wp-block-navigation__responsive-container-content > .wp-block-navigation__container {
		display: flex !important;
		width: 100%;
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 0 !important;
	}

	.ftp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
		width: 100%;
		align-items: stretch !important;
		border-bottom: 1px solid rgba(23,32,51,0.1);
	}

	.ftp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		display: flex;
		width: 100%;
		min-height: 50px;
		align-items: center;
		box-sizing: border-box;
		padding: 0.75rem 0.15rem !important;
		color: var(--ftp-navy) !important;
		font-size: 1.05rem !important;
		font-weight: 750;
		line-height: 1.25;
		text-align: left !important;
		text-decoration: none;
	}

	.ftp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
	.ftp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus {
		color: var(--ftp-red) !important;
	}

	.ftp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu {
		display: block !important;
	}

	.ftp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
		margin-left: auto;
	}

	.ftp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		position: static !important;
		display: flex !important;
		width: 100% !important;
		height: auto !important;
		flex-direction: column !important;
		gap: 0 !important;
		visibility: visible !important;
		opacity: 1 !important;
		overflow: visible !important;
		margin: 0 0 0.45rem !important;
		padding: 0 0 0 1rem !important;
		border: 0 !important;
		border-left: 2px solid var(--ftp-soft-red) !important;
		border-radius: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	.ftp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
		border-bottom: 0;
	}

	.ftp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		min-height: 42px;
		padding: 0.55rem 0.7rem !important;
		font-size: 0.95rem !important;
		font-weight: 600;
		color: #475467 !important;
	}

	body.has-modal-open {
		overflow: hidden !important;
		touch-action: none;
	}

	.ftp-hero {
		padding-top: 3.25rem !important;
	}
}

@media (max-width: 390px) {
	.ftp-header .wp-block-site-title {
		font-size: 1rem !important;
		max-width: calc(100vw - 86px);
	}

	.ftp-header .wp-block-navigation__responsive-container-open,
	.ftp-header .wp-block-navigation__responsive-container-close {
		width: 42px;
		height: 42px;
	}
}
