/* ============================================================
   Nuvessa Essentials — base: tokens, reset, layout, typography,
   buttons, forms, header, footer, hero.
   ============================================================ */
:root {
  /* brand */
  --teal-900:#0a5c54; --teal-800:#0b6a60; --teal-700:#0d7a6f; --teal-600:#0f8b7d;
  --teal-500:#14a08f; --teal-100:#cfeae5; --teal-50:#e9f5f3;
  --amber-600:#c67f2a; --amber-500:#e0973f; --amber-100:#f8e6cd;
  /* neutrals */
  --ink:#1f2523; --ink-soft:#48534f; --ink-muted:#8a938f;
  --bg:#f7f9f8; --bg-alt:#eef3f1; --surface:#ffffff;
  --border:#e0e7e4; --border-soft:#eef2f0;
  --success:#2f8f6b; --warn:#c67f2a; --danger:#c0483e;
  /* semantic */
  --clr-primary:var(--teal-700); --clr-primary-dark:var(--teal-900); --clr-accent:var(--amber-500);
  --clr-text:var(--ink); --clr-text-soft:var(--ink-soft); --clr-text-muted:var(--ink-muted);
  --clr-bg:var(--bg); --clr-bg-alt:var(--bg-alt); --clr-surface:var(--surface);
  --clr-border:var(--border); --clr-border-soft:var(--border-soft);
  /* type */
  --font-display:'Poppins',system-ui,sans-serif; --font-body:'Inter',system-ui,sans-serif;
  --fs-xs:.75rem; --fs-sm:.875rem; --fs-md:1rem; --fs-lg:1.125rem; --fs-xl:1.35rem; --fs-2xl:1.75rem; --fs-3xl:2.4rem;
  /* space */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:72px;
  --radius-sm:8px; --radius:12px; --radius-lg:20px; --radius-pill:999px;
  --shadow:0 1px 3px rgba(16,40,36,.06),0 6px 20px rgba(16,40,36,.06);
  --shadow-lg:0 12px 40px rgba(16,40,36,.14);
  --container:1180px;
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;font-family:var(--font-body);color:var(--clr-text);background:var(--clr-bg);line-height:1.6;font-size:var(--fs-md);-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.2;margin:0 0 .5em;color:var(--clr-text);}
h1{font-size:var(--fs-3xl);letter-spacing:-.02em;} h2{font-size:var(--fs-2xl);} h3{font-size:var(--fs-xl);}
p{margin:0 0 1em;} a{color:var(--clr-primary);text-decoration:none;} a:hover{text-decoration:underline;}
img{max-width:100%;display:block;} ul{margin:0;padding:0;}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--sp-5);}
.container-narrow{max-width:780px;margin:0 auto;padding:0 var(--sp-5);}
.text-muted{color:var(--clr-text-muted);} .text-soft{color:var(--clr-text-soft);}
.hidden{display:none !important;} .center{text-align:center;}
.stack{display:flex;flex-direction:column;} .grid{display:grid;} .req{color:var(--danger);}
.eyebrow{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.14em;font-weight:600;color:var(--clr-primary);}
section.container{padding-top:var(--sp-6);padding-bottom:var(--sp-6);}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-weight:600;font-size:var(--fs-sm);
  padding:11px 20px;border-radius:var(--radius-pill);border:1.5px solid transparent;cursor:pointer;transition:.16s ease;text-decoration:none;line-height:1;}
.btn:hover{text-decoration:none;transform:translateY(-1px);}
.btn:active{transform:translateY(0);} .btn:disabled{opacity:.55;cursor:not-allowed;transform:none;}
.btn-primary{background:var(--clr-primary);color:#fff;} .btn-primary:hover{background:var(--clr-primary-dark);}
.btn-outline{background:transparent;color:var(--clr-primary);border-color:var(--clr-primary);} .btn-outline:hover{background:var(--teal-50);}
.btn-ghost{background:transparent;color:var(--clr-text-soft);} .btn-ghost:hover{background:var(--clr-bg-alt);}
.btn-accent{background:var(--clr-accent);color:#3a2708;} .btn-accent:hover{background:var(--amber-600);color:#fff;}
.btn-lg{padding:14px 26px;font-size:var(--fs-md);} .btn-sm{padding:8px 14px;font-size:var(--fs-xs);}
.btn-block{width:100%;}
.link-btn{background:none;border:0;padding:0;color:var(--clr-text-soft);font:inherit;cursor:pointer;}
.link-btn:hover{color:var(--clr-primary);text-decoration:underline;}

/* ---------- Forms ---------- */
.form-group{margin-bottom:var(--sp-4);} .form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);}
.form-label{display:block;font-size:var(--fs-sm);font-weight:600;margin-bottom:6px;color:var(--clr-text);}
.form-control{width:100%;padding:11px 14px;border:1.5px solid var(--clr-border);border-radius:var(--radius-sm);font:inherit;color:var(--clr-text);background:var(--clr-surface);transition:.15s;}
.form-control:focus{outline:none;border-color:var(--clr-primary);box-shadow:0 0 0 3px var(--teal-50);}
.form-control.is-invalid{border-color:var(--danger);}
.form-hint{font-size:var(--fs-xs);color:var(--clr-text-muted);margin-top:5px;}
.form-error{font-size:var(--fs-xs);color:var(--danger);margin-top:5px;min-height:1em;}
textarea.form-control{min-height:130px;resize:vertical;}
.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:var(--fs-sm);margin-bottom:var(--sp-4);}
.alert-danger{background:#fceceb;color:#8f342c;border:1px solid #f3cfcb;}
.alert.is-success{background:#e6f4ee;color:#256b4f;} .alert.is-warning{background:#fbf0dd;color:#8a5a17;} .alert.is-danger{background:#fceceb;color:#8f342c;}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--clr-border-soft);}
.site-header .container{display:flex;align-items:center;justify-content:flex-start;gap:var(--sp-5);height:84px;}
.brand{display:flex;align-items:center;flex-shrink:0;font-size:0;line-height:0;text-decoration:none;}
.brand:hover{text-decoration:none;}
.brand img{height:70px;width:auto;display:block;max-width:none;object-fit:initial;}
@media (max-width:600px){.site-header .container{height:64px;}.brand img{height:50px;}}
.site-header .container{display:flex;align-items:center;justify-content:flex-start;gap:var(--sp-5);height:84px;}
@media (max-width:600px){.site-header .container{display:flex;align-items:center;justify-content:flex-start;gap:var(--sp-5);height:84px;}}
.brand{display:flex;align-items:center;flex-shrink:0;font-size:0;line-height:0;text-decoration:none;}
@media (max-width:600px){} .brand span{color:var(--clr-primary);}
.nav-main{display:flex;gap:var(--sp-5);margin-left:auto;}
.nav-main a{color:var(--clr-text-soft);font-weight:500;font-size:var(--fs-sm);padding:6px 2px;border-bottom:2px solid transparent;}
.nav-main a:hover,.nav-main a.is-active{color:var(--clr-primary);text-decoration:none;border-bottom-color:var(--clr-primary);}
.nav-actions{display:flex;align-items:center;gap:var(--sp-3);}
.cart-btn{display:inline-flex;align-items:center;gap:7px;color:var(--clr-text);font-weight:600;font-size:var(--fs-sm);padding:8px 14px;border-radius:var(--radius-pill);background:var(--clr-bg-alt);}
.cart-btn:hover{text-decoration:none;background:var(--teal-50);color:var(--clr-primary);}
.cart-count{min-width:20px;height:20px;padding:0 5px;border-radius:var(--radius-pill);background:var(--clr-primary);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;color:var(--clr-text);padding:6px;}

/* ---------- Hero ---------- */
.hero{background:linear-gradient(160deg,var(--teal-50),#fff 70%);border-bottom:1px solid var(--clr-border-soft);}
.hero .container{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-7);align-items:center;padding:var(--sp-8) var(--sp-5);}
.hero h1{margin-bottom:var(--sp-3);} .hero p{font-size:var(--fs-lg);color:var(--clr-text-soft);max-width:46ch;margin-bottom:var(--sp-5);}
.hero-art{aspect-ratio:4/3;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--teal-100),var(--teal-50));display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);overflow:hidden;}
.hero-art img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-cta{display:flex;gap:var(--sp-3);flex-wrap:wrap;}

/* ---------- Breadcrumbs / section head ---------- */
.breadcrumbs{font-size:var(--fs-xs);color:var(--clr-text-muted);margin-bottom:var(--sp-4);}
.breadcrumbs a{color:var(--clr-text-muted);} .breadcrumbs .sep{margin:0 8px;} .breadcrumbs .current{color:var(--clr-text);}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap;}

/* ---------- Footer ---------- */
.site-footer{background:var(--teal-900);color:#cfe6e2;margin-top:var(--sp-8);}
.site-footer a{color:#cfe6e2;} .site-footer a:hover{color:#fff;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:var(--sp-6);padding:var(--sp-8) 0 var(--sp-6);}
.footer-brand{font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:#fff;margin-bottom:var(--sp-3);}
.footer-brand span{color:var(--teal-100);}
.footer-col h4{color:#fff;font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--sp-3);}
.footer-col ul li{list-style:none;margin-bottom:8px;font-size:var(--fs-sm);}
.footer-payments{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:16px 0;border-top:1px solid rgba(255,255,255,.12);}
.footer-payments-label{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:#9fc7c0;font-weight:600;}
.card-brand-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.card-brand{display:inline-flex;align-items:center;padding:4px 10px;border:1px solid rgba(255,255,255,.22);border-radius:6px;font-size:11px;font-weight:600;letter-spacing:.03em;color:#e6f3f0;text-transform:uppercase;}
.footer-compliance{font-size:var(--fs-xs);color:#9fc7c0;padding:12px 0;line-height:1.6;}
.footer-bottom{display:flex;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;padding:16px 0 28px;border-top:1px solid rgba(255,255,255,.12);font-size:var(--fs-xs);color:#9fc7c0;}
.footer-bottom-links{display:flex;gap:10px;flex-wrap:wrap;align-items:center;} .footer-bottom-links .dot{opacity:.5;}
.site-footer address{font-style:normal;font-size:var(--fs-sm);line-height:1.7;color:#bcdcd6;margin-top:var(--sp-3);}
.skip-link{position:absolute;left:-9999px;}

/* === NV-LOGO-OVERRIDE START === */
.site-header .container {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  height: 96px !important;
  gap: 24px !important;
}
.site-header .brand {
  display: flex !important;
  align-items: center !important;
  flex-shrink: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
}
.site-header .brand img {
  height: 90px !important;
  width: auto !important;
  max-width: none !important;
  max-height: none !important;
  display: block !important;
  object-fit: contain !important;
  transform: scale(1.4) !important;
  transform-origin: left center !important;
}
.site-header .nav-main { margin-left: auto !important; }
@media (max-width: 700px) {
  .site-header .container { height: 72px !important; }
  .site-header .brand img { height: 60px !important; transform: scale(1.3) !important; }
}
/* === NV-LOGO-OVERRIDE END === */