/* ============================================================
   PLATFORM STYLES  —  Mario Ferri Campaign
   Brand blue #4da5f5 · dark #262626 · text #666 · bg #fafafa
   Loads after the theme CSS; extends the existing look & feel.
   ============================================================ */

:root{
	--pf-blue:#4da5f5;
	--pf-blue-dark:#2f8ae0;
	--pf-dark:#262626;
	--pf-text:#666666;
	--pf-line:#e6e8ec;
	--pf-bg:#fafafa;
}

/* ---------- HOMEPAGE : platform section ---------- */
#platform{ background:var(--pf-bg); }

.platform-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:26px;
	margin-top:-40px;
}
.platform-card{
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	background:#ffffff;
	border:1px solid var(--pf-line);
	border-radius:8px;
	padding:34px 30px 28px;
	text-decoration:none;
	color:var(--pf-text);
	box-shadow:0 2px 8px rgba(38,38,38,.05);
	transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
	position:relative;
	overflow:hidden;
}
.platform-card:before{
	content:"";
	position:absolute; left:0; top:0; height:4px; width:100%;
	background:var(--pf-blue);
	transform:scaleX(0); transform-origin:left;
	transition:transform .25s ease;
}
.platform-card:hover{
	transform:translateY(-6px);
	box-shadow:0 16px 34px rgba(38,38,38,.12);
	border-color:#d7dbe2;
}
.platform-card:hover:before{ transform:scaleX(1); }

.platform-card-icon{
	display:inline-flex; align-items:center; justify-content:center;
	width:60px; height:60px; border-radius:50%;
	background:rgba(77,165,245,.12);
	color:var(--pf-blue);
	font-size:26px;
	margin-bottom:20px;
	transition:background .25s ease,color .25s ease;
}
.platform-card:hover .platform-card-icon{ background:var(--pf-blue); color:#fff; }

.platform-card-title{
	display:block;
	font-family:'Raleway','Open Sans',sans-serif;
	font-weight:900;
	font-size:19px;
	line-height:1.25;
	color:var(--pf-dark);
	text-transform:uppercase;
	letter-spacing:-0.02em;
	margin-bottom:10px;
}
.platform-card-text{
	display:block;
	font-size:14px;
	line-height:1.6;
	margin-bottom:20px;
	flex:1 1 auto;
}
.platform-card-cta{
	display:inline-block;
	font-family:'Open Sans',sans-serif;
	font-weight:600;
	font-size:11px;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:var(--pf-blue);
}
.platform-card-cta .fa{ transition:transform .2s ease; }
.platform-card:hover .platform-card-cta .fa{ transform:translateX(4px); }

/* ============================================================
   SUBPAGES  (body.platform-page)
   ============================================================ */
.platform-page{ background:#ffffff; }
.platform-page header{ position:sticky; top:0; }
.platform-page .page-body{ overflow:hidden; }

/* ---- mobile nav toggle (self-contained, no theme JS needed) ---- */
.pf-navtoggle{
	display:none;
	background:transparent; border:0; cursor:pointer;
	width:44px; height:44px; padding:10px; margin-top:28px;
}
.pf-navtoggle span{
	display:block; height:2px; width:100%; background:var(--pf-dark);
	margin:4px 0; border-radius:2px; transition:.2s;
}

/* ---------- HERO ---------- */
.pf-hero{
	position:relative;
	background-color:#1b2740;            /* fallback while / if image is unavailable */
	background-size:cover;
	background-position:center center;
	background-repeat:no-repeat;
	color:#fff;
	padding:130px 0 90px;
	text-align:center;
}
.pf-hero-overlay{
	position:absolute; top:0; left:0; right:0; bottom:0;
	background:linear-gradient(180deg,rgba(20,32,48,.62) 0%,rgba(20,32,48,.80) 100%);
}
.pf-hero-inner{ position:relative; z-index:2; }
.pf-hero-kicker{
	font-family:'Open Sans',sans-serif; font-weight:600;
	font-size:12px; letter-spacing:.16em; text-transform:uppercase;
	color:rgba(255,255,255,.85); margin-bottom:18px;
}
.pf-hero-kicker a{ color:#fff; text-decoration:none; opacity:.85; }
.pf-hero-kicker a:hover{ opacity:1; color:var(--pf-blue); }
.pf-hero-kicker .fa{ margin:0 6px; font-size:11px; opacity:.7; }
.pf-hero-title{
	font-family:'Raleway','Open Sans',sans-serif; font-weight:900;
	font-size:clamp(28px,4.4vw,50px);
	line-height:1.08; letter-spacing:-0.03em;
	text-transform:uppercase; color:#fff; margin:0 auto; max-width:900px;
}
.pf-hero-tag{
	font-family:'Open Sans',sans-serif; font-weight:300;
	font-size:clamp(15px,1.7vw,20px); line-height:1.5;
	color:rgba(255,255,255,.92); margin:20px auto 0; max-width:720px;
}

/* ---------- CONTENT ---------- */
.pf-main{ padding:70px 0 40px; }
.pf-content{ max-width:820px; }
.pf-content > p,
.pf-content > .pf-lead,
.pf-content > .pf-goal,
.pf-content > .pf-list,
.pf-content > .pf-point,
.pf-content > .pf-h2,
.pf-content > .pf-kicker,
.pf-content > .pf-achievements{ margin-left:auto; margin-right:auto; }

.pf-content p{
	font-family:'Open Sans',sans-serif; font-weight:400;
	font-size:16px; line-height:1.75; color:var(--pf-text);
	margin-bottom:18px;
}
.pf-content p u,.pf-content u{ text-decoration:none; font-weight:600; color:var(--pf-dark); }

.pf-lead{
	font-size:19px !important; line-height:1.6 !important;
	color:var(--pf-dark) !important; font-weight:600;
	margin:6px 0 22px;
}

.pf-h2{
	font-family:'Raleway','Open Sans',sans-serif; font-weight:900;
	font-size:26px; line-height:1.2; letter-spacing:-0.02em;
	text-transform:uppercase; color:var(--pf-dark);
	margin:52px 0 8px; padding-top:24px; border-top:1px solid var(--pf-line);
}
.pf-content > .pf-h2:first-child{ border-top:0; padding-top:0; margin-top:0; }
.pf-kicker{
	font-family:'Open Sans',sans-serif; font-weight:600;
	font-size:12px; letter-spacing:.18em; text-transform:uppercase;
	color:var(--pf-blue); margin:0 0 26px;
}

/* achievements */
.pf-achievements{ list-style:none; margin:22px auto 30px; padding:0; }
.pf-ach{
	position:relative; display:flex; gap:16px;
	background:var(--pf-bg); border:1px solid var(--pf-line);
	border-radius:8px; padding:18px 20px; margin-bottom:12px;
}
.pf-ach-ico{
	flex:0 0 auto; width:26px; height:26px; margin-top:2px;
	display:inline-flex; align-items:center; justify-content:center;
	border-radius:50%; background:var(--pf-blue); color:#fff; font-size:13px;
}
.pf-ach-body{ font-size:15px; line-height:1.65; color:var(--pf-text); }
.pf-ach-body strong{ color:var(--pf-dark); }

/* numbered plan points */
.pf-point{
	display:flex; align-items:flex-start; gap:16px;
	margin:38px 0 12px;
}
.pf-point-num{
	flex:0 0 auto; width:42px; height:42px;
	display:inline-flex; align-items:center; justify-content:center;
	border-radius:50%; background:var(--pf-blue); color:#fff;
	font-family:'Raleway',sans-serif; font-weight:900; font-size:18px;
}
.pf-point-title{
	font-family:'Raleway','Open Sans',sans-serif; font-weight:900;
	font-size:20px; line-height:1.3; letter-spacing:-0.01em;
	color:var(--pf-dark); text-transform:uppercase; padding-top:7px;
}

/* bullet lists */
.pf-list{ list-style:none; margin:6px auto 22px; padding:0; max-width:820px; }
.pf-list li{
	position:relative; padding:6px 0 6px 26px;
	font-size:16px; line-height:1.7; color:var(--pf-text);
}
.pf-list li:before{
	content:""; position:absolute; left:4px; top:15px;
	width:7px; height:7px; border-radius:50%; background:var(--pf-blue);
}

/* goal callout */
.pf-goal{
	background:rgba(77,165,245,.08);
	border-left:4px solid var(--pf-blue);
	border-radius:0 6px 6px 0;
	padding:16px 20px !important; margin:14px 0 30px;
	font-size:16px !important; line-height:1.6 !important;
	color:var(--pf-dark) !important;
}
.pf-goal-label{
	display:inline-block; font-family:'Open Sans',sans-serif; font-weight:800;
	font-size:11px; letter-spacing:.14em; text-transform:uppercase;
	color:var(--pf-blue); margin-right:8px;
}

/* links + source chips */
.pf-content a.pf-link{ color:var(--pf-blue-dark); font-weight:600; text-decoration:none; border-bottom:1px solid rgba(77,165,245,.35); }
.pf-content a.pf-link:hover{ color:var(--pf-blue); border-bottom-color:var(--pf-blue); }
a.pf-source{
	display:inline-block; font-size:11px; line-height:1; font-weight:600;
	color:#8a8f98 !important; background:#f0f2f5; border:1px solid #e2e5ea;
	border-radius:20px; padding:4px 10px; margin:0 2px; text-decoration:none;
	vertical-align:middle; white-space:nowrap;
}
a.pf-source:before{ content:"\f0c1"; font-family:FontAwesome; margin-right:5px; opacity:.6; }
a.pf-source:hover{ color:var(--pf-blue) !important; border-color:var(--pf-blue); background:#fff; }

/* ---------- PAGER ---------- */
.pf-pager-wrap{
	display:flex; gap:16px; margin:20px 0 10px;
	border-top:1px solid var(--pf-line); padding-top:34px;
}
.pf-pager{
	flex:1 1 0; display:flex; flex-direction:column; gap:4px;
	padding:18px 22px; border:1px solid var(--pf-line); border-radius:8px;
	text-decoration:none; background:#fff; transition:.2s;
}
.pf-pager:hover{ border-color:var(--pf-blue); box-shadow:0 8px 20px rgba(38,38,38,.08); }
.pf-pager-next{ text-align:right; align-items:flex-end; }
.pf-pager-dir{
	font-family:'Open Sans',sans-serif; font-weight:600; font-size:11px;
	letter-spacing:.14em; text-transform:uppercase; color:var(--pf-blue);
}
.pf-pager-name{
	font-family:'Raleway','Open Sans',sans-serif; font-weight:600;
	font-size:16px; color:var(--pf-dark);
}

/* ---------- SWITCHER ---------- */
.pf-switch{ background:var(--pf-bg); padding:70px 0 80px; margin-top:50px; }
.pf-switch .section-title{ margin-bottom:50px; }
.pf-switch-grid{
	display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
}
.pf-switch-card{
	display:flex; align-items:center; gap:14px;
	background:#fff; border:1px solid var(--pf-line); border-radius:8px;
	padding:16px 18px; text-decoration:none; color:var(--pf-dark);
	transition:.2s;
}
.pf-switch-card:hover{ border-color:var(--pf-blue); transform:translateY(-3px); box-shadow:0 12px 24px rgba(38,38,38,.10); }
.pf-switch-card.is-current{ border-color:var(--pf-blue); background:rgba(77,165,245,.07); box-shadow:inset 0 0 0 1px var(--pf-blue); }
.pf-switch-ico{
	flex:0 0 auto; width:44px; height:44px; border-radius:50%;
	display:inline-flex; align-items:center; justify-content:center;
	background:rgba(77,165,245,.12); color:var(--pf-blue); font-size:19px;
}
.pf-switch-card.is-current .pf-switch-ico{ background:var(--pf-blue); color:#fff; }
.pf-switch-label{
	font-family:'Raleway','Open Sans',sans-serif; font-weight:600;
	font-size:15px; line-height:1.25;
}
.pf-switch-actions{ text-align:center; margin-top:44px; }
.pf-switch-actions .sr-button{ margin:6px 8px; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1000px){
	.platform-grid{ grid-template-columns:repeat(2,1fr); }
	.pf-switch-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px){
	/* self-contained mobile menu for subpages */
	.platform-page .pf-navtoggle{ display:inline-block !important; }
	.platform-page nav#main-nav{
		display:none !important;
		position:absolute; right:0; top:100%;
		background:#fff; min-width:250px;
		box-shadow:0 12px 30px rgba(0,0,0,.14);
		border-radius:6px; padding:6px 0; z-index:9999;
	}
	.platform-page .menu.pf-open nav#main-nav{ display:block !important; }
	.platform-page nav#main-nav ul{ display:block; }
	.platform-page nav#main-nav ul li{ float:none !important; margin:0 !important; }
	.platform-page nav#main-nav > ul > li > a{
		display:block !important; line-height:1.3 !important;
		padding:14px 22px !important; border-bottom:1px solid #f0f0f0;
	}
	.platform-page nav#main-nav > ul > li:last-child > a{ border-bottom:0; }
}
@media (max-width:680px){
	.platform-grid{ grid-template-columns:1fr; margin-top:0; }
	.pf-switch-grid{ grid-template-columns:1fr; }
	.pf-pager-wrap{ flex-direction:column; }
	.pf-pager-next{ text-align:left; align-items:flex-start; }
	.pf-hero{ padding:110px 0 70px; }
	.pf-point-title{ font-size:18px; }
	.pf-h2{ font-size:22px; }
}

/* ============================================================
   INLINE SVG ICONS  (replace Font Awesome category glyphs)
   currentColor is inherited from the icon circle, so the blue /
   white + hover states keep working with no extra rules.
   ============================================================ */
.platform-card-icon svg.pf-ico-svg,
.pf-switch-ico svg.pf-ico-svg{ display:block; }
.platform-card-icon svg.pf-ico-svg{ width:28px; height:28px; }
.pf-switch-ico svg.pf-ico-svg{ width:22px; height:22px; }

/* ============================================================
   SKIP LINK  (keep it for keyboard / screen-reader users, but
   park it off-screen until focused so it isn't visible on load)
   ============================================================ */
.skip-link{
	position:absolute;
	left:-9999px;
	top:0;
	z-index:1000;
	padding:10px 16px;
	background:#fff;
	color:#000;
}
.skip-link:focus{ left:0; }
