/* V2 big CTA: readable without a background image */
.gc-big-cta { background: #000; }
.gc-big-cta .sec-8-home-11__big-line { color: #fff; }
.gc-big-cta .sec-8-home-11__big-line:nth-child(odd) { color: #fff; }
.gc-big-cta .sec-8-home-11__type-wrap:nth-of-type(even) .sec-8-home-11__big-line { color: var(--gc-orange); }

/* DM Sans (the theme font), self-hosted: faster and no third-party requests */
@font-face { font-family: 'DM Sans'; font-style: normal; font-display: swap; font-weight: 100 1000; font-stretch: 100%;
  src: url('../fonts/dm-sans-latin-opsz-normal.woff2') format('woff2-variations'), url('../fonts/dm-sans-latin-opsz-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DM Sans'; font-style: normal; font-display: swap; font-weight: 100 1000;
  src: url('../fonts/dm-sans-latin-ext-opsz-normal.woff2') format('woff2-variations'), url('../fonts/dm-sans-latin-ext-opsz-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'DM Sans'; font-style: italic; font-display: swap; font-weight: 100 1000;
  src: url('../fonts/dm-sans-latin-opsz-italic.woff2') format('woff2-variations'), url('../fonts/dm-sans-latin-opsz-italic.woff2') format('woff2'); }

/* =========================================================================
   GrownCo Media — additions on top of the theme (main.css).
   Only new components and responsive fixes live here; the theme's look,
   fonts and colours are unchanged.
   ========================================================================= */

/* Accessibility --------------------------------------------------------- */
.gc-skip { position: absolute; left: 12px; top: -60px; z-index: 10000; background: var(--at-neutral-950); color: var(--at-neutral-0); padding: 10px 16px; border-radius: 8px; }
.gc-skip:focus { top: 12px; color: var(--at-neutral-0); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--at-theme-primary); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }

/* Logo ------------------------------------------------------------------ */
.gc-logo { color: inherit; }
.gc-logo-mark { font-size: 28px; line-height: 1; }
.gc-logo-img { height: 36px; width: auto; }
html[data-bs-theme=dark] .at-header-logo .gc-logo-img, html[data-bs-theme=dark] .at-offcanvas-logo .gc-logo-img { filter: none; }
.gc-logo-dark { display: none; }
html[data-bs-theme=dark] .gc-logo-light { display: none; }
html[data-bs-theme=dark] .gc-logo-dark { display: inline-block; }

/* Responsive big titles (the hero title used a fixed 110px and overflowed on tablets/phones) */
.gc-hero-title { font-size: clamp(38px, 8.6vw, 110px); line-height: 1.1; overflow-wrap: anywhere; }
.gc-big-title { font-size: clamp(48px, 10vw, 200px); line-height: 1; overflow-wrap: anywhere; }
.gc-service-title { font-size: clamp(44px, 7vw, 124px); }
.gc-post-title { font-size: clamp(34px, 4.6vw, 64px); letter-spacing: -0.02em; }
.gc-footer-big { overflow-wrap: anywhere; }
@media (max-width: 575.98px) { .gc-footer-big { font-size: 56px !important; } }

/* Brand names shown as wordmarks until real logo files are uploaded */
.gc-brand-word { display: inline-block; font-size: 26px; font-weight: 700; letter-spacing: -0.02em; white-space: nowrap; color: var(--at-neutral-900); opacity: .75; }
.brand-logo-slide .gc-brand-word { font-size: 22px; }

/* Comparison table ------------------------------------------------------ */
.gc-compare-table { border-top: 1px solid var(--at-neutral-100); }
.gc-compare-row { display: grid; grid-template-columns: 1.1fr 1fr 1.2fr; gap: 24px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--at-neutral-100); font-size: var(--at-fz-font-lg); }
.gc-compare-head { font-size: var(--at-fz-font-label); text-transform: uppercase; letter-spacing: .08em; color: var(--at-neutral-500); padding: 16px 0; }
.gc-compare-head .gc-compare-right { color: var(--at-theme-primary); font-weight: 700; }
.gc-compare-right { display: flex; gap: 10px; align-items: center; color: var(--at-neutral-900); }
.gc-compare-right svg { flex: 0 0 18px; color: var(--at-theme-primary); }
.gc-compare-right svg path { stroke: currentColor; }
@media (max-width: 767.98px) {
  .gc-compare-head { display: none; }
  .gc-compare-row { grid-template-columns: 1fr; gap: 6px; }
  .gc-compare-left::before, .gc-compare-right::before { content: attr(data-label) ": "; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--at-neutral-500); font-weight: 500; margin-right: 6px; }
  .gc-compare-right::before { color: var(--at-theme-primary); }
}

/* Per-video price list -------------------------------------------------- */
.gc-price-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; border-top: 1px solid var(--at-neutral-100); }
.gc-price-item { display: grid; grid-template-columns: 1fr auto; column-gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--at-neutral-100); }
.gc-price-name { font-size: var(--at-fz-font-lg); color: var(--at-neutral-900); }
.gc-price-note { grid-column: 1; font-size: 14px; margin-top: 4px; }
.gc-price-value { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-weight: 600; color: var(--at-neutral-900); white-space: nowrap; }
@media (max-width: 767.98px) { .gc-price-grid { grid-template-columns: 1fr; } }

/* Work: vertical reels + play hint -------------------------------------- */
.gc-work-vertical .mg-portfolio-thumb, .gc-work-vertical .mg-portfolio-thumb a { display: block; border-radius: 16px; overflow: hidden; background: var(--at-neutral-50); }
.gc-work-vertical .mg-portfolio-thumb img { aspect-ratio: 9 / 16; object-fit: cover; width: 100%; height: auto; }
.gc-work-vertical .mg-portfolio-content { margin-top: 14px; }
.gc-work-vertical .cs-portfolio-title { font-size: 18px; margin-bottom: 4px; }
.gc-work-vertical .mg-portfolio-content p { font-size: 15px; margin: 0; }
.gc-selected-work .alt-portfolio-thumb img { aspect-ratio: 4 / 5; object-fit: cover; }
.gc-play-hint { position: relative; }
.gc-play-hint::after { content: ""; position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%; pointer-events: none;
  background: rgba(255,255,255,.92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='22' viewBox='0 0 15 18'%3E%3Cpath d='M15 9 0 18V0z' fill='%23111'/%3E%3C/svg%3E") 55% 50% / 18px no-repeat;
  box-shadow: 0 8px 30px rgba(0,0,0,.18); transform: scale(.9); opacity: .9; transition: transform .25s ease, opacity .25s ease; }
.gc-play-hint:hover::after { transform: scale(1); opacity: 1; }
.gc-count { opacity: .55; font-weight: 400; }
.gc-hidden { display: none !important; }

/* Video modal ----------------------------------------------------------- */
.gc-modal { position: fixed; inset: 0; z-index: 99999; display: none; align-items: center; justify-content: center; background: rgba(8,8,8,.88); padding: 24px; }
.gc-modal.is-open { display: flex; }
.gc-modal__box { position: relative; width: min(1100px, 100%); max-height: 100%; display: flex; flex-direction: column; align-items: center; }
.gc-modal__frame { position: relative; width: 100%; background: #000; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 9; }
.gc-modal.is-vertical .gc-modal__box { width: min(420px, 100%); }
.gc-modal.is-vertical .gc-modal__frame { aspect-ratio: 9 / 16; max-height: calc(100vh - 110px); }
.gc-modal__frame iframe, .gc-modal__frame video, .gc-modal__frame img { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: contain; background: #000; }
.gc-modal__title { color: #fff; margin-top: 14px; font-size: 16px; text-align: center; }
.gc-modal__close { position: absolute; top: -48px; right: 0; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #fff; color: #111; font-size: 22px; line-height: 40px; cursor: pointer; }
@media (max-width: 575.98px) { .gc-modal__close { top: -46px; } }

/* Forms ----------------------------------------------------------------- */
.gc-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.gc-form-status:empty { display: none; }
.gc-form-status { padding: 16px 20px; border-radius: 12px; margin-bottom: 20px; font-size: 16px; border: 1px solid transparent; }
.gc-form-status.is-success { background: rgba(34,197,94,.1); border-color: rgba(34,197,94,.35); color: #15803d; }
.gc-form-status.is-error { background: rgba(239,68,68,.08); border-color: rgba(239,68,68,.35); color: #b91c1c; }
html[data-bs-theme=dark] .gc-form-status.is-success { color: #4ade80; }
html[data-bs-theme=dark] .gc-form-status.is-error { color: #f87171; }
select.gc-select { appearance: none; -webkit-appearance: none; cursor: pointer; padding-right: 44px; color: var(--at-neutral-900);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; }
select.gc-select option { color: #111; }
.gc-contact-form.is-loading button[type=submit] { opacity: .6; pointer-events: none; }
.gc-search-inline { display: flex; gap: 12px; flex-wrap: wrap; }
.gc-search-inline input { flex: 1 1 260px; }

/* FAQ heading wrapper keeps the theme's button styling */
.gc-faq-q { font: inherit; line-height: inherit; letter-spacing: inherit; color: inherit; }
.gc-faq-q .at-faq-button { width: 100%; text-align: left; }

/* Long-form content (service pages, posts, legal pages) ----------------- */
.gc-prose { font-size: 18px; line-height: 1.7; color: var(--at-neutral-700); max-width: 75ch; }
html[data-bs-theme=dark] .gc-prose { color: var(--at-neutral-800); }
.gc-prose > * + * { margin-top: 1.1em; }
.gc-prose h2 { font-size: clamp(26px, 2.6vw, 34px); line-height: 1.2; margin-top: 1.8em; color: var(--at-neutral-950); font-weight: 600; letter-spacing: -0.01em; scroll-margin-top: 120px; }
.gc-prose h3 { font-size: 22px; line-height: 1.3; margin-top: 1.5em; color: var(--at-neutral-950); font-weight: 600; }
.gc-prose ul, .gc-prose ol { padding-left: 1.3em; }
.gc-prose ul { list-style: disc; }
.gc-prose ol { list-style: decimal; }
.gc-prose li + li { margin-top: .45em; }
.gc-prose a { color: var(--at-theme-primary); text-decoration: underline; text-underline-offset: 3px; }
.gc-prose strong { color: var(--at-neutral-950); }
.gc-prose blockquote { border-left: 3px solid var(--at-theme-primary); padding-left: 20px; font-size: 22px; color: var(--at-neutral-900); }
.gc-prose img { border-radius: 16px; }
.gc-prose table { width: 100%; border-collapse: collapse; font-size: 16px; }
.gc-prose th, .gc-prose td { border-bottom: 1px solid var(--at-neutral-100); padding: 10px 8px; text-align: left; }
.gc-quick-answer { border-left: 3px solid var(--at-theme-primary); padding-left: 24px; }
.gc-takeaways .home-2-pricing-card__features, .gc-service-card .home-2-pricing-card__features { padding: 0; border: 0; }
.gc-checks li { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; line-height: 1.45; }
.gc-checks li:last-child { margin-bottom: 0; }
.gc-checks svg { flex: 0 0 18px; margin-top: 2px; }
.gc-service-card { position: sticky; top: 110px; }
.gc-facts { margin: 0; }
.gc-facts > div { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-top: 1px solid var(--at-neutral-100); }
.gc-facts dt { font-weight: 500; color: var(--at-neutral-500); }
.gc-facts dd { margin: 0; font-weight: 600; text-align: right; color: var(--at-neutral-900); }
.gc-toc { border: 1px solid var(--at-neutral-100); border-radius: 16px; padding: 20px 24px; }
.gc-toc ol { margin: 0; padding-left: 1.2em; list-style: decimal; }
.gc-toc li + li { margin-top: 6px; }
.gc-toc a { color: var(--at-neutral-900); text-decoration: underline; text-underline-offset: 3px; }
.gc-breadcrumb { font-size: 14px; color: var(--at-neutral-500); }
.gc-breadcrumb a { color: var(--at-neutral-500); text-decoration: underline; text-underline-offset: 3px; }
.gc-breadcrumb [aria-current] { color: var(--at-neutral-900); }
.gc-post-hero img { aspect-ratio: 21 / 9; object-fit: cover; }
.gc-service-banner img { max-height: 70vh; object-fit: cover; }
.gc-search-results a { color: var(--at-neutral-950); }

/* Testimonials without a photo */
.gc-initials { display: inline-flex; width: 56px; height: 56px; border-radius: 50%; align-items: center; justify-content: center; background: var(--at-theme-primary); color: #fff; font-weight: 700; font-size: 22px; }

/* Journey list as an <ol> keeps the theme spacing */
ol.journey-list { padding: 0; margin: 0; }
ol.row.list-unstyled { padding-left: 0; }

/* WhatsApp button */
.gc-whatsapp { position: fixed; right: 20px; bottom: 84px; z-index: 999; width: 54px; height: 54px; border-radius: 50%; background: #25D366; color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 30px rgba(0,0,0,.2); }
.gc-whatsapp:hover { color: #fff; transform: translateY(-2px); }

/* =========================================================================
   Brand palette: orange #ED4924 (highlights), black #000, white #fff,
   cream #F7E6D4 used sparingly for small accents only.
   ========================================================================= */
:root {
  --gc-orange: #ED4924; --gc-cream: #F7E6D4; --gc-black: #000000; --gc-white: #FFFFFF;
  --gc-orange-dark: #C9381A;
  --at-common-dark-white: #000000; --at-common-dark-white-rgb: 0, 0, 0;
  --at-neutral-dark-0: #000000; --at-neutral-dark-0-rgb: 0, 0, 0;
}
/* Pure white / black brand values in light mode only, so the theme's dark mode can take over */
:root:not([data-bs-theme="dark"]) {
  --at-common-black: #000000; --at-common-black-rgb: 0, 0, 0;
  --at-neutral-0: #FFFFFF; --at-neutral-0-rgb: 255, 255, 255;
  --at-neutral-950: #000000; --at-neutral-900: #0A0A0A;
}
::selection { background: var(--gc-orange); color: #fff; }
.gc-logo-img { height: 30px; }
@media (max-width: 575.98px) { .gc-logo-img { height: 22px; } }
.gc-footer-mark { height: 44px; width: auto; }
/* cream accents (kept small) */
.gc-takeaways, .gc-service-card { background: var(--gc-cream) !important; color: #000; }
html[data-bs-theme=dark] .gc-takeaways, html[data-bs-theme=dark] .gc-service-card { background: #1a1410 !important; color: #fff; }
.gc-compare-head .gc-compare-right, .gc-compare-right svg { color: var(--gc-orange); }
.gc-initials { background: var(--gc-orange); color: #fff; }
.gc-count { color: inherit; }
.visually-hidden, .visually-hidden-focusable:not(:focus):not(:focus-within) { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
/* FAQ +/− icons drawn without the missing icon font */
.at-faq-button::before, .at-faq-button::after { font-family: var(--at-ff-body) !important; font-size: 26px !important; font-weight: 300 !important; content: "\2212" !important; }
.at-faq-button.collapsed::after { content: "+" !important; }
.at-faq-button::before { content: "" !important; }
@media (max-width: 575.98px) { .gc-hero-title { font-size: 11vw; } .gc-service-title { font-size: 12vw; } }

/* ===== Footer (v1) ===== */
.gc-footer { padding: 0 12px 12px; background: var(--at-neutral-0, #fff); position: relative; z-index: 2; }
.gc-footer__inner { background: #000; color: rgba(255,255,255,.72); border-radius: 24px; padding: clamp(32px, 5vw, 72px) clamp(20px, 4vw, 64px) 28px; overflow: hidden; }
.gc-footer a { color: inherit; text-decoration: none; transition: color .2s; }
.gc-footer a:hover, .gc-footer a:focus-visible { color: var(--gc-orange); }
.gc-footer__cta { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 32px; padding-bottom: clamp(36px, 5vw, 64px); border-bottom: 1px solid rgba(255,255,255,.14); }
.gc-footer__kicker { color: var(--gc-orange); font-size: 15px; margin: 0 0 12px; }
.gc-footer__heading { color: #fff; font-size: clamp(36px, 5.4vw, 80px); line-height: 1.02; letter-spacing: -.03em; margin: 0; max-width: 14ch; }
.gc-footer__lede { margin: 16px 0 0; max-width: 46ch; font-size: 17px; }
.gc-footer__cta-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.gc-footer__btn { display: inline-flex; align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.3); color: #fff !important; padding: 14px 24px; border-radius: 999px; font-size: 16px; font-weight: 500; transition: background .2s, border-color .2s, color .2s; }
.gc-footer__btn svg { width: 12px; height: 12px; }
.gc-footer__btn:hover { border-color: #fff; background: #fff; color: #000 !important; }
.gc-footer__btn--primary { background: var(--gc-orange); border-color: var(--gc-orange); }
.gc-footer__btn--primary:hover { background: #fff; border-color: #fff; }
.gc-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr .8fr 1.1fr; gap: 40px; padding: clamp(40px, 5vw, 64px) 0; }
.gc-footer__logo img { height: 34px; width: auto; }
.gc-footer__about { margin: 20px 0 0; font-size: 15px; line-height: 1.65; max-width: 40ch; }
.gc-footer__title { color: #fff; font-size: 15px; font-weight: 600; margin: 0 0 18px; letter-spacing: 0; }
.gc-footer__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 15px; }
.gc-footer__contact { font-style: normal; display: grid; gap: 12px; font-size: 15px; line-height: 1.5; }
.gc-footer__contact > a, .gc-footer__addr { display: flex; gap: 10px; align-items: flex-start; overflow-wrap: anywhere; }
.gc-footer__contact svg { width: 14px; height: 14px; flex: none; margin-top: 4px; color: var(--gc-orange); }
.gc-footer__hours { font-size: 14px; opacity: .8; }
.gc-footer__areas { margin: 18px 0 0; font-size: 14px; line-height: 1.6; }
.gc-footer__areas span { color: #fff; }
.gc-footer__social { list-style: none; padding: 0; margin: 24px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.gc-footer__social a { display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; padding: 8px 14px; font-size: 14px; }
.gc-footer__social svg { width: 14px; height: 14px; }
.gc-footer p, .gc-footer address { color: rgba(255,255,255,.72); }
.gc-footer__big { color: #fff; font-size: clamp(56px, 12.4vw, 220px); line-height: .85; letter-spacing: -.05em; font-weight: 500; margin: 0 0 28px; white-space: nowrap; }
.gc-footer__big sup { font-size: .25em; top: -1.6em; font-weight: 400; }
.gc-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.14); font-size: 14px; }
.gc-footer__tags { opacity: .7; }
.gc-footer__legal { display: inline-flex; flex-wrap: wrap; gap: 20px; }
@media (max-width: 1199.98px) { .gc-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) {
  .gc-footer { padding: 0 6px 6px; }
  .gc-footer__inner { border-radius: 18px; }
  .gc-footer__grid { grid-template-columns: 1fr; gap: 32px; }
  .gc-footer__btn { flex: 1 1 auto; justify-content: center; }
  .gc-footer__big { white-space: normal; font-size: 19vw; }
  .gc-footer__bottom { flex-direction: column; }
}
.gc-chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.gc-chips li { border: 1px solid rgba(0,0,0,.14); border-radius: 999px; padding: 6px 14px; font-size: 14px; line-height: 1.4; }
[data-bs-theme=dark] .gc-chips li { border-color: rgba(255,255,255,.2); }
.gc-steps-static .sec-6-home-11__step-media img { width: 100%; height: auto; border-radius: 12px; margin-top: 20px; }

/* Background video from a YouTube / Vimeo link (always covers its box, never captures clicks) */
.gc-bg-embed { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; container-type: size; }
.gc-bg-embed iframe { position: absolute; top: 50%; left: 50%; border: 0; width: 100%; height: 100%; transform: translate(-50%, -50%); }
@supports (width: 1cqw) {
  .gc-bg-embed iframe { width: max(100cqw, 177.78cqh); height: max(100cqh, 56.25cqw); }
}

/* V2 big CTA on phones/tablets: keep the words on screen instead of sliding them away */
@media (max-width: 991.98px) {
  .gc-big-cta .sec-8-home-11__big-line { transform: none !important; white-space: normal; font-size: clamp(40px, 13vw, 96px); line-height: 1.02; text-align: center; padding: 0 16px; }
  .gc-big-cta .sec-8-home-11__img-pill { display: none; }
  .gc-big-cta .sec-8-home-11__type-wrap { overflow: visible; }
  .gc-big-cta { padding-top: 64px; }
}

/* ===== Size-only adjustments (theme design unchanged) ===== */
/* Home work slider: theme slides as landscape 16:9 video cards (1920×1080 ratio) */
.home-2-section-8 .about-me-slider-thumb img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
/* "Our Selected Work": same staggered layout, cards a little smaller */
.gc-selected-work .alt-portfolio-thumb img { max-height: min(82vh, 680px); }
.gc-selected-work .alt-portfolio-item { max-width: 100%; }
@media (max-width: 767.98px) { .gc-selected-work .alt-portfolio-item { max-width: 100%; } .gc-selected-work .alt-portfolio-thumb img { max-height: 62vh; } }
/* Work page: vertical cards never taller than ~70% of the screen */
.gc-work-vertical .mg-portfolio-thumb img { max-height: 70vh; }
/* Work page titles: one line, so the theme's hover copy (orange) can't overlap a wrapped second line */
.mg-portfolio-content .cs-portfolio-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.mg-portfolio-content .cs-portfolio-title .at-title-text { white-space: nowrap; }
/* V2 featured work: big title over the video scaled down to fit small screens */
@media (max-width: 991.98px) { .gc-featured-works .sec-4-home-11__thumb-title { font-size: clamp(22px, 7vw, 44px) !important; line-height: 1.05; } }
.gc-featured-works .mg-portfolio-thumb img { max-height: 75vh; object-fit: cover; }
/* Dark mode: gallery wrapper uses a hard-coded white in the theme */
[data-bs-theme=dark] .at-gallery-wrapper { background-color: var(--at-neutral-0); }

/* "What we make": the description was squeezed to one letter wide next to the bullet lists on wide screens */
.at-service-area .scroll-section .d-xxl-flex > p { flex: 1 1 55%; min-width: 0; }
.at-service-area .scroll-section .d-xxl-flex > div { flex: 0 0 auto; }
@media (min-width: 1400px) { .at-service-area .scroll-section .d-xxl-flex > p { min-width: 280px; } }
.at-service-area .scroll-section ul.text-nowrap li { white-space: nowrap; }

/* Brand rule: logos always orange — stop the theme inverting the header/menu logo in dark mode */
[data-bs-theme=dark] .at-header-logo img, [data-bs-theme=dark] .at-offcanvas-logo img, [data-bs-theme=dark] .gc-logo-img { filter: none !important; }

/* =====================================================================
   Orange everywhere it helps: buttons, button circles, tabs, icons, highlights
   (logos stay orange too). Same theme shapes — only the colour changes.
   ===================================================================== */
:root, :root[data-bs-theme="dark"] { --at-theme-primary: var(--gc-orange); }
/* Solid buttons */
.at-btn:not(.bg-transparent):not(.filter-btn):not(.at-btn-border-white):not(.border-0) { background-color: var(--gc-orange); color: #fff; border-color: var(--gc-orange); }
.at-btn:not(.bg-transparent):not(.filter-btn):not(.at-btn-border-white):not(.border-0):hover { background-color: var(--gc-orange-dark); color: #fff; }
.at-btn-group .at-btn, .at-btn-group .at-btn-circle { background-color: var(--gc-orange) !important; color: #fff !important; border-color: var(--gc-orange) !important; }
.at-btn-group:hover > * { background-color: var(--gc-orange-dark) !important; }
.at-btn-border-white:hover { background: var(--gc-orange); border-color: var(--gc-orange); }
/* Tabs / filters */
.at-btn.filter-btn:hover { border-color: var(--gc-orange); color: var(--gc-orange); }
.at-btn.filter-btn.active, .at-btn.active { background: var(--gc-orange) !important; border-color: var(--gc-orange) !important; color: #fff !important; }
.at-btn.filter-btn.active .gc-count { color: rgba(255,255,255,.8); }
/* Labels above headings (eyebrows) and their arrows */
.at-btn.bg-transparent, .at-btn.bg-transparent span { color: var(--gc-orange) !important; }
.at-btn.bg-transparent i svg, .at-btn.bg-transparent i svg path { color: var(--gc-orange); stroke: currentColor; }
/* Header: icons + floating MENU button + back to top */
.at-header-right button svg, .at-header-right .toggle svg { color: var(--gc-orange); }
.at-header-right button:hover, .dark-light-mode .toggle:hover { opacity: .85; }
.hamburger-open-btn.hamburger-sticky-menu { background: var(--gc-orange) !important; color: #fff !important; border-color: var(--gc-orange) !important; }
.hamburger-open-btn.hamburger-sticky-menu svg, .hamburger-open-btn.hamburger-sticky-menu span { color: #fff !important; }
.back-to-top-btn { background: var(--gc-orange) !important; color: #fff !important; }
.at-main-menu nav ul li a:hover, .at-main-menu nav ul li.active > a { color: var(--gc-orange) !important; }
/* Play buttons on videos */
.gc-play-hint::after { background: var(--gc-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='22' viewBox='0 0 15 18'%3E%3Cpath d='M15 9 0 18V0z' fill='%23fff'/%3E%3C/svg%3E") 55% 50% / 18px no-repeat; }
.postbox-play-btn a span { color: #fff; }
.postbox-play-btn a { background: var(--gc-orange) !important; }
/* FAQ: + / − icons and the open question */
.at-faq-button::before, .at-faq-button::after { color: var(--gc-orange) !important; }
.at-faq-button:not(.collapsed) { color: var(--gc-orange) !important; }
/* Icons in lists, cards and contact blocks */
.gc-checks svg, .home-2-pricing-card__feature-icon, .gc-compare-right svg, .gc-quick-answer svg, .gc-toc a:hover { color: var(--gc-orange); }
.alt-portfolio-plus, .alt-portfolio-plus svg { color: var(--gc-orange) !important; }
.at-hero-social a:hover, .gc-footer__social a:hover { color: var(--gc-orange); border-color: var(--gc-orange); }
/* Highlighted text */
.gc-prose a, .gc-breadcrumb a:hover, .gc-search-results a:hover { color: var(--gc-orange); }
.gc-prose strong { color: var(--at-neutral-950); }
.gc-chips li { border-color: rgba(237,73,36,.35); }
.gc-chips li:hover { background: var(--gc-orange); color: #fff; border-color: var(--gc-orange); }
.gc-footer__btn:not(.gc-footer__btn--primary) { border-color: var(--gc-orange); color: #fff !important; }
.gc-footer__btn:not(.gc-footer__btn--primary):hover { background: var(--gc-orange); }
.gc-footer__btn--primary:hover { background: var(--gc-orange-dark); border-color: var(--gc-orange-dark); color: #fff !important; }
.gc-footer__big sup { color: var(--gc-orange); }
.gc-form-status.is-success { color: var(--gc-orange); }
/* Readability on photos / orange shapes */
.at-btn.bg-transparent.at-btn-border-white, .at-btn.bg-transparent.at-btn-border-white span, .at-btn.at-btn-border-white span { color: #fff !important; }
.at-btn-border-white i svg { color: var(--gc-orange); }
.at-btn.bg-transparent .text-white, .at-btn.bg-transparent .text-white span { color: #fff !important; }
/* FAQ number badges */
.at-faq-number, .box-number { background: var(--gc-orange) !important; color: #fff !important; }

/* =====================================================================
   Retro PC (hero) — plays the work reel; ◀ ▶ switch videos
   ===================================================================== */
.gc-retro { --pc-body: #EFE4D2; --pc-body-2: #E2D3BC; --pc-shadow: #BFAE93; --pc-bezel: #2A2B33; width: 100%; max-width: 380px; margin: 0 auto; position: relative; filter: drop-shadow(0 22px 28px rgba(0,0,0,.18)); }
.gc-retro__monitor { position: relative; background: linear-gradient(160deg, #F7EEDF 0%, var(--pc-body) 45%, var(--pc-body-2) 100%); border-radius: 26px 26px 22px 22px; padding: 16px 16px 12px; box-shadow: inset 0 2px 0 rgba(255,255,255,.8), inset 0 -6px 0 var(--pc-shadow), inset 6px 0 10px rgba(255,255,255,.35), inset -6px 0 12px rgba(0,0,0,.06); }
.gc-retro__bezel { background: linear-gradient(180deg, #3A3B45, var(--pc-bezel)); border-radius: 16px; padding: 12px; box-shadow: inset 0 3px 8px rgba(0,0,0,.55), 0 1px 0 rgba(255,255,255,.7); }
.gc-retro__screen { position: relative; aspect-ratio: 4 / 3; border-radius: 14px / 18px; overflow: hidden; background: #0d1116; box-shadow: inset 0 0 26px rgba(0,0,0,.85), 0 0 18px rgba(120,190,255,.10); }
.gc-retro__slides { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; }
.gc-retro__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .35s ease; }
.gc-retro__slide.is-active { opacity: 1; z-index: 1; }
.gc-retro__link { display: block; width: 100%; height: 100%; color: #fff; text-decoration: none; }
.gc-retro__media { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(1.15) contrast(1.05); transform: scale(1.04); }
/* CRT layers */
.gc-retro__scan { position: absolute; inset: 0; z-index: 3; pointer-events: none; background: repeating-linear-gradient(180deg, rgba(0,0,0,.22) 0 1px, transparent 1px 3px); mix-blend-mode: multiply; }
.gc-retro__glare { position: absolute; inset: 0; z-index: 4; pointer-events: none; border-radius: inherit; background: radial-gradient(120% 90% at 30% 15%, rgba(255,255,255,.22), transparent 45%), radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.55) 100%); }
.gc-retro__noise { position: absolute; inset: -50%; z-index: 5; pointer-events: none; opacity: 0; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E"); }
.gc-retro.is-switching .gc-retro__noise { opacity: .55; animation: gc-noise .12s steps(2) infinite; }
@keyframes gc-noise { 0% { transform: translate(0,0); } 50% { transform: translate(-6%, 4%); } 100% { transform: translate(5%, -3%); } }
.gc-retro__osd { position: absolute; left: 10px; right: 10px; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 8px; font: 600 11px/1.2 ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; letter-spacing: .06em; color: #fff; text-shadow: 0 0 6px rgba(255,255,255,.55), 0 1px 2px rgba(0,0,0,.8); }
.gc-retro__osd--top { top: 9px; }
.gc-retro__osd--bottom { bottom: 9px; }
.gc-retro__rec::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--gc-orange); margin-right: 5px; vertical-align: 0; animation: gc-blink 1.2s steps(2) infinite; }
@keyframes gc-blink { 50% { opacity: 0; } }
.gc-retro__title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 70%; }
.gc-retro__play { background: var(--gc-orange); color: #fff; padding: 3px 7px; border-radius: 4px; text-shadow: none; transition: transform .2s; }
.gc-retro__link:hover .gc-retro__play, .gc-retro__link:focus-visible .gc-retro__play { transform: scale(1.08); }
/* Front panel */
.gc-retro__panel { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 6px 2px; }
.gc-retro__badge { width: 34%; height: 9px; border-radius: 5px; background: var(--gc-orange); box-shadow: inset 0 -2px 0 rgba(0,0,0,.18), 0 1px 0 rgba(255,255,255,.7); }
.gc-retro__controls { display: flex; gap: 8px; padding: 5px 7px; border-radius: 9px; background: linear-gradient(180deg, #3A3B45, #2A2B33); box-shadow: inset 0 2px 4px rgba(0,0,0,.5), 0 1px 0 rgba(255,255,255,.6); }
.gc-retro__btn { width: 38px; height: 26px; border: 0; border-radius: 6px; cursor: pointer; display: grid; place-items: center; color: #2A2B33; background: linear-gradient(180deg, #F4EBDD, #DCCCB3); box-shadow: 0 3px 0 #A8977C, inset 0 1px 0 #fff; transition: transform .08s, box-shadow .08s, color .15s; }
.gc-retro__btn svg { width: 11px; height: 11px; }
.gc-retro__btn:hover { color: var(--gc-orange); }
.gc-retro__btn:active, .gc-retro__btn.is-pressed { transform: translateY(3px); box-shadow: 0 0 0 #A8977C, inset 0 1px 0 #fff; }
.gc-retro__btn:focus-visible { outline: 2px solid var(--gc-orange); outline-offset: 2px; }
.gc-retro__led { width: 10px; height: 10px; border-radius: 50%; background: #5BE38A; box-shadow: 0 0 8px #5BE38A, inset 0 -1px 1px rgba(0,0,0,.3); }
/* Stand, keyboard, mouse */
.gc-retro__base { width: 46%; height: 16px; margin: -2px auto 0; background: linear-gradient(180deg, var(--pc-body-2), var(--pc-shadow)); border-radius: 0 0 14px 14px; box-shadow: inset 0 3px 4px rgba(0,0,0,.12); }
.gc-retro__desk { display: flex; align-items: center; justify-content: center; gap: 10%; margin-top: 10px; }
.gc-retro__keyboard { width: 74%; height: 30px; border-radius: 6px 6px 9px 9px; background-color: #EAE0CE; background-image: repeating-linear-gradient(90deg, transparent 0 4px, rgba(0,0,0,.08) 4px 5px), repeating-linear-gradient(180deg, #F7F1E6 0 6px, #D9CCB6 6px 7px); box-shadow: 0 4px 0 #BFAE93, inset 0 1px 0 #fff; transform: perspective(160px) rotateX(28deg); }
.gc-retro__mouse { width: 9%; aspect-ratio: 3 / 4; border-radius: 45% 45% 50% 50%; background: linear-gradient(180deg, #F7F1E6, #DCCCB3); box-shadow: 0 3px 0 #BFAE93, inset 0 1px 0 #fff; }
@media (max-width: 767.98px) { .gc-retro { max-width: 340px; } .gc-retro__osd { font-size: 10px; } }
@media (prefers-reduced-motion: reduce) { .gc-retro__slide { transition: none; } .gc-retro.is-switching .gc-retro__noise, .gc-retro__rec::before { animation: none; } }

/* Hero with retro PC: tidy right-hand column */
.gc-hero-copy .gc-hero-title { font-size: clamp(44px, 7.4vw, 128px); line-height: 1.02; letter-spacing: -0.04em; }
.gc-hero-meta { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 32px; margin-top: 22px; padding-top: 22px; border-top: 1px solid rgba(0,0,0,.12); }
[data-bs-theme=dark] .gc-hero-meta { border-top-color: rgba(255,255,255,.15); }
.gc-hero-intro { display: flex; align-items: flex-start; gap: 14px; max-width: 420px; }
.gc-hero-intro p { line-height: 1.5; }
.gc-hero-mark { flex: none; color: var(--gc-orange); }
.gc-hero-mark svg { width: 30px; height: 30px; }
.gc-hero-tagline { white-space: nowrap; }
@media (max-width: 767.98px) { .gc-hero-tagline { white-space: normal; } .gc-hero-meta { margin-top: 16px; padding-top: 16px; } }

/* Hero title: orange text, black hover copy (reverse of the theme default) */
.gc-hero-title, .gc-hero-title.at-title-text span { color: var(--gc-orange); }
.gc-hero-title.at-title-text span { text-shadow: 0 1.05em var(--at-neutral-950); }
.at-title-anim:hover .gc-hero-title.at-title-text span { text-shadow: 0 1.05em var(--at-neutral-950); color: var(--at-neutral-950); }

/* Retro PC: orange + black */
.gc-retro { --pc-body: #ED4924; --pc-body-2: #D63E1C; --pc-shadow: #A92F14; --pc-bezel: #111111; }
.gc-retro__monitor { background: linear-gradient(160deg, #F2643F 0%, var(--pc-body) 45%, var(--pc-body-2) 100%); box-shadow: inset 0 2px 0 rgba(255,255,255,.35), inset 0 -6px 0 var(--pc-shadow), inset 6px 0 10px rgba(255,255,255,.12), inset -6px 0 12px rgba(0,0,0,.12); }
.gc-retro__bezel { background: linear-gradient(180deg, #222, #0b0b0b); box-shadow: inset 0 3px 8px rgba(0,0,0,.7), 0 1px 0 rgba(255,255,255,.35); }
.gc-retro__badge { background: #111; box-shadow: inset 0 -2px 0 rgba(255,255,255,.08), 0 1px 0 rgba(255,255,255,.3); }
.gc-retro__controls { background: linear-gradient(180deg, #222, #0b0b0b); box-shadow: inset 0 2px 4px rgba(0,0,0,.6), 0 1px 0 rgba(255,255,255,.3); }
.gc-retro__btn { color: #fff; background: linear-gradient(180deg, #2b2b2b, #111); box-shadow: 0 3px 0 #000, inset 0 1px 0 rgba(255,255,255,.18); }
.gc-retro__btn:hover { color: var(--gc-orange); }
.gc-retro__btn:active, .gc-retro__btn.is-pressed { box-shadow: 0 0 0 #000, inset 0 1px 0 rgba(255,255,255,.18); }
.gc-retro__btn:focus-visible { outline-color: #111; }
.gc-retro__base { background: linear-gradient(180deg, #1c1c1c, #000); box-shadow: inset 0 3px 4px rgba(255,255,255,.06); }
.gc-retro__keyboard { background-color: #151515; background-image: repeating-linear-gradient(90deg, transparent 0 4px, rgba(255,255,255,.07) 4px 5px), repeating-linear-gradient(180deg, #2a2a2a 0 6px, #0d0d0d 6px 7px); box-shadow: 0 4px 0 #000, inset 0 1px 0 rgba(255,255,255,.12); }
.gc-retro__mouse { background: linear-gradient(180deg, #2a2a2a, #0d0d0d); box-shadow: 0 3px 0 #000, inset 0 1px 0 rgba(255,255,255,.15); }
.gc-retro__play { background: var(--gc-orange); }
.gc-hero-mark svg path, .gc-hero-mark svg rect { fill: var(--gc-orange) !important; }
/* Showreel background words: light orange */
.postbox-scroll-zoom .postbox-scroll-zoom-marquee-track { color: rgba(237, 73, 36, .22); }
[data-bs-theme=dark] .postbox-scroll-zoom .postbox-scroll-zoom-marquee-track { color: rgba(237, 73, 36, .28); }

/* Selected work: orange starburst (replaces the grey cube) */
.gc-starburst-wrap { position: relative; height: 0; transform: translateY(-120px); pointer-events: none; }
.gc-starburst { position: absolute; left: 10px; top: 0; width: clamp(90px, 9vw, 150px); height: auto; color: var(--gc-orange); animation: gc-spin 18s linear infinite, gc-pulse 3.2s ease-in-out infinite; transform-origin: 50% 50%; }
@keyframes gc-spin { to { rotate: 360deg; } }
@keyframes gc-pulse { 0%, 100% { scale: 1; } 50% { scale: 1.08; } }
@media (max-width: 991.98px) { .gc-starburst-wrap { display: none; } }
@media (prefers-reduced-motion: reduce) { .gc-starburst { animation: none; } }
/* Touch screens have no hover: let long work titles wrap normally (no hidden hover copy) */
@media (hover: none) {
  .cs-portfolio-title .at-title-text .char { display: inline; text-shadow: none; transform: none; }
  .mg-portfolio-content .cs-portfolio-title { white-space: normal; overflow: visible; text-overflow: clip; }
  .mg-portfolio-content .cs-portfolio-title .at-title-text { white-space: normal; }
  .mg-portfolio-content .cs-portfolio-title .at-title-text span { display: inline; text-shadow: none; }
}

/* Small phones: long work titles wrap instead of being cut off */
@media (max-width: 575.98px) {
  .mg-portfolio-content .cs-portfolio-title { white-space: normal; overflow: visible; text-overflow: clip; min-width: 0; }
  .mg-portfolio-content .cs-portfolio-title .at-title-text { white-space: normal; }
  .cs-portfolio-title .at-title-text .char { display: inline; text-shadow: none; transform: none; }
}

/* ===== Careers ===== */
.gc-jobs__list { border-top: 1px solid var(--at-neutral-100); }
.gc-job { border-bottom: 1px solid var(--at-neutral-100); }
.gc-job[hidden] { display: none; }
.gc-job__link { display: grid; grid-template-columns: minmax(0, 1fr) auto 56px; align-items: center; gap: 24px; padding: 32px 8px; color: inherit; text-decoration: none; transition: background-color .25s ease, padding .25s ease; }
.gc-job__link:hover, .gc-job__link:focus-visible { background: rgba(237,73,36,.06); padding-left: 20px; padding-right: 20px; }
.gc-job__main { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.gc-job__team { color: var(--gc-orange); font-size: 14px; font-weight: 600; letter-spacing: .02em; }
.gc-job__title { margin: 0; color: var(--at-neutral-950); overflow-wrap: anywhere; }
.gc-job__summary { color: var(--at-neutral-700); max-width: 60ch; }
.gc-job__meta { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; padding: 0; margin: 0; }
.gc-job__meta--hero { justify-content: flex-start; }
.gc-job__chip { border: 1px solid rgba(0,0,0,.14); border-radius: 999px; padding: 6px 14px; font-size: 14px; line-height: 1.4; white-space: nowrap; list-style: none; }
.gc-job__chip--salary { border-color: var(--gc-orange); color: var(--gc-orange); font-weight: 600; }
.gc-job__go { width: 56px; height: 56px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--gc-orange); color: #fff; transition: transform .25s ease; }
.gc-job__go svg { width: 20px; height: 20px; }
.gc-job__link:hover .gc-job__go { transform: rotate(45deg); }
.gc-jobs__empty { max-width: 760px; }
.gc-job-closed { background: rgba(237,73,36,.08); border: 1px solid rgba(237,73,36,.35); }
.gc-job-closed a { color: var(--gc-orange); font-weight: 600; }
.gc-perk__icon { display: inline-flex; width: 44px; height: 44px; color: var(--gc-orange); }
.gc-perk__icon .gc-starburst, .gc-perk__icon svg { position: static; width: 100%; height: 100%; animation: none; }
.gc-perk:hover .gc-starburst { animation: gc-spin 6s linear infinite; }
@media (prefers-reduced-motion: reduce) { .gc-perk:hover .gc-starburst { animation: none; } }
.gc-apply-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.gc-apply-grid .sec-4-about-form__field { min-width: 0; }
.gc-apply-wide { grid-column: 1 / -1; }
.gc-apply-q { display: block; font-weight: 600; margin: 10px 0 4px; }
.gc-file { position: relative; }
.gc-file__label { display: flex; align-items: center; gap: 14px; padding: 18px 20px; margin: 10px 0; border: 1.5px dashed rgba(0,0,0,.25); border-radius: 14px; cursor: pointer; transition: border-color .2s ease, background-color .2s ease; }
.gc-file__label:hover, .gc-file__input:focus-visible + .gc-file__label, .gc-file.has-file .gc-file__label { border-color: var(--gc-orange); background: rgba(237,73,36,.05); }
.gc-file__icon { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--gc-orange); color: #fff; }
.gc-file__icon svg { width: 18px; height: 18px; }
.gc-file__text { min-width: 0; overflow-wrap: anywhere; color: var(--at-neutral-700); }
.gc-file.has-file .gc-file__text { color: var(--at-neutral-950); font-weight: 600; }
.gc-file__input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); }
.gc-apply-form.is-loading { opacity: .6; pointer-events: none; }
[data-bs-theme=dark] .gc-job__chip { border-color: rgba(255,255,255,.2); }
[data-bs-theme=dark] .gc-job__summary, [data-bs-theme=dark] .gc-file__text { color: rgba(255,255,255,.7); }
[data-bs-theme=dark] .gc-file__label { border-color: rgba(255,255,255,.3); }
@media (max-width: 991.98px) {
  .gc-job__link { grid-template-columns: minmax(0, 1fr) 48px; gap: 14px 16px; padding: 24px 4px; }
  .gc-job__meta { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; }
  .gc-job__go { width: 48px; height: 48px; grid-column: 2; grid-row: 1; }
}
@media (max-width: 575.98px) {
  .gc-apply-grid { grid-template-columns: minmax(0, 1fr); }
  .gc-job__chip { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) { .gc-job__link, .gc-job__go { transition: none; } }

/* ===== Work: type badges on cards ===== */
.mg-portfolio-thumb, .alt-portfolio-thumb, .card-home-12-project__image { position: relative; }
.gc-work-badge { position: absolute; z-index: 3; top: 12px; left: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 999px; background: rgba(13,13,13,.72); color: #fff; font-size: 12px; font-weight: 600; line-height: 1; letter-spacing: .01em; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); pointer-events: none; }
.gc-work-badge svg { width: 13px; height: 13px; flex: 0 0 13px; }
.gc-work-badge--gallery, .gc-work-badge--brand, .gc-work-badge--case { background: var(--gc-orange); }
.gc-project-kicker .gc-work-badge, .gc-next-project .gc-work-badge { position: static; backdrop-filter: none; }
/* "open" icon instead of play for projects with their own page */
.gc-view-hint::after { background: var(--gc-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") 50% 50% / 24px no-repeat !important; }

/* ===== Project page ===== */
.gc-project-cat { font-weight: 600; color: var(--at-neutral-700); }
.gc-project-title { overflow-wrap: anywhere; }
.gc-project-facts > div { padding: 12px 0; }
.gc-project-film { margin: 0 auto; width: 100%; max-width: 1200px; aspect-ratio: var(--ar, 16/9); border-radius: 18px; overflow: hidden; background: #000; }
.gc-project-film.is-vertical { max-width: min(460px, 100%); max-height: 86vh; }
.gc-project-film iframe, .gc-project-film video { width: 100%; height: 100%; border: 0; display: block; object-fit: contain; background: #000; }

/* Catalogue viewer */
.gc-cat-views { display: inline-flex; padding: 4px; border-radius: 999px; background: var(--at-neutral-50, #f2f2f2); border: 1px solid var(--at-neutral-100); }
.gc-cat-view { display: inline-flex; align-items: center; gap: 7px; border: 0; background: transparent; color: var(--at-neutral-900); padding: 8px 14px; border-radius: 999px; font-size: 14px; font-weight: 600; cursor: pointer; transition: background .2s, color .2s; }
.gc-cat-view svg { width: 16px; height: 16px; fill: currentColor; }
.gc-cat-view.is-active { background: var(--gc-orange); color: #fff; }
.gc-cat-view:focus-visible { outline: 2px solid var(--gc-orange); outline-offset: 2px; }
.gc-cat { position: relative; }
.gc-cat__item { margin: 0; position: relative; }
.gc-cat__open { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; border-radius: 14px; overflow: hidden; }
.gc-cat__open img { display: block; width: 100%; height: auto; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.gc-cat__open:hover img { transform: scale(1.04); }
.gc-cat__open:focus-visible { outline: 3px solid var(--gc-orange); outline-offset: 3px; }
.gc-cat__item figcaption { font-size: 14px; color: var(--at-neutral-700); margin-top: 8px; }
.gc-cat--bg-light .gc-cat__open { background: #f3f3f1; }
.gc-cat--bg-dark .gc-cat__open { background: #121212; }
.gc-cat__nav { display: none; }
/* grid: equal squares, product on a soft background */
.gc-cat--grid .gc-cat__track { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.gc-cat--grid .gc-cat__open { aspect-ratio: 1; }
.gc-cat--grid .gc-cat__open img { width: 100%; height: 100%; object-fit: contain; padding: 6%; }
.gc-cat--grid.gc-cat--bg-none .gc-cat__open img { object-fit: cover; padding: 0; }
/* masonry: natural shapes */
.gc-cat--masonry .gc-cat__track { columns: 3 280px; column-gap: 16px; }
.gc-cat--masonry .gc-cat__item { break-inside: avoid; margin-bottom: 16px; }
/* slideshow: one big image at a time */
.gc-cat--slideshow .gc-cat__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: 18px; }
.gc-cat--slideshow .gc-cat__track::-webkit-scrollbar { display: none; }
.gc-cat--slideshow .gc-cat__item { flex: 0 0 100%; scroll-snap-align: center; }
.gc-cat--slideshow .gc-cat__open { border-radius: 0; height: min(76vh, 760px); }
.gc-cat--slideshow .gc-cat__open img { width: 100%; height: 100%; object-fit: contain; }
.gc-cat--slideshow .gc-cat__open:hover img { transform: none; }
.gc-cat--slideshow figcaption { text-align: center; }
.gc-cat--slideshow .gc-cat__nav { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 18px; }
.gc-cat__nav button { width: 52px; height: 52px; border-radius: 50%; border: 0; background: var(--gc-orange); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.gc-cat__nav svg, .gc-lb__nav svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.gc-cat__count { font-weight: 600; min-width: 64px; text-align: center; }
@media (max-width: 991.98px) { .gc-cat--grid .gc-cat__track { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 575.98px) {
  .gc-cat--grid .gc-cat__track { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .gc-cat--masonry .gc-cat__track { columns: 2; column-gap: 10px; }
  .gc-cat--masonry .gc-cat__item { margin-bottom: 10px; }
  .gc-cat-view span { display: none; }
  .gc-cat-view { padding: 9px 12px; }
  .gc-cat--slideshow .gc-cat__open { height: 62vh; }
}

/* Lightbox */
.gc-lb { position: fixed; inset: 0; z-index: 100000; background: rgba(10,10,10,.96); color: #fff; display: none; flex-direction: column; }
.gc-lb.is-open { display: flex; }
.gc-lb__top { display: flex; align-items: center; gap: 16px; padding: 14px 20px; }
.gc-lb__title { font-weight: 600; flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gc-lb__count { opacity: .8; font-variant-numeric: tabular-nums; }
.gc-lb__close { width: 46px; height: 46px; border-radius: 50%; border: 0; background: var(--gc-orange); color: #fff; font-size: 30px; line-height: 1; cursor: pointer; }
.gc-lb__stage { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 0 16px; }
.gc-lb__fig { margin: 0; flex: 1; min-width: 0; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; pointer-events: none; }
.gc-lb__fig img { max-width: 100%; max-height: calc(100% - 40px); object-fit: contain; opacity: 0; transform: scale(.985); transition: opacity .25s ease, transform .25s ease; pointer-events: auto; border-radius: 6px; }
.gc-lb__fig img.is-in { opacity: 1; transform: none; }
.gc-lb__fig figcaption { margin-top: 10px; opacity: .85; text-align: center; }
.gc-lb__nav { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.08); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.gc-lb__nav:hover { background: var(--gc-orange); border-color: var(--gc-orange); }
.gc-lb__strip { display: flex; gap: 8px; overflow-x: auto; padding: 12px 20px 18px; justify-content: safe center; scrollbar-width: thin; }
.gc-lb__strip button { flex: 0 0 64px; height: 64px; padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: #222; cursor: pointer; opacity: .55; }
.gc-lb__strip button.is-on { border-color: var(--gc-orange); opacity: 1; }
.gc-lb__strip img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 575.98px) { .gc-lb__nav { display: none; } .gc-lb__stage { padding: 0 6px; } .gc-lb__strip button { flex-basis: 52px; height: 52px; } }

/* Brand kit */
.gc-logo-tile { position: relative; aspect-ratio: 16/10; border-radius: 18px; display: flex; align-items: center; justify-content: center; padding: 12%; overflow: hidden; }
.gc-logo-tile img { max-width: 100%; max-height: 100%; object-fit: contain; }
.gc-logo-tile span { position: absolute; left: 18px; bottom: 14px; font-size: 13px; font-weight: 600; opacity: .7; }
.gc-logo-tile--light { background: #f3f3f1; color: #111; }
.gc-logo-tile--color { background: var(--tile, #111); color: #fff; }
.gc-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 16px; }
.gc-swatch { display: flex; flex-direction: column; gap: 4px; }
.gc-swatch__chip { position: relative; aspect-ratio: 1; border-radius: 16px; border: 1px solid rgba(0,0,0,.08); background: var(--sw); cursor: copy; margin-bottom: 6px; transition: transform .2s; }
.gc-swatch__chip:hover { transform: translateY(-3px); }
.gc-swatch__chip:focus-visible { outline: 3px solid var(--gc-orange); outline-offset: 3px; }
.gc-swatch__copied { position: absolute; inset: auto 10px 10px auto; background: rgba(0,0,0,.75); color: #fff; font-size: 12px; padding: 4px 8px; border-radius: 6px; opacity: 0; transition: opacity .2s; }
.gc-swatch__chip.is-copied .gc-swatch__copied { opacity: 1; }
.gc-swatch__name { font-weight: 600; }
.gc-swatch__hex { color: var(--at-neutral-700); font-variant-numeric: tabular-nums; }
.gc-font-card { display: grid; grid-template-columns: auto 1fr; gap: 6px 22px; align-items: center; padding: 28px; border-radius: 18px; background: var(--at-neutral-50, #f3f3f1); height: 100%; }
.gc-font-card__aa { grid-row: span 2; font-family: var(--ff), var(--at-ff-body), sans-serif; font-size: clamp(56px, 7vw, 96px); line-height: 1; color: var(--gc-orange); }
.gc-font-card__name { font-family: var(--ff), sans-serif; font-size: 24px; font-weight: 700; margin: 0; }
.gc-font-card__use { margin: 0; color: var(--at-neutral-700); }
.gc-font-card__sample { grid-column: 1 / -1; font-family: var(--ff), sans-serif; font-size: 18px; margin: 14px 0 0; overflow-wrap: anywhere; }

/* Story + results */
.gc-story__label { color: var(--gc-orange); }
.gc-stats-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 24px; border-top: 1px solid var(--at-neutral-100); padding-top: 30px; }
.gc-stat__v { display: block; font-size: clamp(36px, 4vw, 56px); font-weight: 600; line-height: 1; color: var(--gc-orange); }
.gc-stat__l { display: block; margin-top: 8px; color: var(--at-neutral-700); }

/* End of project page */
.gc-project-cta { background: var(--at-neutral-50, #f3f3f1); }
.gc-next-project { position: relative; display: block; min-height: 300px; overflow: hidden; color: #fff; text-decoration: none; }
.gc-next-project img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.gc-next-project::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.78), rgba(0,0,0,.08) 70%); }
.gc-next-project:hover img { transform: scale(1.05); }
.gc-next-project__txt { position: absolute; z-index: 2; left: 28px; right: 28px; bottom: 26px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; color: #fff; }
.gc-next-project__txt .h3 { color: #fff; }
.gc-next-project__k { font-size: 14px; font-weight: 600; color: var(--gc-orange); }

[data-bs-theme=dark] .gc-cat--bg-light .gc-cat__open, [data-bs-theme=dark] .gc-logo-tile--light { background: #1c1c1c; }
[data-bs-theme=dark] .gc-logo-tile--light { background: #f3f3f1; }
[data-bs-theme=dark] .gc-font-card, [data-bs-theme=dark] .gc-project-cta, [data-bs-theme=dark] .gc-cat-views { background: #161616; }
[data-bs-theme=dark] .gc-cat-view { color: #eee; }
[data-bs-theme=dark] .gc-project-cat, [data-bs-theme=dark] .gc-swatch__hex, [data-bs-theme=dark] .gc-cat__item figcaption { color: rgba(255,255,255,.7); }
@media (prefers-reduced-motion: reduce) { .gc-cat__open img, .gc-next-project img, .gc-lb__fig img, .gc-swatch__chip { transition: none; } }

/* Catalogue / campaign cards that change photo by themselves (sliding work strip) */
[data-gc-cycle] { position: relative; display: block; }
[data-gc-cycle] .gc-cyc-top { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; pointer-events: none; }

/* Home hero banner: orange outline so it stands apart from the page (18 Oct) */
.sec-1-home-2 > .overflow-hidden { border: 2px solid var(--gc-orange); border-radius: var(--bs-border-radius-xxl); }

/* Social links in orange everywhere: hero, footer, menu (18 Oct) */
.at-hero-social a, .gc-footer__social a, .at-offcanvas-social__link { border-color: var(--gc-orange) !important; transition: background-color .2s, color .2s; }
.at-hero-social a svg, .gc-footer__social a svg, .at-offcanvas-social__link svg { color: var(--gc-orange); }
.at-hero-social a:hover, .gc-footer__social a:hover, .at-offcanvas-social__link:hover { background-color: var(--gc-orange) !important; color: #fff !important; }
.at-hero-social a:hover svg, .gc-footer__social a:hover svg, .at-offcanvas-social__link:hover svg { color: #fff; }

/* WhatsApp + back-to-top: one neat column, centred on the same line, no overlap (18 Oct) */
.back-to-top-wrapper { right: 28px; }
.back-to-top-wrapper.back-to-top-btn-show { bottom: 28px; }
.gc-whatsapp { right: 23px; bottom: 84px; }
@media (max-width: 574.98px) {
  .back-to-top-wrapper { right: 16px; }
  .back-to-top-wrapper.back-to-top-btn-show { bottom: 16px; }
  .gc-whatsapp { right: 11px; bottom: 72px; }
}

/* ---- Mobile tables, site-wide (18 Oct) ---- */
/* Comparison rows: title on top, the two answers side by side with their label above */
@media (max-width: 767.98px) {
  .gc-compare-row { grid-template-columns: 1fr 1fr; gap: 10px 14px; align-items: start; padding: 18px 0; font-size: 16px; line-height: 1.35; }
  .gc-compare-row .gc-compare-label { grid-column: 1 / -1; font-size: 18px; color: var(--at-neutral-950); }
  .gc-compare-left, .gc-compare-right { display: block; padding: 12px 12px 13px; border-radius: 12px; background: var(--at-neutral-50); }
  .gc-compare-right { background: rgba(237, 73, 36, .08); box-shadow: inset 0 0 0 1px rgba(237, 73, 36, .35); }
  .gc-compare-left::before, .gc-compare-right::before { content: attr(data-label); display: block; margin: 0 0 6px; font-size: 11px; line-height: 1.2; letter-spacing: .05em; }
  .gc-compare-right svg { display: inline-block; width: 16px; height: 16px; margin: 0 4px 0 0; vertical-align: -3px; }
}
/* Text tables (legal pages, blog posts): each row becomes a small card on phones */
@media (max-width: 767.98px) {
  .gc-prose table, .gc-prose tbody, .gc-prose tr, .gc-prose td { display: block; width: 100%; }
  .gc-prose thead { display: none; }
  .gc-prose tr:first-child:has(th) { display: none; }
  .gc-prose table { border-top: 1px solid var(--at-neutral-100); font-size: 15px; }
  .gc-prose tr { padding: 14px 0; border-bottom: 1px solid var(--at-neutral-100); }
  .gc-prose td { border: 0; padding: 3px 0; }
  .gc-prose td[data-label]::before { content: attr(data-label); display: block; font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--gc-orange); margin-top: 6px; }
  .gc-prose td:first-child { font-weight: 600; color: var(--at-neutral-950); }
  .gc-prose td:first-child::before { display: none; }
}

/* Services list: the active row (hover on computers, scroll position on phones) */
.at-service-item.gc-in-view .count .number { color: var(--at-theme-primary); opacity: 1; }
.at-service-item.gc-in-view .content .title, .at-service-item.gc-in-view .number { opacity: 1; }
.at-service-item.gc-in-view .content .text { opacity: 1; max-height: 200px; }
@media (hover: none) {
  .at-service-item .number, .at-service-item .content .title { opacity: .45; }
  .at-service-item .content .text { margin-top: 8px; }
}

/* Big footer line when it is a phrase (not the brand name): sized by gc.js to fill the width (18 Oct) */
.gc-footer__big--fit { letter-spacing: -.03em; line-height: .92; white-space: nowrap; transition: none !important; }
@media (max-width: 575.98px) { .gc-footer__big--fit { white-space: normal; } }

/* Header always visible: fixed to the top while scrolling (18 Oct) */
header .at-header-area.header-transparent { position: fixed; top: 0; left: 0; right: 0; z-index: 990; background: var(--at-neutral-0, #fff); transition: box-shadow .25s ease, background-color .25s ease; }
header:has(#header-sticky.header-sticky) .at-header-area { box-shadow: 0 1px 0 rgba(0,0,0,.08), 0 8px 24px rgba(0,0,0,.06); }
[data-bs-theme=dark] header:has(#header-sticky.header-sticky) .at-header-area { box-shadow: 0 1px 0 rgba(255,255,255,.08), 0 8px 24px rgba(0,0,0,.4); }
/* the floating "MENU" button is no longer needed: the header's own menu button stays on screen */
header .hamburger-sticky-menu { display: none !important; }

/* Touch devices: native scrolling (no ScrollSmoother). Drop the page-sized GPU layer that iOS Safari
   can't hold (blank banners / frozen video) and keep the fixed footer reveal working. */
.gc-touch #smooth-content main { will-change: auto; }
.gc-touch .footer-fixed-bottom { will-change: auto; }
.gc-touch #smooth-wrapper, .gc-touch #smooth-content { overflow: visible; }
/* Phones: Bootstrap .g-5 rows are wider than the container padding and pushed pages 12px sideways
   (the browser then zooms the whole page out a little). */
@media (max-width: 767.98px) {
  main .row.g-5, main .row.gx-5 { --bs-gutter-x: 1.5rem; }
}
main { overflow-x: clip; }
.mfp-iframe-scaler .gc-mfp-drive { position: absolute; left: 0; right: 0; top: 100%; margin-top: 12px; text-align: center; color: #fff; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; }
.mfp-iframe-scaler .gc-mfp-drive:hover { color: var(--gc-orange, #ED4924); }

/* Phones/tablets: the stacking service cards and the showreel reveal use CSS sticky instead of
   GSAP pinning (iOS/Android handle sticky natively, so it stays smooth). gc.js sets each card's
   sticky top so tall cards are fully seen before the next one slides over. */
.gc-touch .scroll-section:not(.scroll-active-item) .wrapper { height: auto !important; }
.gc-touch .scroll-section:not(.scroll-active-item) .item,
.gc-touch .scroll-section:not(.scroll-active-item) .item:first-child,
.gc-touch .scroll-section:not(.scroll-active-item) .item:not(:first-child) {
  position: sticky !important; top: var(--gc-stick, 72px); min-height: 0 !important; height: auto !important;
  transform-origin: center top; will-change: auto;
}
.gc-touch .scroll-section:not(.scroll-active-item) .item:not(:first-child) > .container { box-shadow: 0 -14px 28px rgba(0, 0, 0, .08); border-radius: 24px 24px 0 0; }
.gc-touch .scroll-section .item img.img-cover { height: auto; aspect-ratio: 4 / 3; }

.gc-touch .postbox-scroll-zoom .postbox-item-wrap { height: 200vh; height: 200svh; position: relative; }
.gc-touch .postbox-scroll-zoom .postbox-item { position: sticky; top: 0; height: 100vh; height: 100svh; }
.gc-touch .postbox-scroll-zoom .postbox-scroll-zoom-img { will-change: auto; }

/* Video popup on phones: use the whole screen so the player (Drive/YouTube/MP4) is as big as possible,
   with the close button in its own strip above the video instead of on top of it. */
@media (max-width: 767.98px) {
  .gc-modal { padding: calc(env(safe-area-inset-top, 0px) + 64px) 10px calc(env(safe-area-inset-bottom, 0px) + 12px); background: #000; align-items: flex-start; }
  .gc-modal__box, .gc-modal.is-vertical .gc-modal__box { width: 100%; height: 100%; justify-content: center; }
  .gc-modal__frame { border-radius: 10px; max-height: calc(100svh - 150px); }
  .gc-modal.is-vertical .gc-modal__frame { width: auto; height: min(calc((100vw - 20px) * 16 / 9), calc(100svh - 150px)); max-width: 100%; aspect-ratio: 9 / 16; }
  .gc-modal__close { position: fixed; top: calc(env(safe-area-inset-top, 0px) + 12px); right: 12px; }
  .gc-modal__title { margin-top: 10px; font-size: 15px; }
}

/* Phones/tablets: testimonials become a swipe carousel that also moves on its own (gc.js). */
.gc-touch .scroll-active-item .wrapper { height: auto !important; }
.gc-touch .scroll-active-item .list { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 6px; }
.gc-touch .scroll-active-item .list::-webkit-scrollbar { display: none; }
.gc-touch .scroll-active-item .item,
.gc-touch .scroll-active-item .item:first-child,
.gc-touch .scroll-active-item .item:not(:first-child) { position: relative !important; flex: 0 0 88%; min-height: 0 !important; height: auto !important; transform: none !important; scroll-snap-align: start; }
.gc-touch .scroll-active-item .item > figure { height: 100%; }
.gc-touch .gc-tdots { display: flex; justify-content: center; gap: 8px; margin-top: 14px; }
.gc-touch .gc-tdots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 99px; background: currentColor; opacity: .25; transition: width .3s, opacity .3s; }
.gc-touch .gc-tdots button.is-on { width: 22px; opacity: 1; background: var(--gc-orange, #ED4924); }

/* ===== Thread banner (home "Who we are"): work cards tied to a figure by orange threads ===== */
.gc-thread { background: var(--at-neutral-0, #fff); color: var(--at-neutral-950, #000); padding: 40px 0 70px; overflow: hidden; }
.gc-thread__inner { width: min(1720px, 100% - 48px); margin: 0 auto; }
.gc-thread__eyebrow { margin-bottom: 18px; }
.gc-thread__stage { position: relative; }
.gc-thread__pic { position: relative; aspect-ratio: 2.15 / 1; }
.gc-thread__lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; z-index: 1; pointer-events: none; }
.gc-thread__lines path { fill: none; stroke: var(--gc-orange, #ED4924); stroke-width: 1.4; stroke-linecap: round; opacity: .85; }
.gc-thread__lines path.is-hot { stroke-width: 2.6; opacity: 1; }
.gc-thread__card { position: absolute; left: var(--l); top: var(--t); width: calc(var(--w) * var(--k, 1)); z-index: 2; display: block; overflow: hidden; border-radius: 6px; background: var(--at-neutral-100, #eee); box-shadow: 0 0 0 2px var(--gc-orange, #ED4924), 0 10px 26px rgba(0, 0, 0, .14); }
.gc-thread__card--h { aspect-ratio: 4 / 3; }
.gc-thread__card--v { aspect-ratio: 4 / 5; }
.gc-thread__card--s { aspect-ratio: 1 / 1; }
.gc-thread__card--r { aspect-ratio: 9 / 16; }
.gc-thread__card > img, .gc-thread__card > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.gc-thread.is-drawn .gc-thread__card:hover, .gc-thread.is-drawn .gc-thread__card:focus-visible { transform: translateY(-6px) scale(1.04); box-shadow: 0 0 0 2px var(--gc-orange, #ED4924), 0 18px 40px rgba(0, 0, 0, .22); z-index: 5; }
.gc-thread__card:focus-visible { outline: 2px solid var(--gc-orange, #ED4924); outline-offset: 3px; }
.gc-thread__card.gc-play-hint::after { z-index: 2; width: 38px; height: 38px; margin: -19px 0 0 -19px; background-size: 12px; }
.gc-thread__tag { position: absolute; left: 8px; right: 8px; bottom: 8px; z-index: 2; color: #fff; font-size: 12px; line-height: 1.25; font-weight: 500; text-shadow: 0 1px 6px rgba(0, 0, 0, .6); opacity: 0; transform: translateY(4px); transition: opacity .25s, transform .25s; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gc-thread__card:hover .gc-thread__tag, .gc-thread__card:focus-visible .gc-thread__tag { opacity: 1; transform: none; }
/* figure on the right, feet on the same line as the heading's last line */
.gc-thread__figure { position: absolute; left: 64%; bottom: 0; height: 62%; z-index: 4; pointer-events: none; }
.gc-thread__figure img { height: 100%; width: auto; display: block; filter: drop-shadow(0 16px 22px rgba(0, 0, 0, .14)); }
.gc-thread__title { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; margin: 0; color: var(--gc-orange, #ED4924); font-family: var(--at-ff-heading); font-weight: 700; text-transform: uppercase; letter-spacing: -0.04em; line-height: .86; font-size: 7vw; pointer-events: none; }
.gc-thread__line { display: block; width: max-content; white-space: nowrap; }
.gc-thread__text { max-width: 620px; margin: 28px 0 0; font-size: 18px; line-height: 1.5; }
/* entrance: the threads grow out of the character's head and the reels fly out along them to their spots
   (gc.js sets --fx/--fy = distance from each card to the head, adds .is-drawn, then .is-entered when done) */
.gc-thread .gc-thread__lines path { stroke-dasharray: var(--len, 2000); stroke-dashoffset: var(--len, 2000); transition: stroke-dashoffset 1s cubic-bezier(.25, .7, .2, 1) var(--d, 0s), stroke-width .25s, opacity .25s; }
.gc-thread.is-drawn .gc-thread__lines path { stroke-dashoffset: 0; }
.gc-thread .gc-thread__card { opacity: 0; transform: translate(var(--fx, 0px), var(--fy, 0px)) scale(.1);
  transition: transform 1s cubic-bezier(.3, 1.35, .5, 1) var(--d, 0s), opacity .25s ease var(--d, 0s), box-shadow .35s; }
.gc-thread__brain { position: absolute; width: 2px; height: 2px; margin: 0; padding: 0; border: 0; background: none !important; opacity: 0; pointer-events: none; }
.gc-thread.is-drawn .gc-thread__card { opacity: 1; transform: none; }
.gc-thread.is-entered .gc-thread__card { transition: transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s, opacity .3s; }
/* after the entrance, small bright pulses keep travelling down each thread from the head to its reel */
.gc-thread .gc-thread__lines path.gc-flow { stroke-width: 3.2; stroke-linecap: round; stroke-dasharray: .01 30; stroke-dashoffset: 0; opacity: 0; transition: opacity .8s ease;
  animation: gc-flow var(--fd, 1.6s) linear infinite; animation-play-state: paused; }
.gc-thread.is-entered .gc-thread__lines path.gc-flow { opacity: .9; }
.gc-thread.is-floating .gc-thread__lines path.gc-flow { animation-play-state: running; }
@keyframes gc-flow { to { stroke-dashoffset: -30; } }
/* Floating like paper in the air: every card follows a smooth looping curve (figure-8 / oval drift)
   at its own speed, plus a slow separate tilt. Only translate + rotate are animated, so the browser
   runs it on the graphics chip without touching layout. */
@keyframes gc-float-a {
  0.000% { translate: 0.00px 7.34px; }
  2.778% { translate: 1.56px 10.57px; }
  5.556% { translate: 3.08px 12.52px; }
  8.333% { translate: 4.50px 12.96px; }
  11.111% { translate: 5.79px 11.84px; }
  13.889% { translate: 6.89px 9.29px; }
  16.667% { translate: 7.79px 5.62px; }
  19.444% { translate: 8.46px 1.27px; }
  22.222% { translate: 8.86px -3.23px; }
  25.000% { translate: 9.00px -7.34px; }
  27.778% { translate: 8.86px -10.57px; }
  30.556% { translate: 8.46px -12.52px; }
  33.333% { translate: 7.79px -12.96px; }
  36.111% { translate: 6.89px -11.84px; }
  38.889% { translate: 5.79px -9.29px; }
  41.667% { translate: 4.50px -5.62px; }
  44.444% { translate: 3.08px -1.27px; }
  47.222% { translate: 1.56px 3.23px; }
  50.000% { translate: 0.00px 7.34px; }
  52.778% { translate: -1.56px 10.57px; }
  55.556% { translate: -3.08px 12.52px; }
  58.333% { translate: -4.50px 12.96px; }
  61.111% { translate: -5.79px 11.84px; }
  63.889% { translate: -6.89px 9.29px; }
  66.667% { translate: -7.79px 5.62px; }
  69.444% { translate: -8.46px 1.27px; }
  72.222% { translate: -8.86px -3.23px; }
  75.000% { translate: -9.00px -7.34px; }
  77.778% { translate: -8.86px -10.57px; }
  80.556% { translate: -8.46px -12.52px; }
  83.333% { translate: -7.79px -12.96px; }
  86.111% { translate: -6.89px -11.84px; }
  88.889% { translate: -5.79px -9.29px; }
  91.667% { translate: -4.50px -5.62px; }
  94.444% { translate: -3.08px -1.27px; }
  97.222% { translate: -1.56px 3.23px; }
  100.000% { translate: -0.00px 7.34px; }
}
@keyframes gc-float-a-m {
  0.000% { translate: 0.00px 4.52px; }
  2.778% { translate: 0.87px 6.50px; }
  5.556% { translate: 1.71px 7.70px; }
  8.333% { translate: 2.50px 7.98px; }
  11.111% { translate: 3.21px 7.29px; }
  13.889% { translate: 3.83px 5.72px; }
  16.667% { translate: 4.33px 3.46px; }
  19.444% { translate: 4.70px 0.78px; }
  22.222% { translate: 4.92px -1.99px; }
  25.000% { translate: 5.00px -4.52px; }
  27.778% { translate: 4.92px -6.50px; }
  30.556% { translate: 4.70px -7.70px; }
  33.333% { translate: 4.33px -7.98px; }
  36.111% { translate: 3.83px -7.29px; }
  38.889% { translate: 3.21px -5.72px; }
  41.667% { translate: 2.50px -3.46px; }
  44.444% { translate: 1.71px -0.78px; }
  47.222% { translate: 0.87px 1.99px; }
  50.000% { translate: 0.00px 4.52px; }
  52.778% { translate: -0.87px 6.50px; }
  55.556% { translate: -1.71px 7.70px; }
  58.333% { translate: -2.50px 7.98px; }
  61.111% { translate: -3.21px 7.29px; }
  63.889% { translate: -3.83px 5.72px; }
  66.667% { translate: -4.33px 3.46px; }
  69.444% { translate: -4.70px 0.78px; }
  72.222% { translate: -4.92px -1.99px; }
  75.000% { translate: -5.00px -4.52px; }
  77.778% { translate: -4.92px -6.50px; }
  80.556% { translate: -4.70px -7.70px; }
  83.333% { translate: -4.33px -7.98px; }
  86.111% { translate: -3.83px -7.29px; }
  88.889% { translate: -3.21px -5.72px; }
  91.667% { translate: -2.50px -3.46px; }
  94.444% { translate: -1.71px -0.78px; }
  97.222% { translate: -0.87px 1.99px; }
  100.000% { translate: -0.00px 4.52px; }
}
@keyframes gc-float-b {
  0.000% { translate: 9.00px 0.00px; }
  2.778% { translate: 8.86px 2.26px; }
  5.556% { translate: 8.46px 4.45px; }
  8.333% { translate: 7.79px 6.50px; }
  11.111% { translate: 6.89px 8.36px; }
  13.889% { translate: 5.79px 9.96px; }
  16.667% { translate: 4.50px 11.26px; }
  19.444% { translate: 3.08px 12.22px; }
  22.222% { translate: 1.56px 12.80px; }
  25.000% { translate: 0.00px 13.00px; }
  27.778% { translate: -1.56px 12.80px; }
  30.556% { translate: -3.08px 12.22px; }
  33.333% { translate: -4.50px 11.26px; }
  36.111% { translate: -5.79px 9.96px; }
  38.889% { translate: -6.89px 8.36px; }
  41.667% { translate: -7.79px 6.50px; }
  44.444% { translate: -8.46px 4.45px; }
  47.222% { translate: -8.86px 2.26px; }
  50.000% { translate: -9.00px 0.00px; }
  52.778% { translate: -8.86px -2.26px; }
  55.556% { translate: -8.46px -4.45px; }
  58.333% { translate: -7.79px -6.50px; }
  61.111% { translate: -6.89px -8.36px; }
  63.889% { translate: -5.79px -9.96px; }
  66.667% { translate: -4.50px -11.26px; }
  69.444% { translate: -3.08px -12.22px; }
  72.222% { translate: -1.56px -12.80px; }
  75.000% { translate: -0.00px -13.00px; }
  77.778% { translate: 1.56px -12.80px; }
  80.556% { translate: 3.08px -12.22px; }
  83.333% { translate: 4.50px -11.26px; }
  86.111% { translate: 5.79px -9.96px; }
  88.889% { translate: 6.89px -8.36px; }
  91.667% { translate: 7.79px -6.50px; }
  94.444% { translate: 8.46px -4.45px; }
  97.222% { translate: 8.86px -2.26px; }
  100.000% { translate: 9.00px -0.00px; }
}
@keyframes gc-float-b-m {
  0.000% { translate: 5.00px 0.00px; }
  2.778% { translate: 4.92px 1.39px; }
  5.556% { translate: 4.70px 2.74px; }
  8.333% { translate: 4.33px 4.00px; }
  11.111% { translate: 3.83px 5.14px; }
  13.889% { translate: 3.21px 6.13px; }
  16.667% { translate: 2.50px 6.93px; }
  19.444% { translate: 1.71px 7.52px; }
  22.222% { translate: 0.87px 7.88px; }
  25.000% { translate: 0.00px 8.00px; }
  27.778% { translate: -0.87px 7.88px; }
  30.556% { translate: -1.71px 7.52px; }
  33.333% { translate: -2.50px 6.93px; }
  36.111% { translate: -3.21px 6.13px; }
  38.889% { translate: -3.83px 5.14px; }
  41.667% { translate: -4.33px 4.00px; }
  44.444% { translate: -4.70px 2.74px; }
  47.222% { translate: -4.92px 1.39px; }
  50.000% { translate: -5.00px 0.00px; }
  52.778% { translate: -4.92px -1.39px; }
  55.556% { translate: -4.70px -2.74px; }
  58.333% { translate: -4.33px -4.00px; }
  61.111% { translate: -3.83px -5.14px; }
  63.889% { translate: -3.21px -6.13px; }
  66.667% { translate: -2.50px -6.93px; }
  69.444% { translate: -1.71px -7.52px; }
  72.222% { translate: -0.87px -7.88px; }
  75.000% { translate: -0.00px -8.00px; }
  77.778% { translate: 0.87px -7.88px; }
  80.556% { translate: 1.71px -7.52px; }
  83.333% { translate: 2.50px -6.93px; }
  86.111% { translate: 3.21px -6.13px; }
  88.889% { translate: 3.83px -5.14px; }
  91.667% { translate: 4.33px -4.00px; }
  94.444% { translate: 4.70px -2.74px; }
  97.222% { translate: 4.92px -1.39px; }
  100.000% { translate: 5.00px -0.00px; }
}
@keyframes gc-float-c {
  0.000% { translate: 0.00px 11.59px; }
  2.778% { translate: 3.08px 12.43px; }
  5.556% { translate: 5.79px 12.90px; }
  8.333% { translate: 7.79px 12.98px; }
  11.111% { translate: 8.86px 12.67px; }
  13.889% { translate: 8.86px 11.96px; }
  16.667% { translate: 7.79px 10.90px; }
  19.444% { translate: 5.79px 9.50px; }
  22.222% { translate: 3.08px 7.82px; }
  25.000% { translate: 0.00px 5.90px; }
  27.778% { translate: -3.08px 3.80px; }
  30.556% { translate: -5.79px 1.58px; }
  33.333% { translate: -7.79px -0.69px; }
  36.111% { translate: -8.86px -2.93px; }
  38.889% { translate: -8.86px -5.08px; }
  41.667% { translate: -7.79px -7.09px; }
  44.444% { translate: -5.79px -8.87px; }
  47.222% { translate: -3.08px -10.39px; }
  50.000% { translate: -0.00px -11.59px; }
  52.778% { translate: 3.08px -12.43px; }
  55.556% { translate: 5.79px -12.90px; }
  58.333% { translate: 7.79px -12.98px; }
  61.111% { translate: 8.86px -12.67px; }
  63.889% { translate: 8.86px -11.96px; }
  66.667% { translate: 7.79px -10.90px; }
  69.444% { translate: 5.79px -9.50px; }
  72.222% { translate: 3.08px -7.82px; }
  75.000% { translate: 0.00px -5.90px; }
  77.778% { translate: -3.08px -3.80px; }
  80.556% { translate: -5.79px -1.58px; }
  83.333% { translate: -7.79px 0.69px; }
  86.111% { translate: -8.86px 2.93px; }
  88.889% { translate: -8.86px 5.08px; }
  91.667% { translate: -7.79px 7.09px; }
  94.444% { translate: -5.79px 8.87px; }
  97.222% { translate: -3.08px 10.39px; }
  100.000% { translate: -0.00px 11.59px; }
}
@keyframes gc-float-c-m {
  0.000% { translate: 0.00px 7.13px; }
  2.778% { translate: 1.71px 7.65px; }
  5.556% { translate: 3.21px 7.94px; }
  8.333% { translate: 4.33px 7.99px; }
  11.111% { translate: 4.92px 7.79px; }
  13.889% { translate: 4.92px 7.36px; }
  16.667% { translate: 4.33px 6.71px; }
  19.444% { translate: 3.21px 5.85px; }
  22.222% { translate: 1.71px 4.81px; }
  25.000% { translate: 0.00px 3.63px; }
  27.778% { translate: -1.71px 2.34px; }
  30.556% { translate: -3.21px 0.97px; }
  33.333% { translate: -4.33px -0.42px; }
  36.111% { translate: -4.92px -1.80px; }
  38.889% { translate: -4.92px -3.13px; }
  41.667% { translate: -4.33px -4.36px; }
  44.444% { translate: -3.21px -5.46px; }
  47.222% { translate: -1.71px -6.39px; }
  50.000% { translate: -0.00px -7.13px; }
  52.778% { translate: 1.71px -7.65px; }
  55.556% { translate: 3.21px -7.94px; }
  58.333% { translate: 4.33px -7.99px; }
  61.111% { translate: 4.92px -7.79px; }
  63.889% { translate: 4.92px -7.36px; }
  66.667% { translate: 4.33px -6.71px; }
  69.444% { translate: 3.21px -5.85px; }
  72.222% { translate: 1.71px -4.81px; }
  75.000% { translate: 0.00px -3.63px; }
  77.778% { translate: -1.71px -2.34px; }
  80.556% { translate: -3.21px -0.97px; }
  83.333% { translate: -4.33px 0.42px; }
  86.111% { translate: -4.92px 1.80px; }
  88.889% { translate: -4.92px 3.13px; }
  91.667% { translate: -4.33px 4.36px; }
  94.444% { translate: -3.21px 5.46px; }
  97.222% { translate: -1.71px 6.39px; }
  100.000% { translate: -0.00px 7.13px; }
}
@keyframes gc-tilt {
  0%, 100% { rotate: -1.3deg; }
  50% { rotate: 1.3deg; }
}
.gc-thread__card { will-change: translate, rotate; }
.gc-thread.is-floating .gc-thread__card { animation: gc-float-a var(--tx, 12s) linear var(--px, 0s) infinite, gc-tilt var(--tr, 9s) cubic-bezier(.45, 0, .55, 1) var(--pr, 0s) infinite; }
.gc-thread.is-floating .gc-thread__card:nth-of-type(3n+2) { animation-name: gc-float-b, gc-tilt; }
.gc-thread.is-floating .gc-thread__card:nth-of-type(3n) { animation-name: gc-float-c, gc-tilt; }
@media (max-width: 767.98px) {
  .gc-thread.is-floating .gc-thread__card { animation-name: gc-float-a-m, gc-tilt; }
  .gc-thread.is-floating .gc-thread__card:nth-of-type(3n+2) { animation-name: gc-float-b-m, gc-tilt; }
  .gc-thread.is-floating .gc-thread__card:nth-of-type(3n) { animation-name: gc-float-c-m, gc-tilt; }
}
@media (prefers-reduced-motion: reduce) {
  .gc-thread .gc-thread__lines path { transition: none; stroke-dashoffset: 0; }
  .gc-thread .gc-thread__lines path.gc-flow { display: none; }
  .gc-thread .gc-thread__card { opacity: 1; transform: none; transition: none; animation: none !important; }
}
@media (max-width: 1199.98px) {
  .gc-thread__pic { aspect-ratio: 16 / 10; }
  .gc-thread__figure { left: 63%; height: 60%; }
}
/* Phones: 8 cards above a smaller figure; the heading moves under the picture and wraps naturally. */
@media (max-width: 767.98px) {
  .gc-thread { padding: 24px 0 44px; }
  .gc-thread__inner { width: calc(100% - 28px); }
  .gc-thread__pic { aspect-ratio: auto; height: min(150vw, 620px); }
  .gc-thread__card { left: var(--ml); top: var(--mt); width: min(calc(var(--mw) * var(--mk, 1)), calc(min(150vw, 620px) * .124)); border-radius: 5px; box-shadow: 0 0 0 1.5px var(--gc-orange, #ED4924), 0 8px 18px rgba(0, 0, 0, .14); }
  .gc-thread__card--desk { display: none; }
  .gc-thread__card.gc-play-hint::after { width: 26px; height: 26px; margin: -13px 0 0 -13px; background-size: 9px; }
  .gc-thread__tag { display: none; }
  .gc-thread__figure { left: 50%; transform: translateX(-38%); height: 44%; }
  .gc-thread__title { position: relative; bottom: auto; margin-top: 18px; font-size: clamp(36px, 11.6vw, 60px) !important; line-height: .92; }
  .gc-thread__line { display: inline; width: auto; white-space: normal; }
  .gc-thread__line + .gc-thread__line::before { content: " "; }
  .gc-thread__text { font-size: 16px; margin-top: 16px; }
}

/* YouTube preview on a banner card: the player is cropped so its own buttons, logo and title fall outside the card;
   it fades in only once the video is really playing. Clicks pass through to the card link. */
.gc-thread__card { container-type: size; }
.gc-thread__yt { position: absolute; left: 50%; top: 50%; border: 0; pointer-events: none; opacity: 0; transition: opacity .8s ease;
  width: 960px; height: 540px; transform: translate(-50%, -50%) scale(var(--ys, .2)); }
.gc-thread__yt.is-vert { width: 540px; height: 960px; }
.gc-thread__card.has-yt .gc-thread__yt { opacity: 1; }
/* banner cards: clean, no play / view buttons on top of the work */
.gc-thread .gc-thread__card.gc-play-hint::after, .gc-thread .gc-thread__card.gc-play-hint::before { display: none !important; }
/* covers that can't play inside the card (Drive) drift slowly, so every card has movement until a preview clip is added */
@keyframes gc-kb { from { transform: scale(1.02) translate(0, 0); } to { transform: scale(1.1) translate(-2%, -1.5%); } }
.gc-thread.is-floating .gc-thread__card > img { animation: gc-kb 16s ease-in-out infinite alternate; will-change: transform; }
.gc-thread.is-floating .gc-thread__card:nth-of-type(2n) > img { animation-duration: 19s; animation-direction: alternate-reverse; }
@media (prefers-reduced-motion: reduce) { .gc-thread.is-floating .gc-thread__card > img { animation: none; } }

/* Work grid: automatic loading indicator (replaces the "Load more" button) */
.gc-load-more-wrap { padding: 18px 0 6px; }
.gc-autoload { display: inline-flex; gap: 8px; }
.gc-autoload i { width: 9px; height: 9px; border-radius: 50%; background: var(--gc-orange, #ED4924); animation: gc-autoload 1s ease-in-out infinite; }
.gc-autoload i:nth-child(2) { animation-delay: .15s; }
.gc-autoload i:nth-child(3) { animation-delay: .3s; }
@keyframes gc-autoload { 0%, 80%, 100% { opacity: .25; transform: scale(.7); } 40% { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .gc-autoload i { animation: none; opacity: .6; } }

/* Services page: "Also available" (services set to Also available in Admin → Services) */
.gc-also { margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--at-border-color, rgba(0, 0, 0, .12)); }
.gc-also__title { font-size: 14px; font-weight: 600; letter-spacing: .02em; color: var(--gc-orange, #ED4924); margin: 0 0 14px; }
.gc-also__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.gc-also__list a { display: block; height: 100%; padding: 14px 16px; border: 1px solid var(--at-border-color, rgba(0, 0, 0, .12)); border-radius: 10px; color: inherit; text-decoration: none; transition: border-color .2s, transform .2s; }
.gc-also__list a:hover { border-color: var(--gc-orange, #ED4924); transform: translateY(-2px); }
.gc-also__list strong { display: block; font-size: 17px; font-weight: 600; }
.gc-also__list span { display: block; margin-top: 4px; font-size: 14px; line-height: 1.45; opacity: .7; }
/* Home: "Also available" services cards (section services_also) */
.gc-also-home { position: relative; z-index: 3; padding: 90px 0 40px; background: var(--at-neutral-0, #fff); }
.gc-also-home__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px 48px; flex-wrap: wrap; margin-bottom: 36px; }
.gc-also-home__title { margin: 6px 0 0; font-size: clamp(30px, 3.4vw, 52px); line-height: 1.05; font-weight: 600; letter-spacing: -0.02em; }
.gc-also-home__text { max-width: 420px; margin: 0; font-size: 17px; line-height: 1.5; opacity: .75; }
.gc-also-home__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.gc-also-card { position: relative; display: flex; flex-direction: column; height: 100%; border: 1px solid var(--at-border-color, rgba(0, 0, 0, .12)); border-radius: 18px; overflow: hidden; color: inherit; text-decoration: none; background: var(--at-neutral-50, transparent); transition: border-color .25s, transform .25s, box-shadow .25s; }
.gc-also-card:hover, .gc-also-card:focus-visible { border-color: var(--gc-orange, #ED4924); transform: translateY(-4px); box-shadow: 0 16px 34px rgba(0, 0, 0, .08); }
.gc-also-card:focus-visible { outline: 2px solid var(--gc-orange, #ED4924); outline-offset: 3px; }
.gc-also-card__pic { display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.gc-also-card__pic img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.gc-also-card:hover .gc-also-card__pic img { transform: scale(1.05); }
.gc-also-card__body { display: block; padding: 20px 64px 22px 22px; }
.gc-also-card__name { display: block; font-size: 22px; font-weight: 600; line-height: 1.2; }
.gc-also-card__text { display: block; margin-top: 8px; font-size: 15px; line-height: 1.5; opacity: .72; }
.gc-also-card__go { position: absolute; right: 18px; bottom: 20px; width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--gc-orange, #ED4924); color: #fff; transition: transform .25s; }
.gc-also-card__go svg { width: 14px; height: 14px; }
.gc-also-card:hover .gc-also-card__go { transform: rotate(45deg); }
@media (max-width: 991.98px) { .gc-also-home__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) {
  .gc-also-home { padding: 60px 0 24px; }
  .gc-also-home__grid { grid-template-columns: 1fr; gap: 12px; }
  .gc-also-card { flex-direction: row; align-items: stretch; border-radius: 14px; }
  .gc-also-card__pic { width: 34%; aspect-ratio: auto; flex: none; }
  .gc-also-card__body { padding: 14px 52px 14px 14px; }
  .gc-also-card__name { font-size: 18px; }
  .gc-also-card__text { font-size: 13.5px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .gc-also-card__go { width: 32px; height: 32px; right: 12px; bottom: auto; top: 50%; margin-top: -16px; }
}

/* Services page: the same "Also available" picture cards, a little tighter above */
.gc-also-home--page { padding: 30px 0 110px; }
@media (max-width: 575.98px) { .gc-also-home--page { padding: 10px 0 70px; } }
