/* ==========================================================================
   KiwiHost NZ — site stylesheet
   Loaded after Bootstrap 5.3 so these rules win on shared selectors.
   ========================================================================== */

/* ---------- self-hosted webfonts (SIL OFL, see /assets/fonts/*.LICENSE.txt) ---------- */
/* inter-latin-ext-400-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('/assets/fonts/inter-latin-ext-400-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* inter-latin-400-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('/assets/fonts/inter-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* inter-latin-ext-500-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url('/assets/fonts/inter-latin-ext-500-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* inter-latin-500-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url('/assets/fonts/inter-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* inter-latin-ext-600-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url('/assets/fonts/inter-latin-ext-600-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* inter-latin-600-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url('/assets/fonts/inter-latin-600-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* plus-jakarta-sans-latin-ext-700-normal */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('/assets/fonts/plus-jakarta-sans-latin-ext-700-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* plus-jakarta-sans-latin-700-normal */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('/assets/fonts/plus-jakarta-sans-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* plus-jakarta-sans-latin-ext-800-normal */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url('/assets/fonts/plus-jakarta-sans-latin-ext-800-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* plus-jakarta-sans-latin-800-normal */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url('/assets/fonts/plus-jakarta-sans-latin-800-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* jetbrains-mono-latin-ext-400-normal */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('/assets/fonts/jetbrains-mono-latin-ext-400-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* jetbrains-mono-latin-400-normal */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('/assets/fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* jetbrains-mono-latin-ext-700-normal */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('/assets/fonts/jetbrains-mono-latin-ext-700-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* jetbrains-mono-latin-700-normal */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('/assets/fonts/jetbrains-mono-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --ink:#132A40;          /* logo navy */
  --ink-deep:#0C1D2E;
  --green:#6CB33F;        /* logo green */
  --green-deep:#4E8A2B;
  --paper:#F7F8F5;
  --band:#E7EEF3;         /* light band so the transparent logo stays visible */
  --mist:#C9D4DC;
  --mist-dim:#8CA0AF;
  --line:rgba(19,42,64,.14);
  --radius:14px;

  /* text tones (were hard-coded hex values throughout) */
  --body:#47596A;
  --body-soft:#3D5062;
  --muted:#75828E;
}

*{-webkit-font-smoothing:antialiased}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:var(--paper);
  color:var(--ink);
  font-size:1.02rem;
  line-height:1.65;
}
h1,h2,h3,.display-face{font-family:'Plus Jakarta Sans',sans-serif}
.mono{font-family:'JetBrains Mono',monospace}

/* ---------- nav ---------- */
.kh-nav{
  background:var(--paper);
  border-bottom:1px solid var(--line);
  padding:.65rem 0;
}
.kh-brand{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:800;font-size:1.3rem;letter-spacing:-.02em;
  color:var(--ink);text-decoration:none;
  display:flex;align-items:center;gap:.6rem;
}
.kh-brand img{width:42px;height:42px}
.kh-brand span.nz{color:var(--green)}
.kh-nav .nav-link{
  color:var(--ink);font-weight:500;font-size:.95rem;
  padding:.4rem .9rem!important;border-radius:999px;
}
.kh-nav .nav-link:hover{background:rgba(108,179,63,.12);color:var(--green-deep)}
.btn-green{
  background:var(--green);color:#fff;
  font-weight:600;border:none;border-radius:999px;
  padding:.55rem 1.35rem;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn-green:hover{background:var(--green-deep);color:#fff;transform:translateY(-1px);box-shadow:0 6px 16px rgba(108,179,63,.35)}
.btn-outline-ink{
  border:1.5px solid var(--ink);color:var(--ink);
  font-weight:600;border-radius:999px;padding:.55rem 1.35rem;background:transparent;
}
.btn-outline-ink:hover{background:var(--ink);color:var(--paper)}

/* ---------- hero ---------- */
.hero{
  background:linear-gradient(180deg, var(--band) 0%, var(--paper) 100%);
  color:var(--ink);
  position:relative;overflow:hidden;
  padding:5rem 0 5.5rem;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(900px 500px at 85% -10%, rgba(108,179,63,.16), transparent 60%),
    radial-gradient(600px 400px at -5% 110%, rgba(108,179,63,.10), transparent 60%);
  pointer-events:none;
}
.hero .eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--green-deep);
}
.hero h1{
  font-weight:800;letter-spacing:-.03em;
  font-size:clamp(2.3rem,5vw,3.6rem);
  line-height:1.08;
}
.hero h1 em{font-style:normal;color:var(--green-deep)}
.hero .lede{color:var(--body-soft);max-width:33rem;font-size:1.12rem}
.hero .price-note{color:var(--body-soft);font-size:.92rem}
.hero .price-note .mono{color:var(--ink)}
.hero-logo{
  width:min(340px,70%);height:auto;display:block;margin:0 auto 1.5rem;
  filter:drop-shadow(0 14px 35px rgba(19,42,64,.25));
}

/* status card */
.status-card{
  background:var(--ink-deep);
  border:1px solid rgba(201,212,220,.16);
  border-radius:var(--radius);
  box-shadow:0 24px 60px rgba(0,0,0,.45);
  font-family:'JetBrains Mono',monospace;
  font-size:.83rem;
  overflow:hidden;
}
.status-card .bar{
  display:flex;align-items:center;justify-content:space-between;
  padding:.7rem 1.1rem;
  border-bottom:1px solid rgba(201,212,220,.12);
  color:var(--mist-dim);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
}
.status-card .bar .live{display:inline-flex;align-items:center;gap:.45rem;color:#8BD65E}
.status-card .bar .live::before{
  content:"";width:7px;height:7px;border-radius:50%;background:var(--green);
  animation:pulse 2s infinite;
}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(108,179,63,.5)}50%{box-shadow:0 0 0 6px rgba(108,179,63,0)}}
.status-card table{width:100%;margin:0}
.status-card td{
  padding:.7rem 1.1rem;border-bottom:1px solid rgba(201,212,220,.07);
  color:var(--mist);vertical-align:middle;
}
.status-card td:last-child{text-align:right;color:#fff}
.status-card tr:last-child td{border-bottom:none}
.status-card .ok{color:#8BD65E}

/* ---------- section scaffolding ---------- */
.section{padding:5rem 0}
.section.flush-top{padding-top:0}
.kicker{
  font-family:'JetBrains Mono',monospace;
  font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--green-deep);
}
.section-head h2,
.section-title{
  font-weight:800;letter-spacing:-.02em;
  font-size:clamp(1.8rem,3.4vw,2.4rem);
}
.section-head p{color:var(--body);max-width:40rem}

/* ---------- managed / why cards ---------- */
.why-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.75rem;height:100%;
  transition:transform .18s ease, box-shadow .18s ease;
}
.why-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(19,42,64,.10)}
.why-card .glyph{
  width:44px;height:44px;border-radius:12px;
  background:rgba(108,179,63,.14);color:var(--green-deep);
  display:flex;align-items:center;justify-content:center;
  font-family:'JetBrains Mono',monospace;font-weight:700;font-size:.95rem;
  margin-bottom:1rem;
}
.why-card h3{font-size:1.12rem;font-weight:700}
.why-card p{color:var(--body);font-size:.95rem;margin:0}

/* ---------- sovereignty band ---------- */
.sovereign{
  background:var(--band);color:var(--ink);
  position:relative;overflow:hidden;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.sovereign::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(700px 420px at 100% 0%, rgba(108,179,63,.14), transparent 60%);
  pointer-events:none;
}
.sovereign p{color:var(--body-soft);max-width:44rem}
.sovereign h2{color:var(--ink)}
.sovereign .fact{
  border-left:3px solid var(--green);
  padding:.35rem 0 .35rem 1.1rem;margin-top:1.4rem;
}
.sovereign .fact b{color:var(--ink);display:block;font-family:'Plus Jakarta Sans',sans-serif}
.sovereign .fact span{color:var(--body-soft);font-size:.95rem}

/* ---------- pricing ---------- */
.pricing{background:#ECEFE8;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.plan{
  background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:2rem 1.75rem;height:100%;
  display:flex;flex-direction:column;
}
.plan.feature{
  background:var(--ink);color:var(--paper);
  border-color:var(--ink);
  box-shadow:0 22px 55px rgba(19,42,64,.30);
}
.plan .tier{
  font-family:'JetBrains Mono',monospace;font-size:.72rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--green-deep);margin:0;
}
.plan.feature .tier{color:var(--green)}
.plan .price{
  font-family:'JetBrains Mono',monospace;font-weight:700;
  font-size:2.3rem;letter-spacing:-.03em;margin:.4rem 0 .1rem;
}
.plan .price small{font-size:.85rem;font-weight:400;letter-spacing:0}
.plan .gst{font-size:.78rem;color:var(--muted);font-family:'JetBrains Mono',monospace}
.plan.feature .gst{color:var(--mist-dim)}
.plan ul{list-style:none;padding:0;margin:1.4rem 0 1.6rem;flex-grow:1}
.plan li{
  padding:.45rem 0 .45rem 1.6rem;position:relative;font-size:.95rem;
  border-bottom:1px dashed var(--line);
}
.plan.feature li{border-bottom-color:rgba(201,212,220,.14)}
.plan li:last-child{border-bottom:none}
.plan li::before{content:"✓";position:absolute;left:0;color:var(--green-deep);font-weight:700}
.plan.feature li::before{color:var(--green)}
.plan .btn{width:100%}
.badge-popular{
  background:var(--green);color:#fff;
  font-family:'JetBrains Mono',monospace;font-size:.68rem;
  letter-spacing:.1em;text-transform:uppercase;
  border-radius:999px;padding:.3rem .8rem;font-weight:700;
}
.pricing-note{font-size:.8rem;color:var(--muted)}

/* ---------- heritage ---------- */
.heritage{
  background:#fff;color:var(--ink);
  position:relative;overflow:hidden;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.heritage::after{
  content:"2014";
  position:absolute;right:-1rem;bottom:-3.5rem;
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;
  font-size:clamp(8rem,20vw,16rem);line-height:1;
  color:rgba(108,179,63,.10);pointer-events:none;user-select:none;
}
.heritage h2{color:var(--ink)}
.heritage p{color:var(--body-soft);max-width:44rem}
.heritage a{color:var(--green-deep);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(108,179,63,.4)}
.heritage a:hover{border-bottom-color:var(--green-deep)}
.timeline{
  font-family:'JetBrains Mono',monospace;font-size:.83rem;
  display:flex;flex-wrap:wrap;gap:0 2.5rem;margin-top:2rem;
}
.timeline .t{
  padding:.8rem 0;border-top:2px solid var(--line);
  min-width:180px;flex:1;
}
.timeline .t b{display:block;color:var(--green-deep);font-size:1rem}
.timeline .t span{color:var(--body-soft)}

/* ---------- FAQ ---------- */
.faq .accordion-item{
  background:#fff;border:1px solid var(--line);
  border-radius:var(--radius)!important;overflow:hidden;
  margin-bottom:.9rem;
}
.faq .accordion-button{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;
  font-size:1.02rem;color:var(--ink);background:#fff;
  padding:1.1rem 1.4rem;box-shadow:none;
  text-align:left;
}
.faq .accordion-button:not(.collapsed){
  color:var(--green-deep);background:rgba(108,179,63,.07);
}
.faq .accordion-button:focus{box-shadow:0 0 0 3px rgba(108,179,63,.35)}
.faq .accordion-body{color:var(--body);font-size:.97rem;padding:1.1rem 1.4rem}
.faq .accordion-body p{margin-bottom:.9rem}
.faq .accordion-body p:last-child{margin-bottom:0}
.faq .accordion-body ul{margin:0 0 .9rem;padding-left:1.15rem}
.faq .accordion-body li{margin-bottom:.3rem}
.faq .accordion-body li:last-child{margin-bottom:0}
.faq .accordion-body strong{color:var(--ink);font-weight:600}

/* ---------- support ---------- */
.support-panel{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:2.25rem;
}
.support-panel .mono-line{
  font-family:'JetBrains Mono',monospace;font-size:.85rem;color:var(--green-deep);
}
.support-panel .note{font-size:.9rem}

/* ---------- footer ---------- */
footer{
  background:var(--band);color:var(--body-soft);
  border-top:1px solid var(--line);
  padding:3rem 0 2rem;font-size:.9rem;
}
footer a{color:var(--ink);text-decoration:none}
footer a:hover{color:var(--green-deep)}
footer .kh-brand{color:var(--ink)}
/* decorative brand mark — a background image so it needs no alt text */
.kh-mark{
  width:42px;height:42px;flex:0 0 42px;
  background:url('/favicon-96x96.png') center/contain no-repeat;
}
footer .col-heading{
  font-family:'JetBrains Mono',monospace;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);
}
footer .legal{font-family:'JetBrains Mono',monospace;font-size:.75rem;margin-top:2rem;border-top:1px solid var(--line);padding-top:1.5rem}

:focus-visible{outline:3px solid var(--green);outline-offset:2px}
