/* ============ FGT theme stylesheet — classes referenced by patterns ============ */

/* --- Wordmark --- */
.fgt-wordmark { gap: 11px !important; align-items: baseline !important; }
.fgt-wordmark-name {
  font-family: var(--wp--preset--font-family--display);
  font-size: 27px; font-weight: 600; letter-spacing: 0.07em; line-height: 1;
}
.fgt-wordmark-suffix {
  font-size: 11px; letter-spacing: 0.19em; text-transform: uppercase;
  font-weight: 500; color: #7A8494; line-height: 1;
  border-left: 1px solid #CFC6B6; padding-left: 11px;
}
.fgt-wordmark.is-on-dark .fgt-wordmark-name { color: var(--wp--preset--color--paper); }
.fgt-wordmark.is-on-dark .fgt-wordmark-suffix { color: #7E8DA5; border-left-color: #3B4C69; }

/* --- Eyebrow (rule + label) --- */
.is-style-fgt-rule {
  width: 28px; height: 1px; margin: 0;
  background: var(--wp--preset--color--brass);
  border: none; opacity: 1;
}
.fgt-eyebrow-label {
  letter-spacing: 0.2em; text-transform: uppercase; font-weight: 600;
  color: #7A5A1F;
}
.fgt-on-dark .fgt-eyebrow-label, .fgt-eyebrow-label.fgt-on-dark { color: #C79646; }

/* --- Header / navigation --- */
.fgt-header { border-bottom: 1px solid var(--wp--preset--color--line); }
.fgt-header .wp-block-navigation a {
  font-size: 13.5px; letter-spacing: 0.04em; color: var(--wp--preset--color--muted);
  text-decoration: none; padding-bottom: 3px;
}
.fgt-header .wp-block-navigation .current-menu-item > a {
  color: var(--wp--preset--color--ink); font-weight: 500;
  border-bottom: 2px solid var(--wp--preset--color--brass);
}
.fgt-header .wp-block-navigation a:hover { color: var(--wp--preset--color--ink); }

/* --- Dark panels & numbered cards --- */
.is-style-fgt-panel-dark { background: var(--wp--preset--color--ink); }
.fgt-num {
  font-family: var(--wp--preset--font-family--display);
  font-size: 13px; letter-spacing: 0.14em; color: #C79646;
}
.fgt-num-light { color: #7A5A1F; font-size: 15px; }

/* 1px-gap grids on dark background (activities, digital commerce) */
.fgt-grid-dark { background: #2C3B57; gap: 1px !important; }
.fgt-grid-dark > .wp-block-group { background: var(--wp--preset--color--ink); }

/* 1px-gap grid on light background (sectors) */
.fgt-grid-light { background: var(--wp--preset--color--line); border: 1px solid var(--wp--preset--color--line); gap: 1px !important; }
.fgt-grid-light > .wp-block-group { background: var(--wp--preset--color--paper); }

/* --- Section framing --- */
.fgt-band { border-top: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); }
.fgt-rule-top-heavy { border-top: 2px solid var(--wp--preset--color--ink); }
.fgt-col-rule-left { border-left: 1px solid var(--wp--preset--color--line); padding-left: 48px; }
.fgt-card-rule-top { border-top: 1px solid var(--wp--preset--color--line); }

/* --- Company data block --- */
.fgt-company-data__row { display: flex; justify-content: space-between; gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.fgt-company-data__label { font-size: 14px; color: var(--wp--preset--color--muted); letter-spacing: 0.03em; }
.fgt-company-data__value { font-size: 14px; color: var(--wp--preset--color--ink); font-weight: 500; text-align: right; }
.fgt-company-data.is-layout-list .fgt-company-data__row { border-bottom: 1px solid var(--wp--preset--color--line); }
.fgt-company-data.is-layout-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 48px; }
.fgt-company-data.is-layout-grid .fgt-company-data__row { flex-direction: column; justify-content: flex-start; gap: 8px; border-bottom: none; border-top: 1px solid var(--wp--preset--color--line); }
.fgt-company-data.is-layout-grid .fgt-company-data__value { text-align: left; font-size: 17px; }
.fgt-company-data.is-layout-stack .fgt-company-data__row { border: none; padding: 0; display: block; }
.fgt-company-data.is-layout-stack { font-size: 13.5px; line-height: 1.85; }
.fgt-company-data.is-on-dark .fgt-company-data__label,
.fgt-company-data.is-on-dark .fgt-company-data__value { color: var(--wp--preset--color--on-dark); }
.fgt-company-data.is-on-dark .fgt-company-data__row { border-color: #1E2C42; }

/* --- Contact form --- */
.fgt-form { display: flex; flex-direction: column; gap: 18px; max-width: 560px; }
.fgt-form label { font-size: 13px; letter-spacing: 0.05em; font-weight: 500; color: var(--wp--preset--color--ink); display: block; margin-bottom: 6px; }
.fgt-form input[type="text"], .fgt-form input[type="email"], .fgt-form textarea {
  width: 100%; box-sizing: border-box; padding: 12px 14px; font: inherit;
  border: 1px solid var(--wp--preset--color--line); border-radius: 0;
  background: #fff; color: var(--wp--preset--color--ink);
}
.fgt-form input:focus, .fgt-form textarea:focus { outline: 2px solid var(--wp--preset--color--brass); outline-offset: 1px; }
.fgt-form .fgt-form-hp { position: absolute !important; left: -9999px !important; height: 1px; overflow: hidden; }
.fgt-form button {
  align-self: flex-start; cursor: pointer; border: none; border-radius: 0;
  background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper);
  padding: 15px 30px; font-size: 13.5px; letter-spacing: 0.06em; font-weight: 500; min-height: 44px;
}
.fgt-form button:hover { background: var(--wp--preset--color--ink-soft); }
.fgt-form-notice { padding: 14px 16px; font-size: 14.5px; }
.fgt-form-notice.is-success { background: #EAF3EA; color: #2F5D34; }
.fgt-form-notice.is-error { background: #F7ECEA; color: #8A3A2E; }

/* --- Footer --- */
.fgt-footer a { color: var(--wp--preset--color--on-dark); }
.fgt-footer a:hover { color: var(--wp--preset--color--paper); }
.fgt-footer-bottom { border-top: 1px solid #1E2C42; }

/* --- Misc --- */
.fgt-arrow-link { display: inline-flex; align-items: center; gap: 9px; font-size: 13.5px; letter-spacing: 0.04em; font-weight: 500; color: var(--wp--preset--color--ink); text-decoration: none; }
.fgt-kicker { font-size: 14px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--wp--preset--color--muted); font-weight: 500; }
.fgt-svg-panel svg { display: block; width: 100%; height: auto; }

/* ============ Motion layer: sticky header + micro-interactions ============ */

/* Sticky header with elevated state (no height change — zero layout shift) */
header.wp-block-template-part { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 100; }
.fgt-header { background: var(--wp--preset--color--paper); transition: box-shadow 0.25s ease; }
.fgt-header.is-scrolled { box-shadow: 0 8px 24px rgba(23, 35, 58, 0.07); }

@media (hover: hover) {
  /* Navigation: animated underline on non-current items */
  .fgt-header .wp-block-navigation a { position: relative; }
  .fgt-header .wp-block-navigation li:not(.current-menu-item) a::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
    background: var(--wp--preset--color--brass);
    transform: scaleX(0); transform-origin: left center; transition: transform 0.22s ease;
  }
  .fgt-header .wp-block-navigation li:not(.current-menu-item) a:hover::after { transform: scaleX(1); }

  /* Arrow links: arrow nudges forward when the wrapping row is hovered */
  .wp-block-group:has(> .fgt-arrow-link) svg { transition: transform 0.2s ease; }
  .wp-block-group:has(> .fgt-arrow-link):hover svg { transform: translateX(4px); }

  /* Buttons: subtle lift */
  .wp-element-button, .fgt-form button { transition: background-color 0.2s ease, transform 0.15s ease; }
  .wp-element-button:hover, .fgt-form button:hover { transform: translateY(-1px); }
  .wp-element-button:active, .fgt-form button:active { transform: translateY(0); }

  /* Dark grid cards: light up on hover, number warms */
  .fgt-grid-dark > .wp-block-group { transition: background-color 0.25s ease; }
  .fgt-grid-dark > .wp-block-group:hover { background: var(--wp--preset--color--ink-soft); }
  .fgt-grid-dark .fgt-num { transition: color 0.25s ease; }
  .fgt-grid-dark > .wp-block-group:hover .fgt-num { color: #E0B05E; }

  /* Light grid cells: brighten on hover */
  .fgt-grid-light > .wp-block-group { transition: background-color 0.25s ease; }
  .fgt-grid-light > .wp-block-group:hover { background: #FFFFFF; }

  /* Approach / contact cards: top rule warms to brass */
  .fgt-card-rule-top { transition: border-top-color 0.25s ease; }
  .fgt-card-rule-top:hover { border-top-color: var(--wp--preset--color--brass); }

  /* Footer links */
  .fgt-footer a { transition: color 0.2s ease; }
}

/* Reduced motion: kill every transition in the motion layer */
@media (prefers-reduced-motion: reduce) {
  .fgt-header, .fgt-header .wp-block-navigation a::after,
  .wp-element-button, .fgt-form button,
  .fgt-grid-dark > .wp-block-group, .fgt-grid-dark .fgt-num,
  .fgt-grid-light > .wp-block-group, .fgt-card-rule-top,
  .wp-block-group:has(> .fgt-arrow-link) svg, .fgt-footer a { transition: none !important; }
}

/* Focus visibility (never remove outline) */
a:focus-visible, button:focus-visible { outline: 2px solid var(--wp--preset--color--brass); outline-offset: 2px; }

/* Responsive helpers */
@media (max-width: 781px) {
  .fgt-col-rule-left { border-left: none; padding-left: 0; }
  .fgt-company-data.is-layout-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
}
