/* Tropical Silk Limited - plain CSS (no framework) */
:root{
  --navy:#0B1F3A;--navy-dark:#071629;--navy-700:#12294a;--navy-600:#1b3860;
  --gold:#C9A227;--gold-light:#E6C766;--gold-dark:#a7861c;--mist:#F5F7FA;--body:#334155;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --serif:'Playfair Display',Georgia,'Times New Roman',serif;
  --shadow-card:0 10px 30px -12px rgba(7,22,41,.25);
  --shadow-lift:0 24px 50px -18px rgba(7,22,41,.40);
  --shadow-gold:0 12px 30px -10px rgba(201,162,39,.55);
  --navy-gold:linear-gradient(135deg,#071629 0%,#0B1F3A 55%,#1b3860 100%);
  --gold-sheen:linear-gradient(135deg,#C9A227 0%,#E6C766 50%,#C9A227 100%);
  --ease:cubic-bezier(.22,1,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:88px;-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--body);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
main{overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3,h4{text-wrap:balance}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--gold);color:var(--navy-dark)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;z-index:200;background:var(--gold);color:var(--navy);padding:.5rem 1rem;border-radius:.25rem;font-weight:600}
.skip:focus{left:1rem;top:1rem;position:fixed}
.ico{flex-shrink:0;display:inline-block;vertical-align:middle}
.serif{font-family:var(--serif)}

/* layout */
.wrap{max-width:80rem;margin:0 auto;padding:0 1rem}
.wrap-4{max-width:56rem}.wrap-5{max-width:64rem}.wrap-3{max-width:48rem}
.sec{position:relative;padding:4rem 0}
.bg-white{background:#fff}.bg-mist{background:var(--mist)}
.bg-dark{background:var(--navy-gold);color:#fff;position:relative;overflow:hidden}
.bg-darkest{background:var(--navy-dark);color:#fff}
.rel{position:relative}.ovh{overflow:hidden}
.grid{display:grid;gap:1.5rem}
.center{text-align:center}
.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}
.abs-fill{position:absolute;inset:0;width:100%;height:100%}
.hide-sm{display:none}
.lg-only{display:none}

/* typography */
.eyebrow{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.22em;color:var(--gold-dark);margin-bottom:.75rem}
.dark .eyebrow,.bg-dark .eyebrow,.eyebrow.light{color:var(--gold-light)}
.h2{font-family:var(--serif);font-size:1.875rem;line-height:1.2;font-weight:700;color:var(--navy)}
.dark .h2,.bg-dark .h2,.h2.light{color:#fff}
.lead{font-size:1rem;line-height:1.7;color:var(--body)}
.dark .lead,.bg-dark .lead{color:rgba(255,255,255,.8)}
.gold-line{display:block;height:3px;width:5rem;border-radius:3px;background:var(--gold-sheen);margin:1.25rem 0}
.center .gold-line,.gold-line.center{margin-left:auto;margin-right:auto}
.sh{max-width:48rem}.sh.center{margin-left:auto;margin-right:auto}
.prose>*+*{margin-top:1rem}
.prose{font-size:1rem;line-height:1.7}
.link-gold{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:var(--navy)}
.link-gold span{border-bottom:2px solid var(--gold);padding-bottom:2px}
.link-gold .ico{color:var(--gold-dark)}

/* buttons */
.btn-gold,.btn-ghost,.btn-navy{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:999px;padding:.875rem 1.75rem;font-size:15px;font-weight:600;border:0;cursor:pointer;transition:all .3s;line-height:1.3}
.btn-gold{background:var(--gold-sheen);background-size:200% 100%;color:var(--navy-dark);box-shadow:var(--shadow-gold)}
.btn-gold:hover{transform:translateY(-2px);background-position:100% 0;box-shadow:var(--shadow-lift)}
.btn-ghost{border:1px solid rgba(255,255,255,.6);color:#fff;background:transparent}
.btn-ghost:hover{transform:translateY(-2px);border-color:var(--gold);background:rgba(255,255,255,.1);color:var(--gold-light)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{transform:translateY(-2px);background:var(--navy-600)}
.btn-gold[disabled]{opacity:.7;cursor:wait}
.btn-row{display:flex;flex-wrap:wrap;gap:1rem}

/* announcement + header */
.announce{background:var(--navy-dark);color:rgba(255,255,255,.9);text-align:center;font-size:13px}
.announce .wrap{display:flex;align-items:center;justify-content:center;gap:.5rem;padding-top:.5rem;padding-bottom:.5rem}
.announce b{color:var(--gold-light);font-weight:600}
.announce .sep{color:rgba(201,162,39,.6);margin:0 .5rem}
.announce .ico{color:var(--gold)}
.header{position:sticky;top:0;z-index:50;background:rgba(11,31,58,.95);backdrop-filter:blur(8px);transition:all .3s}
.header.scrolled{background:var(--navy);box-shadow:var(--shadow-lift)}
.header .bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem;max-width:80rem;margin:0 auto;transition:padding .3s}
.header.scrolled .bar{padding-top:.5rem;padding-bottom:.5rem}
.logo-box{display:block;background:#fff;border-radius:.5rem;padding:.375rem .625rem;box-shadow:0 1px 2px rgba(0,0,0,.1)}
.logo-box img{height:50px;width:auto;transition:height .3s}
.header.scrolled .logo-box img{height:40px}
.nav-desk{display:none;align-items:center;gap:.25rem}
.nav-desk a{position:relative;padding:.5rem .75rem;font-size:14px;font-weight:500;color:rgba(255,255,255,.85);border-radius:.375rem;transition:color .2s}
.nav-desk a:hover,.nav-desk a[aria-current]{color:var(--gold-light)}
.nav-desk a[aria-current]::after{content:"";position:absolute;left:.75rem;right:.75rem;bottom:-2px;height:2px;border-radius:2px;background:var(--gold)}
.nav-desk .btn-gold{margin-left:.75rem;padding:.625rem 1.75rem;font-size:14px;color:var(--navy-dark)}
.nav-desk .btn-gold:hover{color:var(--navy-dark)}
.nav-desk .btn-gold::after{display:none}
.menu-btn{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:.5rem;border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;cursor:pointer}
.menu-btn .x{display:none}
.menu-btn[aria-expanded=true] .m{display:none}.menu-btn[aria-expanded=true] .x{display:block}
.nav-mob{max-height:0;overflow:hidden;opacity:0;background:var(--navy-dark);transition:max-height .35s var(--ease),opacity .3s}
.nav-mob.open{max-height:calc(100vh - 64px);max-height:calc(100dvh - 64px);opacity:1;overflow-y:auto}
.nav-mob nav{display:flex;flex-direction:column;max-width:80rem;margin:0 auto;padding:1rem 1rem 2.5rem}
.nav-mob a:not(.btn-gold){display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.1);padding:1rem 0;font-size:1.125rem;font-weight:500;color:#fff}
.nav-mob a[aria-current]{color:var(--gold-light)}
.nav-mob .ico{color:var(--gold)}
.nav-mob .btn-gold{margin-top:1.5rem}

/* hero */
.hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:78vh;overflow:hidden;background:var(--navy-dark);color:#fff}
.hero-slides{position:absolute;inset:0}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s}
.hero-slide.on{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.02)}
.hero-slide.on img{animation:kenburns 14s linear forwards}
@keyframes kenburns{to{transform:scale(1.12)}}
.ov{position:absolute;inset:0;pointer-events:none}
.ov-hero{background:linear-gradient(90deg,var(--navy-dark),rgba(11,31,58,.85),rgba(11,31,58,.45))}
.ov-glow{background:radial-gradient(60% 60% at 85% 15%,rgba(201,162,39,.22),transparent 70%)}
.ov-fade{top:auto;height:10rem;background:linear-gradient(0deg,var(--navy-dark),transparent)}
.ov-banner{background:linear-gradient(90deg,var(--navy-dark),rgba(11,31,58,.9),rgba(11,31,58,.6))}
.ov-cta{background:linear-gradient(135deg,rgba(7,22,41,.95),rgba(11,31,58,.9),rgba(27,56,96,.85))}
.hero .inner{position:relative;width:100%;padding-top:5rem;padding-bottom:5rem}
.pill{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:1.25rem;border:1px solid rgba(201,162,39,.5);background:rgba(7,22,41,.5);border-radius:999px;padding:.375rem 1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:var(--gold-light)}
.hero h1{max-width:48rem;font-family:var(--serif);font-size:2.25rem;line-height:1.08;font-weight:700}
.sheen{background:var(--gold-sheen);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sheen 6s linear infinite}
@keyframes sheen{to{background-position:200% 50%}}
.hero .sub{margin-top:1.5rem;max-width:36rem;font-size:1.125rem;line-height:1.6;color:rgba(255,255,255,.9)}
.hero .btn-row{margin-top:2.25rem}
.hero-ctrl{position:absolute;right:1rem;bottom:1.5rem;z-index:10;display:flex;align-items:center;gap:.75rem}
.dots{display:flex;gap:.375rem}
.dots button{height:.5rem;width:.5rem;border-radius:999px;border:0;padding:0;background:rgba(255,255,255,.5);cursor:pointer;transition:all .3s}
.dots button:hover{background:#fff}
.dots button[aria-current=true]{width:1.75rem;background:var(--gold)}
.pp{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(7,22,41,.6);color:#fff;cursor:pointer}
.pp:hover{border-color:var(--gold);color:var(--gold-light)}
.pp .pl{display:none}.pp[aria-pressed=true] .pa{display:none}.pp[aria-pressed=true] .pl{display:block}

/* decorative svg */
.africa{position:absolute;top:50%;transform:translateY(-50%);pointer-events:none;display:none}
.africa .hub-glow{animation:pulse 3.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.africa .link{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.8s forwards}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.5);opacity:.35}}
@keyframes draw{to{stroke-dashoffset:0}}
.flow path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 3.2s ease-in-out forwards}
.particles{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.particles span{position:absolute;border-radius:50%;background:rgba(230,199,102,.7);animation:drift 14s linear infinite}
@keyframes drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-120px,0)}}

/* page banner */
.banner{position:relative;isolation:isolate;overflow:hidden;background:var(--navy-dark);color:#fff}
.banner .inner{position:relative;padding-top:3.5rem;padding-bottom:4rem}
.crumbs{font-size:.875rem;color:rgba(255,255,255,.75)}
.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem}
.crumbs li{display:flex;align-items:center;gap:.375rem}
.crumbs a:hover{color:var(--gold-light)}
.crumbs .ico{color:var(--gold)}
.crumbs [aria-current]{color:var(--gold-light)}
.banner .eyebrow{margin-top:2rem;margin-bottom:0;letter-spacing:.24em}
.banner h1{margin-top:.75rem;max-width:48rem;font-family:var(--serif);font-size:2.25rem;line-height:1.15;font-weight:700}
.banner .gold-line{width:6rem;margin:1.5rem 0 0}
.banner .sub{margin-top:1.5rem;max-width:42rem;font-size:1.125rem;line-height:1.6;color:rgba(255,255,255,.85)}

/* photos + placeholders */
.photo{position:relative;overflow:hidden;background:var(--navy-gold)}
.photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s ease-out}
.fill{height:100%;width:100%}
.zoom:hover .photo>img,.photo.zoom:hover>img{transform:scale(1.06)}
.ph{display:flex;align-items:center;justify-content:center}
.ph::before{content:"";position:absolute;inset:0;opacity:.6;background-image:radial-gradient(circle at 3px 3px,rgba(201,162,39,.35) 1.6px,transparent 2px);background-size:36px 36px}
.ph .ph-ico{position:relative;display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:50%;border:1px solid rgba(201,162,39,.5);background:rgba(7,22,41,.4);color:var(--gold-light)}
.rounded-3xl{border-radius:1.5rem}.shadow-lift{box-shadow:var(--shadow-lift)}.shadow-card{box-shadow:var(--shadow-card)}

/* split section */
.split{position:relative;display:grid;align-items:center;gap:2.5rem}
.split .media{position:relative;max-width:36rem;margin:0 auto;width:100%}
.split .media::before{content:"";position:absolute;right:-1rem;bottom:-1rem;width:100%;height:100%;border-radius:1.5rem;border:2px solid rgba(201,162,39,.7)}
.split .media .photo{border-radius:1.5rem;box-shadow:var(--shadow-lift)}
.badge{position:absolute;left:.75rem;bottom:2rem;border-radius:.75rem;background:var(--gold);padding:.75rem 1rem;font-size:.875rem;font-weight:600;color:var(--navy);box-shadow:var(--shadow-gold);display:flex;align-items:center;gap:.5rem}
.split .text .h2{margin:0}
.split .actions{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.75rem}

/* cards */
.card{position:relative;display:flex;flex-direction:column;height:100%;overflow:hidden;border-radius:1rem;border:1px solid rgba(11,31,58,.1);background:#fff;box-shadow:var(--shadow-card);transition:all .3s}
.card:hover,.card:focus-within{transform:translateY(-6px);border-color:var(--gold);box-shadow:var(--shadow-lift)}
.card .body{display:flex;flex:1;flex-direction:column;padding:1.5rem}
.card h3{font-family:var(--serif);font-size:1.25rem;font-weight:700;color:var(--navy)}
.card p{margin-top:.5rem;flex:1;font-size:15px;line-height:1.65}
.card .more{margin-top:1.25rem;display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:var(--navy)}
.card .more span{border-bottom:2px solid var(--gold);padding-bottom:2px}
.card .more .ico{color:var(--gold-dark);transition:transform .3s}
.card:hover .more .ico{transform:translateX(6px)}
.card .more::after{content:"";position:absolute;inset:0}
.card .bar{position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--gold-sheen);transform:scaleX(0);transform-origin:left;transition:transform .5s;pointer-events:none}
.card:hover .bar{transform:scaleX(1)}
.card .pic{position:relative}
.card .pic .chip{position:absolute;left:.75rem;bottom:.75rem;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:.75rem;background:var(--navy);color:var(--gold);box-shadow:var(--shadow-card)}
.badge-ico{display:grid;place-items:center;flex-shrink:0;width:3.5rem;height:3.5rem;border-radius:1rem;background:var(--navy);color:var(--gold);transition:transform .3s}
.badge-ico.dk{background:rgba(201,162,39,.15);color:var(--gold)}
.group:hover .badge-ico{transform:translateY(-4px) rotate(-4deg)}
.feature{height:100%;border-radius:1rem;padding:1.5rem;border:1px solid rgba(11,31,58,.1);background:#fff;box-shadow:var(--shadow-card);transition:all .3s}
.feature:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:var(--shadow-lift)}
.feature h3{margin-top:1rem;font-family:var(--serif);font-size:1.125rem;font-weight:700;color:var(--navy)}
.feature p{margin-top:.5rem;font-size:15px;line-height:1.65}
.feature.dk{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.05);box-shadow:none}
.feature.dk:hover{border-color:rgba(201,162,39,.6);background:rgba(255,255,255,.1)}
.feature.dk h3{color:#fff}.feature.dk p{color:rgba(255,255,255,.75)}
a.feature-link{display:block;height:100%;border-radius:1rem}
.glass{height:100%;border-radius:1.5rem;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);padding:2rem}
.glass .ic{display:grid;place-items:center;width:3rem;height:3rem;border-radius:.75rem;background:rgba(201,162,39,.15);color:var(--gold)}
.glass h2{margin-top:1.25rem;font-family:var(--serif);font-size:1.5rem;font-weight:700}
.glass p{margin-top:.75rem;line-height:1.7;color:rgba(255,255,255,.85)}

/* lists */
.check{display:grid;gap:.625rem}
.check li{display:flex;gap:.75rem}
.check .ico{margin-top:.2rem;color:var(--gold-dark)}
.check.dk .ico{color:var(--gold)}
.tags{display:flex;flex-wrap:wrap;gap:.5rem}
.tags li{display:inline-flex;align-items:center;gap:.375rem;border-radius:999px;border:1px solid rgba(201,162,39,.6);background:var(--mist);padding:.375rem 1rem;font-size:.875rem;font-weight:500;color:var(--navy)}
.tags li.plain{border:0;background:none;color:var(--body);padding-left:.75rem;padding-right:.75rem}
.tags .ico{color:var(--gold-dark)}
.mini-label{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--navy)}
.kl{margin:1.75rem 0 .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:var(--gold-dark)}
.dk .kl,.bg-dark .kl{color:var(--gold-light)}

/* services page */
.svc-index{border-bottom:1px solid rgba(11,31,58,.1);background:#fff}
.svc-index ul{display:flex;gap:.5rem;overflow-x:auto;padding:1rem}
.svc-index li{flex-shrink:0}
.svc-index a{display:inline-flex;align-items:center;gap:.375rem;border-radius:999px;border:1px solid rgba(11,31,58,.15);padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:var(--navy);transition:all .2s}
.svc-index a:hover{border-color:var(--gold);background:var(--mist)}
.svc-index .ico{color:var(--gold-dark)}
.svc{scroll-margin-top:6rem}
.svc .num{font-family:var(--serif);font-size:3rem;font-weight:700;color:rgba(201,162,39,.5);line-height:1}
.dark-svc .num{color:rgba(201,162,39,.4)}
.svc .head{display:flex;align-items:center;gap:1rem}
.svc h2.t{margin-top:1.25rem;font-family:var(--serif);font-size:1.875rem;font-weight:700;color:var(--navy);line-height:1.2}
.dark-svc h2.t{color:#fff}
.svc .desc{font-size:1.125rem;line-height:1.7}
.dark-svc .desc{color:rgba(255,255,255,.85)}
.svc .two{display:grid;align-items:center;gap:2.5rem}
.offset-frame{position:relative}
.offset-frame::before{content:"";position:absolute;left:-1rem;bottom:-1rem;width:100%;height:100%;border-radius:1.5rem;border:2px solid rgba(201,162,39,.7)}
.svc-card{display:grid;overflow:hidden;border-radius:1.5rem;background:#fff;box-shadow:var(--shadow-lift)}
.svc-card .pane{padding:1.75rem}
.svc-card .num{display:block}
.svc-card h2.t{margin-top:.5rem}
.svc-card>[data-reveal]{position:relative;min-height:260px}
.svc-card .photo{position:absolute;inset:0}
.ring{box-shadow:var(--shadow-lift),0 0 0 1px rgba(201,162,39,.4)}

/* timeline, stats */
.cty{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.cty .c{display:flex;height:100%;flex-direction:column;align-items:center;border-radius:1rem;border:1px solid rgba(11,31,58,.1);background:var(--mist);padding:1.5rem;text-align:center;transition:all .3s}
.cty .c:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:var(--shadow-lift)}
.cty .c .ico-c{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:var(--navy);color:var(--gold);transition:transform .3s}
.cty .c:hover .ico-c{transform:scale(1.1)}
.cty .c span.n{margin-top:.75rem;font-family:var(--serif);font-size:1.125rem;font-weight:700;color:var(--navy)}
.cty .more{display:flex;align-items:center;justify-content:center;border-radius:1rem;border:1px dashed rgba(201,162,39,.7);padding:1.5rem;text-align:center;font-family:var(--serif);font-size:1.125rem;font-weight:600;color:var(--navy)}
.caps{display:grid;gap:.75rem}
.caps li{display:flex;align-items:center;gap:.75rem;border-radius:.75rem;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);padding:.75rem 1rem;transition:border-color .3s}
.caps li:hover{border-color:rgba(201,162,39,.6)}
.caps .ico{color:var(--gold)}
.timeline{position:relative;margin-top:3.5rem;margin-left:0;border-left:2px solid rgba(201,162,39,.5);padding-left:2rem}
.timeline li{position:relative;margin-bottom:2rem}
.timeline li:last-child{margin-bottom:0}
.timeline .dot{position:absolute;left:-3.15rem;display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--navy);font-family:var(--serif);font-size:.875rem;font-weight:700;color:var(--gold);box-shadow:0 0 0 4px var(--mist)}
.timeline h3{font-family:var(--serif);font-size:1.25rem;font-weight:700;color:var(--navy);padding-top:.15rem}

/* resources */
.res{position:relative;display:flex;height:100%;flex-direction:column;border-radius:1rem;border:1px solid rgba(11,31,58,.1);background:#fff;padding:1.5rem;box-shadow:var(--shadow-card);transition:all .3s}
.res:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:var(--shadow-lift)}
.res .top{display:flex;align-items:flex-start;gap:1rem}
.res .doc{display:grid;place-items:center;flex-shrink:0;width:3.5rem;height:4rem;border-radius:.5rem;border:2px solid var(--navy);background:#fff;color:var(--navy)}
.res .fmt{display:inline-block;border-radius:.25rem;background:var(--navy);padding:.125rem .5rem;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--gold-light)}
.res h3{margin-top:.5rem;font-family:var(--serif);font-size:1.125rem;font-weight:700;line-height:1.35;color:var(--navy)}
.res p{margin-top:1rem;flex:1;font-size:15px;line-height:1.65}
.res .act{margin-top:1.25rem}
.res .act .btn-gold{width:100%;font-size:.875rem}
.soon{display:flex;width:100%;cursor:not-allowed;align-items:center;justify-content:center;gap:.5rem;border-radius:999px;border:1px solid rgba(11,31,58,.2);background:var(--mist);padding:.75rem 1.25rem;font-size:.875rem;font-weight:600;color:rgba(11,31,58,.6)}

/* contact + forms */
.company{border-radius:1rem;background:var(--navy);padding:1.75rem;color:#fff;box-shadow:var(--shadow-lift)}
.company h2{font-family:var(--serif);font-size:1.5rem;font-weight:700}
.company .u{display:block;height:2px;width:3rem;background:var(--gold);margin-top:.75rem}
.company ul{margin-top:1.25rem;display:grid;gap:1rem}
.company li{display:flex;gap:.75rem}
.company .ico{margin-top:.2rem;color:var(--gold)}
.company a:hover{color:var(--gold-light)}
.topic{display:flex;gap:1rem;border-radius:1rem;border:1px solid rgba(11,31,58,.1);background:#fff;padding:1.25rem;box-shadow:var(--shadow-card)}
.topic .ic{display:grid;place-items:center;flex-shrink:0;width:2.75rem;height:2.75rem;border-radius:.75rem;background:var(--navy);color:var(--gold)}
.topic h3{font-family:var(--serif);font-size:1.125rem;font-weight:700;color:var(--navy)}
.topic p{font-size:15px}
.stack{display:grid;gap:2rem}.stack-4{display:grid;gap:1rem}
.form{position:relative;border-radius:1rem;border:1px solid rgba(11,31,58,.1);background:#fff;padding:1.5rem;box-shadow:var(--shadow-card)}
.form .cols{display:grid;gap:1.25rem}
.form label.l{display:block;font-size:.875rem;font-weight:600;color:var(--navy)}
.form .req{color:#b91c1c}
.form .opt{font-weight:400;color:rgba(11,31,58,.6)}
.form input:not([type=checkbox]),.form select,.form textarea{margin-top:.375rem;width:100%;border-radius:.75rem;border:1px solid rgba(11,31,58,.2);background:#fff;padding:.75rem 1rem;color:var(--navy);transition:all .2s}
.form input::placeholder,.form textarea::placeholder{color:rgba(11,31,58,.4)}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 2px rgba(201,162,39,.4)}
.form [aria-invalid=true]{border-color:#b91c1c!important}
.form .err{margin-top:.25rem;font-size:.875rem;color:#b91c1c}
.form .consent{display:flex;align-items:flex-start;gap:.75rem;font-size:.875rem}
.form .consent input{margin-top:.25rem;width:1.25rem;height:1.25rem;flex-shrink:0;accent-color:var(--gold)}
.form .consent a{font-weight:600;color:var(--navy);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:2px}
.form .hp{position:absolute;left:-9999px;width:0;height:0;overflow:hidden}
.form .banner-err{display:none;margin-top:1.25rem;gap:.5rem;border-radius:.75rem;border:1px solid #fca5a5;background:#fef2f2;padding:1rem;font-size:.875rem;color:#991b1b}
.form .banner-err.show{display:flex}
.form .banner-err .ico{margin-top:.15rem}
.form .submit{margin-top:1.5rem;width:100%}
.spin{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.thanks{display:none;border-radius:1rem;border:1px solid var(--gold);background:#fff;padding:2rem;text-align:center;box-shadow:var(--shadow-card)}
.thanks.show{display:block}
.thanks .big{display:grid;place-items:center;width:4rem;height:4rem;margin:0 auto;border-radius:50%;background:var(--navy);color:var(--gold)}
.thanks h3{margin-top:1.25rem;font-family:var(--serif);font-size:1.5rem;font-weight:700;color:var(--navy)}
.thanks p{margin-top:.5rem}
.note{display:flex;align-items:flex-start;gap:.75rem;font-size:.875rem}
.note .ico{margin-top:.15rem;color:var(--gold-dark)}

/* cta */
.cta{position:relative;isolation:isolate;overflow:hidden;background:var(--navy-dark);color:#fff}
.cta .inner{position:relative;text-align:center;padding:5rem 1rem}
.cta h2{font-family:var(--serif);font-size:1.875rem;font-weight:700;line-height:1.2}
.cta p.t{margin:0 auto;max-width:42rem;font-size:1.125rem;color:rgba(255,255,255,.85)}
.cta .gold-line{margin:1.5rem auto}
.cta .btn-row{margin-top:2.25rem;justify-content:center}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}
.gallery button{display:block;width:100%;overflow:hidden;border-radius:1rem;box-shadow:var(--shadow-card);border:0;padding:0;cursor:pointer;background:none}
.gallery button:hover img{transform:scale(1.06)}
.lightbox{position:fixed;inset:0;z-index:100;display:none;place-items:center;background:rgba(7,22,41,.95);padding:1rem}
.lightbox.open{display:grid}
.lightbox img{max-width:min(100%,64rem);max-height:80vh;object-fit:contain}
.lightbox .close{position:absolute;right:1rem;top:1rem;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;cursor:pointer}
.lightbox .close:hover{border-color:var(--gold)}

/* footer */
.footer{position:relative;overflow:hidden;background:var(--navy-dark);color:rgba(255,255,255,.8)}
.footer .cols{position:relative;display:grid;gap:2.5rem;max-width:80rem;margin:0 auto;padding:4rem 1rem 2.5rem}
.footer h2{font-family:var(--serif);font-size:1.125rem;color:#fff;font-weight:400}
.footer .u{display:block;height:2px;width:2.5rem;background:var(--gold);margin-top:.5rem}
.footer ul.l{margin-top:1rem;display:grid;gap:.5rem;font-size:.875rem}
.footer a{transition:color .2s}.footer a:hover{color:var(--gold-light)}
.footer .logo-box{display:inline-block;padding:.5rem .75rem}
.footer .logo-box img{height:44px}
.footer .nm{margin-top:1.25rem;font-family:var(--serif);font-size:1.25rem;color:#fff}
.footer .tg{margin-top:.25rem;font-weight:600;color:var(--gold-light)}
.footer .sp{margin-top:.25rem;font-size:.875rem;font-style:italic;color:rgba(255,255,255,.7)}
.footer .ds{margin-top:1rem;max-width:24rem;font-size:.875rem;line-height:1.65}
.footer .ct{margin-top:1rem;display:grid;gap:.75rem;font-size:.875rem}
.footer .ct li{display:flex;gap:.75rem}.footer .ct .ico{margin-top:.15rem;color:var(--gold)}
.footer .btn-gold{margin-top:1.25rem;font-size:.875rem;color:var(--navy-dark)}
.footer .btn-gold:hover{color:var(--navy-dark)}
.footer .wave{position:relative;height:2.5rem;width:100%}
.footer .copy{position:relative;border-top:1px solid rgba(255,255,255,.1)}
.footer .copy p{max-width:80rem;margin:0 auto;padding:1.25rem 1rem;font-size:.75rem;color:rgba(255,255,255,.6)}

.to-top{position:fixed;right:1rem;bottom:1rem;z-index:40;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;border:0;background:var(--navy);color:var(--gold);box-shadow:var(--shadow-lift);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:all .3s}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--navy-600)}

/* privacy + 404 */
.legal{max-width:48rem;margin:0 auto;padding:3.5rem 1rem}
.legal>*+*{margin-top:1.5rem}
.legal h2{margin-top:2rem;font-family:var(--serif);font-size:1.5rem;font-weight:700;color:var(--navy)}
.legal a{font-weight:600;color:var(--navy);text-decoration:underline;text-decoration-color:var(--gold)}
.nf{padding:7rem 1rem;text-align:center}
.nf h1{font-family:var(--serif);font-size:3rem;color:var(--navy)}

/* scroll reveal: hidden only when JS is running */
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0s)}
.js [data-reveal=left]{transform:translateX(-36px)}
.js [data-reveal=right]{transform:translateX(36px)}
.js [data-reveal].in{opacity:1;transform:none}
.js .hero-in{opacity:0;transform:translateY(24px);animation:heroin .9s var(--ease) forwards;animation-delay:var(--d,0s)}
@keyframes heroin{to{opacity:1;transform:none}}

/* >= 640px */
@media (min-width:640px){
  .wrap{padding:0 1.5rem}.header .bar{padding-left:1.5rem;padding-right:1.5rem}
  .sec{padding:6rem 0}
  .hide-sm{display:inline}
  .h2{font-size:2.25rem}.lead{font-size:1.125rem}.prose{font-size:1.125rem}
  .hero h1{font-size:3.75rem}.hero .sub{font-size:1.25rem}
  .banner h1{font-size:3rem}.banner .inner{padding-top:5rem;padding-bottom:6rem}
  .hero-ctrl{right:1.5rem}
  .g2-sm{grid-template-columns:repeat(2,1fr)}
  .cty{grid-template-columns:repeat(3,1fr)}
  .check.cols2{grid-template-columns:repeat(2,1fr);column-gap:2rem}
  .caps{grid-template-columns:repeat(2,1fr)}
  .badge{left:-1.5rem}
  .svc h2.t{font-size:2.25rem}.svc-card .pane{padding:3rem}
  .cta h2{font-size:3rem}.cta .inner{padding:7rem 1.5rem}
  .form{padding:2rem}.form .cols{grid-template-columns:repeat(2,1fr)}.form .submit{width:auto}
  .gallery{gap:1rem}
  .footer .cols{padding-left:1.5rem;padding-right:1.5rem}.footer .copy p{padding-left:1.5rem;padding-right:1.5rem}
  .svc-index ul{padding-left:1.5rem;padding-right:1.5rem}
  .nav-mob nav{padding-left:1.5rem;padding-right:1.5rem}
  .timeline{margin-left:1.5rem}
}
/* >= 768px */
@media (min-width:768px){
  .g2-md{grid-template-columns:repeat(2,1fr)}
  .footer .cols{grid-template-columns:repeat(2,1fr)}
  .africa-md{display:block}
}
/* >= 1024px */
@media (min-width:1024px){
  .hero{min-height:88vh}.hero h1{font-size:4.5rem}.banner h1{font-size:3.75rem}
  .g3-lg{grid-template-columns:repeat(3,1fr)}
  .split{grid-template-columns:1fr 1fr;gap:4rem}
  .split.rev .media{order:2}
  .two-col{grid-template-columns:1fr 1fr}
  .svc .two{grid-template-columns:1fr 1fr;gap:4rem}
  .svc-card{grid-template-columns:1fr 1.1fr}
    .exp-grid{grid-template-columns:1.05fr 1fr;gap:3rem}
  .form-2{grid-template-columns:1fr 1.2fr;gap:3rem}
  .contact-grid{grid-template-columns:1fr 1.35fr;gap:3rem}
  .gallery{grid-template-columns:repeat(4,1fr)}
  .gallery li.big{grid-column:span 2;grid-row:span 2}
  .footer .cols{grid-template-columns:1.4fr 1fr 1fr 1.3fr}
  .africa{display:block}
  .hide-lg{display:none}
  .lg-only{display:block}
  .cty.six{grid-template-columns:repeat(6,1fr)}
}
@media (min-width:1280px){
  .nav-desk{display:flex}.menu-btn,.nav-mob{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .particles{display:none}
  .js [data-reveal],.js .hero-in{opacity:1;transform:none}
}
