/* F&M Corporate — Premium Design System v1
   Source-of-truth brand: #A0181F, #111111, #4A1424.
   Layered after styles.css, no external library or font dependency. */
:root {
  --fm-accent:#A0181F;
  --fm-accent-strong:#7B1018;
  --fm-ink:#111111;
  --fm-bordeaux:#4A1424;
  --fm-canvas:#F8F7F5;
  --fm-surface:#FFFFFF;
  --fm-subtle:#F2EFEE;
  --fm-stroke:#E5E0DF;
  --fm-ease:cubic-bezier(.22,1,.36,1);
  --fm-shadow:0 24px 65px -38px rgba(35,10,20,.3);
}
html { scroll-padding-top:108px; }
body.fm-premium { background:var(--fm-surface); overflow-x:clip; }
.fm-premium .wrap { max-width:1472px; }
.fm-premium .eyebrow { letter-spacing:.18em; font-weight:750; }
.fm-premium .section { padding-top:clamp(80px,9vw,132px); padding-bottom:clamp(80px,9vw,132px); }
.fm-premium .section.compact { padding-top:28px; }
.fm-premium .header {
  position:sticky; top:0; z-index:90;
  background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(17,17,17,.07);
  transition:background .3s ease,box-shadow .3s ease,border-color .3s ease;
}
@supports (backdrop-filter:blur(16px)) {
  .fm-premium .header { backdrop-filter:blur(16px); background:rgba(255,255,255,.88); }
}
.fm-premium .header.fm-is-scrolled { box-shadow:0 9px 30px rgba(17,17,17,.06); border-bottom-color:var(--fm-stroke); }
.fm-premium .header-inner { min-height:92px; }
.fm-premium .header nav>a:not(.button), .fm-premium .more summary { transition:color .23s ease; }
.fm-premium .header nav>a:not(.button):hover, .fm-premium .more summary:hover { color:var(--fm-accent); }
.fm-premium .more>div { border-radius:14px; box-shadow:0 22px 45px rgba(17,17,17,.12); }
.fm-premium .button {
  border-radius:999px; position:relative; isolation:isolate; overflow:hidden;
  transition:transform .3s var(--fm-ease),background .3s ease,border-color .3s ease,box-shadow .3s ease;
}
.fm-premium .button:hover { transform:translateY(-2px); box-shadow:0 13px 30px rgba(160,24,31,.2); }
.fm-premium .button.light:hover { box-shadow:0 13px 30px rgba(17,17,17,.14); }
.fm-premium .text-link { transition:color .25s ease,border-color .25s ease; }
.fm-premium .text-link:hover { border-color:var(--fm-accent-strong); }
.fm-premium a:focus-visible, .fm-premium button:focus-visible { outline-offset:4px; }
.fm-premium .page-intro { padding-top:clamp(80px,9vw,140px); padding-bottom:clamp(48px,5vw,74px); }
.fm-premium .page-intro h1 { font-size:clamp(2.7rem,5.8vw,5.7rem); max-width:1080px; line-height:1.06; letter-spacing:-.062em; }
.fm-premium .page-intro .lead { font-size:clamp(1.05rem,1.5vw,1.28rem); }
.fm-premium .section-head { margin-bottom:clamp(32px,5vw,64px); }
.fm-premium .section-head h2 { font-size:clamp(2.25rem,4.35vw,4.5rem); letter-spacing:-.06em; line-height:1.08; }
.fm-premium .project-grid { gap:25px; }
.fm-premium .project-card {
  display:flex; flex-direction:column; border:1px solid var(--fm-stroke);
  background:#fff; border-radius:20px; overflow:hidden; box-shadow:0 5px 21px rgba(17,17,17,.025);
  transition:transform .55s var(--fm-ease),box-shadow .55s var(--fm-ease),border-color .35s ease;
}
.fm-premium .project-card:hover { transform:translateY(-8px); border-color:#d4bdc0; box-shadow:var(--fm-shadow); }
.fm-premium .project-top { min-height:200px; padding:32px; border-bottom:1px solid var(--fm-stroke); isolation:isolate; }
.fm-premium .project-top::after {
  content:""; position:absolute; width:260px; height:260px; border:1px solid rgba(160,24,31,.14);
  border-radius:50%; right:-80px; top:-165px; box-shadow:0 0 0 30px rgba(160,24,31,.026),0 0 0 75px rgba(160,24,31,.02);
  transition:transform .8s var(--fm-ease); pointer-events:none;
}
.fm-premium .project-card:hover .project-top::after { transform:translate(-32px,32px) scale(1.08); }
.fm-premium .project-word { font-size:clamp(3.1rem,4vw,5rem); letter-spacing:-.072em; }
.fm-premium .project-body { padding:36px; flex:1; display:flex; flex-direction:column; align-items:flex-start; }
.fm-premium .project-body h3 { font-size:clamp(1.42rem,2.2vw,2rem); letter-spacing:-.045em; }
.fm-premium .project-body .text-link { margin-top:auto; padding-top:28px; }
.fm-premium .status { border-radius:999px; padding:7px 12px; }
.fm-premium .expertises-section { background:linear-gradient(150deg,#faf8f8,#f3f0ef); }
.fm-premium .expertise-row {
  position:relative; gap:34px;
  transition:padding-left .4s var(--fm-ease),background .4s ease;
}
.fm-premium .expertise-row:hover { padding-left:14px; background:rgba(255,255,255,.46); }
.fm-premium .expertise-mark { transition:transform .45s var(--fm-ease); }
.fm-premium .expertise-row:hover .expertise-mark { transform:rotate(45deg); }
.fm-premium .event-card>a { display:block; overflow:hidden; border-radius:14px; }
.fm-premium .event-card img, .fm-premium .event-type {
  border-radius:14px; transition:transform .65s var(--fm-ease),filter .65s ease;
}
.fm-premium .event-card:hover img { transform:scale(1.055); filter:saturate(1.1); }
.fm-premium .event-card h3 { font-size:1.48rem; letter-spacing:-.025em; }
.fm-premium .media-card, .fm-premium .resources article {
  border-radius:18px; transition:border-color .3s ease,transform .35s var(--fm-ease),box-shadow .35s ease;
}
.fm-premium .media-card:hover,.fm-premium .resources article:hover {
  transform:translateY(-4px); border-color:#d4bdc0; box-shadow:var(--fm-shadow);
}
.fm-premium .partner-strip { border-top:1px solid var(--fm-stroke); }
.fm-premium .partner-strip strong { letter-spacing:-.025em; }
.fm-premium .cta {
  background:linear-gradient(118deg,#4A1424 0%,#76161F 48%,#A0181F 100%);
  position:relative; isolation:isolate; overflow:hidden;
}
.fm-premium .cta::before { content:""; pointer-events:none; position:absolute; right:-110px; top:-210px; width:600px; height:600px;
  border:1px solid rgba(255,255,255,.14); border-radius:50%;
  box-shadow:0 0 0 75px rgba(255,255,255,.035),0 0 0 156px rgba(255,255,255,.025); z-index:-1;
}
.fm-premium .cta .button.light { border-radius:999px; }
.fm-premium footer { background:#F6F4F3; border-top:1px solid var(--fm-stroke); }
.fm-premium .footer-grid { padding-top:85px; }
.fm-premium .gallery-item { border-radius:13px; }
.fm-premium .gallery-item img { transition:transform .7s var(--fm-ease); }
.fm-premium .gallery-item:hover img { transform:scale(1.07); }

/* Homepage — graphic direction without changing any approved editorial text */
.fm-home .hero {
  min-height:min(790px,82vh); padding-top:clamp(66px,7vw,120px); padding-bottom:clamp(70px,8vw,115px);
  grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr); gap:clamp(44px,6vw,116px);
}
.fm-home .hero-copy { position:relative; z-index:1; }
.fm-home .hero .eyebrow { margin-bottom:25px; }
.fm-home .hero-copy h1 {
  font-size:clamp(3rem,5.15vw,5.7rem); line-height:1.045; max-width:770px;
  font-weight:680; letter-spacing:-.065em; text-wrap:balance;
}
.fm-home .hero-copy h1 em { color:var(--fm-accent); background:linear-gradient(120deg,#A0181F,#6D1827); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.fm-home .hero-copy p { font-size:clamp(1.05rem,1.35vw,1.28rem); max-width:580px; line-height:1.75; margin-top:33px; }
.fm-home .hero-actions { margin-top:39px; gap:28px; }
.fm-home .hero-actions .button { padding:17px 30px; }
.fm-home .hero-signature { margin-top:66px; font-size:.78rem; letter-spacing:.03em; }
.fm-home .hero-visual {
  min-height:600px; border-radius:26px; isolation:isolate;
  background:#1D1217; box-shadow:0 45px 90px -53px rgba(74,20,36,.64);
}
.fm-home .hero-visual>img { filter:saturate(.83) contrast(1.04); transition:transform 1.4s var(--fm-ease),filter .7s ease; }
.fm-home .hero-visual:hover>img { transform:scale(1.045); filter:saturate(1.04) contrast(1.05); }
.fm-home .hero-visual::before {
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(135deg,rgba(160,24,31,.28),transparent 38%);
}
.fm-home .hero-visual::after { z-index:1; inset:40% 0 0; background:linear-gradient(transparent,rgba(9,7,11,.92)); }
.fm-home .hero-visual figcaption { z-index:2; left:clamp(28px,4vw,55px); bottom:42px; right:50px; }
.fm-home .hero-visual strong { font-size:clamp(1.7rem,2.6vw,2.65rem); max-width:490px; letter-spacing:-.045em; font-weight:590; }
.fm-home .hero-visual .vertical-label { z-index:2; top:27px; right:24px; }
.fm-home .proof { gap:22px; padding-top:35px; padding-bottom:35px; border-color:var(--fm-stroke); }
.fm-home .proof strong { font-size:clamp(1.5rem,2.1vw,2.2rem); }
.fm-home .proof span { font-size:.77rem; }
.fm-home .intro-split { gap:clamp(50px,8vw,130px); }
.fm-home .intro-split h2 { font-size:clamp(2.4rem,4.2vw,4.5rem); letter-spacing:-.06em; line-height:1.13; }
.fm-home .intro-split .lead { font-size:1.25rem; }
.fm-home .feature {
  padding-block:clamp(95px,10vw,160px);
  background:radial-gradient(ellipse at 85% 0%,rgba(160,24,31,.22),transparent 48%),#111111;
  border-top:0;
}
.fm-home .feature::before {
  content:""; position:absolute; inset:0; opacity:.09; pointer-events:none;
  background-image:linear-gradient(#ffffff 1px,transparent 1px),linear-gradient(90deg,#ffffff 1px,transparent 1px);
  background-size:100px 100px; mask-image:linear-gradient(90deg,transparent,#000);
}
.fm-home .feature-grid { position:relative; gap:clamp(70px,10vw,160px); }
.fm-home .feature h2 { font-size:clamp(6rem,11vw,12rem); line-height:.85; letter-spacing:-.09em; }
.fm-home .feature-title { font-size:clamp(1.9rem,3vw,3.25rem); line-height:1.16; letter-spacing:-.04em; }
.fm-home .feature .status { border-radius:999px; }
.fm-home .bunig-facts>div { padding-top:30px; }
.fm-home .bunig-facts h3 { font-size:clamp(1.4rem,2vw,2rem); line-height:1.3; }

/* Small UI enrichments */
.fm-scroll-progress {
  position:fixed; left:0; top:0; width:100%; height:3px; z-index:200;
  transform:scaleX(0); transform-origin:left center; background:var(--fm-accent);
  pointer-events:none; will-change:transform;
}
.fm-back-to-top {
  position:fixed; right:24px; bottom:24px; z-index:95;
  width:48px; height:48px; border:1px solid rgba(74,20,36,.15);
  background:#fff; color:var(--fm-ink); border-radius:50%;
  box-shadow:0 9px 30px rgba(20,13,16,.16); display:grid; place-items:center;
  opacity:0; visibility:hidden; transform:translateY(14px);
  transition:opacity .3s ease,visibility .3s ease,transform .4s var(--fm-ease);
}
.fm-back-to-top.fm-visible { opacity:1; visibility:visible; transform:translateY(0); }
.fm-back-to-top:hover { color:var(--fm-accent); transform:translateY(-3px); }
@media (prefers-reduced-motion:no-preference) {
  html.fm-motion-ready .fm-premium .fm-reveal {
    opacity:0; transform:translateY(32px);
    transition:opacity .78s var(--fm-ease),transform .78s var(--fm-ease);
  }
  html.fm-motion-ready .fm-premium .fm-reveal.fm-in-view { opacity:1; transform:translateY(0); }
}
@media (max-width:1200px) {
  .fm-home .hero { gap:42px; }
  .fm-home .hero-copy h1 { font-size:clamp(2.85rem,5vw,4.2rem); }
  .fm-home .hero-visual { min-height:520px; }
  .fm-premium .header-inner { min-height:85px; }
}
@media (max-width:1000px) {
  .fm-premium .header nav { background:rgba(255,255,255,.98); box-shadow:0 18px 40px rgba(10,10,10,.06); }
  .fm-home .hero { min-height:0; gap:36px; }
  .fm-home .hero-visual { min-height:460px; }
  .fm-premium .project-body { padding:27px; }
}
@media (max-width:700px) {
  html { scroll-padding-top:80px; }
  .fm-premium .wrap { padding-inline:22px; }
  .fm-premium .header-inner { min-height:76px; }
  .fm-premium .section { padding-top:72px; padding-bottom:72px; }
  .fm-premium .section.compact { padding-top:20px; }
  .fm-home .hero { grid-template-columns:1fr; padding-top:57px; padding-bottom:48px; gap:42px; }
  .fm-home .hero-copy h1 { font-size:clamp(2.55rem,9vw,4rem); line-height:1.075; }
  .fm-home .hero-copy p { margin-top:23px; font-size:1rem; }
  .fm-home .hero-actions { margin-top:28px; }
  .fm-home .hero-signature { margin-top:36px; }
  .fm-home .hero-visual { min-height:400px; border-radius:18px; }
  .fm-home .hero-visual figcaption { left:24px; right:25px; bottom:25px; }
  .fm-home .proof { gap:22px; }
  .fm-home .intro-split { gap:30px; }
  .fm-home .feature { padding-block:74px; }
  .fm-home .feature h2 { font-size:clamp(5rem,18vw,7rem); }
  .fm-home .feature-grid { gap:40px; }
  .fm-premium .project-card { border-radius:16px; }
  .fm-premium .project-top { min-height:155px; padding:23px; }
  .fm-premium .project-body { padding:25px; }
  .fm-premium .expertise-row:hover { padding-left:0; }
  .fm-premium .footer-grid { padding-top:55px; }
  .fm-back-to-top { width:44px; height:44px; right:14px; bottom:14px; }
}
@media (prefers-reduced-motion:reduce) {
  .fm-premium *, .fm-premium *::before, .fm-premium *::after, .fm-back-to-top {
    scroll-behavior:auto!important; animation:none!important; transition:none!important;
  }
  html.fm-motion-ready .fm-premium .fm-reveal { opacity:1; transform:none; }
}


/* F&M Premium v1.1 — high-contrast hero rollout */
.fm-home .hero {
  position:relative;
  background:#111111;
  box-shadow:0 0 0 100vmax #111111;
  clip-path:inset(0 -100vmax);
}
.fm-home .hero::before {
  content:""; pointer-events:none; position:absolute; inset:0 -10vw 0 45%;
  opacity:.58; background:radial-gradient(ellipse at 70% 26%,rgba(160,24,31,.34),transparent 50%);
}
.fm-home .hero-copy { z-index:2; }
.fm-home .hero-copy h1 { color:#ffffff; }
.fm-home .hero-copy h1 em {
  color:#F28493;
  background:linear-gradient(95deg,#FCB1BD 0%,#E25A6E 76%,#F17E90 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.fm-home .hero .eyebrow { color:#F098A4; }
.fm-home .hero-copy p { color:#D6CED0; }
.fm-home .hero-signature { color:#BDB0B5; }
.fm-home .hero-signature .short-line { background:#E78492; }
.fm-home .hero-actions .text-link { color:#fff; border-bottom-color:#E98594; }
.fm-home .hero-actions .text-link:hover { color:#F3A6B0; }
.fm-home .hero-visual { border:1px solid rgba(255,255,255,.13); box-shadow:0 38px 100px -49px rgba(0,0,0,.75); }
.fm-home .proof { position:relative; z-index:1; background:#fff; }
@media (max-width:700px) {
  .fm-home .hero::before { inset:0 -10vw 25% 10%; }
  .fm-home .hero { padding-top:65px; padding-bottom:58px; }
  .fm-home .hero-visual { min-height:390px; }
}
