/* =========================================================
   E-Tech Consultancy — Forest green and cream theme
   One stylesheet for every page.
   ========================================================= */

/* Inter (self-hosted variable font, weights 100-900) */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/inter-latin-var.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 {
  --forest: #12372A;
  --forest-2: #1B4636;
  --forest-3: #0E2D22;
  --forest-line: #2E5A49;
  --green: #2F7D5B;
  --green-dark: #24684B;
  --gold: #D9A441;
  --gold-hover: #E5B65A;
  --gold-text: #8A6418;
  --cream: #FBF8F1;
  --sand: #F1EBDD;
  --sand-2: #E6DDCB;
  --card: #FFFCF5;
  --mint: #E3EDE3;
  --line: #E4DBC8;
  --ink: #2B3A31;
  --muted: #55615A;
  --on-dark: #C9D3CB;
  --on-dark-strong: #E9E2D0;

  --font-display: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  --radius-sm: 10px;
  --radius: 18px;
  --radius-lg: 24px;
  --container: 1640px;
  --gutter: 24px;
  --shadow: 0 1px 2px rgba(18, 55, 42, .06), 0 8px 24px rgba(18, 55, 42, .06);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--green); text-underline-offset: 3px; }
a:hover { color: var(--forest); }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0 0 1em; padding-left: 1.25em; }
li { margin-bottom: .35em; }
strong { font-weight: 600; color: var(--forest); }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 500;
  color: var(--forest);
  line-height: 1.15;
  margin: 0 0 .5em;
  letter-spacing: -.01em;
  text-transform: capitalize;
}
h1 { font-size: clamp(2.25rem, 4.6vw, 3.6rem); line-height: 1.08; }
h2 { font-size: clamp(1.75rem, 3vw, 2.6rem); }
h3 { font-size: 1.3rem; }
h4 { font-size: 1.1rem; }

:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; border-radius: 4px; }

.skip-link {
  position: absolute; left: 16px; top: -60px; z-index: 100;
  background: var(--gold); color: var(--forest); padding: 10px 16px;
  border-radius: var(--radius-sm); font-weight: 600; text-decoration: none;
}
.skip-link:focus { top: 12px; }

.container { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }

.eyebrow {
  display: inline-block;
  font-size: .8rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: var(--gold-text); margin-bottom: .75rem;
}
.on-dark .eyebrow, .eyebrow--light { color: var(--gold); }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 12px 24px;
  font: 600 .98rem/1.2 var(--font-body);
  border-radius: var(--radius-sm); border: 1.5px solid transparent;
  text-decoration: none; cursor: pointer;
  transition: background-color .2s, color .2s, border-color .2s, transform .2s;
}
.btn:hover { transform: translateY(-1px); }
.btn-gold { background: var(--gold); color: var(--forest); }
.btn-gold:hover { background: var(--gold-hover); color: var(--forest); }
.btn-forest { background: var(--forest); color: var(--cream); }
.btn-forest:hover { background: var(--forest-2); color: var(--cream); }
.btn-green { background: var(--green); color: #fff; }
.btn-green:hover { background: var(--green-dark); color: #fff; }
.btn-outline { border-color: var(--forest); color: var(--forest); background: transparent; }
.btn-outline:hover { background: var(--forest); color: var(--cream); }
.btn-outline-light { border-color: var(--cream); color: var(--cream); background: transparent; }
.btn-outline-light:hover { background: var(--cream); color: var(--forest); }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; }
.link-arrow { font-weight: 600; text-decoration: none; display: inline-flex; gap: 6px; align-items: center; }
.link-arrow::after { content: "→"; transition: transform .2s; }
.link-arrow:hover::after { transform: translateX(3px); }

/* ---------- Top bar ---------- */
.topbar { background: var(--forest-3); font-size: .85rem; }
.topbar .container {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
  gap: 8px 16px; padding-top: 8px; padding-bottom: 8px;
}
.topbar nav { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.topbar a { color: var(--on-dark-strong); text-decoration: none; }
.topbar a:hover { color: var(--gold); }
.topbar .topbar-offers a { color: var(--gold); font-weight: 500; }

/* ---------- Header and navigation ---------- */
.site-header {
  background: var(--forest);
  position: relative; z-index: 2;
  transition: box-shadow .2s;
}
.site-header.is-scrolled { box-shadow: 0 6px 24px rgba(0, 0, 0, .18); }
.header-inner {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 76px;
}
.brand { display: flex; align-items: center; flex-shrink: 0; }
.brand img { height: 44px; width: auto; }

.main-nav > ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 2px; }
.main-nav li { margin: 0; position: relative; }
.nav-link {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 12px; border-radius: 8px;
  font: 500 .95rem/1.2 var(--font-body);
  color: var(--cream); text-decoration: none; background: none; border: 0; cursor: pointer;
}
.nav-link:hover, .nav-link[aria-expanded="true"] { color: var(--gold); }
.nav-link.is-active { color: var(--gold); }
.nav-caret { width: 10px; height: 10px; transition: transform .2s; }
.nav-link[aria-expanded="true"] .nav-caret { transform: rotate(180deg); }

.dropdown {
  position: absolute; top: calc(100% + 8px); left: 0; min-width: 260px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: 0 18px 40px rgba(18, 55, 42, .18);
  padding: 10px; list-style: none; margin: 0;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .18s, transform .18s, visibility .18s;
}
.dropdown a {
  display: block; padding: 9px 12px; border-radius: 8px;
  color: var(--ink); text-decoration: none; font-size: .93rem;
}
.dropdown a:hover, .dropdown a.is-active { background: var(--sand); color: var(--forest); }
.has-dropdown.is-open > .dropdown { opacity: 1; visibility: visible; transform: none; }

.mega {
  width: min(980px, calc(100vw - 48px));
  left: 50%; transform: translate(-50%, 6px);
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 16px; padding: 20px;
}
.has-dropdown.is-open > .mega { transform: translate(-50%, 0); }
.mega--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(940px, calc(100vw - 48px)); max-height: calc(100vh - 140px); overflow-y: auto; }
.mega--3 a { padding-top: 4px; padding-bottom: 4px; font-size: .86rem; }
.mega-col h3 {
  font: 600 .78rem/1.3 var(--font-body); letter-spacing: .1em; text-transform: uppercase;
  color: var(--gold-text); margin: 4px 12px 6px;
}
.mega-col h3 a { color: inherit; padding: 0; display: inline; }
.mega-col h3 a:hover { background: none; text-decoration: underline; }
.mega-col ul { list-style: none; margin: 0 0 10px; padding: 0; }
.mega-col li { margin: 0; }
.mega-col a { padding: 6px 12px; font-size: .9rem; }

.header-cta { display: flex; align-items: center; gap: 10px; }
.nav-toggle {
  display: none; width: 46px; height: 46px; border-radius: var(--radius-sm);
  background: transparent; border: 1.5px solid var(--forest-line); color: var(--cream); cursor: pointer;
  align-items: center; justify-content: center;
}
.nav-toggle svg { width: 22px; height: 22px; }

@media (min-width: 1081px) {
  .has-dropdown:hover > .dropdown { opacity: 1; visibility: visible; transform: none; }
  .has-dropdown:hover > .mega { transform: translate(-50%, 0); }
  .has-dropdown:hover > .nav-link { color: var(--gold); }
  .mobile-only { display: none !important; }
}

@media (max-width: 1080px) {
  .nav-toggle { display: inline-flex; }
  .header-cta .btn { display: none; }
  .main-nav {
    position: fixed; inset: 0 0 0 auto; width: min(380px, 100%);
    background: var(--forest); padding: 88px 20px 32px; overflow-y: auto;
    transform: translateX(100%); visibility: hidden;
    transition: transform .25s ease, visibility .25s;
    z-index: 60;
  }
  .main-nav.is-open { transform: none; visibility: visible; box-shadow: -20px 0 40px rgba(0, 0, 0, .25); }
  .main-nav > ul { flex-direction: column; align-items: stretch; gap: 0; }
  .main-nav > ul > li { border-bottom: 1px solid var(--forest-line); }
  .nav-link { width: 100%; justify-content: space-between; padding: 14px 4px; font-size: 1.05rem; }
  .dropdown, .mega {
    position: static; transform: none; opacity: 1; visibility: visible; display: none;
    width: auto; min-width: 0; box-shadow: none; border: 0; background: var(--forest-2);
    border-radius: var(--radius-sm); margin: 0 0 12px; padding: 8px;
  }
  .has-dropdown.is-open > .dropdown { display: block; transform: none; }
  .has-dropdown.is-open > .mega { display: block; transform: none; }
  .dropdown a { color: var(--on-dark-strong); }
  .dropdown a:hover, .dropdown a.is-active { background: var(--forest-line); color: var(--gold); }
  .mega-col h3 { color: var(--gold); }
  .nav-close {
    position: absolute; top: 18px; right: 18px; width: 46px; height: 46px;
    border-radius: var(--radius-sm); border: 1.5px solid var(--forest-line);
    background: none; color: var(--cream); cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
  }
  .nav-close svg { width: 20px; height: 20px; }
  .nav-backdrop {
    position: fixed; inset: 0; background: rgba(8, 25, 19, .55); z-index: 49;
    opacity: 0; visibility: hidden; transition: opacity .2s;
  }
  .nav-backdrop.is-open { opacity: 1; visibility: visible; }
  body.nav-open { overflow: hidden; }
}
@media (min-width: 1081px) { .nav-close, .nav-backdrop { display: none; } }

/* ---------- Brand stripe ---------- */
.stripe { display: flex; height: 8px; }
.stripe span { flex: 1; }
.stripe span:nth-child(1) { background: var(--green); }
.stripe span:nth-child(2) { background: var(--gold); }
.stripe span:nth-child(3) { background: var(--sand-2); }

/* ---------- Home hero ---------- */
.hero { background: var(--forest); color: var(--on-dark); }
.hero .container {
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: 48px; padding-top: 48px; padding-bottom: 88px; align-items: stretch;
}
.hero h1 { color: var(--cream); }
.hero h1 em { color: var(--gold); font-style: italic; }
.hero-lead { font-size: 1.1rem; max-width: none; color: var(--on-dark); margin-bottom: 1.5rem; }
.hero-checks { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 0 0 1.75rem; }
.hero-checks li { display: flex; gap: 8px; align-items: center; color: var(--cream); font-weight: 500; font-size: .95rem; margin: 0; }
.hero-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 2rem; }
.stat-card { background: var(--forest-2); border-radius: var(--radius); padding: 18px 22px; }
.stat-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--forest-line); }
.stat-row:last-child { border-bottom: 0; }
.stat-row strong { font-family: var(--font-display); font-weight: 500; font-size: 2rem; color: var(--gold); line-height: 1; }
.stat-row span { font-size: .9rem; }
.feature-card { background: var(--green); color: #EAF3EE; border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.feature-card h2 { font-size: 1.35rem; color: var(--cream); margin: 0; }
.feature-card ul { list-style: none; padding: 0; margin: 0; color: var(--cream); font-weight: 500; font-size: .93rem; }
.feature-card a { color: var(--cream); margin-top: auto; }

.media {
  border-radius: var(--radius-lg);
  background-color: var(--forest-2);
  background-image:
    radial-gradient(circle at 20% 20%, rgba(217, 164, 65, .18) 0 2px, transparent 3px),
    linear-gradient(135deg, rgba(47, 125, 91, .35), rgba(14, 45, 34, .2));
  background-size: 28px 28px, cover;
  background-position: center;
  position: relative; overflow: hidden; min-height: 320px;
}
.media.has-photo { background-size: cover; background-position: center; }
.media--hero { min-height: 540px; display: flex; flex-direction: column; justify-content: flex-end; padding: 28px; }
.media--light { background-color: var(--sand-2); background-image: radial-gradient(circle at 20% 20%, rgba(47, 125, 91, .18) 0 2px, transparent 3px); background-size: 28px 28px; }
.tags { display: flex; flex-wrap: wrap; gap: 8px; position: relative; }
.tag { background: var(--cream); color: var(--forest); font-size: .82rem; font-weight: 500; padding: 7px 14px; border-radius: 999px; }

/* ---------- Inner page hero ---------- */
.page-hero { background: var(--forest); color: var(--on-dark); }
.page-hero .container { padding-top: 40px; padding-bottom: 72px; }
.page-hero h1 { color: var(--cream); max-width: 900px; }
.page-hero .lead { font-size: 1.1rem; max-width: 760px; margin-bottom: 1.75rem; }
.breadcrumb { font-size: .85rem; margin-bottom: 1.5rem; }
.breadcrumb ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.breadcrumb li { margin: 0; display: flex; gap: 6px; align-items: center; }
.breadcrumb li + li::before { content: "/"; color: var(--forest-line); }
.breadcrumb a { color: var(--on-dark); text-decoration: none; }
.breadcrumb a:hover { color: var(--gold); }
.breadcrumb [aria-current] { color: var(--gold); }

/* ---------- Sections ---------- */
.section { padding: 88px 0; }
.section--sand { background: var(--sand); }
.section--forest { background: var(--forest); color: var(--on-dark); }
.section--forest h2, .section--forest h3 { color: var(--cream); }
.section--forest strong { color: var(--cream); }
.section--tight { padding: 64px 0; }
.section-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px 48px; margin-bottom: 40px; }
.section-head h2 { margin: 0; max-width: 640px; }
.section-head p { max-width: 440px; color: var(--muted); margin: 0; }
.section--forest .section-head p { color: var(--on-dark); }
.section-head--center { flex-direction: column; align-items: center; text-align: center; }
.section-head--center p { max-width: 560px; }
.prose { max-width: 820px; }
.prose > h2 { margin-top: 0; }
.prose h3 { margin-top: 1.5em; }
.prose > *:first-child { margin-top: 0; }
.section .prose + .block, .block + .prose, .block + .block { margin-top: 32px; }
.muted { color: var(--muted); }

/* ---------- Cards ---------- */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.cards.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cards.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cards.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1080px) { .cards.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 960px) { .cards.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 26px; display: flex; flex-direction: column; gap: 10px;
  transition: transform .2s, box-shadow .2s, border-color .2s;
}
.section--sand .card { background: var(--cream); border-color: transparent; }
.section--forest .card { background: var(--forest-2); border-color: transparent; color: var(--on-dark); }
.card h3 { margin: 0; font-size: 1.22rem; }
.card p { margin: 0; color: var(--muted); font-size: .96rem; }
.section--forest .card p { color: var(--on-dark); }
a.card { text-decoration: none; color: inherit; }
a.card:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: var(--gold); }
a.card .link-arrow { margin-top: auto; padding-top: 6px; color: var(--green); }
.card-icon {
  width: 52px; height: 52px; border-radius: 14px; background: var(--forest);
  display: inline-flex; align-items: center; justify-content: center; color: var(--gold);
  flex-shrink: 0;
}
.card-icon svg { width: 26px; height: 26px; }
.card-mark { width: 34px; height: 4px; border-radius: 4px; background: var(--gold); }
.card-num { font-family: var(--font-display); font-size: 1.8rem; color: var(--green); line-height: 1; }

/* ---------- Steps ---------- */
.steps { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; counter-reset: step; list-style: none; padding: 0; margin: 0; }
.steps li {
  counter-increment: step; margin: 0;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 26px;
}
.section--sand .steps li { background: var(--cream); border-color: transparent; }
.steps li::before {
  content: counter(step); display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%; background: var(--green); color: #fff;
  font-weight: 600; margin-bottom: 14px;
}
.steps h3 { font-size: 1.2rem; margin: 0 0 6px; }
.steps p { margin: 0; color: var(--muted); font-size: .96rem; }

/* ---------- Checklist ---------- */
.checklist { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px 28px; }
.checklist li { display: flex; gap: 10px; align-items: flex-start; margin: 0; font-weight: 500; }
.checklist li::before, .hero-checks li::before {
  content: ""; flex-shrink: 0; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%;
  background: var(--mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F7D5B' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/13px no-repeat;
}
.section--forest .checklist li::before, .hero-checks li::before {
  background-color: var(--forest-2);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D9A441' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E");
}
.section--forest .checklist li { color: var(--cream); }

/* ---------- Stats ---------- */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 20px; }
.stat { border-top: 2px solid var(--gold); padding-top: 14px; }
.stat strong { display: block; font-family: var(--font-display); font-weight: 500; font-size: 2.6rem; line-height: 1; color: var(--forest); }
.stat span { display: block; margin-top: 6px; color: var(--muted); font-size: .92rem; }

/* ---------- Tables ---------- */
.table-wrap {
  overflow-x: auto; border-radius: var(--radius); border: 1px solid var(--line);
  background: var(--card); -webkit-overflow-scrolling: touch;
}
.section--sand .table-wrap { background: var(--cream); border-color: transparent; }
table { width: 100%; border-collapse: collapse; font-size: .95rem; min-width: 520px; }
th, td { text-align: left; padding: 14px 18px; vertical-align: top; border-bottom: 1px solid var(--line); }
thead th { background: var(--forest); color: var(--cream); font-weight: 600; font-size: .85rem; letter-spacing: .02em; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:nth-child(even) td { background: rgba(241, 235, 221, .45); }
td:first-child { font-weight: 500; color: var(--forest); }

/* ---------- FAQ ---------- */
.faq { display: grid; gap: 12px; }
.faq--grid { max-width: none; grid-template-columns: repeat(auto-fill, minmax(440px, 1fr)); align-items: start; }
.faq details {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-sm);
  overflow: hidden;
}
.section--sand .faq details { background: var(--cream); border-color: transparent; }
.faq summary {
  list-style: none; cursor: pointer; padding: 18px 20px;
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  font-weight: 600; color: var(--forest);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+"; flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%;
  background: var(--forest); color: var(--gold);
  display: inline-flex; align-items: center; justify-content: center; font-size: 1.2rem; font-weight: 500;
}
.faq details[open] summary::after { content: "−"; }
.faq .faq-body { padding: 0 20px 18px; color: var(--muted); }

/* ---------- Pricing ---------- */
.plans { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; }
.plan {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 24px 20px; display: flex; flex-direction: column; gap: 6px;
}
.plan h3 { margin: 0; font-family: var(--font-body); font-weight: 600; font-size: .85rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-text); }
.plan .price { font-family: var(--font-display); font-size: 2.2rem; color: var(--forest); line-height: 1.1; }
.plan .price small { font-family: var(--font-body); font-size: .8rem; color: var(--muted); }
.plan .band { color: var(--muted); font-size: .9rem; }
.plan .btn { margin-top: 12px; min-height: 42px; padding: 10px 16px; font-size: .9rem; }
.plan--featured { background: var(--forest); border-color: var(--forest); }
.plan--featured h3 { color: var(--gold); }
.plan--featured .price { color: var(--cream); }
.plan--featured .band, .plan--featured .price small { color: var(--on-dark); }
.pricing-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.pricing-tabs a {
  padding: 9px 16px; border-radius: 999px; border: 1.5px solid var(--line);
  color: var(--forest); text-decoration: none; font-weight: 500; font-size: .92rem; background: var(--card);
}
.pricing-tabs a:hover { border-color: var(--forest); }

/* ---------- Home specifics ---------- */
.partners { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px; }
.partner {
  height: 76px; border-radius: 14px; background: var(--cream);
  display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 12px;
  font-weight: 600; color: var(--muted); font-size: .95rem;
}
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.split--top { align-items: start; }
.panel { background: var(--cream); border-radius: var(--radius); padding: 24px; }
.section--sand .panel { background: var(--cream); }
.progress { display: grid; gap: 14px; }
.progress-row { display: grid; gap: 6px; }
.progress-label { display: flex; justify-content: space-between; font-size: .92rem; }
.progress-label strong { color: var(--green); }
.progress-track { height: 8px; border-radius: 99px; background: var(--sand); overflow: hidden; }
.progress-bar { height: 100%; border-radius: inherit; background: var(--gold); }
.media .panel { position: relative; }

/* ---------- Contact ---------- */
.contact-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 40px; align-items: start; }
.contact-list { display: grid; gap: 14px; }
.contact-item { display: flex; gap: 14px; align-items: flex-start; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 20px; }
.contact-item h3 { font-family: var(--font-body); font-size: .8rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-text); margin: 0 0 2px; }
.contact-item p { margin: 0; color: var(--forest); font-weight: 500; }
.contact-item a { color: var(--forest); text-decoration: none; }
.contact-item a:hover { color: var(--green); }
.form-card { background: var(--forest); color: var(--on-dark); border-radius: var(--radius-lg); padding: 32px; }
.form-card h2 { color: var(--cream); font-size: 1.8rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.field { display: grid; gap: 6px; }
.field--full { grid-column: 1 / -1; }
.field label { font-size: .88rem; font-weight: 500; color: var(--cream); }
.field input, .field select, .field textarea {
  width: 100%; font: inherit; color: var(--cream);
  background: var(--forest-2); border: 1.5px solid var(--forest-line); border-radius: var(--radius-sm);
  padding: 12px 14px; min-height: 48px;
}
.field textarea { min-height: 130px; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: #8FA399; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--gold); }
.field-error { color: #F3C27A; font-size: .85rem; min-height: 1em; }
.form-status { margin-top: 12px; color: var(--gold); font-weight: 500; }

/* ---------- Empty state ---------- */
.empty-state { text-align: center; max-width: 560px; margin: 0 auto; }
.empty-state .card-icon { margin: 0 auto 16px; }

/* ---------- Related links ---------- */
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chips a {
  padding: 9px 16px; border-radius: 999px; background: var(--cream); border: 1.5px solid var(--line);
  color: var(--forest); text-decoration: none; font-size: .92rem; font-weight: 500;
}
.chips a:hover { border-color: var(--green); color: var(--green); }

/* ---------- CTA band ---------- */
.cta-band { padding: 24px 0 88px; background: var(--cream); }
.cta-box {
  background: var(--forest); border-radius: var(--radius-lg); padding: 48px;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px;
  position: relative; overflow: hidden;
}
.cta-box::after {
  content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px;
  border-radius: 50%; border: 28px solid rgba(217, 164, 65, .14);
}
.cta-box h2 { color: var(--cream); margin: 0 0 6px; }
.cta-box p { color: var(--on-dark); margin: 0; max-width: 560px; }
.cta-box .btn-row { position: relative; z-index: 1; }
/* v1.0.183 compact bar, same size as the homepage "Need us right now?" bar */
.cta-band { padding: 24px 0 56px; }
.cta-box { padding: 22px 34px; gap: 16px 20px; border-radius: 18px; }
.cta-box::after { width: 130px; height: 130px; right: -40px; top: -50px; border-width: 18px; }
.cta-box h2 { font-size: 1.45rem; font-weight: 600; line-height: 1.2; margin: 0; }
.cta-box p { font-size: .95rem; margin: 4px 0 0; max-width: none; }
.cta-box > div:first-child { flex: 1 1 420px; min-width: 0; }

/* ---------- Footer ---------- */
.site-footer { background: var(--forest); color: var(--on-dark); padding: 72px 0 28px; font-size: .94rem; }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.4fr; gap: 40px; }
.footer-brand img { height: 52px; width: auto; margin-bottom: 16px; }
.site-footer h2 { font-family: var(--font-body); font-size: .85rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); margin: 0 0 14px; }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.site-footer li { margin: 0; }
.site-footer a { color: var(--on-dark-strong); text-decoration: none; }
.site-footer a:hover { color: var(--gold); }
.footer-contact { display: grid; gap: 6px; margin-top: 16px; }
.newsletter { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.newsletter input {
  flex: 1 1 180px; min-width: 0; min-height: 48px; padding: 12px 14px; font: inherit;
  color: var(--cream); background: var(--forest-2); border: 1.5px solid var(--forest-line); border-radius: var(--radius-sm);
}
.newsletter input:focus { outline: none; border-color: var(--gold); }
.social { display: flex; gap: 10px; margin-top: 18px; }
.social a {
  width: 42px; height: 42px; border-radius: 50%; border: 1.5px solid var(--forest-line);
  display: inline-flex; align-items: center; justify-content: center; color: var(--cream);
}
.social a:hover { border-color: var(--gold); color: var(--gold); }
.social svg { width: 18px; height: 18px; }
.footer-bottom {
  margin-top: 48px; padding-top: 20px; border-top: 1px solid var(--forest-line);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: .85rem;
}
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- Back to top ---------- */
.to-top {
  position: fixed; right: 20px; bottom: 20px; z-index: 40;
  width: 48px; height: 48px; border-radius: 50%; border: 0; cursor: pointer;
  background: var(--gold); color: var(--forest); box-shadow: var(--shadow);
  display: inline-flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden; transform: translateY(8px); transition: all .2s;
}
.to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.to-top svg { width: 20px; height: 20px; }

/* ---------- Reveal on scroll ---------- */
.js .reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .reveal { opacity: 1; transform: none; transition: none; }
  * { transition: none !important; }
}

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  .hero .container, .split, .contact-grid { grid-template-columns: 1fr; gap: 36px; }
  .media--hero { min-height: 360px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .mega { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  :root { --gutter: 16px; }
  .section { padding: 64px 0; }
  .hero-cards, .form-grid { grid-template-columns: 1fr; }
  .faq--grid { grid-template-columns: 1fr; }
  .cards.cols-2, .cards.cols-3, .cards.cols-4 { grid-template-columns: 1fr; }
  .cta-box { padding: 24px; }
  .footer-grid { grid-template-columns: 1fr; }
  .brand img { height: 38px; }
  .form-card { padding: 24px; }
  .topbar .topbar-utility { display: none; }
}

@media print {
  .topbar, .site-header, .cta-band, .site-footer, .to-top { display: none; }
  .page-hero { background: none; color: #000; }
  .page-hero h1 { color: #000; }
}

/* ---------- Pricing comparison ---------- */
.ptabs {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 8px;
  background: var(--sand); padding: 8px; border-radius: 999px; width: fit-content; max-width: 100%;
  margin: 0 auto 36px;
}
.ptab {
  padding: 10px 20px; border-radius: 999px; text-decoration: none;
  font-weight: 600; font-size: .94rem; color: var(--forest); white-space: nowrap;
}
.ptab:hover { background: var(--cream); color: var(--forest); }
.ptab.is-active { background: var(--forest); color: var(--gold); }
.js .ppanel[hidden] { display: none; }
.ppanel + .ppanel { margin-top: 64px; }
.js .ppanel + .ppanel { margin-top: 0; }
.ppanel-title { font-size: 1.6rem; margin-bottom: 18px; }
.ppanel:focus-visible { outline-offset: 8px; }

.pt-wrap {
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--card);
}
.ptable { min-width: 860px; font-size: .95rem; }
.ptable th, .ptable td { padding: 14px 16px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.ptable td { text-align: center; }
.ptable tbody th, .ptable tfoot th {
  text-align: left; font-weight: 500; color: var(--ink);
  position: sticky; left: 0; background: var(--card); z-index: 1; min-width: 260px;
}
.ptable thead th {
  background: var(--forest); color: var(--cream); text-align: center;
  font: 600 .85rem/1.2 var(--font-body); letter-spacing: .1em; text-transform: uppercase; padding: 20px 16px;
}
.ptable thead th.pt-corner {
  text-align: left; position: sticky; left: 0; z-index: 2;
  font-family: var(--font-display); font-weight: 500; font-size: 1.15rem; letter-spacing: 0; text-transform: none;
}
.ptable thead th.pt-featured { background: var(--gold); color: var(--forest); }
.ptable tbody tr:nth-child(even) td, .ptable tbody tr:nth-child(even) th { background: #F7F2E7; }
.ptable td.pt-featured { background: rgba(217, 164, 65, .10); }
.ptable tbody tr:nth-child(even) td.pt-featured { background: rgba(217, 164, 65, .16); }
.ptable td:first-child { font-weight: inherit; color: inherit; }
.pt-turnover td { font-weight: 600; color: var(--forest); font-size: .9rem; }
.pt-turnover th { font-weight: 600 !important; color: var(--forest) !important; }
.pt-yes {
  display: inline-flex; width: 28px; height: 28px; border-radius: 50%;
  background: var(--mint); color: var(--green); align-items: center; justify-content: center;
}
.pt-yes svg { width: 15px; height: 15px; }
.pt-no { color: #A39A86; font-size: 1.3rem; }
.pt-num {
  display: inline-flex; min-width: 28px; height: 28px; padding: 0 8px; border-radius: 999px;
  background: var(--forest); color: var(--gold); font-weight: 600; align-items: center; justify-content: center;
}
.ptable tfoot td, .ptable tfoot th { border-bottom: 0; background: var(--card); }
.pt-price-row td, .pt-price-row th { padding-top: 22px; }
.pt-price { display: block; font-family: var(--font-display); font-size: 1.9rem; color: var(--forest); line-height: 1.1; }
.pt-vat { display: block; color: var(--muted); font-size: .8rem; margin-top: 2px; }
.pt-btn-row td { padding-bottom: 22px; }
.pt-btn-row .btn { min-height: 42px; padding: 10px 14px; font-size: .88rem; width: 100%; }
.ptable tfoot td.pt-featured { background: rgba(217, 164, 65, .10); }
.pt-extras-title { margin: 36px 0 14px; font-size: 1.3rem; }
.pt-charge { white-space: nowrap; font-weight: 600; color: var(--forest); }
.pt-note { text-align: center; color: var(--muted); margin-top: 32px; }
@media (max-width: 640px) {
  .ptabs { border-radius: var(--radius); justify-content: flex-start; }
  .ptable tbody th, .ptable tfoot th, .ptable thead th.pt-corner { min-width: 180px; }
  .pt-charge { white-space: normal; }
}
.ppanel:focus:not(:focus-visible) { outline: none; }
.ptable tbody th, .ptable tfoot th { width: 30%; }
.ptable thead th:not(.pt-corner), .ptable td { min-width: 132px; }
.pt-btn-row .btn { white-space: nowrap; padding: 10px 12px; }
.pt-price--talk { font-size: 1.5rem; white-space: nowrap; }
.ppanel { scroll-margin-top: 190px; }


/* =========================================================
   WordPress additions
   Maps block editor markup (groups, lists, tables, details,
   buttons) onto the theme design.
   ========================================================= */

/* Admin bar offset for the sticky header */
.admin-bar .site-top { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-top { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-top { top: 0; } }

.entry-content > .wp-block-group { margin: 0; }
.wp-block-group { box-sizing: border-box; }
.custom-logo-link img, .brand img { height: 48px; width: auto; }
.footer-brand img { height: 52px; width: auto; margin-bottom: 16px; }
.nav-mobile-cta { padding-top: 16px; border: 0 !important; }
.nav-mobile-cta .btn { width: 100%; }
.mega--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mega--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mega { max-height: calc(100vh - 140px); overflow-y: auto; }
.mega-col h3 a { padding: 0; display: inline; color: inherit; }
.topbar a.is-active { color: var(--gold); }

/* Readable line length for text inside full-width sections */
.section > .container > p,
.section > .container > ul:not(.checklist):not(.hero-checks),
.section > .container > ol,
.section > .container > h3 { max-width: 820px; }
.section > .container > h2 { max-width: 900px; }

/* Space between a section's text and the component that follows it */
.container > * + .cards,
.container > * + .steps,
.container > * + .faq,
.container > * + .wp-block-table,
.container > * + .checklist,
.container > * + .stats,
.container > * + .wp-block-buttons,
.container > * + .plans { margin-top: 28px; }
.container > .cards + *, .container > .steps + *, .container > .faq + *,
.container > .wp-block-table + *, .container > .checklist + *, .container > .stats + * { margin-top: 28px; }
.container > :last-child { margin-bottom: 0; }

/* Cards built from group blocks */
.wp-block-group.card { gap: 10px; }
.wp-block-group.card::before {
  content: ""; display: block; width: 34px; height: 4px; border-radius: 4px; background: var(--gold);
}
.wp-block-group.card > * { margin: 0; }
.wp-block-group.card h3 { font-size: 1.22rem; }
.wp-block-group.card p { color: var(--muted); font-size: .96rem; }
.section--forest .wp-block-group.card p { color: var(--on-dark); }
.wp-block-group.card.card--numbered::before { display: none; }
.card .card-num, .wp-block-group.card .card-num { font-family: var(--font-display); font-size: 1.8rem; color: var(--green); line-height: 1; }

/* Steps built from group blocks */
.steps.wp-block-group { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; counter-reset: step; }
.steps .step {
  counter-increment: step; background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 26px;
}
.section--sand .steps .step { background: var(--cream); border-color: transparent; }
.steps .step::before {
  content: counter(step); display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%; background: var(--green); color: #fff;
  font-weight: 600; margin-bottom: 14px;
}
.steps .step h3 { font-size: 1.2rem; margin: 0 0 6px; }
.steps .step p { margin: 0; color: var(--muted); font-size: .96rem; }

/* Lists */
.wp-block-list.checklist, .wp-block-list.hero-checks { padding-left: 0; }
.tags.wp-block-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tags.wp-block-list li { background: var(--cream); color: var(--forest); font-size: .82rem; font-weight: 500; padding: 7px 14px; border-radius: 999px; margin: 0; }
.feature-card .wp-block-list { list-style: none; padding: 0; margin: 0; }

/* FAQ built from details blocks */
.faq.wp-block-group { display: grid; gap: 12px; }
.faq details.wp-block-details > :not(summary) { padding: 0 20px; color: var(--muted); }
.faq details.wp-block-details > :not(summary):last-child { padding-bottom: 18px; }
.faq details.wp-block-details > p { margin: 0 0 .75em; }
.faq--grid.wp-block-group { grid-template-columns: repeat(auto-fill, minmax(440px, 1fr)); align-items: start; }
.section-head--center + .faq { margin-left: auto; margin-right: auto; }

/* Tables (core table block) */
.wp-block-table {
  margin: 0; overflow-x: auto; -webkit-overflow-scrolling: touch;
  border-radius: var(--radius); border: 1px solid var(--line); background: var(--card);
}
.section--sand .wp-block-table { background: var(--cream); border-color: transparent; }
.wp-block-table table { width: 100%; border-collapse: collapse; min-width: 520px; }
.wp-block-table thead { border-bottom: 0; }
.wp-block-table tfoot { border-top: 0; }
.wp-block-table th, .wp-block-table td { border: 0; border-bottom: 1px solid var(--line); padding: 14px 18px; }
.wp-block-table td:first-child { font-weight: 500; color: var(--forest); }
.wp-block-table figcaption { padding: 10px 18px; font-size: .85rem; color: var(--muted); }

/* Buttons (core button block styles) */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.wp-block-button .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 24px;
  font: 600 .98rem/1.2 var(--font-body); border-radius: var(--radius-sm); border: 1.5px solid transparent;
  text-decoration: none; transition: background-color .2s, color .2s, border-color .2s, transform .2s;
  background: var(--gold); color: var(--forest);
}
.wp-block-button .wp-block-button__link:hover { transform: translateY(-1px); background: var(--gold-hover); color: var(--forest); }
.wp-block-button.is-style-forest .wp-block-button__link { background: var(--forest); color: var(--cream); }
.wp-block-button.is-style-forest .wp-block-button__link:hover { background: var(--forest-2); color: var(--cream); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border-color: var(--forest); color: var(--forest); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--forest); color: var(--cream); }
.wp-block-button.is-style-outline-light .wp-block-button__link { background: transparent; border-color: var(--cream); color: var(--cream); }
.wp-block-button.is-style-outline-light .wp-block-button__link:hover { background: var(--cream); color: var(--forest); }

/* Home page pieces built from blocks */
.hero .container > .wp-block-group { min-width: 0; }
.hero h1 em { color: var(--gold); font-style: italic; }
.stat-card .stat-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--forest-line); }
.stat-card .stat-row:last-child { border-bottom: 0; }
.stat-card .stat-row p { margin: 0; }
.stat-card .stat-num { font-family: var(--font-display); font-size: 2rem; color: var(--gold); line-height: 1; }
.stat-card .stat-label { font-size: .9rem; }
.feature-card > * { margin: 0; }
.feature-card p a { color: var(--cream); font-weight: 600; }
.stats.wp-block-group .stat p { margin: 0; }
.stats .stat-value { font-family: var(--font-display); font-size: 2.6rem; line-height: 1; color: var(--forest); }
.stats .stat-text { margin-top: 6px !important; color: var(--muted); font-size: .92rem; }
.partners.wp-block-group > p { margin: 0; }
.media .panel > * { margin: 0; }
.media .panel > * + * { margin-top: 14px; }
.panel .panel-title { font-weight: 600; color: var(--forest); }
.split > .wp-block-group { min-width: 0; }
.section-head.wp-block-group > * { margin: 0; }
.section-head.wp-block-group .eyebrow { margin-bottom: .5rem; }
.section-head--center.wp-block-group > * + * { margin-top: .6rem; }
.section-head.wp-block-group > .wp-block-group > * { margin-bottom: 0; }

/* Blog cards and articles */
.post-card-img { border-radius: 12px; margin-bottom: 6px; aspect-ratio: 16 / 9; object-fit: cover; }
.post-date { font-size: .82rem; color: var(--gold-text); font-weight: 600; letter-spacing: .04em; }
.article-body { max-width: 820px; }
.article-image { margin-bottom: 32px; border-radius: var(--radius); overflow: hidden; }
.pagination { margin-top: 40px; }
.pagination .nav-links { display: flex; gap: 8px; flex-wrap: wrap; }
.pagination .page-numbers { padding: 8px 14px; border-radius: 999px; border: 1.5px solid var(--line); text-decoration: none; color: var(--forest); }
.pagination .page-numbers.current { background: var(--forest); color: var(--gold); border-color: var(--forest); }
.related-title { font-size: 1.6rem; }

/* ---------- Pricing tables (core table blocks inside package groups) ---------- */
.ppanel .wp-block-table.pt-wrap { border-radius: var(--radius-lg); }
.pt-wrap table { min-width: 860px; font-size: .95rem; }
.pt-wrap th, .pt-wrap td { padding: 14px 16px; vertical-align: middle; text-align: center; }
.pt-wrap tbody td:first-child, .pt-wrap tfoot td:first-child,
.pt-wrap tbody th, .pt-wrap tfoot th {
  text-align: left; font-weight: 500; color: var(--ink); width: 30%;
  position: sticky; left: 0; background: var(--card); z-index: 1; min-width: 220px;
}
.pt-wrap thead th, .pt-wrap thead td {
  background: var(--forest); color: var(--cream);
  font: 600 .85rem/1.2 var(--font-body); letter-spacing: .1em; text-transform: uppercase; padding: 20px 16px;
}
.pt-wrap thead :is(th, td):first-child {
  text-align: left; position: sticky; left: 0; z-index: 2;
  font-family: var(--font-display); font-weight: 500; font-size: 1.15rem; letter-spacing: 0; text-transform: none;
}
.pt-wrap thead :is(th, td):last-child { background: var(--gold); color: var(--forest); }
.pt-wrap tbody td:not(:first-child) { font-weight: 600; color: var(--green); font-size: 1.05rem; min-width: 120px; }
.pt-wrap tbody tr:first-child td { font-size: .9rem; color: var(--forest); }
.pt-wrap tbody tr:first-child :is(th, td):first-child { font-weight: 600; color: var(--forest); }
.pt-wrap tbody tr:nth-child(even) :is(th, td) { background: #F7F2E7; }
.pt-wrap tbody tr :is(th, td):last-child { background: rgba(217, 164, 65, .10); }
.pt-wrap tbody tr:nth-child(even) :is(th, td):last-child { background: rgba(217, 164, 65, .16); }
.pt-wrap tfoot :is(th, td) { border-bottom: 0; background: var(--card); }
.pt-wrap tfoot tr:first-child :is(th, td) { padding-top: 22px; font-family: var(--font-display); font-size: 1.7rem; color: var(--forest); line-height: 1.1; }
.pt-wrap tfoot tr:first-child :is(th, td):first-child { font-family: var(--font-body); font-size: .95rem; color: var(--ink); }
.pt-wrap tfoot small { display: block; font-family: var(--font-body); color: var(--muted); font-size: .78rem; margin-top: 4px; }
.pt-wrap tfoot tr:last-child :is(th, td) { padding-bottom: 22px; }
.pt-wrap tfoot :is(th, td):last-child { background: rgba(217, 164, 65, .10); }
.pt-wrap tfoot a {
  display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 10px 14px; width: 100%;
  border-radius: var(--radius-sm); background: var(--forest); color: var(--cream);
  font: 600 .88rem/1.2 var(--font-body); text-decoration: none; white-space: nowrap;
}
.pt-wrap tfoot a:hover { background: var(--forest-2); color: var(--cream); }
.pt-wrap tfoot :is(th, td):last-child a { background: var(--gold); color: var(--forest); }
.ppanel > h3 { margin: 36px 0 14px; font-size: 1.3rem; }
.pt-extras td:last-child { font-weight: 600; color: var(--forest); }
.pt-legend { color: var(--muted); font-size: .9rem; margin-top: 14px; }

@media (max-width: 960px) {
  .faq--grid.wp-block-group { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .pt-wrap tbody td:first-child, .pt-wrap tfoot td:first-child,
  .pt-wrap tbody th, .pt-wrap tfoot th { min-width: 170px; }
}

/* Fixes after testing */
.section-head .eyebrow, .section-head p.eyebrow, .about-text .eyebrow, .trust-text .eyebrow { color: var(--gold-text); }
.on-dark .eyebrow, .on-dark .section-head .eyebrow, .on-dark .section-head p.eyebrow { color: var(--gold); }
.media--team { min-height: 260px; }
.media--handshake { min-height: 440px; padding: 28px; display: flex; align-items: flex-end; }
.media--handshake .panel { width: 100%; }
.about-side { display: grid; gap: 16px; align-content: start; }
.about-text .wp-block-buttons { margin: 24px 0 32px; }
.trust-text .checklist { margin: 24px 0 28px; }
.hero .wp-block-buttons { margin-bottom: 0; }
.hero-checks { margin-bottom: 1.75rem; }
.pt-note { margin-top: 32px; color: var(--muted); }

/* Steps: balanced columns (no orphans on the last row) */
.steps.wp-block-group.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.steps.wp-block-group.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.steps.wp-block-group.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1080px) { .steps.wp-block-group.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 960px) { .steps.wp-block-group.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .steps.wp-block-group[class*="cols-"] { grid-template-columns: 1fr; } }

/* Title Case for buttons and button-style links */
.btn, .wp-block-button__link, .wp-element-button, .link-arrow, button[type="submit"], input[type="submit"] { text-transform: capitalize; }

/* Title Case for the top bar and main menu links */
.topbar a, .nav-link, .main-nav a, .dropdown a, .mega-col h3 { text-transform: capitalize; }

/* Client logos */
.partner--logo { padding: 12px 18px; }
.partner--logo img {
  width: 150px; max-width: 86%; height: 48px; object-fit: contain; object-position: center;
  filter: grayscale(1); opacity: .75; transition: filter .25s, opacity .25s;
}
.partner--logo:hover img { filter: none; opacity: 1; }

/* Partners: six per row (two rows of 12) */
.partners { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 960px) { .partners { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .partners { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Pricing tables: clickable service names with a description underneath */
.pt-wrap tbody tr.pt-alt :is(th, td) { background: #F7F2E7; }
.pt-wrap tbody tr.pt-alt :is(th, td):last-child { background: rgba(217, 164, 65, .16); }
.pt-q {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%;
  background: none; border: 0; padding: 0; margin: 0; font: inherit; color: inherit;
  text-align: left; cursor: pointer;
}
.pt-q::after {
  content: "+"; flex: 0 0 24px; height: 24px; border-radius: 50%;
  background: var(--mint); color: var(--green); font-weight: 600; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center; transition: background-color .2s, color .2s;
}
.pt-q[aria-expanded="true"]::after { content: "\2212"; background: var(--gold); color: var(--forest); }
.pt-q:hover { color: var(--green); }
.pt-q:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 4px; }
.pt-wrap tbody tr.pt-detail[hidden] { display: none; }
.pt-wrap tbody tr.pt-detail td {
  position: static; width: auto; min-width: 0; padding: 0; text-align: left; font-weight: 400;
  font-size: .95rem; color: var(--muted); background: var(--cream) !important; border-bottom: 1px solid var(--line);
}
.pt-detail-inner { position: sticky; left: 0; box-sizing: border-box; padding: 4px 20px 18px 16px; max-width: min(760px, 88vw); line-height: 1.6; }
.pt-wrap tbody tr.is-open :is(th, td) { border-bottom-color: transparent; }

/* ---------- Top bar ticker ---------- */
.topbar-ticker { flex: 1 1 260px; min-width: 0; overflow: hidden; position: relative;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.ticker-track { display: flex; width: max-content; animation: etech-ticker var(--ticker-time, 40s) linear infinite; }
.topbar-ticker:hover .ticker-track { animation-play-state: paused; }
.ticker-group { display: flex; flex: 0 0 auto; min-width: 100vw; justify-content: space-around; align-items: center; }
.ticker-item { white-space: nowrap; padding: 0 28px; color: var(--on-dark-strong); position: relative; }
.ticker-item::before { content: "\2022"; color: var(--gold); position: absolute; left: 6px; }
.ticker-item a { color: var(--gold); text-decoration: none; }
.ticker-item a:hover { text-decoration: underline; }
@keyframes etech-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 760px) { .topbar-ticker { flex-basis: 100%; order: 3; } .ticker-group { min-width: 100%; } }
@media (prefers-reduced-motion: reduce) { .ticker-track { animation: none; } .topbar-ticker { overflow-x: auto; } .ticker-group[aria-hidden] { display: none; } }

/* Top bar and main menu stay fixed at the top while scrolling */
.site-top { position: sticky; top: 0; z-index: 50; }
@media print { .site-top { display: none; } }

/* ---------- Pricing: tab labels and opened descriptions ---------- */
.ptab { text-transform: capitalize; }
.pt-wrap tbody tr.is-open > th { background: var(--forest) !important; color: var(--cream) !important; font-weight: 600; }
.pt-wrap tbody tr.is-open > th .pt-q, .pt-wrap tbody tr.is-open > th .pt-q:hover { color: var(--cream); }
.pt-wrap tbody tr.pt-detail td {
  background: var(--card) !important; border-left: 0; border-bottom: 1px solid var(--line); color: var(--ink); padding: 0;
}
.pt-detail-inner {
  position: sticky; left: 0; box-sizing: border-box; max-width: none;
  width: var(--pt-head-w, 300px); background: #FFF7E0; border-left: 4px solid var(--gold);
  padding: 14px 18px 16px 14px; font-size: .95rem; line-height: 1.65; overflow-wrap: anywhere;
}

/* Pricing table row headings in Title Case (all tables, all screen sizes) */
.pt-wrap tbody th, .pt-wrap tbody th .pt-q, .pt-wrap tfoot th { text-transform: capitalize; }
.pt-wrap .pt-detail-inner { text-transform: none; }

/* ---------- Search ---------- */
.search-toggle {
  display: inline-flex; width: 46px; height: 46px; border-radius: 50%;
  background: transparent; border: 1.5px solid var(--forest-line); color: var(--cream); cursor: pointer;
  align-items: center; justify-content: center; transition: background .2s, color .2s, border-color .2s;
}
.search-toggle:hover, .search-toggle[aria-expanded="true"] { background: var(--gold); color: var(--forest); border-color: var(--gold); }
.search-toggle svg { width: 20px; height: 20px; }
.search-panel { position: absolute; left: 0; right: 0; top: 100%; background: var(--forest-3); border-top: 1px solid var(--forest-line); box-shadow: 0 18px 36px rgba(0, 0, 0, .3); padding: 18px 0 22px; z-index: 5; }
.search-panel[hidden] { display: none; }
.search-form { display: flex; gap: 10px; max-width: 760px; }
.search-input {
  flex: 1; min-width: 0; padding: 14px 20px; border-radius: 999px; border: 2px solid transparent;
  background: #fff; color: var(--forest); font: inherit; font-size: 1.05rem;
}
.search-input:focus { outline: none; border-color: var(--gold); }
.search-submit {
  display: inline-flex; align-items: center; gap: 8px; padding: 0 24px; border-radius: 999px; border: 0;
  background: var(--gold); color: var(--forest); font: inherit; font-weight: 600; cursor: pointer;
}
.search-submit:hover { background: var(--gold-hover); }
.search-submit svg { width: 18px; height: 18px; }
.search-hero .search-form { margin-top: 22px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sr-count { font-weight: 600; color: var(--forest); font-size: 1.1rem; margin: 0 0 6px; }
.sr-note { color: var(--muted, #55615a); margin: 0 0 18px; }
.sr-list { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 14px; }
.sr-item { display: flex; gap: 18px; align-items: flex-start; background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 22px 24px; transition: border-color .2s, box-shadow .2s; }
.sr-item:hover { border-color: var(--gold); box-shadow: 0 14px 30px rgba(18, 55, 42, .1); }
.sr-num { flex: 0 0 44px; height: 44px; border-radius: 50%; background: var(--forest); color: var(--gold); display: grid; place-items: center; font-family: var(--font-display, Georgia, serif); font-weight: 600; font-size: 1.05rem; }
.sr-body { min-width: 0; }
.sr-trail { margin: 0 0 4px; font-size: .8rem; color: var(--muted, #55615a); }
.sr-body h2 { font-size: 1.35rem; margin: 0 0 6px; }
.sr-body h2 a { color: var(--forest); text-decoration: none; }
.sr-body h2 a:hover { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 4px; }
.sr-snippet { margin: 0 0 10px; color: var(--ink, #2b3a31); }
.sr-snippet mark { background: rgba(217, 164, 65, .35); color: inherit; padding: 0 2px; border-radius: 3px; }
.sr-links { margin-top: 18px; }
@media (max-width: 640px) {
  .search-form { flex-direction: column; }
  .search-submit { justify-content: center; padding: 13px 24px; }
  .sr-item { padding: 18px; gap: 14px; }
  .sr-num { flex-basis: 38px; height: 38px; }
}

/* ---------- Top bar: solid buttons and a ticker capsule (same bar height) ---------- */
.topbar .topbar-offers a, .topbar .topbar-utility a {
  display: inline-flex; align-items: center; padding: 5px 17px; border-radius: 9px;
  font-size: .95rem; font-weight: 700; letter-spacing: .01em; line-height: 20px; white-space: nowrap; transition: background .2s, color .2s, box-shadow .2s;
}
.topbar .topbar-offers a { background: var(--gold); color: var(--forest); }
.topbar .topbar-offers a:hover { background: var(--gold-hover); color: var(--forest); }
.topbar .topbar-utility a { background: var(--cream); color: var(--forest); }
.topbar .topbar-utility a:hover { background: #fff; color: var(--forest); }
.topbar .topbar-offers a.is-active { color: var(--forest); box-shadow: inset 0 0 0 2px var(--forest); }
.topbar .topbar-utility a.is-active { color: var(--forest); box-shadow: inset 0 0 0 2px var(--gold); }
.topbar nav { flex-wrap: nowrap; gap: 10px; }
.topbar-ticker {
  background: none; border: 0;
  height: 32px; display: flex; align-items: center;
  font-size: 1.12rem; font-weight: 600; letter-spacing: .005em; color: #fff;
}
.topbar-ticker .ticker-track { align-items: center; }
.ticker-item { color: #fff; }
@media (min-width: 761px) {
  .topbar .container { height: 46px; padding-top: 0; padding-bottom: 0; flex-wrap: nowrap; }
}
@media (max-width: 760px) {
  .topbar nav { flex-wrap: wrap; }
}


/* ---------- v1.0.40: full-width menus with intro + page cards (Who we are, Working together) ---------- */
.site-header { z-index: 30; }
.main-nav .cards-panel a, .main-nav .cards-panel a * { text-transform: none; }
.cp-wrap { max-width: 1280px; margin: 0 auto; padding: 36px var(--gutter) 40px; display: grid; gap: 40px; align-items: stretch; }
.cp-wrap.has-intro { grid-template-columns: 290px minmax(0, 1fr); }
.cp-intro { padding-right: 36px; border-right: 1px solid rgba(255, 255, 255, .12); display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.cp-eyebrow { display: inline-flex; align-items: center; gap: 10px; color: var(--gold); font: 600 .74rem/1 var(--font-body); letter-spacing: .16em; text-transform: uppercase !important; }
.cp-eyebrow::before { content: ""; width: 24px; height: 2px; background: currentColor; }
.cp-heading { margin: 0; font: 500 1.7rem/1.2 var(--font-display); color: #fff; }
.cp-text { margin: 0; color: var(--on-dark); font-size: .95rem; line-height: 1.65; }
.cp-all { margin-top: 4px; display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; border: 1.5px solid var(--gold); border-radius: 999px; color: var(--gold); font-weight: 600; font-size: .92rem; text-decoration: none; transition: background .2s, color .2s; }
.cp-all:hover { background: var(--gold); color: var(--forest); }
.cp-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); align-content: center; }
.cp-grid.cp-n4, .cp-grid.cp-n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cp-grid.cp-n1 { grid-template-columns: minmax(0, 1fr); }
.cp-wrap:not(.has-intro) .cp-grid.cp-n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cp-card {
  display: flex; flex-direction: column; gap: 16px; padding: 22px;
  background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); border-radius: 16px;
  text-decoration: none; text-align: left; color: var(--on-dark);
  transition: transform .22s, background .22s, border-color .22s, box-shadow .22s;
}
.cp-grid.cp-n4 .cp-card { flex-direction: row; align-items: flex-start; }
.cp-ico {
  width: 48px; height: 48px; flex: none; border-radius: 13px;
  background: rgba(217, 164, 65, .14); color: var(--gold);
  display: grid; place-items: center; transition: background .22s, color .22s;
}
.cp-ico svg { width: 24px; height: 24px; }
.cp-body { display: flex; flex-direction: column; gap: 8px; flex: 1; min-width: 0; }
.cp-title { font: 600 1.18rem/1.25 var(--font-display); color: #fff; transition: color .22s; }
.cp-desc { font-size: .9rem; line-height: 1.6; color: var(--on-dark); transition: color .22s; }
.cp-link { margin-top: auto; padding-top: 4px; font-weight: 600; font-size: .9rem; color: var(--gold); transition: color .22s; }
.cp-link span { display: inline-block; transition: transform .2s; }
.cp-card:hover { transform: translateY(-3px); background: var(--cream); border-color: var(--gold); box-shadow: 0 16px 34px rgba(0, 0, 0, .35); }
.cp-card:hover .cp-ico { background: var(--gold); color: var(--forest); }
.cp-card:hover .cp-title { color: var(--forest); }
.cp-card:hover .cp-desc { color: var(--muted); }
.cp-card:hover .cp-link { color: var(--forest); }
.cp-card:hover .cp-link span { transform: translateX(4px); }
.cp-card:focus-visible, .cp-all:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
@media (min-width: 1081px) {
  .main-nav li.has-cards { position: static; }
  .dropdown.cards-panel {
    left: 0; right: 0; top: 100%; width: auto; min-width: 0; max-width: none;
    border: 0; border-top: 1px solid rgba(217, 164, 65, .35); border-radius: 0; padding: 0;
    background: radial-gradient(900px 320px at 90% 0, rgba(47, 125, 91, .28), transparent 70%), linear-gradient(135deg, var(--forest-3), var(--forest));
    box-shadow: 0 28px 50px rgba(0, 0, 0, .38); transform: translateY(6px);
  }
  .has-cards:hover > .cards-panel, .has-cards.is-open > .cards-panel { opacity: 1; visibility: visible; transform: none; }
  .cards-panel::before { content: ""; position: absolute; left: 0; right: 0; top: -40px; height: 40px; }
}
@media (max-width: 1280px) and (min-width: 1081px) {
  .cp-wrap.has-intro { grid-template-columns: 240px minmax(0, 1fr); gap: 28px; }
  .cp-intro { padding-right: 24px; }
  .cp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1080px) {
  .cp-wrap, .cp-wrap.has-intro { display: block; padding: 4px; max-width: none; }
  .cp-intro { display: none; }
  .cp-grid, .cp-grid.cp-n4, .cp-grid.cp-n2 { display: block; }
  .cp-card, .cp-grid.cp-n4 .cp-card { display: block; padding: 10px 12px; background: none; border: 0; border-radius: 8px; box-shadow: none; }
  .cp-ico, .cp-desc, .cp-link { display: none; }
  .cp-title { font: 500 .98rem/1.3 var(--font-body); color: var(--on-dark-strong); }
  .cp-card:hover { transform: none; box-shadow: none; background: var(--forest-line); }
  .cp-card:hover .cp-title { color: var(--gold); }
}

/* v1.0.41: make the panel's own link styles win over the generic dropdown link styles */
.main-nav .cards-panel .cp-all { color: #fff; background: transparent; padding: 10px 20px; border-radius: 999px; display: inline-flex; }
.main-nav .cards-panel .cp-all:hover { background: var(--gold); color: var(--forest); }
.main-nav .cards-panel .cp-card { display: flex; flex-direction: column; gap: 16px; padding: 22px; border-radius: 16px; color: var(--on-dark); background: rgba(255, 255, 255, .05); }
.main-nav .cards-panel .cp-grid.cp-n4 .cp-card { flex-direction: row; align-items: flex-start; }
.main-nav .cards-panel .cp-card:hover { background: var(--cream); color: var(--muted); }
@media (max-width: 1080px) {
  .main-nav .cards-panel .cp-card, .main-nav .cards-panel .cp-grid.cp-n4 .cp-card { display: block; padding: 10px 12px; border-radius: 8px; background: none; }
  .main-nav .cards-panel .cp-card:hover { background: var(--forest-line); }
  .main-nav .cards-panel .cp-all { display: none; }
}

/* Client login page */
.cl-wrap { max-width: 460px; margin: 0 auto; }
.cl-card { background: #fff; border: 1px solid var(--line, #E4DBC8); border-radius: 20px; padding: 36px 34px; box-shadow: 0 18px 44px rgba(18, 55, 42, .10); }
.cl-card h2 { margin: 0 0 4px; font-size: 1.7rem; color: var(--forest); }
.cl-sub { margin: 0 0 22px; color: var(--muted, #55615A); }
.cl-card label { display: block; font-weight: 600; font-size: .9rem; color: var(--forest); margin: 14px 0 6px; }
.cl-card input[type=text], .cl-card input[type=password] { width: 100%; box-sizing: border-box; padding: 13px 14px; border: 1.5px solid var(--line, #E4DBC8); border-radius: 12px; font: inherit; background: var(--cream, #FBF8F1); color: var(--ink, #2B3A31); }
.cl-card input:focus { outline: none; border-color: var(--gold); background: #fff; }
.cl-btn { width: 100%; margin-top: 22px; justify-content: center; }
.cl-err { background: #FDECEC; color: #B3201F; border: 1px solid #F3C5C4; border-radius: 10px; padding: 10px 14px; margin: 0 0 4px; font-weight: 600; }
.cl-help { margin: 18px 0 0; font-size: .9rem; color: var(--muted, #55615A); text-align: center; }
.cl-help a { color: var(--forest); font-weight: 600; }

/* Pricing tabs: the tab already names the package, so hide the big heading above each table. */
.js .ptabs-group .ppanel > h2:first-child,
.js .ptabs-group .ppanel > h3:first-child { display: none; }
.js .ptabs + .ptabs-group { margin-top: 24px; }

/* All inner-page headers: left aligned, breadcrumb under the buttons */
.page-hero .container { display: flex; flex-direction: column; align-items: flex-start; }
.page-hero .breadcrumb { order: 10; margin: 28px 0 0; }
.page-hero .btn-row { margin-bottom: 0; }

/* All inner-page headers: compact, height follows the content */
.page-hero .container { padding-top: 22px; padding-bottom: 22px; }
.page-hero .eyebrow { margin: 0 0 6px; }
.page-hero h1 { margin: 0 0 10px; line-height: 1.1; }
.page-hero .lead { margin: 0 0 16px; }
.page-hero .breadcrumb { margin: 16px 0 0; }

/* Text with image pattern */
.about-split { gap: 56px; align-items: center; }
.about-img { margin: 0; }
.about-img img { width: 100%; height: auto; display: block; border-radius: var(--radius-lg, 20px); box-shadow: 0 18px 44px rgba(18, 55, 42, .14); }
@media (max-width: 781px) { .about-split { gap: 28px; } }

/* Text with image: the photo always fills the text height and never makes the box taller */
@media (min-width: 782px) {
  .about-split { gap: 4.4%; align-items: stretch; flex-wrap: nowrap; }
  .about-split > .wp-block-column { align-self: stretch !important; }
  .about-split > .wp-block-column:first-child { flex-basis: 51% !important; }
  .about-split > .wp-block-column:last-child { flex-basis: 44.6% !important; position: relative; min-height: 200px; }
  .about-split .about-img { position: absolute; inset: 0; margin: 0; }
  .about-split .about-img { display: flex; align-items: center; justify-content: center; }
  .about-split .about-img img { position: static; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
}
@media (max-width: 781px) {
  .about-split .about-img img { width: 100%; height: auto; object-fit: contain; }
}

/* Text with image: same space below as above (the next section already adds its own top space) */
.section:has(.about-split) { padding-bottom: 0; }
.section:has(.about-split) .about-split { margin-bottom: 0; }

/* "Working Together" menu: light green panel, dark green boxes */
@media (min-width: 1081px) {
  .main-nav .cp-swap .dropdown.cards-panel { background: var(--gold); border-color: rgba(18, 55, 42, .18); }
  .main-nav .cp-swap .cp-intro { border-right-color: rgba(18, 55, 42, .22); }
  .main-nav .cp-swap .cp-eyebrow { color: var(--forest); }
  .main-nav .cp-swap .cp-heading { color: var(--forest); }
  .main-nav .cp-swap .cp-text { color: #2A3A2F; }
  .main-nav .cp-swap .cp-all { color: var(--forest); border-color: var(--forest); }
  .main-nav .cp-swap .cp-all:hover { background: var(--forest); color: var(--gold); border-color: var(--forest); }
  .main-nav .cp-swap .cards-panel .cp-card { background: var(--forest); border-color: var(--forest); color: var(--on-dark); }
  .main-nav .cp-swap .cards-panel .cp-ico { background: rgba(217, 164, 65, .16); color: var(--gold); }
  .main-nav .cp-swap .cards-panel .cp-title { color: #fff; }
  .main-nav .cp-swap .cards-panel .cp-desc { color: var(--on-dark); }
  .main-nav .cp-swap .cards-panel .cp-link { color: var(--gold); }
  .main-nav .cp-swap .cards-panel .cp-card:hover { background: var(--forest-2); border-color: var(--gold); }
  .main-nav .cp-swap .cards-panel .cp-card:hover .cp-ico { background: var(--gold); color: var(--forest); }
  .main-nav .cp-swap .cards-panel .cp-card:hover .cp-title { color: #fff; }
  .main-nav .cp-swap .cards-panel .cp-card:hover .cp-desc { color: var(--on-dark); }
  .main-nav .cp-swap .cards-panel .cp-card:hover .cp-link { color: var(--gold); }
}

/* Working Together: first box text in the Let's Talk gold */
@media (min-width: 1081px) {
  .main-nav .cp-swap .cp-grid .cp-card:first-child .cp-title,
  .main-nav .cp-swap .cp-grid .cp-card:first-child .cp-desc,
  .main-nav .cp-swap .cp-grid .cp-card:first-child .cp-link,
  .main-nav .cp-swap .cp-grid .cp-card:first-child:hover .cp-title,
  .main-nav .cp-swap .cp-grid .cp-card:first-child:hover .cp-desc,
  .main-nav .cp-swap .cp-grid .cp-card:first-child:hover .cp-link { color: var(--gold); }
}

/* "Who We Are" menu: gold panel, dark green boxes with white text */
@media (min-width: 1081px) {
  .main-nav .cp-gold .dropdown.cards-panel { background: var(--gold); border-color: rgba(18, 55, 42, .18); }
  .main-nav .cp-gold .cp-intro { border-right-color: rgba(18, 55, 42, .25); }
  .main-nav .cp-gold .cp-eyebrow, .main-nav .cp-gold .cp-heading { color: var(--forest); }
  .main-nav .cp-gold .cp-text { color: #2A3A2F; }
  .main-nav .cp-gold .cp-all { color: var(--forest); border-color: var(--forest); }
  .main-nav .cp-gold .cp-all:hover { background: var(--forest); color: var(--gold); border-color: var(--forest); }
  .main-nav .cp-gold .cards-panel .cp-card { background: var(--forest); border-color: var(--forest); }
  .main-nav .cp-gold .cards-panel .cp-ico { background: rgba(217, 164, 65, .16); color: var(--gold); }
  .main-nav .cp-gold .cards-panel .cp-title,
  .main-nav .cp-gold .cards-panel .cp-desc,
  .main-nav .cp-gold .cards-panel .cp-card:hover .cp-title,
  .main-nav .cp-gold .cards-panel .cp-card:hover .cp-desc { color: #fff; }
  .main-nav .cp-gold .cards-panel .cp-link,
  .main-nav .cp-gold .cards-panel .cp-card:hover .cp-link { color: var(--gold); }
  .main-nav .cp-gold .cards-panel .cp-card:hover { background: var(--forest-2); border-color: var(--forest); }
  .main-nav .cp-gold .cards-panel .cp-card:hover .cp-ico { background: var(--gold); color: var(--forest); }
}

/* Who We Are: About Us box text in gold */
@media (min-width: 1081px) {
  .main-nav .cp-gold .cp-grid .cp-card:first-child .cp-title,
  .main-nav .cp-gold .cp-grid .cp-card:first-child .cp-desc,
  .main-nav .cp-gold .cp-grid .cp-card:first-child .cp-link,
  .main-nav .cp-gold .cp-grid .cp-card:first-child:hover .cp-title,
  .main-nav .cp-gold .cp-grid .cp-card:first-child:hover .cp-desc,
  .main-nav .cp-gold .cp-grid .cp-card:first-child:hover .cp-link { color: var(--gold); }
}

/* ===== Inter Font Page (test): Inter font, reference sizes, dark text and rounded boxes ===== */
.pg-inter-font-page,
.pg-inter-font-page * { font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif !important; }
.pg-inter-font-page { color: #444; }
.pg-inter-font-page p, .pg-inter-font-page li { font-size: 15px; line-height: 1.6; font-weight: 400; color: #444; }
.pg-inter-font-page h1, .pg-inter-font-page h2 { font-size: 42px; line-height: 1.3; font-weight: 700; letter-spacing: 1px; text-transform: none; }
.pg-inter-font-page h3 { font-size: 30px; line-height: 1.4; font-weight: 600; letter-spacing: 0; text-transform: none; }
.pg-inter-font-page h4 { font-size: 26px; line-height: 1.1; font-weight: 700; letter-spacing: 0; text-transform: none; }
.pg-inter-font-page .entry-content h2 { color: #090F25; }
.pg-inter-font-page .entry-content h3, .pg-inter-font-page .entry-content h4 { color: #2C353D; }
.pg-inter-font-page .eyebrow { font-size: 18px; font-weight: 700; letter-spacing: 1px; text-transform: capitalize; }
.pg-inter-font-page .page-hero .lead { font-size: 16px; line-height: 1.6; }
.pg-inter-font-page .btn, .pg-inter-font-page .cp-all { font-size: 18px; font-weight: 700; border-radius: 8px; }
.pg-inter-font-page .card, .pg-inter-font-page .about-img img { border-radius: 10px; }
.pg-inter-font-page .stat-value { font-size: 42px; font-weight: 700; }
/* light text on dark areas */
.pg-inter-font-page .section--forest h2, .pg-inter-font-page .section--forest h3, .pg-inter-font-page .section--forest h4,
.pg-inter-font-page .on-dark h1, .pg-inter-font-page .on-dark h2 { color: var(--cream); }
.pg-inter-font-page .section--forest p, .pg-inter-font-page .section--forest li { color: var(--on-dark); }
@media (max-width: 781px) {
  .pg-inter-font-page h1, .pg-inter-font-page h2 { font-size: 30px; }
  .pg-inter-font-page h3 { font-size: 24px; }
  .pg-inter-font-page h4 { font-size: 22px; }
}
.pg-inter-font-page .page-hero p, .pg-inter-font-page .page-hero .lead { color: #fff; }

/* Pricing tabs: bigger, bolder text, and the same space above the tabs as below them */
.ptab { font-size: 1.1rem; font-weight: 700; padding: 12px 24px; }
.section:has(.ptabs-group) { padding-top: 60px; }
.js .ptabs { margin-top: 0; }

.nav-caret { width: 9px; height: 9px; margin-left: 6px; }

/* v1.0.123: Resources sub menu - gold panel, dark green boxes, every link visible */
@media (min-width: 1081px) {
  .main-nav li.mega-boxes { position: static; }
  .main-nav .mega-boxes > .dropdown.mega {
    left: 0; right: 0; top: 100%; width: auto; max-width: none; max-height: none; overflow: visible;
    transform: translateY(6px); border: 0; border-radius: 0; background: var(--gold);
    box-shadow: 0 28px 50px rgba(0, 0, 0, .38);
    display: flex; gap: 14px; padding: 26px max(16px, calc((100vw - 1560px) / 2)) 30px; align-items: stretch;
  }
  .main-nav .mega-boxes:hover > .dropdown.mega, .main-nav .mega-boxes.is-open > .dropdown.mega { transform: none; }
  .main-nav .mega-boxes > .dropdown.mega::before { content: ""; position: absolute; left: 0; right: 0; top: -40px; height: 40px; }
  .mega-boxes .mega-col { flex: 1 1 0; min-width: 0; background: var(--forest); border-radius: 16px; padding: 18px; color: #fff; }
  .mega-boxes .mega-col { flex: 1.45 1 0; }
  .mega-boxes .mega-col.is-wide { flex: 2.2 1 0; }
  .mega-boxes .mega-col.is-more { flex: .9 1 0; }
  .mega-boxes .mega-col h3 { display: flex; align-items: center; gap: 12px; margin: 0 0 10px; font: 600 1.05rem/1.2 var(--font-display); letter-spacing: 0; text-transform: none; color: #fff; }
  .mega-boxes .mega-col h3 a { color: #fff; }
  .mega-boxes .mega-ico { width: 40px; height: 40px; border-radius: 12px; background: rgba(217, 164, 65, .16); color: var(--gold); display: grid; place-items: center; flex: none; }
  .mega-boxes .mega-ico svg { width: 20px; height: 20px; }
  .mega-boxes .mega-col ul { margin: 0; }
  .mega-boxes .mega-col.is-wide ul { columns: 2; column-gap: 20px; }
  .mega-boxes .mega-col li { break-inside: avoid; border: 0; }
  .main-nav .mega-boxes .mega-col a { display: block; padding: 4px 4px; border-radius: 0; font-size: .82rem; line-height: 1.35; color: #fff; text-transform: none; background: none; }
  .main-nav .mega-boxes .mega-col li a { display: block !important; position: relative; padding: 4px 4px 4px 22px !important; text-indent: 0; }
  .main-nav .mega-boxes .mega-col li a::before { content: "\2192"; color: var(--gold); position: absolute; left: 4px; top: 4px; }
  .main-nav .mega-boxes .mega-col a:hover { color: var(--gold); background: none; }
  .main-nav .mega-boxes .mega-col.is-more a { font-weight: 600; font-size: .86rem; }
  .main-nav .mega-boxes .mega-col.is-more li:last-child a { color: var(--gold); }
}
@media (max-width: 1080px) {
  .mega-boxes .mega-ico { display: none; }
  .mega-boxes .mega-col h3 { margin: 8px 12px 4px; }
}

/* v1.0.127 pricing tables: compact size (Idea 2) */
.ppanel .pt-wrap, .ppanel .wp-block-table.pt-wrap { max-width: 1000px; margin-left: auto; margin-right: auto; }
.pt-wrap table, .ptable { min-width: 720px; width: 100%; table-layout: fixed; font-size: .9rem; }
.pt-wrap th, .pt-wrap td, .ptable th, .ptable td { padding: 5px 10px; }
.pt-wrap thead th, .pt-wrap thead td, .ptable thead th { padding: 9px 8px; font-size: .78rem; }
.pt-wrap thead :is(th, td):first-child, .ptable thead th.pt-corner { font-size: 1.05rem; width: 36%; }
.pt-wrap tbody th, .pt-wrap tfoot th, .pt-wrap tbody td:first-child, .pt-wrap tfoot td:first-child,
.ptable tbody th, .ptable tfoot th { width: 36%; min-width: 0; font-size: .86rem; line-height: 1.25; }
.pt-wrap thead th:not(:first-child), .pt-wrap tbody td:not(:first-child), .ptable thead th:not(.pt-corner), .ptable td { min-width: 0; }
.pt-wrap tbody td:not(:first-child), .ptable td { font-size: .9rem; white-space: nowrap; }
.pt-wrap tbody tr:first-child td { font-size: .86rem; }
.pt-yes { width: 20px; height: 20px; }
.pt-yes svg { width: 11px; height: 11px; }
.pt-num { min-width: 20px; height: 20px; padding: 0 6px; font-size: .8rem; }
.pt-wrap tfoot tr:first-child :is(th, td), .pt-price-row td, .pt-price-row th { padding-top: 9px; }
.pt-wrap tfoot tr:first-child :is(th, td) { font-size: 1.25rem; }
.pt-wrap tfoot tr:first-child :is(th, td):first-child { font-size: .86rem; }
.pt-price { font-size: 1.25rem; }
.pt-price--talk { font-size: 1.15rem; }
.pt-wrap tfoot small, .pt-vat { font-size: .7rem; margin-top: 2px; }
.pt-wrap tfoot tr:last-child :is(th, td), .pt-btn-row td { padding-bottom: 9px; }
.pt-wrap tfoot a { min-height: 30px; padding: 5px 8px; font-size: .8rem; white-space: nowrap; }
.pt-btn-row .btn { min-height: 30px; padding: 5px 8px; font-size: .8rem; }
@media (max-width: 760px) {
  .pt-wrap tbody th, .pt-wrap tfoot th, .pt-wrap tbody td:first-child, .pt-wrap tfoot td:first-child { min-width: 150px; }
  .pt-wrap table, .ptable { min-width: 680px; }
}

/* v1.0.128 pricing: tabs bar and table share one width, labels on one line */
@media (min-width: 761px) {
  .ptabs, .ppanel .pt-wrap, .ppanel .wp-block-table.pt-wrap { width: min(1100px, 100%); max-width: 1100px; margin-left: auto; margin-right: auto; }
  .ptabs { box-sizing: border-box; flex-wrap: nowrap; }
  .ptabs .ptab { flex: 1 1 auto; text-align: center; }
  .pt-wrap thead :is(th, td):first-child, .pt-wrap tbody th, .pt-wrap tfoot th, .pt-wrap tbody td:first-child, .pt-wrap tfoot td:first-child,
  .ptable thead th.pt-corner, .ptable tbody th, .ptable tfoot th { width: 40%; }
  .pt-wrap tbody th, .pt-wrap tfoot th, .ptable tbody th, .ptable tfoot th { white-space: nowrap; }
}

/* v1.0.129 pricing: every tick / number / dash sits on one centre line in its column and one line per row */
.pt-wrap td, .ptable td { text-align: center; vertical-align: middle; line-height: 1; }
.pt-wrap td > .pt-yes, .pt-wrap td > .pt-no, .pt-wrap td > .pt-num,
.ptable td > .pt-yes, .ptable td > .pt-no, .ptable td > .pt-num {
  display: flex; align-items: center; justify-content: center; width: 24px; min-width: 24px; height: 24px; padding: 0; margin: 0 auto; box-sizing: border-box;
}
.pt-wrap td > .pt-num, .ptable td > .pt-num { border-radius: 50%; }
.pt-wrap td > .pt-no, .ptable td > .pt-no { font-size: 1.1rem; line-height: 1; }
.pt-wrap tbody td:not(:first-child) img, .pt-wrap tbody td:not(:first-child) svg { display: block; margin: 0 auto; }

/* v1.0.130 pricing: the "+" buttons all sit on one vertical line at the right edge of the label column */
@media (min-width: 761px) {
  .pt-wrap tbody th, .pt-wrap tfoot th, .ptable tbody th, .ptable tfoot th { white-space: normal; }
  .pt-wrap tbody th .pt-q { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-width: 0; white-space: normal; overflow: visible; }
  .pt-wrap tbody th .pt-q::after { flex: 0 0 22px; width: 22px; height: 22px; margin-left: auto; }
  .pt-wrap tbody th { padding-right: 12px; }
}

/* v1.0.131 pricing: wider tabs bar and table (both sides), every service name on one line */
@media (min-width: 761px) {
  .ptabs, .ppanel .pt-wrap, .ppanel .wp-block-table.pt-wrap {
    width: min(1280px, calc(100vw - 64px)); max-width: none;
    margin-left: calc(50% - min(640px, calc(50vw - 32px))); margin-right: 0;
  }
  .pt-wrap thead :is(th, td):first-child, .pt-wrap tbody th, .pt-wrap tfoot th, .pt-wrap tbody td:first-child, .pt-wrap tfoot td:first-child,
  .ptable thead th.pt-corner, .ptable tbody th, .ptable tfoot th { width: 44%; }
  .pt-wrap tbody th, .pt-wrap tfoot th, .ptable tbody th, .ptable tfoot th { white-space: nowrap; }
  .pt-wrap tbody th .pt-q { white-space: nowrap; }
}

/* v1.0.132 ticker: the dot sits exactly in the middle between two messages */
.ticker-group { justify-content: flex-start; }
.ticker-item { flex: 1 1 auto; text-align: center; padding: 0 28px; }
.ticker-item::before { left: 0; transform: translateX(-50%); top: 50%; margin-top: -.5em; line-height: 1; }

/* =========================================================
   v1.0.133 Site-wide font: Inter everywhere, one standard.
   Sizes are unchanged. Header, top bar, footer and the top
   section of each page keep their current weight.
   ========================================================= */
html { font-optical-sizing: auto; }
body, button, input, select, textarea { font-family: var(--font-body); }
body { font-feature-settings: "calt" 1, "kern" 1; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); }
/* one standard for headings in the page content */
h2, h3, h4 { font-weight: 600; }
.page-hero h1, .page-hero h2, .site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4,
.site-header h1, .site-header h2, .site-header h3, .site-header h4 { font-weight: 500; }
/* Inter is a little wider than the old font: tighten slightly where space is tight so nothing moves */
.topbar, .topbar *, .site-header .main-nav, .site-header .main-nav *, .site-footer, .site-footer *, .btn, .ticker-item { letter-spacing: -.012em; }
.eyebrow, .plan h3, .contact-item h3, .mega-col h3, thead th { letter-spacing: .08em; }
/* the "Let's talk" and button text that was already spaced keeps it */
.pk-strip, .pk-strip * { letter-spacing: 0; }

/* ---- contrast: text that was too light for its background ---- */
.pt-no { color: #6F6755; }
.pt-wrap tbody td:not(:first-child), .pt-wrap tbody td:not(:first-child) *, .ptable td { color: var(--green-dark); }
.pt-wrap tbody tr:first-child td { color: var(--forest); }
.pt-wrap tbody td > .pt-num { color: var(--gold); }
.pt-wrap tbody td > .pt-yes { color: var(--green-dark); }
.breadcrumb, .breadcrumb a { color: var(--on-dark-strong); }
.section:not(.section--forest) .eyebrow:not(.eyebrow--light) { color: var(--gold-text); }
.field input::placeholder, .field textarea::placeholder { color: #66746C; }

/* v1.0.134 pricing tabs: regular weight (not bold), same size */
.ptab, .ptabs .ptab, .ptab.is-active { font-weight: 400; }

/* v1.0.135 pricing tabs: force regular weight */
.ptabs .ptab, .ptabs a.ptab, .ptabs .ptab.is-active, .ptabs .ptab:hover { font-weight: 400 !important; font-variation-settings: normal; }

/* v1.0.136 menu arrow: same filled triangle, bigger (15px) */
.nav-caret { width: 15px; height: 15px; margin-left: 4px; flex: none; }
.has-dropdown:hover > .nav-link .nav-caret, .has-cards:hover > .nav-link .nav-caret { transform: rotate(180deg); }

/* v1.0.138 menus: no dead gap between the menu word and its dropdown, small delay before closing */
@media (min-width: 1081px) {
  .has-dropdown > .nav-link { position: relative; }
  .has-dropdown:hover > .nav-link::after, .has-dropdown.is-open > .nav-link::after {
    content: ""; position: absolute; left: -12px; right: -12px; top: 100%; height: 70px; z-index: 5;
  }
  .has-dropdown > .dropdown { transition: opacity .18s, transform .18s, visibility 0s linear .25s; }
  .has-dropdown:hover > .dropdown, .has-dropdown.is-open > .dropdown { transition: opacity .18s, transform .18s, visibility 0s; }
  .main-nav .mega-boxes > .dropdown.mega::before, .cards-panel::before { top: -70px; height: 70px; }
}

/* v1.0.139 menus: switching from one open menu to the next works straight away.
   The invisible bridge now belongs only to the menu word (not the full-width strip that covered the other menu words). */
@media (min-width: 1081px) {
  .main-nav .mega-boxes > .dropdown.mega::before, .cards-panel::before { content: none; display: none; }
  .has-dropdown:hover > .nav-link::after, .has-dropdown.is-open > .nav-link::after { height: 40px; left: -8px; right: -8px; }
  .has-dropdown > .dropdown, .has-dropdown:hover > .dropdown, .has-dropdown.is-open > .dropdown { transition: opacity .15s, transform .15s, visibility 0s; }
  .has-dropdown:hover { z-index: 7; }
}

/* v1.0.140 pricing tabs: regular weight, highest priority */
html body .ptabs a.ptab, html body .ptabs a.ptab.is-active, html body .ptabs a.ptab:hover, html body .ptabs a.ptab:focus {
  font-weight: 400 !important; font-variation-settings: "wght" 400 !important; -webkit-text-stroke: 0 !important; text-shadow: none !important;
}

/* v1.0.141 pricing: space above the tabs equals the space between tabs and table */
.section:has(.ptabs-group) { padding-top: 36px; }

/* v1.0.144 pricing table: "Choose a plan" centred and in capitals; service names start a little further right */
.pt-wrap thead :is(th, td):first-child, .ptable thead th.pt-corner {
  text-align: center; text-transform: uppercase; letter-spacing: .1em; font-family: var(--font-body); font-size: .78rem; font-weight: 600;
}
.pt-wrap tbody tr:not(:first-child) th:first-child, .pt-wrap tbody tr:not(:first-child) td:first-child { padding-left: 20px; }

/* v1.0.145 pricing table: "Annual Turnover" and "Price" start at the same point as the service names */
.pt-wrap tbody th:first-child, .pt-wrap tbody td:first-child,
.pt-wrap tfoot th:first-child, .pt-wrap tfoot td:first-child { padding-left: 20px; }

/* v1.0.147 "Additional services" table: same width, font sizes and compact rows as the package table above it */
@media (min-width: 761px) {
  .ppanel figure.pt-extras, .ppanel .pt-extras-title, .ppanel > h3 {
    width: min(1280px, calc(100vw - 64px)); max-width: none;
    margin-left: calc(50% - min(640px, calc(50vw - 32px))); margin-right: 0;
  }
}
.ppanel > h3 { margin-top: 28px; margin-bottom: 12px; font-size: 1.15rem; }
.pt-extras table { width: 100%; min-width: 0; table-layout: fixed; font-size: .9rem; }
.pt-extras th, .pt-extras td { padding: 5px 10px; line-height: 1.3; vertical-align: middle; text-align: left; font-size: .86rem; }
.pt-extras thead th { padding: 9px 8px 9px 20px; font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; line-height: 1.2; }
.pt-extras tbody td:first-child { padding-left: 20px; }
.pt-extras tbody td:nth-child(2) { color: var(--ink); }
.pt-extras tbody td:last-child, .pt-extras thead th:last-child { font-size: .9rem; font-weight: 600; color: var(--forest); }
.pt-extras thead th:last-child { color: var(--cream); font-size: .78rem; }
.pt-extras thead th:first-child, .pt-extras tbody td:first-child { width: 38%; }
.pt-extras thead th:nth-child(2), .pt-extras tbody td:nth-child(2) { width: 38%; }
.pt-extras thead th:last-child, .pt-extras tbody td:last-child { width: 24%; }
.pt-extras tbody td { border-bottom: 1px solid var(--line); }
.pt-extras tbody tr:last-child td { border-bottom: 0; }
.pt-extras tbody td { white-space: normal; }
@media (max-width: 760px) { .pt-extras { overflow-x: auto; } .pt-extras table { min-width: 620px; } }

/* v1.0.148 pricing footnote: same width and left edge as the tables, one line (edit it in the block editor: it is a normal paragraph with the class pt-note) */
.pt-note, .pt-note.has-text-align-center { text-align: left; margin-top: 16px; margin-bottom: 0; font-size: .86rem; max-width: none; }
@media (min-width: 981px) {
  .pt-note, .pt-note.has-text-align-center {
    width: min(1280px, calc(100vw - 64px));
    margin-left: calc(50% - min(640px, calc(50vw - 32px))); margin-right: 0;
    padding-left: 20px; box-sizing: border-box; white-space: nowrap;
  }
}

/* v1.0.151 every button and button-like link is written in Title Case (first letter of each word capital) */
.btn, a.btn, button.btn, .hp .btn, .hp a.btn, .hp button, .wp-block-button__link, .wp-element-button,
input[type="submit"], input[type="button"], button[type="submit"],
.pt-wrap tfoot a, .pt-btn-row .btn, .pk-all a, .cp-all, .cp-link, .topbar-utility a, .topbar-offers a, .nav-mobile-cta a,
.hp .tslv, .hp .hmc a, .hp .hmtel, .header-cta .btn, .btn-row a { text-transform: capitalize; }

/* v1.0.152 opened description stays inside the label column (no extra left padding on the detail row) */
.pt-wrap tbody tr.pt-detail td:first-child, .pt-wrap tbody tr.pt-detail td { padding: 0 !important; }
.pt-wrap .pt-detail-inner { max-width: 100%; }

/* v1.0.153 "Additional services": header cells centred */
.pt-extras thead th, .pt-extras thead td { text-align: center; padding-left: 8px; padding-right: 8px; }

/* v1.0.154 sub menu boxes: every box heading and every link has the same size and weight (Resources and Core Services) */
@media (min-width: 1081px) {
  .mega-boxes .mega-col h3, .mega-boxes .mega-col h3 .mega-h, .mega-boxes .mega-col h3 a, .main-nav .mega-boxes .mega-col h3 a {
    font-size: .95rem; font-weight: 600; line-height: 1.2; letter-spacing: 0; text-transform: none; color: #fff;
  }
  .main-nav .mega-boxes .mega-col.is-more a, .main-nav .mega-boxes .mega-col a { font-size: .82rem; font-weight: 400; line-height: 1.35; }
  .main-nav .mega-boxes .mega-col.is-more li:last-child a { color: var(--gold); }
}

/* v1.0.155 menu: a page inside a menu item shows that item in the active (gold) colour; link-type menu words look like the others */
a.nav-link { text-decoration: none; }
.nav-link.is-active, .nav-link.is-active:hover { color: var(--gold); }

/* v1.0.156 the page you are on is marked inside the sub menus too */
@media (min-width: 1081px) {
  .main-nav .mega-boxes .mega-col a.is-active, .main-nav .mega-boxes .mega-col a.is-active:hover { color: var(--gold); font-weight: 600; background: none; }
  .main-nav .mega-boxes .mega-col a.is-active::before { content: "\2192"; color: var(--gold); }
  .mega-boxes .mega-col.has-active h3, .mega-boxes .mega-col.has-active h3 a { color: var(--gold); }
  .main-nav .cards-panel .cp-card.is-active { border-color: var(--gold); box-shadow: 0 0 0 2px var(--gold) inset; }
  .main-nav .cards-panel .cp-card.is-active .cp-title { color: var(--gold); }
}
.dropdown a.is-active { color: var(--gold-text); }
@media (max-width: 1080px) {
  .main-nav .mega-boxes .mega-col a.is-active, .main-nav .cp-card.is-active .cp-title { color: var(--gold); }
}

/* v1.0.158 Text with image: narrower text (about 40%), wider image at its natural ratio */
@media (min-width: 782px) {
  .about-split { gap: 4%; align-items: center; }
  .about-split > .wp-block-column { align-self: center !important; }
  .about-split > .wp-block-column:first-child { flex-basis: 40% !important; }
  .about-split > .wp-block-column:last-child { flex-basis: 56% !important; position: static; min-height: 0; }
  .about-split .about-img { position: static; display: block; margin: 0; }
  .about-split .about-img img { width: 100%; height: auto; max-height: none; object-fit: contain; }
}

/* v1.0.164 Text with image: plain image, no drop shadow, border or rounded frame */
.about-split .about-img img, .about-img img { box-shadow: none !important; border: 0 !important; border-radius: 0 !important; outline: 0 !important; }
.about-split .about-img { box-shadow: none !important; border: 0 !important; background: transparent !important; }

/* v1.0.165 FAQ split: static left (heading + contact card), scrolling FAQ list on the right */
.eyebrow--bar { display: inline-flex; align-items: center; gap: 10px; }
.eyebrow--bar::before { content: ""; width: 28px; height: 2px; background: currentColor; flex: none; }
.faq-split { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.faq-split .faq-left h2 { margin: 0 0 1.5rem; }
.faq-card { background: var(--card, #fff); border: 1px solid var(--line); border-radius: 20px; padding: 28px; max-width: 460px; }
.section--sand .faq-card { background: var(--cream); border-color: transparent; }
.faq-card__icon { width: 52px; height: 52px; border-radius: 50%; background: var(--forest); margin-bottom: 18px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D9A441' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-12.2 7.5L3 20.5l1.6-5A8.4 8.4 0 1 1 21 11.5z'/%3E%3Cpath d='M8.5 10.5h7M8.5 13.5h4.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; background-size: 26px; }
.faq-card h3 { margin: 0 0 .5rem; font-size: 1.25rem; color: var(--forest); }
.faq-card p { color: var(--muted); margin: 0 0 1.2rem; }
.faq-card .wp-block-buttons { margin: 0; }
.faq-right { min-width: 0; }
.faq-split .faq-scroll { max-height: 560px; overflow-y: auto; padding-right: 10px; scrollbar-width: thin; scrollbar-color: var(--green) transparent; }
.faq-split .faq-scroll::-webkit-scrollbar { width: 6px; }
.faq-split .faq-scroll::-webkit-scrollbar-track { background: transparent; }
.faq-split .faq-scroll::-webkit-scrollbar-thumb { background: var(--green); border-radius: 6px; }
.faq-split .faq-scroll details { border-radius: 16px; }
.faq-split .faq-scroll summary { padding: 20px 22px; }
@media (max-width: 860px) {
  .faq-split { grid-template-columns: 1fr; }
  .faq-card { max-width: none; }
  .faq-split .faq-scroll { max-height: 480px; }
}

/* v1.0.166 FAQ split: compact cards like the reference, 4 visible then scroll */
.faq-split { grid-template-columns: minmax(0, 5fr) minmax(0, 8fr); gap: clamp(28px, 4vw, 56px); }
.faq-split .faq-left h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); margin: 0 0 1.25rem; line-height: 1.15; }
.faq-card { max-width: none; padding: 24px; border-radius: 16px; }
.faq-card__icon { width: 44px; height: 44px; background-size: 22px; margin-bottom: 14px; }
.faq-card h3 { font-size: 1.3rem; margin: 0 0 .4rem; }
.faq-card p { font-size: .95rem; line-height: 1.6; margin: 0 0 1.1rem; }
.faq-card .wp-block-buttons { display: block; }
.faq-card .wp-block-button { width: 100%; }
.faq-card .wp-block-button__link { display: block; width: 100%; text-align: center; padding: 12px 18px; font-size: .95rem; }
.faq-split .faq-scroll { gap: 8px; max-height: none; }
.faq-split .faq-scroll details { border-radius: 10px; }
.faq-split .faq-scroll summary { padding: 14px 18px; font-size: .95rem; }
.faq-split .faq-scroll summary::after { width: 24px; height: 24px; font-size: 1rem; }
.faq-split .faq-scroll details > :not(summary) { padding: 0 18px 14px; font-size: .92rem; }
.faq-split .faq-scroll details > p { margin: 0; padding-bottom: 14px; }
@media (max-width: 860px) { .faq-split { grid-template-columns: 1fr; } }

/* v1.0.167 FAQ list fills the height of the left column, the rest scrolls */
.faq-split { align-items: stretch; }
.faq-split .faq-right { position: relative; min-height: 320px; }
.faq-split .faq-scroll { position: absolute; inset: 0; max-height: none !important; overflow-y: auto; align-content: start; }
@media (max-width: 860px) {
  .faq-split .faq-right { min-height: 0; }
  .faq-split .faq-scroll { position: static; max-height: 480px !important; }
}
.faq-split .faq-scroll { display: flex; flex-direction: column; gap: 8px; }
.faq-split .faq-scroll > * { flex: none; }

/* v1.0.169 FAQ label keeps its typed case ("FAQs") */
.faq-split .eyebrow--bar { text-transform: none; letter-spacing: .06em; }

/* v1.0.170 lowercase plural s inside upper-case text */
.lc-s { text-transform: none !important; }

/* ---------- v1.0.172: top bar on mobile - offer buttons sit side by side, ticker centred below ---------- */
@media (max-width: 760px) {
  .topbar .container { flex-direction: column; align-items: stretch; gap: 8px; padding-top: 10px; padding-bottom: 8px; }
  .topbar .topbar-offers { display: grid; grid-template-columns: repeat(auto-fill, minmax(135px, 1fr)); gap: 8px; width: 100%; flex-wrap: unset; }
  .topbar .topbar-offers a { justify-content: center; text-align: center; white-space: normal; padding: 8px 10px; font-size: .88rem; line-height: 1.2; min-height: 38px; }
  .topbar-ticker { order: 0; flex-basis: auto; width: 100%; height: auto; min-height: 24px; font-size: .98rem; }
}

/* ---------- v1.0.176: sub-menu panel headings in Title Case (first letter of every word capital) ---------- */
.cp-heading, .cp-title { text-transform: capitalize; }

/* ---------- v1.0.177: sub-menu buttons / links in Title Case ---------- */
.cp-all, .cp-link { text-transform: capitalize; }

/* ---------- v1.0.178: Additional services (and other normal tables) - column widths follow the content, any number of columns ---------- */
.pt-extras { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.pt-extras table { table-layout: auto; width: 100%; min-width: 0; }
.pt-extras thead th:nth-child(n), .pt-extras tbody td:nth-child(n) { width: auto; }
.pt-extras th, .pt-extras td { overflow-wrap: break-word; }
.pt-extras tbody td { min-width: 90px; }
/* the 2nd column is normally the long description: let it take the spare room, keep short columns tight */
.pt-extras tbody td:nth-child(2) { min-width: 220px; }
.pt-extras tbody td:first-child { min-width: 160px; }
/* with 4 or more columns, do not force the last column bold (it is no longer necessarily the price) */
.pt-extras table:has(thead th:nth-child(4)) tbody td:last-child, .pt-extras table:has(thead th:nth-child(4)) thead th:last-child { font-weight: inherit; }
.pt-extras table:has(thead th:nth-child(4)) tbody td:last-child { color: inherit; font-size: .86rem; }
@media (max-width: 760px) {
  .pt-extras table { min-width: 620px; }
  .pt-extras table:has(thead th:nth-child(4)) { min-width: 780px; }
  .pt-extras table:has(thead th:nth-child(5)) { min-width: 940px; }
  .pt-extras table:has(thead th:nth-child(6)) { min-width: 1100px; }
}
/* tables made with the editor's "fixed width" switch would force equal columns: use content widths instead */
.wp-block-table:not(.pt-wrap) table.has-fixed-layout { table-layout: auto; }

/* v1.0.184 one-line description, compact buttons */
.cta-box .btn-row .btn { padding: 10px 18px; font-size: .9rem; }
@media (min-width: 1100px) { .cta-box p { white-space: nowrap; } }

/* v1.0.185 equal space above and below the bar */
.cta-band { padding: 56px 0; }
@media (max-width: 640px) { .cta-band { padding: 40px 0; } }

/* v1.0.186 call-back popup */
html.cbp-open{overflow:hidden}
.cbp{position:fixed;inset:0;z-index:99999;background:rgba(10,30,22,.62);display:flex;align-items:center;justify-content:center;padding:18px}
.cbp[hidden]{display:none}
.cbp-box{position:relative;background:#fff;border-radius:20px;width:100%;max-width:420px;padding:30px 28px 24px;box-shadow:0 24px 60px rgba(0,0,0,.35);color:#2B3A31}
.cbp-x{position:absolute;right:12px;top:8px;border:0;background:none;font-size:1.8rem;line-height:1;color:#8a948d;cursor:pointer}
.cbp-ey{font:700 .72rem Inter,sans-serif;letter-spacing:.14em;color:#2F7D5B;text-transform:uppercase}
.cbp-box h2{margin:4px 0 6px;font-size:1.45rem;color:var(--forest)}
.cbp-box p{margin:0 0 16px;font-size:.92rem;color:#55615A;line-height:1.5}
.cbp-f{display:flex;flex-direction:column;gap:10px}
.cbp-f input[type=text],.cbp-f input[type=tel],.cbp-f input[type=email]{width:100%;border:1.5px solid #ddd5c2;background:var(--cream);border-radius:10px;padding:12px 14px;font:inherit;font-size:.95rem;color:#2B3A31}
.cbp-f input:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.cbp-f .hp-field{position:absolute;left:-9999px;opacity:0}
.cbp-f .btn{width:100%;justify-content:center;margin-top:4px;cursor:pointer}
.cbp-f small{text-align:center;font-size:.74rem;color:#8a948d}
.cbp-m{color:#c4161a;font-size:.84rem;min-height:0}
.cbp-ok{text-align:center;padding:18px 0}
.cbp-ok b{display:block;font-size:1.3rem;color:var(--forest);margin-bottom:6px}
.cbp-ok[hidden],.cbp-f[hidden]{display:none}

/* v1.0.188 call-back form outside the home page (Contact Us) */
.cbf-split { display: grid; grid-template-columns: 1.2fr 1fr; gap: 50px; align-items: center; }
.cbf-split h2 { margin-top: 0; }
@media (max-width: 900px) { .cbf-split { grid-template-columns: 1fr; gap: 28px; } }
.cbf { position: relative; background: rgba(255,252,245,.97); border: 1px solid var(--line, #e6dfcc); border-radius: 24px; padding: 28px; color: var(--forest); box-shadow: 0 18px 44px rgba(18,55,42,.12); }
.cbf b { display: block; font-size: 1.4rem; font-weight: 500; margin-bottom: 12px; }
.cbf-i { display: block; width: 100%; border: 1px solid var(--line, #e6dfcc); border-radius: 12px; padding: 13px 14px; margin-bottom: 10px; background: #fff; font: inherit; font-size: .93rem; color: var(--ink, #2B3A31); }
.cbf-i:focus { outline: 2px solid var(--gold); border-color: var(--gold); }
.cbf .btn { width: 100%; justify-content: center; border: 0; font: inherit; font-weight: 600; font-size: .94rem; cursor: pointer; }
.cbf-msg { margin: 6px 0 4px; font-size: 1rem; }
.cbf-msg--err { color: #9c2f1c; font-size: .9rem; }

/* v1.0.191 every section sub-heading (eyebrow) has the short line in front, like the FAQ one */
.eyebrow { display: inline-block; }
.eyebrow::before { content: ""; display: inline-block; vertical-align: middle; width: 28px; height: 2px; margin: -2px 10px 0 0; background: currentColor; }

/* v1.0.192 popup label brown like the other labels on light backgrounds */
.cbp-ey { color: #8A6418; }

/* v1.0.194 footer menu links in Title Case */
.footer-grid ul a { text-transform: capitalize; }

/* v1.0.195 Title Case in every menu / sub-menu panel (beats the older "text-transform:none" rules) */
.main-nav .cards-panel a .cp-heading,
.main-nav .cards-panel a .cp-title,
.main-nav .cards-panel a .cp-link,
.main-nav .cards-panel .cp-all,
.main-nav .cards-panel .cp-heading { text-transform: capitalize; }
.main-nav .cards-panel a .cp-desc, .main-nav .cards-panel .cp-text { text-transform: none; }
.main-nav .mega-boxes .mega-col a,
.main-nav .mega-boxes .mega-col h3,
.main-nav .dropdown a { text-transform: capitalize; }
.nav-mobile a, .nav-mobile .cp-title, .nav-mobile .cp-link { text-transform: capitalize; }

/* v1.0.196 section headings carry no side text: label + heading only, on every page */
.section-head p:not(.eyebrow), .section-head .section-intro { display: none; }

/* v1.0.200 every heading on every page is Title Case (first letter of each word capital) */
h1, h2, h3, h4, h5, h6,
.big, .cp-heading, .cp-title, .hs-title,
.hp h1, .hp h2, .hp h3, .hp h4,
.pg-inter-font-page h1, .pg-inter-font-page h2, .pg-inter-font-page h3, .pg-inter-font-page h4,
.wp-block-heading { text-transform: capitalize !important; }
/* footer column headings stay in capitals by design */
.site-footer h2, .site-footer h3 { text-transform: uppercase !important; }

/* v1.0.211 pricing page on phones: tidy tabs + a table you can read (service column narrow, plan columns wide enough) */
@media (max-width: 760px) {
  .ptabs, .ppanel .pt-wrap, .ppanel .wp-block-table.pt-wrap { width: 100%; max-width: 100%; margin-left: 0; margin-right: 0; }
  .ptabs {
    display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 6px; border-radius: 18px; box-sizing: border-box; margin-bottom: 20px;
  }
  .ptabs .ptab, html body .ptabs a.ptab {
    display: flex; align-items: center; justify-content: center; text-align: center; white-space: normal; line-height: 1.2;
    font-size: .92rem; padding: 11px 8px; min-height: 46px; border-radius: 14px; flex: none;
  }
  .ptabs .ptab:last-child:nth-child(odd) { grid-column: 1 / -1; }

  .ppanel .pt-wrap table, .ppanel .ptable, .pt-wrap table { min-width: 0; width: 100%; table-layout: auto; font-size: .8rem; }
  .ppanel .pt-wrap table :is(th, td):first-child,
  .ppanel .pt-wrap tbody th, .ppanel .pt-wrap tfoot th, .ppanel .ptable thead th.pt-corner {
    width: 112px; min-width: 112px; max-width: 112px; padding: 8px 8px; font-size: .78rem; line-height: 1.25; white-space: normal;
  }
  .ppanel .pt-wrap table thead :is(th, td):first-child { font-size: .85rem; }
  .ppanel .pt-wrap table thead th:not(:first-child), .ppanel .pt-wrap table tbody td:not(:first-child), .ppanel .pt-wrap table tfoot td { min-width: 104px; padding: 8px 6px; }
  .ppanel .pt-wrap table thead th:not(:first-child) { font-size: .72rem; line-height: 1.2; white-space: normal; }
  .ppanel .pt-wrap tbody td:not(:first-child), .ppanel .ptable td { white-space: normal; font-size: .8rem; line-height: 1.25; }
  .ppanel .pt-wrap tbody tr:first-child td { font-size: .76rem; }
  .pt-q { gap: 6px; }
  .pt-price, .pt-wrap tfoot tr:first-child :is(th, td) { font-size: 1.1rem; }
  .pt-price--talk { font-size: 1rem; white-space: normal; }
  .pt-wrap tfoot a, .pt-btn-row .btn { white-space: normal; text-align: center; padding: 6px 8px; font-size: .76rem; line-height: 1.2; min-height: 32px; }
  .pt-detail-inner { max-width: calc(100vw - 80px); }
}

/* v1.0.212 pricing tabs on phones: one tab per row, all the same size */
@media (max-width: 760px) {
  .ptabs { grid-template-columns: 1fr; gap: 6px; }
  .ptabs .ptab, html body .ptabs a.ptab { width: 100%; min-height: 48px; justify-content: center; text-align: center; white-space: nowrap; padding: 12px 14px; }
  .ptabs .ptab:last-child:nth-child(odd) { grid-column: auto; }
}

/* v1.0.213 pricing table on phones: the service/description column takes half the screen and stays frozen, plans scroll sideways */
@media (max-width: 760px) {
  .ppanel .pt-wrap table :is(th, td):first-child,
  .ppanel .pt-wrap tbody th, .ppanel .pt-wrap tfoot th, .ppanel .ptable thead th.pt-corner {
    width: 50vw; min-width: 50vw; max-width: 50vw; padding: 10px 10px; font-size: .84rem; box-sizing: border-box;
  }
  .ppanel .pt-wrap table thead :is(th, td):first-child { font-size: .9rem; }
  .ppanel .pt-wrap table thead th:not(:first-child), .ppanel .pt-wrap table tbody td:not(:first-child), .ppanel .pt-wrap table tfoot td { min-width: 112px; }
  .ppanel .pt-wrap tbody th { display: table-cell; }
}

/* v1.0.214 ticker on phones: the dot sits right next to its message, no big gap */
@media (max-width: 760px) {
  .ticker-group { justify-content: flex-start; min-width: 0; }
  .ticker-item { flex: 0 0 auto; text-align: left; padding: 0 22px 0 20px; }
  .ticker-item::before { left: 6px; transform: none; top: 50%; margin-top: -.5em; }
}

/* v1.0.215 top bar on phones: "Switch To Us" + "Let's Talk" buttons in one tidy row (desktop keeps the offer buttons) */
.topbar .topbar-mob, .topbar-mob { display: none; }
@media (max-width: 760px) {
  .topbar .topbar-offers { display: none; }
  .topbar .topbar-mob { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; }
  .topbar .topbar-mob a {
    display: flex; align-items: center; justify-content: center; text-align: center; box-sizing: border-box;
    min-height: 42px; padding: 8px 10px; border-radius: 9px; font-size: .95rem; font-weight: 700; line-height: 1.2;
    background: var(--gold); color: var(--forest); text-decoration: none; text-transform: capitalize; white-space: nowrap;
  }
  .topbar .topbar-mob a:hover { background: var(--gold-hover); color: var(--forest); }
}

/* v1.0.218 "More in ..." links on phones: one per row, all the same size (desktop unchanged) */
@media (max-width: 760px) {
  .chips { flex-direction: column; flex-wrap: nowrap; gap: 8px; }
  .chips a { width: 100%; box-sizing: border-box; text-align: left; border-radius: 14px; min-height: 48px; display: flex; align-items: center; }
}

/* v1.0.221 phones only: top buttons = Free Company Formation / Free Website; sticky "Let's Talk" bar at the bottom (hidden on desktop) */
.mbar { display: none; }
@media (max-width: 760px) {
  .topbar .topbar-mob a { font-size: .8rem; padding: 8px 6px; }
  .mbar {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; box-sizing: border-box;
    background: var(--forest); color: #fff; padding: 9px 14px calc(9px + env(safe-area-inset-bottom));
    font-size: .85rem; box-shadow: 0 -3px 12px rgba(0,0,0,.25);
  }
  .mbar a {
    background: var(--gold); color: var(--forest); font-weight: 700; font-size: .95rem; text-decoration: none;
    padding: 9px 22px; border-radius: 22px; white-space: nowrap; text-transform: capitalize;
  }
  .mbar a:hover { background: var(--gold-hover); color: var(--forest); }
  body { padding-bottom: 64px; }
}

/* v1.0.222 phones: back-to-top button sits above the sticky Let's Talk bar */
@media (max-width: 760px) {
  .to-top { bottom: calc(76px + env(safe-area-inset-bottom)); }
}

/* v1.0.231 add-on boxes (green header bar + cream cards) with the homepage price panel (red pill, struck regular price, big red price) */
.ap { background: #fff; border-radius: 10px; padding: 8px 12px; text-align: left; }
.ap-t { margin-bottom: 4px; }
.ap-b { display: inline-block; background: #e92428; color: #fff; font: 700 .64rem var(--font-body); letter-spacing: .03em; border-radius: 20px; padding: 4px 9px; white-space: nowrap; line-height: 1.2; }
.ap-p { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; font-family: var(--font-display); line-height: 1; }
.ap .was { color: #3d4a42; font-weight: 600; font-size: 1.1rem; text-decoration: line-through; text-decoration-color: #e92428; text-decoration-thickness: 2px; }
.ap .nw { display: inline-flex; align-items: baseline; gap: 5px; flex-wrap: wrap; }
.ap .now { color: #e92428; font-weight: 700; font-size: 1.7rem; line-height: 1; }
.ap .vt { font: 500 .7rem var(--font-body); color: #3d4a42; }
.ao-wrap { max-width: 1000px; margin: 24px auto 8px; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #fff; }
.ao-head { background: var(--forest); color: #fff; display: flex; align-items: center; gap: 12px; padding: 12px 16px; font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; }
.ao-hi { width: 38px; height: 38px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; flex: none; }
.ao-hi svg { width: 20px; height: 20px; fill: none; stroke: var(--forest); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ao-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 12px; }
.ao { display: flex; gap: 12px; align-items: center; background: var(--cream); border: 1px solid var(--line); border-radius: 12px; padding: 12px; }
.ao:last-child:nth-child(3n+1) { grid-column: 1 / -1; }
.ao-i { width: 50px; height: 50px; border-radius: 50%; background: #F3E9CC; display: flex; align-items: center; justify-content: center; flex: none; }
.ao-i svg { width: 25px; height: 25px; fill: none; stroke: var(--forest); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ao-b { flex: 1; min-width: 0; }
.ao-b b { display: block; color: var(--forest); font-size: .95rem; line-height: 1.25; margin-bottom: 6px; text-transform: capitalize; }
.ao-d { display: block; color: var(--muted); font-size: .8rem; line-height: 1.35; margin: -2px 0 8px; }
.ao .ap { display: block; background: transparent; padding: 0; }
@media (max-width: 1000px) { .ao-grid { grid-template-columns: 1fr 1fr; } .ao:last-child:nth-child(3n+1) { grid-column: auto; } .ao:last-child:nth-child(2n+1) { grid-column: 1 / -1; } }
@media (max-width: 640px) { .ao-grid { grid-template-columns: 1fr; } .ao:last-child:nth-child(2n+1) { grid-column: auto; } }

/* v1.0.232 add-on boxes: exactly the same width and left edge as the tables above them */
@media (min-width: 761px) {
  .ppanel .ao-wrap {
    width: min(1280px, calc(100vw - 64px)); max-width: none; box-sizing: border-box;
    margin-left: calc(50% - min(640px, calc(50vw - 32px))); margin-right: 0;
  }
}
@media (max-width: 760px) { .ppanel .ao-wrap { width: auto; max-width: none; margin-left: 0; margin-right: 0; } }

/* v1.0.233 new "Additional services" table (turnover headings, ticks, Pricing row with the homepage price panel) */
.pt-add thead :is(th, td):last-child { background: var(--forest); color: var(--cream); }
.pt-add tbody tr :is(th, td):last-child, .pt-add tfoot :is(th, td):last-child { background: transparent; }
.pt-add tbody tr:nth-child(even) :is(th, td):last-child, .pt-add tbody tr.pt-alt :is(th, td):last-child { background: #F7F2E7; }
.pt-add tfoot :is(th, td):last-child a { background: var(--forest); color: var(--cream); }
.pt-add tbody tr:first-child :is(th, td):first-child { font-weight: 400; color: inherit; }
.pt-add tbody tr:first-child td { font-size: inherit; }
.pt-wrap tfoot td .ap { display: inline-block; background: #f4eddd; text-align: center; max-width: 100%; padding: 8px 10px; }
.pt-wrap tfoot td .ap-p { justify-content: center; }
.pt-wrap tfoot tr:first-child td .ap .now { font-family: var(--font-display); font-size: 1.5rem; color: #e92428; line-height: 1; }
.pt-wrap tfoot tr:first-child td .ap .was { font-size: 1rem; }
.pt-wrap tfoot td .ap small.vt { display: inline; margin: 0; font-size: .66rem; color: #3d4a42; }

/* v1.0.243 ordinary tables (rates, allowances, resources): every table on the site lines its columns up the same way.
   Fixed layout, a first column sized by how many columns there are, the others equal, so two tables on one page line up. */
.wp-block-table:not(.pt-wrap):not(.pt-extras):not(.pt-add) table,
.table-wrap table { table-layout: fixed; width: 100%; }
.wp-block-table:not(.pt-wrap):not(.pt-extras):not(.pt-add) :is(th, td),
.table-wrap :is(th, td) { text-align: left; vertical-align: middle; overflow-wrap: break-word; }
.wp-block-table:not(.pt-wrap):not(.pt-extras):not(.pt-add) table :is(th, td):first-child,
.table-wrap table :is(th, td):first-child { width: 50%; }
.wp-block-table:not(.pt-wrap):not(.pt-extras):not(.pt-add) table:has(tr > :nth-child(3)) :is(th, td):first-child,
.table-wrap table:has(tr > :nth-child(3)) :is(th, td):first-child { width: 40%; }
.wp-block-table:not(.pt-wrap):not(.pt-extras):not(.pt-add) table:has(tr > :nth-child(4)) :is(th, td):first-child,
.table-wrap table:has(tr > :nth-child(4)) :is(th, td):first-child { width: 32%; }
.wp-block-table:not(.pt-wrap):not(.pt-extras):not(.pt-add) table:has(tr > :nth-child(5)) :is(th, td):first-child,
.table-wrap table:has(tr > :nth-child(5)) :is(th, td):first-child { width: 26%; }
.wp-block-table:not(.pt-wrap):not(.pt-extras):not(.pt-add) table:has(tr > :nth-child(6)) :is(th, td):first-child,
.table-wrap table:has(tr > :nth-child(6)) :is(th, td):first-child { width: 22%; }
.wp-block-table:not(.pt-wrap):not(.pt-extras):not(.pt-add) table:has(tr > :nth-child(7)) :is(th, td):first-child,
.table-wrap table:has(tr > :nth-child(7)) :is(th, td):first-child { width: 18%; }
/* the editor's "fixed width" switch no longer changes this */
.wp-block-table:not(.pt-wrap):not(.pt-extras):not(.pt-add) table.has-fixed-layout { table-layout: fixed; }
