/*! TripEEE theme — (c) SBA, https://sba.nl/. Proprietary. */

/* Tokens — measured on the old tripeee.nl: teal #00B4B2, navy #003B5C, Catamaran. */
:root{
	--tp-teal:#00b4b2;
	--tp-teal-ink:#00706e;
	--tp-navy:#003b5c;
	--tp-ink:#00243a;
	--tp-deep:#001a2b;
	--tp-text:#1d3445;
	--tp-muted:#a9c4d1;
	--tp-soft:#d5e6ee;
	--tp-mist:#eef7f7;
	--tp-line:#d5e6e8;
	--tp-radius:24px;
	--tp-font:Catamaran,system-ui,-apple-system,"Segoe UI",sans-serif;
	--tp-nav-h:88px;
}

/* Base */
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--tp-nav-h) + 16px)}
body.tp{margin:0;font-family:var(--tp-font);font-size:18px;line-height:1.6;color:var(--tp-text);background:#fff;overflow-x:hidden}
.tp img{max-width:100%;height:auto}
.tp a{color:var(--tp-teal-ink)}
.tp a:hover{color:var(--tp-navy)}
.tp h1,.tp h2,.tp h3,.tp h4{font-family:var(--tp-font);color:var(--tp-navy)}
.tp-wrap{width:100%;max-width:1240px;margin:0 auto;padding-left:32px;padding-right:32px}
.tp-narrow{max-width:860px}
.tp-skip{position:absolute;left:-9999px;top:8px;z-index:100;background:#fff;color:var(--tp-ink);padding:10px 16px;border-radius:8px;font-weight:700}
.tp-skip:focus{left:16px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.tp :focus-visible{outline:3px solid var(--tp-teal);outline-offset:3px}
.tp-center{text-align:center}

/* Type helpers */
.tp-kicker{margin:0;font-size:14px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--tp-teal-ink)}
.tp-kicker.tp-on-dark{color:var(--tp-teal)}
.tp-h2{margin:0;font-size:clamp(34px,4.2vw,54px);line-height:1.04;font-weight:900;letter-spacing:-.02em;color:var(--tp-navy)}
.tp-h2-sm{font-size:clamp(28px,3.2vw,40px)}
.tp-lead{font-size:19px;line-height:1.65}
.tp-prose>*:first-child{margin-top:0}
.tp-prose>*:last-child{margin-bottom:0}
.tp-prose p{margin:0 0 1em}
.tp-prose h2,.tp-prose h3,.tp-prose h4{margin:1.4em 0 .5em;font-weight:800;line-height:1.2}
.tp-prose h2{font-size:30px}.tp-prose h3{font-size:24px}.tp-prose h4{font-size:20px}
.tp-prose ul,.tp-prose ol{padding-left:1.2em;margin:0 0 1em}
.tp-prose li{margin:.25em 0}
.tp-prose blockquote{margin:1.4em 0;padding:18px 24px;border-radius:18px;background:var(--tp-mist);color:var(--tp-navy);font-weight:600}
.tp-prose blockquote p:last-child{margin:0}
.tp-prose img{border-radius:18px}
.tp-prose .tp-figure{margin:1.6em 0}
.tp-prose iframe{max-width:100%}
.tp-logos{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin:8px 0 1em}
.tp-prose .tp-logos img,.tp-logo-item{width:auto;height:88px;max-width:160px;object-fit:contain;border-radius:12px;background:#fff;padding:8px;box-shadow:0 10px 24px -16px rgba(0,36,58,.45)}
.tp-prose table{width:100%;border-collapse:collapse;margin:0 0 1em}
.tp-prose td,.tp-prose th{border:1px solid var(--tp-line);padding:8px 10px}

/* Buttons */
.tp-btn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;border:0;font-family:var(--tp-font);font-weight:800;font-size:16px;line-height:1;text-decoration:none;cursor:pointer;transition:transform .25s ease,background .25s ease,color .25s ease,box-shadow .25s ease,border-color .25s ease}
.tp .tp-btn-teal{background:var(--tp-teal);color:var(--tp-ink)}
.tp .tp-btn-teal:hover{color:var(--tp-ink);transform:translateY(-2px);box-shadow:0 12px 30px -10px var(--tp-teal)}
.tp .tp-btn-ghost{color:#fff;border:2px solid rgba(255,255,255,.55);background:transparent}
.tp .tp-btn-ghost:hover{color:var(--tp-ink);background:#fff;border-color:#fff}
.tp .tp-btn-outline{color:var(--tp-navy);border:2px solid var(--tp-navy);background:transparent}
.tp .tp-btn-outline:hover{color:#fff;background:var(--tp-navy)}
.tp-arr{display:inline-block;transition:transform .25s ease}
.tp-btn:hover .tp-arr,.tp-more:hover .tp-arr,.tp-card:hover .tp-arr{transform:translateX(4px)}
.tp-actions{display:flex;flex-wrap:wrap;gap:14px}
.tp .tp-more{display:inline-flex;align-items:center;gap:8px;font-weight:800;text-decoration:none;color:var(--tp-teal-ink)}

/* Top bar */
.tp-topbar{position:relative;z-index:29;background:var(--tp-ink);color:#cfe3ea;font-size:14px;font-weight:600}
.tp-topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px}
.tp-topbar-group{display:flex;align-items:center;gap:22px}
.tp .tp-topbar a{color:#cfe3ea;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.tp .tp-topbar a:hover,.tp .tp-topbar a[aria-current]{color:#fff}
.tp-lang a[aria-current]{font-weight:800}

/* Navigation */
.tp-nav{position:sticky;top:0;z-index:30;height:var(--tp-nav-h);margin-bottom:calc(var(--tp-nav-h) * -1);transition:background .35s ease,box-shadow .35s ease}
.tp-nav.tp-scrolled{background:rgba(0,36,58,.94);backdrop-filter:blur(10px);box-shadow:0 10px 30px -15px rgba(0,0,0,.5)}
.tp-nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:100%}
.tp-logo img{display:block;height:46px;width:auto}
.tp-menu{display:flex;align-items:center;gap:30px}
.tp-menu-list{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0}
.tp-menu-item{position:relative;display:flex;align-items:center}
.tp .tp-navlink{position:relative;color:#fff;text-decoration:none;font-weight:700;font-size:16px;padding:10px 2px}
.tp .tp-navlink::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:2px;background:var(--tp-teal);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.tp .tp-navlink:hover{color:#fff}
.tp-navlink:hover::after,.tp-active>.tp-navlink::after{transform:scaleX(1)}
.tp-sub-toggle{display:grid;place-items:center;width:28px;height:44px;margin-left:2px;border:0;background:transparent;color:#fff;cursor:pointer}
.tp-sub-toggle svg{transition:transform .25s ease}
.tp-submenu{position:absolute;top:100%;left:-18px;min-width:280px;list-style:none;margin:0;padding:10px;border-radius:18px;background:#fff;box-shadow:0 30px 60px -20px rgba(0,36,58,.45);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease,visibility .25s}
.tp-has-sub:hover .tp-submenu,.tp-has-sub:focus-within .tp-submenu,.tp-has-sub.tp-open .tp-submenu{opacity:1;visibility:visible;transform:none}
.tp-has-sub.tp-open .tp-sub-toggle svg{transform:rotate(180deg)}
.tp .tp-submenu a{display:block;padding:10px 14px;border-radius:12px;color:var(--tp-navy);font-weight:700;text-decoration:none;font-size:16px}
.tp .tp-submenu a:hover,.tp .tp-submenu a[aria-current]{background:var(--tp-mist);color:var(--tp-navy)}
.tp-menu-btn,.tp-menu-close{display:none;place-items:center;width:48px;height:48px;border-radius:14px;border:2px solid rgba(255,255,255,.5);background:transparent;color:#fff;cursor:pointer}

/* Hero */
.tp-hero{position:relative;overflow:hidden;background:var(--tp-ink);color:#fff}
.tp-hero-front{height:min(860px,100svh);min-height:640px}
.tp-hero-page{min-height:520px;display:flex}
.tp-hero-img,.tp-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tp-slide{position:absolute;inset:0;opacity:0;animation:tp-fade calc(var(--tp-slides) * 7s) infinite;animation-delay:calc(var(--tp-i) * 7s)}
.tp-slide img{animation:tp-kb calc(var(--tp-slides) * 7s) infinite;animation-delay:calc(var(--tp-i) * 7s)}
.tp-slide:first-child{opacity:1}
@keyframes tp-fade{0%{opacity:0}4%{opacity:1}25%{opacity:1}30%{opacity:0}100%{opacity:0}}
@keyframes tp-kb{0%{transform:scale(1.18) translate(2%,1%)}30%{transform:scale(1.02) translate(-1%,-1%)}100%{transform:scale(1.02) translate(-1%,-1%)}}
.tp-hero-page .tp-hero-img{animation:tp-kbpage 18s ease-out forwards}
@keyframes tp-kbpage{from{transform:scale(1.12)}to{transform:scale(1)}}
.tp-hero-shade{position:absolute;inset:0;background:linear-gradient(100deg,rgba(0,36,58,.92) 0%,rgba(0,36,58,.62) 46%,rgba(0,36,58,.18) 100%),linear-gradient(0deg,rgba(0,36,58,.8) 0%,rgba(0,36,58,0) 34%)}
.tp-flight{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;color:var(--tp-teal)}
.tp-trail{animation:tp-draw 14s linear infinite}
@keyframes tp-draw{0%{stroke-dashoffset:1}100%{stroke-dashoffset:0}}
.tp-hero-content{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding-top:calc(var(--tp-nav-h) + 40px);padding-bottom:110px}
.tp-hero-front .tp-hero-content{height:100%}
.tp-hero-page .tp-hero-content{justify-content:flex-end;padding-bottom:72px}
.tp-hero-text{max-width:820px;display:flex;flex-direction:column;gap:26px}
.tp-hero h1{margin:0;color:#fff;font-weight:900;font-size:clamp(40px,6vw,76px);line-height:.98;letter-spacing:-.025em}
.tp-hero-page h1{font-size:clamp(36px,5vw,64px)}
.tp-hero h1 span{display:block}
.tp-hero-meta{margin:0;color:#cfe3ea;font-weight:700}
.tp-hero-sub{margin:0;font-size:clamp(20px,2vw,26px);line-height:1.35;font-weight:600;color:#fff}
.tp-hero-subline{display:block;color:#cfe3ea;font-weight:500}
.tp-rise{opacity:0;transform:translateY(40px);animation:tp-rise 1s cubic-bezier(.2,.8,.2,1) forwards}
.tp-d1{animation-delay:.15s}.tp-d2{animation-delay:.3s}.tp-d3{animation-delay:.45s}.tp-d4{animation-delay:.7s}.tp-d5{animation-delay:.9s}
@keyframes tp-rise{to{opacity:1;transform:none}}
.tp-ticker{display:block;height:1.25em;overflow:hidden}
.tp-ticker-in{display:block;animation:tp-tick calc(var(--tp-lines) * 3s) cubic-bezier(.7,0,.3,1) infinite}
.tp-ticker-in span{display:block;height:1.25em;line-height:1.25em;color:var(--tp-teal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@keyframes tp-tick{0%,16%{transform:translateY(0)}20%,36%{transform:translateY(-1.25em)}40%,56%{transform:translateY(-2.5em)}60%,76%{transform:translateY(-3.75em)}80%,96%{transform:translateY(-5em)}100%{transform:translateY(-6.25em)}}
.tp-hero-foot{position:absolute;left:32px;right:32px;bottom:40px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#cfe3ea;font-size:14px;font-weight:700}
.tp-progress{display:flex;gap:8px}
.tp-progress i{display:block;position:relative;width:44px;height:3px;background:rgba(255,255,255,.25);overflow:hidden}
.tp-progress i::after{content:"";position:absolute;inset:0;background:var(--tp-teal);transform:scaleX(0);transform-origin:left;animation:tp-bar calc(var(--tp-slides) * 7s) linear infinite;animation-delay:calc(var(--tp-i) * 7s)}
@keyframes tp-bar{0%{transform:scaleX(0)}25%{transform:scaleX(1)}25.01%,100%{transform:scaleX(0)}}
.tp-scroll-cue{position:absolute;left:50%;bottom:26px;z-index:2;width:28px;height:46px;margin-left:-14px;border:2px solid rgba(255,255,255,.6);border-radius:16px}
.tp-scroll-cue::after{content:"";position:absolute;left:50%;top:9px;width:4px;height:9px;margin-left:-2px;border-radius:2px;background:#fff;animation:tp-cue 1.8s ease-in-out infinite}
@keyframes tp-cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(16px)}}

/* Scroll reveals (progressive: browsers without view timelines show everything) */
@supports (animation-timeline: view()){
	.tp-rv{animation:tp-reveal linear both;animation-timeline:view();animation-range:entry 0% cover 26%}
	.tp-rv-l{animation:tp-revealL linear both;animation-timeline:view();animation-range:entry 0% cover 28%}
	.tp-rv-r{animation:tp-revealR linear both;animation-timeline:view();animation-range:entry 0% cover 28%}
	.tp-par{animation:tp-par linear both;animation-timeline:view()}
}
@keyframes tp-reveal{from{opacity:0;transform:translateY(60px)}to{opacity:1;transform:none}}
@keyframes tp-revealL{from{opacity:0;transform:translateX(-70px)}to{opacity:1;transform:none}}
@keyframes tp-revealR{from{opacity:0;transform:translateX(70px)}to{opacity:1;transform:none}}
@keyframes tp-par{from{transform:translateY(50px)}to{transform:translateY(-50px)}}

/* Sections */
.tp-section{position:relative;padding:110px 0;overflow:hidden}
.tp-mist{background:var(--tp-mist)}
.tp-navy{background:var(--tp-navy);color:#fff}
.tp-navy .tp-h2{color:#fff}
.tp-section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 40px;margin-bottom:48px}
.tp-section-head-top{align-items:flex-start}
.tp-section-head>div:first-child{display:flex;flex-direction:column;gap:14px;max-width:680px}
.tp-section-intro{margin:0;max-width:460px;font-size:18px;line-height:1.6}
.tp-page-intro{padding-bottom:40px}
.tp-page-intro+.tp-text-section{padding-top:40px}

/* Split text/media */
.tp-split{display:flex;flex-wrap:wrap;gap:56px 72px;align-items:center}
.tp-split-flip{flex-direction:row-reverse}
.tp-split-text{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:22px}
.tp-split-media{flex:1 1 420px;min-width:0}
.tp-narrow.tp-wrap .tp-split-text{max-width:860px}
.tp-photo{border-radius:28px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,36,58,.45)}
.tp-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}

/* Intro collage */
.tp-collage{position:relative;flex:1 1 460px;min-width:0;height:560px}
.tp-ph{position:absolute;border-radius:28px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,36,58,.45)}
.tp-ph img{width:100%;height:100%;object-fit:cover}
.tp-ph-1{left:0;top:30px;width:62%;height:380px;animation:tp-float 7s ease-in-out infinite}
.tp-ph-2{right:0;top:0;width:44%;height:250px;animation:tp-float 9s ease-in-out infinite reverse}
.tp-ph-3{right:6%;bottom:0;width:50%;height:260px;animation:tp-float 9s ease-in-out infinite reverse}
.tp-float{animation:tp-float 7s ease-in-out infinite}
.tp-float2{animation:tp-float 9s ease-in-out infinite reverse}
@keyframes tp-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.tp-badge{position:absolute;left:6%;bottom:40px;display:flex;align-items:center;gap:12px;padding:14px 20px;border-radius:18px;background:#fff;box-shadow:0 20px 40px -20px rgba(0,36,58,.4);font-weight:800;color:var(--tp-navy);animation:tp-float 7s ease-in-out infinite}
.tp-dot{width:12px;height:12px;border-radius:50%;background:var(--tp-teal);animation:tp-ping 2s infinite}
@keyframes tp-ping{0%{box-shadow:0 0 0 0 rgba(0,180,178,.6)}100%{box-shadow:0 0 0 16px rgba(0,180,178,0)}}
.tp-chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.tp-chips li{padding:8px 16px;border-radius:12px;background:var(--tp-mist);font-weight:700;color:var(--tp-navy);font-size:16px}

/* Trips bento */
.tp-bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:270px;gap:18px}
.tp .tp-trip{position:relative;display:block;min-width:0;border-radius:var(--tp-radius);overflow:hidden;text-decoration:none;color:#fff;background:var(--tp-ink);isolation:isolate}
.tp-trip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.tp-trip::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(0,36,58,.9) 0%,rgba(0,36,58,.25) 55%,rgba(0,36,58,0) 100%)}
.tp-trip::after{content:"";position:absolute;inset:0;z-index:1;background:var(--tp-teal);mix-blend-mode:multiply;opacity:0;transition:opacity .5s ease}
.tp .tp-trip:hover{color:#fff}
.tp-trip:hover img{transform:scale(1.09)}
.tp-trip:hover::after{opacity:.35}
.tp-trip-body{position:absolute;z-index:2;left:24px;right:24px;bottom:22px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.tp-trip-body>span:first-child{min-width:0}
.tp-trip-title{display:block;font-size:23px;line-height:1.12;font-weight:800}
.tp-big .tp-trip-title{font-size:40px}
.tp-trip-text{display:block;margin-top:8px;max-width:420px;font-size:16px;line-height:1.45;color:#dbeaf0;max-height:0;opacity:0;overflow:hidden;transition:max-height .5s ease,opacity .5s ease}
.tp-trip:hover .tp-trip-text,.tp-trip:focus-visible .tp-trip-text{max-height:120px;opacity:1}
.tp-circle{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.16);backdrop-filter:blur(6px);transition:background .3s ease,transform .3s ease}
.tp-trip:hover .tp-circle{background:var(--tp-teal);color:var(--tp-ink);transform:rotate(-45deg)}
.tp-big{grid-column:span 2;grid-row:span 2}
.tp-wide{grid-column:span 2}

/* Route stepper */
.tp-route{position:relative;--tp-stops:7}
.tp-route-stops{position:relative;display:grid;grid-template-columns:repeat(var(--tp-stops),minmax(0,1fr));gap:8px;padding-top:24px}
.tp-route-line{position:absolute;left:calc(50% / var(--tp-stops));right:calc(50% / var(--tp-stops));top:51px;height:2px;background-image:linear-gradient(90deg,rgba(255,255,255,.35) 50%,rgba(255,255,255,0) 50%);background-size:14px 2px}
.tp-route-plane{position:absolute;top:22px;left:0;width:calc(100% / var(--tp-stops));display:flex;justify-content:center;color:var(--tp-teal);transition:transform .9s cubic-bezier(.6,0,.2,1);pointer-events:none;z-index:2}
.tp-stop{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;min-height:44px;padding:46px 6px 10px;border:0;background:transparent;color:var(--tp-muted);font-family:var(--tp-font);font-weight:800;font-size:16px;cursor:pointer}
.tp-pin{position:absolute;top:18px;width:16px;height:16px;border-radius:50%;background:var(--tp-navy);border:3px solid rgba(255,255,255,.45);transition:all .3s ease}
.tp-stop:hover,.tp-stop.tp-on{color:#fff}
.tp-stop.tp-on .tp-pin{background:var(--tp-teal);border-color:var(--tp-teal);transform:scale(1.35);box-shadow:0 0 0 8px rgba(0,180,178,.18)}
.tp-step{display:flex;flex-wrap:wrap;gap:40px;align-items:center;margin-top:36px;padding:44px;border-radius:28px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);animation:tp-swap .6s cubic-bezier(.2,.8,.2,1)}
.tp-step[hidden]{display:none}
@keyframes tp-swap{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.tp-step-num{flex:0 0 auto;font-size:120px;line-height:.8;font-weight:900;color:var(--tp-teal);letter-spacing:-.04em}
.tp-step-text{flex:1 1 420px;min-width:0}
.tp-step-text h3{margin:0 0 12px;font-size:34px;font-weight:800;color:#fff}
.tp-step-text p{margin:0;font-size:19px;line-height:1.6;color:var(--tp-soft)}

/* Service cards */
.tp-svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.tp-svc{position:relative;display:flex;flex-direction:column;gap:16px;margin:0;padding:36px 32px 32px;border-radius:var(--tp-radius);background:#fff;border:1px solid var(--tp-line);transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.tp-svc:hover{transform:translateY(-8px);box-shadow:0 30px 60px -30px rgba(0,59,92,.35);border-color:var(--tp-teal)}
.tp-svc h3{margin:0;font-size:26px;font-weight:800}
.tp-svc p{margin:0;font-size:17px;line-height:1.6}
.tp-svc .tp-more{margin-top:auto}
.tp-svc blockquote{margin:0;font-size:17px;line-height:1.6}
.tp-svc figcaption{margin-top:auto;color:var(--tp-navy)}
.tp-ico{display:grid;place-items:center;width:62px;height:62px;border-radius:18px;background:var(--tp-mist);color:var(--tp-navy);transition:background .35s ease,transform .35s ease}
.tp-svc:hover .tp-ico{background:var(--tp-teal);transform:rotate(-8deg)}

/* Generic cards (pages, blog) */
.tp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
.tp .tp-card{display:flex;flex-direction:column;min-width:0;border-radius:var(--tp-radius);overflow:hidden;background:#fff;text-decoration:none;color:var(--tp-text);border:1px solid var(--tp-line);transition:transform .35s ease,box-shadow .35s ease}
.tp .tp-card:hover{color:var(--tp-text);transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(0,59,92,.35)}
.tp-card-media{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--tp-navy)}
.tp-card-media img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.tp-card:hover .tp-card-media img{transform:scale(1.07)}
.tp-card-fallback{display:block;width:100%;height:100%;background:linear-gradient(135deg,var(--tp-navy),var(--tp-teal-ink))}
.tp-card-body{display:flex;flex-direction:column;gap:10px;padding:24px 26px 26px;flex:1}
.tp-card-meta{font-size:14px;font-weight:700;color:var(--tp-teal-ink);text-transform:uppercase;letter-spacing:.08em}
.tp-card-title{font-size:22px;line-height:1.2;font-weight:800;color:var(--tp-navy)}
.tp-card-text{font-size:16px;line-height:1.55;color:#3e5566}
.tp-card .tp-more{margin-top:auto;padding-top:6px}

/* People */
.tp-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:24px}
.tp-person{padding:32px;border-radius:var(--tp-radius);background:var(--tp-mist);text-align:center}
.tp-person-photo{width:132px;height:132px;margin:0 auto 18px;border-radius:50%;overflow:hidden;background:#fff;box-shadow:0 0 0 6px #fff}
.tp-person-photo img{width:100%;height:100%;object-fit:cover}
.tp-person h3{margin:0;font-size:22px;font-weight:800}
.tp-person-role{margin:4px 0 14px;color:#3e5566}
.tp-person-links{display:flex;justify-content:center;gap:10px;list-style:none;margin:0;padding:0}
.tp .tp-person-links a{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#fff;color:var(--tp-navy)}
.tp .tp-person-links a:hover{background:var(--tp-teal);color:var(--tp-ink)}

/* Testimonials */
.tp-quotes{background:var(--tp-ink);color:#fff;padding:130px 0}
.tp-quotes-bg{position:absolute;inset:-60px 0;width:100%;height:calc(100% + 120px);object-fit:cover;opacity:.16}
.tp-quotes-inner{position:relative;display:flex;flex-direction:column;gap:28px;max-width:1040px}
.tp-quote-mark{color:var(--tp-teal)}
.tp-quote{margin:0}
.tp-quote.tp-on{animation:tp-swap .7s cubic-bezier(.2,.8,.2,1)}
.tp-quote blockquote{margin:0;font-size:clamp(22px,2.6vw,32px);line-height:1.35;font-weight:700;letter-spacing:-.01em}
.tp-quote figcaption{display:flex;align-items:center;gap:16px;margin-top:28px;color:var(--tp-muted)}
.tp-quote figcaption strong{color:#fff;font-size:18px}
.tp-quote-line{display:block;width:48px;height:3px;background:var(--tp-teal)}
.tp-quote-nav{display:flex;gap:6px}
.tp-quote-nav button{width:44px;height:44px;border:0;background:transparent;cursor:pointer;position:relative}
.tp-quote-nav button::after{content:"";position:absolute;left:8px;right:8px;top:21px;height:3px;background:rgba(255,255,255,.3);transition:background .3s ease}
.tp-quote-nav button.tp-on::after,.tp-quote-nav button:hover::after{background:var(--tp-teal)}

/* Clients marquee */
.tp-clients{padding:70px 0;background:var(--tp-navy)}
.tp-clients .tp-kicker{margin-bottom:34px}
.tp-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.tp-track{display:flex;align-items:center;gap:80px;width:max-content;animation:tp-marq 40s linear infinite}
.tp-marquee:hover .tp-track{animation-play-state:paused}
.tp-client img{display:block;height:64px;width:auto;max-width:200px;object-fit:contain;opacity:.75;transition:opacity .3s ease,transform .3s ease}
.tp-client img:hover{opacity:1;transform:scale(1.08)}
.tp-client-name{color:#fff;font-weight:800;font-size:20px;white-space:nowrap}
@keyframes tp-marq{to{transform:translateX(-50%)}}

/* Contact band + forms */
.tp-contact{background:var(--tp-ink);color:#fff;padding:130px 0}
.tp-contact .tp-h2{color:#fff}
.tp-contact .tp-lead{color:var(--tp-soft);margin:0}
.tp-ring{position:absolute;right:-180px;top:-180px;width:560px;height:560px;border-radius:50%;border:2px dashed rgba(0,180,178,.35)}
.tp-blob{position:absolute;right:-60px;top:-60px;width:320px;height:320px;border-radius:50%;background:rgba(0,180,178,.12)}
.tp-contact-inner{position:relative;display:flex;flex-wrap:wrap;gap:64px;align-items:flex-start}
.tp-contact-text{flex:1 1 360px;min-width:0;display:flex;flex-direction:column;gap:22px}
.tp-contact-form{flex:1 1 520px;min-width:0;padding:40px;border-radius:28px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12)}
.tp-contact-lines{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:14px;font-size:18px;font-weight:700}
.tp .tp-contact-lines a{color:#fff;text-decoration:none;display:flex;align-items:center;gap:14px}
.tp-ico-box{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,.08);color:var(--tp-teal)}
.tp-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px}
.tp-field{margin:0 0 14px;min-width:0}
.tp-field-wide{grid-column:1 / -1}
.tp-field label{display:block;font-size:14px;font-weight:700;color:#cfe3ea}
.tp-field br{display:none}
.tp-field .wpcf7-form-control-wrap{display:block;margin-top:6px}
.tp-field input,.tp-field select,.tp-field textarea{width:100%;min-width:0;min-height:50px;padding:12px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.07);color:#fff;font-family:var(--tp-font);font-size:16px}
.tp-field select{text-overflow:ellipsis}
.tp-field select option{color:var(--tp-ink)}
.tp-field input:focus,.tp-field select:focus,.tp-field textarea:focus{outline:none;border-color:var(--tp-teal);background:rgba(255,255,255,.12)}
.tp-field ::placeholder{color:#93b2c1}
.tp-submit{display:inline-flex;align-items:center;min-height:52px;padding:0 30px;border-radius:999px;border:0;background:var(--tp-teal);color:var(--tp-ink);font-family:var(--tp-font);font-weight:800;font-size:16px;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease}
.tp-submit:hover{transform:translateY(-2px);box-shadow:0 12px 30px -10px var(--tp-teal)}
.tp-form-note{margin:12px 0 0;font-size:14px;color:var(--tp-muted)}
.tp-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.wpcf7-not-valid-tip{display:block;margin-top:6px;color:#ffb4a9;font-size:14px}
.wpcf7 form .wpcf7-response-output{margin:18px 0 0;padding:12px 16px;border-radius:14px;border:1px solid var(--tp-teal);color:#fff}
.wpcf7-spinner{visibility:hidden;display:inline-block;width:20px;height:20px;margin-left:12px;border-radius:50%;border:3px solid rgba(255,255,255,.3);border-top-color:var(--tp-teal);vertical-align:middle}
.wpcf7 form.submitting .wpcf7-spinner{visibility:visible;animation:tp-spin 1s linear infinite}
@keyframes tp-spin{to{transform:rotate(360deg)}}
.wpcf7 .screen-reader-response{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
.wpcf7 form.init .wpcf7-response-output,.wpcf7 form.resetting .wpcf7-response-output,.wpcf7 form.submitting .wpcf7-response-output{display:none}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output,.wpcf7 form.spam .wpcf7-response-output{border-color:#ffb4a9}
.tp-inline-form{padding:32px;border-radius:24px;background:var(--tp-ink)}

/* CTA band */
.tp-cta{padding:80px 0;background:linear-gradient(120deg,var(--tp-navy),var(--tp-ink));color:#fff}
.tp-cta .tp-h2{color:#fff;margin-top:10px}
.tp-cta-inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px}

/* Article */
.tp-article{padding-top:80px}
.tp-article .tp-prose{font-size:19px}
.tp-back{margin-top:48px}
.tp-pagination{margin-top:48px;display:flex;justify-content:center}
.tp-pagination .page-numbers{display:inline-grid;place-items:center;min-width:44px;height:44px;margin:0 4px;padding:0 12px;border-radius:12px;background:#fff;color:var(--tp-navy);font-weight:800;text-decoration:none}
.tp-pagination .page-numbers.current{background:var(--tp-navy);color:#fff}

/* Footer */
.tp-footer{background:var(--tp-deep);color:#cfe3ea;padding:72px 0 36px;font-size:16px}
.tp-footer-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px}
.tp-footer-brand{display:flex;flex-direction:column;gap:18px;max-width:360px}
.tp-footer-brand p{margin:0;line-height:1.6}
.tp-footer-brand img{width:220px;height:auto}
.tp-footer-badge{width:300px!important;background:#fff;border-radius:10px;padding:8px 12px}
.tp-footer-col{display:flex;flex-direction:column;gap:10px;font-style:normal}
.tp-footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.tp-footer-title{margin:0 0 4px;color:#fff;font-weight:800}
.tp .tp-footer a{color:#cfe3ea;text-decoration:none}
.tp .tp-footer a:hover{color:#fff}
.tp-footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:48px;padding-top:28px;border-top:1px solid rgba(255,255,255,.12);font-size:14px}
.tp-footer-links{display:flex;gap:22px}

/* Tablet */
@media (max-width:1100px){
	.tp-menu-list{gap:20px}
	.tp-menu-cta{display:none}
}
@media (max-width:1000px){
	.tp-menu-btn,.tp-menu-close{display:grid}
	.tp-menu{position:fixed;inset:0;z-index:50;flex-direction:column;align-items:stretch;gap:24px;padding:24px 24px 40px;background:var(--tp-ink);overflow-y:auto;transform:translateX(100%);visibility:hidden;transition:transform .45s cubic-bezier(.7,0,.2,1),visibility .45s}
	.tp-menu.tp-open{transform:none;visibility:visible}
	.tp-menu-close{align-self:flex-end}
	.tp-menu-list{flex-direction:column;align-items:stretch;gap:0}
	.tp-menu-item{flex-wrap:wrap;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.1)}
	.tp .tp-navlink{font-size:24px;padding:14px 0}
	.tp-sub-toggle{width:48px;height:48px}
	.tp-submenu{position:static;width:100%;min-width:0;padding:0 0 12px;border-radius:0;background:transparent;box-shadow:none;opacity:1;visibility:visible;transform:none;display:none}
	.tp-has-sub:hover .tp-submenu{display:none}
	.tp-has-sub.tp-open .tp-submenu{display:block}
	.tp .tp-submenu a{color:#cfe3ea;padding:10px 0 10px 14px}
	.tp .tp-submenu a:hover{background:transparent;color:#fff}
	.tp-menu-cta{display:inline-flex;align-self:flex-start}
	.tp-bento{grid-template-columns:repeat(2,minmax(0,1fr))}
	.tp-route-stops{grid-template-columns:repeat(4,minmax(0,1fr))}
	.tp-route-line,.tp-route-plane{display:none}
	.tp-collage{height:460px}
	body.tp-menu-open{overflow:hidden}
}

/* Phone: wider gutter so cards do not stick to the screen edge */
@media (max-width:640px){
	body.tp{font-size:17px}
	.tp-wrap{padding-left:20px;padding-right:20px}
	.tp-section{padding:76px 0}
	.tp-hero-front{height:auto;min-height:760px}
	.tp-hero-page{min-height:440px}
	.tp-hide-sm{display:none!important}
	.tp-bento{grid-template-columns:minmax(0,1fr);grid-auto-rows:240px}
	.tp-big,.tp-wide{grid-column:span 1;grid-row:span 1}
	.tp-big .tp-trip-title{font-size:28px}
	.tp-route-stops{grid-template-columns:repeat(2,minmax(0,1fr))}
	.tp-step{padding:28px;gap:20px}
	.tp-step-num{font-size:72px}
	.tp-step-text h3{font-size:26px}
	.tp-collage{height:380px}
	.tp-ph-1{height:280px}.tp-ph-2{height:180px}.tp-ph-3{height:190px}
	.tp-form-grid{grid-template-columns:minmax(0,1fr)}
	.tp-contact-form{padding:24px}
	.tp-hero-foot{left:20px;right:20px}
	.tp-logo img{height:40px}
}

/* Reduced motion: no animation, every element in its final state */
@media (prefers-reduced-motion:reduce){
	html{scroll-behavior:auto}
	.tp *,.tp *::before,.tp *::after{animation:none!important;transition:none!important}
	.tp-rise{opacity:1;transform:none}
	.tp-slide:first-child{opacity:1}
	.tp-flight{display:none}
}
