/* Adessor premium layer — loads after each page's own styles.
   Brand: off-black, wine #7B1E2D, gold #EBC67A / #D4AF7C, ivory #FAF9F6. */

@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .35s; }

:root {
  --ad-ink: #0A0809;
  --ad-wine: #7B1E2D;
  --ad-wine-hi: #A3263A;
  --ad-gold: #EBC67A;
  --ad-gold-2: #D4AF7C;
  --ad-ivory: #FAF9F6;
  --ad-ease: cubic-bezier(.2, .8, .2, 1);
}

html { background: var(--ad-ink); }
body { background: var(--ad-ink) !important; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
::selection { background: var(--ad-wine); color: var(--ad-ivory); }

/* Film grain: breaks the flat digital black */
body::after {
  content: ""; position: fixed; inset: 0; z-index: 90; pointer-events: none; opacity: .035; transform: translateZ(0);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Reading progress */
.ad-progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 60; transform-origin: 0 50%; transform: scaleX(0);
  background: linear-gradient(90deg, var(--ad-wine), var(--ad-gold)); pointer-events: none; }

/* Header: settles into a solid bar once you scroll */
header { transition: background .3s, border-color .3s, box-shadow .3s; }
.brand-logo { height: 62px !important; transition: height .3s var(--ad-ease); }
body.ad-scrolled header { background: rgba(10,8,9,.92) !important; border-bottom-color: rgba(212,175,124,.28) !important; box-shadow: 0 10px 30px -18px rgba(123,30,45,.6); }
body.ad-scrolled .brand-logo { height: 52px !important; }
.navlink { position: relative; }
.navlinks .navlink::after { content: ""; position: absolute; left: 0; right: 0; bottom: 6px; height: 1px; background: var(--ad-gold);
  transform: scaleX(0); transform-origin: right; transition: transform .35s var(--ad-ease); }
.navlinks .navlink:hover::after { transform: scaleX(1); transform-origin: left; }
.navlinks .navlink[aria-current]::after { display: none; }

/* Typography: heavier display, calmer reading measure */
h1, h2 { font-feature-settings: "ss01", "kern"; }
.sec p, section p { max-width: 68ch; }
[style*="tabular"], .cs-v, .ad-count { font-variant-numeric: tabular-nums; }

/* Buttons: tactile press, gold sheen */
.btn { transition: transform .25s var(--ad-ease), background-position .6s var(--ad-ease), background-color .25s, color .25s, box-shadow .3s !important; will-change: transform; }
.btn:active { transform: translateY(0) scale(.97) !important; }
.btn-gold { background-image: linear-gradient(110deg, #EBC67A 0%, #D4AF7C 40%, #F6DFA8 50%, #D4AF7C 60%, #EBC67A 100%) !important; background-size: 220% 100% !important; background-position: 100% 0; box-shadow: 0 8px 24px -10px rgba(235,198,122,.55); }
.btn-gold:hover { background-position: 0 0 !important; color: #1A0C0F !important; box-shadow: 0 14px 34px -12px rgba(235,198,122,.75); }
.btn-ghost:hover { border-color: rgba(235,198,122,.7) !important; }
.more { transition: gap .25s var(--ad-ease), color .2s; }
.more:hover { gap: 14px; }

/* Cards: spotlight border that follows the cursor */
.card { position: relative; isolation: isolate; }
.card::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; pointer-events: none; z-index: 1; opacity: 0; transition: opacity .3s;
  background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%), rgba(235,198,122,.85), rgba(163,38,58,.5) 40%, transparent 70%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.card::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: -1; opacity: 0; transition: opacity .3s;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(123,30,45,.22), transparent 60%); }
.card:hover::before, .card:hover::after { opacity: 1; }
.card:hover { border-color: rgba(212,175,124,.25) !important; }

/* Vertical tiles on the homepage */
.vert { transition: background .35s var(--ad-ease), padding-left .35s var(--ad-ease) !important; }
.vert:hover { padding-left: 40px !important; }

/* Marquee: soft edges */
.marq { -webkit-mask-image: none; }
div:has(> .marq) { -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }

/* Brand mark: warm glow behind the ribbon */
.mark-in, img[src*="adessor-mark"] { filter: drop-shadow(0 24px 60px rgba(163,38,58,.45)) drop-shadow(0 0 30px rgba(235,198,122,.18)); }

/* Ambient depth behind section headings */
.sec { position: relative; }
.ad-glow { position: absolute; width: 520px; height: 520px; border-radius: 50%; pointer-events: none; z-index: -1; filter: blur(10px);
  background: radial-gradient(circle, rgba(123,30,45,.20), transparent 65%); }

/* Scroll reveal — content is visible at rest; JS only animates what is still below the fold */
.ad-js .ad-reveal { opacity: 0; transform: translateY(28px); }
.ad-js .ad-reveal.ad-in { opacity: 1; transform: none; transition: opacity .8s var(--ad-ease), transform .9s var(--ad-ease); transition-delay: var(--ad-d, 0s); }

/* FAQ rows */
details.faq summary { transition: color .2s; }
details.faq summary:hover { color: var(--ad-gold); }

/* Form fields: gentle lift on focus */
.fld input, .fld select, .fld textarea { transition: border-color .2s, box-shadow .25s, background .2s !important; }
.fld input:focus, .fld select:focus, .fld textarea:focus { box-shadow: 0 0 0 4px rgba(235,198,122,.12); background: #0E0B0C !important; }
.fld input:user-invalid, .fld textarea:user-invalid { border-color: #E06A7B !important; }

/* Footer brand moment: the logo's own wordmark, filled with a wine-to-gold fade */
.foot-mark { margin: 64px auto 0; width: min(100%, 1120px); aspect-ratio: 1340 / 268; user-select: none; pointer-events: none;
  background: linear-gradient(180deg, rgba(212,175,124,.30) 0%, rgba(163,38,58,.28) 45%, rgba(123,30,45,.06) 100%);
  -webkit-mask: url("adessor-wordmark-mask.png") center / contain no-repeat; mask: url("adessor-wordmark-mask.png") center / contain no-repeat; }

@media (max-width: 900px) {
  .brand-logo { height: 52px !important; }
  .vert:hover { padding-left: 30px !important; }
  body::after { opacity: .04; }
}
@media (prefers-reduced-motion: reduce) {
  .ad-js .ad-reveal { opacity: 1 !important; transform: none !important; }
  .card::before, .card::after { display: none; }
  @view-transition { navigation: none; }
}
@media (hover: none) { .card::before, .card::after { display: none; } }

/* Keep decorative layers inside the viewport */
main, footer { overflow-x: clip; }
.ad-glow { max-width: 90vw; max-height: 90vw; }
.foot-social{transition:background .2s,color .2s}.foot-social:hover{background:#EBC67A;color:#0B0B0B!important}

/* ===== Traffic sources grid ===== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ts-section{background:#0B0B0B;border-top:1px solid rgba(212,175,124,.12)}
.ts-wrap{max-width:1320px;margin:0 auto;padding:120px 56px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:center}
.ts-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:600px;width:100%}
.ts-cell{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;color:rgba(250,249,246,.86);transition:color .3s}
.ts-cell::before{content:"";position:absolute;inset:-6%;border-radius:50%;border:1px solid rgba(212,175,124,.2);transition:border-color .3s,background .3s,box-shadow .3s}
.ts-cell svg{position:relative;width:clamp(22px,2.4vw,30px);height:auto}
.ts-cell:hover{color:#EBC67A}
.ts-cell:hover::before{border-color:rgba(235,198,122,.6);background:radial-gradient(circle,rgba(110,20,35,.35),rgba(110,20,35,0) 70%);box-shadow:0 0 30px rgba(235,198,122,.12)}
@media (max-width:900px){
  .ts-wrap{grid-template-columns:1fr;padding:88px 24px}
  .ts-grid{max-width:460px;margin:0 auto}
}

/* ===== Brands we grow with ===== */
.br-section{background:#0B0B0B}
.br-marquee{overflow:hidden;padding:28px 0 72px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.br-track{list-style:none;margin:0;padding:0;display:flex;width:max-content;animation:br-scroll 38s linear infinite}
.br-marquee:hover .br-track{animation-play-state:paused}
.br-item{flex:0 0 auto;display:flex;align-items:center;justify-content:center;height:84px;min-width:200px;padding:0 36px;margin-right:16px;border:1px solid rgba(212,175,124,.16);border-radius:18px;background:rgba(250,249,246,.02)}
.br-name{font:700 24px Outfit,'Helvetica Neue',sans-serif;letter-spacing:-.01em;color:rgba(250,249,246,.7);white-space:nowrap}
.br-item img{display:block;height:34px;width:auto;max-width:170px;filter:brightness(0) invert(1);opacity:.78;transition:opacity .3s}
.br-item.br-tall img{height:56px}
.br-item:hover img{opacity:1}
@keyframes br-scroll{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){
  .br-track{animation:none;flex-wrap:wrap;justify-content:center;width:auto;padding:0 24px}
  .br-item[aria-hidden="true"]{display:none}
}
@media (max-width:600px){.br-item{height:68px;min-width:150px;padding:0 24px}.br-item img{height:26px}.br-item.br-tall img{height:44px}}
.ts-cell.ts-wide svg{width:clamp(44px,4.6vw,62px)}
