/*
 * FlexCare Blocks — theme styles.
 * Implements the approved "Komplett" mockup design system:
 * navy/cyan palette with light + dark mode, Schibsted Grotesk / Instrument Serif.
 */

/* ===================== design tokens ===================== */
:root{
	--paper:#FAFCFE; --paper-2:#F0F5FA; --ink:#071C30; --navy:#032E50;
	--slate:#4E6579; --cyan:#009FE8; --cyan-ink:#0079B4; --sky:#E1F0FA;
	--line:#DCE7F0; --card:#FFFFFF; --scrim:rgba(3,20,36,.38);
	--shadow:0 2px 6px rgba(3,46,80,.06), 0 24px 60px -28px rgba(3,46,80,.25);
	--award-bg:#032E50; --award-ink:#FFFFFF; --award-sub:#AFCBDD; --award-acc:#41C2F5; --award-line:rgba(143,219,255,.35);
	--field:#FFFFFF; --field-line:#C7D8E5;
}
@media (prefers-color-scheme: dark){
	:root{
		--paper:#050F1B; --paper-2:#081726; --ink:#F1F7FB; --navy:#0B1F31;
		--slate:#8CA4B8; --cyan:#3FC1F2; --cyan-ink:#6FD0F8; --sky:#0C2438;
		--line:rgba(140,180,205,.17); --card:#0B1F31; --scrim:rgba(2,10,18,.5);
		--shadow:0 2px 6px rgba(0,0,0,.35), 0 26px 60px -28px rgba(0,0,0,.65);
		--award-bg:linear-gradient(180deg,#0A1C2E,#081524); --award-ink:#F2B25C; --award-sub:#8CA4B8; --award-acc:#F2B25C; --award-line:rgba(242,178,92,.4);
		--field:#0A1B2C; --field-line:#28455C;
	}
}
:root[data-theme="light"]{
	--paper:#FAFCFE; --paper-2:#F0F5FA; --ink:#071C30; --navy:#032E50;
	--slate:#4E6579; --cyan:#009FE8; --cyan-ink:#0079B4; --sky:#E1F0FA;
	--line:#DCE7F0; --card:#FFFFFF; --scrim:rgba(3,20,36,.38);
	--shadow:0 2px 6px rgba(3,46,80,.06), 0 24px 60px -28px rgba(3,46,80,.25);
	--award-bg:#032E50; --award-ink:#FFFFFF; --award-sub:#AFCBDD; --award-acc:#41C2F5; --award-line:rgba(143,219,255,.35);
	--field:#FFFFFF; --field-line:#C7D8E5;
}
:root[data-theme="dark"]{
	--paper:#050F1B; --paper-2:#081726; --ink:#F1F7FB; --navy:#0B1F31;
	--slate:#8CA4B8; --cyan:#3FC1F2; --cyan-ink:#6FD0F8; --sky:#0C2438;
	--line:rgba(140,180,205,.17); --card:#0B1F31; --scrim:rgba(2,10,18,.5);
	--shadow:0 2px 6px rgba(0,0,0,.35), 0 26px 60px -28px rgba(0,0,0,.65);
	--award-bg:linear-gradient(180deg,#0A1C2E,#081524); --award-ink:#F2B25C; --award-sub:#8CA4B8; --award-acc:#F2B25C; --award-line:rgba(242,178,92,.4);
	--field:#0A1B2C; --field-line:#28455C;
}

/* ===================== base ===================== */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
	background:var(--paper); color:var(--ink);
	margin:0; overflow-x:clip; transition:background .35s, color .35s;
}
img, svg{ display:block; max-width:100%; }
h1, h2, h3, h4, h5, h6, p, figure{ margin-block:0; }
button, input, select, textarea{ font:inherit; }
.wp-site-blocks > *, main.wp-block-group, .wp-block-post-content{ margin-block-start:0; }
.page .wp-block-post-content{ max-width:none !important; }
.page .wp-block-post-content > *{ margin-block-start:0; }
.page .wp-block-post-content > .fc-wrap{ max-width:1240px !important; }
.page .wp-block-post-content > :is(.fc-marquee, .fc-shorts-zone){ max-width:none !important; }

/*
 * WordPress's theme.json global styles assign a *static* hex value to
 * body/heading/link color (it has no concept of our dark-mode toggle).
 * These rules re-assert the dynamic tokens with enough specificity to
 * always win over that static output, while still losing (correctly) to
 * more specific component rules further down this file (e.g. door cards,
 * the award panel, badges) that deliberately hard-code a color such as
 * white text over a photo.
 */
:root body{ color:var(--ink); background:var(--paper); }
:root h1, :root h2, :root h3, :root h4, :root h5, :root h6{ color:var(--ink); }
a{ color:var(--cyan-ink); }
a:hover{ color:var(--ink); }
.serif{ font-family:'Instrument Serif', serif; font-style:italic; font-weight:400; }
.fc-k{ font-size:.78rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--cyan-ink); }

#fc-prog{ position:fixed; top:0; left:0; height:2.5px; width:0; background:var(--cyan); z-index:70; }

/* intro veil — two-stage curtain: cyan sheen layer follows the navy panel */
#fc-veil{ position:fixed; inset:0; z-index:100; background:#032E50; display:flex; align-items:center; justify-content:center; transition:transform .75s cubic-bezier(.76,0,.24,1); }
#fc-veil::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,#041F38,#02101E); transform:translateY(0); transition:transform .9s cubic-bezier(.76,0,.24,1) .05s; }
#fc-veil.up{ transform:translateY(-101%); }
#fc-veil.up::after{ transform:translateY(-8%); }
#fc-veil .mark{ font-weight:900; font-size:clamp(38px,6vw,64px); letter-spacing:-.03em; color:#fff; opacity:0; transform:translateY(18px) scale(.96); transition:opacity .55s, transform .55s cubic-bezier(.22,1,.36,1); }
#fc-veil.on .mark{ opacity:1; transform:none; }
#fc-veil.up .mark{ opacity:0; transform:translateY(-24px); transition:opacity .4s, transform .4s; }
#fc-veil .mark b{ color:#41C2F5; }
#fc-veil .mark small{ display:block; margin-top:10px; font-size:11px; font-weight:600; letter-spacing:.34em; text-transform:uppercase; color:#8FDBFF; text-align:center; }
@media (prefers-reduced-motion: reduce){ #fc-veil{ display:none; } }

/* reveal-on-scroll — soft rise with a focus pull (blur settles as it lands) */
.rev{ opacity:0; transform:translateY(34px); filter:blur(7px); transition:opacity .9s ease, transform .9s cubic-bezier(.22,1,.36,1), filter .9s ease; transition-delay:var(--d,0s); }
.rev.in{ opacity:1; transform:none; filter:none; }
@media (prefers-reduced-motion: reduce){ .rev{ opacity:1; transform:none; filter:none; transition:none; } }

/* hero entrance — headline rows rise out of their clip masks once the veil lifts */
.fc-hero h1 .row > span{ transform:translateY(115%); transition:transform 1s cubic-bezier(.22,1,.36,1); transition-delay:var(--d,0s); }
body.fc-ready .fc-hero h1 .row > span{ transform:none; }
.fc-hero .fc-kicker, .fc-hero .fc-hero-foot{ opacity:0; transform:translateY(16px); transition:opacity .8s ease .35s, transform .8s cubic-bezier(.22,1,.36,1) .35s; }
body.fc-ready .fc-hero .fc-kicker, body.fc-ready .fc-hero .fc-hero-foot{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
	.fc-hero h1 .row > span, .fc-hero .fc-kicker, .fc-hero .fc-hero-foot{ opacity:1; transform:none; transition:none; }
}

/* ===================== header ===================== */
header.fc-header{
	position:sticky; top:0; z-index:50;
	background:color-mix(in srgb, var(--paper) 86%, transparent);
	backdrop-filter:blur(14px);
	border-bottom:1px solid transparent; transition:border-color .3s, transform .4s cubic-bezier(.22,1,.36,1);
	padding:0 !important;
}
header.fc-header.solid{ border-color:var(--line); }
header.fc-header.tucked{ transform:translateY(-101%); }
@media (prefers-reduced-motion: reduce){ header.fc-header.tucked{ transform:none; } }
.fc-nav{ display:flex; align-items:center; height:72px; gap:26px; max-width:1240px; margin-inline:auto; padding-inline:clamp(20px,4vw,48px); }
.fc-logo{ font-weight:900; font-size:24px; letter-spacing:-.03em; text-decoration:none; line-height:1; color:var(--ink); }
.fc-logo b{ color:var(--cyan); font-weight:900; }
.fc-logo small{ display:block; font-size:9.5px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--slate); margin-top:2px; }
.fc-nav-links{ display:flex; gap:22px; margin-left:auto; align-items:center; }
.fc-nav-links > a:not(.fc-btn), .fc-drop > button{ font-size:14.5px; font-weight:600; color:var(--slate); text-decoration:none; background:none; border:0; cursor:pointer; padding:0; font-family:inherit; }
.fc-nav-links > a:not(.fc-btn):hover, .fc-drop > button:hover{ color:var(--ink); }
.fc-nav-links > a.is-active{ color:var(--cyan-ink); }
.fc-drop{ position:relative; }
.fc-drop-menu{
	position:absolute; right:0; top:calc(100% + 14px); min-width:250px; z-index:60;
	background:var(--card); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow);
	padding:10px; display:none; flex-direction:column;
}
.fc-drop.open .fc-drop-menu{ display:flex; }
.fc-drop-menu a{ font-size:14.5px; font-weight:600; color:var(--slate); text-decoration:none; padding:9px 14px; border-radius:9px; }
.fc-drop-menu a:hover{ background:var(--paper-2); color:var(--ink); }
.fc-drop-menu .grp{ font-size:10.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--cyan-ink); padding:12px 14px 4px; }
.fc-btn{
	display:inline-flex; align-items:center; gap:10px; font-family:inherit;
	font-weight:700; font-size:15px; text-decoration:none; cursor:pointer;
	padding:12px 24px; border-radius:999px; border:1.5px solid transparent;
	transition:transform .2s cubic-bezier(.22,1,.36,1), box-shadow .2s;
	position:relative; overflow:hidden; isolation:isolate;
}
.fc-btn:hover{ transform:translateY(-2px); }
.fc-btn:active{ transform:translateY(0) scale(.97); }
@media (hover:hover) and (prefers-reduced-motion: no-preference){
	.fc-btn::before{
		content:""; position:absolute; inset:-2px; z-index:-1; width:55%;
		background:linear-gradient(105deg, transparent, rgba(255,255,255,.38), transparent);
		transform:translateX(-130%) skewX(-18deg);
	}
	.fc-btn:hover::before{ transform:translateX(240%) skewX(-18deg); transition:transform .75s ease; }
}
.fc-btn-cyan{ background:var(--cyan); color:#fff; }
:root[data-theme="dark"] .fc-btn-cyan{ color:#03131F; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .fc-btn-cyan{ color:#03131F; } }
.fc-btn-cyan:hover{ box-shadow:0 12px 28px -10px color-mix(in srgb, var(--cyan) 60%, transparent); }
.fc-btn-fill{ background:var(--ink); color:var(--paper); }
.fc-btn-line{ border-color:var(--line); color:var(--ink); background:transparent; }
.fc-btn-line:hover{ border-color:var(--cyan); }
#fc-themeBtn{
	display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px;
	border-radius:50%; border:1.5px solid var(--line); background:transparent; color:var(--ink); cursor:pointer;
	transition:border-color .2s, transform .2s; flex:0 0 auto;
}
#fc-themeBtn:hover{ border-color:var(--cyan); transform:rotate(15deg); }
#fc-themeBtn svg{ width:19px; height:19px; }
#fc-themeBtn .moon{ display:none; }
:root[data-theme="dark"] #fc-themeBtn .moon{ display:block; }
:root[data-theme="dark"] #fc-themeBtn .sun{ display:none; }
@media (prefers-color-scheme: dark){
	:root:not([data-theme="light"]) #fc-themeBtn .moon{ display:block; }
	:root:not([data-theme="light"]) #fc-themeBtn .sun{ display:none; }
}
#fc-menuBtn{
	display:none; align-items:center; justify-content:center; width:42px; height:42px;
	border-radius:50%; border:1.5px solid var(--line); background:transparent; color:var(--ink);
	cursor:pointer; padding:0; flex:0 0 auto;
}
#fc-menuBtn span, #fc-menuBtn::before, #fc-menuBtn::after{
	content:""; position:absolute; width:18px; height:1.5px; border-radius:2px; background:currentColor;
	transition:transform .25s, opacity .2s;
}
#fc-menuBtn::before{ transform:translateY(-5px); }
#fc-menuBtn::after{ transform:translateY(5px); }
.fc-header.menu-open #fc-menuBtn span{ opacity:0; }
.fc-header.menu-open #fc-menuBtn::before{ transform:rotate(45deg); }
.fc-header.menu-open #fc-menuBtn::after{ transform:rotate(-45deg); }
.fc-mobile-menu{
	display:none; position:absolute; left:0; right:0; top:100%; max-height:calc(100vh - 72px); overflow:auto;
	background:var(--paper); border-bottom:1px solid var(--line); box-shadow:var(--shadow); padding:16px clamp(20px,4vw,48px) 28px;
}
.fc-mobile-menu a{ display:block; padding:11px 0; color:var(--ink); font-size:17px; font-weight:700; text-decoration:none; border-bottom:1px solid var(--line); }
.fc-mobile-menu .grp{ display:block; margin-top:20px; padding-bottom:5px; color:var(--cyan-ink); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.fc-header.menu-open .fc-mobile-menu{ display:block; }
body.fc-menu-locked{ overflow:hidden; }
@media (max-width:1080px){
	.fc-nav-links > a:not(.fc-btn), .fc-drop{ display:none; }
	#fc-menuBtn{ display:inline-flex; position:relative; }
}
@media (max-width:580px){
	.fc-nav{ gap:10px; width:100%; max-width:100%; padding-inline:16px; }
	.fc-nav-links{ gap:9px; margin-left:auto; flex:0 0 auto; }
	.fc-nav-links > .fc-btn{ display:none; }
	.fc-logo{ margin-right:0; font-size:22px; min-width:0; }
	.fc-logo small{ display:none; }
	.fc-mobile-menu{ padding-inline:20px; }
	.fc-wrap{ width:100%; max-width:100%; }
	.fc-kicker{ max-width:100%; font-size:11px; letter-spacing:.12em; line-height:1.5; }
	.fc-hero-foot{ display:block; }
	.fc-hero-foot .fc-lede{ width:100%; max-width:none; overflow-wrap:anywhere; }
	.fc-hero-actions{ display:grid; grid-template-columns:1fr; width:100%; margin-top:28px; }
	.fc-hero-actions .fc-btn{ width:100%; justify-content:center; text-align:center; }
}

/* ===================== page scaffold ===================== */
.fc-wrap{ max-width:1240px; margin-inline:auto; padding-inline:clamp(20px,4vw,48px); }
.fc-page-head{ padding:clamp(52px,9vh,96px) 0 clamp(40px,6vh,64px); }
.fc-page-head h1{ font-size:clamp(40px,6.6vw,84px); }
.fc-page-head h1 .serif{ color:var(--cyan); }
.fc-page-head .fc-lede{ max-width:62ch; margin-top:22px; font-size:clamp(17px,1.45vw,19.5px); color:var(--slate); }
.fc-page-head .fc-lede strong{ color:var(--ink); }
.fc-kicker{ display:inline-flex; align-items:center; gap:10px; font-size:13px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--cyan-ink); margin-bottom:24px; }
.fc-kicker .pulse{ width:9px; height:9px; border-radius:50%; background:var(--cyan); }
@media (prefers-reduced-motion: no-preference){
	.fc-kicker .pulse{ animation:fc-pp 2.2s ease-out infinite; }
	@keyframes fc-pp{ 0%{ box-shadow:0 0 0 0 color-mix(in srgb, var(--cyan) 55%, transparent); } 70%{ box-shadow:0 0 0 12px transparent; } 100%{ box-shadow:0 0 0 0 transparent; } }
}
.fc-section{ padding:clamp(56px,9vh,110px) 0; }
.fc-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:clamp(32px,5vh,56px); flex-wrap:wrap; }
.fc-head h2{ font-size:clamp(32px,4.6vw,58px); }
.fc-head h2 .serif{ color:var(--cyan); }
.fc-head p{ max-width:46ch; color:var(--slate); }
.fc-prose{ max-width:72ch; color:var(--slate); display:flex; flex-direction:column; gap:18px; font-size:1.06rem; }
.fc-prose strong{ color:var(--ink); }
.fc-prose h3{ color:var(--ink); font-size:clamp(22px,2.4vw,30px); margin-top:18px; letter-spacing:-.02em; }
.fc-prose ul{ margin:0; padding-left:22px; display:flex; flex-direction:column; gap:8px; }
.fc-prose a{ color:var(--cyan-ink); font-weight:600; }

/* hero (front page) */
.fc-hero{ padding-top:clamp(52px,8vh,100px); }
.fc-hero h1{ font-size:clamp(52px,9vw,126px); }
.fc-hero h1 .row{ display:block; overflow:hidden; }
.fc-hero h1 .row > span{ display:inline-block; }
.fc-hero h1 .serif{ color:var(--cyan); font-size:1.04em; }
.fc-hero-foot{ display:flex; align-items:flex-end; justify-content:space-between; gap:36px; margin-top:38px; flex-wrap:wrap; }
.fc-hero-foot .fc-lede{ max-width:52ch; font-size:clamp(17px,1.5vw,20px); color:var(--slate); }
.fc-hero-foot .fc-lede strong{ color:var(--ink); }
.fc-hero-actions{ display:flex; gap:14px; flex-wrap:wrap; }
.fc-hero-media{ margin-top:clamp(40px,6vh,72px); position:relative; }
.fc-hero-media .frame{ border-radius:clamp(16px,2.5vw,28px); overflow:hidden; box-shadow:var(--shadow); aspect-ratio:5/2.4; min-height:300px; }
.fc-hero-media img{ width:100%; height:112%; object-fit:cover; }
@media (prefers-reduced-motion: no-preference){
	.fc-hero-media img{ transform:translateY(calc(var(--fc-par,0) * -12%)); will-change:transform; }
}
.fc-hero-media .badge{ position:absolute; right:clamp(16px,4vw,44px); bottom:-32px; z-index:2; background:var(--card); border:1px solid var(--line); border-radius:18px; padding:20px 26px; box-shadow:var(--shadow); max-width:320px; }
@media (prefers-reduced-motion: no-preference){
	.fc-hero-media .badge.in{ animation:fc-float 6.5s ease-in-out 1.2s infinite; }
	@keyframes fc-float{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-9px); } }
}
.fc-hero-media .badge .t{ font-family:'Instrument Serif',serif; font-style:italic; font-size:23px; line-height:1.15; }
.fc-hero-media .badge small{ display:block; margin-top:8px; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--cyan-ink); }

/* marquee */
.fc-marquee{ border-block:1px solid var(--line); margin-top:clamp(64px,9vh,100px); padding:20px 0; overflow:hidden; }
.fc-mq{ display:flex; width:max-content; white-space:nowrap; }
.fc-mq span{ font-size:clamp(23px,2.8vw,36px); font-weight:900; letter-spacing:-.02em; padding-right:18px; }
.fc-mq .serif{ color:var(--cyan); font-weight:400; }
.fc-mq i{ font-style:normal; color:var(--cyan); padding-right:18px; }
@media (prefers-reduced-motion: no-preference){ .fc-mq{ animation:fc-mq 34s linear infinite; } .fc-marquee:hover .fc-mq{ animation-play-state:paused; } @keyframes fc-mq{ to{ transform:translateX(-50%); } } }
@media (prefers-reduced-motion: reduce){ .fc-mq{ flex-wrap:wrap; white-space:normal; width:auto; } }

/* stats */
.fc-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(20px,3vw,44px); padding:clamp(56px,8vh,90px) 0; }
@media (max-width:860px){ .fc-stats{ grid-template-columns:1fr 1fr; } }
.fc-stat{ position:relative; padding-top:20px; }
.fc-stat::before{ content:""; position:absolute; top:0; left:0; width:100%; height:2px; background:var(--line); }
.fc-stat::after{ content:""; position:absolute; top:0; left:0; width:0; height:2px; background:var(--cyan); transition:width 1.2s cubic-bezier(.22,1,.36,1) .3s; }
.fc-stat.in::after{ width:64px; }
@media (prefers-reduced-motion: reduce){ .fc-stat::after{ width:64px; transition:none; } }
.fc-stat b{ display:block; font-size:clamp(44px,5.4vw,72px); font-weight:900; letter-spacing:-.04em; font-variant-numeric:tabular-nums; line-height:1; }
.fc-stat b .serif{ color:var(--cyan); font-size:.9em; }
.fc-stat p{ margin-top:10px; color:var(--slate); font-size:14.5px; max-width:24ch; }

/* doors */
.fc-duo{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(18px,2.5vw,28px); }
@media (max-width:860px){ .fc-duo{ grid-template-columns:1fr; } }
.fc-door{ position:relative; border-radius:24px; overflow:hidden; min-height:480px; display:flex; align-items:flex-end; text-decoration:none; isolation:isolate; }
.fc-door img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .9s cubic-bezier(.22,1,.36,1); }
.fc-door::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, transparent 30%, var(--scrim) 66%, rgba(2,14,26,.87)); }
.fc-door:hover img{ transform:scale(1.06); }
.fc-door .inner{ padding:clamp(24px,3.5vw,42px); color:#fff; }
.fc-door .who{ font-size:12.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#8FDBFF; }
.fc-door h3{ font-size:clamp(26px,3vw,40px); font-weight:900; margin-top:12px; letter-spacing:-.025em; color:#fff; }
.fc-door p{ margin-top:12px; color:rgba(235,245,252,.85); max-width:46ch; font-size:15.5px; }
.fc-door .go{ display:inline-flex; align-items:center; gap:10px; margin-top:20px; font-weight:700; font-size:15px; color:#fff; border-bottom:2px solid #41C2F5; padding-bottom:4px; }
.fc-door .go i{ font-style:normal; transition:transform .3s; }
.fc-door:hover .go i{ transform:translateX(6px); }

/* shorts strip */
.fc-shorts-zone{ background:var(--paper-2); border-block:1px solid var(--line); }
.fc-shorts{ display:flex; gap:clamp(14px,2vw,22px); overflow-x:auto; padding:8px 4px 24px; scroll-snap-type:x mandatory; cursor:grab; scrollbar-width:thin; scrollbar-color:var(--cyan) transparent; }
.fc-shorts.dragging{ cursor:grabbing; scroll-snap-type:none; }
.fc-short{ flex:0 0 min(290px,72vw); aspect-ratio:9/14.5; border-radius:20px; overflow:hidden; position:relative; scroll-snap-align:start; isolation:isolate; border:1px solid var(--line); background:#032E50; margin:0; }
.fc-short img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.fc-short video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; opacity:0; transition:opacity .6s; }
.fc-short.playing video{ opacity:1; }
.fc-short .live{
	position:absolute; top:14px; left:14px; z-index:2; display:none; align-items:center; gap:7px;
	font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#fff;
	background:rgba(2,14,26,.45); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.22);
	border-radius:999px; padding:5px 11px;
}
.fc-short.playing .live{ display:inline-flex; }
.fc-short .live::before{ content:""; width:7px; height:7px; border-radius:50%; background:#41C2F5; animation:fc-pp 2.2s ease-out infinite; }
@media (prefers-reduced-motion: no-preference){
	.fc-short:not(.playing) img{ animation:fc-kb 14s ease-in-out infinite alternate; }
	@keyframes fc-kb{ from{ transform:scale(1) translateY(0); } to{ transform:scale(1.12) translateY(-2.5%); } }
	.fc-short:nth-child(2n) img{ animation-duration:17s; }
	.fc-short:nth-child(3n) img{ animation-duration:20s; }
}
.fc-shorts-nav{ display:flex; gap:10px; }
.fc-shorts-nav button{
	width:46px; height:46px; border-radius:50%; border:1.5px solid var(--line); background:var(--card);
	color:var(--ink); font-size:18px; line-height:1; cursor:pointer; display:inline-flex; align-items:center; justify-content:center;
	transition:border-color .2s, color .2s, transform .2s;
}
.fc-shorts-nav button:hover{ border-color:var(--cyan); color:var(--cyan-ink); transform:translateY(-2px); }
.fc-shorts-nav button:active{ transform:scale(.94); }
.fc-short::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(2,14,26,.18), transparent 34%, transparent 52%, rgba(2,14,26,.85)); }
.fc-short .cap{ position:absolute; left:20px; right:20px; bottom:18px; color:#fff; }
.fc-short .cap .kk{ font-size:11.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#8FDBFF; }
.fc-short .cap .t{ font-family:'Instrument Serif',serif; font-style:italic; font-size:22px; line-height:1.18; margin-top:6px; }
.fc-short.text{ display:flex; align-items:center; justify-content:center; padding:26px; }
.fc-short.text .big{ color:#fff; font-family:'Instrument Serif',serif; font-style:italic; font-size:clamp(24px,2.5vw,32px); line-height:1.22; text-align:center; }
.fc-short.text .big b{ color:#41C2F5; font-weight:400; }

/* value rows */
.fc-rows{ border-top:1px solid var(--line); }
.fc-rowline{ display:grid; grid-template-columns:100px 1fr 1.2fr; gap:clamp(16px,3vw,44px); padding:clamp(24px,3.6vh,38px) 4px; border-bottom:1px solid var(--line); align-items:baseline; transition:background .3s, padding-left .3s; }
.fc-rowline:hover{ background:var(--paper-2); padding-left:18px; }
.fc-rowline .no{ font-family:'Instrument Serif',serif; font-style:italic; font-size:clamp(22px,2.4vw,32px); color:var(--cyan); }
.fc-rowline h3{ font-size:clamp(22px,2.8vw,36px); font-weight:900; letter-spacing:-.025em; }
.fc-rowline p{ color:var(--slate); font-size:15.5px; max-width:58ch; }
.fc-uniq{ display:inline-block; margin-left:12px; vertical-align:middle; font-size:10.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--cyan-ink); background:var(--sky); padding:5px 11px; border-radius:999px; }
@media (max-width:760px){ .fc-rowline{ grid-template-columns:1fr; } .fc-rowline .no{ display:none; } }

/* team */
.fc-team{ display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(10px,1.4vw,18px); }
@media (max-width:1020px){ .fc-team{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .fc-team{ grid-template-columns:repeat(2,1fr); } }
.fc-member{ position:relative; border-radius:16px; overflow:hidden; aspect-ratio:3/4; isolation:isolate; text-decoration:none; display:block; }
.fc-member img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(1); transition:transform .7s cubic-bezier(.22,1,.36,1), filter .5s; z-index:-2; }
.fc-member::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, transparent 55%, rgba(2,14,26,.84)); }
.fc-member:hover img{ transform:scale(1.07); filter:grayscale(0); }
.fc-member .nm{ position:absolute; left:15px; right:10px; bottom:12px; color:#fff; }
.fc-member .nm b{ display:block; font-size:15px; line-height:1.25; }
.fc-member .nm small{ color:#A8DFFB; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }

/* team page cards */
.fc-tgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,26px); }
@media (max-width:960px){ .fc-tgrid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .fc-tgrid{ grid-template-columns:1fr; } }
.fc-tcard{ background:var(--card); border:1px solid var(--line); border-radius:20px; overflow:hidden; box-shadow:var(--shadow); }
.fc-tcard .ph{ aspect-ratio:4/3.4; overflow:hidden; position:relative; }
.fc-tcard .ph img{ width:100%; height:100%; object-fit:cover; object-position:center 22%; filter:grayscale(1); transition:transform .7s cubic-bezier(.22,1,.36,1), filter .5s; }
.fc-tcard:hover .ph img{ transform:scale(1.05); filter:grayscale(0); }
.fc-tcard .ph.init{ display:flex; align-items:center; justify-content:center; background:var(--sky); }
.fc-tcard .ph.init span{ font-family:'Instrument Serif',serif; font-style:italic; font-size:64px; color:var(--cyan-ink); }
.fc-tcard .bd{ padding:22px 24px 24px; }
.fc-tcard h3{ font-size:21px; letter-spacing:-.02em; }
.fc-tcard .role{ color:var(--cyan-ink); font-size:12.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin-top:5px; }
.fc-tcard p{ color:var(--slate); font-size:15px; margin-top:10px; }
.fc-tcard .cont{ margin-top:12px; font-size:14.5px; display:flex; flex-direction:column; gap:3px; }
.fc-tcard .cont a{ color:var(--cyan-ink); text-decoration:none; font-weight:600; }

/* award */
.fc-award{ background:var(--award-bg); color:var(--award-ink); border-radius:clamp(18px,3vw,32px); padding:clamp(40px,6.5vw,84px); position:relative; overflow:hidden; border:1px solid var(--award-line); }
.fc-award::before{ content:"2026"; position:absolute; right:-1.5%; top:50%; transform:translateY(-50%); font-family:'Instrument Serif',serif; font-style:italic; font-size:clamp(150px,24vw,340px); color:color-mix(in srgb, var(--award-acc) 12%, transparent); line-height:1; pointer-events:none; }
@media (prefers-reduced-motion: no-preference){
	.fc-award::before{ animation:fc-award-drift 12s ease-in-out infinite alternate; }
	@keyframes fc-award-drift{ from{ transform:translateY(-52%); } to{ transform:translateY(-46%); } }
}
@media (hover:hover) and (prefers-reduced-motion: no-preference){
	.fc-award::after{
		content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .5s;
		background:radial-gradient(460px circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--award-acc) 11%, transparent), transparent 68%);
	}
	.fc-award:hover::after{ opacity:1; }
}
.fc-award .fc-k{ color:var(--award-acc); }
.fc-award h2{ font-size:clamp(36px,5.4vw,68px); font-weight:900; margin-top:16px; max-width:16ch; color:var(--award-ink); }
.fc-award h2 .serif{ color:var(--award-acc); font-weight:400; }
.fc-award p{ margin-top:18px; max-width:52ch; color:var(--award-sub); font-size:16.5px; }
.fc-award .chips{ display:flex; gap:12px; flex-wrap:wrap; margin-top:32px; }
.fc-award .chip{ border:1px solid var(--award-line); border-radius:999px; padding:8px 17px; font-size:13.5px; font-weight:600; color:var(--award-ink); }

/* certificates */
.fc-certs{ padding:clamp(54px,8vh,92px) clamp(20px,4vw,48px); }
.fc-certs h2{ margin-bottom:clamp(24px,4vh,42px); font-size:clamp(24px,3vw,38px); }
.fc-certs .wp-block-gallery{
	display:grid !important; grid-template-columns:repeat(8,minmax(0,1fr)) !important;
	gap:clamp(10px,1.3vw,18px) !important; width:100%;
}
.fc-certs .wp-block-image{
	display:flex !important; align-items:center; justify-content:center; width:auto !important; min-width:0;
	aspect-ratio:1; margin:0 !important; padding:clamp(8px,1.2vw,16px); overflow:hidden;
	background:var(--card); border:1px solid var(--line); border-radius:14px;
}
.fc-certs .wp-block-image img{ width:100% !important; height:100% !important; object-fit:contain !important; }
@media (max-width:900px){ .fc-certs .wp-block-gallery{ grid-template-columns:repeat(4,minmax(0,1fr)) !important; } }
@media (max-width:480px){ .fc-certs .wp-block-gallery{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }

/* news */
.fc-news a{ display:grid; grid-template-columns:120px 1fr auto; gap:24px; align-items:baseline; padding:20px 4px; border-bottom:1px solid var(--line); text-decoration:none; transition:padding-left .25s; }
.fc-news a:hover{ padding-left:14px; }
.fc-news time{ font-size:13.5px; font-weight:700; color:var(--cyan-ink); font-variant-numeric:tabular-nums; }
.fc-news h3{ font-size:clamp(17px,1.9vw,21px); font-weight:700; letter-spacing:-.015em; }
.fc-news p{ grid-column:2; color:var(--slate); font-size:14.5px; margin-top:4px; max-width:75ch; }
.fc-news .arr{ font-size:20px; color:var(--cyan); transition:transform .25s; }
.fc-news a:hover .arr{ transform:translateX(6px); }
@media (max-width:640px){ .fc-news a{ grid-template-columns:1fr; } .fc-news p{ grid-column:1; } .fc-news .arr{ display:none; } }
.fc-yeartag{ font-family:'Instrument Serif',serif; font-style:italic; font-size:clamp(30px,3.6vw,44px); color:var(--cyan); margin:44px 0 6px; }
.fc-yeartag:first-child{ margin-top:0; }

/* process steps */
.fc-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,2vw,22px); }
@media (max-width:960px){ .fc-steps{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .fc-steps{ grid-template-columns:1fr; } }
.fc-step{ background:var(--card); border:1px solid var(--line); border-radius:18px; padding:28px; position:relative; }
.fc-step .n{ font-family:'Instrument Serif',serif; font-style:italic; font-size:38px; color:var(--cyan); }
.fc-step h3{ font-size:19px; margin-top:12px; letter-spacing:-.015em; }
.fc-step p{ color:var(--slate); font-size:14.5px; margin-top:10px; }

/* region chips */
.fc-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.fc-chips .chip{ font-size:13px; font-weight:600; color:var(--slate); background:var(--card); border:1px solid var(--line); border-radius:999px; padding:6px 14px; }

/* split layout */
.fc-split{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,70px); align-items:start; }
@media (max-width:880px){ .fc-split{ grid-template-columns:1fr; } }
.fc-photo-card{ border-radius:22px; overflow:hidden; box-shadow:var(--shadow); position:relative; }
.fc-photo-card img{ width:100%; height:100%; object-fit:cover; }
.fc-photo-card .cap{ position:absolute; left:22px; right:22px; bottom:16px; z-index:2; color:#fff; font-family:'Instrument Serif',serif; font-style:italic; font-size:20px; }
.fc-photo-card::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(2,14,26,.72)); }
.fc-aside-card{ background:var(--card); border:1px solid var(--line); border-radius:20px; padding:clamp(24px,3vw,36px); box-shadow:var(--shadow); }
.fc-aside-card h3{ font-size:22px; letter-spacing:-.02em; }
.fc-aside-card p{ color:var(--slate); font-size:15.5px; margin-top:12px; }
.fc-aside-card ul{ margin:14px 0 0; padding-left:20px; color:var(--slate); font-size:15px; display:flex; flex-direction:column; gap:7px; }
.fc-aside-card a{ color:var(--cyan-ink); font-weight:600; }

/* checklist */
.fc-checks{ display:grid; grid-template-columns:1fr 1fr; gap:10px 26px; margin-top:10px; }
@media (max-width:640px){ .fc-checks{ grid-template-columns:1fr; } }
.fc-checks span{ display:flex; gap:11px; align-items:baseline; color:var(--slate); font-size:15.5px; }
.fc-checks span::before{ content:"✓"; color:var(--cyan); font-weight:900; }

/* forms (Contact Form 7) — styled to match the aside-card form look */
.fc-aside-card .wpcf7-form{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:18px; }
@media (max-width:640px){ .fc-aside-card .wpcf7-form{ grid-template-columns:1fr; } }
.wpcf7-form p{ display:flex; flex-direction:column; gap:7px; margin:0; }
.wpcf7-form label{ font-size:13.5px; font-weight:700; color:var(--ink); display:flex; flex-direction:column; gap:7px; }
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="tel"],
.wpcf7-form input[type="number"], .wpcf7-form select, .wpcf7-form textarea{
	font-family:inherit; font-size:15.5px; color:var(--ink);
	background:var(--field); border:1.5px solid var(--field-line); border-radius:12px;
	padding:13px 16px; transition:border-color .2s; width:100%;
}
.wpcf7-form textarea{ min-height:120px; resize:vertical; }
.wpcf7-form input:focus, .wpcf7-form select:focus, .wpcf7-form textarea:focus{ outline:none; border-color:var(--cyan); }
.wpcf7-form .fc-full{ grid-column:1/-1; }
.wpcf7-form .wpcf7-acceptance{ grid-column:1/-1; font-size:14px; color:var(--slate); }
.wpcf7-form .wpcf7-acceptance a{ color:var(--cyan-ink); font-weight:600; }
.wpcf7-form p:last-of-type{ grid-column:1/-1; }
.wpcf7-form input[type="submit"]{
	display:inline-flex; align-items:center; gap:10px; font-family:inherit;
	font-weight:700; font-size:15px; cursor:pointer; background:var(--cyan); color:#fff;
	padding:12px 24px; border-radius:999px; border:0; transition:transform .2s, box-shadow .2s; justify-self:start;
}
.wpcf7-form input[type="submit"]:hover{ transform:translateY(-2px); box-shadow:0 12px 28px -10px color-mix(in srgb, var(--cyan) 60%, transparent); }
.wpcf7-not-valid-tip{ font-size:13px; color:#d64545; }
.wpcf7-response-output{ grid-column:1/-1; border-radius:12px !important; margin:14px 0 0 !important; }

/* cta */
.fc-cta{ text-align:center; padding:clamp(70px,12vh,130px) 0; }
.fc-cta h2{ font-size:clamp(40px,6.8vw,96px); font-weight:900; letter-spacing:-.035em; }
.fc-cta h2 .serif{ color:var(--cyan); }
.fc-cta p{ color:var(--slate); font-size:18px; margin-top:18px; }
.fc-cta .actions{ display:flex; gap:14px; justify-content:center; margin-top:34px; flex-wrap:wrap; }
.fc-cta .tel{ margin-top:28px; font-size:15px; color:var(--slate); }
.fc-cta .tel a{ font-weight:700; color:var(--cyan-ink); text-decoration:none; }

/* footer */
footer.fc-footer{ border-top:1px solid var(--line); padding:60px 0 34px; font-size:15px; color:var(--slate); background:var(--paper); }
.fc-fgrid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:36px; }
@media (max-width:900px){ .fc-fgrid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .fc-fgrid{ grid-template-columns:1fr; } }
footer.fc-footer h4{ font-size:12.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); margin:0 0 13px; }
footer.fc-footer address{ font-style:normal; line-height:1.85; }
footer.fc-footer nav{ display:flex; flex-direction:column; gap:7px; }
footer.fc-footer nav a{ text-decoration:none; color:var(--slate); }
footer.fc-footer nav a:hover{ color:var(--ink); }
footer.fc-footer ul{ list-style:none; margin:16px 0 0; padding:0; line-height:2; }
footer.fc-footer ul li::before{ content:"✓"; color:var(--cyan); margin-right:9px; font-weight:700; }
.fc-fbot{ margin-top:48px; padding-top:22px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:13px; }

/* theme switch — circular wipe via the View Transitions API (progressive enhancement) */
::view-transition-old(root), ::view-transition-new(root){ animation:none; mix-blend-mode:normal; }
::view-transition-old(root){ z-index:1; }
::view-transition-new(root){ z-index:2; }

/* misc utility */
.fc-shadow{ box-shadow:var(--shadow); }
.fc-rounded{ border-radius:20px; overflow:hidden; }
:is(a,button):focus-visible{ outline:2.5px solid var(--cyan); outline-offset:3px; border-radius:6px; }
