/* GHL service page: existing D4J tokens, readable offers, optional motion. */
.ghl-page { --ghl-gap: clamp(64px, 7vw, 108px); --ghl-input-border: #7d8d83; }
html[data-theme="dark"] .ghl-page { --ghl-input-border: #718b89; }
.ghl-page main { overflow: clip; }
.ghl-page .ghl-section { padding-block: var(--ghl-gap); }
.ghl-page .ghl-rule { border-top: 1px solid var(--line); }
.ghl-page .ghl-heading { max-width: 780px; margin: 0 0 20px; font-size: clamp(2rem, 3.6vw, 3.6rem); line-height: 1.08; }
.ghl-page .ghl-intro { max-width: 64ch; color: var(--muted); margin: 0; }
.ghl-page .ghl-hero { position: relative; min-height: 490px; padding: 62px 0 76px; }
.ghl-page .ghl-hero-copy { position: relative; z-index: 1; width: min(1050px, 85%); }
.ghl-page .ghl-hero h1 { max-width: 27ch; font-size: clamp(2.65rem, 5vw, 4.75rem); line-height: 1.035; margin: 0 0 26px; }
.ghl-page .ghl-hero .lead { max-width: 51ch; margin: 0 0 28px; font-size: clamp(1.1rem, 1.4vw, 1.24rem); }
.ghl-page .ghl-hero .eyebrow { margin-bottom: 20px; }
.ghl-page .ghl-hero .page-hero-visual { right: -24%; top: 5%; width: 70%; height: 100%; opacity: .38; pointer-events: none; }
.ghl-page .ghl-button-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.ghl-page .ghl-button-row .button { white-space: nowrap; }
.ghl-page .ghl-context { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px 28px; padding-block: 22px; border-block: 1px solid var(--line); color: var(--muted); font-size: .9rem; }
.ghl-page .ghl-context p { margin: 0; }
.ghl-page .ghl-context strong { color: var(--navy); font-weight: 550; }
.ghl-page #packages { scroll-margin-top: 108px; }
.ghl-page .ghl-package-intro { position: relative; padding-bottom: 34px; min-height: 190px; }
.ghl-page .ghl-package-intro .ghl-heading { max-width: 18ch; }
.ghl-page .ghl-package-intro .ghl-intro { max-width: 60ch; position: relative; z-index: 1; }
.ghl-page .ghl-package-art { position: absolute; right: -40px; top: -48px; width: min(43%, 500px); height: 255px; pointer-events: none; overflow: hidden; }
.ghl-page .ghl-package-art canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; transition: opacity .4s; }
.ghl-page .ghl-package-art[data-state="ready"] canvas { opacity: 1; }
.ghl-page .ghl-package-art .ghl-scene-fallback { position: absolute; inset: 0; opacity: .65; }
.ghl-page .ghl-package-art[data-state="ready"] .ghl-scene-fallback { opacity: 0; }
.ghl-page .ghl-scene-fallback svg { width: 100%; height: 100%; }
.ghl-page .ghl-offers { display: grid; grid-template-columns: 1fr 1.1fr 1fr; gap: 18px; align-items: start; }
.ghl-page .ghl-offer { min-width: 0; padding: 30px 28px; border: 1px solid var(--line); border-radius: 24px; background: var(--paper-bright); position: relative; }
.ghl-page .ghl-offer--featured { border: 1px solid var(--lime-dark); background: var(--surface-accent); }
.ghl-page .ghl-offer-tag { margin: 0 0 26px; min-height: 2.9em; color: var(--muted); font-size: .8rem; line-height: 1.45; }
.ghl-page .ghl-offer--featured .ghl-offer-tag { color: var(--lime-dark); font-weight: 600; }
.ghl-page .ghl-offer h3 { margin: 0 0 17px; font-size: 1.6rem; }
.ghl-page .ghl-price { margin: 0; color: var(--navy); font-size: clamp(2.35rem, 3.1vw, 3.4rem); line-height: 1.06; letter-spacing: -.055em; font-weight: 570; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ghl-page .ghl-from { display: block; height: 23px; line-height: 16px; font-size: .8rem; font-weight: 450; letter-spacing: 0; margin: 0; }
.ghl-page .ghl-price-spacer { display: block; height: 23px; }
.ghl-page .ghl-price-basis { color: var(--muted); font-size: .88rem; margin: 9px 0 4px; }
.ghl-page .ghl-price-net { color: var(--muted); font-size: .8rem; margin: 0 0 26px; }
.ghl-page .ghl-offer-desc { min-height: 5em; margin: 0 0 22px; font-size: .94rem; color: var(--muted); }
.ghl-page .ghl-offer .button { width: 100%; justify-content: space-between; gap: 8px; padding-inline: 18px 10px; font-size: .86rem; }
.ghl-page .ghl-offer .button-mark { flex: 0 0 32px; width: 32px; height: 32px; }
.ghl-page .ghl-offer-facts { list-style: none; margin: 25px 0; padding: 0; display: grid; gap: 11px; font-size: .9rem; }
.ghl-page .ghl-offer-facts li { display: grid; grid-template-columns: 22px 1fr; gap: 9px; align-items: start; }
.ghl-page .ghl-offer-facts li::before { content: '\2713'; font-size: .88rem; color: var(--lime-dark); }
.ghl-page .ghl-scope { border-top: 1px solid var(--line-strong); margin-top: 22px; padding-top: 18px; }
.ghl-page summary { cursor: pointer; color: var(--navy); }
.ghl-page .ghl-scope summary { font-weight: 550; font-size: .88rem; padding-block: 5px; }
.ghl-page .ghl-scope ul { padding-left: 18px; margin: 18px 0; display: grid; gap: 10px; color: var(--muted); font-size: .86rem; }
.ghl-page .ghl-scope p { font-size: .86rem; color: var(--muted); }
.ghl-page .ghl-package-note { margin: 25px 0 0; font-size: .91rem; color: var(--muted); max-width: 91ch; }
.ghl-page .ghl-package-note a { color: var(--navy); text-underline-offset: 4px; }
.ghl-page .ghl-journey { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; margin-top: 40px; }
.ghl-page .ghl-journey article { border-top: 2px solid var(--line-strong); padding-top: 22px; }
.ghl-page .ghl-journey article:last-child { border-color: var(--lime-dark); }
.ghl-page .ghl-journey h3 { font-size: 1.26rem; margin: 0 0 14px; }
.ghl-page .ghl-journey p { color: var(--muted); font-size: .92rem; margin: 0; }
.ghl-page .ghl-monthlies { margin-top: 40px; display: grid; }
.ghl-page .ghl-monthly { display: grid; grid-template-columns: .75fr 1.4fr .65fr; gap: 32px; align-items: start; padding: 28px 0; border-top: 1px solid var(--line); }
.ghl-page .ghl-monthly:last-child { border-bottom: 1px solid var(--line); }
.ghl-page .ghl-monthly h3 { font-size: 1.35rem; margin: 2px 0 0; }
.ghl-page .ghl-monthly p { margin: 0; font-size: .95rem; color: var(--muted); }
.ghl-page .ghl-monthly-money { text-align: right; }
.ghl-page .ghl-monthly-money strong { display: block; font-size: 1.6rem; line-height: 1.15; color: var(--navy); letter-spacing: -.03em; white-space: nowrap; }
.ghl-page .ghl-monthly-money small { display: block; margin-top: 6px; line-height: 1.6; font-size: .77rem; }
.ghl-page .ghl-retainer-terms { margin-top: 25px; max-width: 90ch; }
.ghl-page .ghl-retainer-terms p { font-size: .9rem; color: var(--muted); margin-block: 12px; }
.ghl-page .ghl-proof { display: grid; grid-template-columns: 1.03fr 1fr; gap: clamp(32px, 6vw, 86px); align-items: center; }
.ghl-page .ghl-proof figure { margin: 0; border-radius: 24px; overflow: hidden; aspect-ratio: 1.1; background: var(--surface); }
.ghl-page .ghl-proof img { width: 100%; height: 100%; object-fit: cover; }
.ghl-page .ghl-proof .ghl-heading { max-width: 15ch; }
.ghl-page .ghl-proof p { max-width: 57ch; color: var(--muted); }
.ghl-page .ghl-proof a:not(.button) { color: var(--navy); text-underline-offset: 4px; }
.ghl-page .ghl-process { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 56px; margin-top: 38px; }
.ghl-page .ghl-process article { display: grid; grid-template-columns: 44px 1fr; gap: 20px; padding-block: 16px; }
.ghl-page .ghl-process-number { color: var(--lime-dark); font-size: 1.5rem; line-height: 1.2; padding-top: 3px; }
.ghl-page .ghl-process h3 { font-size: 1.3rem; margin: 0 0 12px; }
.ghl-page .ghl-process p { color: var(--muted); margin: 0; font-size: .94rem; }
.ghl-page .ghl-clarity { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; padding: 38px; border-radius: 24px; background: var(--surface); margin-top: 40px; }
.ghl-page .ghl-clarity h3 { font-size: 1.2rem; margin: 0 0 12px; }
.ghl-page .ghl-clarity p { font-size: .91rem; color: var(--muted); margin: 0; }
.ghl-page .ghl-faq-layout { display: grid; grid-template-columns: .8fr 1.25fr; gap: 60px; align-items: start; }
.ghl-page .ghl-faq-layout .ghl-heading { max-width: 13ch; }
.ghl-page .ghl-faq { border-bottom: 1px solid var(--line); padding-block: 20px; }
.ghl-page .ghl-faq:first-child { border-top: 1px solid var(--line); }
.ghl-page .ghl-faq summary { font-size: 1.05rem; font-weight: 550; padding-right: 12px; line-height: 1.45; }
.ghl-page .ghl-faq p { margin: 18px 0 0; font-size: .95rem; color: var(--muted); max-width: 64ch; }
.ghl-page .ghl-enquiry-wrap { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(35px, 6vw, 80px); padding: clamp(28px, 4vw, 55px); border: 1px solid var(--line); border-radius: 24px; background: var(--surface-subtle); align-items: start; }
.ghl-page .ghl-enquiry-copy { padding-top: 10px; }
.ghl-page .ghl-enquiry-copy .ghl-heading { font-size: clamp(2rem, 3.2vw, 3.25rem); max-width: 15ch; }
.ghl-page .ghl-enquiry-copy p { color: var(--muted); max-width: 38ch; }
.ghl-page .ghl-enquiry-copy a { color: var(--navy); text-underline-offset: 4px; }
body.design-v2.ghl-page #ghl-interest-form { padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; min-width: 0; scroll-margin-top: 118px; }
.ghl-page .ghl-form .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 0; }
.ghl-page .ghl-form .form-field { margin-bottom: 17px; min-width: 0; }
.ghl-page .ghl-form label { display: block; color: var(--navy); font-size: .85rem; font-weight: 500; margin-bottom: 8px; }
.ghl-page .ghl-form input:not([type="checkbox"]):not([type="hidden"]), .ghl-page .ghl-form select, .ghl-page .ghl-form textarea { width: 100%; min-width: 0; min-height: 50px; padding: 11px 13px; border: 1px solid var(--ghl-input-border); border-radius: 12px; background: var(--paper-bright); color: var(--ink); font-size: 1rem; }
.ghl-page .ghl-form select { padding-right: 27px; }
.ghl-page .ghl-form textarea { min-height: 115px; resize: vertical; }
.ghl-page .ghl-form input::placeholder, .ghl-page .ghl-form textarea::placeholder { color: var(--muted); opacity: 1; }
.ghl-page .ghl-form .field-error { margin: 5px 0 0; color: var(--danger); font-size: .82rem; line-height: 1.4; }
.ghl-page .ghl-form .field-error:empty { display: none; }
.ghl-page .ghl-consent { margin: 18px 0; }
.ghl-page .ghl-consent label { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; color: var(--muted); font-size: .85rem; line-height: 1.6; font-weight: 400; cursor: pointer; }
.ghl-page .ghl-consent input { width: 19px; height: 19px; min-height: 0; margin: 3px 0 0; accent-color: var(--lime-dark); cursor: pointer; }
.ghl-page .ghl-consent[hidden] { display: none !important; }
.ghl-page .ghl-form .form-disclosure, .ghl-page .ghl-form .form-status { font-size: .8rem; color: var(--muted); line-height: 1.6; }
.ghl-page .ghl-form .form-status:not(:empty) { border-left: 3px solid var(--lime-dark); padding-left: 13px; margin-block: 17px; color: var(--navy); }
.ghl-page .ghl-form .button { margin-top: 8px; min-height: 52px; }
.ghl-page .ghl-form .button:disabled { cursor: wait; opacity: .72; }
.ghl-page .ghl-related { display: flex; gap: 16px 30px; flex-wrap: wrap; padding-top: 35px; font-size: .94rem; }
.ghl-page .ghl-related a { text-underline-offset: 5px; }
@media (prefers-reduced-motion: no-preference) {
 .ghl-page .ghl-offer { transition: transform .32s var(--ease), border-color .32s; }
 .ghl-page .ghl-offer:hover { transform: translateY(-4px); border-color: var(--line-strong); }
 .ghl-page .ghl-offer--featured:hover { border-color: var(--lime-dark); }
 .ghl-page .ghl-hero-copy > * { animation: d4j-enter .65s var(--ease) both; }
 .ghl-page .ghl-hero-copy h1 { animation-delay: .06s; }
 .ghl-page .ghl-hero-copy .lead { animation-delay: .12s; }
 .ghl-page .ghl-hero-copy .ghl-button-row { animation-delay: .18s; }
 .ghl-page .ghl-proof img { transition: transform .7s var(--ease); }
 .ghl-page .ghl-proof figure:hover img { transform: scale(1.025); }
}
@media (max-width: 1100px) {
 .ghl-page .ghl-offer { padding: 25px 22px; }
 .ghl-page .ghl-offers { gap: 12px; grid-template-columns: 1fr 1.06fr 1fr; }
 .ghl-page .ghl-price { font-size: 2.6rem; }
 .ghl-page .ghl-offer .button { font-size: .8rem; padding-left: 13px; }
 .ghl-page .ghl-monthly { grid-template-columns: .75fr 1.15fr .8fr; gap: 20px; }
 .ghl-page .ghl-package-art { width: 35%; right: -35px; }
}
@media (max-width: 900px) {
 .ghl-page .ghl-offers { grid-template-columns: 1fr; gap: 18px; }
 .ghl-page .ghl-offer { display: grid; grid-template-columns: 1fr 1fr; gap: 0 30px; padding: 30px; }
 .ghl-page .ghl-offer .ghl-offer-top { grid-row: span 2; }
 .ghl-page .ghl-offer-facts { margin-top: 4px; }
 .ghl-page .ghl-offer .ghl-scope { margin-top: 4px; align-self: end; }
 .ghl-page .ghl-price-spacer { display: none; }
 .ghl-page .ghl-offer-desc { min-height: 0; }
 .ghl-page .ghl-offer-tag { min-height: 0; margin-bottom: 18px; }
 .ghl-page .ghl-journey { grid-template-columns: 1fr 1fr; gap: 30px; }
 .ghl-page .ghl-faq-layout { grid-template-columns: 1fr; gap: 30px; }
 .ghl-page .ghl-faq-layout .ghl-heading { max-width: 25ch; }
 .ghl-page .ghl-enquiry-wrap { grid-template-columns: 1fr; }
 .ghl-page .ghl-enquiry-copy .ghl-heading, .ghl-page .ghl-enquiry-copy p { max-width: 30ch; }
 .ghl-page .ghl-package-art { opacity: .3; right: -60px; }
}
@media (max-width: 767px) {
 .ghl-page { --ghl-gap: 60px; }
 .ghl-page .ghl-hero { min-height: 0; padding: 38px 0 43px; }
 .ghl-page .ghl-hero-copy { width: 100%; }
 .ghl-page .ghl-hero h1 { font-size: clamp(2.05rem, 7.8vw, 3.3rem); max-width: 20ch; line-height: 1.08; margin-bottom: 22px; }
 .ghl-page .ghl-hero .lead { font-size: 1.05rem; max-width: 37ch; margin-bottom: 24px; }
 .ghl-page .ghl-hero .page-hero-visual { display: none; }
 .ghl-page .ghl-button-row { gap: 10px; }
 .ghl-page .ghl-button-row .button { min-height: 48px; font-size: .86rem; }
 .ghl-page .ghl-context { font-size: .84rem; padding-block: 20px; gap: 9px; }
 .ghl-page .ghl-context p { width: 100%; }
 .ghl-page .ghl-package-intro { padding-bottom: 29px; min-height: 0; }
 .ghl-page .ghl-package-art { display: none; }
 .ghl-page .ghl-heading { font-size: clamp(1.9rem, 6.5vw, 2.8rem); margin-bottom: 18px; }
 .ghl-page .ghl-package-intro .ghl-heading { max-width: 18ch; }
 .ghl-page .ghl-intro { font-size: .97rem; }
 .ghl-page .ghl-offer { display: block; padding: 27px 25px; }
 .ghl-page .ghl-offer h3 { margin-bottom: 15px; }
 .ghl-page .ghl-price { font-size: 3.05rem; }
 .ghl-page .ghl-offer-desc { margin-bottom: 22px; }
 .ghl-page .ghl-offer-facts { margin: 23px 0; }
 .ghl-page .ghl-offer .ghl-scope { margin-top: 23px; }
 .ghl-page .ghl-offer .button { font-size: .9rem; padding-left: 18px; }
 .ghl-page .ghl-package-note { font-size: .86rem; }
 .ghl-page .ghl-journey { gap: 30px 22px; }
 .ghl-page .ghl-journey h3 { font-size: 1.16rem; }
 .ghl-page .ghl-journey p { font-size: .89rem; }
 .ghl-page .ghl-monthly { grid-template-columns: 1fr auto; gap: 16px 20px; padding-block: 25px; }
 .ghl-page .ghl-monthly > p { grid-column: 1/-1; grid-row: 2; }
 .ghl-page .ghl-monthly-money strong { font-size: 1.4rem; }
 .ghl-page .ghl-monthly-money small { font-size: .7rem; }
 .ghl-page .ghl-monthly h3 { font-size: 1.2rem; }
 .ghl-page .ghl-proof { grid-template-columns: 1fr; gap: 30px; }
 .ghl-page .ghl-proof figure { aspect-ratio: 1.5; }
 .ghl-page .ghl-proof .ghl-heading { max-width: 24ch; }
 .ghl-page .ghl-process { grid-template-columns: 1fr; gap: 12px; }
 .ghl-page .ghl-process article { grid-template-columns: 30px 1fr; gap: 17px; }
 .ghl-page .ghl-clarity { grid-template-columns: 1fr; gap: 28px; padding: 26px; }
 .ghl-page .ghl-enquiry-wrap { padding: 25px 20px; gap: 24px; }
 .ghl-page .ghl-enquiry-copy { padding: 0; }
 .ghl-page .ghl-enquiry-copy .ghl-heading { max-width: 16ch; font-size: 2rem; }
 .ghl-page .ghl-form .field-row { grid-template-columns: 1fr; gap: 0; }
 .ghl-page .ghl-form .button { width: 100%; justify-content: space-between; font-size: .88rem; padding-inline: 16px 10px; }
 .ghl-page .ghl-related { gap: 15px 25px; font-size: .88rem; }
}
@media (max-width: 359px) {
 .ghl-page .ghl-offer { padding: 25px 21px; }
 .ghl-page .ghl-price { font-size: 2.7rem; }
 .ghl-page .ghl-journey { grid-template-columns: 1fr; }
 .ghl-page .ghl-monthly { grid-template-columns: 1fr; }
 .ghl-page .ghl-monthly > p { grid-row: auto; }
 .ghl-page .ghl-monthly-money { text-align: left; }
 .ghl-page .ghl-enquiry-wrap { padding-inline: 16px; }
 .ghl-page .ghl-form .button { font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
 .ghl-page *, .ghl-page *::before, .ghl-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
 .ghl-page .ghl-package-art, .ghl-page .ghl-hero .page-hero-visual, .ghl-page .ghl-enquiry-wrap { display: none; }
 .ghl-page .ghl-section { padding-block: 24px; }
 .ghl-page .ghl-offers, .ghl-page .ghl-monthlies { break-inside: avoid; }
}

/* Keep the CRM network fully framed alongside the introduction. */
@media (min-width: 768px) {
  .ghl-page .ghl-hero-copy { width: 60%; }
  .ghl-page .ghl-hero h1 { font-size: clamp(2.65rem, 4.5vw, 4.25rem); }
  .ghl-page .ghl-hero .page-hero-visual {
    right: 0; top: 20%; width: 40%; height: 48%; opacity: 1;
  }
}
