/* ---------------------------------------------------------------------------
   Didgigo design tokens — Tripigo-style edition.

   The look is taken from the Tripigo microsite (tripigo-microsite/dist): a
   midnight ground, cinematic full-bleed photographic plates, Fraunces display
   type with an italic accent line, Inter Tight for body and tracked uppercase
   labels. Tripigo's gold spine is replaced by the Didgigo brand green
   (#97BF26, legacy/css/colours.css), and the midnight is pulled from navy
   towards the brand's own deep forest so the two products read as siblings,
   not twins.

   Fonts come from Google Fonts (as on the Tripigo site); see shell.html.
   --------------------------------------------------------------------------- */

:root {
  /* --- Grounds (dark) --------------------------------------------------- */
  --tx-night:      #070C04;   /* page ground — Tripigo's --midnight, in forest */
  --tx-ink:        #0E1708;   /* raised dark ground                            */
  --tx-forest:     #1F330B;   /* brand deepest green                           */
  --tx-forest-2:   #2E4A12;   /* brand deep green                              */

  /* --- Spine (Tripigo gold -> Didgigo green) ---------------------------- */
  --tx-green:      #97BF26;   /* --didgigo-green                               */
  --tx-green-hi:   #B5D84A;
  --tx-green-pale: #E4F2B4;
  --tx-green-deep: #7A9E18;
  --tx-gold:       #E6B121;   /* secondary accent; dark grounds only           */
  --tx-blue:       #4FA8FF;   /* secondary accent; dark grounds only           */
  --tx-magenta:    #E0699A;   /* secondary accent; dark grounds only           */

  /* --- Light grounds ---------------------------------------------------- */
  --tx-cream:      #F7F6EA;   /* text on dark                                  */
  --tx-paper:      #FAF9F1;   /* light band ground (Tripigo "What's new")      */
  --tx-paper-2:    #F1F0E3;
  --tx-text:       #15200D;   /* headings on light                             */
  --tx-body:       #45503A;   /* body on light — 8.6:1 on --tx-paper           */
  --tx-green-ink:  #4E6A12;   /* green on light — 5.6:1 on --tx-paper          */
  --tx-line:       #DEDDCB;

  /* text-on-dark opacities */
  --tx-cream-85: rgba(247,246,234,.9);
  --tx-cream-65: rgba(247,246,234,.76);
  --tx-cream-45: rgba(247,246,234,.5);
  --tx-rule:     rgba(151,191,38,.22);

  /* --- Type ------------------------------------------------------------- */
  --tx-fd: 'Fraunces', 'Cormorant Garamond', Georgia, serif;
  --tx-fb: 'Inter Tight', 'Helvetica Neue', Arial, sans-serif;

  /* --- Metrics ---------------------------------------------------------- */
  --tx-wrap:   1340px;
  --tx-gutter: 56px;
  --dg-header: 76px;

  --tx-ease: cubic-bezier(.16,1,.3,1);

  /* --- Back-compat: build.mjs rewrites fragment hexes to these ---------- */
  --dg-green: #97BF26; --dg-green-light: #add65b; --dg-green-wash: #eff7e0;
  --dg-green-dark: #5A781E; --dg-green-darker: #5A781E;
  --dg-green-deep: #2E4A12; --dg-green-deepest: #1F330B;
  --dg-gold: #E6B121; --dg-gold-dark: #bf9115; --dg-gold-wash: #f5e1ab;
  --dg-blue: #4FA8FF; --dg-blue-darkest: #004384;
  --dg-magenta: #E0699A;
  --dg-ink: #15200D; --dg-body: #45503A; --dg-muted: #656F5A;
  --dg-paper: #FAF9F1; --dg-paper-2: #F1F0E3; --dg-line: #DEDDCB; --dg-line-soft: #E9E8D9;
  --dg-font: var(--tx-fb);
  --dg-wrap: var(--tx-wrap); --dg-gutter: var(--tx-gutter);
}

@media (max-width: 900px) {
  :root { --tx-gutter: 24px; --dg-header: 64px; }
}

/* ---------------------------------------------------------------------------
   Shell + component library — Tripigo-style edition.

   Two layers, both defined ONCE here:
     1. Chrome: header, nav, related strip, footer.
     2. Components (.tx-*): the building blocks every page fragment is written
        in. Pages should reach for these first and keep their own <style> to
        layout tweaks only, so the look stays one system.

   Selector rule (unchanged from the original handoff): page fragments carry
   their own <style> AFTER this sheet and win ties. Keep shell selectors at
   (0,1,0)+ and scope bare-element rules under a component class.
   --------------------------------------------------------------------------- */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--tx-night);color:var(--tx-cream);font-family:var(--tx-fb);
  font-weight:400;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{max-width:100%;height:auto}
picture img{display:block}
a{color:inherit}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--tx-green);outline-offset:3px;border-radius:2px}
main{display:block}

.dg-skip{position:absolute;left:-9999px;top:0;z-index:2000;background:var(--tx-green);color:var(--tx-night);
  padding:12px 18px;font-weight:600;text-decoration:none}
.dg-skip:focus{left:8px;top:8px}

/* small product marks, used inline beside a label */
.dg-mark{display:inline-block;width:auto;height:1em;vertical-align:-.12em;margin-right:.5em}
.dg-mark--end{margin:0 0 0 .5em}

/* ================================================================ HEADER == */
.dg-header{position:fixed;top:0;left:0;right:0;z-index:1000;border-bottom:1px solid transparent;
  transition:background .35s,border-color .35s,backdrop-filter .35s}
.dg-header.is-stuck{background:rgba(7,12,4,.84);backdrop-filter:saturate(1.4) blur(20px);
  -webkit-backdrop-filter:saturate(1.4) blur(20px);border-color:var(--tx-rule)}
/* a soft top scrim so the nav is legible over any hero photograph */
.dg-header::before{content:'';position:absolute;inset:0 0 -40px;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(7,12,4,.55),transparent);transition:opacity .35s}
.dg-header.is-stuck::before{opacity:0}
.dg-header__wrap{max-width:var(--tx-wrap);margin:0 auto;padding:0 var(--tx-gutter);height:var(--dg-header);
  display:flex;align-items:center;gap:28px;transition:height .35s}
.dg-header.is-stuck .dg-header__wrap{height:calc(var(--dg-header) - 12px)}
.dg-logo{display:flex;align-items:center;flex:0 0 auto}
.dg-logo img{height:38px;width:auto;display:block}

.dg-nav{display:flex;align-items:center;gap:28px;margin-left:auto}
.dg-nav a{position:relative;display:inline-flex;align-items:center;font-size:.72rem;letter-spacing:.2em;
  text-transform:uppercase;font-weight:500;color:var(--tx-cream);text-decoration:none;
  text-shadow:0 1px 8px rgba(7,12,4,.6);transition:color .25s;padding:6px 0;white-space:nowrap}
.dg-nav a:hover,.dg-nav a[aria-current="page"]{color:var(--tx-green)}
.dg-nav a[aria-current="page"]::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--tx-green)}
.dg-nav__icon{height:14px;width:auto;margin-right:8px;opacity:.9}

.dg-signin{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto;padding:10px 20px;
  background:var(--tx-green);color:var(--tx-night);text-decoration:none;
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;
  box-shadow:0 4px 24px rgba(151,191,38,.35);transition:background .25s,transform .25s,box-shadow .25s}
.dg-signin:hover{background:var(--tx-green-hi);transform:translateY(-2px);box-shadow:0 8px 32px rgba(151,191,38,.5)}
.dg-signin svg{width:16px;height:16px;fill:currentColor}
.dg-signin__sub{display:none}
/* the supplier way in: outlined, so the agent's filled button stays the main action */
.dg-signin--supplier{background:rgba(255,255,255,.06);color:var(--tx-cream);box-shadow:none;border:1px solid rgba(247,246,234,.32);
  padding:9px 16px;margin-right:-8px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.dg-signin--supplier svg{width:18px;height:18px}
.dg-signin--supplier:hover{background:rgba(151,191,38,.16);border-color:var(--tx-green);color:var(--tx-green);box-shadow:none}

.dg-burger{display:none;background:none;border:1px solid rgba(247,246,234,.3);border-radius:100px;
  width:44px;height:40px;cursor:pointer;padding:0;position:relative}
.dg-burger span,.dg-burger span::before,.dg-burger span::after{position:absolute;left:12px;right:12px;height:1.5px;
  background:var(--tx-cream);content:'';transition:transform .3s,opacity .3s}
.dg-burger span{top:50%}
.dg-burger span::before{left:0;right:0;top:-6px}
.dg-burger span::after{left:0;right:0;top:6px}
.dg-burger[aria-expanded="true"] span{background:transparent}
.dg-burger[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.dg-burger[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}

.dg-header__edge{position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none}
.dg-header__progress{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--tx-green-deep),var(--tx-green),var(--tx-green-pale));
  box-shadow:0 0 12px rgba(151,191,38,.6)}

@media (max-width:1180px){
  .dg-nav{gap:20px}
  .dg-nav__icon{display:none}
}
@media (max-width:1060px){
  .dg-burger{display:block;margin-left:auto;order:2}
  .dg-signin{order:3}
  .dg-signin--supplier .dg-signin__text{display:none}
  .dg-nav{position:absolute;top:100%;left:0;right:0;margin:0;flex-direction:column;align-items:stretch;gap:0;
    background:rgba(7,12,4,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
    border-bottom:1px solid var(--tx-rule);padding:8px var(--tx-gutter) 22px;display:none}
  .dg-nav[data-open="true"]{display:flex}
  .dg-nav a{padding:15px 0;border-bottom:1px solid rgba(151,191,38,.12);font-size:.8rem}
  .dg-nav a[aria-current="page"]::after{display:none}
  .dg-nav__icon{display:inline-block}
}
@media (max-width:480px){
  .dg-signin{padding:9px 14px}
  .dg-signin__main{display:none}
  .dg-logo img{height:32px}
}

/* ============================================================ COMPONENTS == */

/* container */
.tx-ctr{max-width:var(--tx-wrap);margin:0 auto;padding:0 var(--tx-gutter)}
.tx-ctr--narrow{max-width:980px}

/* --- type primitives ------------------------------------------------------ */
.tx-label{display:inline-flex;align-items:center;gap:14px;margin:0 0 24px;color:var(--tx-green);
  font-family:var(--tx-fb);font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;font-weight:600}
.tx-label::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor;flex:0 0 auto}
.tx-label--rule::after{content:'';flex:0 0 64px;height:1px;background:currentColor;opacity:.55}

.tx-h{font-family:var(--tx-fd);font-weight:300;line-height:1.04;letter-spacing:-.022em;margin:0 0 28px;color:var(--tx-cream);
  font-size:clamp(2.4rem,5vw,3.9rem);text-wrap:balance}
.tx-h .l1,.tx-h .l2{display:block}
/* the italic accent line. background-clip:text clips to the line box, so the
   box is extended downward and cancelled in the margin — otherwise Fraunces
   italic descenders get sheared flat (fixed the same way on Tripigo). */
.tx-h .l2,.tx-h em{font-style:italic;font-weight:400;letter-spacing:-.02em;
  background:linear-gradient(135deg,var(--tx-green-pale) 0%,var(--tx-green) 55%,var(--tx-green-deep) 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--tx-green);
  padding-bottom:.2em;margin-bottom:-.2em}
.tx-h em{padding-right:.06em}
.tx-h--xl{font-size:clamp(3rem,7.4vw,6.6rem);line-height:.96;letter-spacing:-.028em}
.tx-h--lg{font-size:clamp(2.6rem,5.6vw,4.6rem)}
.tx-h--md{font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.1}
.tx-h--sm{font-size:clamp(1.45rem,2.2vw,1.8rem);line-height:1.18;margin-bottom:14px}

.tx-deck{font-weight:300;font-size:clamp(1.08rem,1.5vw,1.24rem);line-height:1.7;color:var(--tx-cream-85);max-width:560px;margin:0 0 32px}
.tx-deck strong{color:var(--tx-cream);font-weight:500}
.tx-p{font-weight:300;font-size:1.05rem;line-height:1.75;color:var(--tx-cream-85);max-width:62ch;margin:0 0 20px}
.tx-p strong{color:var(--tx-cream);font-weight:500}
.tx-pull{font-family:var(--tx-fd);font-style:italic;font-weight:300;line-height:1.35}
.tx-center{text-align:center}
.tx-center .tx-deck,.tx-center .tx-p{margin-left:auto;margin-right:auto}
.tx-center .tx-label{justify-content:center}

/* --- buttons -------------------------------------------------------------- */
.tx-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:8px}
.tx-center .tx-actions{justify-content:center}
.tx-btn{display:inline-flex;align-items:center;gap:10px;padding:15px 28px;text-decoration:none;
  font-family:var(--tx-fb);font-size:.78rem;letter-spacing:.17em;text-transform:uppercase;font-weight:600;
  border:1px solid var(--tx-green);background:var(--tx-green);color:var(--tx-night);
  box-shadow:0 6px 28px rgba(151,191,38,.35);transition:all .3s}
.tx-btn:hover{background:var(--tx-green-hi);border-color:var(--tx-green-hi);transform:translateY(-2px);box-shadow:0 10px 38px rgba(151,191,38,.5)}
.tx-btn svg{width:16px;height:16px}
.tx-btn--ghost{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.28);color:var(--tx-cream);box-shadow:none;
  backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);font-weight:500}
.tx-btn--ghost:hover{background:rgba(151,191,38,.16);border-color:var(--tx-green);color:var(--tx-green);box-shadow:none}
.tx-link{display:inline-flex;align-items:center;gap:8px;color:var(--tx-green);text-decoration:none;
  font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600}
.tx-link::after{content:'\2192';transition:transform .3s var(--tx-ease)}
.tx-link:hover::after{transform:translateX(5px)}
.tx-cap{font-family:var(--tx-fd);font-style:italic;font-size:.92rem;color:var(--tx-green)}

/* --- sections ------------------------------------------------------------- */
.tx-sec{position:relative;padding:clamp(90px,11vw,150px) 0;background:var(--tx-night);overflow:hidden;overflow:clip;isolation:isolate}
.tx-sec--ink{background:linear-gradient(180deg,var(--tx-ink) 0%,var(--tx-night) 100%)}
.tx-sec--glow::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse at top,rgba(151,191,38,.13) 0%,transparent 60%)}
.tx-sec--tight{padding:clamp(60px,7vw,96px) 0}
.tx-head{max-width:760px;margin-bottom:clamp(48px,6vw,80px)}
.tx-head.tx-center{margin-left:auto;margin-right:auto}

/* LIGHT band — the cream "release notes" section from Tripigo. Everything
   inside re-colours itself for the light ground. */
.tx-sec--light{background:var(--tx-paper);color:var(--tx-text)}
.tx-sec--light .tx-h{color:var(--tx-text)}
.tx-sec--light .tx-h .l2,.tx-sec--light .tx-h em{background:none;-webkit-text-fill-color:currentColor;color:var(--tx-green-ink);padding:0;margin:0}
.tx-sec--light .tx-label{color:var(--tx-green-ink)}
.tx-sec--light .tx-label::before{box-shadow:none}
.tx-sec--light .tx-deck,.tx-sec--light .tx-p{color:var(--tx-body)}
.tx-sec--light .tx-deck strong,.tx-sec--light .tx-p strong{color:var(--tx-text)}
.tx-sec--light .tx-link{color:var(--tx-green-ink)}
.tx-sec--light .tx-cap{color:var(--tx-green-ink)}
.tx-sec--light .tx-btn--ghost{background:transparent;border-color:var(--tx-text);color:var(--tx-text);backdrop-filter:none}
.tx-sec--light .tx-btn--ghost:hover{background:var(--tx-text);color:var(--tx-paper)}
.tx-sec--light .tx-list li{color:var(--tx-body);border-color:var(--tx-line)}
.tx-sec--light .tx-list li strong{color:var(--tx-text)}
.tx-sec--light .tx-list li::before{box-shadow:none;background:var(--tx-green-deep)}
.tx-sec--light .tx-fig figcaption{color:var(--tx-body)}
.tx-sec--light .tx-fig figcaption b{color:var(--tx-text)}
.tx-sec--light .tx-fig picture,.tx-sec--light .tx-fig .tx-frame{box-shadow:0 30px 60px -30px rgba(21,32,13,.35);border-color:var(--tx-line)}

/* --- cinematic photo plate ----------------------------------------------- */
.tx-plate{position:relative;overflow:hidden;isolation:isolate;background:var(--tx-night)}
.tx-plate__media{position:absolute;inset:0;z-index:0}
.tx-plate__media picture,.tx-plate__media img{width:100%;height:100%}
.tx-plate__media img{object-fit:cover;transform:scale(1.04)}
.tx-plate__media--dim img{opacity:.38}
.tx-plate > .tx-ctr,.tx-plate > .tx-plate__content{position:relative;z-index:2}
.tx-v-bottom::after,.tx-v-side-l::after,.tx-v-side-r::after,.tx-v-edge::after,.tx-v-full::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none}
.tx-v-bottom::after{background:linear-gradient(180deg,rgba(7,12,4,.5) 0%,transparent 26%,rgba(7,12,4,.45) 62%,rgba(7,12,4,.95) 100%)}
.tx-v-side-l::after{background:linear-gradient(180deg,rgba(7,12,4,.5) 0%,transparent 25%,transparent 70%,rgba(7,12,4,.9) 100%),
  linear-gradient(100deg,rgba(7,12,4,.93) 0%,rgba(7,12,4,.84) 36%,rgba(7,12,4,.55) 60%,rgba(7,12,4,.15) 80%,transparent 92%)}
.tx-v-side-r::after{background:linear-gradient(180deg,rgba(7,12,4,.5) 0%,transparent 25%,transparent 70%,rgba(7,12,4,.9) 100%),
  linear-gradient(260deg,rgba(7,12,4,.92) 0%,rgba(7,12,4,.78) 32%,rgba(7,12,4,.4) 54%,rgba(7,12,4,.08) 75%,transparent 88%)}
.tx-v-edge::after{background:radial-gradient(ellipse at center,rgba(7,12,4,.62) 20%,rgba(7,12,4,.9) 85%)}
.tx-v-full::after{background:linear-gradient(180deg,rgba(7,12,4,.82) 0%,rgba(7,12,4,.7) 50%,rgba(7,12,4,.9) 100%)}
@media (max-width:900px){
  .tx-v-side-l::after,.tx-v-side-r::after{background:linear-gradient(180deg,rgba(7,12,4,.75) 0%,rgba(7,12,4,.6) 45%,rgba(7,12,4,.92) 100%)}
}

/* --- hero ----------------------------------------------------------------- */
.tx-hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;
  padding:calc(var(--dg-header) + 60px) 0 clamp(72px,9vw,110px)}
.tx-hero > .tx-ctr{width:100%}
.tx-hero--mid{min-height:78vh;min-height:78svh}
.tx-hero .tx-h,.tx-hero .tx-deck{text-shadow:0 4px 32px rgba(7,12,4,.5)}
.tx-hero .tx-h .l2,.tx-hero .tx-h em{text-shadow:none}
.tx-hero__grid{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(40px,6vw,90px);align-items:end}
.tx-hero__aside{display:flex;justify-content:flex-end}
.tx-hero__meta{display:flex;flex-wrap:wrap;gap:12px 40px;margin-top:48px;padding-top:24px;border-top:1px solid rgba(151,191,38,.25)}
.tx-hero__meta span{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--tx-cream-65)}
.tx-hero__meta b{font-family:var(--tx-fd);font-weight:300;font-size:1.6rem;letter-spacing:-.01em;text-transform:none;color:var(--tx-green);margin-right:10px;vertical-align:-.12em}
.tx-scroll{position:absolute;bottom:18px;left:50%;z-index:3;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;
  color:var(--tx-green);font-size:.66rem;letter-spacing:.36em;text-transform:uppercase;font-weight:600;text-decoration:none;animation:tx-fl 2.4s infinite}
.tx-scroll::after{content:'';width:1px;height:30px;background:linear-gradient(currentColor,transparent)}
@keyframes tx-fl{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}
.tx-photo-cap{position:absolute;bottom:24px;right:28px;z-index:3;font-family:var(--tx-fd);font-style:italic;font-size:.78rem;
  color:rgba(247,246,234,.6);writing-mode:vertical-rl;transform:rotate(180deg)}
@media (max-width:900px){
  .tx-hero__grid{grid-template-columns:1fr}
  .tx-hero__aside{justify-content:flex-start}
  .tx-scroll,.tx-photo-cap{display:none}
}

/* --- object on a plate (the hardbound journal, a document) ---------------- */
.tx-object{margin:0;max-width:480px;width:100%;background:#fff;padding:clamp(14px,2vw,24px);
  box-shadow:0 0 0 1px rgba(151,191,38,.25),0 40px 80px -20px rgba(0,0,0,.65),0 18px 36px -16px rgba(151,191,38,.25);
  transform:perspective(1400px) rotateY(-6deg) rotateX(2deg)}
.tx-object img{width:100%;height:auto}
.tx-object figcaption{margin-top:12px;font-family:var(--tx-fd);font-style:italic;font-size:.88rem;line-height:1.45;color:#4A5440}
@media (max-width:900px){.tx-object{transform:none}}
/* a cut-out object (transparent PNG/WebP, e.g. hardbound-cut) floats on the
   photograph instead of sitting on a white card */
.tx-object.tx-object--cut{background:none;padding:0;box-shadow:none;transform:none;max-width:540px}
.tx-object--cut picture{filter:drop-shadow(0 34px 38px rgba(0,0,0,.55)) drop-shadow(0 0 60px rgba(151,191,38,.14))}
.tx-object.tx-object--cut figcaption{margin-top:6px;text-align:center;color:var(--tx-cream-65);text-shadow:0 1px 12px rgba(7,12,4,.7)}
.tx-sec--light .tx-object--cut picture{filter:drop-shadow(0 28px 30px rgba(21,32,13,.28))}
.tx-sec--light .tx-object.tx-object--cut figcaption{color:var(--tx-body);text-shadow:none}
.tx-fig.tx-fig--cut picture,.tx-sec--light .tx-fig.tx-fig--cut picture{border:0;box-shadow:none;overflow:visible;filter:drop-shadow(0 30px 34px rgba(0,0,0,.5))}


/* --- stats band (Tripigo's gold band, in green) -------------------------- */
.tx-stats{position:relative;overflow:hidden;isolation:isolate;padding:60px 0;color:var(--tx-night);
  background:linear-gradient(135deg,var(--tx-green-hi) 0%,var(--tx-green) 50%,var(--tx-green-deep) 100%)}
.tx-stats::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at top right,rgba(255,255,255,.35) 0%,transparent 60%)}
.tx-stats__grid{position:relative;display:grid;grid-template-columns:repeat(var(--n,4),1fr)}
.tx-stat{text-align:center;padding:16px 22px;border-left:1px solid rgba(7,12,4,.18)}
.tx-stat:first-child{border-left:0}
.tx-stat__val{display:block;font-family:var(--tx-fd);font-weight:300;font-size:clamp(2.2rem,4.4vw,3.4rem);line-height:1;letter-spacing:-.02em;margin-bottom:10px}
.tx-stat__lbl{display:block;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:rgba(7,12,4,.74);line-height:1.5}
@media (max-width:760px){
  .tx-stats__grid{grid-template-columns:1fr 1fr}
  .tx-stat:nth-child(odd){border-left:0}
  .tx-stat:nth-child(n+3){border-top:1px solid rgba(7,12,4,.18)}
}

/* --- photographic grounds under coloured bands --------------------------
   build.mjs injects .tx-sec__bg into every tx-sec / tx-stats section. The
   photograph sits at the bottom of the section's stacking context; ::after
   tints it to the band's colour and fades its top and bottom edges into the
   neighbouring sections, so bands melt together instead of butting. */
.tx-sec__bg{position:absolute;inset:0;z-index:-2;pointer-events:none;overflow:hidden;overflow:clip}
/* tall sections (a story runs several screens): the photo is one sticky
   viewport rather than stretched over the whole height, as on Tripigo. */
.tx-sec__bg picture{position:sticky;top:0;height:100vh;max-height:100%;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 60%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,#000 60%,transparent 100%)}
.tx-sec__bg picture,.tx-sec__bg img{display:block;width:100%;height:100%}
.tx-sec__bg img{object-fit:cover;opacity:.26;transform:scale(1.04)}
.tx-sec__bg::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,var(--tx-night) 0%,rgba(7,12,4,.6) 22%,rgba(7,12,4,.55) 50%,rgba(7,12,4,.65) 78%,var(--tx-night) 100%)}
.tx-sec--ink .tx-sec__bg::after{
  background:radial-gradient(ellipse at top,rgba(151,191,38,.10) 0%,transparent 60%),
             linear-gradient(180deg,var(--tx-ink) 0%,rgba(14,23,8,.65) 25%,rgba(7,12,4,.6) 60%,var(--tx-night) 100%)}
/* the cream band: the photograph is a whisper under paper, never under text contrast */
.tx-sec--light .tx-sec__bg img{opacity:.5;filter:saturate(.7)}
.tx-sec--light .tx-sec__bg::after{
  background:linear-gradient(180deg,var(--tx-paper) 0%,rgba(250,249,241,.9) 20%,rgba(250,249,241,.86) 50%,rgba(250,249,241,.9) 80%,var(--tx-paper) 100%)}
/* the green band: photograph in mono, washed through the brand greens */
.tx-stats .tx-sec__bg img{opacity:1;filter:grayscale(1) contrast(1.15)}
.tx-stats .tx-sec__bg::after{
  background:linear-gradient(135deg,rgba(181,216,74,.9) 0%,rgba(151,191,38,.86) 50%,rgba(122,158,24,.92) 100%)}

/* --- parallax + focus ------------------------------------------------------
   shell.html sets --pp (-0.5 … 0.5: where the section sits in the viewport)
   on every photo layer, and .in-view once the section is properly on screen.
   The scroll offset uses the `translate` property, which composes with the
   base `transform` scale. The layers are oversized so the offset
   never shows an edge. */
.tx-plate__media{inset:-9% 0}
.tx-sec__bg picture{overflow:visible}
.tx-sec__bg img{height:118%;margin-top:-9%}
.js .tx-plate__media img,.js .tx-sec__bg img{translate:0 calc(var(--pp,0) * 14%);
  transition:filter 1.6s var(--tx-ease),opacity 1.6s var(--tx-ease)}
.js .tx-plate:not(.in-view) .tx-plate__media img{filter:blur(6px) saturate(.6) brightness(.8)}
.js .tx-sec:not(.in-view) > .tx-sec__bg img,.js .tx-stats:not(.in-view) > .tx-sec__bg img{filter:blur(6px) saturate(.6)}
.js .tx-stats.in-view > .tx-sec__bg img{filter:grayscale(1) contrast(1.15)}
.js .tx-sec--light.in-view > .tx-sec__bg img{filter:saturate(.7)}
@media (prefers-reduced-motion:reduce){
  .js .tx-plate__media img,.js .tx-sec__bg img{translate:none;filter:none!important;transition:none}
}


/* --- split: text + media -------------------------------------------------- */
.tx-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,100px);align-items:center}
.tx-split--flip .tx-split__media{order:-1}
.tx-split--wide{grid-template-columns:.9fr 1.1fr}
@media (max-width:900px){.tx-split,.tx-split--wide{grid-template-columns:1fr}.tx-split--flip .tx-split__media{order:0}}

/* --- figure with italic caption ------------------------------------------ */
.tx-fig{margin:0}
.tx-fig picture,.tx-fig .tx-frame{display:block;overflow:hidden;border:1px solid rgba(151,191,38,.18);
  box-shadow:0 40px 80px -30px rgba(0,0,0,.6)}
.tx-fig img{width:100%;height:auto}
.tx-fig figcaption{margin-top:16px;font-size:.92rem;line-height:1.55;color:var(--tx-cream-65);max-width:60ch}
.tx-fig figcaption b{display:block;font-family:var(--tx-fd);font-style:italic;font-weight:400;font-size:1.12rem;color:var(--tx-cream);margin-bottom:4px}

/* a photograph still to be commissioned — kept visible, never faked */
.tx-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;
  padding:40px 28px;aspect-ratio:var(--ar,4/5);border:1px dashed rgba(151,191,38,.45);
  background:repeating-linear-gradient(135deg,rgba(151,191,38,.05) 0 14px,transparent 14px 28px),var(--tx-ink);
  color:var(--tx-cream-65);font-size:.92rem;line-height:1.55}
.tx-placeholder b{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--tx-green)}
.tx-sec--light .tx-placeholder{background:repeating-linear-gradient(135deg,rgba(78,106,18,.06) 0 14px,transparent 14px 28px),var(--tx-paper-2);
  border-color:rgba(78,106,18,.4);color:var(--tx-body)}
.tx-sec--light .tx-placeholder b{color:var(--tx-green-ink)}
/* a placeholder standing in for a full-bleed plate photograph: the brief sits bottom right, clear of the copy */
.tx-plate__media.tx-placeholder--plate{inset:0;z-index:2;color:var(--tx-cream);aspect-ratio:auto;border:0;align-items:flex-end;justify-content:flex-end;
  padding:0 clamp(16px,4vw,48px) clamp(24px,4vw,44px);text-align:right}
.tx-placeholder--plate span{display:flex;flex-direction:column;gap:8px;max-width:36ch}
/* a placeholder filling a fixed-ratio media box (tile, card) */
.tx-placeholder--fill{height:100%;aspect-ratio:auto;padding:24px}

/* --- list with glowing dots ---------------------------------------------- */
.tx-list{list-style:none;margin:28px 0 32px;padding:0;max-width:520px}
.tx-list li{position:relative;padding:13px 0 13px 30px;border-top:1px solid rgba(151,191,38,.16);
  font-weight:300;font-size:1rem;line-height:1.6;color:var(--tx-cream-85)}
.tx-list li:first-child{border-top:0}
.tx-list li strong{color:var(--tx-cream);font-weight:500}
.tx-list li::before{content:'';position:absolute;left:4px;top:1.32em;width:6px;height:6px;border-radius:50%;
  background:var(--tx-green);box-shadow:0 0 10px var(--tx-green)}

/* --- hairline feature cards (Tripigo feat-cards) ------------------------- */
.tx-cards{display:grid;grid-template-columns:repeat(var(--n,3),1fr);border-top:1px solid var(--tx-rule);border-bottom:1px solid var(--tx-rule)}
.tx-card{padding:clamp(36px,4vw,56px) clamp(24px,2.6vw,36px);border-left:1px solid var(--tx-rule);transition:background .35s;position:relative}
.tx-card:first-child{border-left:0}
.tx-card:hover{background:rgba(151,191,38,.05)}
.tx-card__n{display:block;font-family:var(--tx-fd);font-style:italic;font-size:1rem;color:var(--tx-green);margin-bottom:20px}
.tx-card__icon{width:60px;height:60px;border-radius:50%;border:1px solid var(--tx-green);display:flex;align-items:center;justify-content:center;
  margin-bottom:24px;background:rgba(151,191,38,.06);box-shadow:0 0 24px rgba(151,191,38,.15) inset;color:var(--tx-green)}
.tx-card__icon svg{width:24px;height:24px}
.tx-card__icon img{width:24px;height:auto}
.tx-card h3{font-family:var(--tx-fd);font-weight:400;font-size:1.45rem;line-height:1.2;margin:0 0 14px;color:var(--tx-cream)}
.tx-card p{font-weight:300;font-size:.98rem;line-height:1.7;color:var(--tx-cream-65);margin:0 0 12px}
.tx-card p:last-child{margin-bottom:0}
.tx-card .tx-link{margin-top:14px}
.tx-cards.tx-center .tx-card__icon{margin-left:auto;margin-right:auto}
.tx-sec--light .tx-cards,.tx-sec--light .tx-card{border-color:var(--tx-line)}
.tx-sec--light .tx-card:hover{background:rgba(78,106,18,.04)}
.tx-sec--light .tx-card h3{color:var(--tx-text)}
.tx-sec--light .tx-card p{color:var(--tx-body)}
.tx-sec--light .tx-card__n{color:var(--tx-green-ink)}
.tx-sec--light .tx-card__icon{color:var(--tx-green-ink);border-color:var(--tx-green-ink);box-shadow:none;background:rgba(78,106,18,.06)}
@media (max-width:900px){
  .tx-cards{grid-template-columns:1fr}
  .tx-card{border-left:0;border-top:1px solid var(--tx-rule)}
  .tx-card:first-child{border-top:0}
  .tx-sec--light .tx-card{border-color:var(--tx-line)}
}
@media (min-width:901px) and (max-width:1100px){
  .tx-cards[style*="--n:4"]{grid-template-columns:1fr 1fr}
  .tx-cards[style*="--n:4"] .tx-card:nth-child(3){border-left:0}
  .tx-cards[style*="--n:4"] .tx-card:nth-child(n+3){border-top:1px solid var(--tx-rule)}
}

/* --- product tiles: photo cards, one Didgigo accent each ----------------- */
.tx-tiles{display:grid;grid-template-columns:repeat(var(--n,2),1fr);gap:clamp(20px,2.4vw,32px)}
.tx-tile{--acc:var(--tx-green);position:relative;display:flex;flex-direction:column;background:var(--tx-ink);
  border:1px solid rgba(247,246,234,.08);overflow:hidden;text-decoration:none;color:inherit;
  transition:transform .5s var(--tx-ease),border-color .4s,box-shadow .5s}
.tx-tile::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:var(--acc);z-index:3;box-shadow:0 0 16px var(--acc)}
.tx-tile:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--acc) 55%,transparent);box-shadow:0 40px 70px -30px rgba(0,0,0,.7)}
.tx-tile__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#000}
.tx-tile__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--tx-ease)}
.tx-tile:hover .tx-tile__media img{transform:scale(1.05)}
.tx-tile__media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(14,23,8,.85) 100%)}
.tx-tile__body{padding:28px 30px 32px;display:flex;flex-direction:column;flex:1}
.tx-tile__tag{font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;font-weight:600;color:var(--acc);margin-bottom:12px}
.tx-tile h3{font-family:var(--tx-fd);font-weight:400;font-size:clamp(1.5rem,2.2vw,1.85rem);line-height:1.15;margin:0 0 12px;color:var(--tx-cream)}
.tx-tile p{font-weight:300;font-size:1rem;line-height:1.7;color:var(--tx-cream-65);margin:0 0 18px}
.tx-tile .tx-link{margin-top:auto;color:var(--acc)}
/* Didgigo's own secondary colours (legacy/css/colours.css), lifted for dark grounds */
.tx-acc-green  {--acc:var(--tx-green)}
.tx-acc-gold   {--acc:var(--tx-gold)}
.tx-acc-blue   {--acc:var(--tx-blue)}
.tx-acc-magenta{--acc:var(--tx-magenta)}
.tx-acc-orange {--acc:#FF9F2E}
@media (max-width:760px){.tx-tiles{grid-template-columns:1fr}}

/* --- story: sticky media column, chapters scroll past -------------------- */
.tx-story{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,100px)}
.tx-chapter{min-height:86vh;display:flex;flex-direction:column;justify-content:center;padding:60px 0}
.tx-chapter:last-child{min-height:70vh}
.tx-chapter__meta{display:flex;align-items:center;gap:18px;margin-bottom:26px;font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;
  font-weight:600;color:var(--acc,var(--tx-green));opacity:.5;transition:opacity .7s}
.tx-chapter__meta::after{content:'';flex:0 0 50px;height:1px;background:currentColor;opacity:.6;transition:flex-basis .7s var(--tx-ease)}
.tx-chapter.is-active .tx-chapter__meta{opacity:1}
.tx-chapter.is-active .tx-chapter__meta::after{flex-basis:96px}
.tx-chapter .tx-h .l2{transition:filter .7s}
.tx-chapter.is-active .tx-h .l2{filter:drop-shadow(0 0 30px rgba(151,191,38,.35))}
.tx-chapter__stat{display:flex;align-items:baseline;gap:18px;margin-top:30px;padding-top:22px;border-top:1px solid var(--tx-rule);max-width:460px}
.tx-chapter__stat b{font-family:var(--tx-fd);font-weight:300;font-size:clamp(2.2rem,3.8vw,3rem);line-height:1;color:var(--acc,var(--tx-green))}
.tx-chapter__stat span{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--tx-cream-65);line-height:1.5;max-width:180px}
.tx-chapter__media{display:none;margin-top:36px}
.tx-story__stage{position:sticky;top:0;height:100vh;display:flex;align-items:center;justify-content:center}
.tx-story__frame{position:relative;width:100%;max-width:560px;aspect-ratio:var(--ar,4/5)}
.tx-story__frame::before{content:'';position:absolute;inset:-60px;z-index:-1;filter:blur(36px);border-radius:80px;
  background:radial-gradient(ellipse at center,rgba(151,191,38,.2) 0%,transparent 65%)}
.tx-story__shot{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.035);transition:opacity .8s ease,transform 1.1s var(--tx-ease);
  display:flex;align-items:center;justify-content:center}
.tx-story__shot.is-on{opacity:1;transform:none}
.tx-story__shot picture{display:block;width:100%;height:100%}
.tx-story__shot img{width:100%;height:100%;object-fit:cover;border:1px solid rgba(151,191,38,.2);box-shadow:0 40px 80px -30px rgba(0,0,0,.7)}
.tx-story__shot--contain img{object-fit:contain;border:0;box-shadow:none;filter:drop-shadow(0 30px 50px rgba(0,0,0,.6))}
@media (max-width:900px){
  .tx-story{grid-template-columns:1fr}
  .tx-story__stage{display:none}
  .tx-chapter,.tx-chapter:last-child{min-height:0;padding:44px 0}
  .tx-chapter__meta{opacity:1}
  .tx-chapter__media{display:block}
}

/* --- phone frame ---------------------------------------------------------- */
.tx-phone{width:280px;max-width:100%;aspect-ratio:280/606;border-radius:34px;background:#0B0B0B;padding:7px;position:relative;flex-shrink:0;
  box-shadow:0 0 0 1px rgba(151,191,38,.25),0 40px 80px -20px rgba(0,0,0,.6),0 18px 36px -16px rgba(151,191,38,.25)}
.tx-phone picture,.tx-phone img{display:block;width:100%;height:100%}
.tx-phone img{object-fit:cover;border-radius:28px}
.tx-phone::after{content:'';position:absolute;inset:0;border-radius:34px;background:linear-gradient(150deg,rgba(255,255,255,.14) 0%,transparent 38%);pointer-events:none}
.tx-phone--lg{width:316px}
.tx-phone--sm{width:220px}
.tx-phone--tilt{transform:perspective(1400px) rotateY(-7deg) rotateX(2deg)}
.tx-phones{display:flex;gap:clamp(14px,2vw,28px);justify-content:center;align-items:flex-end;flex-wrap:wrap}

/* --- quotes ---------------------------------------------------------------- */
.tx-quote{margin:0;max-width:940px}
.tx-quote p{font-family:var(--tx-fd);font-style:italic;font-weight:300;font-size:clamp(1.6rem,3.2vw,2.6rem);line-height:1.3;color:var(--tx-cream);margin:0 0 30px;text-wrap:pretty}
.tx-quote p strong{font-weight:400;color:var(--tx-green)}
.tx-quote cite{display:flex;align-items:center;gap:16px;font-style:normal;font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--tx-green)}
.tx-quote cite::before{content:'';width:40px;height:1px;background:currentColor}
.tx-quote cite span{color:var(--tx-cream-65);font-weight:500;letter-spacing:.16em}
.tx-quotes{display:grid;grid-template-columns:repeat(var(--n,2),1fr);gap:0;border-top:1px solid var(--tx-rule)}
.tx-quotes blockquote{margin:0;padding:clamp(32px,4vw,52px) clamp(20px,3vw,44px) clamp(32px,4vw,52px) 0;border-bottom:1px solid var(--tx-rule)}
.tx-quotes blockquote:nth-child(even){padding-left:clamp(20px,3vw,44px);padding-right:0;border-left:1px solid var(--tx-rule)}
.tx-quotes p{font-family:var(--tx-fd);font-weight:300;font-size:clamp(1.12rem,1.6vw,1.32rem);line-height:1.55;color:var(--tx-cream);margin:0 0 22px}
.tx-quotes p strong{font-weight:400;font-style:italic;color:var(--tx-green)}
.tx-quotes cite{display:block;font-style:normal;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;line-height:1.7;color:var(--tx-cream-65)}
.tx-quotes cite b{display:block;color:var(--tx-green);font-weight:600;letter-spacing:.24em}
@media (max-width:820px){
  .tx-quotes{grid-template-columns:1fr}
  .tx-quotes blockquote,.tx-quotes blockquote:nth-child(even){padding:32px 0;border-left:0}
}

/* --- numbered steps --------------------------------------------------------- */
.tx-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:clamp(24px,3vw,40px);counter-reset:tx-step}
.tx-steps li{position:relative;padding-top:30px;border-top:1px solid var(--tx-rule);counter-increment:tx-step}
.tx-steps li::before{content:counter(tx-step,decimal-leading-zero);display:block;font-family:var(--tx-fd);font-weight:300;font-size:2.6rem;line-height:1;color:var(--tx-green);margin-bottom:18px}
.tx-steps li::after{content:'';position:absolute;left:0;top:-3px;width:5px;height:5px;border-radius:50%;background:var(--tx-green);box-shadow:0 0 10px var(--tx-green)}
.tx-steps h3{font-family:var(--tx-fd);font-weight:400;font-size:1.3rem;line-height:1.25;margin:0 0 10px;color:var(--tx-cream)}
.tx-steps p{font-weight:300;font-size:.98rem;line-height:1.7;color:var(--tx-cream-65);margin:0}
.tx-sec--light .tx-steps li{border-color:var(--tx-line)}
.tx-sec--light .tx-steps li::before{color:var(--tx-green-ink)}
.tx-sec--light .tx-steps li::after{background:var(--tx-green-ink);box-shadow:none}
.tx-sec--light .tx-steps h3{color:var(--tx-text)}
.tx-sec--light .tx-steps p{color:var(--tx-body)}
@media (max-width:1000px){.tx-steps{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.tx-steps{grid-template-columns:1fr}}

/* --- gallery / covers ---------------------------------------------------- */
.tx-gallery{display:grid;grid-template-columns:repeat(var(--n,3),1fr);gap:clamp(12px,2vw,28px)}
.tx-gallery figure{margin:0}
.tx-gallery picture{display:block;overflow:hidden;box-shadow:0 30px 60px -28px rgba(0,0,0,.75);border:1px solid rgba(151,191,38,.15)}
.tx-gallery img{width:100%;height:auto;transition:transform 1.2s var(--tx-ease)}
.tx-gallery figure:hover img{transform:scale(1.04)}
.tx-gallery figcaption{margin-top:12px;font-family:var(--tx-fd);font-style:italic;font-size:.95rem;color:var(--tx-cream-65)}
.tx-sec--light .tx-gallery figcaption{color:var(--tx-body)}
@media (max-width:760px){.tx-gallery{grid-template-columns:repeat(min(var(--n,3),2),1fr)}}

/* --- chips ------------------------------------------------------------------ */
.tx-chips{display:flex;flex-wrap:wrap;gap:8px}
.tx-center .tx-chips,.tx-chips.tx-center{justify-content:center}
.tx-chip{padding:8px 18px;border-radius:100px;font-size:.84rem;font-weight:500;color:var(--tx-cream-85);
  background:rgba(255,255,255,.04);border:1px solid rgba(151,191,38,.25)}

/* --- FAQ ---------------------------------------------------------------------- */
.tx-faq{border-top:1px solid var(--tx-rule)}
.tx-faq details{border-bottom:1px solid var(--tx-rule)}
.tx-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;
  font-family:var(--tx-fd);font-weight:400;font-size:clamp(1.15rem,1.8vw,1.4rem);line-height:1.35;color:var(--tx-cream)}
.tx-faq summary::-webkit-details-marker{display:none}
.tx-faq summary::after{content:'+';flex:0 0 auto;width:34px;height:34px;border-radius:50%;border:1px solid var(--tx-green);color:var(--tx-green);
  display:flex;align-items:center;justify-content:center;font-family:var(--tx-fb);font-size:1.2rem;font-weight:300;transition:transform .35s var(--tx-ease)}
.tx-faq details[open] summary::after{transform:rotate(45deg)}
.tx-faq summary:hover{color:var(--tx-green)}
.tx-faq__a{padding:0 60px 28px 0;font-weight:300;font-size:1.02rem;line-height:1.75;color:var(--tx-cream-85)}
.tx-faq__a p{margin:0 0 14px}
.tx-faq__a a{color:var(--tx-green)}

/* --- closing CTA plate --------------------------------------------------- */
.tx-cta{padding:clamp(110px,14vw,190px) 0;text-align:center}
.tx-cta .tx-h{margin-left:auto;margin-right:auto;max-width:16ch}
.tx-cta .tx-deck{margin-left:auto;margin-right:auto}
.tx-cta .tx-actions{justify-content:center}

/* --- reveals ----------------------------------------------------------------- */
.js .rv{opacity:0;transform:translateY(34px);transition:opacity 1.1s var(--tx-ease),transform 1.1s var(--tx-ease)}
.js .rv.vis{opacity:1;transform:none}
.d1{transition-delay:.12s!important}.d2{transition-delay:.24s!important}.d3{transition-delay:.36s!important}.d4{transition-delay:.48s!important}
@media (prefers-reduced-motion:reduce){
  .js .rv{opacity:1;transform:none;transition:none}
  .tx-scroll{animation:none}
}

/* ============================================================== RELATED == */
.dg-related{background:var(--tx-ink);border-top:1px solid var(--tx-rule);padding:clamp(70px,8vw,110px) 0}
.dg-related__wrap{max-width:var(--tx-wrap);margin:0 auto;padding:0 var(--tx-gutter)}
.dg-related h2{display:flex;align-items:center;gap:14px;margin:0 0 36px;font-family:var(--tx-fb);font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;font-weight:600;color:var(--tx-green)}
.dg-related h2::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}
.dg-related ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--tx-rule)}
.dg-related li{border-left:1px solid var(--tx-rule)}
.dg-related li:first-child{border-left:0}
.dg-related a{display:block;height:100%;padding:34px 34px 38px;text-decoration:none;transition:background .35s}
.dg-related li:first-child a{padding-left:0}
.dg-related a:hover{background:rgba(151,191,38,.05)}
.dg-related__label{display:flex;align-items:center;font-family:var(--tx-fd);font-weight:400;font-size:1.5rem;color:var(--tx-cream);margin-bottom:10px;transition:color .3s}
.dg-related__label::after{content:'\2192';margin-left:auto;font-family:var(--tx-fb);font-size:1.1rem;color:var(--tx-green);transition:transform .35s var(--tx-ease)}
.dg-related a:hover .dg-related__label{color:var(--tx-green)}
.dg-related a:hover .dg-related__label::after{transform:translateX(6px)}
.dg-related__mark{height:18px;width:auto;margin-right:10px}
.dg-related__desc{display:block;font-weight:300;font-size:.96rem;line-height:1.65;color:var(--tx-cream-65)}
@media (max-width:860px){
  .dg-related ul{grid-template-columns:1fr}
  .dg-related li{border-left:0;border-bottom:1px solid var(--tx-rule)}
  .dg-related a,.dg-related li:first-child a{padding:26px 0}
}

/* =============================================================== FOOTER == */
.dg-footer{background:var(--tx-night);border-top:1px solid var(--tx-rule);color:var(--tx-cream-65);padding:90px 0 36px;font-size:.92rem}
.dg-footer__wrap{max-width:var(--tx-wrap);margin:0 auto;padding:0 var(--tx-gutter)}
.dg-footer__top{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:48px;padding-bottom:56px;border-bottom:1px solid rgba(247,246,234,.08)}
.dg-footer__brand img{height:46px;width:auto}
.dg-footer__tagline{font-family:var(--tx-fd);font-style:italic;font-weight:300;font-size:1.22rem;line-height:1.45;color:var(--tx-cream);max-width:24ch;margin:22px 0 26px}
.dg-social{display:flex;gap:10px}
.dg-social a{width:40px;height:40px;border-radius:50%;border:1px solid rgba(151,191,38,.3);display:flex;align-items:center;justify-content:center;color:var(--tx-cream-85);transition:all .3s}
.dg-social a:hover{border-color:var(--tx-green);color:var(--tx-green);background:rgba(151,191,38,.08)}
.dg-social svg{width:17px;height:17px;fill:currentColor}
.dg-footer h2{margin:6px 0 20px;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;font-weight:600;color:var(--tx-green)}
.dg-footer ul{list-style:none;margin:0;padding:0}
.dg-footer li{margin:0 0 11px}
.dg-footer li a{display:inline-flex;align-items:center;text-decoration:none;color:var(--tx-cream-85);font-weight:300;transition:color .25s}
.dg-footer li a:hover{color:var(--tx-green)}
.dg-footer__mark{height:13px;width:auto;margin-right:8px;opacity:.85}
.dg-footer__contact{padding:30px 0;line-height:1.9;font-weight:300}
.dg-footer__contact a{color:var(--tx-cream-85);text-decoration:none}
.dg-footer__contact a:hover{color:var(--tx-green)}
.dg-footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-top:24px;border-top:1px solid rgba(247,246,234,.08);font-size:.8rem}
.dg-footer__legal{display:flex;gap:24px}
.dg-footer__legal a{color:var(--tx-cream-65);text-decoration:none}
.dg-footer__legal a:hover{color:var(--tx-green)}
@media (max-width:900px){.dg-footer__top{grid-template-columns:1fr 1fr}.dg-footer__brand{grid-column:1/-1}}
@media (max-width:520px){.dg-footer__top{grid-template-columns:1fr}}
