/* ================================================================
   GURU Protect — Custom CSS v2.1
   Reference: checksy.email (/assets/css/inboxsy.css)
   Foundation: Pico CSS v2.1.1
   ================================================================ */

/* Theme variables */
[data-theme="light"],
:root {
  --gp-surface: #ffffff;
  --gp-alt: #f9f9f9;
  --gp-raised: #ffffff;
  --gp-sunken: #f2f2f2;
  --gp-border: #e0e0e0;
  --gp-heading: #111111;
  --gp-body: #333333;
  --gp-muted: #777777;
  --gp-accent: #1884EC;
  --gp-accent-hover: #0f6fd1;
}

[data-theme="dark"] {
  --gp-surface: #121212;
  --gp-alt: #1a1a1a;
  --gp-raised: #1c1c1c;
  --gp-sunken: #0e0e0e;
  --gp-border: #2e2e2e;
  --gp-heading: #eeeeee;
  --gp-body: #cccccc;
  --gp-muted: #888888;
  --gp-accent: #1884EC;
  --gp-accent-hover: #0f6fd1;
}

:root {
  --pico-font-family: system-ui, sans-serif;
  --pico-primary: var(--gp-accent);
  --pico-primary-hover: var(--gp-accent-hover);
  --pico-primary-background: var(--gp-accent);
  --pico-primary-hover-background: var(--gp-accent-hover);
  --pico-color: var(--gp-body);
  --pico-text-decoration: none;
  --pico-line-height: 1.5;
}

/* Reset */
body {
  margin: 0;
  font-family: system-ui, sans-serif;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: var(--gp-surface);
  color: var(--gp-body);
  font-size: 1.1rem;
  line-height: 1.5;
}

/* Override Pico form control fonts */
input, select, textarea, button, optgroup, option {
  font-family: inherit;
}

/* --- Container widths --- */
.gp-container {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 1.5rem;
  box-sizing: border-box;
}

.gp-narrow {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 1.5rem;
  box-sizing: border-box;
}

.gp-wide-hero {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* --- Preview strip --- */
.gp-preview {
  background: var(--gp-accent);
  color: #fff;
  text-align: center;
  padding: .4rem .75rem;
  font-size: .9rem;
  font-weight: 500;
}

.gp-preview a {
  color: #fff;
}

/* --- Header --- */
.gp-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: .5rem 1rem;
  border-bottom: 1px solid var(--gp-border);
  min-height: 95px;
  position: relative;
  z-index: 20;
  box-sizing: border-box;
}

.gp-wordmark {
  color: var(--gp-accent);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1;
  text-decoration: none;
}

.gp-wordmark strong {
  font-weight: 700;
}

.gp-nav {
  display: flex;
  align-items: center;
  gap: .25rem;
}

.gp-nav a {
  padding: .5rem .75rem;
  color: var(--gp-body);
  text-decoration: none;
  font-size: .95rem;
  white-space: nowrap;
}

.gp-nav a:hover {
  color: var(--gp-heading);
}

.gp-nav a.active {
  color: var(--gp-accent);
}

.gp-nav-outline {
  background: transparent;
  border: 1px solid var(--gp-border);
  border-radius: 6px;
  padding: .5rem 1rem !important;
  color: var(--gp-heading);
  font-weight: 500;
}

.gp-nav-outline:hover {
  border-color: var(--gp-accent);
  color: var(--gp-accent);
}

/* Native disclosure menus: keyboard and touch work without navigation.js. */
.gp-nav details { margin: 0; }
.gp-services-menu > summary {
  padding: .5rem .75rem;
  font-size: .95rem;
  color: var(--gp-body);
}
.gp-header details.dropdown > ul {
  background: var(--gp-raised);
  border: 1px solid var(--gp-border);
  border-radius: 8px;
  min-width: 12rem;
  z-index: 30;
}
.gp-theme-toggle { margin-left: .5rem; }
.gp-theme-toggle summary[role="button"] {
  color: var(--pico-secondary-inverse);
  font-size: 1rem;
  padding: .75rem 1rem;
}
.gp-header details.dropdown > ul a { color: var(--gp-body); }
.gp-header details.dropdown > ul a:hover { background: var(--gp-sunken); }
.gp-mobile-disclosure { display: none; margin: 0; }
.gp-mobile-menu { display: none; }
@media (max-width: 1100px) {
  .gp-nav { display: none; }
  .gp-mobile-disclosure { display: block; }
  .gp-mobile-disclosure > summary {
    margin: 0;
    min-height: 44px;
    padding: .5rem .75rem;
    color: var(--gp-heading);
    background: var(--gp-raised);
    border: 1px solid var(--gp-border);
  }
  .gp-mobile-disclosure[open] > .gp-mobile-menu {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    position: absolute;
    top: 100%; left: 0; right: 0;
    max-height: 70svh;
    overflow-y: auto;
    background: var(--gp-raised);
    border: 1px solid var(--gp-border);
    padding: .5rem 0;
    z-index: 30;
  }
  .gp-mobile-menu a {
    display: block;
    padding: .75rem 1.25rem;
    margin: 0;
    color: var(--gp-body);
    text-decoration: none;
    font-size: .95rem;
  }
  .gp-mobile-sub a { padding-left: 2rem; }
  .gp-mobile-themes { display: flex; border-top: 1px solid var(--gp-border); }
}

/* === Hero === */
.gp-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: min(34rem, 68svh);
  padding: 4rem 1.5rem;
  margin: 0;
  box-sizing: border-box;
  text-align: center;
}

.gp-hero h1 {
  font-size: clamp(2rem, 4.2vw, 4rem);
  font-weight: 700;
  line-height: 1.08;
  margin: 0;
  color: var(--gp-heading);
  max-width: 980px;
}

.gp-hero .gp-lead {
  max-width: 860px;
  margin: 1.5rem auto 0;
  font-size: clamp(1rem, 1.8vw, 1.25rem);
  line-height: 1.7;
  color: var(--gp-body);
}

.gp-hero-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 2rem;
  gap: .75rem;
}

.gp-hero-actions .gp-secondary-link {
  font-size: .95rem;
}

/* === Buttons === */
.gp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  cursor: pointer;
  font-family: inherit;
}

.gp-btn-primary {
  padding: 1rem 2rem;
  font-size: 1.1rem;
  font-weight: 600;
  border-radius: 6px;
  background: var(--gp-accent);
  border: 1px solid var(--gp-accent);
  color: #ffffff;
  transition: background .15s;
}

.gp-btn-primary:hover,
.gp-btn-primary:focus {
  background: var(--gp-accent-hover);
  border-color: var(--gp-accent-hover);
  color: #ffffff;
}

.gp-btn-primary:visited {
  color: #ffffff;
}

.gp-btn-primary:active {
  background: #0c5ca8;
  color: #ffffff;
}

/* === Sections === */
.gp-section {
  padding: 5rem 2rem;
  border-bottom: 1px solid var(--gp-border);
}

.gp-section:last-child {
  border-bottom: none;
}

.gp-section-alt {
  background: var(--gp-alt);
}

.gp-section-intro {
  max-width: 860px;
  margin: 0 auto 2rem;
  text-align: center;
}

.gp-section-intro h2 {
  margin-top: 0;
}

/* === Panels === */
.gp-panel-large {
  background: var(--gp-raised);
  border: 1px solid var(--gp-border);
  border-radius: 12px;
  padding: 2rem;
  box-shadow: 0 4px 10px rgba(0,0,0,.04);
}

.gp-panel-small {
  background: var(--gp-raised);
  border: 1px solid var(--gp-border);
  border-radius: 10px;
  padding: 1.2rem;
}

/* Hero problem panels — 2 col */
.gp-problem-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
  max-width: 860px;
  margin: 0 auto;
}

.gp-problem-card {
  background: var(--gp-raised);
  border: 1px solid var(--gp-border);
  border-radius: 10px;
  padding: 1.2rem;
  text-align: left;
}

.gp-problem-card h3 {
  font-size: 1rem;
  margin: 0 0 .25rem;
  color: var(--gp-heading);
}

.gp-problem-card p {
  font-size: .9rem;
  color: var(--gp-body);
  margin: 0;
}

/* Service cards — 2 col */
.gp-service-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  max-width: 1120px;
  margin: 0 auto;
}

.gp-service-card {
  background: var(--gp-raised);
  border: 1px solid var(--gp-border);
  border-radius: 10px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
}

.gp-service-card h3 {
  font-size: 1.15rem;
  margin: 0 0 .5rem;
  color: var(--gp-heading);
}

.gp-service-card .gp-card-desc {
  font-size: .95rem;
  color: var(--gp-body);
  margin: 0 0 .5rem;
  flex: 1;
}

.gp-service-card .gp-card-price {
  font-size: .9rem;
  color: var(--gp-muted);
  margin-bottom: .5rem;
}

.gp-service-card .gp-card-action {
  margin-top: auto;
}

/* Three column grid */
.gp-three-col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1120px;
  margin: 0 auto;
}

.gp-three-col h3 {
  font-size: 1rem;
  margin: 0 0 .25rem;
}

/* Environment scope — left aligned */
.gp-scope-list {
  max-width: 860px;
  margin: 0 auto;
}

.gp-scope-item {
  padding: .5rem 0;
  border-bottom: 1px solid var(--gp-border);
}

.gp-scope-item:last-child {
  border-bottom: none;
}

.gp-scope-item h3 {
  font-size: 1rem;
  margin: 0;
}

.gp-scope-item p {
  font-size: .9rem;
  color: var(--gp-body);
  margin: .25rem 0 0;
}

/* FAQ */
.gp-faq h3 {
  font-size: 1rem;
  margin-bottom: .25rem;
}

.gp-faq p {
  font-size: .9rem;
  margin: 0;
}

.gp-faq-item {
  border-bottom: 1px solid var(--gp-border);
  padding: 1rem 0;
}

.gp-faq-item:first-child {
  border-top: 1px solid var(--gp-border);
}

/* Service page price panel */
.gp-price-panel {
  background: var(--gp-raised);
  border: 1px solid var(--gp-border);
  border-radius: 10px;
  padding: 1.2rem;
  font-size: .9rem;
}

.gp-price-panel .gp-price-amount {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--gp-heading);
}

.gp-price-panel .gp-price-note {
  font-size: .85rem;
  color: var(--gp-muted);
}

/* Service page layout */
.gp-service-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 2rem;
  max-width: 1120px;
  margin: 0 auto;
  align-items: start;
}

@media (max-width: 960px) {
  .gp-service-layout {
    grid-template-columns: 1fr;
  }
  .gp-price-panel {
    margin-top: 1.5rem;
  }
}

/* Contact form */
.gp-form {
  max-width: 860px;
  margin: 0 auto;
}

.gp-form-inner {
  max-width: 600px;
}

.gp-form label {
  display: block;
  font-size: .9rem;
  color: var(--gp-body);
  margin-bottom: 4px;
}

.gp-form input,
.gp-form select,
.gp-form textarea {
  width: 100%;
  padding: .6rem .75rem;
  background: var(--gp-sunken);
  border: 1px solid var(--gp-border);
  border-radius: 6px;
  color: var(--gp-heading);
  font-size: .95rem;
  font-family: inherit;
  box-sizing: border-box;
}

.gp-form input:focus,
.gp-form select:focus,
.gp-form textarea:focus {
  border-color: var(--gp-accent);
  outline: 2px solid var(--gp-accent);
  outline-offset: 2px;
}

.gp-form .gp-form-group {
  margin-bottom: 1rem;
}

.gp-form-notice {
  background: var(--gp-alt);
  border: 1px solid var(--gp-border);
  border-radius: 8px;
  padding: .75rem 1rem;
  font-size: .85rem;
  color: var(--gp-body);
  margin-bottom: 1rem;
}

/* === Builder === */
.gp-builder-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 1.5rem;
  max-width: 1120px;
  margin: 0 auto;
  align-items: start;
}

@media (max-width: 768px) {
  .gp-builder-layout {
    grid-template-columns: 1fr;
  }
}

.gp-bstep {
  background: var(--gp-raised);
  border: 1px solid var(--gp-border);
  border-radius: 10px;
  padding: 1.5rem;
  margin-bottom: 1rem;
}

.gp-bstep h2 {
  font-size: 1.1rem;
  margin: 0 0 .75rem;
  color: var(--gp-heading);
}

.gp-boptions {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.gp-boption {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .75rem 1rem;
  background: var(--gp-sunken);
  border: 1px solid var(--gp-border);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color .12s;
}

.gp-boption:hover,
.gp-boption.selected {
  border-color: var(--gp-accent);
}

.gp-boption input[type="radio"],
.gp-boption input[type="checkbox"] {
  margin: 0;
}

.gp-boption label {
  cursor: pointer;
  font-weight: 500;
  color: var(--gp-heading);
}

.gp-boption .gp-boption-desc {
  font-size: .85rem;
  color: var(--gp-muted);
}

.gp-bfield {
  margin-bottom: .75rem;
}

.gp-bfield label {
  display: block;
  font-size: .9rem;
  color: var(--gp-body);
  margin-bottom: 4px;
}

.gp-bfield select,
.gp-bfield input[type="number"],
.gp-bfield input[type="text"] {
  width: 100%;
  padding: .5rem .75rem;
  background: var(--gp-sunken);
  border: 1px solid var(--gp-border);
  border-radius: 6px;
  color: var(--gp-heading);
  font-size: .95rem;
  font-family: inherit;
  box-sizing: border-box;
}

.gp-bfield select:focus,
.gp-bfield input:focus {
  border-color: var(--gp-accent);
  outline: 2px solid var(--gp-accent);
  outline-offset: 2px;
}

.gp-bfield .gp-bhelp {
  font-size: .8rem;
  color: var(--gp-muted);
  margin-top: 2px;
}

.gp-bnav {
  display: flex;
  gap: .75rem;
  margin-top: 1rem;
}

.gp-bsum {
  position: sticky;
  top: 20px;
  background: var(--gp-raised);
  border: 1px solid var(--gp-border);
  border-radius: 10px;
  padding: 1.25rem;
}

.gp-bsum h3 {
  font-size: 1rem;
  margin: 0 0 .5rem;
}

.gp-bsum-item {
  font-size: .85rem;
  padding: .4rem 0;
  border-bottom: 1px solid var(--gp-border);
}

.gp-bsum-total {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--gp-heading);
  padding: .5rem 0;
  border-top: 1px solid var(--gp-border);
}

.gp-bsum-note {
  font-size: .8rem;
  color: var(--gp-muted);
}

/* Result box */
.gp-result-box {
  background: var(--gp-raised);
  border: 1px solid var(--gp-border);
  border-radius: 10px;
  padding: 1.25rem;
  margin: 1rem 0;
}

.gp-result-amount {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--gp-heading);
}

.gp-result-label {
  font-size: .85rem;
  color: var(--gp-muted);
}

.gp-result-breakdown {
  font-size: .9rem;
  padding: .4rem 0;
  border-bottom: 1px solid var(--gp-border);
}

.gp-result-scoping {
  font-size: .85rem;
  color: var(--gp-muted);
  font-style: italic;
  border-top: 1px solid var(--gp-border);
  padding: .5rem 0;
}

/* Pricing table */
.gp-price-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
}

.gp-price-table th,
.gp-price-table td {
  padding: .6rem .75rem;
  text-align: left;
  border-bottom: 1px solid var(--gp-border);
}

.gp-price-table th {
  font-weight: 500;
  color: var(--gp-muted);
  font-size: .85rem;
}

.gp-price-table td:last-child {
  text-align: right;
}

.gp-price-table tr.gp-scope-row td {
  font-style: italic;
  color: var(--gp-muted);
}

/* Payment schedule */
details.gp-paysched {
  border: 1px solid var(--gp-border);
  border-radius: 8px;
  padding: .6rem 1rem;
  margin: .6rem 0;
  background: var(--gp-sunken);
}

details.gp-paysched summary {
  font-size: .9rem;
  font-weight: 500;
  cursor: pointer;
  color: var(--gp-body);
}

.gp-paysched-item {
  display: flex;
  justify-content: space-between;
  padding: .4rem 0;
  font-size: .85rem;
}

/* Footer */
.gp-footer {
  border-top: 1px solid var(--gp-border);
  padding: 3rem 1.5rem 1.5rem;
  background: var(--gp-surface);
  font-size: .9rem;
}

.gp-footer-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

@media (max-width: 768px) {
  .gp-footer-grid {
    grid-template-columns: 1fr;
  }
}

.gp-footer-grid h4 {
  font-size: .9rem;
  margin-bottom: .5rem;
  color: var(--gp-heading);
}

.gp-footer-grid a {
  display: block;
  padding: .25rem 0;
  font-size: .85rem;
  color: var(--gp-body);
  text-decoration: none;
}

.gp-footer-grid a:hover {
  text-decoration: underline;
}

.gp-footer-copy {
  text-align: center;
  color: var(--gp-muted);
  font-size: .8rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--gp-border);
  margin-top: 1.5rem;
}

/* Typography */
h1, h2, h3, h4 {
  color: var(--gp-heading);
  font-weight: 700;
}

h1 {
  font-size: clamp(2rem, 4.2vw, 4rem);
  line-height: 1.08;
  margin: 0 0 .5rem;
}


p, li {
  color: var(--gp-body);
}

.gp-muted {
  color: var(--gp-muted);
  font-size: .85rem;
}

a {
  color: var(--gp-accent);
}

a:hover {
  color: var(--gp-accent-hover);
}

a:visited {
  color: var(--gp-accent);
}

/* Links in content areas */
.gp-content a {
  color: var(--gp-accent);
}

.gp-content a:hover {
  color: var(--gp-accent-hover);
}

/* Section headings — compact intro on service pages */
.gp-page-intro {
  text-align: center;
  padding: 3rem 1.5rem 2rem;
  max-width: 860px;
  margin: 0 auto;
}

.gp-page-intro h1 {
  font-size: clamp(2rem, 4.2vw, 4rem);
  font-weight: 700;
  line-height: 1.08;
}

.gp-page-intro .gp-lead {
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  line-height: 1.6;
  color: var(--gp-body);
  margin-top: .5rem;
}

.gp-page-intro .gp-cta-early {
  margin-top: 1.5rem;
}

/* CTA section */
.gp-cta-section {
  text-align: center;
  padding: 4rem 1.5rem;
}


/* What happens next box */
.gp-next-steps {
  max-width: 600px;
  margin: 1.5rem auto;
  background: var(--gp-raised);
  border: 1px solid var(--gp-border);
  border-radius: 10px;
  padding: 1.25rem;
}

.gp-next-steps h3 {
  font-size: 1rem;
  margin: 0 0 .25rem;
}

.gp-next-steps p {
  font-size: .9rem;
  color: var(--gp-body);
  margin: 0;
}

/* 404 */
.gp-404 {
  text-align: center;
  padding: 5rem 1.5rem;
}

.gp-404 h1 {
  font-size: 2rem;
}

.gp-404 p {
  font-size: 1.1rem;
}

/* Skip link */
.gp-skip {
  position: absolute;
  top: -100%;
  left: 0;
  background: var(--gp-accent);
  color: #fff;
  padding: .5rem 1rem;
  z-index: 1000;
}

.gp-skip:focus {
  top: 0;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    animation: none !important;
  }
}

/* Focus */
:focus-visible {
  outline: 2px solid var(--gp-accent);
  outline-offset: 2px;
}

/* Mobile */
@media (max-width: 768px) {
  .gp-hero {
    min-height: 0;
    padding: 3.5rem 1rem;
  }
  .gp-hero h1 {
    font-size: clamp(1.9rem, 7vw, 2.7rem);
    line-height: 1.12;
  }
  .gp-hero .gp-lead {
    font-size: 1rem;
    line-height: 1.65;
  }
  .gp-section {
    padding: 3.5rem 1.25rem;
  }
  .gp-section:last-child {
    padding-bottom: 3.5rem;
  }
  .gp-service-grid {
    grid-template-columns: 1fr;
  }
  .gp-problem-grid {
    grid-template-columns: 1fr;
  }
  .gp-three-col {
    grid-template-columns: 1fr;
  }
  .gp-page-intro {
    padding: 2rem 1rem 1.5rem;
  }
  .gp-404 {
    padding: 3rem 1rem;
  }
}

/* Print */
@media print {
  .gp-preview,
  .gp-header,
  .gp-footer,
  .gp-mobile-toggle,
  .gp-theme-toggle {
    display: none !important;
  }
  body {
    background: #fff !important;
    color: #111 !important;
  }
}
/* Marketing page framing; keep one document scrollbar. */
main#main-content { flex: 1; min-width: 0; padding: 1rem 2rem; }
.gp-section, .gp-cta-section { margin: 0; }
.gp-section .gp-narrow { padding-inline: 0; }
.gp-faq details { margin: 0; }
.gp-faq summary { color: var(--gp-heading); font-weight: 600; }
.gp-faq details[open] summary { margin-bottom: .75rem; }
.gp-faq p { line-height: 1.65; }
.gp-service-layout, .gp-builder-layout { grid-template-columns: minmax(0, 1fr) 300px; }
.gp-service-grid > *, .gp-three-col > *, .gp-problem-grid > * { min-width: 0; }
.gp-btn { min-height: 44px; max-width: 100%; text-align: center; }
.gp-btn-primary { border: 0; line-height: 1.5; }
.gp-skip:visited { color: #fff; }
@media (max-width: 1100px) {
  .gp-service-layout, .gp-builder-layout { grid-template-columns: minmax(0, 1fr); }
  .gp-bsum { position: static; }
}
@media (max-width: 768px) {
  main#main-content { padding: 0; }
  .gp-header { min-height: 76px; gap: .75rem; }
  .gp-wordmark { white-space: nowrap; font-size: 1.1rem; }
  .gp-narrow, .gp-container { padding-inline: 1rem; }
  .gp-hero .gp-lead { max-width: 38rem; }
  .gp-bnav { flex-wrap: wrap; }
}

/* Shared Checksy-style offer panels and live service builder. */
[hidden] { display: none !important; }
.gp-service-hero { max-width: 980px; padding-block: 4rem 3rem; }
.gp-service-promise { font-size: clamp(1.25rem,2.3vw,1.75rem); font-weight: 600; margin: 1rem 0; color: var(--gp-heading); }
.gp-offer-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.gp-offer { margin: 0; padding: 2rem; border: 1px solid var(--gp-border); border-radius: 12px; background: var(--gp-raised); box-shadow: 0 4px 10px rgb(0 0 0 / 4%); }
.gp-offer h2 { font-size: 1.45rem; }
.gp-offer-price { color: var(--gp-heading); font-size: 1.7rem; font-weight: 700; line-height: 1.25; }
.gp-offer-price small { font-size: .85rem; font-weight: 400; }
.gp-offer-statement { font-weight: 600; font-size: 1.2rem; }
.gp-check-list { padding-left: 1.2rem; }
.gp-check-list li { padding-left: .2rem; margin-bottom: .65rem; }
.gp-check-list li::marker { color: var(--gp-accent); }
.gp-pricing-note { font-size: .85rem; color: var(--gp-muted); margin-top: 1.25rem; }
.gp-faq-panel { background: var(--gp-raised); border: 1px solid var(--gp-border); padding: 1rem 2rem; border-radius: 12px; }
.gp-faq-panel details { padding: 1rem 0; margin: 0; border-bottom: 1px solid var(--gp-border); }
.gp-faq-panel details:last-child { border: 0; }
.gp-faq-panel summary { font-weight: 600; color: var(--gp-heading); line-height: 1.5; }
.gp-faq-panel details[open] summary { margin-bottom: 1rem; }
.gp-faq-panel p { font-size: 1rem; }
.gp-builder-layout { grid-template-columns: minmax(0,1.4fr) minmax(300px,1fr); }
.gp-bstep { min-width: 0; }
.gp-bstep legend { font-weight: 700; font-size: 1.15rem; padding: 0 .4rem; width: auto; }
.gp-bstep label { font-size: .95rem; }
.gp-boption { align-items: flex-start; margin-bottom: .6rem; }
.gp-boption input { flex-shrink: 0; margin-top: .25rem !important; }
.gp-boption:has(input:checked) { border-color: var(--gp-accent); box-shadow: inset 3px 0 var(--gp-accent); }
.gp-boption small { display: block; font-size: .85rem; color: var(--gp-muted); margin-top: .2rem; }
.gp-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 1rem; }
.gp-bsum h2 { font-size: 1.4rem; }
.gp-bsum p { overflow-wrap: anywhere; }
.gp-summary-actions { display: grid; gap: .75rem; margin-top: 1rem; }
.gp-summary-actions button { margin: 0; font-size: .95rem; }
.gp-enquiry { max-width: 860px; margin: 2rem auto 0; scroll-margin-top: 1rem; }
.gp-enquiry pre, #gp-preview-body { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; }
.gp-price-table { display: block; overflow-x: auto; }
[data-theme="light"] { --gp-muted: #646464; }
[data-theme="dark"] { --gp-muted: #aaa; }
@media(max-width:1100px){ .gp-builder-layout { grid-template-columns: 1fr; } }
@media(max-width:768px){ .gp-offer-grid,.gp-field-grid { grid-template-columns: 1fr; } .gp-offer,.gp-panel-large,.gp-faq-panel { padding: 1.25rem; } .gp-service-hero { padding-block: 3rem 2rem; } .gp-bstep { padding: 1rem; } }
@media print { .gp-summary-actions, #gp-builder-enquiry, button { display:none!important; } .gp-builder-layout { display:block; } .gp-bsum { position:static; } }

.gp-service-hero { margin: 0 auto; padding-inline: 1.5rem; text-align: center; }
.gp-offer-grid,.gp-faq-panel { max-width: 1120px; margin-inline: auto; }
.gp-pricing-note { max-width:1120px; margin-inline:auto; }
.gp-service-hero .gp-lead { max-width:860px; margin-inline:auto; line-height:1.7; }
.gp-section .gp-narrow.gp-panel-large { padding:2rem; }
@media(max-width:768px){ .gp-section .gp-narrow.gp-panel-large { padding:1.25rem; } }

/* Corporate service narrative: generous editorial space and useful deliverables. */
.gp-editorial { max-width:1120px; margin-inline:auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:3rem; align-items:start; }
.gp-editorial h2 { line-height:1.2; }
.gp-editorial p,.gp-service-rich p { line-height:1.65; }
.gp-service-rich { padding:2rem; margin:0; }
.gp-service-rich h3 { font-size:1.35rem; }
.gp-service-rich .gp-service-promise { font-size:1.1rem; margin:.5rem 0 1rem; }
.gp-service-rich .gp-card-price { margin-top:auto; padding-top:1rem; }
.gp-deliverable { border-left:3px solid var(--gp-accent); padding-left:1rem; font-size:.95rem; }
.gp-service-detail + .gp-service-detail { border-top:1px solid var(--gp-border); padding-top:1.25rem; margin-top:1.25rem; }
.gp-service-detail h3 { font-size:1.1rem; margin-bottom:.4rem; }
.gp-service-detail p:last-child { margin-bottom:0; }
.gp-editorial .gp-offer-price { font-size:1.1rem; }
.gp-rate-group { margin-top:2rem; }
.gp-rate-group h3 { font-size:1.15rem; }
@media(max-width:900px){ .gp-editorial { grid-template-columns:1fr; gap:1.5rem; } }
@media(max-width:768px){ .gp-service-rich { padding:1.25rem; } }
/* GURU visual identity: navy ownership, blue action, quiet cyan detail. */
:root,[data-theme="light"] { --gp-navy:#073e66; --gp-tint:#edf7fd; --gp-tint-border:#c8e3f3; --gp-soft-teal:#ecf8f5; --gp-ink:#103c57; --gp-selected:#e7f4ff; }
[data-theme="dark"] { --gp-navy:#082f4c; --gp-tint:#112a3a; --gp-tint-border:#305366; --gp-soft-teal:#142d2a; --gp-ink:#d9efff; --gp-selected:#12364e; }
.gp-brand { display:inline-flex; flex-shrink:0; align-items:center; padding:.35rem .5rem; border-radius:8px; background:#fff; }
.gp-brand img { display:block; width:174px; height:auto; }
.gp-header { padding-block:.65rem; }
.gp-icon { display:block; width:1.6rem; height:1.6rem; flex-shrink:0; }
.gp-hero-story { max-width:1280px; margin:auto; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:3rem; text-align:left; padding:4.5rem 2rem; min-height:0; background:radial-gradient(ellipse at 90% 45%,var(--gp-tint),transparent 65%); }
.gp-hero-story h1 { font-size:clamp(2.4rem,4.2vw,3.6rem); }
.gp-hero-story .gp-lead { font-size:clamp(1.2rem,2vw,1.5rem); font-weight:600; line-height:1.4; margin:1rem 0; color:var(--gp-ink); }
.gp-hero-description { max-width:35rem; line-height:1.7; }
.gp-hero-story .gp-hero-actions { align-items:flex-start; }
.gp-estate-graphic { margin:0; padding:1.5rem; border:1px solid var(--gp-tint-border); border-radius:20px; background:var(--gp-raised); box-shadow:0 20px 50px rgb(7 62 102 / 9%); }
.gp-estate-nodes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; }
.gp-estate-nodes>div { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem; padding:.9rem .3rem; border:1px solid var(--gp-tint-border); border-radius:10px; background:var(--gp-tint); text-align:center; }
.gp-estate-nodes span { font-size:.75rem; line-height:1.3; font-weight:600; color:var(--gp-ink); }
.gp-estate-nodes .gp-icon { color:var(--gp-ink); }
.gp-estate-owner { display:flex; align-items:center; justify-content:center; gap:1rem; background:#073e66; border-radius:12px; padding:1.3rem 1rem; color:#fff; text-align:left; }
.gp-estate-owner>.gp-icon { width:2.7rem; height:2.7rem; color:#83d4f3; }
.gp-estate-owner strong { display:block; font-size:1.2rem; }
.gp-estate-owner span { display:block; font-size:.85rem; line-height:1.5; margin-top:.25rem; color:#e1f3ff; }
.gp-estate-join { width:67%; height:1.5rem; margin-inline:auto; background:linear-gradient(var(--gp-tint-border),var(--gp-tint-border)) center/2px 100% no-repeat,linear-gradient(var(--gp-tint-border),var(--gp-tint-border)) left/2px 100% no-repeat,linear-gradient(var(--gp-tint-border),var(--gp-tint-border)) right/2px 100% no-repeat; }
.gp-estate-graphic figcaption { margin-top:1rem; font-size:.75rem; text-align:center; color:var(--gp-muted); }
.gp-assurance-strip { display:flex; flex-wrap:wrap; justify-content:center; gap:.75rem 2rem; background:var(--gp-tint); border-block:1px solid var(--gp-tint-border); padding:1.1rem; color:var(--gp-ink); font-size:.85rem; font-weight:600; }
.gp-assurance-strip span::before { content:'✓'; color:var(--gp-ink); padding-right:.5rem; }
.gp-section-alt { background:var(--gp-tint); }
.gp-service-symbol { display:inline-flex; align-items:center; justify-content:center; width:3rem; height:3rem; border-radius:12px; background:var(--gp-tint); color:var(--gp-ink); margin-bottom:1rem; }
.gp-symbol-resolution { background:#fff1dd; color:#74440b; }
.gp-symbol-projects { background:#eeedff; color:#494080; }
.gp-symbol-managed { background:#def3ec; color:#165b48; }
.gp-service-rich { border-top:4px solid #82cfee; box-shadow:0 8px 24px rgb(7 62 102 / 5%); }
.gp-service-rich:nth-child(2) { border-top-color:#e8b566; }
.gp-service-rich:nth-child(3) { border-top-color:#aaa1e0; }
.gp-service-rich:nth-child(4) { border-top-color:#70b8a4; }
.gp-service-hero { max-width:none; background:linear-gradient(145deg,var(--gp-tint),var(--gp-surface)); border-bottom:1px solid var(--gp-tint-border); }
.gp-ownership { background:var(--gp-soft-teal); }
.gp-ownership-path { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; list-style:none; padding:0; max-width:1120px; margin:2rem auto 0; counter-reset:none; }
.gp-ownership-path li { position:relative; background:var(--gp-raised); border:1px solid var(--gp-tint-border); border-radius:12px; padding:1.5rem; }
.gp-stage { display:inline-flex; align-items:center; justify-content:center; width:2.2rem; height:2.2rem; border-radius:50%; background:#073e66; color:#fff; font-size:1rem; font-weight:700; margin-bottom:1rem; }
.gp-ownership-path h3 { font-size:1.05rem; }
.gp-ownership-path p { font-size:.9rem; margin-bottom:0; line-height:1.65; }
.gp-ownership-note { max-width:860px; margin:1.5rem auto 0; font-size:.85rem; text-align:center; }
.gp-managed-promise { background:#073e66; }
.gp-managed-promise h2,.gp-managed-promise p,.gp-managed-promise strong { color:#fff; }
.gp-promise-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:center; max-width:1050px; margin:auto; gap:4rem; }
.gp-response-graphic { border:1px solid #5487a8; border-radius:50% 50% 18px 18px; padding:2rem; background:radial-gradient(ellipse at top,#175b83,#073e66); text-align:center; }
.gp-response-graphic>strong { display:block; font-size:6rem; line-height:1; letter-spacing:-.05em; }
.gp-response-graphic>strong span { display:block; font-size:1.4rem; letter-spacing:0; margin-top:.5rem; }
.gp-response-graphic>p { margin:1rem 0; font-size:1rem; }
.gp-response-graphic>div { border-top:1px solid #5487a8; padding-top:1rem; color:#d9f0ff; font-size:.95rem; }
.gp-promise-link { margin:1rem 0 0; }
.gp-managed-promise a:not(.gp-btn),.gp-managed-promise a:not(.gp-btn):visited { color:#c0eaff; text-decoration:underline; }
.gp-managed-promise .gp-btn { background:#fff; color:#073e66; }
.gp-managed-promise .gp-btn:hover { background:#d9efff; }
.gp-cta-section { background:linear-gradient(135deg,var(--gp-tint),var(--gp-soft-teal)); }
/* Calculator: service selection, scope and money have distinct visual weight. */
.gp-bstep { background:var(--gp-raised); border:1px solid var(--gp-tint-border); border-top:4px solid #7fc8ec; box-shadow:0 5px 18px rgb(7 62 102 / 4%); padding-top:1rem; }
.gp-bstep legend { color:var(--gp-ink); background:var(--gp-tint); padding:.35rem .75rem; border-radius:6px; max-width:100%; }
.gp-bstep[data-services="managed"] { border-top-color:#70b8a4; }
.gp-bstep[data-services="resolution"] { border-top-color:#e8b566; }
.gp-bstep[data-services="projects"] { border-top-color:#aaa1e0; }
.gp-boption { background:var(--gp-alt); }
.gp-boption:has(input:checked) { background:var(--gp-selected); border-color:#1884ec; }
.gp-bsum { background:var(--gp-raised); border:1px solid var(--gp-tint-border); border-top:5px solid #073e66; box-shadow:0 12px 30px rgb(7 62 102 / 8%); }
.gp-bsum h2 { color:var(--gp-ink); }
.gp-bsum-total { background:var(--gp-tint); border:1px solid var(--gp-tint-border); border-radius:8px; padding:.8rem; color:var(--gp-ink); }
.gp-paysched { background:var(--gp-alt)!important; }
.gp-builder-promise { background:var(--gp-soft-teal); border-left:4px solid #438d76; padding:1rem; border-radius:6px; margin-top:1rem; font-size:.9rem; }
.gp-builder-promise strong { color:var(--gp-ink); }
.gp-builder-promise p { margin:.5rem 0; }
.gp-price-table tr:nth-child(even) td { background:var(--gp-tint); }
@media(max-width:1100px){ .gp-hero-story { gap:1.5rem; } .gp-ownership-path { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:900px){ .gp-hero-story { grid-template-columns:1fr; } .gp-hero-copy { max-width:700px; } .gp-estate-graphic { width:100%; max-width:600px; margin-inline:auto; } .gp-promise-layout { gap:2rem; } }
@media(max-width:768px){ .gp-brand img { width:140px; } .gp-hero-story { padding:3rem 1.25rem; } .gp-hero-story h1 { font-size:clamp(2.2rem,9vw,3.2rem); } .gp-estate-graphic { padding:1rem; } .gp-estate-nodes { gap:.4rem; } .gp-estate-nodes span { font-size:.8rem; } .gp-estate-nodes>div { padding:.75rem .25rem; } .gp-promise-layout { grid-template-columns:1fr; } .gp-response-graphic { width:100%; max-width:320px; margin:auto; border-radius:16px; } .gp-response-graphic>strong { font-size:4rem; } .gp-ownership-path { grid-template-columns:1fr; } .gp-assurance-strip { justify-content:flex-start; gap:.6rem 1.5rem; } }
@media print { .gp-managed-promise { background:#fff; } .gp-managed-promise h2,.gp-managed-promise p,.gp-managed-promise strong,.gp-response-graphic>div { color:#111; } .gp-promise-layout,.gp-hero-story { display:block; } .gp-estate-graphic { break-inside:avoid; } }

/* Corporate knowledge hub and agreement previews */
.gp-guide-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:2rem;max-width:1160px;margin:0 auto 3rem;padding:0 1.25rem;align-items:start}
.gp-guide-toc{display:flex;flex-direction:column;gap:.65rem;position:sticky;top:1rem;background:#edf7fd;border:1px solid #cfdfeb;border-radius:14px;padding:1.25rem;font-size:.85rem;line-height:1.4}
.gp-guide-toc a{display:block}.gp-guide-body{min-width:0;line-height:1.75}.gp-guide-body>section{padding:1.8rem;background:var(--pico-card-background-color,#fff);border:1px solid #d8e4ec;border-radius:16px;margin-bottom:1.25rem;scroll-margin-top:2rem}
.gp-guide-body h2{font-size:1.55rem;line-height:1.3}.gp-guide-body h3{font-size:1.15rem}.gp-guide-body p,.gp-guide-body li{font-size:1rem}.gp-guide-body li{margin-bottom:.6rem}.gp-guide-body a{text-decoration:underline;text-underline-offset:.18em}
.gp-guide-body table{font-size:.9rem}.gp-guide-body .gp-table-scroll{overflow-x:auto;max-width:100%}.gp-guide-body figure{margin:1.5rem 0}.gp-guide-body figure img{display:block;max-width:420px;width:100%;height:auto;margin:auto;background:#073e66;border-radius:18px;padding:1rem}.gp-guide-body figcaption{font-size:.85rem;margin-top:.75rem}.gp-guide-sources{background:#edf7fd!important}.gp-guide-sources li{font-size:.85rem}.gp-guide-sources a{overflow-wrap:anywhere}
.gp-agreement-body{max-width:900px;margin:0 auto 3rem;padding:0 1.25rem}.gp-draft-notice{padding:1rem 1.25rem;background:#fff5d9;border-left:4px solid #b77b00;border-radius:8px;color:#493500;font-size:.9rem}
.gp-agreement-preview{background:#edf7fd;border:1px solid #c7deec;border-radius:16px;padding:1.5rem;margin:1.5rem 0}.gp-agreement-preview h2{font-size:1.4rem}.gp-agreement-preview details{background:var(--pico-card-background-color,#fff);border:1px solid #cfdfeb;padding:1rem;border-radius:10px;margin:1rem 0}.gp-agreement-preview summary{font-size:.95rem;line-height:1.5}.gp-agreement-preview h3{font-size:1.05rem;margin-top:1.5rem}.gp-agreement-preview p{font-size:.9rem}
[data-theme="dark"] .gp-guide-toc,[data-theme="dark"] .gp-guide-sources,[data-theme="dark"] .gp-agreement-preview{background:#123044!important;border-color:#31536a}[data-theme="dark"] .gp-guide-body>section,[data-theme="dark"] .gp-agreement-preview details{border-color:#31536a}[data-theme="dark"] .gp-draft-notice{background:#3b321c;color:#ffe3a5}
@media(max-width:900px){.gp-guide-layout{grid-template-columns:1fr}.gp-guide-toc{position:static;display:grid;grid-template-columns:1fr 1fr}.gp-guide-toc strong{grid-column:1/-1}.gp-guide-body>section{padding:1.25rem}}
@media(max-width:520px){.gp-guide-toc{display:flex}.gp-guide-layout{padding:0 .75rem;gap:1rem}.gp-guide-body h2{font-size:1.35rem}.gp-guide-body table{min-width:480px}}
@media print{.gp-guide-toc,.gp-cta-section,.gp-header,.gp-footer,.gp-preview{display:none}.gp-guide-layout{display:block}.gp-guide-body>section{border:0;padding:0;break-inside:avoid}.gp-guide-body{color:#000;background:#fff}}

.gp-project-links{display:flex;flex-wrap:wrap;gap:.75rem}.gp-project-links a{padding:.75rem 1rem;border:1px solid var(--gp-tint-border,#c8e3f3);border-radius:10px;background:var(--gp-tint,#edf7fd);font-weight:600}.gp-project-links a:focus-visible{outline:3px solid currentColor;outline-offset:3px}

/* Homepage styles consolidated with shared layout, 19 October 2026. */
.gp-home {--gp-tint:#edf7fd;--gp-tint-border:#c8e3f3;--gp-soft-teal:#ecf8f5;--gp-ink:#103c57;--gp-raised:var(--pico-card-background-color,#fff);}
[data-theme="dark"] .gp-home {--gp-tint:#112a3a;--gp-tint-border:#305366;--gp-soft-teal:#142d2a;--gp-ink:#d9efff;}
.gp-home .gp-editorial { max-width:1120px; margin-inline:auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:3rem; align-items:start; }
.gp-home .gp-editorial h2 { line-height:1.2; }
.gp-home .gp-editorial p,.gp-home .gp-service-rich p { line-height:1.65; }
.gp-home .gp-service-rich { padding:2rem; margin:0; }
.gp-home .gp-service-rich h3 { font-size:1.35rem; }
.gp-home .gp-service-rich .gp-service-promise { font-size:1.1rem; margin:.5rem 0 1rem; }
.gp-home .gp-service-rich .gp-card-price { margin-top:auto; padding-top:1rem; }
.gp-home .gp-deliverable { border-left:3px solid var(--gp-accent); padding-left:1rem; font-size:.95rem; }
.gp-home .gp-service-detail + .gp-service-detail { border-top:1px solid var(--gp-border); padding-top:1.25rem; margin-top:1.25rem; }
.gp-home .gp-service-detail h3 { font-size:1.1rem; margin-bottom:.4rem; }
.gp-home .gp-service-detail p:last-child { margin-bottom:0; }
.gp-home .gp-editorial .gp-offer-price { font-size:1.1rem; }
.gp-home .gp-rate-group { margin-top:2rem; }
.gp-home .gp-rate-group h3 { font-size:1.15rem; }
@media(max-width:900px){ .gp-home .gp-editorial { grid-template-columns:1fr; gap:1.5rem; } }
@media(max-width:768px){ .gp-home .gp-service-rich { padding:1.25rem; } }

.gp-home .gp-icon { display:block; width:1.6rem; height:1.6rem; flex-shrink:0; }
.gp-home .gp-hero-story { max-width:1280px; margin:auto; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:3rem; text-align:left; padding:4.5rem 2rem; min-height:0; background:radial-gradient(ellipse at 90% 45%,var(--gp-tint),transparent 65%); }
.gp-home .gp-hero-story h1 { font-size:clamp(2.4rem,4.2vw,3.6rem); }
.gp-home .gp-hero-story .gp-lead { font-size:clamp(1.2rem,2vw,1.5rem); font-weight:600; line-height:1.4; margin:1rem 0; color:var(--gp-ink); }
.gp-home .gp-hero-description { max-width:35rem; line-height:1.7; }
.gp-home .gp-hero-story .gp-hero-actions { align-items:flex-start; }
.gp-home .gp-estate-graphic { margin:0; padding:1.5rem; border:1px solid var(--gp-tint-border); border-radius:20px; background:var(--gp-raised); box-shadow:0 20px 50px rgb(7 62 102 / 9%); }
.gp-home .gp-estate-nodes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; }
.gp-home .gp-estate-nodes>div { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem; padding:.9rem .3rem; border:1px solid var(--gp-tint-border); border-radius:10px; background:var(--gp-tint); text-align:center; }
.gp-home .gp-estate-nodes span { font-size:.75rem; line-height:1.3; font-weight:600; color:var(--gp-ink); }
.gp-home .gp-estate-nodes .gp-icon { color:var(--gp-ink); }
.gp-home .gp-estate-owner { display:flex; align-items:center; justify-content:center; gap:1rem; background:#073e66; border-radius:12px; padding:1.3rem 1rem; color:#fff; text-align:left; }
.gp-home .gp-estate-owner>.gp-icon { width:2.7rem; height:2.7rem; color:#83d4f3; }
.gp-home .gp-estate-owner strong { display:block; font-size:1.2rem; }
.gp-home .gp-estate-owner span { display:block; font-size:.85rem; line-height:1.5; margin-top:.25rem; color:#e1f3ff; }
.gp-home .gp-estate-join { width:67%; height:1.5rem; margin-inline:auto; background:linear-gradient(var(--gp-tint-border),var(--gp-tint-border)) center/2px 100% no-repeat,linear-gradient(var(--gp-tint-border),var(--gp-tint-border)) left/2px 100% no-repeat,linear-gradient(var(--gp-tint-border),var(--gp-tint-border)) right/2px 100% no-repeat; }
.gp-home .gp-estate-graphic figcaption { margin-top:1rem; font-size:.75rem; text-align:center; color:var(--gp-muted); }
.gp-home .gp-assurance-strip { display:flex; flex-wrap:wrap; justify-content:center; gap:.75rem 2rem; background:var(--gp-tint); border-block:1px solid var(--gp-tint-border); padding:1.1rem; color:var(--gp-ink); font-size:.85rem; font-weight:600; }
.gp-home .gp-assurance-strip span::before { content:'✓'; color:var(--gp-ink); padding-right:.5rem; }
.gp-home .gp-section-alt { background:var(--gp-tint); }
.gp-home .gp-service-symbol { display:inline-flex; align-items:center; justify-content:center; width:3rem; height:3rem; border-radius:12px; background:var(--gp-tint); color:var(--gp-ink); margin-bottom:1rem; }
.gp-home .gp-symbol-resolution { background:#fff1dd; color:#74440b; }
.gp-home .gp-symbol-projects { background:#eeedff; color:#494080; }
.gp-home .gp-symbol-managed { background:#def3ec; color:#165b48; }
.gp-home .gp-service-rich { border-top:4px solid #82cfee; box-shadow:0 8px 24px rgb(7 62 102 / 5%); }
.gp-home .gp-service-rich:nth-child(2) { border-top-color:#e8b566; }
.gp-home .gp-service-rich:nth-child(3) { border-top-color:#aaa1e0; }
.gp-home .gp-service-rich:nth-child(4) { border-top-color:#70b8a4; }
.gp-home .gp-service-hero { max-width:none; background:linear-gradient(145deg,var(--gp-tint),var(--gp-surface)); border-bottom:1px solid var(--gp-tint-border); }
.gp-home .gp-ownership { background:var(--gp-soft-teal); }
.gp-home .gp-ownership-path { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; list-style:none; padding:0; max-width:1120px; margin:2rem auto 0; counter-reset:none; }
.gp-home .gp-ownership-path li { position:relative; background:var(--gp-raised); border:1px solid var(--gp-tint-border); border-radius:12px; padding:1.5rem; }
.gp-home .gp-stage { display:inline-flex; align-items:center; justify-content:center; width:2.2rem; height:2.2rem; border-radius:50%; background:#073e66; color:#fff; font-size:1rem; font-weight:700; margin-bottom:1rem; }
.gp-home .gp-ownership-path h3 { font-size:1.05rem; }
.gp-home .gp-ownership-path p { font-size:.9rem; margin-bottom:0; line-height:1.65; }
.gp-home .gp-ownership-note { max-width:860px; margin:1.5rem auto 0; font-size:.85rem; text-align:center; }
.gp-home .gp-managed-promise { background:#073e66; }
.gp-home .gp-managed-promise h2,.gp-home .gp-managed-promise p,.gp-home .gp-managed-promise strong { color:#fff; }
.gp-home .gp-promise-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:center; max-width:1050px; margin:auto; gap:4rem; }
.gp-home .gp-response-graphic { border:1px solid #5487a8; border-radius:50% 50% 18px 18px; padding:2rem; background:radial-gradient(ellipse at top,#175b83,#073e66); text-align:center; }
.gp-home .gp-response-graphic>strong { display:block; font-size:6rem; line-height:1; letter-spacing:-.05em; }
.gp-home .gp-response-graphic>strong span { display:block; font-size:1.4rem; letter-spacing:0; margin-top:.5rem; }
.gp-home .gp-response-graphic>p { margin:1rem 0; font-size:1rem; }
.gp-home .gp-response-graphic>div { border-top:1px solid #5487a8; padding-top:1rem; color:#d9f0ff; font-size:.95rem; }
.gp-home .gp-promise-link { margin:1rem 0 0; }
.gp-home .gp-managed-promise a:not(.gp-btn),.gp-home .gp-managed-promise a:not(.gp-btn):visited { color:#c0eaff; text-decoration:underline; }
.gp-home .gp-managed-promise .gp-btn { background:#fff; color:#073e66; }
.gp-home .gp-managed-promise .gp-btn:hover { background:#d9efff; }
.gp-home .gp-cta-section { background:linear-gradient(135deg,var(--gp-tint),var(--gp-soft-teal)); }

@media(max-width:1100px){ .gp-home .gp-hero-story { gap:1.5rem; } .gp-home .gp-ownership-path { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:900px){ .gp-home .gp-hero-story { grid-template-columns:1fr; } .gp-home .gp-hero-copy { max-width:700px; } .gp-home .gp-estate-graphic { width:100%; max-width:600px; margin-inline:auto; } .gp-home .gp-promise-layout { gap:2rem; } }
@media(max-width:768px){ .gp-home .gp-brand img { width:140px; } .gp-home .gp-hero-story { padding:3rem 1.25rem; } .gp-home .gp-hero-story h1 { font-size:clamp(2.2rem,9vw,3.2rem); } .gp-home .gp-estate-graphic { padding:1rem; } .gp-home .gp-estate-nodes { gap:.4rem; } .gp-home .gp-estate-nodes span { font-size:.8rem; } .gp-home .gp-estate-nodes>div { padding:.75rem .25rem; } .gp-home .gp-promise-layout { grid-template-columns:1fr; } .gp-home .gp-response-graphic { width:100%; max-width:320px; margin:auto; border-radius:16px; } .gp-home .gp-response-graphic>strong { font-size:4rem; } .gp-home .gp-ownership-path { grid-template-columns:1fr; } .gp-home .gp-assurance-strip { justify-content:flex-start; gap:.6rem 1.5rem; } }
@media print { .gp-home .gp-managed-promise { background:#fff; } .gp-home .gp-managed-promise h2,.gp-home .gp-managed-promise p,.gp-home .gp-managed-promise strong,.gp-home .gp-response-graphic>div { color:#111; } .gp-home .gp-promise-layout,.gp-home .gp-hero-story { display:block; } .gp-home .gp-estate-graphic { break-inside:avoid; } }


/* Keep the managed-service panel readable against the navy section. */
.gp-home .gp-managed-promise .gp-panel-large {background:#0c4a71;border:1px solid #5487a8;color:#fff;}
.gp-home .gp-managed-promise h3 {color:#fff;}
.gp-home .gp-editorial > * {min-width:0;}
.gp-home .gp-hero-actions {display:flex;flex-wrap:wrap;gap:1rem;align-items:center;}

/* Action hierarchy: predictable rows, centred closing CTAs, consistent card links. */
.gp-hero-actions {flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem;}
.gp-home .gp-hero-story .gp-hero-actions {flex-direction:row;align-items:center;justify-content:flex-start;}
.gp-home .gp-cta-section .gp-hero-actions {flex-direction:row;align-items:center;justify-content:center;}
.gp-btn-secondary,.gp-btn-secondary:visited {padding:1rem 1.4rem;border:1px solid var(--gp-accent);border-radius:6px;color:var(--gp-accent);background:transparent;font-size:1rem;font-weight:600;text-align:center;}
.gp-btn-secondary:hover {background:var(--gp-tint,#edf7fd);}
.gp-detail-link,.gp-service-card>a:last-child {display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--gp-tint-border,#c8e3f3);border-radius:8px;background:var(--gp-tint,#edf7fd);text-decoration:none;font-size:.95rem;font-weight:600;line-height:1.45;}
.gp-detail-link:hover,.gp-service-card>a:last-child:hover {border-color:var(--gp-accent);text-decoration:underline;}
.gp-service-card {display:flex;flex-direction:column;}
.gp-service-card>a:last-child {margin-top:auto;}
.gp-home .gp-managed-promise .gp-detail-link {background:#0c4a71;color:#fff;}
.gp-home .gp-hero-story .gp-lead {font-size:clamp(1.15rem,1.8vw,1.4rem);line-height:1.45;}
.gp-home .gp-hero-description {font-size:1rem;line-height:1.65;}
.gp-brand {max-width:180px;}
.gp-brand img {width:174px;max-width:100%;height:auto;}
.gp-nav-outline,.gp-nav-outline:visited {background:var(--gp-accent);border-color:var(--gp-accent);color:#fff;}
.gp-nav-outline:hover {background:var(--gp-accent-hover);color:#fff;}
.gp-btn:focus-visible,.gp-detail-link:focus-visible,.gp-nav-outline:focus-visible {outline:3px solid var(--gp-accent);outline-offset:4px;}
@media(max-width:600px){
 .gp-hero-actions,.gp-home .gp-hero-story .gp-hero-actions,.gp-home .gp-cta-section .gp-hero-actions {flex-direction:column;align-items:stretch;}
 .gp-hero-actions>a {width:100%;text-align:center;}
 .gp-brand {max-width:145px;}
 .gp-detail-link {font-size:.9rem;}
}

.gp-preview a,.gp-preview a:visited{color:#fff;font-weight:600;text-underline-offset:.2em}.gp-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.gp-notice{padding:1rem;border-left:4px solid var(--gp-accent);background:var(--gp-tint)}

[hidden]{display:none!important}
@media(max-width:1200px){.gp-nav{display:none}.gp-mobile-disclosure{display:block}}
