:root {
  --fgm-ink: #14161c;
  --fgm-paper: #f3f0e8;
  --fgm-graphite: #0e1014;
  --fgm-blue: #1a3f8f;
  --fgm-gold: #a68458;
  --fgm-white: #fffcf8;
  --fgm-muted: #5e636c;
  --fgm-line: rgba(20, 22, 28, 0.14);
  --fgm-wide: 76rem;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--fgm-paper); color: var(--fgm-ink); font: 1.05rem/1.6 Figtree, "Segoe UI", sans-serif; }
img { max-width: 100%; height: auto; }
a { color: inherit; }
.fgm-skip { position: absolute; left: 1rem; top: -4rem; background: var(--fgm-white); padding: 0.4rem 0.7rem; z-index: 8; }
.fgm-skip:focus { top: 0.6rem; }

.fgm-header, .fgm-section, .fgm-page, .fgm-footer { width: min(var(--fgm-wide), calc(100% - 3rem)); margin-inline: auto; }
.fgm-header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.5rem; min-height: 5rem; position: relative; }
.fgm-brand, .fgm-brand a { display: flex; align-items: center; gap: 0.65rem; color: inherit; text-decoration: none; font-family: Syne, sans-serif; font-weight: 800; letter-spacing: 0.06em; }
.fgm-brand .wp-block-site-logo:not(:has(img)) { display: none; }
.fgm-nav, .wp-block-navigation__container { display: flex; gap: 1.35rem; align-items: center; list-style: none; margin: 0; padding: 0; }
.fgm-nav a, .wp-block-navigation-item__content { color: var(--fgm-ink); text-decoration: none; font-size: 0.95rem; }
.fgm-nav a:hover, .wp-block-navigation-item__content:hover { color: var(--fgm-blue); }
.fgm-tools { display: flex; gap: 0.55rem; align-items: center; }
.fgm-button, .wp-block-button__link {
  display: inline-flex; align-items: center; min-height: 2.7rem; padding: 0.45rem 1.05rem;
  background: var(--fgm-blue); color: var(--fgm-white); text-decoration: none; border-radius: 999px; border: 1px solid var(--fgm-blue);
}
.fgm-button-quiet, .is-style-outline .wp-block-button__link { background: transparent; color: var(--fgm-ink); border-color: var(--fgm-line); }

.fgm-mega { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--fgm-white); border-top: 1px solid var(--fgm-line); padding: 1.4rem 0 1.6rem; z-index: 6; }
.fgm-has-mega:hover .fgm-mega, .fgm-has-mega:focus-within .fgm-mega { display: block; }
.fgm-mega-grid { width: min(var(--fgm-wide), calc(100% - 3rem)); margin: 0 auto; display: grid; grid-template-columns: 1.2fr 1fr 1.1fr; gap: 2rem; }
.fgm-mega h2 { margin: 0 0 0.6rem; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; }
.fgm-mega a { display: block; text-decoration: none; padding: 0.25rem 0; }
.fgm-mega-feature { border-left: 1px solid var(--fgm-line); padding-left: 1.4rem; }
.fgm-mega-feature strong { font-family: Syne, sans-serif; font-size: 1.6rem; display: block; }

.fgm-hero {
  width: 100%;
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 3rem;
  align-items: end;
  padding: 5.5rem max(1.5rem, calc((100% - var(--fgm-wide)) / 2)) 4.5rem;
  background: var(--fgm-graphite);
  color: var(--fgm-white);
}
.fgm-kicker { margin: 0 0 1.1rem; color: var(--fgm-gold); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.fgm-hero h1, .fgm-display { margin: 0; font-family: Syne, sans-serif; font-weight: 800; font-size: clamp(4.6rem, 9vw, 8.4rem); line-height: 0.86; letter-spacing: -0.05em; }
.fgm-lede { max-width: 28rem; margin-top: 1.4rem; color: rgba(255, 252, 248, 0.76); font-size: 1.2rem; }
.fgm-actions { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 1.8rem; }
.fgm-hero .fgm-button-quiet { color: var(--fgm-white); border-color: rgba(255, 252, 248, 0.28); }
.fgm-stage { display: grid; gap: 0.7rem; align-self: stretch; }
.fgm-frame { padding: 1rem 1.1rem; border: 1px solid rgba(255, 252, 248, 0.16); background: #171a20; }
.fgm-frame:first-child { margin-top: 2.5rem; }
.fgm-frame:last-child { margin-left: 12%; }
.fgm-frame span { color: var(--fgm-gold); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; }
.fgm-frame strong { display: block; margin-top: 0.35rem; font-family: Syne, sans-serif; font-size: 1.45rem; }
.fgm-frame p { margin: 0.3rem 0 0; color: rgba(255, 252, 248, 0.68); }

.fgm-section { padding: 5rem 0; }
.fgm-section h2, .fgm-page h1 { font-family: Syne, sans-serif; letter-spacing: -0.04em; line-height: 0.95; }
.fgm-section h2 { margin: 0 0 2rem; font-size: clamp(2.6rem, 5vw, 4.2rem); }
.fgm-page { padding: 4rem 0 5rem; }
.fgm-page h1 { margin: 0 0 1rem; font-size: clamp(3.4rem, 7vw, 6rem); }

.fgm-index { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 3rem; }
.fgm-index-list { list-style: none; margin: 2.2rem 0 0; padding: 0; }
.fgm-index-list li { display: grid; grid-template-columns: 3.2rem 1fr; gap: 0.8rem; padding: 0.95rem 0; border-top: 1px solid var(--fgm-line); }
.fgm-index-list span { font-family: Syne, sans-serif; color: var(--fgm-gold); }
.fgm-index-list h3 { margin: 0; font-size: 1.35rem; }
.fgm-index-list p { margin: 0.2rem 0 0; color: var(--fgm-muted); }
.fgm-band .fgm-button-quiet { color: var(--fgm-white); border-color: rgba(255, 252, 248, 0.28); }
.fgm-statement { font-family: Syne, sans-serif; font-size: clamp(2rem, 3vw, 2.8rem); line-height: 1.05; margin: 0; }

.fgm-feature { display: grid; grid-template-columns: 1.15fr 0.85fr; min-height: 28rem; background: var(--fgm-graphite); color: var(--fgm-white); }
.fgm-feature-copy { padding: 3rem; align-self: end; }
.fgm-feature h3 { margin: 0.4rem 0; font-family: Syne, sans-serif; font-size: clamp(2.8rem, 5vw, 4.5rem); line-height: 0.92; }
.fgm-sheet {
  margin: 2.4rem 2.4rem 2.4rem 0;
  align-self: center;
  background: #12151b;
  border: 1px solid rgba(255, 252, 248, 0.14);
  padding: 1.05rem 1.15rem 0.35rem;
}
.fgm-sheet-bar { display: flex; justify-content: space-between; color: var(--fgm-gold); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; padding-bottom: 0.7rem; border-bottom: 1px solid rgba(255, 252, 248, 0.12); }
.fgm-sheet-query { margin: 0.85rem 0 0.35rem; padding: 0.55rem 0.7rem; border: 1px solid rgba(255, 252, 248, 0.16); color: rgba(255, 252, 248, 0.55); font-size: 0.92rem; }
.fgm-sheet ul { list-style: none; margin: 0; padding: 0; }
.fgm-sheet li { display: grid; grid-template-columns: 2rem 1fr auto; gap: 0.65rem; align-items: baseline; padding: 0.72rem 0; border-top: 1px solid rgba(255, 252, 248, 0.1); }
.fgm-sheet em { font-style: normal; font-family: Syne, sans-serif; color: var(--fgm-gold); }
.fgm-sheet strong { font-family: Syne, sans-serif; font-weight: 700; }
.fgm-sheet li span { color: rgba(255, 252, 248, 0.5); font-size: 0.85rem; }
.fgm-console { font-size: 0.95rem; }
.fgm-console dl { margin: 1.2rem 0 0; }
.fgm-console div { display: grid; grid-template-columns: 8rem 1fr; gap: 0.6rem; padding: 0.7rem 0; border-top: 1px solid rgba(255, 252, 248, 0.16); }
.fgm-console dt { color: var(--fgm-gold); font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; }
.fgm-console dd { margin: 0; }
.fgm-status { color: var(--fgm-gold); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; }

.fgm-split { display: grid; grid-template-columns: 1.3fr 0.7fr; }
.fgm-split article { padding: 3rem 2rem; }
.fgm-split article:first-child { background: var(--fgm-white); }
.fgm-split article:last-child { background: var(--fgm-ink); color: var(--fgm-white); }
.fgm-split h2, .fgm-split h3 { font-family: Syne, sans-serif; font-size: clamp(2rem, 4vw, 3.2rem); margin: 0 0 0.8rem; letter-spacing: -0.04em; line-height: 0.95; }

.fgm-lines article { display: grid; grid-template-columns: 8rem 1fr 1.4fr; gap: 1rem; align-items: baseline; padding: 1.1rem 0; border-top: 1px solid var(--fgm-ink); }
.fgm-lines h2, .fgm-lines h3 { margin: 0; font-family: Syne, sans-serif; font-size: 1.5rem; font-weight: 700; }
.fgm-lines p { margin: 0; color: var(--fgm-muted); }

.fgm-resources { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--fgm-line); }
.fgm-resources a { display: block; padding: 1.4rem 1rem 1.6rem 0; text-decoration: none; border-right: 1px solid var(--fgm-line); }
.fgm-resources a:last-child { border-right: 0; }
.fgm-resources strong { display: block; font-family: Syne, sans-serif; font-size: 1.7rem; }

.fgm-band { background: var(--fgm-graphite); color: var(--fgm-white); padding: 5rem 0; }
.fgm-band h2 { font-family: Syne, sans-serif; font-size: clamp(2.8rem, 6vw, 5rem); line-height: 0.92; margin: 0 0 1rem; }

.fgm-footer { display: grid; grid-template-columns: 1.5fr repeat(4, 1fr); gap: 1.5rem; padding: 3rem 0 2.2rem; border-top: 1px solid var(--fgm-line); }
.fgm-footer h2 { font-family: Figtree, sans-serif; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; }
.fgm-footer a { text-decoration: none; }
.fgm-footer a:hover { color: var(--fgm-blue); }
.fgm-footer ul { list-style: none; margin: 0; padding: 0; }
.fgm-footer li { margin: 0.35rem 0; }
.fgm-contact-list { list-style: none; padding: 0; }
.fgm-contact-list li { display: grid; grid-template-columns: 11rem 1fr; gap: 1rem; padding: 0.85rem 0; border-top: 1px solid var(--fgm-line); }
.fgm-licence { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.fgm-licence button { font: inherit; min-height: 2.6rem; padding: 0.3rem 0.85rem; border: 1px solid var(--fgm-line); background: transparent; cursor: pointer; }
.fgm-licence button[aria-pressed="true"] { background: var(--fgm-ink); color: var(--fgm-white); }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible { outline: 2px solid var(--fgm-blue); outline-offset: 3px; }

@media (max-width: 980px) {
  .fgm-header { grid-template-columns: 1fr auto; }
  .fgm-nav, .wp-block-navigation__container { grid-column: 1 / -1; flex-wrap: nowrap; overflow-x: auto; }
  .fgm-sheet { margin: 0 1.2rem 1.6rem; }
  .fgm-hero, .fgm-index, .fgm-feature, .fgm-split, .fgm-footer, .fgm-resources, .fgm-mega-grid, .fgm-contact-list li, .fgm-lines article {
    grid-template-columns: 1fr;
  }
  .fgm-hero { padding-top: 3rem; }
  .fgm-hero h1 { font-size: clamp(3.4rem, 18vw, 5rem); }
  .fgm-frame:first-child, .fgm-frame:last-child { margin: 0; }
  .fgm-resources a { border-right: 0; border-bottom: 1px solid var(--fgm-line); }
  .fgm-mega { position: static; }
}

@media (max-width: 640px) {
  .fgm-header, .fgm-section, .fgm-page, .fgm-footer { width: min(100% - 1.5rem, var(--fgm-wide)); }
  .fgm-tools { gap: 0.35rem; }
  .fgm-button, .wp-block-button__link { min-height: 2.4rem; padding-inline: 0.8rem; }
}

.woocommerce ul.products { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
.woocommerce ul.products li.product { margin: 0; }
.woocommerce div.product .product_title, .woocommerce-page h1 { font-family: Syne, sans-serif; letter-spacing: -0.04em; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button { border-radius: 999px; background: var(--fgm-blue); color: var(--fgm-white); }
.woocommerce-cart table, .woocommerce-checkout form, .woocommerce-account .woocommerce { font: inherit; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
