:root {
  --ink: #111111;
  --paper: #ffffff;
  --soft: #f3f3f3;
  --line: #dddddd;
  --muted: #727272;
  --accent: #ff2b8a;
  --shell: min(1240px, calc(100vw - 48px));
  --radius: 22px;
  --shadow: 0 24px 80px rgba(0, 0, 0, .13);
  --header-h: 72px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Arial, Helvetica, sans-serif; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
::selection { color: white; background: var(--accent); }
.spot-shell { width: var(--shell); margin-inline: auto; }
.spot-section { padding-block: clamp(88px, 10vw, 160px); }
.screen-reader-text, .spot-honeypot { 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; }
.skip-link { position: fixed; z-index: 99999; top: 12px; left: 12px; transform: translateY(-150%); background: var(--ink); color: #fff; padding: 12px 18px; border-radius: 999px; }
.skip-link:focus { transform: translateY(0); }

.spot-header { position: fixed; z-index: 500; top: 32px; left: 50%; width: min(1120px, calc(100vw - 28px)); transform: translateX(-50%); transition: transform .5s ease, opacity .4s ease; animation: headerFloat 7s ease-in-out infinite alternate; }
.spot-header.is-hidden { transform: translate(-50%, -150%); opacity: 0; }
.spot-header__inner { min-height: var(--header-h); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 34px; padding: 8px 10px 8px 24px; border: 1px solid rgba(255,255,255,.7); border-radius: 16px; background: rgba(255,255,255,.92); box-shadow: 0 18px 45px rgba(0,0,0,.14); backdrop-filter: blur(16px); }
.spot-header.is-scrolled .spot-header__inner { background: rgba(255,255,255,.97); }
.spot-brand { display: inline-flex; align-items: center; min-width: 96px; }
.spot-brand__logo { width: 96px; height: auto; }
.custom-logo-link { display: inline-flex; }
.custom-logo { max-width: 96px; height: auto; }
.spot-wordmark { display: inline-flex; align-items: baseline; font-size: 34px; line-height: 1; font-weight: 900; letter-spacing: -4px; }
.spot-wordmark span { position: relative; }
.spot-wordmark span::after { content: ''; position: absolute; width: 6px; height: 6px; right: 1px; top: -2px; border-radius: 50%; background: var(--accent); }
.spot-wordmark--light { color: #fff; font-size: 52px; }
.spot-menu { justify-self: center; }
.spot-menu__list, .spot-menu ul { display: flex; align-items: center; gap: clamp(20px, 2.5vw, 42px); margin: 0; padding: 0; list-style: none; }
.spot-menu a { position: relative; display: inline-block; padding-block: 10px; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.spot-menu a::after { content: ''; position: absolute; left: 0; bottom: 5px; width: 100%; height: 1px; background: var(--accent); transform: scaleX(0); transform-origin: right; transition: transform .3s ease; }
.spot-menu a:hover::after, .spot-menu a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.spot-header__cta { min-width: 128px; height: 54px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; border: 1px solid var(--line); border-radius: 12px; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; transition: background .25s ease, color .25s ease, transform .18s ease; }
.spot-header__cta:hover { color: #fff; background: var(--ink); }
.spot-menu-toggle { display: none; width: 42px; height: 42px; padding: 10px; border: 0; background: transparent; }
.spot-menu-toggle span:not(.screen-reader-text) { display: block; height: 1px; margin: 5px 0; background: var(--ink); transition: transform .25s ease, opacity .25s ease; }

.spot-cursor { position: fixed; z-index: 9999; top: -18px; left: -18px; width: 36px; height: 36px; pointer-events: none; opacity: 0; border: 1px solid rgba(255,43,138,.75); border-radius: 50%; mix-blend-mode: difference; transition: width .2s ease, height .2s ease, margin .2s ease, opacity .2s ease; }
.spot-cursor span { position: absolute; inset: 50% auto auto 50%; width: 5px; height: 5px; transform: translate(-50%, -50%); border-radius: 50%; background: #fff; }
.spot-cursor.is-visible { opacity: 1; }
.spot-cursor.is-active { width: 58px; height: 58px; margin: -11px 0 0 -11px; background: rgba(255,255,255,.12); }

.spot-hero { padding: 0 18px; }
.spot-hero__canvas { position: relative; min-height: min(860px, 94vh); overflow: hidden; border-radius: 0 0 28px 28px; background-image: var(--hero-image); background-size: cover; background-position: center; box-shadow: var(--shadow); transform: perspective(1400px) translate3d(var(--hero-x,0), var(--hero-y,0),0) rotateX(var(--hero-rx,0)) rotateY(var(--hero-ry,0)); transform-origin: center; transition: transform .22s ease-out; }
.spot-hero__canvas::before { content: ''; position: absolute; inset: -25px; background: inherit; background-size: cover; background-position: center; transform: scale(1.04); filter: saturate(.78) contrast(.92); }
.spot-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.60), rgba(0,0,0,.17) 58%, rgba(0,0,0,.25)), linear-gradient(0deg, rgba(0,0,0,.48), transparent 55%); }
.spot-hero__content { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; max-width: 1100px; margin: auto; padding: 120px 32px; text-align: center; color: #fff; animation: contentFloat 6.5s ease-in-out infinite alternate; }
.spot-kicker { margin: 0 0 22px; font-size: 11px; text-transform: uppercase; letter-spacing: .19em; }
.spot-kicker--dark { color: var(--accent); }
.spot-hero .spot-kicker { font-size: var(--spot-hero-eyebrow-size-desktop, 11px); }
.spot-hero--left .spot-hero__content { align-items: flex-start; text-align: left; }
.spot-hero--right .spot-hero__content { align-items: flex-end; text-align: right; }
.spot-hero--left .spot-hero__lead { margin-inline: 0 auto; }
.spot-hero--right .spot-hero__lead { margin-inline: auto 0; }
.spot-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.spot-hero__canvas--video::before { display: none; }
.spot-hero__video-toggle { position: absolute; z-index: 3; right: 24px; bottom: 24px; padding: 8px 12px; border: 1px solid rgba(255,255,255,.6); border-radius: 8px; color: #fff; background: rgba(0,0,0,.45); font: inherit; font-size: 11px; cursor: pointer; }
.spot-intro__device-image { display: block; width: auto; max-width: 100%; max-height: 660px; height: auto; object-fit: contain; }

.spot-hero h1 { width: 100%; max-width: 100%; margin: 0 auto; text-align: inherit; overflow-wrap: anywhere; font-size: var(--spot-hero-title-size-desktop, clamp(52px, 7.6vw, 112px)); line-height: .86; letter-spacing: -.065em; text-wrap: balance; }
.spot-hero__subline { margin: 20px 0 0; font-size: var(--spot-hero-subtitle-size-desktop, clamp(20px, 2.5vw, 36px)); letter-spacing: .1em; }
.spot-hero__lead { max-width: 620px; margin: 28px auto; font-size: clamp(15px, 1.2vw, 18px); line-height: 1.55; color: rgba(255,255,255,.84); }
.spot-link { display: inline-flex; align-items: center; gap: 20px; width: fit-content; padding: 8px 0; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; border-bottom: 1px solid var(--accent); transition: transform .18s ease; }
.spot-link i { color: var(--accent); font-style: normal; }
.spot-link--light { color: #fff; }
.spot-hero__orb { position: absolute; z-index: 2; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; backdrop-filter: blur(4px); animation: orbFloat 8s ease-in-out infinite; }
.spot-hero__orb--one { width: 42px; height: 42px; left: 12%; top: 34%; }
.spot-hero__orb--two { width: 20px; height: 20px; right: 14%; bottom: 22%; animation-delay: -3s; }
.spot-scroll-hint { position: absolute; z-index: 3; bottom: 26px; left: 50%; width: 28px; height: 52px; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; transform: translateX(-50%); }
.spot-scroll-hint span { position: absolute; top: 9px; left: 50%; width: 4px; height: 4px; border-radius: 50%; background: var(--accent); transform: translateX(-50%); animation: scrollDot 2s ease-in-out infinite; }

.spot-intro__grid { display: grid; grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr); column-gap: clamp(38px, 7vw, 110px); align-items: center; }
.spot-device-wrap { position: relative; display: grid; place-items: center; min-height: 510px; }
.spot-device { position: relative; width: min(250px, 70vw); aspect-ratio: .48; padding: 12px; border: 5px solid #171717; border-radius: 42px; background: #e9e9e9; box-shadow: 0 20px 60px rgba(0,0,0,.09); animation: deviceFloat 7s ease-in-out infinite; }
.spot-device__notch { position: absolute; z-index: 2; top: 12px; left: 50%; width: 74px; height: 20px; border-radius: 99px; background: #111; transform: translateX(-50%); }
.spot-device__screen { height: 100%; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; padding: 26px 16px; overflow: hidden; border-radius: 29px; background: linear-gradient(160deg, #f7f7f7, #d8d8d8); }
.spot-device__screen::before { content: ''; display: block; width: 120%; aspect-ratio: 1; margin: auto -10% 30px; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #fff, #cfcfcf 56%, #b5b5b5); box-shadow: inset -15px -20px 40px rgba(0,0,0,.08); }
.spot-device__line { height: 7px; border-radius: 99px; background: #c3c3c3; }
.spot-device__line:nth-child(2) { width: 72%; }
.spot-device__line:nth-child(3) { width: 52%; background: var(--accent); }
.spot-intro__divider { position: relative; align-self: stretch; justify-self: center; width: 1px; background: var(--line); }
.spot-intro__divider span { position: sticky; top: 50vh; display: block; width: 18px; height: 34px; margin-left: -9px; border: 1px solid #c8c8c8; border-radius: 99px; background: #fff; }
.spot-intro__divider span::after { content: ''; position: absolute; left: 50%; bottom: 5px; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); transform: translateX(-50%); }
.spot-intro__copy img { width: 100%; aspect-ratio: 16/8.7; object-fit: cover; border-radius: 14px; filter: saturate(.85); }
.spot-intro__copy h2 { max-width: 700px; margin: 26px 0 14px; font-size: clamp(34px, 4.2vw, 64px); line-height: .94; letter-spacing: -.055em; }
.spot-intro__title span { display: block; }
.spot-intro__title-primary { color: var(--ink); font-family: "Arial Black", Arial, Helvetica, sans-serif; font-weight: 900; }
.spot-intro__title-secondary { color: #777; font-family: Arial, Helvetica, sans-serif; font-weight: 300; letter-spacing: -.045em; }
.spot-intro__copy p { max-width: 650px; margin: 0 0 28px; color: var(--muted); line-height: 1.65; }

.spot-sectors { overflow: hidden; padding: 18px 0 48px; }
.spot-sectors__row { --sectors-gap: 3vw; overflow: hidden; }
.spot-sectors__row + .spot-sectors__row { margin-top: -0.08em; }
.spot-sectors__track { display: flex; align-items: center; gap: var(--sectors-gap); width: max-content; will-change: transform; animation: sectorsMarquee 30s linear infinite; }
.spot-sectors__row--two .spot-sectors__track { animation-name: sectorsMarqueeReverse; animation-duration: 34s; }
.spot-sectors__group { display: flex; align-items: center; gap: var(--sectors-gap); flex: 0 0 auto; }
.spot-sectors span { white-space: nowrap; color: #d8d8d8; font-size: clamp(52px, 7.2vw, 118px); font-weight: 800; line-height: .92; letter-spacing: -.05em; }
.spot-sectors__row--one span:nth-child(2n), .spot-sectors__row--two span:nth-child(2n+1) { color: #6d6d6d; }

.spot-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 42px; }
.spot-section-heading h2 { margin: 0; font-size: clamp(42px, 5.5vw, 86px); line-height: .88; letter-spacing: -.06em; }
.spot-section-heading--services > p { max-width: 380px; margin: 0; color: var(--muted); line-height: 1.6; }
.spot-cases { overflow: hidden; }
.spot-carousel { --slide-width: min(480px, 76vw); }
.spot-carousel__viewport { overflow: hidden; cursor: grab; touch-action: pan-y; }
.spot-carousel__track { display: flex; align-items: stretch; gap: 18px; width: max-content; will-change: transform; }
.spot-carousel__track.is-dragging { cursor: grabbing; transition: none !important; }
.spot-carousel__slide { flex: 0 0 var(--slide-width); }
.spot-case-card { position: relative; min-height: 590px; overflow: hidden; border-radius: 14px; background: #d9d9d9; }
.spot-case-card a { display: block; height: 100%; }
.spot-case-card img { width: 100%; height: 100%; min-height: 590px; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .6s ease; }
.spot-case-card__shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.72), transparent 64%); }
.spot-case-card__meta { position: absolute; top: 24px; left: 24px; color: rgba(255,255,255,.76); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.spot-case-card__content { position: absolute; left: 26px; right: 26px; bottom: 26px; color: #fff; }
.spot-case-card__content strong, .spot-case-card__content .spot-case-card__title { display: block; max-width: 90%; font-size: clamp(30px, 3vw, 48px); line-height: .95; letter-spacing: -.04em; }
.spot-case-card__content small { display: inline-block; margin-top: 16px; padding: 6px 8px; border: 1px solid rgba(255,255,255,.48); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.spot-case-card:hover img { transform: scale(1.045); filter: saturate(1.08); }
.spot-carousel__controls { display: flex; justify-content: center; align-items: center; gap: 18px; margin-top: 28px; }
.spot-carousel__controls > button { width: 42px; height: 42px; border: 1px solid #d8d8d8; border-radius: 50%; background: #fff; cursor: pointer; transition: background .25s ease, color .25s ease; }
.spot-carousel__controls > button:hover { color: #fff; background: var(--ink); }
.spot-carousel__dots { display: flex; gap: 7px; }
.spot-carousel__dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: #d2d2d2; cursor: pointer; transition: width .25s ease, border-radius .25s ease, background .25s ease; }
.spot-carousel__dots button.is-active { width: 24px; border-radius: 99px; background: var(--accent); }

.spot-services { background: #fff; }
.spot-services__list { display: grid; gap: 14px; }
.spot-service-card { display: grid; grid-template-columns: minmax(190px, .62fr) minmax(420px, 1.65fr) 230px; min-height: 270px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.spot-service-card > * { padding: 28px; border-right: 1px solid var(--line); }
.spot-service-card > *:last-child { border-right: 0; }
.spot-service-card__meta { display: flex; flex-direction: column; justify-content: space-between; }
.spot-service-card__code { display: block; color: var(--accent); font-size: 10px; }
.spot-service-card h3 { margin: 0; font-size: 25px; line-height: .96; letter-spacing: -.035em; }
.spot-service-card h3 a { transition: color .25s ease; }
.spot-service-card h3 a:hover { color: var(--accent); }
.spot-service-card__body { display: flex; flex-direction: column; justify-content: space-between; gap: 28px; }
.spot-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 0; }
.spot-tags span { padding: 5px 7px; border: 1px solid #cfcfcf; font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }
.spot-service-card__body p { max-width: 630px; margin: 0; color: var(--muted); line-height: 1.65; }
.spot-service-card__image { display: grid; place-items: center; padding: 14px; overflow: hidden; background: #fafafa; }
.spot-service-card__image img { width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 9px; transition: transform .5s ease; }
.spot-service-card:hover .spot-service-card__image img { transform: scale(.97); }


.spot-indexable-figure { width: 100%; height: 100%; margin: 0; }
.spot-indexable-image { display: block; width: 100%; height: 100%; object-fit: cover; }
.spot-services-layout { overflow: hidden; }
.spot-services-hero { position: relative; }
.spot-services-hero__media { position: relative; min-height: clamp(330px, 36vw, 540px); overflow: hidden; background: #d7d7d7; transform: perspective(1400px) translate3d(var(--hero-x,0), var(--hero-y,0),0) rotateX(var(--hero-rx,0)) rotateY(var(--hero-ry,0)); transition: transform .22s ease-out; }
.spot-services-hero__media .spot-indexable-figure { position: absolute; inset: 0; }
.spot-services-hero__image { filter: grayscale(1) contrast(.92); transform: scale(1.04); }
.spot-services-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.36), rgba(255,255,255,.15) 42%, rgba(255,255,255,.28)); }
.spot-services-hero__content { position: absolute; z-index: 2; inset: 0; display: grid; place-content: center; padding-top: 70px; text-align: center; animation: contentFloat 6.5s ease-in-out infinite alternate; }
.spot-services-hero__content h1 { margin: 0; font-size: clamp(54px, 7vw, 104px); line-height: .9; letter-spacing: -.06em; }
.spot-services-hero__content p { margin: 26px 0 0; font-size: 13px; letter-spacing: .72em; text-indent: .72em; }
.spot-service-index { position: relative; padding: 46px 0 112px; background: #fff; }
.spot-service-index__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(28px, 4vw, 72px); }
.spot-service-index__item { min-width: 0; }
.spot-service-index__code { display: block; margin-bottom: 16px; color: var(--accent); font-size: 10px; letter-spacing: .05em; }
.spot-service-index__item h3 { margin: 0 0 15px; font-size: clamp(22px, 2.2vw, 34px); line-height: .95; letter-spacing: -.04em; }
.spot-service-index__item h3 a { transition: color .25s ease; }
.spot-service-index__item h3 a:hover { color: var(--accent); }
.spot-service-index__item .spot-tags { gap: 6px; }
.spot-page-scroll-hint { position: absolute; bottom: 26px; left: 50%; width: 28px; height: 52px; border: 1px solid #bdbdbd; border-radius: 999px; transform: translateX(-50%); }
.spot-page-scroll-hint span { position: absolute; top: 9px; left: 50%; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); transform: translateX(-50%); animation: scrollDot 2s ease-in-out infinite; }
.spot-service-details { padding: 30px 0 clamp(100px, 12vw, 190px); }
.spot-service-detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "content media"; align-items: center; gap: clamp(65px, 10vw, 150px); min-height: 570px; padding: clamp(55px, 7vw, 105px) 0; scroll-margin-top: 130px; }
.spot-service-detail--media-first { grid-template-areas: "media content"; }
.spot-service-detail__media { grid-area: media; }
.spot-service-detail__content { grid-area: content; max-width: 560px; }
.spot-service-detail__media .spot-indexable-figure { aspect-ratio: .91; overflow: hidden; border-radius: 12px; background: #efefef; }
.spot-service-detail__image { transition: transform .7s cubic-bezier(.2,.75,.2,1); }
.spot-service-detail:hover .spot-service-detail__image { transform: scale(1.025); }
.spot-service-detail__content h3 { margin: 0 0 28px; font-size: clamp(42px, 5vw, 76px); line-height: .9; letter-spacing: -.055em; }
.spot-service-detail__content p { margin: 0 0 18px; color: #333; font-size: 15px; line-height: 1.72; }
.spot-service-detail__content .spot-link { margin-top: 22px; }
.spot-services-page .spot-contact--paper { background: #fff; }
.spot-contact__aside-title { max-width: 210px; margin: 0 0 28px; font-size: 11px; line-height: 1.5; text-transform: uppercase; }

.spot-reviews { overflow: hidden; background: var(--soft); }
.spot-carousel--reviews { --slide-width: min(350px, 82vw); }
.spot-review-card { min-height: 500px; display: flex; flex-direction: column; padding: 36px 34px; border-radius: 13px; background: #fff; box-shadow: 0 15px 40px rgba(0,0,0,.04); }
.spot-stars { color: var(--accent); letter-spacing: .08em; }
.spot-review-card p, .spot-review-card__text { margin: 28px 0; color: #4f4f4f; font-size: 15px; line-height: 1.7; }
.spot-review-card__text p { margin: 0; }
.spot-review-card footer { display: flex; flex-direction: column; gap: 5px; margin-top: auto; padding-top: 22px; border-top: 1px solid #eee; }
.spot-review-card footer strong { font-size: 13px; }
.spot-review-card footer span { color: var(--muted); font-size: 11px; }

.spot-logos { padding-block: 54px; overflow: hidden; border-bottom: 1px solid var(--line); background: #fff; }
.spot-logo-marquee { overflow: hidden; }
.spot-logo-marquee__track { display: flex; align-items: center; gap: 74px; width: max-content; animation: logosMarquee 42s linear infinite; }
.spot-logo-marquee:hover .spot-logo-marquee__track { animation-play-state: paused; }
.spot-client-logo { flex: 0 0 auto; display: grid; place-items: center; min-width: 150px; height: 72px; filter: grayscale(1); opacity: .72; transition: opacity .3s ease, filter .3s ease; }
.spot-client-logo:hover { filter: grayscale(0); opacity: 1; }
.spot-client-logo img { max-width: 150px; max-height: 64px; object-fit: contain; }
.spot-client-logo--text { font-size: 20px; font-weight: 700; letter-spacing: -.03em; }

.spot-contact__grid { display: grid; grid-template-columns: .68fr 1.32fr; gap: clamp(60px, 8vw, 150px); align-items: start; }
.spot-contact__aside { padding-top: 118px; }
.spot-contact__heading { margin-bottom: 56px; }
.spot-contact__heading h2 { max-width: 780px; margin: 0; font-size: clamp(38px, 4.2vw, 64px); line-height: .94; letter-spacing: -.055em; }
.spot-contact__details { display: flex; flex-direction: column; gap: 8px; color: var(--muted); }
.spot-contact__details a:hover { color: var(--accent); }
.spot-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 30px; width: fit-content; min-width: 210px; padding: 18px 22px; border: 0; border-radius: 8px; color: #fff; background: var(--ink); cursor: pointer; transition: transform .18s ease, background .2s ease; }
.spot-button i { color: var(--accent); font-style: normal; }
.spot-button:hover { background: #2a2a2a; }

/* The contact form is managed in Fluent Forms (form ID 1). Keep its native
   labels, validation, consent fields and submission behaviour intact. */
.spot-form-embed .fluentform { color: var(--ink); }
.spot-form-embed .fluentform form { margin: 0; }
.spot-form-embed .fluentform .ff-el-group { margin-bottom: 30px; }
.spot-form-embed .fluentform .ff-t-container { display: flex; gap: 28px; align-items: start; }
.spot-form-embed .fluentform .ff-t-container > .ff-t-cell { min-width: 0; flex: 1; }
.spot-form-embed .fluentform .ff-el-input--label { margin-bottom: 9px; }
.spot-form-embed .fluentform .ff-el-input--label label { display: inline-block; margin: 0; color: var(--ink); font-size: 9px; font-weight: 400; line-height: 1.5; letter-spacing: .08em; text-transform: uppercase; }
.spot-form-embed .fluentform .ff-el-form-control:not([type="checkbox"]):not([type="radio"]):not([type="file"]) { width: 100%; height: auto; min-height: 44px; padding: 13px 0; border: 0; border-bottom: 1px solid #cfcfcf; border-radius: 0; box-shadow: none; outline: none; color: var(--ink); background: transparent; font: inherit; transition: border-color .2s ease; }
.spot-form-embed .fluentform textarea.ff-el-form-control { min-height: 100px !important; resize: vertical; }
.spot-form-embed .fluentform .ff-el-form-control:focus { border-color: var(--accent) !important; box-shadow: none !important; }
.spot-form-embed .fluentform .ff-el-form-check { margin-bottom: 10px; }
.spot-form-embed .fluentform .ff-el-form-check-label { display: inline-flex; align-items: flex-start; gap: 12px; color: var(--muted); font-size: 11px; line-height: 1.5; letter-spacing: 0; cursor: pointer; }
.spot-form-embed .fluentform .ff-el-form-check-input { flex: none; width: 14px; height: 14px; margin: 2px 0 0; accent-color: var(--accent); }
.spot-form-embed .fluentform .ff-el-form-check-label span { line-height: inherit; }
.spot-form-embed .fluentform .ff-btn-submit { display: inline-flex; align-items: center; justify-content: space-between; gap: 30px; min-width: 210px; min-height: 54px; padding: 18px 22px; border: 0; border-radius: 8px; box-shadow: none; color: #fff; background: var(--ink); font: inherit; text-align: left; cursor: pointer; transition: transform .18s ease, background .2s ease; }
.spot-form-embed .fluentform .ff-btn-submit::after { content: '↗'; color: var(--accent); }
.spot-form-embed .fluentform .ff-btn-submit:hover,
.spot-form-embed .fluentform .ff-btn-submit:focus { color: #fff; background: #2a2a2a; }
.spot-form-embed .fluentform .ff-el-is-error .ff-el-form-control { border-bottom-color: #a0194e; }
.spot-form-embed .fluentform .error, .spot-form-embed .fluentform .ff-el-is-error .text-danger { color: #a0194e; }
.spot-form-embed .fluentform .ff-message-success { padding: 14px 16px; border-radius: 8px; color: #1d6d3b; background: #eaf7ef; }

.spot-footer { padding: 78px 0 28px; color: rgba(255,255,255,.72); background: #181818; }
.spot-footer__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; }
.spot-footer__logo { width: 138px; height: auto; margin-bottom: 28px; }
.spot-footer p { max-width: 270px; line-height: 1.6; }
.spot-footer a:hover { color: #fff; }
.spot-footer__nav ul { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; margin: 0; padding: 0; list-style: none; }
.spot-footer__nav a { color: #666; font-size: clamp(34px, 4.6vw, 68px); font-weight: 800; line-height: .9; letter-spacing: -.045em; text-transform: uppercase; transition: color .25s ease; }
.spot-footer__nav a:hover { color: #fff; }
.spot-footer__legal { display: flex; justify-content: space-between; gap: 30px; margin-top: 70px; padding-top: 20px; border-top: 1px solid #2c2c2c; font-size: 10px; }
.spot-basic-page, .spot-case-single__content { padding-top: 150px; padding-bottom: 110px; }
.spot-case-single__hero { position: relative; min-height: 70vh; display: flex; align-items: flex-end; color: #fff; background: #222; }
.spot-case-single__hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .62; }
.spot-case-single__hero .spot-shell { position: relative; z-index: 1; padding-bottom: 70px; }
.spot-case-single__hero h1 { margin: 0; font-size: clamp(54px, 9vw, 140px); line-height: .82; }

[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s ease; }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }
@keyframes headerFloat { from { margin-top: 0; } to { margin-top: 7px; } }
@keyframes contentFloat { from { transform: translateY(-5px); } to { transform: translateY(8px); } }
@keyframes orbFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-18px); } }
@keyframes deviceFloat { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-16px) rotate(1deg); } }
@keyframes scrollDot { 0% { transform: translate(-50%,0); opacity: 0; } 30% { opacity: 1; } 100% { transform: translate(-50%,25px); opacity: 0; } }
@keyframes sectorsMarquee { to { transform: translateX(calc(-50% - var(--sectors-gap) / 2)); } }
@keyframes sectorsMarqueeReverse { from { transform: translateX(calc(-50% - var(--sectors-gap) / 2)); } to { transform: translateX(0); } }
@keyframes logosMarquee { to { transform: translateX(-50%); } }

@media (max-width: 980px) {
  :root { --shell: min(100% - 32px, 760px); }
  .spot-header__inner { grid-template-columns: auto 1fr auto; gap: 12px; }
  .spot-menu-toggle { display: block; justify-self: end; }
  .spot-header__cta { min-width: 96px; }
  .spot-menu { position: fixed; inset: calc(var(--header-h) + 20px) 0 auto; display: none; padding: 26px; border-radius: 18px; background: rgba(255,255,255,.98); box-shadow: var(--shadow); }
  .spot-menu.is-open { display: block; }
  .spot-menu__list, .spot-menu ul { flex-direction: column; align-items: flex-start; gap: 4px; }
  .spot-menu a { font-size: 28px; font-weight: 800; letter-spacing: -.04em; }
  .spot-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .spot-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .spot-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .spot-intro__grid { grid-template-columns: 1fr; }
  .spot-intro__divider { display: none; }
  .spot-service-index__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 46px; }
  .spot-service-detail { gap: 54px; }
  .spot-service-card { grid-template-columns: 170px minmax(0, 1fr) 190px; }
  .spot-service-card > * { padding: 24px; }
  .spot-contact__grid { grid-template-columns: 1fr; }
  .spot-contact__form-wrap { order: 1; }
  .spot-contact__aside { order: 2; padding-top: 0; }
}

@media (max-width: 680px) {
  :root { --shell: calc(100vw - 28px); --header-h: 62px; }
  .spot-section { padding-block: 78px; }
  .spot-header { top: 18px; width: calc(100vw - 20px); animation: none; }
  .spot-header__inner { padding-left: 16px; border-radius: 13px; }
  .spot-wordmark { font-size: 28px; }
  .spot-header__cta { display: none; }
  .spot-menu-toggle { grid-column: 3; }
  .spot-hero { padding: 0 8px; }
  .spot-hero__canvas { min-height: 88vh; border-radius: 0 0 20px 20px; }
  .spot-hero__content { padding-inline: 20px; }
  .spot-hero h1 { width: 100%; font-size: var(--spot-hero-title-size-mobile, clamp(32px, 9vw, 48px)); line-height: .92; }
  .spot-hero__subline { font-size: var(--spot-hero-subtitle-size-mobile, 18px); }
  .spot-hero .spot-kicker { font-size: var(--spot-hero-eyebrow-size-mobile, 11px); }
  .spot-device-wrap { min-height: 430px; }
  .spot-intro__device-image { max-height: 430px; }
  .spot-services-hero__media { min-height: 330px; }
  .spot-services-hero__content { padding-top: 52px; }
  .spot-service-index { padding-top: 38px; }
  .spot-service-index__grid { grid-template-columns: 1fr; gap: 34px; }
  .spot-service-detail,
  .spot-service-detail--media-first,
  .spot-service-detail--text-first { grid-template-columns: 1fr; grid-template-areas: "media" "content"; gap: 34px; min-height: 0; padding: 58px 0; }
  .spot-service-detail__content { max-width: none; }
  .spot-service-detail__media .spot-indexable-figure { aspect-ratio: 4 / 5; }
  .spot-service-detail__content h3 { font-size: 48px; }
  .spot-section-heading { align-items: flex-start; flex-direction: column; }
  .spot-section-heading h2 { font-size: 48px; }
  .spot-case-card, .spot-case-card img { min-height: 500px; }
  .spot-service-card { grid-template-columns: 1fr; }
  .spot-service-card > * { border-right: 0; border-bottom: 1px solid var(--line); }
  .spot-service-card > *:last-child { border-bottom: 0; }
  .spot-service-card__image { grid-row: 1; min-height: 340px; padding: 14px; }
  .spot-service-card__image img { width: 100%; height: 100%; aspect-ratio: 4 / 5; }
  .spot-service-card__meta { min-height: 150px; }
  .spot-service-card__body { min-height: 220px; }
  .spot-review-card { min-height: 470px; }
  .spot-form-embed .fluentform .ff-t-container { flex-direction: column; gap: 0; }
  .spot-form-embed .fluentform .ff-t-container > .ff-t-cell { width: 100%; flex: auto; }
  .spot-footer__grid { grid-template-columns: 1fr; }
  .spot-footer__nav ul { align-items: flex-start; }
  .spot-footer__legal { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
}

/* === SPOT 1.3: dynamic services, megamenu and Chi siamo === */
.spot-menu__list > li { position: relative; }
.spot-menu-item--services > a { padding-right: 14px; }
.spot-menu-item--services > a::before { content: '⌄'; position: absolute; right: 0; top: 50%; font-size: 10px; transform: translateY(-58%); transition: transform .25s ease; }
.spot-menu-item--services:hover > a::before,
.spot-menu-item--services:focus-within > a::before { transform: translateY(-42%) rotate(180deg); }
.spot-megamenu { position: absolute; z-index: 40; top: calc(100% + 17px); left: 50%; width: min(820px, 78vw); display: grid; grid-template-columns: .72fr 1.45fr; gap: 28px; padding: 28px; border: 1px solid rgba(0,0,0,.08); border-radius: 16px; background: rgba(255,255,255,.985); box-shadow: 0 26px 80px rgba(0,0,0,.16); opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%, 12px); transition: opacity .25s ease, visibility .25s ease, transform .3s cubic-bezier(.2,.75,.2,1); }
.spot-megamenu::before { content: ''; position: absolute; left: 0; right: 0; bottom: 100%; height: 20px; }
.spot-menu-item--services:hover .spot-megamenu,
.spot-menu-item--services:focus-within .spot-megamenu { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
.spot-megamenu__intro { display: flex; flex-direction: column; align-items: flex-start; min-height: 230px; padding: 22px; border-radius: 12px; color: #fff; background: #191919; }
.spot-megamenu__intro span { color: var(--accent); font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }
.spot-megamenu__intro strong { max-width: 210px; margin-top: 20px; font-size: 24px; line-height: 1.02; letter-spacing: -.04em; }
.spot-megamenu__intro a { margin-top: auto; padding: 0; color: #fff; font-size: 9px; }
.spot-megamenu__intro a::after,
.spot-megamenu__service::after { display: none !important; }
.spot-megamenu__services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--line); }
.spot-megamenu__service { display: grid !important; grid-template-columns: auto 1fr; align-content: start; gap: 6px 13px; min-height: 112px; padding: 18px !important; background: #fff; transition: background .25s ease !important; }
.spot-megamenu__service:hover { background: #f7f7f7; }
.spot-megamenu__service > span { grid-row: 1 / span 2; color: var(--accent); font-size: 9px; }
.spot-megamenu__service strong { font-size: 16px; line-height: 1; letter-spacing: -.03em; }
.spot-megamenu__service small { color: var(--muted); font-size: 9px; line-height: 1.35; text-transform: none; letter-spacing: 0; }

.spot-service-index__grid { grid-template-columns: repeat(var(--service-count, 4), minmax(0, 1fr)); }
.spot-service-card__image .spot-indexable-figure { height: 100%; }
.spot-service-card__image-file { width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 9px; }
.spot-contact--paper { background: #fff; }
.spot-contact--muted { background: var(--soft); }

.spot-about-layout { overflow: hidden; }
.spot-about-hero { position: relative; }
.spot-about-hero__media { position: relative; min-height: clamp(390px, 42vw, 620px); overflow: hidden; background: #b8b1aa; transform: perspective(1400px) translate3d(var(--hero-x,0), var(--hero-y,0),0) rotateX(var(--hero-rx,0)) rotateY(var(--hero-ry,0)); transition: transform .22s ease-out; }
.spot-about-hero__media .spot-indexable-figure { position: absolute; inset: 0; }
.spot-about-hero__image { transform: scale(1.03); filter: saturate(.82) contrast(.96); }
.spot-about-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(255,255,255,.08) 45%, rgba(0,0,0,.08)); }
.spot-about-hero__content { position: absolute; z-index: 2; inset: 0; display: grid; place-content: center; padding-top: 92px; text-align: center; animation: contentFloat 6.5s ease-in-out infinite alternate; }
.spot-about-hero__content h1 { margin: 0; font-size: clamp(58px, 8.5vw, 128px); line-height: .88; letter-spacing: -.065em; }

.spot-about-method { padding-bottom: clamp(60px, 6vw, 100px); }
.spot-about-method__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.12fr); gap: clamp(65px, 9vw, 145px); align-items: center; }
.spot-about-method__media .spot-indexable-figure { aspect-ratio: .83; overflow: hidden; border-radius: 12px; background: #222; }
.spot-about-method__image { transition: transform .7s cubic-bezier(.2,.75,.2,1); }
.spot-about-method__media:hover .spot-about-method__image { transform: scale(1.025); }
.spot-about-method__content { max-width: 650px; }
.spot-about-method__content h2,
.spot-about-crew__content h2 { margin: 0 0 30px; font-size: clamp(42px, 5vw, 74px); line-height: .91; letter-spacing: -.055em; }
.spot-about-method__content p,
.spot-about-crew__content p { margin: 0 0 18px; color: #333; font-size: 15px; line-height: 1.72; }

.spot-about-crew { padding-top: 40px; }
.spot-about-crew__grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: clamp(60px, 9vw, 145px); align-items: center; }
.spot-about-crew__content { max-width: 590px; }
.spot-about-crew__visual { display: grid; grid-template-columns: minmax(180px, .78fr) minmax(250px, 1.22fr); gap: clamp(22px, 3.2vw, 52px); align-items: center; }
.spot-about-crew__brain .spot-indexable-figure { aspect-ratio: 1.18; }
.spot-about-crew__image { object-fit: contain; }
.spot-about-crew__claim { margin: 0; font-size: clamp(25px, 2.45vw, 40px); line-height: .98; letter-spacing: -.045em; font-weight: 800; text-transform: uppercase; }
.spot-about-crew__claim span,
.spot-about-crew__claim strong { display: block; }
.spot-about-crew__claim span { color: #202020; }
.spot-about-crew__claim strong { margin-top: 4px; color: var(--accent); font-weight: 800; }

.spot-about-team { padding-top: 40px; padding-bottom: clamp(120px, 15vw, 230px); }
.spot-about-team__grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(45px, 8vw, 130px); align-items: center; }
.spot-about-team h2 { margin: 0; color: #666; font-size: clamp(26px, 2.55vw, 42px); font-weight: 400; line-height: .98; letter-spacing: -.035em; }
.spot-about-team h2 span { color: var(--accent); }
.spot-about-team__roles { position: relative; display: flex; flex-direction: column; align-items: flex-start; min-height: 360px; justify-content: center; color: #c5c5c5; font-size: clamp(30px, 4vw, 66px); font-weight: 800; line-height: .9; letter-spacing: -.045em; text-transform: uppercase; }
.spot-about-team__roles::before,
.spot-about-team__roles::after { content: ''; position: absolute; z-index: 2; left: -10%; right: -10%; height: 32%; pointer-events: none; }
.spot-about-team__roles::before { top: 0; background: linear-gradient(#fff, rgba(255,255,255,0)); }
.spot-about-team__roles::after { bottom: 0; background: linear-gradient(rgba(255,255,255,0), #fff); }
.spot-about-team__roles span { filter: blur(3px); opacity: .38; }
.spot-about-team__roles strong:nth-of-type(1),
.spot-about-team__roles strong:nth-of-type(5) { filter: blur(1.7px); opacity: .58; }
.spot-about-team__roles strong:nth-of-type(2),
.spot-about-team__roles strong:nth-of-type(4) { opacity: .82; }
.spot-about-team__roles strong:nth-of-type(3) { color: #aaa; }

@media (max-width: 980px) {
  .spot-megamenu { width: min(720px, 92vw); }
  .spot-about-method__grid,
  .spot-about-crew__grid { gap: 54px; }
  .spot-about-team__grid { grid-template-columns: 1fr; }
  .spot-about-team__roles { min-height: 310px; }
}

@media (max-width: 980px) {
  .spot-menu { max-height: calc(100vh - 110px); overflow-y: auto; }
  .spot-menu-item--services { width: 100%; }
  .spot-menu-item--services > a::before { display: none; }
  .spot-megamenu { position: static; width: 100%; display: grid; grid-template-columns: 1fr; gap: 10px; margin: 8px 0 15px; padding: 12px; border: 0; border-radius: 12px; background: #f3f3f3; box-shadow: none; opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  .spot-megamenu__intro { min-height: 135px; }
  .spot-megamenu__services { grid-template-columns: 1fr 1fr; }
  .spot-megamenu__service { min-height: 90px; }
  .spot-menu .spot-megamenu a { font-size: inherit; }
}

@media (max-width: 680px) {
  .spot-megamenu__services { grid-template-columns: 1fr; }
  .spot-megamenu__intro { display: none; }
  .spot-about-hero__media { min-height: 360px; }
  .spot-about-hero__content { padding-top: 60px; }
  .spot-about-method__grid,
  .spot-about-crew__grid { grid-template-columns: 1fr; gap: 34px; }
  .spot-about-method__media { grid-row: 1; }
  .spot-about-method__content { grid-row: 2; }
  .spot-about-method__content h2,
  .spot-about-crew__content h2 { font-size: 46px; }
  .spot-about-crew__visual { grid-row: 1; }
  .spot-about-crew__content { grid-row: 2; }
  .spot-about-team { padding-top: 10px; }
  .spot-about-crew__visual { grid-template-columns: minmax(105px, .7fr) minmax(180px, 1.3fr); gap: 20px; }
  .spot-about-crew__claim { font-size: clamp(22px, 6vw, 31px); }
  .spot-about-team h2 { font-size: clamp(29px, 8vw, 38px); }
  .spot-about-team__roles { min-height: 250px; font-size: 35px; }
  .spot-service-index__grid { grid-template-columns: 1fr; }
}

/* === SPOT 1.5: portfolio case history detail === */
.spot-case-card__tags,.spot-case-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.spot-case-card__tags a,.spot-case-card__tags span,.spot-case-tags a,.spot-case-tags span{display:inline-flex;padding:5px 8px;border:1px solid currentColor;border-radius:2px;font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.06em}.spot-case-card__tags{color:#fff}.spot-case-card__tags a{color:inherit}.spot-case-detail__hero{position:relative;height:min(76vh,820px);min-height:520px;overflow:hidden;background:#ddd}.spot-case-detail__hero-image{width:100%;height:100%;object-fit:cover}.spot-case-detail__hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.02))}.spot-case-intro__grid,.spot-case-challenge__grid,.spot-case-review__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(60px,10vw,170px);align-items:center}.spot-case-intro__content{max-width:560px}.spot-case-intro h1{margin:18px 0 24px;font-size:clamp(58px,7vw,108px);line-height:.85;letter-spacing:-.065em;text-transform:uppercase}.spot-case-intro p,.spot-case-challenge p{font-size:15px;line-height:1.7;color:#333}.spot-case-intro__media .spot-indexable-figure{aspect-ratio:.82;overflow:hidden;border-radius:11px}.spot-case-intro__media img{width:100%;height:100%;object-fit:cover}.spot-case-challenge{padding-top:30px}.spot-case-challenge__device .spot-indexable-figure{max-width:430px;margin:auto}.spot-case-challenge__device img{width:100%;height:auto;object-fit:contain}.spot-case-challenge__content h2,.spot-case-review h2,.spot-related-cases h2{margin:0 0 28px;font-size:clamp(38px,4.6vw,72px);line-height:.92;letter-spacing:-.055em}.spot-case-gallery{padding-top:40px}.spot-case-gallery__grid{display:grid;grid-template-columns:1fr 1.8fr;gap:28px}.spot-case-gallery__item{overflow:hidden;border-radius:10px}.spot-case-gallery__item img{width:100%;height:100%;min-height:360px;object-fit:cover}.spot-case-gallery__item--3{grid-column:1/-1}.spot-case-gallery__item--4{grid-column:1/2}.spot-case-gallery__item--5{grid-column:2/3}.spot-indexable-figure figcaption{margin-top:8px;color:var(--muted);font-size:10px}.spot-case-review{background:var(--soft)}.spot-case-review__grid{grid-template-columns:1.15fr .85fr}.spot-stars{color:var(--accent);letter-spacing:.16em;margin-bottom:20px}.spot-case-review blockquote{margin:0 0 24px;max-width:680px;font-size:15px;line-height:1.7}.spot-case-review .spot-indexable-figure{aspect-ratio:1.65;overflow:hidden;border-radius:10px}.spot-case-review img{width:100%;height:100%;object-fit:cover}.spot-related-cases{padding-block:clamp(110px,12vw,190px)}.spot-related-cases .spot-case-card{min-height:520px}.spot-related-cases .spot-case-card img{min-height:520px}
@media(max-width:760px){.spot-case-detail__hero{height:62vh;min-height:430px}.spot-case-intro__grid,.spot-case-challenge__grid,.spot-case-review__grid{grid-template-columns:1fr;gap:42px}.spot-case-intro__media{grid-row:1}.spot-case-intro__content{grid-row:2}.spot-case-intro h1{font-size:54px}.spot-case-challenge__device{grid-row:1}.spot-case-challenge__content{grid-row:2}.spot-case-gallery__grid{grid-template-columns:1fr}.spot-case-gallery__item,.spot-case-gallery__item--3,.spot-case-gallery__item--4,.spot-case-gallery__item--5{grid-column:auto}.spot-case-gallery__item img{min-height:300px}.spot-case-review__grid>div:last-child{grid-row:1}.spot-case-review__grid>div:first-child{grid-row:2}}
.spot-archive-title{font-size:clamp(64px,9vw,140px);line-height:.85;letter-spacing:-.07em;margin:35px 0 80px}.spot-archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}@media(max-width:680px){.spot-archive-grid{grid-template-columns:1fr}}

/* Portfolio archive — v1.6 */
.spot-portfolio-hero{position:relative;height:clamp(420px,58vw,690px);overflow:hidden;background:#ddd}.spot-portfolio-hero>img{width:100%;height:100%;object-fit:cover}.spot-portfolio-hero__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.13))}.spot-portfolio-hero h1{position:absolute;left:50%;bottom:clamp(40px,7vw,92px);transform:translateX(-50%);margin:0;color:#fff;font-size:clamp(58px,8vw,128px);line-height:.82;letter-spacing:-.065em;text-transform:uppercase;text-shadow:0 2px 18px rgba(0,0,0,.2)}
.spot-sectors--portfolio{padding-top:clamp(34px,5vw,76px);padding-bottom:clamp(50px,7vw,110px)}
.spot-portfolio-list{padding-top:0}.spot-masonry-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;gap:28px}.spot-masonry-card{min-height:0;height:clamp(430px,45vw,650px)}.spot-masonry-card a,.spot-masonry-card img{height:100%;min-height:0}.spot-masonry-card--1{grid-column:span 5}.spot-masonry-card--2{grid-column:span 7}.spot-masonry-card--3{grid-column:span 7}.spot-masonry-card--4{grid-column:span 5}.spot-masonry-card--5{grid-column:1/-1;height:clamp(440px,48vw,700px)}.spot-masonry-card__content{}.spot-portfolio-filter-heading{margin:0 0 58px}.spot-portfolio-filter-heading p{margin:0 0 8px;color:var(--accent);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.spot-portfolio-filter-heading h2{margin:0;font-size:clamp(46px,7vw,96px);line-height:.9;text-transform:uppercase}
.spot-portfolio-page .spot-header{top:28px}.spot-portfolio-page .spot-logos{margin-top:clamp(70px,9vw,140px)}
@media(max-width:900px){.spot-masonry-grid{gap:18px}.spot-masonry-card--1,.spot-masonry-card--2,.spot-masonry-card--3,.spot-masonry-card--4{grid-column:span 6}.spot-masonry-card--5{grid-column:1/-1}}
@media(max-width:680px){.spot-portfolio-hero{height:430px}.spot-portfolio-hero h1{bottom:48px}.spot-masonry-grid{grid-template-columns:1fr;gap:16px}.spot-masonry-card--1,.spot-masonry-card--2,.spot-masonry-card--3,.spot-masonry-card--4,.spot-masonry-card--5{grid-column:1;height:460px}.spot-masonry-card__content strong{font-size:34px}}

/* Reusable landing page template — v1.7 */
.spot-landing__hero { position: relative; min-height: clamp(420px, 48vw, 650px); display: grid; place-items: center; overflow: hidden; background: #d8d2c8; }
.spot-landing__hero-media, .spot-landing__hero-overlay { position: absolute; inset: 0; }
.spot-landing__hero-image { width: 100%; height: 100%; object-fit: cover; }
.spot-landing__hero-overlay { background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.12)), linear-gradient(90deg, rgba(0,0,0,.06), transparent 45%); }
.spot-landing__hero-content { position: relative; z-index: 2; padding-top: 74px; text-align: center; animation: contentFloat 6.5s ease-in-out infinite alternate; }
.spot-landing__hero h1 { margin: 0; color: var(--ink); font-size: clamp(52px, 7vw, 106px); font-weight: 800; line-height: .9; letter-spacing: -.055em; text-transform: uppercase; }
.spot-landing__content { background: #fff; }
.spot-landing__content-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); grid-template-areas: "media copy"; align-items: start; gap: clamp(70px, 9vw, 145px); padding-top: clamp(76px, 9vw, 140px); padding-bottom: clamp(105px, 13vw, 200px); }
.spot-landing__figure { grid-area: media; margin: 0; }
.spot-landing__figure img, .spot-landing__image-placeholder { width: 100%; aspect-ratio: .93; display: block; border-radius: 14px; object-fit: cover; background: linear-gradient(135deg,#eee,#d9d9d9); }
.spot-landing__figure figcaption { margin-top: 10px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.spot-landing__copy { grid-area: copy; max-width: 690px; }
.spot-landing__breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 44px; color: #a8a8a8; font-size: 11px; letter-spacing: .035em; text-transform: uppercase; }
.spot-landing__breadcrumb a:hover { color: var(--accent); }
.spot-landing__copy h2 { margin: 0 0 24px; font-size: clamp(40px, 4.6vw, 70px); line-height: .92; letter-spacing: -.05em; text-transform: uppercase; }
.spot-landing__copy h3 { margin: 0 0 30px; font-size: clamp(22px, 2.5vw, 36px); line-height: 1.02; letter-spacing: -.035em; text-transform: uppercase; }
.spot-landing__description p { margin: 0 0 22px; color: #333; font-size: 16px; line-height: 1.75; }
.spot-landing-page .spot-contact { background: var(--soft); }

@media (max-width: 760px) {
  .spot-landing__hero { min-height: 390px; }
  .spot-landing__hero-content { padding-top: 88px; }
  .spot-landing__content-grid { grid-template-columns: 1fr; grid-template-areas: "media" "copy"; gap: 48px; padding-top: 64px; padding-bottom: 100px; }
  .spot-landing__figure img, .spot-landing__image-placeholder { aspect-ratio: 1 / 1.08; }
  .spot-landing__breadcrumb { margin-bottom: 30px; }
  .spot-landing__copy h2 { font-size: clamp(38px, 12vw, 56px); }
  .spot-landing__copy h3 { font-size: 25px; }
}

/* Case History media v1.9 — video pulito, responsive e mai ritagliato */
.spot-case-intro__media:has(.spot-case-intro__video){display:flex;align-items:flex-start;justify-content:center}
.spot-case-intro__video{display:block;width:auto;height:auto;max-width:100%;max-height:min(82vh,960px);object-fit:contain;border-radius:var(--spot-radius,12px);background:transparent;pointer-events:none}
@media(max-width:760px){.spot-case-intro__video{width:100%;height:auto;max-height:none}}


/* Case History client social profiles */
.spot-case-socials{display:flex;align-items:center;gap:12px;margin-top:18px}
.spot-case-socials__link{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--ink);transition:color .2s ease,transform .2s ease}
.spot-case-socials__link svg{width:19px;height:19px;display:block;fill:currentColor;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.spot-case-socials__link--instagram svg{fill:none}
.spot-case-socials__link:hover,.spot-case-socials__link:focus-visible{color:var(--accent);transform:translateY(-2px)}

/* === SPOT 1.11: breadcrumbs + semantic card headings === */
.spot-breadcrumbs-wrap{position:relative;z-index:3;background:#fff}
.spot-breadcrumbs{padding-top:clamp(24px,3vw,42px);font-size:10px;line-height:1.4;letter-spacing:.12em;text-transform:uppercase;color:#9a9a9a}
.spot-breadcrumbs ol{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.spot-breadcrumbs li{display:flex;align-items:center;gap:8px}
.spot-breadcrumbs li:not(:last-child)::after{content:'·';color:#b8b8b8}
.spot-breadcrumbs a{color:#797979;text-decoration:none;transition:color .2s ease}
.spot-breadcrumbs a:hover,.spot-breadcrumbs a:focus-visible{color:var(--accent)}
.spot-breadcrumbs [aria-current="page"]{color:#a9a9a9}
.spot-case-card__title{display:block;max-width:90%;margin:0;color:inherit;font-size:clamp(30px,3vw,48px);font-weight:700;line-height:.95;letter-spacing:-.04em;text-transform:none}
.spot-basic-page__inner{padding-bottom:110px}
.spot-basic-page>.spot-breadcrumbs-wrap{margin-bottom:44px}
.spot-services-layout>.spot-breadcrumbs-wrap,.spot-about-layout>.spot-breadcrumbs-wrap,.spot-portfolio-archive>.spot-breadcrumbs-wrap,.spot-landing>.spot-breadcrumbs-wrap,.spot-case-detail>.spot-breadcrumbs-wrap{margin-bottom:0}
@media(max-width:760px){.spot-breadcrumbs{padding-top:22px;font-size:9px;letter-spacing:.09em}.spot-case-card__title{font-size:34px}.spot-basic-page>.spot-breadcrumbs-wrap{margin-bottom:28px}}

/* SEO-capable Portfolio copy blocks: optional, so the visual layout stays unchanged until content is added. */
.spot-portfolio-seo-block{max-width:980px;margin:0 auto clamp(52px,7vw,96px)}
.spot-portfolio-seo-block--footer{margin-top:clamp(64px,8vw,120px);margin-bottom:0}
.spot-portfolio-seo-block h2{margin:0 0 22px;font-size:clamp(34px,5vw,68px);line-height:.95;letter-spacing:-.045em;text-transform:uppercase}
.spot-portfolio-seo-block p,.spot-portfolio-seo-copy p{max-width:820px;margin:0;font-size:clamp(17px,1.7vw,22px);line-height:1.55}
.spot-portfolio-seo-copy{margin-top:24px;max-width:820px}
@media(max-width:680px){.spot-portfolio-seo-block{margin-bottom:48px}.spot-portfolio-seo-block--footer{margin-top:56px}.spot-portfolio-seo-block h2{font-size:38px}.spot-portfolio-seo-block p,.spot-portfolio-seo-copy p{font-size:17px}}

/* Related case histories — finite/bounded carousel (v1.13) */
.spot-related-cases .spot-carousel--bounded .spot-carousel__viewport { overflow: hidden; }
.spot-related-cases .spot-carousel--bounded .spot-carousel__track { width: 100%; }
.spot-related-cases .spot-carousel--bounded .spot-carousel__slide {
  flex: 0 0 calc((100% - 18px) / 2);
}
.spot-carousel--bounded .spot-carousel__controls > button:disabled {
  opacity: .28;
  cursor: default;
  pointer-events: none;
}
@media (max-width: 760px) {
  .spot-related-cases .spot-carousel--bounded .spot-carousel__slide { flex-basis: 100%; }
}

/* SEO service landing architecture */
.spot-service-seo { overflow: hidden; }
/* Macro service pages intentionally start from text: no image hero. */
.spot-service-seo--macro { padding-top: clamp(118px, 10vw, 158px); }
.spot-service-seo--macro > .spot-breadcrumbs-wrap { margin-bottom: 0; }
.spot-service-seo--macro .spot-breadcrumbs { padding-top: 0; }
.spot-service-seo-intro--macro { padding-top: clamp(46px, 6vw, 88px); }
.spot-service-seo-intro__eyebrow { display: block; margin-bottom: 18px; color: var(--accent); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }
.spot-service-seo-intro--macro .spot-service-seo-intro__content h1 { margin: 0 0 clamp(28px, 4vw, 52px); font-size: clamp(60px, 8vw, 116px); line-height: .84; letter-spacing: -.065em; }
.spot-service-seo-intro--macro .spot-service-seo-intro__content h2 { margin-top: 0; }
.spot-service-seo-hero { position: relative; }
.spot-service-seo-hero__media { position: relative; min-height: clamp(430px, 56vw, 760px); overflow: hidden; background: #d7d7d7; }
.spot-service-seo-hero__media .spot-indexable-figure { position: absolute; inset: 0; }
.spot-service-seo-hero__image { width: 100%; height: 100%; object-fit: cover; }
.spot-service-seo-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.28), rgba(0,0,0,.54)); }
.spot-service-seo-hero__content { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; padding: 140px 28px 70px; color: #fff; text-align: center; }
.spot-service-seo-hero__content > span { margin-bottom: 18px; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; }
.spot-service-seo-hero__content h1 { max-width: 1050px; margin: 0; font-size: clamp(54px, 8vw, 118px); line-height: .86; letter-spacing: -.065em; text-wrap: balance; }
.spot-service-seo--detail .spot-service-seo-hero__content h1 { font-size: clamp(48px, 7vw, 100px); }
.spot-service-seo-intro__grid { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(360px, .82fr); gap: clamp(52px, 8vw, 120px); align-items: center; }
.spot-service-seo-intro--detail .spot-service-seo-intro__grid { grid-template-columns: minmax(360px, .82fr) minmax(0, 1.02fr); }
.spot-service-seo-intro__content h2 { margin: 0 0 30px; font-size: clamp(40px, 5vw, 76px); line-height: .92; letter-spacing: -.055em; }
.spot-service-seo-intro__media .spot-indexable-figure { aspect-ratio: 4 / 5; overflow: hidden; border-radius: 14px; background: var(--soft); }
.spot-service-seo-content__image { width: 100%; height: 100%; object-fit: cover; }
.spot-richtext { color: #333; font-size: 15px; line-height: 1.74; }
.spot-richtext p { margin: 0 0 18px; }
.spot-richtext ul, .spot-richtext ol { margin: 0 0 22px; padding-left: 1.25em; }
.spot-richtext li + li { margin-top: 7px; }
.spot-richtext a { text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: .18em; }
.spot-service-seo-intro__content .spot-link { margin-top: 24px; }
.spot-service-subservices { background: var(--soft); }
.spot-service-see-also { border-top: 1px solid var(--line); }
.spot-service-links-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.spot-service-links-grid--subservices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.spot-service-link-card { min-width: 0; }
.spot-service-link-card > a { position: relative; display: flex; flex-direction: column; min-height: 310px; height: 100%; padding: 28px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.spot-service-link-card > a:hover { transform: translateY(-4px); border-color: #c7c7c7; box-shadow: 0 18px 45px rgba(0,0,0,.07); }
.spot-service-link-card__eyebrow { margin-bottom: auto; color: var(--accent); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.spot-service-link-card h3 { margin: 56px 0 18px; font-size: clamp(28px, 2.8vw, 44px); line-height: .95; letter-spacing: -.045em; }
.spot-service-link-card p { margin: 0 34px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.spot-service-link-card__arrow { position: absolute; right: 24px; bottom: 24px; color: var(--accent); font-size: 20px; }

@media (max-width: 980px) {
  .spot-service-seo-intro__grid,
  .spot-service-seo-intro--detail .spot-service-seo-intro__grid { grid-template-columns: 1fr 1fr; gap: 42px; }
  .spot-service-links-grid,
  .spot-service-links-grid--subservices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .spot-service-seo--macro { padding-top: 104px; }
  .spot-service-seo-intro--macro { padding-top: 36px; }
  .spot-service-seo-intro--macro .spot-service-seo-intro__content h1 { font-size: 58px; margin-bottom: 28px; }
  .spot-service-seo-hero__media { min-height: 430px; }
  .spot-service-seo-hero__content { padding: 120px 22px 52px; }
  .spot-service-seo-intro__grid,
  .spot-service-seo-intro--detail .spot-service-seo-intro__grid { grid-template-columns: 1fr; gap: 34px; }
  .spot-service-seo-intro__media { grid-row: 1; }
  .spot-service-seo-intro__content { grid-row: 2; }
  .spot-service-seo-intro__content h2 { font-size: 46px; }
  .spot-service-links-grid,
  .spot-service-links-grid--subservices { grid-template-columns: 1fr; }
  .spot-service-link-card > a { min-height: 260px; }
}

/* v1.18 — all SEO service pages start directly from content, without photographic hero. */
.spot-service-seo--detail.spot-service-seo--no-hero { padding-top: clamp(118px, 10vw, 158px); }
.spot-service-seo--detail.spot-service-seo--no-hero > .spot-breadcrumbs-wrap { margin-bottom: 0; }
.spot-service-seo--detail.spot-service-seo--no-hero .spot-breadcrumbs { padding-top: 0; }
.spot-service-seo--detail.spot-service-seo--no-hero .spot-service-seo-intro--detail { padding-top: clamp(46px, 6vw, 88px); }
.spot-service-seo--detail.spot-service-seo--no-hero .spot-service-seo-intro__content h1 { margin: 0 0 clamp(24px, 3vw, 40px); font-size: clamp(54px, 7vw, 98px); line-height: .88; letter-spacing: -.06em; text-wrap: balance; }
.spot-service-seo--detail.spot-service-seo--no-hero .spot-service-seo-intro__content h2 { font-size: clamp(34px, 4.1vw, 62px); }
@media (max-width: 760px) {
  .spot-service-seo--detail.spot-service-seo--no-hero { padding-top: 104px; }
  .spot-service-seo--detail.spot-service-seo--no-hero .spot-service-seo-intro--detail { padding-top: 36px; }
  .spot-service-seo--detail.spot-service-seo--no-hero .spot-service-seo-intro__content h1 { font-size: 58px; margin-bottom: 24px; }
}


/* v1.19 — Case History media: natural aspect ratios, no face/head cropping. */
.spot-case-intro__media{align-self:start}
.spot-case-intro__media .spot-indexable-figure{aspect-ratio:auto;overflow:visible;border-radius:11px;margin:0}
.spot-case-intro__media .spot-indexable-figure img{display:block;width:100%;height:auto;min-height:0;object-fit:contain;object-position:top center;border-radius:11px}
.spot-case-gallery__grid{--spot-masonry-row:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:var(--spot-masonry-row);grid-auto-flow:dense;gap:28px;align-items:start}
.spot-case-gallery__item,.spot-case-gallery__item--1,.spot-case-gallery__item--2,.spot-case-gallery__item--3,.spot-case-gallery__item--4,.spot-case-gallery__item--5{grid-column:auto;overflow:visible;border-radius:10px;margin:0;align-self:start}
.spot-case-gallery__item img{display:block;width:100%;height:auto;min-height:0;max-height:none;object-fit:contain;object-position:top center;border-radius:10px}
.spot-case-review .spot-indexable-figure{aspect-ratio:auto;overflow:visible;border-radius:10px}
.spot-case-review .spot-indexable-figure img{display:block;width:100%;height:auto;min-height:0;object-fit:contain;object-position:top center;border-radius:10px}
@media(max-width:760px){.spot-case-gallery__grid{grid-template-columns:1fr;grid-auto-rows:auto;display:block}.spot-case-gallery__item{margin-bottom:24px}.spot-case-gallery__item:last-child{margin-bottom:0}.spot-case-gallery__item img{width:100%;height:auto;min-height:0}}

/* Global SPOT social links (Customizer URLs). */
.spot-global-socials{display:flex;align-items:center;gap:10px;margin-top:22px}
.spot-global-socials__link{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--accent);transition:color .2s ease,transform .2s ease}
.spot-global-socials__link svg{display:block;width:18px;height:18px;fill:currentColor;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.spot-global-socials__link--instagram svg{fill:none}
.spot-global-socials__link:hover,.spot-global-socials__link:focus-visible{color:var(--ink);transform:translateY(-2px)}
.spot-footer .spot-global-socials__link:hover,.spot-footer .spot-global-socials__link:focus-visible{color:#fff}
.spot-global-socials--contact{margin-top:18px}

.spot-intro__device-link { display: grid; place-items: center; width: 100%; color: inherit; }
.spot-intro__device-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 8px; }
.spot-intro__device-video { width: 100%; }
.spot-intro__video-toggle { margin-top: 16px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 99px; background: #fff; color: var(--ink); font: inherit; font-size: 11px; cursor: pointer; }

/* Local paragraph font and presentation updates. */
@font-face { font-family: 'Schibsted Grotesk'; src: url('../fonts/schibsted-grotesk-latin.woff2') format('woff2'); font-style: normal; font-weight: 400 900; font-display: swap; }
p, blockquote, .spot-review-card__text, .spot-contact__details, .spot-form-embed input, .spot-form-embed textarea, .spot-form-embed select { font-family: 'Schibsted Grotesk', Arial, sans-serif; }
figcaption, .wp-caption-text, .gallery-caption { display: none !important; }
.spot-contact__maps { margin-top: 24px; }
.spot-about-crew__visual { display: block; min-width: 0; }
.spot-about-crew__brain .spot-indexable-figure { aspect-ratio: auto; overflow: hidden; border-radius: 14px; }
.spot-about-crew__image { display: block; width: 100%; height: auto; border-radius: 14px; object-fit: contain; }

/* Paragraph sizing; hero and small labels retain their dedicated controls. */
:root { --spot-paragraph-size: var(--spot-paragraph-desktop, 18px); }
body main p:not(.spot-kicker):not(.spot-contact__aside-title):not(.spot-hero__subline):not(.spot-hero__lead),
body main blockquote, body main .spot-richtext, body main .spot-review-card__text { font-size: var(--spot-paragraph-size); }
body main .spot-richtext li, body main .spot-case-intro__content li, body main .spot-landing__copy li { font-size: var(--spot-paragraph-size); }
.spot-footer p, .spot-footer__grid > div > a { font-size: var(--spot-footer-text-size, 14px); }
@media (max-width: 680px) { :root { --spot-paragraph-size: var(--spot-paragraph-mobile, 18px); } }

/* Focus On: portrait gallery with a glimpse of the next image. */
.spot-focus { min-width: 0; width: 100%; }
.spot-focus__heading { margin: 0 0 24px; font-size: clamp(28px,3vw,44px); line-height: 1; }
.spot-focus__viewport { overflow: hidden; }
.spot-focus__track { display: flex; gap: 18px; transition: transform .55s ease; }
.spot-focus__slide { flex: 0 0 88%; min-width: 0; }
.spot-focus__slide a { display: block; color: inherit; text-decoration: none; }
.spot-focus__slide img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 14px; }
.spot-focus__text { margin: 16px 0 0; font-weight: 600; line-height: 1.4; }
.spot-focus__controls { display: flex; align-items: center; gap: 18px; margin-top: 20px; }
.spot-focus__dots { display: flex; gap: 9px; flex-wrap: wrap; }
.spot-focus__dots button { width: 9px; height: 9px; border: 0; border-radius: 50%; padding: 0; background: #c6c6c6; cursor: pointer; }
.spot-focus__dots button[aria-current="true"] { background: var(--ink); }
.spot-focus__pause { border: 0; background: transparent; padding: 6px; font-size: 12px; cursor: pointer; color: var(--ink); }
.spot-focus button:focus-visible, .spot-focus a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .spot-focus__track { transition: none; } }

.spot-focus.is-static .spot-focus__slide { flex-basis: 100%; }
.spot-focus.is-static .spot-focus__controls { display: none; }

/* Review attribution names and company marks. */
.spot-review-attribution, .spot-review-card footer.spot-review-attribution { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 14px; }
.spot-review-attribution__names { display: flex; flex-direction: column; gap: 5px; min-width: 0; overflow-wrap: anywhere; }
.spot-review-card__header { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 40px; }
.spot-review-card__header .spot-stars { margin: 0; flex-shrink: 0; }
.spot-review-card__header .spot-review-logo { display: block; flex: 0 0 92.16px; width: 92.16px; height: 57.6px; max-width: 92.16px; object-fit: contain; filter: none; }
.spot-case-review .spot-review-card__header { margin-bottom: 20px; }
.spot-case-intro__content .spot-case-company-logo { display: block; width: var(--spot-case-logo-width, 182px); height: auto; max-width: 100%; max-height: var(--spot-case-logo-height, 97.5px); object-fit: contain; object-position: left center; margin-bottom: 24px; }

/* Homepage-only logo sizing; shrink safely alongside the star rating. */
.spot-carousel--reviews .spot-review-card__header .spot-review-logo {
    flex: 0 1 var(--spot-home-review-logo-width, 92.16px);
    width: var(--spot-home-review-logo-width, 92.16px);
    height: var(--spot-home-review-logo-height, 57.6px);
    max-width: var(--spot-home-review-logo-width, 92.16px);
    min-width: 0;
    object-position: right center;
}
