/* Global Impact — theme-level fixes layered over the per-page sheets (loaded last).
   1) 44px touch targets without moving anything (negative margins cancel the added padding)
   2) two overflow defects found in the pre-deploy render pass
   3) WordPress admin bar must not cover the fixed nav */

.navlinks a, .footer-links a, footer nav a, footer ul a, .foot a, .foot-bottom nav a {
  display: inline-block; padding-top: 15px; padding-bottom: 15px; margin-top: -15px; margin-bottom: -15px;
}
.tlink, .text-link, .textlink, a.arrow { display: inline-block; padding-top: 15px; padding-bottom: 15px; margin-top: -15px; margin-bottom: -15px; }
body.gi-insights h3 a, .article h3 a, .latest h3 a { display: inline-block; padding-top: 7px; padding-bottom: 7px; margin-top: -7px; margin-bottom: -7px; }
.nav .brand, .brand { display: inline-flex; align-items: center; min-height: 44px; }
.nav-cta, .nav .cta { min-height: 44px; box-sizing: border-box; }
.menu summary { display: flex; align-items: center; min-height: 44px; box-sizing: border-box; }
.drop a { min-height: 44px; box-sizing: border-box; }
.closing-field input, .closing-field textarea, .closing-contact button { min-height: 44px; box-sizing: border-box; }

/* Closed mobile menus still laid out their CTA (white-space:nowrap) 2px past the viewport on phones */
html, body { overflow-x: clip; }
.menu:not([open]) .drop { display: none; }
.drop .nav-cta { white-space: normal; max-width: 100%; box-sizing: border-box; padding: 14px 19px; }

/* Insights: desktop CTA was still rendered on phones (the source sheet has a broken `.nav>{}` rule just before it) */
@media (max-width: 760px) { body.gi-insights .nav > .nav-cta { display: none; } }

/* Simon Dery: three fixed-ratio book cubes overflow between 981px and 1100px (min-content widths) */
@media (min-width: 981px) and (max-width: 1180px) {
  body.gi-simon-dery .books { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.gi-simon-dery .book { min-width: 0; aspect-ratio: auto; }
  body.gi-simon-dery .book h3, body.gi-simon-dery .book p, body.gi-simon-dery .book .principle { max-width: 100%; }
  body.gi-simon-dery .book h3 { font-size: clamp(26px, 2.4vw, 34px); }
}

/* Home: the ported mobile menu needs its own surface (home has no --black token) and the top-right CTA
   must yield to it on phones — the hero carries the same CTA 300px lower */
body.gi-home .nav .drop { background: #0d1722; top: 80px; }
@media (max-width: 640px) { body.gi-home .nav .drop { top: 72px; } }
@media (max-width: 760px) {
  body.gi-home .nav > .cta { display: none; }
  body.gi-home .menu { margin-left: auto; }
}

body.admin-bar .nav { margin-top: 32px; }
@media (max-width: 782px) { body.admin-bar .nav { margin-top: 46px; } }

/* About — team portraits: 112px desktop / 96px phones (client asked for larger faces, 2026-10-12) */
body.gi-about .member { grid-template-columns: minmax(220px, .5fr) minmax(0, .5fr); }
body.gi-about .team-person { grid-template-columns: 112px minmax(0, 1fr); gap: 22px; }
body.gi-about .photo-slot { width: 112px; height: 112px; }
@media (max-width: 980px) {
  body.gi-about .member { grid-template-columns: 1fr; }
  body.gi-about .team-person { grid-template-columns: 96px minmax(0, 1fr); gap: 18px; }
  body.gi-about .photo-slot { width: 96px; height: 96px; }
}

/* ===== UX pass 2026-10-12 (no copy changes) ===== */
/* Phone readability: body-size text ≥16px, eyebrow labels ≥12px, inline text links ≥13px */
@media (max-width: 640px) {
  .dotlist li, .phase-card p, .decision-block p, article.member p, .team-lead .body p, .def p, .entry-spread p,
  .direction-copy p, article.book p, article.case p, .route p, a.book p, a.book .principle, .state-tile p,
  .company-front-block p, .copy p, .answer p, .misread-intro-copy p, .proposition-copy p { font-size: 16px !important; line-height: 1.55 !important; }
  .eyebrow, .label, .list-label, .commitment, .role, .meta, .book-lens, .side .label, .fig span, .idx, .loc,
  .foot-bottom span, .foot span, .office-inline span, .state-tile .eye { font-size: 12px !important; }
  .hero-sub { font-size: 15px !important; line-height: 1.5 !important; }
  .text-link, .textlink, .tlink, .footer-links a, footer nav a { font-size: 13px !important; }
}
/* Secondary copy was set at 64–68% white; lift to 82% so lists and definitions read as content, not captions */
.def p, .split-gap p, .direction-copy p, .dotlist.fp-not li, .travels-lead .lede.mt { color: rgba(255,255,255,.82) !important; }

/* Scroll snapping fights finger scrolling on phones and is a motion-sensitivity trigger */
@media (max-width: 1023px), (prefers-reduced-motion: reduce) {
  html, body, main { scroll-snap-type: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal, .rv { opacity: 1 !important; transform: none !important; }
}

/* Keyboard: visible focus everywhere, skip link for screen-reader / keyboard users */
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.gi-skip { position: absolute; left: 16px; top: -100px; z-index: 1000; display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; background: #fff; color: #0a0a0a; font: 600 14px/1 Inter, sans-serif; text-decoration: none; }
.gi-skip:focus { top: 16px; outline: 2px solid #0a0a0a; }

/* ===== Pre-launch fix pass 2026-10-13 (no copy changes) ===== */
/* 1. How We Work Phase 2 sits on white: the earlier lift made its "may still not need" list white-on-white */
.phase-build .dotlist.fp-not li { color: var(--muted, #5f5f5f) !important; }

/* 7. Labels below 11px → readable; near-miss contrast greys/golds darkened on light grounds */
.closing-field label { font-size: 12px !important; letter-spacing: .12em !important; color: rgba(255,255,255,.72) !important; }
body.gi-how-we-work .eyebrow, body.gi-how-we-work .list-label { font-size: 11.5px !important; }
body.gi-how-we-work .phase-card .commitment { font-size: 11.5px !important; }
body.gi-simon-dery .label, body.gi-simon-dery .book .book-ref { font-size: 11.5px !important; }
body.gi-simon-dery .tlink { font-size: 12px !important; }
body.gi-simon-dery .w { --muted: #5e5e5e; }
.article .label, .about-label, .capital-nr { color: #5f5f5f !important; }
.capability-block .eyebrow, .company-front-block .eyebrow { color: #6f6046 !important; }
.books .book-lens { color: #7c5c22 !important; font-size: 11.5px !important; }

/* 8. Long pages: content panels sized to their content, heroes keep the full screen */
@media (min-width: 761px) {
  body.gi-us-expansion .panel, body.gi-us-expansion .statement.opening-statement, body.gi-us-expansion .closing,
  body.gi-international-expansion .panel:not(.closing) { min-height: 0 !important; padding-top: clamp(96px, 12vh, 140px) !important; padding-bottom: clamp(96px, 12vh, 140px) !important; }
}
@media (max-width: 760px) {
  section:not(.hero):not([class*="hero"]):not(.leave) { min-height: 0 !important; }
  .closing { padding-top: 72px !important; padding-bottom: 72px !important; }
  #network { padding-bottom: 32px; }
}
/* 8b. Tight spots: headline → first sentence, pull-quote → link */
.leave-copy h2 { margin-bottom: clamp(20px, 2.4vw, 32px) !important; }
.phase .statement + .textlink, .phase .objective + .textlink { margin-top: 32px !important; }

/* 9. Team portraits read as one set: shared monochrome grade, colour returns on hover */
.photo-slot img { filter: grayscale(1) contrast(1.06) brightness(1.02); transition: filter .35s ease; }
.member:hover .photo-slot img, .member:focus-within .photo-slot img { filter: none; }
@media (hover: none) { .photo-slot img { filter: grayscale(.85) contrast(1.05); } }

/* 4. Phone header: wordmark + Menu only; the CTA lives in the menu and in a slim bar after the first screen */
@media (max-width: 760px) {
  .nav > .nav-cta, .nav > .cta { display: none !important; }
  .nav .menu { margin-left: auto !important; }
}
.gi-ctabar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; display: none; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(10,10,10,.94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-top: 1px solid rgba(255,255,255,.12); transform: translateY(110%); transition: transform .28s cubic-bezier(.2,.8,.2,1); }
.gi-ctabar a { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 0 18px; background: #fff; color: #0a0a0a; font: 700 14px/1 Inter, sans-serif; letter-spacing: .01em; text-decoration: none; }
.gi-ctabar.show { transform: none; }
@media (max-width: 760px) { .gi-ctabar { display: block; } body.gi-has-ctabar footer, body.gi-has-ctabar .gi-footer { padding-bottom: 88px !important; } }
@media (prefers-reduced-motion: reduce) { .gi-ctabar { transition: none; } }

/* 2. Contact form: stacked, readable, errors beside the field */
.closing-contact { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 30px 36px !important; align-items: start !important; max-width: 920px; }
.closing-contact > .closing-error, .closing-contact > .closing-field:nth-of-type(4), .closing-field.closing-message, .closing-contact > button { grid-column: 1 / -1 !important; }
.closing-field input, .closing-field textarea { font-size: 17px !important; padding: 10px 0 12px !important; color: #fff; }
.closing-field textarea { min-height: 132px !important; line-height: 1.5; }
.closing-field input:focus, .closing-field textarea:focus { border-bottom-color: #fff !important; outline: none; }
.closing-field input:focus-visible, .closing-field textarea:focus-visible { outline: 2px solid rgba(255,255,255,.9); outline-offset: 4px; }
.closing-field [aria-invalid="true"] { border-bottom-color: #ff9b8a !important; }
.closing-field .gi-field-error { display: block; margin-top: 8px; font-size: 13px; line-height: 1.4; color: #ffb4a6; }
.closing-contact > button { justify-self: start; min-width: 200px; min-height: 52px !important; padding: 0 28px !important; font-size: 13px !important; letter-spacing: .12em !important; background: #fff !important; color: #0a0a0a !important; border-color: #fff !important; cursor: pointer; transition: opacity .2s ease; }
.closing-contact > button:hover { opacity: .88; }
.closing-contact > button[aria-busy="true"] { opacity: .6; cursor: progress; }
.closing-error { margin: 0; padding: 14px 16px; border-left: 2px solid #ff9b8a; background: rgba(255,155,138,.08); font-size: 15px; line-height: 1.5; color: #ffd6cf; }
.closing-sent { max-width: 720px; }
@media (max-width: 760px) { .closing-contact { grid-template-columns: 1fr !important; gap: 26px !important; } .closing-contact > button { width: 100%; } }

/* 6. One footer everywhere */
.gi-footer { background: #0a0a0a; color: rgba(255,255,255,.66); border-top: 1px solid rgba(255,255,255,.1); padding: clamp(56px, 7vw, 88px) 0 32px; font: 400 14px/1.5 Inter, ui-sans-serif, -apple-system, "Segoe UI", sans-serif; }
.gi-footer__inner { width: min(1680px, calc(100% - 2 * clamp(20px, 4vw, 72px))); margin: 0 auto; }
.gi-footer__top { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 48px; padding-bottom: 48px; }
.gi-footer__brand { font-size: 24px; font-weight: 750; letter-spacing: .03em; text-transform: uppercase; color: #fff; text-decoration: none; display: inline-flex; min-height: 44px; align-items: center; }
.gi-footer__brand span { font-weight: 400; opacity: .7; margin-left: .22em; }
.gi-footer__loc { margin: 8px 0 0; font-size: 14px; }
.gi-footer__h { margin: 0 0 14px; font-size: 11.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.5); }
.gi-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.gi-footer ul a { display: inline-flex; align-items: center; min-height: 40px; color: rgba(255,255,255,.82); text-decoration: none; font-size: 15px; }
.gi-footer ul a:hover { color: #fff; }
.gi-footer__bottom { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.1); padding-top: 22px; font-size: 13px; }
@media (max-width: 760px) { .gi-footer__top { grid-template-columns: 1fr; gap: 32px; } }

/* 5. Insights book cards are links (whole card clickable) */
body.gi-insights article.book { position: relative; transition: transform .25s ease; }
body.gi-insights article.book .gi-card-link { color: inherit; text-decoration: none; }
body.gi-insights article.book .gi-card-link::after { content: ""; position: absolute; inset: 0; }
body.gi-insights article.book:hover { transform: translateY(-3px); }
body.gi-insights article.book:hover h3 { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }

/* U.S. Expansion "The meeting": desktop two-column rule outranked the phone rule, leaving an 11px text column */
@media (max-width: 900px) { body.gi-us-expansion .meeting-milestone { grid-template-columns: 1fr !important; gap: 32px !important; } }

/* ===== Phone proportions pass 2026-10-13 ===== */
@media (max-width: 760px) {
  /* International intro: the 12-column desktop grid survived on phones (text squeezed into ~177px) */
  body.gi-international-expansion .opening-panel .grid { display: flex !important; flex-direction: column !important; gap: 28px !important; width: auto !important; }
  body.gi-international-expansion .opening-panel .statement-text,
  body.gi-international-expansion .opening-panel .opening-body,
  body.gi-international-expansion .opening-visual { grid-column: auto !important; grid-row: auto !important; max-width: none !important; width: 100% !important; }
  body.gi-international-expansion .opening-panel .statement-text { font-size: clamp(26px, 7.4vw, 32px) !important; line-height: 1.22 !important; }
  body.gi-international-expansion .opening-visual { min-height: 0 !important; max-height: none !important; aspect-ratio: 4 / 3 !important; }
  body.gi-international-expansion .opening-visual img { width: 100%; height: 100%; object-fit: cover; }

  /* U.S. proposition: copy had no left gutter */
  #proposition .proposition-layout { padding-left: 20px !important; padding-right: 20px !important; }
  #proposition .proposition-copy { width: 100% !important; padding: 0 !important; }

  /* Display headings capped so a single word never fills the screen */
  h1.display, h2.display, .display { font-size: min(var(--gi-cap, 13.2vw), 52px) !important; line-height: 1.02 !important; }
  .milestone h3, .meeting-milestone h3 { font-size: min(12.5vw, 48px) !important; }
  .hero-name { font-size: min(15vw, 58px) !important; }

  /* Text that sits on photos gets a real scrim on phones (faces were showing through the copy) */
  body.gi-us-expansion .misread-intro::after { opacity: .32 !important; }
  body.gi-simon-dery .hero .hero-message, body.gi-simon-dery .hero .hero-lead { text-shadow: 0 2px 18px rgba(0,0,0,.65); }
  body.gi-simon-dery .hero::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(180deg, rgba(5,5,5,.25) 0%, rgba(5,5,5,.55) 38%, rgba(5,5,5,.86) 100%); }
  body.gi-simon-dery .hero > * { position: relative; z-index: 1; }
}

/* International intro (tablet + phone): photo and text were siblings in a horizontal flex row → stack them */
@media (max-width: 1080px) {
  body.gi-international-expansion .opening-panel { flex-direction: column !important; align-items: stretch !important; }
  body.gi-international-expansion .opening-art { width: 100% !important; flex: none !important; }
  body.gi-international-expansion .opening-art img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
  body.gi-international-expansion .opening-panel > .container { width: min(var(--max, 1680px), calc(100% - 2 * var(--pad, 20px))) !important; margin: 40px auto 0 !important; }
}
@media (max-width: 760px) {
  body.gi-international-expansion .opening-panel .statement-text { font-size: clamp(23px, 6.4vw, 27px) !important; line-height: 1.3 !important; }
  body.gi-simon-dery .hero::after { background: linear-gradient(180deg, rgba(5,5,5,.08) 0%, rgba(5,5,5,.32) 30%, rgba(5,5,5,.72) 62%, rgba(5,5,5,.9) 100%); }
}
@media (max-width: 760px) {
  /* International: 12-col section grids keep 28px gaps on a 280px phone → 8px overflow. One column on phones. */
  body.gi-international-expansion section > .container { grid-template-columns: minmax(0, 1fr) !important; column-gap: 0 !important; }
  body.gi-international-expansion section > .container > * { grid-column: 1 / -1 !important; min-width: 0; }
  /* heading cap must outrank page rules that pin sizes with !important */
  :is(h1, h2).display:not(#gi-none), .choosing-lead h2:not(#gi-none) { font-size: min(13.2vw, 52px) !important; }
}
/* Simon hero: designer's own overlay is restored (responsive-image fix), so the extra phone scrim double-darkened the portrait */
@media (max-width: 760px) { body.gi-simon-dery .hero::after { content: none !important; } }

/* Home Leadership (Simon) on phones: photo layer tiled down the 1,600px section and was zoomed to his ear.
   Pin every layer: overlays fill the box, the photo sits once at the top and fades into the section colour. */
@media (max-width: 760px) {
  .simon::before {
    background-repeat: no-repeat !important;
    background-size: 100% 100%, 100% 100%, auto 620px !important;
    background-position: 0 0, 0 0, 22% 0 !important;
    -webkit-mask-image: none; mask-image: none;
  }
  .simon::after { content: ""; position: absolute; left: 0; right: 0; top: 380px; height: 260px; z-index: 0; pointer-events: none; background: linear-gradient(180deg, rgba(16,25,38,0) 0%, #101926 100%); }
  .simon > * { position: relative; z-index: 1; }
}
/* Phone gutters where the designer's sections drop the container padding */
@media (max-width: 760px) {
  #simon .container { padding-left: 20px !important; padding-right: 20px !important; box-sizing: border-box; width: 100% !important; max-width: none !important; }
  .simon .simon-copy { padding-left: 0 !important; padding-right: 0 !important; width: 100% !important; max-width: none !important; }
  body.gi-us-expansion #business .container { padding-left: 20px !important; padding-right: 20px !important; box-sizing: border-box; width: 100% !important; }
}

/* ===== Client answers 2026-10-13 ===== */
.gi-hero-subline { font-size: clamp(18px, 1.5vw, 23px) !important; line-height: 1.4 !important; color: #fff !important; opacity: 1 !important; margin: 18px 0 10px !important; max-width: 620px; }
.gi-cases-note { margin: 36px 0 0; font-size: 15px; line-height: 1.5; color: #5f5f5f; }
.gi-reach { margin-top: 14px; font-size: 15px; font-weight: 600; color: rgba(255,255,255,.9); }
/* Coming Soon reads exactly like the Buy on Amazon link beside it (Boss 10-13), just not clickable */
.gi-soon { cursor: default; }
.book .text-link.gi-soon, .book .text-link.gi-amazon { display: block; border: 0; border-top: 1px solid rgba(13,23,34,.1); padding: 18px 0 13px; min-height: 0; margin-top: auto; opacity: 1; }
body.gi-insights article.book .tlink.gi-soon { display: inline-flex; margin-top: 16px; }
.gi-amazon { font-weight: 700; }
body.gi-insights article.book .tlink.gi-amazon { display: inline-flex; margin-top: 16px; position: relative; z-index: 2; }
body.gi-insights article.book:hover { transform: none; }
body.gi-insights article.book:hover h3 { text-decoration: none; }
.gi-contact-direct { margin-top: 28px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.16); max-width: 440px; }
.gi-contact-direct p { font-size: 15px !important; line-height: 1.55; color: rgba(255,255,255,.78) !important; margin: 0 0 14px !important; }
.gi-contact-direct ul { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 2px; }
.gi-contact-direct a { display: inline-flex; align-items: center; min-height: 44px; color: #fff; font-size: 17px; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.28); }
.gi-contact-direct a:hover { border-bottom-color: #fff; }
.gi-contact-direct .gi-calendly { font-weight: 700; }
.gi-contact-direct .gi-confidential { font-size: 13.5px !important; color: rgba(255,255,255,.6) !important; }
.closing-field select { width: 100%; min-height: 44px; border: 0; border-bottom: 1px solid rgba(255,255,255,.24); background: transparent; color: #fff; font: inherit; font-size: 17px; padding: 10px 0 12px; border-radius: 0; -webkit-appearance: none; appearance: none; background-image: linear-gradient(45deg, transparent 50%, rgba(255,255,255,.7) 50%), linear-gradient(135deg, rgba(255,255,255,.7) 50%, transparent 50%); background-position: calc(100% - 14px) 52%, calc(100% - 8px) 52%; background-size: 6px 6px; background-repeat: no-repeat; cursor: pointer; }
.closing-field select option { color: #0a0a0a; }
.closing-field select:focus { outline: none; border-bottom-color: #fff; }
.closing-contact > .closing-field:nth-of-type(4) { grid-column: auto !important; }
.closing-contact > .closing-field:nth-of-type(5), .closing-field.closing-message { grid-column: 1 / -1 !important; }

/* Home hero loop (Seedance 2.5) */
.hero-northridge .gi-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; opacity: 0; transition: opacity 1.2s ease; pointer-events: none; }
.hero-northridge .gi-hero-video.is-playing { opacity: 1; }
.hero-northridge .hero-shade, .hero-northridge .hero-content { position: relative; }
.hero-northridge .hero-shade { position: absolute; z-index: 1; }
.hero-northridge .hero-content { z-index: 2; }
@media (prefers-reduced-motion: reduce) { .hero-northridge .gi-hero-video { display: none; } }
/* field grid after Company + Target Market were added: name|email, company|market, subject, message */
.closing-contact > .closing-field:nth-of-type(4), .closing-contact > .closing-field:nth-of-type(5) { grid-column: auto !important; }
.closing-contact > .closing-field:nth-of-type(6), .closing-contact > .closing-field.closing-message { grid-column: 1 / -1 !important; }

/* legal links in the footer bar (10-13) */
.gi-footer__legal { display: flex; flex-wrap: wrap; column-gap: 22px; }
.gi-footer__legal a { display: inline-flex; align-items: center; min-height: 44px; margin: -13px 0; color: inherit; opacity: .8; }
.gi-footer__legal a:hover { opacity: 1; text-decoration: underline; }
/* inline links in legal/plain pages: grow the tap area to 44px without moving the text */
.gi-plain__content p a, .gi-plain__content li a { padding: 12px 0; }

/* cookie consent banner (10-13) */
.gi-consent { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 10000; max-width: 760px; margin: 0 auto; display: flex; align-items: center; gap: 20px; padding: 18px 20px; background: #0b0f14; color: #f3efe7; border: 1px solid rgba(255,255,255,.14); box-shadow: 0 18px 50px rgba(0,0,0,.35); font: 400 14.5px/1.5 Inter, system-ui, sans-serif; }
.gi-consent[hidden] { display: none; }
.gi-consent p { margin: 0; flex: 1; }
.gi-consent a { color: inherit; text-decoration: underline; text-underline-offset: 3px; display: inline-block; padding: 12px 0; margin: -12px 0; }
.gi-consent__actions { display: flex; gap: 10px; flex-shrink: 0; }
.gi-consent button { min-height: 44px; padding: 0 20px; font: 700 12px/1 Inter, system-ui, sans-serif; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; border: 1px solid rgba(255,255,255,.5); background: transparent; color: #f3efe7; }
.gi-consent .gi-consent__yes { background: #f3efe7; color: #0b0f14; border-color: #f3efe7; }
.gi-consent button:focus-visible { outline: 2px solid #c9a35c; outline-offset: 2px; }
@media (max-width: 640px) { .gi-consent { left: 12px; right: 12px; bottom: 12px; flex-direction: column; align-items: stretch; gap: 14px; padding: 16px; } .gi-consent__actions button { flex: 1; } }
.gi-cookie-settings { cursor: pointer; }
