/* Shared navigation — miguelmendesoliveira.com
   Floating pill on desktop; compact bar + full-screen menu + sticky CTA on mobile.
   Loaded after each page's inline styles; #nav selectors win over the legacy rules. */

:root{--sn-teal:#1B4A52;--sn-tealh:#2A6B77;--sn-mist:#E8F0F1;--sn-ink:#1A1916;--sn-inkm:#3A3835;--sn-inkl:#6B6860;--sn-inkg:#A8A49E;--sn-ivory:#FAFAF8;--sn-line:#DEDBD5;--sn-gold:#B8944A;--sn-ease:cubic-bezier(.2,.8,.2,1)}
html{scroll-padding-top:96px}

/* ---------- Floating pill ---------- */
#nav{position:fixed;top:14px;left:50%;right:auto;bottom:auto;transform:translateX(-50%);width:min(1120px,calc(100% - 32px));height:58px;padding:0 .55rem 0 1.5rem;margin:0;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;border:1px solid rgba(26,25,22,.08);border-bottom:1px solid rgba(26,25,22,.08);border-radius:999px;background:rgba(250,250,248,.9);-webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px);box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 8px 30px rgba(26,25,22,.05);z-index:300;transition:box-shadow .3s,background .3s}
#nav.sc{background:rgba(250,250,248,.92);box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 10px 36px rgba(26,25,22,.10)}

#nav .sn-brand{font-family:'Playfair Display',serif;font-size:.9rem;letter-spacing:.02em;color:var(--sn-ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}

#nav .sn-links{display:flex;align-items:center;gap:.15rem;list-style:none;margin:0 auto;padding:0}
#nav .sn-links>li{position:relative}
#nav .sn-links a{display:block;font-family:'Outfit',sans-serif;font-weight:400;font-size:.84rem;letter-spacing:.005em;color:var(--sn-inkm);text-decoration:none;text-transform:none;padding:.5rem .85rem;border-radius:999px;transition:background .2s,color .2s;white-space:nowrap}
#nav .sn-links a:hover,#nav .sn-links a:focus-visible{background:rgba(27,74,82,.07);color:var(--sn-teal)}
#nav .sn-links a[aria-current]{color:var(--sn-teal);background:var(--sn-mist)}

#nav .sn-drop{position:absolute;top:calc(100% + .65rem);left:50%;min-width:240px;padding:.45rem;background:rgba(250,250,248,.97);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border:1px solid rgba(26,25,22,.08);border-radius:20px;box-shadow:0 18px 50px rgba(26,25,22,.10);opacity:0;visibility:hidden;transform:translate(-50%,-6px);transition:opacity .22s var(--sn-ease),transform .22s var(--sn-ease),visibility 0s .22s}
#nav .sn-links>li:hover .sn-drop,#nav .sn-links>li:focus-within .sn-drop{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}
#nav .sn-drop a{border-radius:14px;padding:.62rem .9rem;font-size:.86rem}

#nav .sn-right{display:flex;align-items:center;gap:.9rem;flex-shrink:0}
#nav .sn-lang{display:flex;align-items:center;gap:.3rem;font-family:'DM Mono',monospace;font-size:.62rem;letter-spacing:.1em}
#nav .sn-lang a{color:var(--sn-inkg);text-decoration:none;text-transform:uppercase;transition:color .2s}
#nav .sn-lang a:hover{color:var(--sn-ink)}
#nav .sn-lang a[aria-current]{color:var(--sn-teal);font-weight:500}
#nav .sn-lang i{font-style:normal;color:var(--sn-line)}

#nav .sn-cta{display:inline-block;background:var(--sn-teal);color:var(--sn-ivory);font-family:'Outfit',sans-serif;font-weight:400;font-size:.82rem;letter-spacing:.01em;text-decoration:none;white-space:nowrap;padding:.66rem 1.2rem;border-radius:999px;transition:background .2s,transform .2s}
#nav .sn-cta:hover{background:var(--sn-tealh)}
#nav .sn-cta:active{transform:scale(.97)}

#nav .sn-menu-btn{display:none;align-items:center;gap:.5rem;font-family:'Outfit',sans-serif;font-weight:500;font-size:.86rem;letter-spacing:.01em;color:var(--sn-teal);background:rgba(27,74,82,.08);border:0;border-radius:999px;padding:.6rem 1.05rem;cursor:pointer;transition:background .2s}
#nav .sn-menu-btn:hover{background:rgba(27,74,82,.14)}
#nav .sn-menu-btn svg{width:11px;height:11px;transition:transform .3s var(--sn-ease)}
#nav .sn-menu-btn[aria-expanded="true"] svg{transform:rotate(45deg)}

/* ---------- Scroll progress (quiet motion cue) ---------- */
.sn-progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--sn-gold);transform:scaleX(0);transform-origin:left;z-index:310;pointer-events:none;opacity:.85}

/* ---------- Full-screen menu (mobile) ---------- */
.sn-menu{position:fixed;inset:0;z-index:290;background:var(--sn-ivory);padding:calc(env(safe-area-inset-top,0px) + 92px) 1.6rem calc(env(safe-area-inset-bottom,0px) + 1.6rem);display:none;flex-direction:column;overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .3s var(--sn-ease),transform .3s var(--sn-ease),visibility 0s .3s}
.sn-menu.open{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.sn-menu-list,.sn-menu-sub{list-style:none;margin:0;padding:0}
.sn-menu-list a{display:flex;justify-content:space-between;align-items:baseline;font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(1.9rem,8.2vw,2.6rem);line-height:1.15;letter-spacing:-.01em;color:var(--sn-ink);text-decoration:none;padding:1.05rem 0;border-bottom:1px solid var(--sn-line)}
.sn-menu-list a[aria-current]{color:var(--sn-teal)}
.sn-menu-list a::after{content:'→';font-family:'Outfit',sans-serif;font-size:1.1rem;color:var(--sn-inkg);transition:transform .25s var(--sn-ease),color .2s}
.sn-menu-list a:active::after{transform:translateX(4px);color:var(--sn-teal)}
.sn-menu-label{font-family:'DM Mono',monospace;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sn-inkg);margin:2rem 0 .4rem}
.sn-menu-sub a{display:block;font-family:'Outfit',sans-serif;font-weight:300;font-size:1.05rem;color:var(--sn-inkl);text-decoration:none;padding:.55rem 0}
.sn-menu-foot{margin-top:auto;padding-top:2rem;display:flex;flex-direction:column;gap:1.1rem;align-items:stretch}
.sn-menu-foot .sn-cta-lg{display:block;text-align:center;background:var(--sn-teal);color:var(--sn-ivory);font-family:'Outfit',sans-serif;font-weight:400;font-size:1rem;text-decoration:none;padding:1.05rem 1rem;border-radius:999px}
.sn-menu-foot .sn-lang{justify-content:center;font-family:'DM Mono',monospace;font-size:.7rem;letter-spacing:.12em;display:flex;gap:.5rem}
.sn-menu-foot .sn-lang a{color:var(--sn-inkg);text-decoration:none;text-transform:uppercase}
.sn-menu-foot .sn-lang a[aria-current]{color:var(--sn-teal);font-weight:500}
.sn-menu-foot .sn-lang i{font-style:normal;color:var(--sn-line)}
.sn-menu.open .sn-menu-list li{animation:snIn .5s var(--sn-ease) both}
.sn-menu.open .sn-menu-list li:nth-child(2){animation-delay:.05s}
.sn-menu.open .sn-menu-list li:nth-child(3){animation-delay:.1s}
.sn-menu.open .sn-menu-list li:nth-child(4){animation-delay:.15s}
@keyframes snIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- Sticky CTA (mobile) ---------- */
.sn-bar{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);transform:translate(-50%,24px);z-index:280;display:none;background:var(--sn-teal);color:var(--sn-ivory);font-family:'Outfit',sans-serif;font-weight:400;font-size:.92rem;letter-spacing:.01em;text-decoration:none;white-space:nowrap;padding:.95rem 1.6rem;border-radius:999px;box-shadow:0 10px 30px rgba(27,74,82,.28);opacity:0;pointer-events:none;transition:opacity .3s var(--sn-ease),transform .3s var(--sn-ease)}
.sn-bar.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}

@media(max-width:1024px){
  #nav{top:10px;width:calc(100% - 20px);height:54px;padding:0 .5rem 0 1.15rem;gap:.75rem}
  #nav .sn-links,#nav .sn-right .sn-lang,#nav .sn-right .sn-cta{display:none}
  #nav .sn-menu-btn{display:inline-flex}
  #nav .sn-brand{font-size:.86rem}
  .sn-menu{display:flex}
  .sn-bar{display:block}
  html{scroll-padding-top:84px}
}
@media(max-width:380px){#nav .sn-brand{font-size:.78rem}}
@media(prefers-reduced-motion:reduce){
  .sn-menu,.sn-bar,#nav .sn-drop{transition:none}
  .sn-menu.open .sn-menu-list li{animation:none}
}

/* ---------- Layout guards (prevent sideways scrolling that zooms phones out) ---------- */
html,body{overflow-x:clip;max-width:100%}
.nlg>*,.ag>*,.pg>*,.tg>*,.ig>*,.rg>*,.spg>*,.eg>*,.cg>*,.cong>*,.edg>*,.fq>*{min-width:0}
.nlf{flex-wrap:wrap}
.soc{flex-wrap:wrap;row-gap:.6rem}
footer{padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right))}
@media(min-width:1025px){footer{padding-left:3rem;padding-right:3rem}}
.foot-links{flex-wrap:wrap;row-gap:.7rem;column-gap:1.4rem}
.foot-tag{white-space:normal}
.fc2 ul,.fc2 li,.fc2 a{min-width:0;overflow-wrap:anywhere}

/* ---------- Home hero: caption/stats no longer fight the portrait ---------- */
.pi::after{display:none}
.hst{bottom:1.1rem;right:1.1rem;gap:1.5rem;padding:.85rem 1.2rem;background:rgba(250,250,248,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(26,25,22,.08);border-radius:16px}
.stl{color:var(--sn-inkl)}
