/* norvellos - Southern-hemisphere night, harbour lights */
:root{
  --nvl-navy:#0b1d2e;--nvl-navy2:#12304a;--nvl-teal:#2bb3a3;--nvl-violet:#6b5bd6;
  --nvl-gold:#d9a93c;--nvl-gold-l:#f3cf6a;--nvl-cta:#0d6b63;--nvl-cta-h:#0a5751;
  --nvl-page:#f6f8f9;--nvl-card:#ffffff;--nvl-ink:#0f1a24;--nvl-muted:#45525e;--nvl-line:#d8e0e5;
  --nvl-serif:"Young Serif",Georgia,"Times New Roman",serif;--nvl-sans:"Figtree",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --nvl-r:14px;--nvl-gut:16px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--nvl-page);color:var(--nvl-ink);font-family:var(--nvl-sans);font-size:18px;line-height:1.65;overflow-wrap:break-word}
img,svg{max-width:100%;height:auto;display:block}
a{color:#0b5d56;text-underline-offset:3px}
a:hover{color:var(--nvl-navy)}
:focus-visible{outline:3px solid var(--nvl-gold);outline-offset:3px;border-radius:4px}
h1,h2,h3,h4{font-family:var(--nvl-serif);font-weight:400;line-height:1.2;color:var(--nvl-ink);margin:0 0 .5em}
h2{font-size:clamp(1.55rem,1.2rem + 1.4vw,2.1rem)}
h3{font-size:1.55rem}
h4{font-family:var(--nvl-sans);font-weight:700;font-size:.82rem;letter-spacing:.09em;text-transform:uppercase;color:var(--nvl-muted);margin:1.1em 0 .4em}
p{margin:0 0 1em}
code{font-size:.9em;background:#e9eef1;padding:1px 5px;border-radius:4px}

.nvl-skip{position:absolute;left:16px;top:0;transform:translateY(-140%);background:var(--nvl-gold-l);color:var(--nvl-navy);padding:10px 16px;border-radius:0 0 8px 8px;z-index:50;font-weight:700}
.nvl-skip:focus{transform:none}

/* header */
.nvl-top{background:var(--nvl-navy);color:#fff;position:relative;border-bottom:1px solid rgba(243,207,106,.25)}
.nvl-top-in{max-width:1160px;margin:0 auto;padding:10px var(--nvl-gut);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 16px}
.nvl-brand{text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.nvl-wm{font-family:var(--nvl-serif);font-size:1.6rem;letter-spacing:.01em;line-height:1}
.nvl-wm-a{color:#ffffff}.nvl-wm-b{color:var(--nvl-gold-l)}
.nvl-nav{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 4px}
.nvl-nav a{color:#e6eef3;text-decoration:none;display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font-weight:600;font-size:.95rem;border-radius:8px}
.nvl-nav a:hover{background:rgba(255,255,255,.08);color:#fff}

/* hero */
.nvl-hero{position:relative;overflow:hidden;background:var(--nvl-navy);color:#eef4f7;isolation:isolate}
.nvl-aurora{position:absolute;inset:-30% -10% auto -10%;height:120%;z-index:-1;pointer-events:none;
  background:radial-gradient(40% 45% at 25% 30%,rgba(43,179,163,.55),transparent 70%),radial-gradient(45% 40% at 70% 20%,rgba(107,91,214,.55),transparent 70%),radial-gradient(30% 30% at 55% 55%,rgba(43,179,163,.25),transparent 70%);
  filter:blur(40px)}
.nvl-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--nvl-teal),var(--nvl-violet),var(--nvl-gold))}
.nvl-hero-in{max-width:1160px;margin:0 auto;padding:64px var(--nvl-gut) 72px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px;align-items:center}
.nvl-eyebrow{font-weight:700;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--nvl-gold-l);margin-bottom:.8em}
.nvl-hero h1{color:#ffffff;font-size:clamp(2.3rem,1.6rem + 3.6vw,4.2rem);margin:0 0 .45em}
.nvl-h1-acc{color:var(--nvl-gold-l)}
.nvl-hero-lede{font-size:1.1rem;color:#dfe8ee;max-width:60ch}
.nvl-upd{font-size:.9rem;color:#c3d1db;margin:0}
.nvl-hero-medal{display:flex;justify-content:center}
.nvl-medal{width:100%;max-width:280px;filter:drop-shadow(0 16px 30px rgba(0,0,0,.45))}
.nvl-hero .nvl-aff{background:rgba(255,255,255,.08);border-color:rgba(243,207,106,.45);color:#eef4f7}
.nvl-hero .nvl-aff-k{color:var(--nvl-gold-l)}

/* affiliate box */
.nvl-aff{border:1px solid var(--nvl-line);border-left:4px solid var(--nvl-gold);background:#fffaf0;border-radius:10px;padding:12px 16px;margin:0 0 1.2em;font-size:.95rem;line-height:1.55;max-width:68ch}
.nvl-aff p{margin:0}
.nvl-aff-k{display:block;font-weight:700;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:#7a5410;margin-bottom:2px}

/* layout */
.nvl-wrap{max-width:1160px;margin:0 auto;padding:56px var(--nvl-gut) 0}
.nvl-intro p,.nvl-method p{max-width:68ch}
.nvl-h-sm{font-size:1.35rem}

/* filters */
.nvl-fgroup{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}
.nvl-flab{font-weight:700;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--nvl-muted);min-width:96px}
.nvl-fbtn{font:inherit;font-size:.95rem;font-weight:600;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid #9fb0bc;background:#fff;color:var(--nvl-ink);cursor:pointer}
.nvl-fbtn:hover{border-color:var(--nvl-cta)}
.nvl-fbtn[aria-pressed="true"]{background:var(--nvl-navy);border-color:var(--nvl-navy);color:#fff}
.nvl-fcount{font-weight:600;color:var(--nvl-muted);margin:.6em 0 .4em}
.nvl-fempty{background:#fff;border:1px dashed #9fb0bc;padding:12px 16px;border-radius:10px}
.nvl-jumps{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.nvl-jump{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px 0 6px;border-radius:999px;background:var(--nvl-navy);color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;max-width:100%}
.nvl-jump span{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--nvl-gold-l);color:var(--nvl-navy);font-weight:700;flex:none}
.nvl-jump:hover{background:var(--nvl-navy2);color:#fff}

/* vitrina rows */
.nvl-row{position:relative;background:var(--nvl-card);border:1px solid var(--nvl-line);border-radius:var(--nvl-r);margin:0 0 28px;box-shadow:0 2px 0 rgba(11,29,46,.04),0 18px 40px -28px rgba(11,29,46,.35);scroll-margin-top:16px}
.nvl-row[hidden]{display:none}
.nvl-row-first{border:2px solid var(--nvl-gold);box-shadow:0 0 0 4px rgba(217,169,60,.15),0 24px 50px -28px rgba(11,29,46,.5)}
.nvl-row-edge{display:flex;align-items:stretch;flex-wrap:wrap}
.nvl-rank{display:grid;place-items:center;min-width:56px;min-height:48px;background:var(--nvl-navy);color:var(--nvl-gold-l);font-family:var(--nvl-serif);font-size:1.6rem;border-radius:var(--nvl-r) 0 10px 0}
.nvl-tag{display:inline-flex;align-items:center;padding:6px 14px;background:var(--nvl-teal);color:#06231f;font-weight:700;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;border-radius:0 0 10px 0;align-self:flex-start;min-height:34px}
.nvl-ribbon{margin:12px 20px 0;display:inline-block;background:linear-gradient(90deg,#b98a25,var(--nvl-gold-l));color:#1c1405;font-weight:700;font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;padding:6px 12px;border-radius:6px;max-width:calc(100% - 40px)}
.nvl-row-grid{display:grid;grid-template-columns:150px minmax(0,1fr) 210px;gap:24px;padding:20px 24px 8px}
.nvl-mono{aspect-ratio:1/1;border-radius:12px;background:radial-gradient(70% 70% at 30% 25%,rgba(43,179,163,.55),transparent 70%),radial-gradient(70% 70% at 80% 80%,rgba(107,91,214,.55),transparent 70%),var(--nvl-navy);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;align-self:start}
.nvl-mono span{font-family:var(--nvl-serif);font-size:2.6rem;color:var(--nvl-gold-l);line-height:1}
.nvl-mono small{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;margin-top:6px;color:#dfe8ee}
.nvl-row h3{margin-bottom:.2em}
.nvl-where{color:var(--nvl-muted);font-weight:600;font-size:.95rem;margin-bottom:.3em}
.nvl-trips{font-size:.85rem;color:#0b5d56;font-weight:700;margin-bottom:.8em}
.nvl-fac,.nvl-notes{margin:0;padding-left:1.2em}
.nvl-fac li,.nvl-notes li{margin-bottom:.2em}
.nvl-hi{margin:1em 0;padding:14px 16px;border-radius:10px;background:linear-gradient(120deg,#eaf7f5,#f0eefc);border:1px solid #cfe7e3}
.nvl-hi p{margin:0}
.nvl-hi-k{font-family:var(--nvl-serif);font-size:1.15rem;margin-bottom:.25em!important}
.nvl-best{margin:.6em 0 0}
.nvl-row-act{display:flex;flex-direction:column;align-items:stretch;gap:6px;align-self:start}
.nvl-cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;background:var(--nvl-cta);color:#ffffff;font:inherit;font-weight:700;font-size:1rem;border:0;border-radius:10px;text-decoration:none;white-space:nowrap;cursor:pointer}
.nvl-cta:hover{background:var(--nvl-cta-h);color:#fff}
.nvl-cta-note{font-size:.82rem;color:var(--nvl-muted);text-align:center;margin:0}
.nvl-more{margin:0 24px 20px;border-top:1px solid var(--nvl-line)}
.nvl-more summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700;color:#0b5d56}
.nvl-more p{max-width:68ch}

/* comparison */
.nvl-cmp-wrap{position:relative;overflow-x:auto;background:var(--nvl-card);border:1px solid var(--nvl-line);border-radius:var(--nvl-r)}
.nvl-cmp{border-collapse:collapse;width:100%;min-width:760px;font-size:.95rem}
.nvl-cmp-sm{min-width:600px}
.nvl-cmp caption{text-align:left;padding:14px 16px;color:var(--nvl-muted);font-size:.9rem}
.nvl-cmp th,.nvl-cmp td{padding:12px 14px;border-top:1px solid var(--nvl-line);text-align:left;vertical-align:top}
.nvl-cmp thead th{background:var(--nvl-navy);color:#fff;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}
.nvl-cmp tbody th a{font-weight:700}

/* faq */
.nvl-faq-i{background:var(--nvl-card);border:1px solid var(--nvl-line);border-radius:12px;margin-bottom:10px;padding:0 18px;max-width:860px}
.nvl-faq-i summary{cursor:pointer;min-height:52px;display:flex;align-items:center;font-weight:700}
.nvl-faq-i p{max-width:68ch}
.nvl-method{padding-bottom:64px}

/* inner pages */
.nvl-band{background:linear-gradient(180deg,var(--nvl-navy) 0 72%,var(--nvl-cta) 72% 100%);color:#fff}
.nvl-band-in{max-width:720px;margin:0 auto;padding:48px var(--nvl-gut) 44px}
.nvl-band h1{color:#fff;font-size:clamp(2rem,1.5rem + 2.4vw,3rem);margin:0}
.nvl-kick{color:var(--nvl-gold-l);font-weight:700;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .5em}
.nvl-col{max-width:720px;margin:0 auto;padding:32px var(--nvl-gut) 64px;counter-reset:nvlsec}
.nvl-lede{font-size:1.12rem;color:#26343f}
.nvl-sec{margin-top:2em}
.nvl-sec h2{font-size:1.5rem;display:flex;gap:12px;align-items:baseline}
.nvl-sec h2::before{counter-increment:nvlsec;content:counter(nvlsec,decimal-leading-zero);font-family:var(--nvl-sans);font-weight:700;font-size:.85rem;color:#0b5d56;background:#e3f3f1;border-radius:6px;padding:2px 8px;flex:none}
.nvl-sec ul{padding-left:1.2em}
.nvl-stamp{margin-top:2.5em;color:var(--nvl-muted);font-size:.9rem}
.nvl-plain{background:var(--nvl-card);border:1px solid var(--nvl-line);border-top:4px solid var(--nvl-violet);border-radius:12px;padding:16px 18px}
.nvl-plain-k{font-family:var(--nvl-serif);font-size:1.2rem;color:#4a3db8;margin-bottom:.4em}
.nvl-plain p:last-child{margin:0}

/* form */
.nvl-form{display:grid;gap:6px;background:var(--nvl-card);border:1px solid var(--nvl-line);border-radius:12px;padding:20px}
.nvl-form label{font-weight:600}
.nvl-form input:not([type=checkbox]),.nvl-form select,.nvl-form textarea{font:inherit;width:100%;min-height:46px;padding:8px 12px;border:1.5px solid #8d9ea9;border-radius:8px;background:#fff;color:var(--nvl-ink);margin-bottom:8px}
.nvl-check{display:flex;gap:10px;align-items:flex-start;font-weight:400!important;margin:6px 0 12px}
.nvl-check input{width:22px;height:22px;margin-top:4px;flex:none}
.nvl-form .nvl-cta{justify-self:start}
.nvl-form-msg{margin:0;font-weight:600;color:#8a1f1f}

/* footer */
.nvl-foot{background:var(--nvl-navy);color:#d5e0e7;font-size:.95rem}
.nvl-foot-in{max-width:1160px;margin:0 auto;padding:44px var(--nvl-gut) 110px;display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:24px 40px}
.nvl-foot a{color:#ffffff}
.nvl-foot-brand .nvl-wm{font-size:1.5rem}
.nvl-foot-brand p{margin-top:.8em}
.nvl-foot-links{list-style:none;margin:0;padding:0;display:grid;gap:0}
.nvl-foot-links a,.nvl-linkbtn{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.nvl-foot-links a:hover{text-decoration:underline}
.nvl-linkbtn{font:inherit;color:var(--nvl-gold-l);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.nvl-foot-aff,.nvl-foot-disc,.nvl-foot-small{grid-column:1/-1;margin:0;max-width:90ch}
.nvl-foot-disc{border-top:1px solid rgba(255,255,255,.15);padding-top:16px}
.nvl-foot-small{font-size:.85rem;color:#b9c8d2}

/* cookie bar */
.nvl-ck{position:fixed;left:12px;right:12px;bottom:12px;z-index:40;max-width:980px;margin:0 auto;background:#ffffff;color:var(--nvl-ink);border:1px solid var(--nvl-line);border-radius:12px;box-shadow:0 12px 34px -12px rgba(11,29,46,.45);padding:10px 14px;display:flex;align-items:center;gap:10px 16px;font-size:.88rem;line-height:1.45}
.nvl-ck[hidden]{display:none}
.nvl-ck p{margin:0;flex:1 1 280px}
.nvl-ck-btns{display:flex;gap:6px;flex-wrap:wrap}
.nvl-btn-s{font:inherit;font-size:.86rem;font-weight:700;min-height:44px;padding:0 12px;border-radius:8px;border:1.5px solid var(--nvl-cta);background:var(--nvl-cta);color:#fff;cursor:pointer;white-space:nowrap}
.nvl-btn-ghost{background:#fff;color:#0b5d56}
.nvl-dlg{border:0;border-radius:14px;padding:22px;max-width:min(520px,calc(100vw - 24px));width:100%;color:var(--nvl-ink);font-size:.95rem}
.nvl-dlg::backdrop{background:rgba(11,29,46,.55)}
.nvl-dlg h2{font-size:1.4rem}
.nvl-sw{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--nvl-line)}
.nvl-sw input{width:22px;height:22px;margin-top:3px;flex:none}
.nvl-sw strong{display:block}
.nvl-gpc{background:#f0eefc;border-radius:8px;padding:8px 12px}
.nvl-dlg-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}

/* responsive */
@media (max-width:960px){
  .nvl-row-grid{grid-template-columns:110px minmax(0,1fr)}
  .nvl-row-act{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:center}
  .nvl-cta-note{text-align:left}
  .nvl-foot-in{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .nvl-hero-in{grid-template-columns:minmax(0,1fr);padding:40px var(--nvl-gut) 48px;gap:24px}
  .nvl-hero-medal{justify-content:flex-start}
  .nvl-medal{max-width:200px}
  .nvl-wrap{padding-top:44px}
  .nvl-row-grid{grid-template-columns:minmax(0,1fr);padding:16px 16px 4px;gap:14px}
  .nvl-mono{aspect-ratio:auto;flex-direction:row;gap:12px;justify-content:flex-start;padding:12px 14px}
  .nvl-mono span{font-size:1.8rem}
  .nvl-mono small{margin-top:0}
  .nvl-ribbon{margin:12px 16px 0;max-width:calc(100% - 32px)}
  .nvl-more{margin:0 16px 16px}
  .nvl-row-act{flex-direction:column;align-items:stretch}
  .nvl-cta-note{text-align:center}
  .nvl-flab{min-width:0;width:100%}
  /* tables become cards */
  .nvl-cmp-wrap{overflow:visible;background:none;border:0}
  .nvl-cmp,.nvl-cmp-sm{min-width:0}
  .nvl-cmp thead{display:none}
  .nvl-cmp,.nvl-cmp tbody,.nvl-cmp tr,.nvl-cmp th,.nvl-cmp td,.nvl-cmp caption{display:block;width:100%}
  .nvl-cmp caption{padding:0 0 12px}
  .nvl-cmp tr{background:var(--nvl-card);border:1px solid var(--nvl-line);border-radius:12px;margin-bottom:12px;overflow:hidden}
  .nvl-cmp th,.nvl-cmp td{border-top:1px solid var(--nvl-line);padding:10px 14px}
  .nvl-cmp tbody th{border-top:0;background:var(--nvl-navy);color:#fff}
  .nvl-cmp tbody th a{color:#fff}
  .nvl-cmp td::before,.nvl-cmp-sm tbody th::before{content:attr(data-label);display:block;font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--nvl-muted)}
  .nvl-cmp-sm tbody th::before{color:var(--nvl-gold-l)}
  .nvl-foot-in{grid-template-columns:minmax(0,1fr);padding-bottom:150px}
  .nvl-ck{left:8px;right:8px;bottom:8px;padding:8px 10px;font-size:.82rem;flex-wrap:wrap}
  .nvl-ck p{flex-basis:100%}
  .nvl-ck-btns{width:100%;flex-wrap:nowrap}
  .nvl-ck-btns .nvl-btn-s{flex:1 1 0;padding:0 6px;font-size:.78rem;min-width:0;white-space:normal;line-height:1.15}
  .nvl-band-in{padding:36px var(--nvl-gut) 36px}
}
@media (max-width:360px){
  .nvl-wm{font-size:1.4rem}
  .nvl-nav a{padding:0 7px;font-size:.9rem}
  .nvl-cta{padding:0 14px;font-size:.95rem}
  h3{font-size:1.35rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
