/* ============ skip-to-content link (site-wide) ============ */
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:#0E2E86;color:#fff;
  padding:12px 20px;border-radius:0 0 8px 0;font-weight:600;font-size:14px;text-decoration:none}
.skip-link:focus{left:0}

/* ============ external-link redirect notice (site-wide) ============ */
.extm-backdrop{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;
  background:rgba(11,37,102,.55);opacity:0;pointer-events:none;transition:opacity .18s ease;padding:20px}
.extm-backdrop.open{opacity:1;pointer-events:auto}
.extm{background:#fff;border-radius:14px;padding:32px;max-width:420px;width:100%;
  box-shadow:0 30px 80px rgba(11,37,102,.35);transform:translateY(8px);transition:transform .18s ease}
.extm-backdrop.open .extm{transform:none}
.extm h2{font-family:Poppins,system-ui,sans-serif;font-size:19px;font-weight:600;color:#0E2E86;margin:0 0 10px}
.extm-body{font-family:Poppins,system-ui,sans-serif;font-size:14px;line-height:1.6;color:#5a6072;margin:0 0 24px}
.extm-dest{color:#0E2E86;font-weight:600;word-break:break-word}
.extm-optin{background:#F5F7FB;border-radius:10px;padding:16px;margin:0 0 22px}
.extm-email-label{display:block;font-family:Poppins,system-ui,sans-serif;font-size:13px;font-weight:500;
  color:#42506f;margin:0 0 8px}
.extm-optin-row{display:flex;gap:8px}
.extm-email{display:block;flex:1;min-width:0;height:42px;font-family:Poppins,system-ui,sans-serif;font-size:14px;
  color:#1c2b52;background:#fff;border:1px solid #D4DBEA;border-radius:8px;padding:0 13px;outline:none;
  box-sizing:border-box;transition:border-color .2s,box-shadow .2s}
.extm-email:focus{border-color:#0E2E86;box-shadow:0 0 0 3px rgba(14,46,134,.1)}
.extm-email::placeholder{color:#aab2c6}
.extm-notify{flex:none;font-family:Poppins,system-ui,sans-serif;font-size:13px;font-weight:600;color:#fff;
  background:#0E2E86;border:none;border-radius:8px;padding:0 14px;height:42px;cursor:pointer;
  white-space:nowrap;transition:background .2s}
.extm-notify:not(:disabled):hover{background:#0a1f5c}
.extm-notify:disabled{background:#C9D2E6;cursor:not-allowed}
.extm-consent{display:flex;align-items:flex-start;gap:8px;margin-top:12px;cursor:pointer}
.extm-consent-cb{flex:none;width:16px;height:16px;margin-top:2px;accent-color:#0E2E86;cursor:pointer}
.extm-consent span{font-family:Poppins,system-ui,sans-serif;font-size:12px;line-height:1.5;color:#5a6072}
.extm-privacy-link{color:#0E2E86;font-weight:600;text-decoration:underline}
.extm-notify-status{font-family:Poppins,system-ui,sans-serif;font-size:12.5px;font-weight:600;color:#3FA98C;
  margin:8px 0 0;min-height:16px}
.extm-actions{display:flex;gap:10px;justify-content:flex-end}
.extm-cancel{font-family:Poppins,system-ui,sans-serif;font-size:14px;font-weight:600;color:#fff;
  background:#0E2E86;border:1px solid #0E2E86;border-radius:8px;padding:0 18px;height:42px;cursor:pointer}
.extm-cancel:hover{background:#0a1f5c;border-color:#0a1f5c}
.extm-continue{font-family:Poppins,system-ui,sans-serif;font-size:14px;font-weight:500;color:#5a6072;
  background:none;border:1px solid #D4DBEA;border-radius:8px;padding:0 18px;height:42px;display:inline-flex;align-items:center;
  justify-content:center;text-decoration:none}
.extm-continue:hover{border-color:#0E2E86;color:#0E2E86}
@media (prefers-reduced-motion:reduce){.extm-backdrop,.extm{transition:none}}

/* ============ regulatory news ticker (site-wide) ============ */
.cig-ticker{display:flex;align-items:stretch;background:#0B2566;color:#fff;font-family:Poppins,system-ui,sans-serif;overflow:hidden;position:relative;z-index:60}
.cig-ticker-tag{display:flex;align-items:center;gap:9px;flex:none;background:#3FD6A0;color:#0B2566;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:0 20px;white-space:nowrap}
.cig-ticker-dot{width:7px;height:7px;border-radius:50%;background:#0B2566;position:relative;flex:none}
.cig-ticker-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:#0B2566;animation:cig-pulse 1.9s ease-out infinite}
@keyframes cig-pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.4);opacity:0}}
.cig-ticker-vp{flex:1;min-width:0;overflow:hidden;position:relative}
.cig-ticker-vp::before,.cig-ticker-vp::after{content:"";position:absolute;top:0;bottom:0;width:56px;z-index:2;pointer-events:none}
.cig-ticker-vp::before{left:0;background:linear-gradient(90deg,#0B2566,rgba(11,37,102,0))}
.cig-ticker-vp::after{right:0;background:linear-gradient(270deg,#0B2566,rgba(11,37,102,0))}
.cig-ticker-track{display:inline-flex;align-items:center;white-space:nowrap;will-change:transform;animation:cig-marq 52s linear infinite}
.cig-ticker:hover .cig-ticker-track,.cig-ticker:focus-within .cig-ticker-track{animation-play-state:paused}
.cig-ticker-item{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;color:rgba(255,255,255,.82);padding:9px 0}
.cig-ticker-item b{color:#7CF0B4;font-weight:600;letter-spacing:.01em}
.cig-ticker-sep{display:inline-block;width:5px;height:5px;transform:rotate(45deg);background:rgba(124,240,180,.4);margin:0 28px;flex:none}
@keyframes cig-marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.cig-ticker-track{animation:none}.cig-ticker-vp{overflow-x:auto}.cig-ticker-dot::after{animation:none}}
@media (max-width:600px){.cig-ticker-tag{padding:0 13px;font-size:10px;letter-spacing:.1em}.cig-ticker-item{font-size:12px}}

/* ============ micro-interactions (site-wide) ============ */
:focus-visible{outline:2px solid #3FD6A0;outline-offset:3px;border-radius:5px}
.btn:active{transform:scale(.975)}
.arrow{transition:gap .22s cubic-bezier(0.16,1,0.3,1)}
@media (hover:hover){
  a.card{transition:transform .26s cubic-bezier(0.16,1,0.3,1),box-shadow .26s cubic-bezier(0.16,1,0.3,1),border-color .2s}
  a.card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(14,46,134,.10)}
}
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
  [data-cigr="out"]{opacity:0;transform:translateY(28px) scale(.992);filter:blur(6px);will-change:opacity,transform,filter}
  [data-cigr="in"]{opacity:1;transform:none;filter:none;
    transition:opacity .9s cubic-bezier(0.16,1,0.3,1),transform 1s cubic-bezier(0.16,1,0.3,1),filter .9s cubic-bezier(0.16,1,0.3,1)}
}
@media (prefers-reduced-motion:reduce){
  [data-cigr]{opacity:1;transform:none;filter:none;transition:none}
}

/* button sheen sweep on hover */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-18deg);transition:left .6s cubic-bezier(0.16,1,0.3,1);pointer-events:none}
@media (hover:hover){.btn:hover::after{left:140%}}

/* reading-progress bar (pinned to viewport top) */
.cig-progress{position:fixed;top:0;left:0;height:3px;width:100%;background:#3FD6A0;transform:scaleX(0);transform-origin:left center;z-index:200;pointer-events:none;transition:transform .08s linear}

/* header elevation once scrolled */
html.cig-scrolled header{box-shadow:0 6px 26px rgba(14,46,134,.09)!important}

/* ============ header logo: spin-the-wheel + name reveal on hover ============ */
.clogo{text-decoration:none}
.clogo-glyph{display:inline-flex}
.clogo-glyph svg{transition:transform .85s cubic-bezier(.22,.61,.36,1)}
.clogo-lock{display:inline-flex;align-items:center;min-width:0}
.clogo-full{display:inline-block;max-width:0;opacity:0;margin-left:0;overflow:hidden;white-space:nowrap;
  color:#0E2E86;font-family:Poppins,system-ui,sans-serif;font-size:11.5px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;line-height:1;transform:translateX(-6px);
  transition:max-width .6s cubic-bezier(.16,1,.3,1),opacity .45s ease,margin-left .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}
@media (hover:hover) and (min-width:960px){
  .clogo:hover .clogo-glyph svg{transform:rotate(360deg)}
  .clogo:hover .clogo-full{max-width:340px;opacity:1;margin-left:13px;transform:none}
}
@media (prefers-reduced-motion:reduce){
  .clogo-glyph svg{transition:none}
  .clogo-full{transition:opacity .2s ease}
  .clogo:hover .clogo-glyph svg{transform:none}
}

/* ============ footer menu links: dash-grow micro-interaction ============ */
.foot-link{position:relative;display:inline-flex;align-items:center;width:fit-content;
  font-size:14px;color:rgba(255,255,255,.72);text-decoration:none;
  transition:color .25s ease}
.foot-link::before{content:"";width:0;height:1.5px;flex:none;background:#7CF0B4;border-radius:2px;
  margin-right:0;transition:width .32s cubic-bezier(.16,1,.3,1),margin-right .32s cubic-bezier(.16,1,.3,1)}
@media (hover:hover){
  .foot-link:hover{color:#7CF0B4}
  .foot-link:hover::before{width:14px;margin-right:9px}
}
@media (prefers-reduced-motion:reduce){
  .foot-link,.foot-link::before{transition:color .2s ease}
}

/* footer email link: the hover dash becomes a small envelope */
footer a.foot-link[href^="mailto:"]::before{height:12px;border-radius:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237CF0B4' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E") no-repeat center/contain}


/* back-to-top button */
.cig-top{position:fixed;right:24px;bottom:24px;width:46px;height:46px;border-radius:50%;border:none;background:#0E2E86;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:120;opacity:0;transform:translateY(14px) scale(.9);pointer-events:none;box-shadow:0 10px 28px rgba(14,46,134,.28);transition:opacity .3s ease,transform .35s cubic-bezier(0.16,1,0.3,1),background .2s}
html.cig-show-top .cig-top{opacity:1;transform:none;pointer-events:auto}
@media (hover:hover){.cig-top:hover{background:#0B2566;transform:translateY(-3px)}}
.cig-top:active{transform:scale(.92)}
@media (max-width:600px){.cig-top{right:15px;bottom:15px;width:44px;height:44px}}

/* ============ cig mega nav — shared across all pages ============ */
.cnav{display:flex;align-items:center;gap:4px}
.cnav-plain,.cnav-trig{position:relative;display:inline-flex;align-items:center;gap:6px;font-family:Poppins,sans-serif;font-size:14.5px;font-weight:500;color:#42506f;padding:8px 14px;border-radius:8px;cursor:pointer;transition:color .2s,background .2s;background:transparent;border:none;line-height:1}
.cnav-plain:hover,.cnav-item:hover .cnav-trig{color:#0E2E86}
/* growing mint underline */
.cnav-plain::after,.cnav-trig::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;background:#3FD6A0;border-radius:2px;transform:scaleX(0);transform-origin:left center;transition:transform .28s cubic-bezier(.645,.045,.355,1)}
.cnav-plain:hover::after,.cnav-item:hover .cnav-trig::after{transform:scaleX(1)}
.cnav-plain.is-active,.cnav-trig.is-active{color:#0E2E86;font-weight:600}
.cnav-plain.is-active::after,.cnav-trig.is-active::after{transform:scaleX(1);background:#0E2E86}
/* caret */
.cnav-caret{width:11px;height:11px;transition:transform .28s cubic-bezier(.645,.045,.355,1);opacity:.7}
.cnav-item:hover .cnav-caret{transform:rotate(180deg);opacity:1}

/* ---- CTA ---- */
.cnav-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;margin-left:10px;font-family:Poppins,sans-serif;font-size:14px;font-weight:500;color:#fff;background:#0E2E86;border-radius:8px;cursor:pointer;transition:background .2s,box-shadow .2s;white-space:nowrap}
.cnav-cta:hover{background:#0B2566;box-shadow:0 10px 22px -10px rgba(14,46,134,.6)}

/* ---- mega panel: full-bleed sheet under the sticky header ---- */
.cnav-item{position:static}
.cnav-mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid #E7EBF3;border-bottom:1px solid #E7EBF3;box-shadow:0 30px 50px -30px rgba(14,46,134,.28);opacity:0;visibility:hidden;transform:translateY(-8px);pointer-events:none;transition:opacity .26s ease,transform .26s cubic-bezier(.645,.045,.355,1),visibility 0s linear .26s;z-index:60}
.cnav-item:hover .cnav-mega{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;transition:opacity .26s ease,transform .26s cubic-bezier(.645,.045,.355,1),visibility 0s}
/* invisible hover-bridge: spans the gap between trigger and panel so a diagonal path keeps the menu open */
.cnav-mega::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.cnav-inner{max-width:1160px;margin:0 auto;padding:30px 32px 34px;display:grid;grid-template-columns:1fr 1fr 1fr .9fr;gap:14px 40px}
.cnav-inner.markets{grid-template-columns:1fr 1fr .9fr}

.cnav-colh{grid-column:auto;font-weight:600;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#3FA98C;margin:0 0 4px;padding:0 12px}
.cnav-col{display:flex;flex-direction:column;gap:2px}

/* link rows — staggered reveal, mint indicator, sliding arrow */
.cnav-link{position:relative;display:block;padding:9px 12px 9px 14px;border-radius:8px;text-decoration:none;transition:background .18s ease,transform .3s cubic-bezier(.645,.045,.355,1),opacity .3s ease;opacity:0;transform:translateY(7px)}
.cnav-item:hover .cnav-link{opacity:1;transform:translateY(0)}
.cnav-item:hover .cnav-link:nth-child(2){transition-delay:.03s}
.cnav-item:hover .cnav-link:nth-child(3){transition-delay:.06s}
.cnav-item:hover .cnav-link:nth-child(4){transition-delay:.09s}
.cnav-item:hover .cnav-link:nth-child(5){transition-delay:.12s}
.cnav-link::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:2px;border-radius:2px;background:#3FD6A0;transform:scaleY(0);transform-origin:center;transition:transform .2s ease}
.cnav-link:hover{background:#F5F8FE}
.cnav-link:hover::before{transform:scaleY(1)}
.cnav-lt{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cnav-lname{font-size:14px;font-weight:600;color:#0E2E86;line-height:1.3}
.cnav-ld{font-size:12px;color:#7a839a;line-height:1.5;margin-top:2px}
.cnav-larrow{flex:none;color:#b6c0d6;font-size:14px;transform:translateX(-4px);opacity:0;transition:transform .22s ease,opacity .22s ease,color .2s}
.cnav-link:hover .cnav-larrow{transform:translateX(0);opacity:1;color:#3FA98C}

/* market monogram */
.cnav-mono{flex:none;width:34px;height:34px;border-radius:8px;border:1px solid #E7EBF3;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px;letter-spacing:.03em;color:#0E2E86;background:#F7F9FD;transition:border-color .2s,background .2s}
.cnav-link:hover .cnav-mono{border-color:#3FD6A0;background:#EAF7F1}
.cnav-mrow{display:flex;align-items:center;gap:12px}

/* featured card */
.cnav-feat{background:#0E2E86;border-radius:12px;padding:22px;display:flex;flex-direction:column;justify-content:space-between;gap:16px;position:relative;overflow:hidden;text-decoration:none;transition:transform .25s cubic-bezier(.645,.045,.355,1),box-shadow .25s}
.cnav-feat:hover{transform:translateY(-3px);box-shadow:0 18px 34px -16px rgba(14,46,134,.5)}
.cnav-feat-tex{position:absolute;inset:0;opacity:.14;background-image:radial-gradient(circle at 20% 30%,#7CF0B4 1.4px,transparent 1.6px),radial-gradient(circle at 70% 65%,#7CF0B4 1.4px,transparent 1.6px);background-size:26px 26px;pointer-events:none}
.cnav-feat-lbl{position:relative;font-weight:600;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#7CF0B4}
.cnav-feat-h{position:relative;font-family:'Punta',serif;font-weight:300;font-size:23px;line-height:1.08;color:#fff;margin:8px 0 0}
.cnav-feat-cta{position:relative;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#fff}
.cnav-feat-cta .a{transition:transform .22s ease}
.cnav-feat:hover .cnav-feat-cta .a{transform:translateX(4px)}

/* ============ mobile burger + drawer (built by cig-nav.js) ============ */
.cnav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;margin-left:6px;padding:0;border:none;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cnav-burger span{display:block;width:22px;height:2px;border-radius:2px;background:#0E2E86;margin:0 auto;transition:transform .3s cubic-bezier(.645,.045,.355,1),opacity .2s}
.nav-open .cnav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-open .cnav-burger span:nth-child(2){opacity:0}
.nav-open .cnav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.cnav-backdrop{display:none;position:fixed;inset:0;background:rgba(9,20,54,.42);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:80}
.nav-open .cnav-backdrop{opacity:1;pointer-events:auto}
.cnav-drawer{display:none;position:fixed;top:0;right:0;bottom:0;width:min(86vw,360px);background:#fff;box-shadow:-24px 0 60px -30px rgba(14,46,134,.5);transform:translateX(102%);visibility:hidden;transition:transform .34s cubic-bezier(.645,.045,.355,1),visibility .34s;z-index:90;overflow-y:auto;overscroll-behavior:contain}
.nav-open .cnav-drawer{transform:translateX(0);visibility:visible}
.cnav-dinner{display:flex;flex-direction:column;padding:84px 18px 32px}
.cnav-ditem{display:block;padding:15px 14px;font-family:Poppins,sans-serif;font-size:17px;font-weight:600;color:#0E2E86;border-bottom:1px solid #EEF1F7;text-decoration:none}
.cnav-ditem:active{background:#F5F8FE}
.cnav-dacc{border-bottom:1px solid #EEF1F7}
.cnav-dacc-h{width:100%;display:flex;align-items:center;justify-content:space-between;padding:15px 14px;background:transparent;border:none;cursor:pointer;font-family:Poppins,sans-serif;font-size:17px;font-weight:600;color:#0E2E86}
.cnav-dacc-i{font-size:22px;font-weight:400;color:#3FA98C;transition:transform .3s cubic-bezier(.645,.045,.355,1);line-height:1}
.cnav-dacc.open .cnav-dacc-i{transform:rotate(45deg)}
.cnav-dacc-b{max-height:0;overflow:hidden;transition:max-height .38s cubic-bezier(.645,.045,.355,1);background:#FAFBFE}
.cnav-dacc.open .cnav-dacc-b{max-height:760px}
.cnav-dacc-b .cnav-link{opacity:1!important;transform:none!important;padding:12px 14px 12px 22px}
.cnav-dacc-b .cnav-link::before{left:12px}
.cnav-dcta{display:none;height:52px;margin:22px 14px 0;font-size:16px}

@media (max-width:780px){
  /* nav swap */
  nav.cnav{display:none!important}
  .cnav-burger{display:flex}
  .cnav-backdrop,.cnav-drawer{display:block}
  .cnav-dcta{display:inline-flex}
  /* container + type */
  html,body{overflow-x:hidden}
  .wrap{padding-left:20px!important;padding-right:20px!important}
  .punta{font-size:clamp(30px,8.4vw,42px)!important;line-height:1.05!important}
  img,video,svg{max-width:100%}
  /* stack every inline grid, kill min-width overflow */
  [style*="grid-template-columns"]{grid-template-columns:1fr!important;gap:16px!important}
  [style*="grid-template-columns"]>*{min-width:0!important}
}

/* ============ link visibility (site-wide) ============ */
/* Every text link is underlined (the global a rule in each page sets
   this). The exceptions are controls and card-style blocks, where an
   underline reads as noise rather than affordance. */
a.btn, .cnav-cta, a.card, .cnav-link, .cnav-feat, .clogo, .skip-link,
.extm-continue, .cig-top, .cnav-plain, .cnav-trig, .cnav-ditem,
footer a{text-decoration:none}
a:hover{text-decoration-thickness:2px}


/* Miami skyline footer background (blue duotone, dark overlay keeps text readable) */
footer{background:linear-gradient(rgba(8,25,74,.86),rgba(11,37,102,.93)),url('/uploads/miami-skyline-blue.webp') center 32%/cover no-repeat !important}

/* Ambient ocean loop: respect reduced-motion users */
@media (prefers-reduced-motion: reduce){.ocean-video{display:none}}
