/*
 * Design 3.5 — site-wide: logo motion, the service line under the name, menu
 * previews with images, and photo-led page stages. Loaded after v31.css.
 */

/* 1. Logo ------------------------------------------------------------------------
   3.6: the mark itself stays still and sharp inside its seal (section 0); hover
   registers the ink ring, lifts the mark, and the letters take a wave of ink. */
.tp3-brand .tp3-mark-sheen{transition:background-position 1.1s var(--tp3-ease-io)}
.tp3-brand:is(:hover,:focus-visible) .tp3-mark-sheen{background-position:-80% 0}
.tp3-brand:hover .tp3-wordmark span{transform:none}
.tp3-brand:is(:hover,:focus-visible) .tp3-wordmark span{animation:tp35-ink .9s calc(var(--c) * 32ms) var(--tp3-ease) both}
@keyframes tp35-ink{0%{color:var(--nav-ink,#143b3f);transform:none}30%{color:var(--tp3-cyan);transform:translateY(-3px)}55%{color:var(--tp3-magenta)}80%{color:#b8862f}100%{color:var(--nav-ink,#143b3f);transform:none}}
.tp3-brand:is(:hover,:focus-visible) .tp3-rule i{animation:tp35-bar .7s calc(var(--r,0) * 90ms) var(--tp3-ease) both}
@keyframes tp35-bar{0%{transform:scaleY(1)}40%{transform:scaleY(2.4)}100%{transform:scaleY(1)}}

/* 0. The seal ---------------------------------------------------------------------
   The unchanged three-page mark sits on a deep teal disc with a gold rim. Around it,
   cyan, magenta and yellow ink arcs orbit on the 9-second cycle and lock into one
   tri-colour ring (registration) while the crosshair marks flash; then a sheen
   crosses the mark. The name, rule and service line sit beside it, unchanged. */
.tp3-header[data-living-nav] .tp3-mark.tp36-seal,.tp-editorial .tp3-footer .tp3-mark.tp36-seal{width:84px;height:84px;border-radius:50%;transform:none}
.tp3-header[data-living-nav].is-stuck .tp3-mark.tp36-seal{width:64px;height:64px}
.tp36-orbit{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transition:transform .6s var(--tp3-ease)}
.tp36-orbit *{transform-box:view-box;transform-origin:50px 50px}
.tp36-track{fill:none;stroke:var(--tp3-ink);stroke-opacity:.12;stroke-width:1}
.tp36-arc,.tp36-ring circle{fill:none;stroke-width:3.4}
.tp36-orbit .is-c{stroke:var(--tp3-cyan)}.tp36-orbit .is-m{stroke:var(--tp3-magenta)}.tp36-orbit .is-y{stroke:#f2c200}
.tp36-arc.is-m{stroke-dashoffset:-200}.tp36-arc.is-y{stroke-dashoffset:-60}
.tp36-arcs{transition:opacity .35s}
.tp36-ring{opacity:0;transform:scale(.88);transition:opacity .35s,transform .6s cubic-bezier(.34,1.5,.5,1)}
.tp36-ticks{fill:none;stroke:var(--tp3-ink);stroke-width:1.1;stroke-linecap:round;opacity:.4;transition:opacity .4s,transform .7s var(--tp3-ease)}
.tp36-rim{fill:none;stroke:#e0b04a;stroke-width:.9;stroke-opacity:.8}
.tp36-glint{fill:none;stroke:#fff;stroke-opacity:.45;stroke-width:1.2;stroke-linecap:round;stroke-dasharray:30 212;animation:tp36-glint 12s linear infinite}
@keyframes tp36-glint{to{stroke-dashoffset:-242}}
.tp36-core{position:absolute;left:50%;top:50%;width:40%;height:60%;transform:translate(-50%,-51%);transition:transform .6s cubic-bezier(.34,1.4,.5,1);filter:drop-shadow(0 2px 3px #0006)}
/* Hover or focus: the inks register into one ring, the marks turn, the mark lifts. */
.tp3-brand:is(:hover,:focus-visible) .tp3-mark.tp36-seal,.tp-editorial .tp3-footer-identity:is(:hover,:focus-visible) .tp3-mark.tp36-seal{transform:none}
.tp3-brand:is(:hover,:focus-visible) .tp36-arcs,.tp-editorial .tp3-footer-identity:is(:hover,:focus-visible) .tp36-arcs{opacity:0}
.tp3-brand:is(:hover,:focus-visible) .tp36-ring,.tp-editorial .tp3-footer-identity:is(:hover,:focus-visible) .tp36-ring{opacity:1;transform:none}
.tp3-brand:is(:hover,:focus-visible) .tp36-ticks,.tp-editorial .tp3-footer-identity:is(:hover,:focus-visible) .tp36-ticks{opacity:.9;transform:rotate(45deg)}
.tp3-brand:is(:hover,:focus-visible) .tp36-core,.tp-editorial .tp3-footer-identity:is(:hover,:focus-visible) .tp36-core{transform:translate(-50%,-53%) scale(1.08)}
/* First page of a visit: the seal turns in while the mark prints itself. */
.tp3-first .tp3-header .tp36-orbit{animation:tp36-intro 1.2s var(--tp3-ease) both}
@keyframes tp36-intro{from{opacity:0;transform:rotate(-120deg) scale(.7)}to{opacity:1;transform:none}}
/* Footer: a cream disc on the dark footer. */
.tp-editorial .tp3-footer .tp36-disc{fill:#faf8f2}
.tp-editorial .tp3-footer .tp36-rim{stroke:var(--tp3-teal)}
.tp-editorial .tp3-footer .tp36-track,.tp-editorial .tp3-footer .tp36-ticks{stroke:#fff}
.tp-editorial .tp3-footer .tp36-core{filter:none}
.tp-editorial .tp3-footer .tp36-glint{stroke:var(--tp3-gold)}
@media(min-width:1101px) and (max-width:1380px){.tp3-header[data-living-nav] .tp3-mark.tp36-seal{width:72px;height:72px}}
@media(max-width:1100px){.tp3-header[data-living-nav] .tp3-mark.tp36-seal,.tp3-header[data-living-nav].is-stuck .tp3-mark.tp36-seal{width:54px;height:54px}}
@media(prefers-reduced-motion:reduce){.tp36-glint,.tp3-first .tp3-header .tp36-orbit{animation:none}.tp36-ring,.tp36-core,.tp36-ticks{transition:none}}

/* 1b. The living mark ----------------------------------------------------------------
   A calm 9-second loop: a band of ink passes through the letters, the colour bar pulses,
   the four services are underlined in priority order, the seal's inks lock into one ring
   and a sheen crosses the mark. Ink flows along the colour bar throughout. Hover or focus
   takes over; reduced motion switches it off. JS adds .tp35-live after the intro. */
.tp3-brand.tp35-live{--tp35-cycle:9s}
.tp3-brand.tp35-live .tp3-mark-sheen{animation:tp35-live-sheen var(--tp35-cycle) var(--tp3-ease-io) infinite}
@keyframes tp35-live-sheen{0%,78%{background-position:180% 0}90%,100%{background-position:-80% 0}}
/* The inks orbit and lock into one ring at 70–80% of the cycle. */
.tp3-brand.tp35-live .tp36-arc.is-c{animation:tp36-orbit-c var(--tp35-cycle) linear infinite}
.tp3-brand.tp35-live .tp36-arc.is-m{animation:tp36-orbit-m var(--tp35-cycle) linear infinite}
.tp3-brand.tp35-live .tp36-arc.is-y{animation:tp36-orbit-y var(--tp35-cycle) linear infinite}
.tp3-brand.tp35-live .tp36-ticks{animation:tp36-ticks var(--tp35-cycle) var(--tp3-ease) infinite}
.tp3-brand.tp35-live .tp36-orbit{animation:tp36-lock var(--tp35-cycle) var(--tp3-ease) infinite}
@keyframes tp36-orbit-c{from{stroke-dashoffset:0}to{stroke-dashoffset:-360}}
@keyframes tp36-orbit-m{0%{stroke-dashoffset:-200}70%{stroke-dashoffset:-372}80%{stroke-dashoffset:-408}100%{stroke-dashoffset:-560}}
@keyframes tp36-orbit-y{0%{stroke-dashoffset:-60}70%{stroke-dashoffset:-492}80%{stroke-dashoffset:-528}100%{stroke-dashoffset:-780}}
@keyframes tp36-ticks{0%,68%{opacity:.35;transform:none}73%,80%{opacity:1;transform:rotate(90deg)}88%,100%{opacity:.35;transform:rotate(90deg)}}
@keyframes tp36-lock{0%,69%{transform:none}73%{transform:scale(1.05)}78%,100%{transform:none}}
.tp3-brand.tp35-live:is(:hover,:focus-visible) .tp36-arc,.tp3-brand.tp35-live:is(:hover,:focus-visible) .tp36-orbit{animation:none}
.tp3-brand.tp35-live:is(:hover,:focus-visible) .tp36-ticks{animation:none;opacity:.9;transform:rotate(45deg)}
/* A band of ink passes through the letters, one after another. */
.tp3-brand.tp35-live .tp3-wordmark span{animation:tp35-live-ink var(--tp35-cycle) calc(3.4s + var(--c) * 45ms) ease-in-out infinite}
@keyframes tp35-live-ink{0%{color:var(--nav-ink,#143b3f);transform:none}3%{color:var(--tp3-teal-2);transform:translateY(-1.5px)}6%{color:#b8862f;transform:translateY(-1px)}10%,100%{color:var(--nav-ink,#143b3f);transform:none}}
/* The colour bar: ink flows along it all the time and it pulses once a cycle. */
.tp3-brand.tp35-live .tp3-rule i{position:relative;overflow:hidden;animation:tp35-live-bar var(--tp35-cycle) calc(4.1s + var(--r,0) * 90ms) var(--tp3-ease) infinite}
.tp3-brand.tp35-live .tp3-rule i::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,#ffffffb3 50%,transparent 100%) 0 0/60% 100% no-repeat;animation:tp35-flow 3.2s calc(var(--r,0) * 180ms) linear infinite}
@keyframes tp35-live-bar{0%{transform:scaleY(1)}3%{transform:scaleY(2.3)}7%,100%{transform:scaleY(1)}}
@keyframes tp35-flow{from{background-position:-120% 0}to{background-position:260% 0}}
/* The four services are underlined in priority order, once a cycle. */
.tp3-brand.tp35-live .tp35-svc-line b::after{animation:tp35-live-underline var(--tp35-cycle) calc(4.6s + var(--k) * 380ms) var(--tp3-ease) infinite}
@keyframes tp35-live-underline{0%{transform:scaleX(0);transform-origin:0 50%}4%{transform:scaleX(1);transform-origin:0 50%}9%{transform:scaleX(1);transform-origin:100% 50%}13%,100%{transform:scaleX(0);transform-origin:100% 50%}}
/* Hover or focus takes over from the loop. */
.tp3-brand.tp35-live:is(:hover,:focus-visible) .tp35-svc-line b::after{animation:none}
.tp3-brand.tp35-live:is(:hover,:focus-visible) .tp3-mark-sheen{animation:none;background-position:-80% 0}
.tp3-brand.tp35-live:is(:hover,:focus-visible) .tp3-wordmark span{animation:tp35-ink .9s calc(var(--c) * 32ms) var(--tp3-ease) both}
.tp3-brand.tp35-live:is(:hover,:focus-visible) .tp3-rule i{animation:tp35-bar .7s calc(var(--r,0) * 90ms) var(--tp3-ease) both}
@media(prefers-reduced-motion:reduce){
  .tp3-brand.tp35-live .tp36-arc,.tp3-brand.tp35-live .tp36-ticks,.tp3-brand.tp35-live .tp36-orbit,.tp3-brand.tp35-live .tp3-mark-sheen,.tp3-brand.tp35-live .tp3-wordmark span,.tp3-brand.tp35-live .tp3-rule i,.tp3-brand.tp35-live .tp3-rule i::after,.tp3-brand.tp35-live .tp35-svc-line b::after{animation:none!important}
}

/* 2. The service line under the name, in priority order -------------------------- */
.tp3-header[data-living-nav] .tp-brand-sub.tp35-services{display:block;max-height:none;opacity:1;overflow:visible;margin-top:1px;font:700 .58rem/1.35 var(--tp3-sans);letter-spacing:.13em;text-transform:uppercase;color:var(--nav-ink,#143b3f)}
.tp35-svc-line{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.tp35-svc-line b{position:relative;font-weight:700}
.tp35-svc-line b::after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:2px;transform:scaleX(0);transform-origin:0 50%;transition:transform .45s calc(var(--k) * 80ms) var(--tp3-ease)}
.tp35-svc-line b:nth-of-type(1)::after{background:var(--tp3-cyan)}.tp35-svc-line b:nth-of-type(2)::after{background:var(--tp3-magenta)}.tp35-svc-line b:nth-of-type(3)::after{background:#e0b000}.tp35-svc-line b:nth-of-type(4)::after{background:currentColor}
.tp3-brand:is(:hover,:focus-visible) .tp35-svc-line b::after{transform:scaleX(1)}
.tp35-svc-line i{font-style:normal;opacity:.45}
.tp35-ticker{display:none;height:1.4em;overflow:hidden}
.tp35-ticker>span{display:flex;flex-direction:column;animation:tp35-tick 11s var(--tp3-ease) infinite}
.tp35-ticker b{display:block;height:1.4em;line-height:1.4em;font-weight:700;white-space:nowrap}
@keyframes tp35-tick{0%,19%{transform:translateY(0)}25%,44%{transform:translateY(-1.4em)}50%,69%{transform:translateY(-2.8em)}75%,94%{transform:translateY(-4.2em)}100%{transform:translateY(-5.6em)}}
.tp3-header[data-living-nav].is-stuck .tp-brand-sub.tp35-services{font-size:.54rem}
@media(min-width:1101px) and (max-width:1380px){
  .tp3-header[data-living-nav] .tp-brand-sub.tp35-services{display:block;font-size:.5rem;letter-spacing:.09em}
  .tp35-svc-line{gap:4px}
}
@media(max-width:1100px){
  .tp3-header[data-living-nav] .tp-brand-sub.tp35-services{display:block;margin-top:4px;font-size:.54rem;letter-spacing:.12em}
  .tp35-svc-line{display:none}
  .tp35-ticker{display:block}
}
@media(prefers-reduced-motion:reduce){
  .tp35-ticker>span{animation:none}
  .tp3-brand .tp3-plate,.tp3-brand .tp3-mark-base,.tp3-brand .tp3-mark-plates{transition:none}
  .tp3-brand:is(:hover,:focus-visible) .tp3-wordmark span,.tp3-brand:is(:hover,:focus-visible) .tp3-rule i,.tp3-header .tp3-mark-sheen{animation:none}
}

/* 3. Menu previews: a picture of each destination --------------------------------- */
.tp35-mega-fig{position:relative;flex:0 0 auto;display:block;width:100%;height:auto;min-height:170px;margin:0 0 6px;aspect-ratio:16/10;border-radius:8px;overflow:hidden;background:#0e2e34;box-shadow:0 18px 30px -20px #000}
.tp35-mega-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity .45s,transform 1.4s var(--tp3-ease)}
.tp35-mega-img.is-on{opacity:1;transform:none}
.tp35-mega-fig figcaption{position:absolute;left:10px;bottom:10px;right:10px}
.tp31-mega-preview .tp31-mega-desc.tp35-mega-cap{display:none;width:max-content;max-width:100%;padding:6px 10px;border-radius:99px;background:#0b2328d9;color:#fff;font:700 .6rem/1.2 var(--tp3-sans);letter-spacing:.1em;text-transform:uppercase;animation:none}
.tp31-mega-preview .tp31-mega-desc.tp35-mega-cap.is-on{display:block}
.tp31-mega-preview:has(.tp35-mega-fig){justify-content:flex-start;padding:14px 14px 20px!important}
.tp31-mega-preview:has(.tp35-mega-fig) p.tp31-mega-desc{padding:0 6px;font-size:1.12rem}

/* 4. Page stages: the photo explains, the card proves ----------------------------- */
.tp35-stage{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:4/3.1;border-radius:18px;background:var(--tp3-ink);box-shadow:0 44px 80px -44px #0b2328}
.tp35-stage.is-portrait{aspect-ratio:4/4}
.tp35-stage .tp35-stage-img,.tp35-stage .tp35-logo-ring,.tp-editorial .tp35-stage img.tp35-stage-img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;object-fit:cover;object-position:50% 50%;animation:tp35-drift 18s ease-in-out infinite alternate}
@keyframes tp35-drift{from{transform:scale(1.02)}to{transform:scale(1.1) translate(-1.5%,-1%)}}
.tp35-stage::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,#0b232840 0%,transparent 28%,transparent 60%,#0b232899 100%);pointer-events:none}
.tp35-tag{position:absolute;top:16px;left:16px;z-index:3;padding:6px 10px;border-radius:99px;background:#0b2328b8;backdrop-filter:blur(6px);color:#fff;font:700 .58rem/1 var(--tp3-sans);letter-spacing:.14em;text-transform:uppercase}
.tp35-logo-ring circle{animation:tp35-ants 1.6s linear infinite}
@keyframes tp35-ants{to{stroke-dashoffset:-52}}
.tp35-inset{position:absolute;right:16px;bottom:16px;z-index:3;width:min(46%,270px);padding:10px 10px 12px;border-radius:12px;background:#fffdf8f5;backdrop-filter:blur(6px);box-shadow:0 30px 50px -24px #000c;animation:tp35-inset-in .9s .5s var(--tp3-ease) both}
@keyframes tp35-inset-in{from{opacity:0;transform:translateY(20px) rotate(2deg)}to{opacity:1;transform:rotate(-1.5deg)}}
.tp35-inset-art{overflow:hidden;border-radius:7px;background:#e9e2d0}
.tp35-inset-art img,.tp35-inset-art svg{display:block;width:100%;height:auto;max-height:170px;object-fit:cover;object-position:top}
.tp35-inset-art svg{max-height:none}
.tp-editorial .tp35-inset p{margin:9px 2px 0;font:600 .8rem/1.35 var(--tp3-sans);color:var(--tp3-ink)}
.tp35-inset small,.tp35-inset-title small{display:block;margin-bottom:3px;font:700 .58rem/1 var(--tp3-sans);letter-spacing:.16em;text-transform:uppercase;color:#8a6a2c}
.tp-editorial .tp35-inset p.tp35-inset-title{margin:2px 4px 10px;font:600 1.12rem/1.15 var(--tp3-serif)}
.tp35-inset-list{padding:14px 14px 12px}
.tp35-inset-list ul,.tp35-inset-list ol{display:grid;gap:7px;margin:0;padding:0 4px;list-style:none}
.tp35-inset-list li{position:relative;padding-left:18px;font:500 .8rem/1.35 var(--tp3-sans);color:var(--tp3-text)}
.tp35-inset-list ul li::before{content:'';position:absolute;left:0;top:.42em;width:8px;height:8px;border-radius:50%;background:var(--tp3-gold-soft)}
.tp35-numbered li{padding-left:28px!important}
.tp35-numbered b{position:absolute;left:0;top:0;font:600 .8rem/1.35 var(--tp3-serif);color:#8a6a2c}
.tp35-chips{display:flex!important;flex-wrap:wrap;gap:6px!important}
.tp35-chips li{padding:6px 10px!important;border-radius:99px;background:#efe8d8;font-weight:600!important}
.tp35-chips li::before{display:none}
.tp35-inset-checklist{width:min(58%,310px);padding:0;background:none;box-shadow:none;backdrop-filter:none}
.tp35-inset-checklist .tp31-checklist{zoom:.72;box-shadow:0 30px 50px -24px #000c}
/* Team: the hero now carries the flow, so the repeated chip row below is hidden. */
.tp-page-team .tp31-org-flow{display:none}
/* In the dark page intro, the stage is the whole visual. */
.tp-editorial .tp3-intro-visual.tp35-intro{height:auto}
.tp-editorial .tp31-service .tp31-hero-visual .tp35-stage{margin:0}
@media(max-width:600px){
  .tp35-inset{width:56%;right:10px;bottom:10px;padding:8px}
  .tp35-inset-art img{max-height:110px}
  .tp-editorial .tp35-inset p{font-size:.7rem}
  .tp-editorial .tp35-inset p.tp35-inset-title{font-size:.95rem}
  .tp35-inset-list li{font-size:.7rem}
  .tp35-inset-checklist{width:70%}
}

/* 5. Team: one team from brief to bound copy (no counts) --------------------------- */
.tp35-team-flow{display:flex;flex-direction:column;justify-content:center;gap:16px;height:auto!important;padding:26px 28px;border:1px solid #ffffff24;border-radius:18px;background:#ffffff0a}
.tp35-team-flow ol{position:relative;display:grid;gap:18px;margin:0;padding:0;list-style:none}
.tp35-team-flow ol::before{content:'';position:absolute;left:21px;top:22px;bottom:22px;width:2px;background:linear-gradient(var(--tp3-cyan),var(--tp3-magenta),var(--tp3-gold-soft));transform-origin:50% 0;animation:tp35-draw 1.4s .3s var(--tp3-ease) both}
@keyframes tp35-draw{from{transform:scaleY(0)}to{transform:none}}
.tp35-team-flow li{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:14px;animation:tp35-rise .8s calc(.3s + var(--k) * 200ms) var(--tp3-ease) both}
@keyframes tp35-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.tp35-team-dot{grid-row:span 2;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--tp3-ink);border:1px solid var(--tp3-gold-soft);color:var(--tp3-gold-soft);font:600 .9rem/1 var(--tp3-serif)}
.tp35-team-flow strong{align-self:end;color:#fff;font:600 1.3rem/1.1 var(--tp3-serif)}
.tp35-team-flow small{color:var(--tp3-on-dark-muted);font:400 .85rem/1.4 var(--tp3-sans)}
.tp-editorial .tp35-team-flow p{margin:0;color:var(--tp3-gold-soft);font:700 .64rem/1.3 var(--tp3-sans);letter-spacing:.16em;text-transform:uppercase}

@media(prefers-reduced-motion:reduce){
  .tp35-stage-img,.tp35-logo-ring,.tp35-logo-ring circle,.tp35-inset,.tp35-team-flow ol::before,.tp35-team-flow li{animation:none!important}
}

/* 6. Services hub: pictures instead of drawings ------------------------------------ */
.tp31-node-scene img{display:block;width:100%;aspect-ratio:200/140;object-fit:cover;border-radius:8px;transition:transform 1s var(--tp3-ease),filter .6s}
.tp31-node:hover .tp31-node-scene img{transform:scale(1.04)}
.tp31-connector .tp31-node:not(.is-used) .tp31-node-scene img{filter:grayscale(.85) brightness(.9)}
.tp35-pub-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:clamp(26px,3vw,42px)}
.tp-editorial a.tp35-pub{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--tp3-line);border-radius:16px;background:#fffdf8;color:var(--tp3-ink);text-decoration:none;box-shadow:0 24px 44px -40px #0b2328;transition:transform .6s var(--tp3-ease),box-shadow .6s,border-color .3s}
.tp-editorial a.tp35-pub:hover{transform:translateY(-6px);border-color:var(--tp3-gold);box-shadow:0 40px 60px -42px #0b2328}
.tp35-pub-art{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:radial-gradient(60% 60% at 50% 60%,#fff,transparent 70%),linear-gradient(180deg,#f3eee2,#e8e0cd)}
.tp35-pub-art img{position:absolute;inset:14px;width:calc(100% - 28px);height:calc(100% - 28px);object-fit:contain;filter:drop-shadow(0 14px 16px #0b232840);transition:transform .9s var(--tp3-ease)}
.tp35-pub-art.is-photo img{inset:0;width:100%;height:100%;object-fit:cover;filter:none}
.tp35-pub:hover .tp35-pub-art img{transform:scale(1.05)}
.tp35-pub-art em{position:absolute;left:10px;bottom:10px;padding:5px 9px;border-radius:99px;background:#0b2328cc;color:#fff;font:700 .56rem/1.2 var(--tp3-sans);font-style:normal;letter-spacing:.1em;text-transform:uppercase}
.tp35-pub-body{display:flex;flex-direction:column;gap:8px;flex:1;padding:18px 18px 20px}
.tp35-pub-body strong{font:600 1.3rem/1.15 var(--tp3-serif)}
.tp35-pub-body>span{font:400 .9rem/1.55 var(--tp3-sans);color:var(--tp3-muted)}
.tp35-pub-body b{margin-top:auto;padding-top:6px;color:var(--tp3-teal-2);font:700 .85rem/1.3 var(--tp3-sans)}
.tp35-pub-body b i{display:inline-block;font-style:normal;transition:transform .4s var(--tp3-ease)}
.tp35-pub:hover .tp35-pub-body b i{transform:translate(3px,-3px)}
@media(max-width:1100px){.tp35-pub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.tp35-pub-grid{grid-template-columns:minmax(0,1fr)}}

/* 3.8 Shop link in the main navigation (site-wide) ----------------------- */
/* The header cart button is styled and shown only on store pages (v38.css); elsewhere the Shop link carries the count. */
.tp38-cart-btn{display:none}
@media(min-width:1101px){
  .tp3-header[data-living-nav] .tp-navigation:has(.tp38-nav-shop){gap:clamp(12px,1.2vw,22px)}
  .tp3-header[data-living-nav] .tp38-cart-btn{display:none!important}
}
@media(min-width:1101px) and (max-width:1520px){
  .tp3-header[data-living-nav] .tp-navigation:has(.tp38-nav-shop)>.tp-nav-quote{padding:14px 16px;font-size:.76rem}
}
.tp-navigation .tp38-nav-shop{position:relative}
.tp38-nav-shop b{position:absolute;top:-9px;right:-15px;min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:var(--tp3-magenta,#c2187f);color:#fff;font:700 .6rem/17px var(--tp3-sans,sans-serif);text-align:center;box-shadow:0 0 0 2px var(--tp3-cream,#faf8f2)}
@media(max-width:1100px){.tp38-nav-shop b{position:static;display:inline-block;margin-left:8px;vertical-align:2px}}
/* Narrow desktops (1101–1299px): the brand, eight links and the quote button share one row. */
@media(min-width:1101px) and (max-width:1299px){
  .tp3-header[data-living-nav] .tp-nav-inner{gap:18px}
  .tp3-header[data-living-nav] .tp-brand.tp3-brand{gap:10px}
  .tp3-header[data-living-nav] .tp-brand-name.tp3-wordmark{font-size:1.45rem}
  .tp3-header[data-living-nav] .tp-brand-sub.tp35-services,.tp3-header[data-living-nav].is-stuck .tp-brand-sub.tp35-services{font-size:.48rem;letter-spacing:.05em}
  .tp3-header[data-living-nav] .tp-navigation,.tp3-header[data-living-nav] .tp-navigation:has(.tp38-nav-shop){gap:11px}
  .tp3-header[data-living-nav] .tp-navigation>a:not(.tp-button),.tp3-header[data-living-nav] .tp-navigation>details>summary{font-size:.8rem}
  .tp3-header[data-living-nav] .tp-navigation>.tp-nav-quote,.tp3-header[data-living-nav] .tp-navigation:has(.tp38-nav-shop)>.tp-nav-quote{padding:12px 13px;font-size:.72rem}
}
@media(min-width:1101px) and (max-width:1160px){.tp3-header[data-living-nav] .tp-navigation,.tp3-header[data-living-nav] .tp-navigation:has(.tp38-nav-shop){gap:10px}}

/* Phones: logo, Quote and Menu share one row without overflowing (≤400px). */
@media(max-width:400px){
  .tp3-header[data-living-nav] .tp-nav-inner{gap:6px}
  .tp3-header[data-living-nav] .tp-brand.tp3-brand{gap:8px}
  .tp3-quote-mini{padding:0 10px;font-size:.74rem}
  .tp3-header[data-living-nav] .tp-menu-toggle.tp3-menu-toggle{padding:0 10px;min-width:42px}
}
@media(max-width:370px){
  .tp3-header[data-living-nav] .tp-brand-name.tp3-wordmark{font-size:1.08rem}
  .tp3-mark,.tp3-header[data-living-nav].is-stuck .tp3-mark{width:32px;height:48px}
}

/* 4.1 Printing methods nested under "Printing" in the Services menu -------- */
.tp41-sublinks{display:grid;margin:2px 0 8px 14px;padding-left:12px;border-left:2px solid;border-image:linear-gradient(#0a8fc4,#c2187f,#e0b04a) 1}
.tp-header[data-living-nav] .tp-mega-links .tp41-sublinks a.tp41-sub{padding:7px 4px;border-bottom:0;font-size:.86rem;font-weight:500;color:#39585b}
.tp-header[data-living-nav] .tp-mega-links .tp41-sublinks a.tp41-sub:hover,.tp-header[data-living-nav] .tp-mega-links .tp41-sublinks a.tp41-sub:focus-visible{padding-inline:10px;color:#143b3f}
.tp41-sublinks a b{font-size:.8rem}
.tp41-sublinks a::before{content:'';flex:0 0 auto;align-self:center;width:6px;height:6px;margin-right:2px;border-radius:50%;background:#0a8fc4}
.tp41-sublinks a:nth-child(2)::before{background:#c2187f}.tp41-sublinks a:nth-child(3)::before{background:#e0b04a}.tp41-sublinks a:nth-child(4)::before{background:#143b3f}

/* 4.4: tags on footage filmed on our own production floor carry a gold dot. */
.tp44-real::before{content:'';display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:#e0b45a;box-shadow:0 0 0 3px #e0b45a33;vertical-align:1px}
