/* Travel Studios North - Spartan theme v2
   One fixed background scene behind the whole site. Every section is transparent.
   All colours, fonts and sizes come from CSS variables printed by inc/frontend.php. */

*,*::before,*::after{box-sizing:border-box}
:root{--acc-rgb:var(--tsn-gold-rgb);--ease:cubic-bezier(.2,.8,.2,1);--tsn-field:rgba(0,0,0,.38);--util-h:0px}
.tsn-light{--tsn-field:rgba(255,255,255,.82)}
html{-webkit-text-size-adjust:100%;scroll-padding-top:110px}
body{margin:0;background:var(--tsn-bg);color:var(--tsn-text);font-family:var(--tsn-fb);font-size:var(--tsn-base);font-weight:var(--tsn-bw);line-height:var(--tsn-blh);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:rgb(var(--tsn-link-rgb));text-decoration:none;transition:color .2s}
a:hover{color:var(--tsn-gold-l)}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.2em}
::selection{background:var(--tsn-sel);color:#fff}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.screen-reader-text:focus{clip:auto;width:auto;height:auto;overflow:visible;background:#000;color:#fff;padding:10px 16px;z-index:100001;left:8px;top:8px}
:focus-visible{outline:2px solid var(--tsn-gold-l);outline-offset:3px}
.tsn-i{flex:none;vertical-align:middle}

/* ---------- Headings (all sizes come from Fonts & Headings) ---------- */
h1,h2,h3,h4,h5,h6{margin:0 0 .6em;color:var(--tsn-text)}
h1{font-family:var(--h1-ff);font-size:var(--h1-fs);font-weight:var(--h1-fw);line-height:var(--h1-lh);letter-spacing:var(--h1-ls);text-transform:var(--h1-tt);color:var(--h1-c)}
h2{font-family:var(--h2-ff);font-size:var(--h2-fs);font-weight:var(--h2-fw);line-height:var(--h2-lh);letter-spacing:var(--h2-ls);text-transform:var(--h2-tt);color:var(--h2-c)}
h3{font-family:var(--h3-ff);font-size:var(--h3-fs);font-weight:var(--h3-fw);line-height:var(--h3-lh);letter-spacing:var(--h3-ls);text-transform:var(--h3-tt);color:var(--h3-c)}
h4,h5,h6{font-family:var(--h4-ff);font-size:var(--h4-fs);font-weight:var(--h4-fw);line-height:var(--h4-lh);letter-spacing:var(--h4-ls);text-transform:var(--h4-tt);color:var(--h4-c)}
.tsn-section h1,.tsn-section h2,.tsn-section h3,.tsn-section h4{font-family:var(--hf,var(--h2-ff))}
.tsn-section h3{font-family:var(--hf,var(--h3-ff))}
.tsn-section h2.tsn-sec-title{font-size:var(--hs,var(--h2-fs));font-weight:var(--hw,var(--h2-fw));color:var(--hc,var(--h2-c))}
.tsn-section h1.tsn-h1{font-family:var(--hero-h1f,var(--hf,var(--h1-ff)));font-size:var(--hero-h1,var(--hs,var(--h1-fs)));font-weight:var(--hw,var(--h1-fw));color:var(--hero-h1c,var(--hc,var(--h1-c)))}
.tsn-section h2.tsn-h2{font-size:var(--hero-h2,calc(var(--h2-fs) * .62));color:var(--hero-h2c,rgb(var(--acc-rgb)));margin-bottom:.5em}
.tsn-section h3.tsn-h3{font-size:var(--hero-h3,var(--h3-fs));font-weight:var(--h3-fw);color:var(--hero-h3c,var(--tc,var(--tsn-text)));text-transform:none;max-width:46ch;margin:0 auto 0 0;opacity:.92;line-height:1.5}
.tsn-align-center .tsn-h3{margin-inline:auto}.tsn-align-right .tsn-h3{margin-inline:auto 0}
.tsn-card h3,.tsn-card h2{color:var(--chd)}
.tsn-title em,.tsn-h3 em,.tsn-h2 em{font-style:normal;color:rgb(var(--acc-rgb));background:var(--em-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* ---------- Background: gradient, scene, embers ---------- */
.tsn-bg-img,.tsn-bg,.tsn-scene,.tsn-embers{position:fixed;inset:0;pointer-events:none}
.tsn-bg-img{z-index:-4;background:center/cover no-repeat}
.tsn-bg{z-index:-3;opacity:var(--tsn-overlay);background:
	radial-gradient(1100px 650px at 12% -8%,rgba(var(--tsn-red-rgb),calc(.42 * var(--tsn-glow))),transparent 62%),
	radial-gradient(900px 600px at 105% 25%,rgba(var(--tsn-gold-rgb),calc(.15 * var(--tsn-glow))),transparent 62%),
	radial-gradient(1100px 800px at 45% 115%,rgba(var(--tsn-red-rgb),calc(.34 * var(--tsn-glow))),transparent 62%),
	linear-gradient(var(--bg-angle,180deg),var(--tsn-bg),var(--tsn-bg3),var(--tsn-bg2))}
.tsn-scene{z-index:-2;overflow:hidden;contain:strict}
.tsn-scene-in{position:absolute;inset:-420px;background-repeat:repeat;will-change:transform;transform:translate3d(0,0,0)}
.tsn-anim-drift .tsn-scene-in{animation:tsn-drift var(--sp,120s) linear infinite}
.tsn-anim-float .tsn-scene-in{animation:tsn-bob calc(var(--sp,120s) / 8) ease-in-out infinite alternate}
.tsn-anim-pulse .tsn-scene-in{animation:tsn-pulse calc(var(--sp,120s) / 10) ease-in-out infinite alternate}
.tsn-scene-big_helmet .tsn-scene-in,.tsn-scene-big_swords .tsn-scene-in{animation-name:tsn-bob;animation-duration:12s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
.tsn-scene-big_helmet.tsn-anim-none .tsn-scene-in,.tsn-scene-big_swords.tsn-anim-none .tsn-scene-in{animation:none}
@keyframes tsn-drift{to{transform:translate3d(var(--tile),var(--tile),0)}}
@keyframes tsn-bob{to{transform:translate3d(0,26px,0)}}
@keyframes tsn-pulse{to{transform:scale(1.06)}}
.tsn-embers{z-index:-1;width:100%;height:100%}
.tsn-site{position:relative;overflow-x:clip}
.tsn-main{display:block}

/* ---------- Layout ---------- */
.tsn-wrap{width:min(1200px,100% - 2.5rem);margin-inline:auto}
.tsn-wrap-full{width:calc(100% - 2.5rem)}
.tsn-narrow{width:min(860px,100% - 2.5rem)}
.tsn-section.tsn-w-narrow>.tsn-wrap{width:min(860px,100% - 2.5rem)}
.tsn-section.tsn-w-wide>.tsn-wrap{width:min(1440px,100% - 2.5rem)}
.tsn-section.tsn-w-full>.tsn-wrap{width:calc(100% - 2.5rem)}
.tsn-section{padding-block:var(--pt,90px) var(--pb,90px);font-family:var(--bf,var(--tsn-fb));color:var(--tc,var(--tsn-text));text-align:var(--ta,center)}
.tsn-hasband{background:var(--sbg)}
.tsn-cv .tsn-lazy{content-visibility:auto;contain-intrinsic-size:auto 680px}
.tsn-section .tsn-sub,.tsn-section p{color:inherit}
.tsn-section .tsn-sub{opacity:.85;color:var(--subc,inherit);font-size:var(--subs,1.06rem)}
.tsn-align-left{--jc:flex-start}.tsn-align-center{--jc:center}.tsn-align-right{--jc:flex-end}
.tsn-panel{padding:clamp(1.4rem,4vw,3.2rem)}
.tsn-grid{display:grid;gap:var(--tsn-gap);grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));text-align:left}
.tsn-sec-head{margin-bottom:3rem;text-align:var(--ta,center)}
.tsn-sub{max-width:62ch;margin-inline:auto}
.tsn-align-left .tsn-sub{margin-inline:0}.tsn-align-right .tsn-sub{margin-inline:auto 0}
.tsn-orn{display:flex;align-items:center;justify-content:var(--jc,center);gap:.9rem;margin-bottom:1.1rem;color:rgb(var(--acc-rgb))}
.tsn-orn span{display:block;width:clamp(36px,8vw,90px);height:1px;background:linear-gradient(90deg,transparent,rgb(var(--acc-rgb)))}
.tsn-orn span:last-child{background:linear-gradient(270deg,transparent,rgb(var(--acc-rgb)))}
.tsn-orn i{font-style:normal;font-family:var(--tsn-fh);font-size:1.25rem;line-height:1;transform:translateY(-1px)}
.tsn-align-left .tsn-orn span:first-child{display:none}.tsn-align-right .tsn-orn span:last-child{display:none}
.tsn-orn-footer{--jc:center;margin-bottom:2.2rem}

/* ---------- Section themes (colours of cards and panels) ---------- */
.tsn-th-glass{--cb:linear-gradient(145deg,rgba(var(--tsn-glass-rgb),calc(var(--tsn-glass) + .035)),rgba(var(--tsn-glass-rgb),var(--tsn-glass)));--cbs:var(--tsn-bg2);--cbd:rgba(var(--acc-rgb),.3);--cfg:var(--tc,var(--tsn-text));--chd:var(--hc,var(--tsn-text));--cmu:var(--tsn-muted)}
.tsn-th-crimson{--cb:linear-gradient(145deg,rgba(var(--tsn-red-rgb),.32),rgba(var(--tsn-red-rgb),.12));--cbs:var(--tsn-red-d);--cbd:rgba(var(--tsn-red-rgb),.7);--cfg:var(--tc,var(--tsn-text));--chd:var(--hc,var(--tsn-text));--cmu:var(--tsn-muted)}
.tsn-th-gold{--cb:linear-gradient(145deg,rgba(var(--tsn-ink-rgb),.4),rgba(var(--tsn-ink-rgb),.22));--cbs:var(--tsn-bg);--cbd:rgba(var(--tsn-gold-rgb),.75);--cfg:var(--tc,var(--tsn-text));--chd:var(--hc,rgb(var(--tsn-gold-rgb)));--cmu:var(--tsn-muted)}
.tsn-th-ivory{--cb:linear-gradient(145deg,rgba(255,251,242,.96),rgba(244,232,214,.94));--cbs:#f8efe0;--cbd:rgba(var(--tsn-gold-rgb),.55);--cfg:#2b1114;--chd:#6d0a10;--cmu:#6b5558}
.tsn-th-obsidian{--cb:rgba(11,6,7,.88);--cbs:#0b0607;--cbd:rgba(255,255,255,.1);--cfg:#f4eee4;--chd:#ffffff;--cmu:#b9ae9c}
.tsn-glass,.tsn-card,.tsn-panel{background:var(--cb);border:var(--tsn-card-bw) solid var(--cbd);border-radius:var(--tsn-card-r);color:var(--cfg);box-shadow:0 calc(18px * var(--tsn-shadow-k)) calc(50px * var(--tsn-shadow-k)) rgba(0,0,0,calc(.35 * var(--tsn-shadow-k))),inset 0 1px 0 rgba(255,255,255,.09)}
.tsn-glass,.tsn-panel{-webkit-backdrop-filter:blur(var(--tsn-blur)) saturate(140%);backdrop-filter:blur(var(--tsn-blur)) saturate(140%)}
.tsn-cs-frosted .tsn-card{-webkit-backdrop-filter:blur(var(--tsn-card-blur)) saturate(140%);backdrop-filter:blur(var(--tsn-card-blur)) saturate(140%)}
.tsn-perf-full .tsn-card{-webkit-backdrop-filter:blur(var(--tsn-card-blur)) saturate(140%);backdrop-filter:blur(var(--tsn-card-blur)) saturate(140%)}
.tsn-cs-outline .tsn-card,.tsn-cs-outline .tsn-panel,.tsn-cs-outline .tsn-glass{--cb:transparent;box-shadow:none;border-width:max(1.5px,var(--tsn-card-bw));border-color:rgba(var(--acc-rgb),.7);backdrop-filter:none;-webkit-backdrop-filter:none}
.tsn-cs-solid .tsn-card,.tsn-cs-solid .tsn-panel{background:var(--cbs);backdrop-filter:none;-webkit-backdrop-filter:none}
.tsn-cs-neon .tsn-card,.tsn-cs-neon .tsn-panel{border-color:rgb(var(--acc-rgb));box-shadow:0 0 0 1px rgba(var(--acc-rgb),.85),0 0 26px rgba(var(--acc-rgb),.45),inset 0 0 22px rgba(var(--acc-rgb),.08)}
.tsn-cs-sharp .tsn-card,.tsn-cs-sharp .tsn-panel{border-radius:0;clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px)}
.tsn-card{position:relative;overflow:hidden;padding:var(--tsn-card-pad);transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.tsn-card::before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:linear-gradient(90deg,transparent,rgb(var(--acc-rgb)),var(--tsn-red),transparent);transform:scaleX(0);transition:transform .5s var(--ease);z-index:2}
.tsn-card::after{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(var(--acc-rgb),.16),transparent 46%);opacity:0;transition:opacity .3s;pointer-events:none}
.tsn-sweep .tsn-card:hover::before,.tsn-th-obsidian .tsn-card::before{transform:scaleX(1)}
.tsn-card:hover{border-color:rgba(var(--acc-rgb),.65)}
.tsn-card:hover::after{opacity:1}
.tsn-hover-lift .tsn-card:hover{transform:translateY(-6px);box-shadow:0 26px 60px rgba(0,0,0,.45)}
.tsn-hover-glow .tsn-card:hover{box-shadow:0 0 0 1px rgba(var(--tsn-red-rgb),.8),0 0 38px rgba(var(--tsn-red-rgb),.55)}
.tsn-hover-tilt .tsn-card{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .18s ease-out,box-shadow .3s,border-color .3s}
.tsn-hover-tilt .tsn-card:hover{box-shadow:0 26px 60px rgba(0,0,0,.45)}

/* ---------- Buttons ---------- */
.tsn-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6em;padding:.95em 1.9em;font-family:var(--tsn-fa);font-weight:600;font-size:.92rem;line-height:1.2;letter-spacing:.16em;text-transform:uppercase;color:var(--tsn-btn-text);border:0;cursor:pointer;overflow:hidden;isolation:isolate;text-decoration:none;background:linear-gradient(var(--btn-angle,135deg),var(--tsn-red),var(--tsn-red-d));clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);box-shadow:inset 0 0 0 1px rgba(var(--tsn-gold-rgb),.75);transition:transform .25s var(--ease),filter .25s,color .25s}
.tsn-btn::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.38) 50%,transparent 70%);transform:translateX(-130%)}
.tsn-btn:hover{color:var(--tsn-btn-text);transform:translateY(-2px);filter:brightness(1.12)}
.tsn-btn:hover::before{transform:translateX(130%);transition:transform .75s var(--ease)}
.tsn-btn:active{transform:translateY(0) scale(.98)}
.tsn-btn-gold{background:rgba(var(--tsn-ink-rgb),.22);color:var(--tsn-gold-l);box-shadow:inset 0 0 0 1.5px rgb(var(--tsn-gold-rgb))}
.tsn-btn-gold:hover{background:rgb(var(--tsn-gold-rgb));color:#150607}
.tsn-ctas-gold .tsn-btn-cta{background:rgba(var(--tsn-ink-rgb),.22);color:var(--tsn-gold-l);box-shadow:inset 0 0 0 1.5px rgb(var(--tsn-gold-rgb))}
.tsn-ctas-solid .tsn-btn-cta{background:linear-gradient(135deg,var(--tsn-gold-l),var(--tsn-gold));color:#1b0a0b;box-shadow:none}
.tsn-ctas-white .tsn-btn-cta{background:#fff;color:#7a0b12;box-shadow:none}
.tsn-btns{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.8rem;justify-content:var(--jc,flex-start)}
.tsn-center-btn{text-align:center;margin-top:2.6rem}

/* ---------- Utility bar ---------- */
.tsn-util{position:relative;z-index:61;background:var(--u-bg);color:var(--u-c);font-family:var(--u-ff);font-size:var(--u-fs);letter-spacing:var(--u-ls);text-transform:var(--u-tt)}
.tsn-util.has-line{border-bottom:1px solid var(--u-bd)}
.tsn-us-transparent .tsn-util{background:transparent}
.tsn-us-gradient .tsn-util{background:linear-gradient(90deg,rgba(var(--tsn-red-d-rgb,109,10,16),.95),rgba(var(--tsn-red-rgb),.65))}
.tsn-us-solid .tsn-util{background:var(--tsn-bg2)}
.tsn-util-sticky .tsn-util{position:sticky;top:0}
.admin-bar.tsn-util-sticky .tsn-util{top:32px}
.tsn-util-in{display:flex;align-items:center;gap:.4rem 1.4rem;padding:var(--u-py) 0;flex-wrap:wrap;justify-content:space-between}
.tsn-ualign-center .tsn-util-in{justify-content:center}
.tsn-ualign-left .tsn-util-in{justify-content:flex-start}
.tsn-ualign-right .tsn-util-in{justify-content:flex-end}
.tsn-util-r{display:flex;gap:.3rem 1.3rem;flex-wrap:wrap;align-items:center}
.tsn-util a{color:var(--u-l)}
.tsn-util a:hover{color:var(--u-h)}
.tsn-u-item{display:inline-flex;align-items:center;gap:.45rem}
.tsn-u-item .tsn-i{width:var(--u-ic);height:var(--u-ic);color:rgb(var(--acc-rgb))}
.tsn-u-wa .tsn-i{color:#25d366}
.tsn-socials{display:inline-flex;gap:.7rem;align-items:center}
.tsn-soc{display:inline-flex;opacity:.85;transition:opacity .2s,transform .2s}
.tsn-soc:hover{opacity:1;transform:translateY(-2px)}

/* ---------- Header ---------- */
.tsn-header{position:relative;z-index:60;padding:.8rem 0;transition:transform .35s var(--ease)}
.tsn-hdr-sticky .tsn-header{position:sticky;top:var(--util-h)}
.admin-bar.tsn-hdr-sticky .tsn-header{top:calc(32px + var(--util-h))}
@media(max-width:782px){.admin-bar.tsn-hdr-sticky .tsn-header{top:calc(46px + var(--util-h))}.admin-bar.tsn-util-sticky .tsn-util{top:46px}}
.tsn-header.is-hidden{transform:translateY(-140%)}
.tsn-header-in{display:flex;align-items:center;gap:1.5rem;padding:var(--h-py) 1.2rem;position:relative}
.tsn-header-in.tsn-glass{background:var(--h-bg);border:var(--h-bw) solid var(--h-bd);border-radius:var(--h-r);color:var(--tsn-text);box-shadow:none;-webkit-backdrop-filter:blur(var(--h-blur)) saturate(140%);backdrop-filter:blur(var(--h-blur)) saturate(140%);transition:padding .3s,background .3s,border-color .3s}
.tsn-hdr-shadow .tsn-header-in.tsn-glass{box-shadow:0 14px 40px rgba(0,0,0,.3)}
.tsn-hs-solid .tsn-header-in.tsn-glass{backdrop-filter:none;-webkit-backdrop-filter:none}
.tsn-hs-gradient .tsn-header-in.tsn-glass{background:linear-gradient(135deg,rgba(var(--tsn-red-rgb),.92),rgba(109,10,16,.94));border-color:rgba(var(--tsn-gold-rgb),.6);color:#fff}
.tsn-hs-transparent .tsn-header-in.tsn-glass{background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.tsn-hs-outline .tsn-header-in.tsn-glass{background:transparent;border:1.5px solid rgb(var(--acc-rgb));backdrop-filter:none;-webkit-backdrop-filter:none}
.tsn-header.tsn-top .tsn-header-in.tsn-glass.is-ttop{background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
body:not(.tsn-hdr-float) .tsn-header{padding:0}
body:not(.tsn-hdr-float) .tsn-header-in.tsn-glass{width:100%;margin:0;border-radius:0;border-width:0 0 var(--h-bw) 0;padding-inline:max(1.2rem,calc((100% - 1200px) / 2))}
.tsn-header.is-scrolled .tsn-header-in{padding-block:calc(var(--h-py) * .45)}
.tsn-header.is-scrolled .tsn-logo img{height:calc(var(--tsn-logo-h) * .78)}
.tsn-header.is-scrolled .tsn-logo-mark{transform:scale(.88)}

.tsn-logo{display:flex;align-items:center;gap:.75rem;color:var(--tsn-text);flex:none}
.tsn-logo:hover{color:var(--tsn-text)}
.tsn-logo img{height:var(--tsn-logo-h);width:auto;transition:height .3s}
.tsn-logo-mark{display:grid;place-items:center;width:var(--tsn-mark);height:var(--tsn-mark);border-radius:50%;font-family:var(--tsn-fh);font-size:calc(var(--tsn-mark) * .34);font-weight:800;color:var(--tsn-gold-l);background:radial-gradient(circle at 35% 30%,#d12a33,#4f060b);box-shadow:0 0 0 2px rgb(var(--tsn-gold-rgb)),0 0 18px rgba(var(--tsn-red-rgb),.6);flex:none;transition:transform .3s;font-size:calc(var(--tsn-mark) * .5)}
.tsn-logo-text{display:flex;flex-direction:column;line-height:1.1}
.tsn-logo-text strong{font-family:var(--tsn-logo-ff);font-size:var(--tsn-logo-fs);letter-spacing:var(--tsn-logo-ls);font-weight:700;color:var(--tsn-logo-c)}
.tsn-logo-text small{font-family:var(--tsn-fa);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--tsn-logo-tc);margin-top:.3rem}
.tsn-tm{font-family:var(--tsn-fa);font-size:.5em;letter-spacing:0;margin-left:.15em;color:rgb(var(--tsn-gold-rgb));vertical-align:super;font-weight:500}
.tsn-nav{display:flex;align-items:center;gap:1.6rem;margin-left:auto}
.tsn-menu,.tsn-nav ul.tsn-menu{display:flex;gap:var(--m-gap);list-style:none;margin:0;padding:0;align-items:center}
.tsn-nav ul{list-style:none;margin:0;padding:0}
.tsn-nav li{position:relative}
.tsn-nav li a{display:block;position:relative;padding:.4rem 0;font-family:var(--m-ff);font-size:var(--m-fs);font-weight:var(--m-fw);letter-spacing:var(--m-ls);text-transform:var(--m-tt);color:var(--m-c)}
.tsn-nav li a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:linear-gradient(90deg,rgb(var(--tsn-gold-rgb)),var(--tsn-red));transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.tsn-nav li a:hover,.tsn-nav li.current-menu-item>a{color:var(--m-h)}
.tsn-hv-underline .tsn-nav li a:hover::after,.tsn-hv-underline .tsn-nav li.current-menu-item>a::after{transform:scaleX(1)}
.tsn-hv-glow .tsn-nav li a:hover{text-shadow:0 0 14px rgba(var(--tsn-gold-rgb),.9)}
.tsn-hv-pill .tsn-nav li>a{padding:.45rem .9rem;border-radius:999px;transition:background .25s,color .25s}
.tsn-hv-pill .tsn-nav li>a:hover{background:rgba(var(--acc-rgb),.16)}
.tsn-nav li ul{position:absolute;left:0;top:100%;min-width:200px;flex-direction:column;align-items:flex-start;gap:0;padding:.6rem 1rem;background:rgba(var(--tsn-bg-rgb),.96);border:1px solid rgba(var(--tsn-gold-rgb),.3);border-radius:8px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s}
.tsn-nav li:hover>ul,.tsn-nav li:focus-within>ul{opacity:1;visibility:visible;transform:none}
.tsn-hdr-actions{display:flex;align-items:center;gap:1rem}
.tsn-h-item{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--m-ff);font-size:var(--m-fs);color:var(--m-c)}
.tsn-h-item .tsn-i{color:rgb(var(--acc-rgb))}
.tsn-h-wa .tsn-i{color:#25d366}
.tsn-header-cta{padding:.75em 1.4em;font-size:var(--cta-fs)}
.tsn-btn-cta .tsn-i{width:16px;height:16px}
.tsn-m-in,.tsn-bar-cta-m{display:none}
.tsn-hl-center_menu .tsn-nav{flex:1;margin-left:0}
.tsn-hl-center_menu .tsn-menu{margin:0 auto}
.tsn-hl-logo_right .tsn-header-in{flex-direction:row-reverse}
.tsn-hl-logo_right .tsn-nav{margin-left:0;margin-right:auto;flex-direction:row-reverse}
.tsn-hl-stacked .tsn-header-in{flex-direction:column;gap:.7rem}
.tsn-hl-stacked .tsn-nav{margin:0}
.tsn-burger{display:none;width:var(--bg-sz);height:var(--bg-sz);border:1px solid rgba(var(--tsn-gold-rgb),.5);background:var(--bg-bg);border-radius:6px;cursor:pointer;padding:0;flex-direction:column;justify-content:center;align-items:center;gap:5px;margin-left:auto;position:relative;z-index:80}
.tsn-burger i{display:block;width:calc(var(--bg-sz) * .5);height:2px;background:var(--bg-c);transition:transform .3s,opacity .3s}
.tsn-burger-lines .tsn-burger{border-color:transparent}
.tsn-burger-round .tsn-burger{border-radius:50%}
.tsn-burger-lines2 .tsn-burger i:nth-child(2){display:none}
.tsn-burger-lines2 .tsn-burger{gap:8px}
.tsn-header.is-open .tsn-burger i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.tsn-header.is-open .tsn-burger i:nth-child(2){opacity:0}
.tsn-header.is-open .tsn-burger i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.tsn-burger-lines2 .tsn-header.is-open .tsn-burger i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.tsn-burger-lines2 .tsn-header.is-open .tsn-burger i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.tsn-m-logo{padding:4px 0 14px;margin-bottom:6px;border-bottom:1px solid rgba(var(--tsn-gold-rgb),.25)}
.tsn-m-contact{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;padding:16px 0 6px}
.tsn-m-contact a{display:inline-flex;align-items:center;gap:.45rem;font-size:.95rem;color:var(--tsn-text)}
.tsn-m-contact .tsn-i{color:rgb(var(--acc-rgb))}
.tsn-m-lang{padding:10px 0}
.tsn-m-cta{padding-top:16px}
.tsn-m-cta .tsn-btn{width:100%}
.tsn-tag-nom{}
body.tsn-nav-open-lock{overflow:hidden}

/* ---------- Language switch ---------- */
.tsn-lang{position:relative;display:inline-block}
.tsn-lang-btn{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:1px solid rgba(var(--acc-rgb),.4);color:inherit;border-radius:999px;padding:.22rem .7rem;font:inherit;cursor:pointer}
.tsn-lang-btn .tsn-i:first-child{color:rgb(var(--acc-rgb))}
.tsn-lang-btn:hover{border-color:rgb(var(--acc-rgb))}
.tsn-lang-drop .tsn-lang-menu{list-style:none;margin:0;padding:.4rem;position:absolute;right:0;top:calc(100% + 8px);min-width:170px;max-height:60vh;overflow:auto;background:rgba(var(--tsn-bg-rgb),.98);border:1px solid rgba(var(--acc-rgb),.4);border-radius:10px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s;z-index:90;text-align:left}
.tsn-lang-drop.is-open .tsn-lang-menu{opacity:1;visibility:visible;transform:none}
.tsn-lang-menu a{display:block;padding:.45rem .8rem;border-radius:6px;color:var(--tsn-text);font-family:var(--tsn-fb);font-size:.92rem;letter-spacing:0;text-transform:none}
.tsn-lang-menu a:hover{background:rgba(var(--acc-rgb),.16);color:var(--tsn-gold-l)}
.tsn-lang-menu a.is-current{color:rgb(var(--acc-rgb));font-weight:700}
.tsn-lang-inline .tsn-lang-menu{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.tsn-lang-inline .tsn-lang-menu a{border:1px solid rgba(var(--acc-rgb),.35);border-radius:999px;padding:.3rem .8rem;font-size:.85rem}
.tsn-footer-lang{margin-top:2rem}
.tsn-footer-lang .tsn-lang-menu{justify-content:center}
.goog-te-banner-frame,.skiptranslate>iframe,#goog-gt-tt,.goog-te-balloon-frame,#google_translate_element{display:none!important}
body{top:0!important}
.goog-text-highlight{background:none!important;box-shadow:none!important}

/* ---------- Hero ---------- */
.tsn-hero{position:relative;isolation:isolate}
.tsn-hero-bg{position:absolute;inset:0;z-index:-1;background-size:cover;background-position:center;-webkit-mask-image:linear-gradient(180deg,transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(180deg,transparent,#000 22%,#000 78%,transparent)}
.tsn-hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(1.5rem,5vw,4rem);align-items:center}
.tsn-hero-left{grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr)}
.tsn-hero-left .tsn-hero-art{order:-1}
.tsn-hero-top,.tsn-hero-none,.tsn-hero-behind{grid-template-columns:minmax(0,1fr)}
.tsn-hero-top .tsn-hero-art{order:-1}
.tsn-hero-behind .tsn-hero-art{position:absolute;inset:0;z-index:-1;opacity:var(--img-op);pointer-events:none}
.tsn-hero-copy{padding:clamp(1.6rem,4vw,3.2rem)}
.tsn-hero-copy:not(.tsn-glass){padding-inline:0}
.tsn-hero-art{display:grid;place-items:center}
.tsn-emblem-svg,.tsn-emblem-img{width:min(var(--img-w,380px),100%);height:auto;border-radius:var(--img-r,0);border:var(--img-bw,0) solid rgb(var(--acc-rgb));opacity:var(--img-op,1)}
.tsn-hero-behind .tsn-emblem-svg,.tsn-hero-behind .tsn-emblem-img{width:min(var(--img-w,380px),90%)}
.tsn-imgsh-soft .tsn-emblem-svg,.tsn-imgsh-soft .tsn-emblem-img{filter:drop-shadow(0 22px 36px rgba(0,0,0,.5))}
.tsn-imgsh-glow .tsn-emblem-svg,.tsn-imgsh-glow .tsn-emblem-img{filter:drop-shadow(0 0 40px rgba(var(--tsn-red-rgb),.6))}
.tsn-imgsh-gold .tsn-emblem-svg,.tsn-imgsh-gold .tsn-emblem-img{filter:drop-shadow(0 0 36px rgba(var(--tsn-gold-rgb),.65))}
.tsn-imgfx-float .tsn-emblem-svg,.tsn-imgfx-float .tsn-emblem-img{animation:tsn-float 7s ease-in-out infinite}
.tsn-imgfx-pulse .tsn-emblem-svg,.tsn-imgfx-pulse .tsn-emblem-img{animation:tsn-beat 3.4s ease-in-out infinite}
.tsn-imgfx-spin .tsn-emblem-svg,.tsn-imgfx-spin .tsn-emblem-img{animation:tsn-spin 80s linear infinite}
@keyframes tsn-float{0%,100%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-14px) rotate(1.5deg)}}
@keyframes tsn-beat{50%{transform:scale(1.05)}}
@keyframes tsn-spin{to{transform:rotate(360deg)}}

/* ---------- Services ---------- */
.tsn-chips{display:flex;justify-content:var(--jc,center);flex-wrap:wrap;gap:.7rem;list-style:none;margin:-1.4rem 0 2.6rem;padding:0}
.tsn-chips li{padding:.4em 1.1em;border:1px solid rgba(var(--acc-rgb),.55);font-family:var(--tsn-fa);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--tsn-gold-l);background:rgba(var(--tsn-red-rgb),.18);border-radius:999px}
.tsn-icon{width:64px;height:64px;display:grid;place-items:center;margin-bottom:1.1rem;border-radius:50%;font-family:var(--tsn-fh);font-size:1.9rem;font-weight:800;color:var(--tsn-gold-l);background:radial-gradient(circle at 35% 30%,rgba(var(--tsn-red-rgb),.9),rgba(79,6,11,.95));box-shadow:0 0 0 2px rgb(var(--acc-rgb)),0 0 22px rgba(var(--tsn-red-rgb),.5);transition:transform .5s var(--ease)}
.tsn-icon-img{width:70%;height:70%;object-fit:contain}
.tsn-card:hover .tsn-icon{transform:rotate(360deg) scale(1.08)}
.tsn-service h3,.tsn-client h3,.tsn-cert h3,.tsn-award h3,.tsn-post h3,.tsn-info h3{margin-bottom:.5em}
.tsn-service p{margin:0 0 .8em;opacity:.88}
.tsn-badge{display:inline-block;margin-bottom:.9rem;padding:.2em .85em;border:1px solid rgba(var(--acc-rgb),.6);border-radius:999px;font-family:var(--tsn-fa);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:rgb(var(--acc-rgb))}
.tsn-more{display:inline-block;font-family:var(--tsn-fa);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid rgba(var(--acc-rgb),.5);padding-bottom:2px}
.tsn-note{margin:2.2rem 0 0;color:var(--tsn-muted);text-align:var(--ta,center)}

/* ---------- Clients ---------- */
.tsn-client{padding:0;display:flex;flex-direction:column}
.tsn-client-img{aspect-ratio:16/10;overflow:hidden;background:rgba(var(--tsn-ink-rgb),.35)}
.tsn-client-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.tsn-card:hover .tsn-client-img img{transform:scale(1.08)}
.tsn-client-body{padding:1.1rem 1.3rem 1.3rem}
.tsn-client-work{font-size:.92rem;opacity:.8;margin-bottom:.9rem}
.tsn-rev{margin:0;padding-top:.8rem;border-top:1px dashed rgba(var(--acc-rgb),.35);display:flex;flex-direction:column}
.tsn-rev small{font-family:var(--tsn-fa);letter-spacing:.14em;text-transform:uppercase;font-size:.66rem;color:var(--tsn-muted)}
.tsn-rev strong{font-family:var(--h3-ff);font-size:1.45rem;color:rgb(var(--acc-rgb));letter-spacing:.03em}
.tsn-client h3 a,.tsn-cert h3 a,.tsn-award h3 a,.tsn-post h3 a{color:inherit}
.tsn-client h3 a:hover,.tsn-cert h3 a:hover,.tsn-award h3 a:hover,.tsn-post h3 a:hover{color:var(--tsn-gold-l)}

/* ---------- Testimonials ---------- */
.tsn-verified{display:inline-flex;align-items:center;gap:.7rem;flex-wrap:wrap;justify-content:center;margin:-1.6rem auto 2.4rem;padding:.5rem 1.2rem;border:1px solid rgba(var(--acc-rgb),.4);border-radius:999px;background:rgba(var(--tsn-ink-rgb),.2);font-family:var(--tsn-fa);font-size:.85rem;letter-spacing:.1em;--v:#00b67a}
.tsn-verified[data-src="google"]{--v:#4285f4}
.tsn-verified-mark{display:grid;place-items:center;width:26px;height:26px;border-radius:4px;background:var(--v);color:#fff;font-weight:700;font-size:.85rem}
.tsn-verified a,.tsn-verified>span:not(.tsn-verified-mark){color:var(--tsn-text)}
.tsn-verified em{font-style:normal;color:var(--tsn-muted)}
.tsn-align-left .tsn-verified{display:flex;width:max-content;max-width:100%;margin-inline:0}
.tsn-quote{margin:0;display:flex;flex-direction:column;gap:1rem}
.tsn-quote blockquote{margin:0;font-size:1.02rem;font-style:italic;flex:1;opacity:.92;color:var(--cfg)}
.tsn-quote figcaption{display:flex;align-items:center;gap:.9rem}
.tsn-stars{color:var(--v,#00b67a);letter-spacing:.2em;font-size:1.05rem}
.tsn-stars span{opacity:.25}
.tsn-grid[data-src="trustpilot"]{--v:#00b67a}.tsn-grid[data-src="google"]{--v:#fbbc04}
.tsn-avatar{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid rgb(var(--acc-rgb));flex:none}
.tsn-avatar-ph{display:grid;place-items:center;background:rgba(var(--tsn-red-rgb),.55);font-family:var(--tsn-fh);color:var(--tsn-gold-l)}
.tsn-who{display:flex;flex-direction:column;line-height:1.3}
.tsn-who small{color:var(--tsn-muted)}

/* ---------- Results / certs / awards ---------- */
.tsn-result{margin:0;padding:0}
.tsn-result-img{aspect-ratio:4/3;overflow:hidden;background:rgba(var(--tsn-ink-rgb),.35)}
.tsn-result-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.tsn-card:hover .tsn-result-img img{transform:scale(1.07)}
.tsn-result figcaption{padding:1rem 1.3rem;font-family:var(--tsn-fh);letter-spacing:.06em}
.tsn-badges-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.tsn-cert,.tsn-award{text-align:center;display:flex;flex-direction:column;align-items:center}
.tsn-cert-img,.tsn-award-img{width:100%;aspect-ratio:16/10;display:grid;place-items:center;margin-bottom:1rem}
.tsn-cert-img img,.tsn-award-img img{max-height:100%;width:auto;max-width:100%;object-fit:contain}
.tsn-cert p,.tsn-award p{margin:0;color:var(--tsn-muted);font-size:.92rem}
.tsn-ph{width:100%;height:100%;min-height:90px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(var(--tsn-red-rgb),.35),rgba(0,0,0,.4));color:rgba(var(--tsn-gold-rgb),.6);font-family:var(--tsn-fh);font-size:2.6rem}

/* ---------- Contact ---------- */
.tsn-contact-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.6rem;text-align:left;max-width:820px;margin-inline:auto}
.tsn-contact-grid.has-info{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);max-width:none}
.tsn-form-wrap{padding:clamp(1.4rem,3vw,2.2rem)}
.tsn-form p{margin:0 0 1rem}
.tsn-form label{display:block;margin-bottom:.35rem;font-family:var(--tsn-fa);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--tsn-muted)}
.tsn-row{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.tsn-form input,.tsn-form select,.tsn-form textarea,.tsn-signup-form input{
	width:100%;padding:.85rem 1rem;font:inherit;color:var(--tsn-text);background:var(--tsn-field);border:1px solid rgba(var(--tsn-gold-rgb),.3);border-radius:6px;transition:border-color .25s,box-shadow .25s
}
.tsn-form select option{background:var(--tsn-bg2);color:var(--tsn-text)}
.tsn-form input:focus,.tsn-form select:focus,.tsn-form textarea:focus,.tsn-signup-form input:focus{outline:0;border-color:rgb(var(--tsn-gold-rgb));box-shadow:0 0 0 3px rgba(var(--tsn-red-rgb),.45)}
.tsn-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.tsn-notice{margin:0 0 1.2rem;padding:.8rem 1rem;border-radius:6px;font-size:.95rem;border:1px solid}
.tsn-notice-ok{background:rgba(32,160,90,.16);border-color:rgba(60,200,120,.6)}
.tsn-notice-err{background:rgba(var(--tsn-red-rgb),.25);border-color:rgba(var(--tsn-red-rgb),.9)}
.tsn-info ul{list-style:none;padding:0;margin:1rem 0 0}
.tsn-info li{padding:.7rem 0;border-top:1px dashed rgba(var(--acc-rgb),.3)}
.tsn-info li span{display:block;font-family:var(--tsn-fa);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--tsn-muted)}

/* ---------- FAQ ---------- */
.tsn-faq{max-width:860px;margin-inline:auto;display:grid;gap:.9rem;text-align:left}
.tsn-faq-item{padding:0}
.tsn-faq-item h3{margin:0;font-size:1rem}
.tsn-faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 1.4rem;background:none;border:0;color:var(--chd);font-family:var(--hf,var(--h3-ff));font-size:1.05rem;letter-spacing:.05em;text-transform:var(--h3-tt);text-align:left;cursor:pointer}
.tsn-faq-q i{position:relative;flex:none;width:22px;height:22px}
.tsn-faq-q i::before,.tsn-faq-q i::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;margin:-1px 0 0 -7px;background:rgb(var(--acc-rgb));transition:transform .35s var(--ease)}
.tsn-faq-q i::after{transform:rotate(90deg)}
.is-open .tsn-faq-q i::after{transform:rotate(0)}
.tsn-faq-panel{display:grid;grid-template-rows:1fr}
.tsn-faq-panel>div{overflow:hidden}
.tsn-faq-panel p{padding:0 1.4rem 1.3rem;margin:0;opacity:.88;color:var(--cfg)}
.js .tsn-faq-panel{grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.js .is-open>.tsn-faq-panel,.js .is-open .tsn-faq-panel{grid-template-rows:1fr}

/* ---------- Blog ---------- */
.tsn-post{padding:0;display:flex;flex-direction:column}
.tsn-post-img{display:block;aspect-ratio:3/2;overflow:hidden;background:rgba(var(--tsn-ink-rgb),.35)}
.tsn-post-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.tsn-card:hover .tsn-post-img img{transform:scale(1.07)}
.tsn-post-body{padding:1.2rem 1.4rem 1.5rem;display:flex;flex-direction:column;flex:1}
.tsn-post-body time{font-family:var(--tsn-fa);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--tsn-muted);margin-bottom:.5rem}
.tsn-post-body p{opacity:.85;flex:1}
.tsn-post h2{font-size:1.18rem}

/* ---------- Inner pages ---------- */
.tsn-page{padding:3.5rem 0 5rem}
.tsn-page-head{text-align:center;margin-bottom:2.5rem}
.tsn-page-head .tsn-orn{--jc:center}
.tsn-entry{padding:clamp(1.4rem,4vw,3rem);margin-bottom:2rem}
.tsn-entry-head .tsn-title{font-size:clamp(1.8rem,4vw,2.8rem)}
.tsn-meta{color:var(--tsn-muted);font-size:.85rem;letter-spacing:.06em}
.tsn-entry-thumb{margin:0 0 1.6rem}.tsn-entry-thumb img{border-radius:8px;width:100%}
.tsn-content{overflow-wrap:anywhere}
.tsn-content h2,.tsn-content h3,.tsn-content h4{margin-top:1.6em}
.tsn-content blockquote{margin:1.5em 0;padding:.4em 1.4em;border-left:3px solid rgb(var(--tsn-red-rgb));font-style:italic;color:var(--tsn-muted)}
.tsn-content img{border-radius:8px}
.tsn-content table{width:100%;border-collapse:collapse}
.tsn-content th,.tsn-content td{border:1px solid rgba(var(--tsn-gold-rgb),.25);padding:.6rem .8rem;text-align:left}
.tsn-content pre,.tsn-content code{background:rgba(var(--tsn-ink-rgb),.35);border-radius:4px}
.tsn-content pre{padding:1rem;overflow:auto}
.tsn-404{text-align:center}
.tsn-pagination{margin-top:2.5rem;text-align:center}
.tsn-pagination .nav-links{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}
.tsn-pagination .page-numbers,.tsn-postnav a{display:inline-block;padding:.5rem .9rem;border:1px solid rgba(var(--tsn-gold-rgb),.4);border-radius:6px}
.tsn-pagination .current{background:rgb(var(--tsn-red-rgb));color:#fff;border-color:rgb(var(--tsn-red-rgb))}
.tsn-postnav .nav-links{display:flex;justify-content:space-between;gap:1rem;margin-bottom:2rem}
.tsn-comments{padding:clamp(1.2rem,3vw,2.2rem)}
.tsn-comment-list{list-style:none;padding:0}
.tsn-comment-list li{padding:1rem 0;border-top:1px dashed rgba(var(--tsn-gold-rgb),.25)}
.tsn-comments input[type=text],.tsn-comments input[type=email],.tsn-comments input[type=url],.tsn-comments textarea,.search-field{width:100%;padding:.8rem 1rem;font:inherit;color:var(--tsn-text);background:var(--tsn-field);border:1px solid rgba(var(--tsn-gold-rgb),.3);border-radius:6px}
.search-submit,.comment-form .submit{margin-top:.6rem;padding:.7rem 1.4rem;background:rgb(var(--tsn-red-rgb));color:#fff;border:1px solid rgb(var(--tsn-gold-rgb));border-radius:4px;cursor:pointer;font-family:var(--tsn-fa);letter-spacing:.12em;text-transform:uppercase}



/* ---------- Footer ---------- */
.tsn-footer{padding:var(--f-pt) 0 1.6rem;border-top:1px solid rgba(var(--tsn-gold-rgb),.22);background:var(--f-bg);color:var(--f-c)}
.tsn-footer-grid{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(auto-fit,minmax(150px,1fr));gap:2.4rem}
.tsn-footer-brand p{margin-top:1rem;color:var(--f-c);max-width:36ch}
.tsn-footer h4{letter-spacing:.18em;margin-bottom:1.1rem;color:var(--f-h)}
.tsn-flist,.tsn-footer-col ul{list-style:none;margin:0;padding:0}
.tsn-footer-col li{margin-bottom:.55rem;color:var(--f-c)}
.tsn-footer-col li a{color:var(--f-l);position:relative;transition:padding .25s,color .25s}
.tsn-footer-col li a:hover{color:var(--tsn-gold-l);padding-left:6px}
.tsn-footer .tsn-logo{color:var(--f-l)}
.tsn-f-soc{margin-top:1rem}
.tsn-f-cta{margin-top:1.2rem}
.tsn-signup p{color:var(--f-c);margin-bottom:.9rem}
.tsn-signup-form{display:grid;gap:.7rem}
.tsn-signup-form .tsn-btn{width:100%}
.tsn-footer-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:3rem;padding-top:1.4rem;border-top:1px dashed rgba(var(--tsn-gold-rgb),.2);font-size:.85rem;color:var(--f-c)}
.tsn-footer-bottom p{margin:0}

/* ---------- Floating buttons ---------- */
.tsn-float{position:fixed;bottom:var(--fl-off);width:52px;height:52px;border-radius:50%;display:grid;place-items:center;z-index:80;color:#fff;border:0;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.4);transition:transform .25s,opacity .25s,visibility .25s}
.tsn-fl-right{right:var(--fl-off)}.tsn-fl-left{left:var(--fl-off)}
.tsn-float-wa{background:#25d366}
.tsn-float-wa:hover{color:#fff;transform:scale(1.08)}
.tsn-float-top{background:linear-gradient(135deg,var(--tsn-red),var(--tsn-red-d));box-shadow:0 0 0 2px rgb(var(--tsn-gold-rgb)),0 8px 24px rgba(0,0,0,.4);opacity:0;visibility:hidden;transform:translateY(10px)}
.tsn-float-top.is-show{opacity:1;visibility:visible;transform:none}
.tsn-demobar{position:fixed;left:0;right:0;bottom:0;padding:10px 14px;background:rgba(var(--tsn-bg-rgb),.96);border-top:1px solid rgba(var(--tsn-gold-rgb),.35);z-index:79}
.tsn-demobar .tsn-btn{width:100%}
.tsn-has-demobar{padding-bottom:72px}

/* ---------- Scroll reveal animations ---------- */
@keyframes tsn-fade-up{from{opacity:0;transform:translateY(46px)}}
@keyframes tsn-fade-down{from{opacity:0;transform:translateY(-46px)}}
@keyframes tsn-slide-left{from{opacity:0;transform:translateX(-90px)}}
@keyframes tsn-slide-right{from{opacity:0;transform:translateX(90px)}}
@keyframes tsn-zoom-in{from{opacity:0;transform:scale(.78)}}
@keyframes tsn-shield-flip{from{opacity:0;transform:perspective(900px) rotateY(-85deg) scale(.9)}}
@keyframes tsn-spear-thrust{from{opacity:0;transform:translateX(-150px);clip-path:inset(0 100% 0 0)}60%{opacity:1}to{clip-path:inset(0 0 0 0)}}
@keyframes tsn-blade-slash{from{opacity:0;clip-path:polygon(0 0,0 0,0 100%,0 100%)}to{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}}
@keyframes tsn-rise-blur{from{opacity:0;filter:blur(16px);transform:translateY(28px) scale(1.05)}}
.js .tsn-reveal:not(.is-in){opacity:0}
.tsn-reveal.is-in{animation-duration:var(--t,800ms);animation-delay:var(--d,0ms);animation-timing-function:var(--ease);animation-fill-mode:backwards}
.tsn-reveal.is-in[data-anim="fade-up"]{animation-name:tsn-fade-up}
.tsn-reveal.is-in[data-anim="fade-down"]{animation-name:tsn-fade-down}
.tsn-reveal.is-in[data-anim="slide-left"]{animation-name:tsn-slide-left}
.tsn-reveal.is-in[data-anim="slide-right"]{animation-name:tsn-slide-right}
.tsn-reveal.is-in[data-anim="zoom-in"]{animation-name:tsn-zoom-in}
.tsn-reveal.is-in[data-anim="shield-flip"]{animation-name:tsn-shield-flip}
.tsn-reveal.is-in[data-anim="spear-thrust"]{animation-name:tsn-spear-thrust}
.tsn-reveal.is-in[data-anim="blade-slash"]{animation-name:tsn-blade-slash}
.tsn-reveal.is-in[data-anim="rise-blur"]{animation-name:tsn-rise-blur}


/* ---------- Scroll progress ---------- */
#tsn-progress{position:fixed;top:0;left:0;width:100%;height:3px;z-index:100000;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--tsn-red),rgb(var(--tsn-gold-rgb)),var(--tsn-gold-l));box-shadow:0 0 10px rgba(var(--tsn-red-rgb),.8)}


/* ---------- Cursor + click effects ---------- */
body.tsn-cursor-on,body.tsn-cursor-on a,body.tsn-cursor-on button,body.tsn-cursor-on summary,body.tsn-cursor-on label,body.tsn-cursor-on select,body.tsn-cursor-on [role=button]{cursor:none}
body.tsn-cursor-on input,body.tsn-cursor-on textarea{cursor:text}
.tsn-cur{position:fixed;left:0;top:0;pointer-events:none;z-index:99999;opacity:0;transition:opacity .2s;will-change:transform;color:var(--cur-c,#d4a537)}
body.tsn-cur-live .tsn-cur{opacity:1}
body.is-text .tsn-cur{opacity:0}
.tsn-cur .tsn-cur-in{display:block;width:var(--cur-s,34px);height:var(--cur-s,34px);transform-origin:0 0;transition:transform .18s var(--ease),color .2s}
.tsn-cur.is-center .tsn-cur-in{margin:calc(var(--cur-s,34px) / -2) 0 0 calc(var(--cur-s,34px) / -2);transform-origin:50% 50%}
.tsn-cur svg{display:block;width:100%;height:100%;filter:drop-shadow(0 2px 5px rgba(0,0,0,.6))}
body.is-hot .tsn-cur{color:var(--cur-hot,#b3121b)}
body.is-hot .tsn-cur .tsn-cur-in{transform:scale(1.25) rotate(-6deg)}
body.is-hot .tsn-cur.is-center .tsn-cur-in{transform:scale(1.5)}
body.is-down .tsn-cur .tsn-cur-in{transform:scale(.88)}
.tsn-cur-glowdot{position:fixed;left:0;top:0;width:220px;height:220px;margin:-110px 0 0 -110px;border-radius:50%;pointer-events:none;z-index:2;background:radial-gradient(circle,rgba(var(--acc-rgb),.18),transparent 65%);opacity:0;transition:opacity .3s;will-change:transform}
body.tsn-cur-live .tsn-cur-glowdot{opacity:1}
.tsn-spark{position:fixed;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;pointer-events:none;z-index:99997;background:var(--cur-c,#d4a537);box-shadow:0 0 8px var(--cur-c,#d4a537);animation:tsn-spark .7s ease-out forwards}
@keyframes tsn-spark{to{opacity:0;transform:translate(var(--sx,0),var(--sy,18px)) scale(.2)}}
.tsn-ripple{position:fixed;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;border:2px solid var(--cur-c,#d4a537);pointer-events:none;z-index:99998;animation:tsn-ripple .6s ease-out forwards}
@keyframes tsn-ripple{to{transform:scale(7);opacity:0}}
.tsn-slash{position:fixed;width:110px;height:3px;margin:-1.5px 0 0 -55px;pointer-events:none;z-index:99998;background:linear-gradient(90deg,transparent,#fff,rgb(var(--tsn-red-rgb)),transparent);box-shadow:0 0 14px rgba(var(--tsn-red-rgb),.95);transform:rotate(var(--a)) scaleX(0);animation:tsn-slash .5s ease-out forwards}
@keyframes tsn-slash{0%{transform:rotate(var(--a)) scaleX(0);opacity:1}40%{transform:rotate(var(--a)) scaleX(1);opacity:1}100%{transform:rotate(var(--a)) scaleX(1.12);opacity:0}}

/* ---------- Responsive ---------- */
@media(max-width:1000px){
	.tsn-grid,.tsn-badges-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.tsn-hero-grid,.tsn-hero-left{grid-template-columns:1fr}
	.tsn-hero-art{order:-1}
	.tsn-hero-behind .tsn-hero-art{order:0}
	.tsn-emblem-svg,.tsn-emblem-img{width:min(min(var(--img-w,380px),260px),70%)}
	.tsn-contact-grid.has-info{grid-template-columns:1fr}
}
@media(max-width:700px){
	body{font-size:var(--tsn-base-m)}
	h1{font-size:var(--h1-fsm)}
	h2{font-size:var(--h2-fsm)}
	h3{font-size:var(--h3-fsm)}
	h4,h5,h6{font-size:var(--h4-fsm)}
	.tsn-section h2.tsn-sec-title{font-size:var(--hsm,var(--h2-fsm))}
	.tsn-section h1.tsn-h1{font-size:var(--hero-h1m,var(--h1-fsm))}
	.tsn-section h2.tsn-h2{font-size:calc(var(--h2-fsm) * .75)}
	.tsn-section h3.tsn-h3{font-size:var(--h3-fsm)}
	.tsn-grid,.tsn-badges-grid{grid-template-columns:minmax(0,1fr)}
	.tsn-badges-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.tsn-row{grid-template-columns:1fr}
	.tsn-footer-grid{grid-template-columns:1fr}
	.tsn-util-in{justify-content:center;text-align:center}
	.tsn-section{padding-block:calc(var(--pt,90px) * .7) calc(var(--pb,90px) * .7)}
	.tsn-btns .tsn-btn{width:100%}
	.tsn-logo img{height:var(--tsn-logo-hm)}
	.tsn-header.is-scrolled .tsn-logo img{height:calc(var(--tsn-logo-hm) * .85)}
	.tsn-tag-nom{display:none}
	.tsn-scene-still-m .tsn-scene-in{animation:none!important}
	.tsn-float{width:46px;height:46px}
}
@media(prefers-reduced-motion:reduce){
	html{scroll-behavior:auto}
	*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
	.js .tsn-reveal:not(.is-in){opacity:1}
}

/* ---------- Gradient headings, placement ---------- */
.tsn-g-h1 h1,.tsn-g-h2 h2,.tsn-g-h3 h3,.tsn-g-h4 h4,.tsn-g-h4 h5{color:transparent!important;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}
.tsn-g-h1 h1{background-image:var(--h1-grad)}
.tsn-g-h2 h2{background-image:var(--h2-grad)}
.tsn-g-h3 h3{background-image:var(--h3-grad)}
.tsn-g-h4 h4,.tsn-g-h4 h5{background-image:var(--h4-grad)}
.tsn-g-h1 h1 em,.tsn-g-h2 h2 em{background:var(--em-grad);-webkit-background-clip:text;background-clip:text}
.tsn-sec-head{text-align:var(--ha,var(--ta,center));margin-bottom:var(--sg,3rem)}
.tsn-sec-head .tsn-sub{max-width:var(--tw,62ch)}
.tsn-hero-grid{align-items:var(--hva,center)}
.tsn-hero-copy{max-width:var(--copy-w,none);translate:var(--cx,0) var(--cy,0)}
.tsn-hero-art{translate:var(--ax,0) var(--ay,0)}
.tsn-footer-col li a[href*="#svc-"]{display:inline-block}
html{scroll-padding-top:120px}
.tsn-service{scroll-margin-top:120px}
