/*
|--------------------------------------------------------------------------
| Allt för studenten – premium designsystem
| Placering: /public/css/alltforstudenten-premium.css
|--------------------------------------------------------------------------
*/

:root{
	--afs-navy:#071a31;
	--afs-navy-2:#0b2a4a;
	--afs-navy-3:#123f6b;
	--afs-gold:#d6a84f;
	--afs-gold-2:#f3d58a;
	--afs-gold-3:#fff1c9;
	--afs-ivory:#fffaf0;
	--afs-cream:#f8f1df;
	--afs-bg:#f4f0e7;
	--afs-card:#ffffff;
	--afs-text:#132033;
	--afs-muted:#667386;
	--afs-line:#e7dfcf;
	--afs-line-2:#d9c99c;
	--afs-green:#159267;
	--afs-shadow:0 22px 70px rgba(7,26,49,.16);
	--afs-shadow-soft:0 14px 36px rgba(7,26,49,.10);
	--afs-radius:26px;
	--afs-radius-sm:18px;
	--afs-max:1220px;
}

*{
	box-sizing:border-box;
}

html{
	scroll-behavior:smooth;
}

body{
	margin:0;
	padding:0;
	background:
		radial-gradient(circle at 12% 0%, rgba(214,168,79,.17), transparent 30rem),
		radial-gradient(circle at 100% 14%, rgba(7,26,49,.11), transparent 32rem),
		var(--afs-bg);
	color:var(--afs-text);
	font-family:'Inter', Arial, sans-serif;
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
}

img{
	max-width:100%;
	height:auto;
	display:block;
}

a{
	color:inherit;
	text-decoration:none;
}

button,
input{
	font-family:inherit;
}

.afs-wrap{
	width:min(var(--afs-max), calc(100% - 28px));
	margin:0 auto;
}

.afs-page{
	background:
		radial-gradient(circle at 12% 4%, rgba(214,168,79,.13), transparent 28rem),
		linear-gradient(180deg, #fbf7ee 0%, #f4f0e7 100%);
	min-height:100vh;
}

.afs-serif,
.afs-page h1,
.afs-page h2,
.afs-page h3,
.afs-page h4,
.afs-site-footer h2,
.afs-site-footer h3{
	font-family:'Fraunces', Georgia, serif;
}

.afs-script{
	font-family:'Parisienne', 'Fraunces', Georgia, serif;
	font-weight:400;
	letter-spacing:.01em;
}

/* Header */

.afs-site-header{
	position:sticky;
	top:0;
	z-index:100;
	background:rgba(7,26,49,.94);
	backdrop-filter:blur(18px);
	border-bottom:1px solid rgba(214,168,79,.34);
	box-shadow:0 10px 30px rgba(7,26,49,.18);
}

.afs-site-header-inner{
	width:min(var(--afs-max), calc(100% - 28px));
	margin:0 auto;
	min-height:76px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
}

.afs-brand{
	display:flex;
	align-items:center;
	gap:12px;
	min-width:0;
	color:#fff;
}

.afs-brand-mark{
	width:44px;
	height:44px;
	flex:0 0 44px;
	border-radius:16px;
	display:grid;
	place-items:center;
	background:linear-gradient(135deg, var(--afs-gold-2), var(--afs-gold));
	color:var(--afs-navy);
	font-size:21px;
	box-shadow:0 12px 25px rgba(214,168,79,.26);
}

.afs-brand-text{
	display:block;
	font-family:'Fraunces', Georgia, serif;
	font-size:24px;
	font-weight:800;
	line-height:.95;
	letter-spacing:-.03em;
	color:#fff;
	white-space:nowrap;
}

.afs-main-nav{
	display:flex;
	align-items:center;
	gap:26px;
	color:rgba(255,255,255,.88);
	font-size:14px;
	font-weight:800;
}

.afs-main-nav a{
	position:relative;
	padding:28px 0;
}

.afs-main-nav a:after{
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:18px;
	height:2px;
	background:var(--afs-gold);
	transform:scaleX(0);
	transform-origin:left;
	transition:transform .18s ease;
}

.afs-main-nav a:hover{
	color:#fff;
}

.afs-main-nav a:hover:after,
.afs-main-nav a.is-active:after{
	transform:scaleX(1);
}

.afs-header-actions{
	display:flex;
	align-items:center;
	gap:10px;
}

.afs-header-cta{
	min-height:44px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	padding:0 18px;
	border-radius:12px;
	background:linear-gradient(135deg, var(--afs-gold-2), var(--afs-gold));
	color:#1f1706;
	font-weight:950;
	font-size:13px;
	text-transform:uppercase;
	letter-spacing:.03em;
	box-shadow:0 12px 28px rgba(214,168,79,.22);
	border:1px solid rgba(255,255,255,.24);
}

.afs-menu-toggle{
	display:none;
	width:44px;
	height:44px;
	border:1px solid rgba(255,255,255,.16);
	border-radius:14px;
	background:rgba(255,255,255,.06);
	cursor:pointer;
	align-items:center;
	justify-content:center;
}

.afs-menu-toggle span,
.afs-menu-toggle span:before,
.afs-menu-toggle span:after{
	display:block;
	width:22px;
	height:2px;
	background:#fff;
	border-radius:2px;
	position:relative;
	content:"";
}

.afs-menu-toggle span:before{
	position:absolute;
	top:-7px;
	left:0;
}

.afs-menu-toggle span:after{
	position:absolute;
	top:7px;
	left:0;
}

.afs-mobile-nav{
	display:none;
	width:min(var(--afs-max), calc(100% - 28px));
	margin:0 auto;
	padding:0 0 16px;
}

.afs-mobile-nav.is-open{
	display:block;
}

.afs-mobile-nav a{
	display:block;
	color:#fff;
	font-weight:850;
	padding:14px 4px;
	border-top:1px solid rgba(255,255,255,.10);
}

.afs-mobile-nav .afs-header-cta{
	margin-top:12px;
	width:100%;
}

/* Buttons */

.afs-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	min-height:48px;
	padding:13px 18px;
	border-radius:16px;
	border:1px solid transparent;
	font-size:14px;
	font-weight:950;
	line-height:1.15;
	text-align:center;
	text-decoration:none;
	cursor:pointer;
	transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}

.afs-btn:hover{
	transform:translateY(-1px);
}

.afs-btn-navy{
	background:var(--afs-navy);
	color:#fff;
	box-shadow:0 12px 24px rgba(7,26,49,.14);
}

.afs-btn-navy:hover{
	background:var(--afs-navy-2);
	color:#fff;
}

.afs-btn-gold{
	background:linear-gradient(135deg, var(--afs-gold-2), var(--afs-gold));
	color:#201704;
	box-shadow:0 12px 24px rgba(214,168,79,.20);
}

.afs-btn-gold:hover{
	color:#201704;
	box-shadow:0 15px 30px rgba(214,168,79,.28);
}

.afs-btn-light{
	background:#fff;
	color:var(--afs-navy);
	border-color:var(--afs-line);
}

.afs-section-link{
	display:inline-flex;
	align-items:center;
	gap:8px;
	color:#9a6e12;
	font-size:13px;
	font-weight:950;
	text-transform:uppercase;
	letter-spacing:.05em;
}

/* Homepage hero */

.afs-hero{
	position:relative;
	overflow:hidden;
	color:#fff;
	background:
		linear-gradient(90deg, rgba(7,26,49,.96) 0%, rgba(7,26,49,.82) 44%, rgba(7,26,49,.20) 100%),
		var(--afs-hero-image, url('/public/images/hero_students.jpg')) center center / cover no-repeat;
}

.afs-hero:before{
	content:"";
	position:absolute;
	inset:0;
	pointer-events:none;
	background:
		radial-gradient(circle at 20% 20%, rgba(214,168,79,.22), transparent 22rem),
		linear-gradient(180deg, transparent 72%, rgba(7,26,49,.92) 100%);
}

.afs-hero-inner{
	position:relative;
	z-index:2;
	width:min(var(--afs-max), calc(100% - 28px));
	margin:0 auto;
	min-height:560px;
	display:grid;
	grid-template-columns:minmax(0, 1fr);
	align-items:center;
	padding:58px 0 34px;
}

.afs-hero-content{
	max-width:760px;
}

.afs-hero-kicker{
	display:block;
	margin:0 0 -2px;
	color:var(--afs-gold-2);
	font-family:'Parisienne', 'Fraunces', Georgia, serif;
	font-size:clamp(3rem, 7vw, 5.5rem);
	font-weight:400;
	line-height:.82;
	text-shadow:0 10px 26px rgba(0,0,0,.24);
}

.afs-hero-title{
	margin:0;
	color:#fff;
	font-size:clamp(3.1rem, 8vw, 7.25rem);
	line-height:.85;
	letter-spacing:-.075em;
	text-transform:uppercase;
	text-shadow:0 16px 34px rgba(0,0,0,.30);
}

.afs-hero-lead{
	max-width:660px;
	margin:20px 0 26px;
	color:rgba(255,255,255,.88);
	font-size:clamp(1.02rem, 2vw, 1.2rem);
	line-height:1.6;
}

.afs-search-panel{
	width:min(710px,100%);
	padding:10px;
	background:rgba(255,255,255,.98);
	border-radius:22px;
	border:1px solid rgba(255,255,255,.70);
	box-shadow:0 28px 80px rgba(0,0,0,.24);
}

.afs-search-row{
	display:flex;
	align-items:stretch;
	gap:9px;
}

.afs-search-input-wrap{
	position:relative;
	flex:1;
	min-width:0;
}

.afs-search-icon{
	position:absolute;
	left:16px;
	top:50%;
	transform:translateY(-50%);
	color:#728096;
	font-weight:900;
}

.afs-search-panel input{
	width:100%;
	height:56px;
	border:1px solid #e4e8ef;
	border-radius:16px;
	background:#fbfcff;
	color:var(--afs-text);
	font-size:16px;
	outline:0;
	padding:0 16px 0 42px;
}

.afs-search-panel input:focus{
	border-color:rgba(214,168,79,.82);
	background:#fff;
	box-shadow:0 0 0 4px rgba(214,168,79,.14);
}

.afs-search-panel button{
	height:56px;
	border:0;
	border-radius:16px;
	padding:0 24px;
	background:linear-gradient(135deg, var(--afs-gold-2), var(--afs-gold));
	color:#211807;
	font-weight:1000;
	cursor:pointer;
	white-space:nowrap;
}

.afs-examples{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:10px;
	margin-top:14px;
	color:rgba(255,255,255,.80);
	font-size:13px;
	font-weight:800;
}

.afs-examples a{
	color:#fff;
	padding:5px 0;
}

.afs-examples a:after{
	content:"›";
	margin-left:10px;
	color:var(--afs-gold-2);
}

.afs-benefit-strip{
	position:relative;
	z-index:3;
	background:rgba(7,26,49,.96);
	border-top:1px solid rgba(214,168,79,.30);
	border-bottom:1px solid rgba(214,168,79,.30);
}

.afs-benefit-grid{
	width:min(var(--afs-max), calc(100% - 28px));
	margin:0 auto;
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
}

.afs-benefit{
	display:flex;
	align-items:flex-start;
	gap:13px;
	padding:24px 22px;
	border-left:1px solid rgba(255,255,255,.10);
}

.afs-benefit:first-child{
	border-left:0;
}

.afs-benefit-icon{
	width:40px;
	height:40px;
	flex:0 0 40px;
	display:grid;
	place-items:center;
	border-radius:15px;
	border:1px solid rgba(214,168,79,.44);
	color:var(--afs-gold-2);
	font-size:21px;
}

.afs-benefit strong{
	display:block;
	color:var(--afs-gold-2);
	font-size:13px;
	font-weight:950;
	text-transform:uppercase;
	letter-spacing:.04em;
}

.afs-benefit span{
	display:block;
	margin-top:5px;
	color:rgba(255,255,255,.76);
	font-size:13px;
	line-height:1.42;
}

/* Sections */

.afs-main{
	padding:36px 0 72px;
}

.afs-section{
	margin:0 auto;
	padding:28px 0;
}

.afs-section-head{
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:18px;
	margin-bottom:18px;
}

.afs-section-head h2{
	margin:0;
	color:var(--afs-navy);
	font-size:clamp(1.85rem, 3.4vw, 2.7rem);
	letter-spacing:-.045em;
	line-height:1.05;
}

.afs-section-head p{
	margin:8px 0 0;
	max-width:620px;
	color:var(--afs-muted);
	line-height:1.58;
}

/* City cards */

.afs-city-grid{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:16px;
}

.afs-city-card{
	min-height:126px;
	position:relative;
	overflow:hidden;
	display:flex;
	align-items:flex-end;
	padding:18px;
	border-radius:22px;
	background:var(--afs-navy);
	color:#fff;
	box-shadow:var(--afs-shadow-soft);
	border:1px solid rgba(214,168,79,.24);
}

.afs-city-card:before{
	content:"";
	position:absolute;
	inset:0;
	background:
		linear-gradient(180deg, rgba(7,26,49,.08) 0%, rgba(7,26,49,.78) 100%),
		var(--city-image) center center / cover no-repeat;
	transition:transform .22s ease;
}

.afs-city-card:hover:before{
	transform:scale(1.05);
}

.afs-city-card span{
	position:relative;
	z-index:2;
	font-family:'Fraunces', Georgia, serif;
	font-size:1.75rem;
	font-weight:800;
	letter-spacing:-.04em;
	text-shadow:0 12px 24px rgba(0,0,0,.45);
}

.afs-city-card.wide{
	grid-column:span 2;
}

/* Premium cards */

.afs-card-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:16px;
}

.afs-bal-grid{
	grid-template-columns:repeat(5,minmax(0,1fr));
}

.afs-category-card{
	overflow:hidden;
	border-radius:22px;
	background:#fff;
	border:1px solid var(--afs-line);
	box-shadow:var(--afs-shadow-soft);
	transition:transform .17s ease, box-shadow .17s ease;
}

.afs-category-card:hover{
	transform:translateY(-3px);
	box-shadow:var(--afs-shadow);
}

.afs-category-image{
	height:150px;
	background:var(--cat-image) center center / cover no-repeat;
	position:relative;
}

.afs-category-image:after{
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(180deg, transparent 38%, rgba(7,26,49,.46) 100%);
}

.afs-category-body{
	position:relative;
	padding:28px 16px 16px;
	text-align:center;
}

.afs-round-icon{
	position:absolute;
	top:-25px;
	left:50%;
	transform:translateX(-50%);
	width:50px;
	height:50px;
	border-radius:50%;
	display:grid;
	place-items:center;
	background:#fff;
	border:1px solid var(--afs-line-2);
	color:#a56f0a;
	font-size:22px;
	box-shadow:0 12px 24px rgba(7,26,49,.12);
}

.afs-category-body h3{
	margin:0 0 8px;
	color:var(--afs-navy);
	font-size:1.22rem;
	letter-spacing:-.03em;
}

.afs-category-body p{
	margin:0 0 14px;
	color:var(--afs-muted);
	font-size:13px;
	line-height:1.48;
}

.afs-category-body .afs-btn{
	width:100%;
	min-height:42px;
	border-radius:13px;
	font-size:12px;
	text-transform:uppercase;
	letter-spacing:.04em;
}

/* Guide cards */

.afs-guide-grid{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:14px;
}

.afs-guide-card{
	display:flex;
	gap:14px;
	align-items:center;
	min-height:118px;
	padding:18px;
	border-radius:20px;
	background:#fff;
	border:1px solid var(--afs-line);
	box-shadow:0 10px 26px rgba(7,26,49,.06);
}

.afs-guide-icon{
	width:54px;
	height:54px;
	flex:0 0 54px;
	display:grid;
	place-items:center;
	border-radius:16px;
	background:var(--afs-ivory);
	border:1px solid var(--afs-line);
	color:var(--afs-navy);
	font-size:28px;
}

.afs-guide-card h3{
	margin:0 0 5px;
	color:var(--afs-navy);
	font-size:1.02rem;
	letter-spacing:-.02em;
}

.afs-guide-card p{
	margin:0;
	color:var(--afs-muted);
	font-size:13px;
	line-height:1.38;
}

.afs-center-action{
	display:flex;
	justify-content:center;
	margin-top:18px;
}

/* Large advertiser CTA */

.afs-business-cta{
	position:relative;
	overflow:hidden;
	margin-top:28px;
	padding:30px;
	border-radius:26px;
	background:
		radial-gradient(circle at 86% 8%, rgba(214,168,79,.28), transparent 18rem),
		linear-gradient(135deg, var(--afs-navy), var(--afs-navy-2));
	color:#fff;
	border:1px solid rgba(214,168,79,.42);
	box-shadow:var(--afs-shadow);
	display:grid;
	grid-template-columns:1fr auto;
	gap:24px;
	align-items:center;
}

.afs-business-cta:after{
	content:"";
	position:absolute;
	right:10%;
	top:-70%;
	width:260px;
	height:260px;
	border-radius:50%;
	background:rgba(255,255,255,.10);
	filter:blur(4px);
}

.afs-business-cta-content{
	position:relative;
	z-index:2;
	display:flex;
	gap:22px;
	align-items:flex-start;
}

.afs-crown{
	width:74px;
	height:74px;
	flex:0 0 74px;
	display:grid;
	place-items:center;
	border-radius:22px;
	background:rgba(214,168,79,.14);
	border:1px solid rgba(214,168,79,.38);
	color:var(--afs-gold-2);
	font-size:38px;
}

.afs-business-cta h2{
	margin:0 0 8px;
	color:var(--afs-gold-2);
	font-size:clamp(1.45rem, 3vw, 2.25rem);
	letter-spacing:-.035em;
	line-height:1.05;
	text-transform:uppercase;
}

.afs-business-cta p{
	margin:0 0 14px;
	color:rgba(255,255,255,.82);
	line-height:1.55;
}

.afs-check-list{
	list-style:none;
	margin:0;
	padding:0;
	display:grid;
	gap:7px;
}

.afs-check-list li{
	color:rgba(255,255,255,.86);
	font-size:14px;
}

.afs-check-list li:before{
	content:"✓";
	display:inline-flex;
	margin-right:8px;
	color:var(--afs-gold-2);
	font-weight:950;
}

.afs-business-cta-action{
	position:relative;
	z-index:2;
}

/* Kommun page */

.afs-kommun-hero{
	position:relative;
	overflow:hidden;
	color:#fff;
	background:
		linear-gradient(90deg, rgba(7,26,49,.96) 0%, rgba(7,26,49,.84) 46%, rgba(7,26,49,.30) 100%),
		var(--afs-hero-image, url('/public/images/hero_students.jpg')) center center / cover no-repeat;
}

.afs-kommun-hero:after{
	content:"";
	position:absolute;
	inset:0;
	background:
		radial-gradient(circle at 18% 14%, rgba(214,168,79,.24), transparent 20rem),
		linear-gradient(180deg, transparent 68%, rgba(7,26,49,.90) 100%);
	pointer-events:none;
}

.afs-kommun-hero-inner{
	position:relative;
	z-index:2;
	width:min(var(--afs-max), calc(100% - 28px));
	margin:0 auto;
	min-height:440px;
	display:grid;
	grid-template-columns:minmax(0, 1fr) 390px;
	align-items:end;
	gap:34px;
	padding:44px 0 32px;
}

.afs-breadcrumbs{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin:0 0 18px;
	color:rgba(255,255,255,.74);
	font-size:13px;
	font-weight:750;
}

.afs-breadcrumbs a{
	color:rgba(255,255,255,.84);
}

.afs-breadcrumbs span{
	color:var(--afs-gold-2);
}

.afs-page-eyebrow{
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:8px 13px;
	border-radius:999px;
	background:rgba(214,168,79,.16);
	border:1px solid rgba(214,168,79,.38);
	color:var(--afs-gold-2);
	font-size:13px;
	font-weight:950;
	text-transform:uppercase;
	letter-spacing:.05em;
}

.afs-kommun-hero h1{
	margin:15px 0 12px;
	color:#fff;
	font-size:clamp(2.65rem, 6vw, 5.25rem);
	line-height:.9;
	letter-spacing:-.07em;
	text-transform:uppercase;
	text-shadow:0 16px 34px rgba(0,0,0,.32);
}

.afs-kommun-hero p{
	max-width:700px;
	margin:0;
	color:rgba(255,255,255,.86);
	font-size:1.08rem;
	line-height:1.6;
}

.afs-kommun-content{
	padding:34px 0 76px;
}

.afs-kommun-layout{
	display:grid;
	grid-template-columns:minmax(0,1fr) 360px;
	gap:24px;
	align-items:start;
}

.afs-intro-card{
	margin-bottom:18px;
	padding:22px;
	border-radius:24px;
	background:rgba(255,255,255,.86);
	border:1px solid var(--afs-line);
	box-shadow:var(--afs-shadow-soft);
}

.afs-intro-card h2{
	margin:0;
	color:var(--afs-navy);
	font-size:clamp(1.55rem, 3vw, 2.25rem);
	line-height:1.08;
	letter-spacing:-.04em;
}

.afs-intro-card p{
	margin:9px 0 0;
	color:var(--afs-muted);
	line-height:1.62;
}

.afs-filter-tabs{
	display:flex;
	gap:9px;
	overflow:auto;
	padding:0 0 14px;
	scrollbar-width:none;
}

.afs-filter-tabs::-webkit-scrollbar{
	display:none;
}

.afs-filter-tab{
	flex:0 0 auto;
	display:inline-flex;
	padding:10px 14px;
	border-radius:999px;
	border:1px solid var(--afs-line);
	background:#fff;
	color:var(--afs-navy);
	box-shadow:0 8px 20px rgba(7,26,49,.05);
	font-size:13px;
	font-weight:900;
}

.afs-filter-tab.is-active{
	background:var(--afs-navy);
	border-color:var(--afs-navy);
	color:#fff;
}

.afs-ad-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:16px;
}

.afs-ad-card{
	position:relative;
	overflow:hidden;
	border-radius:var(--afs-radius);
	background:#fff;
	border:1px solid var(--afs-line);
	box-shadow:var(--afs-shadow-soft);
	transition:transform .17s ease, box-shadow .17s ease, border-color .17s ease;
}

.afs-ad-card:hover{
	transform:translateY(-3px);
	box-shadow:var(--afs-shadow);
	border-color:rgba(214,168,79,.55);
}

.afs-ad-card.is-featured{
	border-color:rgba(214,168,79,.60);
}

.afs-ad-card.is-featured:before{
	content:"Lokal aktör";
	position:absolute;
	top:14px;
	right:14px;
	z-index:3;
	padding:7px 10px;
	border-radius:999px;
	background:linear-gradient(135deg, var(--afs-gold-2), var(--afs-gold));
	color:#211807;
	font-size:11px;
	font-weight:1000;
	text-transform:uppercase;
	letter-spacing:.04em;
}

.afs-ad-top{
	position:relative;
	min-height:138px;
	padding:18px;
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:12px;
	background:
		radial-gradient(circle at top right, rgba(246,213,138,.37), transparent 11rem),
		linear-gradient(135deg, #fffdf7, #edf2f8);
	border-bottom:1px solid var(--afs-line);
}

.afs-ad-badge{
	display:inline-flex;
	padding:8px 11px;
	border-radius:999px;
	background:linear-gradient(135deg, var(--afs-gold-2), var(--afs-gold));
	color:#221908;
	font-size:11px;
	font-weight:1000;
	text-transform:uppercase;
	letter-spacing:.05em;
	box-shadow:0 8px 18px rgba(214,168,79,.20);
}

.afs-ad-status{
	display:inline-flex;
	padding:7px 9px;
	border-radius:999px;
	background:rgba(21,146,103,.10);
	border:1px solid rgba(21,146,103,.20);
	color:var(--afs-green);
	font-size:11px;
	font-weight:1000;
	text-transform:uppercase;
	letter-spacing:.04em;
	white-space:nowrap;
}

.afs-ad-logo{
	position:absolute;
	left:18px;
	top:50px;
	width:200px;
	max-width:calc(100% - 36px);
	height:100px;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:12px;
	border-radius:22px;
	background:#fff;
	border:1px solid #ece5d8;
	box-shadow:0 18px 38px rgba(7,26,49,.12);
	color:var(--afs-navy);
	font-family:'Fraunces', Georgia, serif;
	font-size:1.05rem;
	font-weight:800;
	text-align:center;
	line-height:1.05;
	letter-spacing:-.025em;
	overflow:hidden;
}

.afs-ad-logo img{
	width:100%;
	height:100%;
	object-fit:contain;
}

.afs-ad-body{
	padding:56px 18px 16px;
}

.afs-ad-body h3{
	margin:0 0 8px;
	color:var(--afs-navy);
	font-size:1.35rem;
	line-height:1.08;
	letter-spacing:-.035em;
}

.afs-ad-body p{
	margin:0;
	color:var(--afs-muted);
	line-height:1.58;
	font-size:14px;
}

.afs-ad-meta{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-top:14px;
}

.afs-meta-pill{
	display:inline-flex;
	align-items:center;
	gap:7px;
	min-height:32px;
	padding:7px 10px;
	border-radius:999px;
	background:#fbf8ef;
	border:1px solid var(--afs-line);
	color:var(--afs-navy);
	font-size:12px;
	font-weight:850;
}

.afs-ad-actions{
	display:grid;
	grid-template-columns:1fr;
	gap:9px;
	padding:0 18px 18px;
}

.afs-ad-actions.is-split{
	grid-template-columns:1fr 1fr;
}

.afs-open-slot{
	border-style:dashed;
	border-color:rgba(214,168,79,.74);
	background:linear-gradient(135deg, #fffef8, #fff7df);
}

.afs-open-slot .afs-ad-top{
	background:
		radial-gradient(circle at 84% 16%, rgba(214,168,79,.28), transparent 11rem),
		linear-gradient(135deg, #fff8e8, #fff);
}

.afs-open-slot .afs-ad-status{
	color:#8a640d;
	background:rgba(214,168,79,.15);
	border-color:rgba(214,168,79,.25);
}

.afs-open-slot .afs-ad-logo{
	background:rgba(255,255,255,.84);
	color:#9a6e12;
	font-size:2rem;
}

.afs-sidebar{
	display:grid;
	gap:16px;
	position:sticky;
	top:98px;
}

.afs-side-card{
	overflow:hidden;
	border-radius:var(--afs-radius);
	background:#fff;
	border:1px solid var(--afs-line);
	box-shadow:var(--afs-shadow-soft);
}

.afs-side-head{
	padding:20px;
	color:#fff;
	background:
		radial-gradient(circle at top right, rgba(214,168,79,.25), transparent 12rem),
		linear-gradient(135deg, var(--afs-navy), var(--afs-navy-2));
}

.afs-side-head h2,
.afs-side-head h3{
	margin:0;
	color:#fff;
	font-size:1.25rem;
	letter-spacing:-.025em;
}

.afs-side-head p{
	margin:7px 0 0;
	color:rgba(255,255,255,.76);
	line-height:1.45;
	font-size:14px;
}

.afs-school-list{
	list-style:none;
	margin:0;
	padding:0;
}

.afs-school-list li{
	display:flex;
	align-items:center;
	gap:12px;
	padding:15px 18px;
	border-top:1px solid var(--afs-line);
}

.afs-school-list li:first-child{
	border-top:0;
}

.afs-school-icon{
	width:38px;
	height:38px;
	flex:0 0 38px;
	display:grid;
	place-items:center;
	border-radius:14px;
	background:var(--afs-ivory);
	border:1px solid var(--afs-line);
	color:var(--afs-navy);
	font-weight:1000;
}

.afs-school-list strong{
	display:block;
	color:var(--afs-text);
	font-size:14px;
	line-height:1.25;
}

.afs-school-list span{
	display:block;
	margin-top:4px;
	color:var(--afs-muted);
	font-size:12px;
	line-height:1.3;
}

.afs-sell-card{
	padding:20px;
	background:
		radial-gradient(circle at top right, rgba(214,168,79,.32), transparent 11rem),
		linear-gradient(135deg, #fff, #fff7df);
}

.afs-sell-card h3{
	margin:0 0 8px;
	color:var(--afs-navy);
	font-size:1.38rem;
	line-height:1.08;
	letter-spacing:-.035em;
}

.afs-sell-card p{
	margin:0 0 14px;
	color:var(--afs-muted);
	line-height:1.55;
}

.afs-mini-stats{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:9px;
	margin-bottom:14px;
}

.afs-mini-stat{
	padding:12px;
	border-radius:16px;
	background:#fff;
	border:1px solid var(--afs-line);
}

.afs-mini-stat b{
	display:block;
	color:var(--afs-navy);
	font-size:1.1rem;
}

.afs-mini-stat span{
	display:block;
	color:var(--afs-muted);
	font-size:12px;
	margin-top:3px;
	line-height:1.25;
}

.afs-seo-box{
	margin-top:18px;
	padding:24px;
	border-radius:var(--afs-radius);
	background:#fff;
	border:1px solid var(--afs-line);
	box-shadow:var(--afs-shadow-soft);
}

.afs-seo-box h2{
	margin:0 0 9px;
	color:var(--afs-navy);
	font-size:1.6rem;
	line-height:1.12;
	letter-spacing:-.03em;
}

.afs-seo-box p{
	margin:0 0 14px;
	color:var(--afs-muted);
	line-height:1.68;
}

.afs-seo-box p:last-child{
	margin-bottom:0;
}

/* Popup */

.afs-offer-popup{
	display:none;
	position:fixed;
	z-index:9999;
	inset:0;
	background:rgba(7,26,49,.72);
	backdrop-filter:blur(5px);
	align-items:center;
	justify-content:center;
	padding:20px;
}

.afs-offer-popup.is-open{
	display:flex;
}

.afs-offer-box{
	width:min(460px, 100%);
	padding:26px;
	border-radius:24px;
	background:#fff;
	box-shadow:0 24px 80px rgba(0,0,0,.30);
	border:1px solid var(--afs-line);
	text-align:center;
}

.afs-offer-box h3{
	margin:0 0 12px;
	color:var(--afs-navy);
	font-size:1.45rem;
}

.afs-offer-content{
	color:var(--afs-muted);
	line-height:1.65;
}

.afs-offer-content a{
	color:var(--afs-navy);
	font-weight:900;
	text-decoration:underline;
}

/* Bal pages */

.afs-sub-hero{
	position:relative;
	overflow:hidden;
	color:#fff;
	background:
		linear-gradient(90deg, rgba(7,26,49,.96) 0%, rgba(7,26,49,.86) 52%, rgba(7,26,49,.30) 100%),
		var(--afs-sub-hero-image, url('/public/images/hero_students.jpg')) center center / cover no-repeat;
}

.afs-sub-hero-inner{
	width:min(var(--afs-max), calc(100% - 28px));
	margin:0 auto;
	min-height:390px;
	display:grid;
	grid-template-columns:minmax(0,1fr) 390px;
	align-items:end;
	gap:30px;
	padding:46px 0 32px;
}

.afs-sub-hero h1{
	margin:15px 0 12px;
	color:#fff;
	font-size:clamp(2.35rem, 5vw, 4.5rem);
	line-height:.93;
	letter-spacing:-.06em;
}

.afs-sub-hero p{
	margin:0;
	max-width:700px;
	color:rgba(255,255,255,.84);
	line-height:1.62;
}

.afs-info-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:16px;
}

.afs-info-card{
	padding:22px;
	border-radius:22px;
	background:#fff;
	border:1px solid var(--afs-line);
	box-shadow:var(--afs-shadow-soft);
}

.afs-info-card h3{
	margin:0 0 8px;
	color:var(--afs-navy);
	font-size:1.2rem;
}

.afs-info-card p{
	margin:0;
	color:var(--afs-muted);
	line-height:1.58;
	font-size:14px;
}

.afs-city-links{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
}

.afs-city-link{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:42px;
	padding:10px 14px;
	border-radius:999px;
	background:#fff;
	border:1px solid var(--afs-line);
	color:var(--afs-navy);
	font-weight:900;
	box-shadow:0 8px 18px rgba(7,26,49,.05);
}

/* Län pages */

.afs-lan-hero{
	padding:54px 0 34px;
	color:#fff;
	background:
		radial-gradient(circle at 80% 10%, rgba(214,168,79,.24), transparent 22rem),
		linear-gradient(135deg, var(--afs-navy), var(--afs-navy-2));
}

.afs-lan-hero h1{
	margin:12px 0 10px;
	color:#fff;
	font-size:clamp(2.25rem, 5vw, 4rem);
	line-height:1;
	letter-spacing:-.055em;
}

.afs-lan-hero p{
	margin:0;
	max-width:760px;
	color:rgba(255,255,255,.82);
	line-height:1.6;
}

.afs-kommun-grid{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:12px;
}

.afs-kommun-link{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:10px;
	min-height:66px;
	padding:16px;
	border-radius:18px;
	background:#fff;
	border:1px solid var(--afs-line);
	color:var(--afs-navy);
	font-weight:900;
	box-shadow:0 10px 24px rgba(7,26,49,.06);
}

.afs-kommun-link span{
	width:32px;
	height:32px;
	flex:0 0 32px;
	display:grid;
	place-items:center;
	border-radius:50%;
	background:var(--afs-ivory);
	color:#9a6e12;
}

/* Footer */

.afs-site-footer{
	background:var(--afs-navy);
	color:#fff;
	border-top:1px solid rgba(214,168,79,.35);
}

.afs-footer-inner{
	width:min(var(--afs-max), calc(100% - 28px));
	margin:0 auto;
	padding:34px 0;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:24px;
}

.afs-footer-logo{
	display:flex;
	align-items:center;
	gap:11px;
	color:#fff;
	font-family:'Fraunces', Georgia, serif;
	font-size:22px;
	font-weight:800;
	line-height:.95;
	letter-spacing:-.03em;
}

.afs-footer-logo span:first-child{
	width:38px;
	height:38px;
	display:grid;
	place-items:center;
	border-radius:14px;
	background:linear-gradient(135deg, var(--afs-gold-2), var(--afs-gold));
	color:var(--afs-navy);
}

.afs-footer-links{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:20px;
	color:rgba(255,255,255,.78);
	font-size:13px;
	font-weight:750;
}

.afs-socials{
	display:flex;
	gap:10px;
}

.afs-socials a{
	width:34px;
	height:34px;
	display:grid;
	place-items:center;
	border-radius:50%;
	background:rgba(214,168,79,.14);
	color:var(--afs-gold-2);
	border:1px solid rgba(214,168,79,.30);
	font-weight:950;
}

/* Responsive */

@media (max-width:1100px){
	.afs-main-nav{
		gap:18px;
	}

	.afs-brand-text{
		font-size:22px;
	}

	.afs-city-grid{
		grid-template-columns:repeat(3,minmax(0,1fr));
	}

	.afs-bal-grid{
		grid-template-columns:repeat(3,minmax(0,1fr));
	}

	.afs-guide-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media (max-width:920px){
	.afs-main-nav,
	.afs-header-actions{
		display:none;
	}

	.afs-menu-toggle{
		display:flex;
	}

	.afs-site-header-inner{
		min-height:66px;
	}

	.afs-hero-inner{
		min-height:auto;
		padding:48px 0 28px;
	}

	.afs-hero{
		background:
			linear-gradient(180deg, rgba(7,26,49,.92) 0%, rgba(7,26,49,.86) 52%, rgba(7,26,49,.78) 100%),
			var(--afs-hero-image, url('/public/images/hero_students.jpg')) center center / cover no-repeat;
	}

	.afs-benefit-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.afs-benefit{
		border-top:1px solid rgba(255,255,255,.10);
	}

	.afs-benefit:nth-child(odd){
		border-left:0;
	}

	.afs-kommun-hero-inner,
	.afs-sub-hero-inner{
		grid-template-columns:1fr;
		min-height:auto;
		padding:40px 0 28px;
	}

	.afs-kommun-layout{
		grid-template-columns:1fr;
	}

	.afs-sidebar{
		position:static;
	}

	.afs-ad-grid{
		grid-template-columns:1fr;
	}

	.afs-business-cta{
		grid-template-columns:1fr;
	}

	.afs-business-cta-content{
		display:block;
	}

	.afs-crown{
		margin-bottom:16px;
	}

	.afs-info-grid{
		grid-template-columns:1fr;
	}

	.afs-kommun-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media (max-width:700px){
	.afs-wrap,
	.afs-site-header-inner,
	.afs-mobile-nav,
	.afs-hero-inner,
	.afs-benefit-grid,
	.afs-kommun-hero-inner,
	.afs-sub-hero-inner,
	.afs-footer-inner{
		width:min(100% - 22px, var(--afs-max));
	}

	.afs-brand-mark{
		width:40px;
		height:40px;
		flex-basis:40px;
	}

	.afs-brand-text{
		font-size:20px;
	}

	.afs-hero-kicker{
		font-size:3.1rem;
	}

	.afs-hero-title{
		font-size:3.75rem;
		line-height:.9;
	}

	.afs-search-row{
		display:grid;
		grid-template-columns:1fr;
	}

	.afs-search-panel button{
		width:100%;
	}

	.afs-benefit-grid{
		grid-template-columns:1fr;
	}

	.afs-benefit{
		border-left:0;
		padding:18px 0;
	}

	.afs-section-head{
		display:block;
	}

	.afs-section-link{
		margin-top:10px;
	}

	.afs-city-grid{
		grid-template-columns:1fr 1fr;
		gap:10px;
	}

	.afs-city-card{
		min-height:96px;
		border-radius:18px;
		padding:14px;
	}

	.afs-city-card span{
		font-size:1.28rem;
	}

	.afs-city-card.wide{
		grid-column:auto;
	}

	.afs-card-grid,
	.afs-bal-grid,
	.afs-guide-grid{
		grid-template-columns:1fr;
	}

	.afs-category-card{
		display:grid;
		grid-template-columns:110px 1fr;
		align-items:stretch;
	}

	.afs-category-image{
		height:auto;
		min-height:128px;
	}

	.afs-category-body{
		padding:16px;
		text-align:left;
	}

	.afs-round-icon{
		position:static;
		transform:none;
		width:42px;
		height:42px;
		margin-bottom:10px;
	}

	.afs-guide-card{
		min-height:100px;
	}

	.afs-business-cta{
		padding:22px;
	}

	.afs-kommun-hero h1{
		font-size:3rem;
	}

	.afs-ad-card.is-featured:before{
		left:14px;
		right:auto;
	}

	.afs-ad-top{
		min-height:150px;
		padding-top:54px;
	}

	.afs-ad-logo{
		top:58px;
		width:190px;
		height:96px;
	}

	.afs-ad-body{
		padding-top:50px;
	}

	.afs-ad-actions.is-split{
		grid-template-columns:1fr 1fr;
	}

	.afs-btn{
		font-size:13px;
		padding-left:10px;
		padding-right:10px;
	}

	.afs-footer-inner{
		display:grid;
		text-align:center;
		justify-content:center;
	}

	.afs-footer-logo{
		justify-content:center;
	}

	.afs-footer-links{
		gap:14px;
	}

	.afs-socials{
		justify-content:center;
	}

	.afs-kommun-grid{
		grid-template-columns:1fr;
	}
}

@media (max-width:420px){
	.afs-city-grid{
		grid-template-columns:1fr;
	}

	.afs-category-card{
		grid-template-columns:96px 1fr;
	}

	.afs-category-body h3{
		font-size:1.07rem;
	}

	.afs-category-body p{
		font-size:12px;
	}

	.afs-ad-actions.is-split{
		grid-template-columns:1fr;
	}
}

/* Future student login / personal planning module */
.afs-header-plan{
	min-height:42px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:0 14px;
	border-radius:12px;
	color:#fff;
	font-weight:900;
	font-size:13px;
	border:1px solid rgba(255,255,255,.18);
	background:rgba(255,255,255,.07);
}

.afs-header-plan:hover{
	background:rgba(255,255,255,.12);
}

.afs-plan-section{
	padding-top:8px;
}

.afs-plan-card{
	position:relative;
	overflow:hidden;
	display:grid;
	grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);
	gap:24px;
	align-items:center;
	padding:34px;
	border-radius:var(--afs-radius);
	background:
		radial-gradient(circle at 86% 20%, rgba(214,168,79,.30), transparent 18rem),
		linear-gradient(135deg, var(--afs-navy) 0%, var(--afs-navy-2) 60%, #08213d 100%);
	border:1px solid rgba(214,168,79,.42);
	box-shadow:var(--afs-shadow);
	color:#fff;
}

.afs-plan-card h2{
	margin:8px 0 12px;
	color:#fff;
	font-size:clamp(2rem,4vw,3.5rem);
	line-height:1;
	letter-spacing:-.055em;
}

.afs-plan-card p{
	margin:0;
	max-width:660px;
	color:rgba(255,255,255,.80);
	line-height:1.65;
	font-size:1.03rem;
}

.afs-plan-features{
	display:flex;
	flex-wrap:wrap;
	gap:9px;
	margin-top:20px;
}

.afs-plan-features span{
	display:inline-flex;
	align-items:center;
	min-height:36px;
	padding:7px 11px;
	border-radius:999px;
	background:rgba(255,255,255,.10);
	border:1px solid rgba(255,255,255,.14);
	color:#fff;
	font-weight:850;
	font-size:.88rem;
}

.afs-plan-preview{
	display:flex;
	justify-content:center;
}

.afs-phone-card{
	width:min(100%,285px);
	padding:18px;
	border-radius:28px;
	background:linear-gradient(180deg,#fff,#fff8e8);
	color:var(--afs-text);
	border:1px solid rgba(214,168,79,.44);
	box-shadow:0 24px 70px rgba(0,0,0,.26);
}

.afs-phone-top{
	width:72px;
	height:7px;
	border-radius:999px;
	background:#d9dfea;
	margin:0 auto 18px;
}

.afs-phone-card strong{
	display:block;
	font-family:'Fraunces', Georgia, serif;
	font-size:1.55rem;
	line-height:1;
	color:var(--afs-navy);
	letter-spacing:-.035em;
}

.afs-phone-card span{
	display:block;
	margin-top:7px;
	color:var(--afs-muted);
	font-weight:750;
	font-size:.9rem;
}

.afs-progress{
	height:10px;
	border-radius:999px;
	background:#e7dfcf;
	overflow:hidden;
	margin:18px 0;
}

.afs-progress i{
	display:block;
	height:100%;
	border-radius:999px;
	background:linear-gradient(90deg,var(--afs-gold),var(--afs-gold-2));
}

.afs-phone-card ul{
	list-style:none;
	padding:0;
	margin:0;
	display:grid;
	gap:8px;
}

.afs-phone-card li{
	padding:10px 11px;
	border-radius:14px;
	background:#fff;
	border:1px solid var(--afs-line);
	font-weight:800;
	font-size:.86rem;
}

.afs-plan-side{
	padding:20px;
	background:
		radial-gradient(circle at top right, rgba(214,168,79,.24), transparent 10rem),
		linear-gradient(135deg,#fff,#fff8e8);
}

.afs-plan-side h3{
	margin:0 0 8px;
	color:var(--afs-navy);
	font-size:1.25rem;
}

.afs-plan-side p{
	margin:0 0 14px;
	color:var(--afs-muted);
	line-height:1.55;
}

.afs-lan-search{
	max-width:720px;
	margin-top:24px;
}

@media (max-width:980px){
	.afs-plan-card{
		grid-template-columns:1fr;
	}
}

@media (max-width:760px){
	.afs-header-plan{
		display:none;
	}

	.afs-plan-card{
		padding:24px 18px;
		border-radius:22px;
	}

	.afs-plan-preview{
		justify-content:flex-start;
	}
}
