
    :root {
      --navy-950: #06111d;
      --navy-900: #0a1726;
      --navy-800: #10283f;
      --navy-700: #183c5f;
      --orange: var(--gp-green);
      --orange-2: var(--gp-green-bright);
      --green: #43b45a;
      --paper: #f4f7fa;
      --white: #fff;
      --ink: #0c1722;
      --muted: #607080;
      --line: #dce5ec;
      --shadow: 0 18px 50px rgba(4, 15, 28, .12);
      --radius: 18px;
      --container: 1220px;
      --ease: cubic-bezier(.2, .8, .2, 1)
    }

    * {
      box-sizing: border-box
    }

    html {
      scroll-behavior: smooth
    }

    body {
      margin: 0;
      background: var(--paper);
      color: var(--ink);
      font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
      line-height: 1.65
    }

    img,
    video {
      display: block;
      max-width: 100%
    }

    a {
      color: inherit;
      text-decoration: none
    }

    button,
    input,
    select,
    textarea {
      font: inherit
    }

    button {
      cursor: pointer
    }

    .skip-link {
      position: absolute;
      left: 12px;
      top: -60px;
      z-index: 2000;
      background: var(--gp-green);
      color: #07101a;
      font-weight: 800;
      padding: 10px 16px;
      border-radius: 8px;
      transition: top .2s var(--ease)
    }

    .skip-link:focus {
      top: 12px
    }

    a:focus-visible,
    button:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible,
    [tabindex]:focus-visible {
      outline: 2px solid var(--gp-green);
      outline-offset: 2px
    }

    @media (prefers-reduced-motion:reduce) {
      html {
        scroll-behavior: auto
      }

      *,
      *::before,
      *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important
      }
    }

    .container {
      width: min(calc(100% - 40px), var(--container));
      margin: auto
    }

    .site-nav {
      position: sticky;
      top: 0;
      z-index: 1000;
      background: rgba(6, 17, 29, .94);
      backdrop-filter: blur(18px);
      border-bottom: 1px solid rgba(255, 255, 255, .08)
    }

    .nav-inner {
      min-height: 78px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 12px;
      color: #fff
    }

    .brand img {
      width: 44px;
      height: 44px;
      object-fit: contain
    }

    .brand-name {
      font-weight: 800;
      font-size: 1.05rem;
      line-height: 1.1
    }

    .brand-sub {
      display: block;
      color: var(--gp-green);
      font-size: .63rem;
      letter-spacing: .12em;
      text-transform: uppercase;
      margin-top: 3px
    }

    .nav-toggle {
      display: none;
      border: 1px solid rgba(255, 255, 255, .15);
      color: #fff;
      background: transparent;
      border-radius: 10px;
      width: 44px;
      height: 44px
    }

    .nav-list {
      display: flex;
      align-items: center;
      gap: 1.35rem;
      list-style: none;
      margin: 0;
      padding: 0
    }

    .nav-list a {
      color: #c7d4df;
      font-size: .9rem;
      font-weight: 600;
      padding: 8px 0;
      position: relative
    }

    .nav-list a:hover,
    .nav-list a.active {
      color: #fff
    }

    .nav-list a:not(.nav-cta)::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: 0;
      width: 0;
      height: 2px;
      background: var(--gp-green);
      transition: .25s
    }

    .nav-list a:hover::after,
    .nav-list a.active::after {
      width: 100%
    }

    .nav-cta {
      background: var(--gp-green);
      color: #07101a !important;
      padding: 10px 17px !important;
      border-radius: 9px;
      box-shadow: 0 8px 25px rgba(255, 106, 43, .22)
    }

    .hero {
      position: relative;
      overflow: hidden;
      background: var(--navy-950);
      color: #fff;
      min-height: 650px;
      display: grid;
      align-items: center
    }

    .hero-bg {
      position: absolute;
      inset: 0;
      background-size: cover;
      background-position: center;
      opacity: .72;
      transform: scale(1.04);
      animation: slowZoom 12s ease-out forwards
    }

    .hero::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(90deg, rgba(6, 17, 29, .98) 0%, rgba(6, 17, 29, .78) 48%, rgba(6, 17, 29, .35) 100%)
    }

    .hero-content {
      position: relative;
      z-index: 2;
      padding: 90px 0
    }

    .eyebrow {
      color: var(--gp-green);
      font-size: .72rem;
      font-weight: 800;
      letter-spacing: .15em;
      text-transform: uppercase
    }

    h1,
    h2,
    h3 {
      line-height: 1.13;
      margin: 0;
      font-weight: 800;
      letter-spacing: -.025em
    }

    .hero h1 {
      font-size: clamp(2.6rem, 6vw, 5.3rem);
      max-width: 850px;
      margin-top: 14px
    }

    .hero h1 span,
    h1 span {
      color: var(--gp-green)
    }

    .hero p.lead {
      max-width: 720px;
      color: #c9d7e4;
      font-size: 1.12rem;
      margin: 24px 0 0
    }

    .actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 32px
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 9px;
      min-height: 50px;
      padding: 0 22px;
      border-radius: 9px;
      font-weight: 800;
      border: 1px solid transparent;
      transition: .25s var(--ease)
    }

    .btn-primary {
      background: var(--gp-green);
      color: #07101a
    }

    .btn-primary:hover {
      background: var(--gp-green-bright);
      transform: translateY(-2px);
      box-shadow: 0 12px 30px rgba(255, 106, 43, .3)
    }

    .btn-ghost {
      color: #fff;
      border-color: rgba(255, 255, 255, .24);
      background: rgba(255, 255, 255, .05)
    }

    .btn-ghost:hover {
      background: rgba(255, 255, 255, .12);
      transform: translateY(-2px)
    }

    .section {
      padding: 92px 0;
      background: #fff
    }

    .section.alt {
      background: var(--paper)
    }

    .section.dark {
      background: var(--navy-950);
      color: #fff
    }

    .section-head {
      max-width: 820px;
      margin: 0 auto 48px;
      text-align: center
    }

    .section-title {
      font-size: clamp(2rem, 4vw, 3.2rem);
      margin-top: 10px
    }

    .section-subtitle {
      color: var(--muted);
      margin: 15px 0 0;
      font-size: 1.04rem
    }

    .dark .section-subtitle {
      color: #9fb0bf
    }

    .grid-3 {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px
    }

    .grid-2 {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 28px
    }

    .card {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: 0 5px 20px rgba(4, 15, 28, .05);
      transition: .25s var(--ease)
    }

    .card:hover {
      transform: translateY(-6px);
      box-shadow: var(--shadow);
      border-color: rgba(255, 106, 43, .45)
    }

    .card img,
    .card video {
      width: 100%;
      height: 225px;
      object-fit: cover;
      background: #07101a
    }

    .card-body {
      padding: 24px
    }

    .card h3 {
      font-size: 1.22rem
    }

    .card p {
      color: var(--muted);
      margin: 10px 0 0
    }

    .badge {
      display: inline-flex;
      background: #fff1ea;
      color: #b9400f;
      border-radius: 999px;
      padding: 5px 10px;
      font-size: .68rem;
      font-weight: 800;
      letter-spacing: .06em;
      text-transform: uppercase;
      margin-bottom: 12px
    }

    .page-hero {
      background: linear-gradient(135deg, var(--navy-950), var(--navy-800));
      color: #fff;
      padding: 90px 0
    }

    .page-hero h1 {
      font-size: clamp(2.5rem, 5vw, 4.5rem);
      max-width: 900px;
      margin-top: 12px
    }

    .page-hero p {
      max-width: 780px;
      color: #b9cad8;
      font-size: 1.08rem;
      margin-top: 18px
    }

    .split {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 70px;
      align-items: center
    }

    .split img {
      width: 100%;
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      object-fit: cover;
      max-height: 560px
    }

    .check-list {
      list-style: none;
      padding: 0;
      margin: 25px 0 0;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px
    }

    .check-list li {
      font-weight: 700;
      color: var(--navy-700);
      display: flex;
      gap: 10px
    }

    .check-list li::before {
      content: "✓";
      color: var(--gp-green);
      font-weight: 900
    }

    .service-card img {
      height: 240px
    }

    .service-card.featured {
      border: 2px solid var(--gp-green)
    }

    .service-card .card-body {
      min-height: 210px
    }

    .service-list {
      list-style: none;
      padding: 0;
      margin: 18px 0 0;
      display: grid;
      gap: 9px
    }

    .service-list li {
      color: #415364;
      padding-left: 18px;
      position: relative
    }

    .service-list li::before {
      content: "▪";
      position: absolute;
      left: 0;
      color: var(--gp-green)
    }

    .process {
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      gap: 14px
    }

    .step {
      padding: 22px;
      border: 1px solid var(--line);
      border-radius: 14px;
      background: #fff
    }

    .step .num {
      color: var(--gp-green);
      font-size: .7rem;
      font-weight: 900;
      letter-spacing: .1em
    }

    .step h3 {
      font-size: 1rem;
      margin-top: 18px
    }

    .step p {
      font-size: .87rem;
      color: var(--muted);
      margin: 8px 0 0
    }

    .project-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
      margin-top: 16px
    }

    .tag {
      font-size: .67rem;
      font-weight: 800;
      letter-spacing: .05em;
      text-transform: uppercase;
      background: var(--paper);
      color: var(--navy-700);
      padding: 5px 9px;
      border-radius: 6px
    }

    .booking-shell {
      display: grid;
      grid-template-columns: .9fr 1.1fr;
      gap: 28px;
      align-items: start
    }

    .booking-info,
    .booking-card {
      border-radius: var(--radius);
      border: 1px solid var(--line);
      background: #fff;
      box-shadow: var(--shadow)
    }

    .booking-info {
      padding: 34px;
      background: linear-gradient(145deg, var(--navy-900), var(--navy-800));
      color: #fff
    }

    .booking-info p {
      color: #b7c8d7
    }

    .booking-points {
      display: grid;
      gap: 15px;
      margin-top: 24px
    }

    .booking-point {
      display: flex;
      gap: 12px
    }

    .booking-point strong {
      display: block
    }

    .booking-point span {
      color: #a8bac9;
      font-size: .88rem
    }

    .booking-card {
      padding: 30px
    }

    .booking-form {
      display: grid;
      gap: 16px
    }

    .form-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px
    }

    .form-group label {
      display: block;
      font-size: .72rem;
      font-weight: 800;
      letter-spacing: .06em;
      text-transform: uppercase;
      color: #526477;
      margin-bottom: 6px
    }

    .form-input,
    .form-select,
    .form-textarea {
      width: 100%;
      border: 1px solid #cfd9e2;
      background: #fbfcfd;
      border-radius: 9px;
      padding: 12px 13px;
      outline: none
    }

    .form-input:focus,
    .form-select:focus,
    .form-textarea:focus {
      border-color: var(--gp-green);
      box-shadow: 0 0 0 3px rgba(255, 106, 43, .1)
    }

    .form-textarea {
      min-height: 100px;
      resize: vertical
    }

    .calendar {
      border: 1px solid var(--line);
      border-radius: 14px;
      padding: 18px;
      background: #f9fbfc
    }

    .calendar-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px
    }

    .calendar-head button {
      width: 36px;
      height: 36px;
      border-radius: 8px;
      border: 1px solid var(--line);
      background: #fff
    }

    .calendar-title {
      font-weight: 800
    }

    .week {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      gap: 6px;
      margin-top: 12px
    }

    .week span {
      text-align: center;
      font-size: .68rem;
      font-weight: 800;
      color: #718193
    }

    .days {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      gap: 6px;
      margin-top: 6px
    }

    .day {
      min-height: 38px;
      border: 0;
      border-radius: 8px;
      background: #fff;
      color: #23384a
    }

    .day.muted {
      opacity: .3
    }

    .day:not(:disabled):hover {
      background: #fff0e9;
      color: #b83f0e
    }

    .day.selected {
      background: var(--gp-green);
      color: #07101a;
      font-weight: 900
    }

    .day:disabled {
      opacity: .3;
      cursor: not-allowed
    }

    .slots {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 12px
    }

    .slot {
      border: 1px solid var(--line);
      background: #fff;
      border-radius: 8px;
      padding: 9px 12px;
      font-weight: 700;
      font-size: .85rem
    }

    .slot.selected {
      background: var(--navy-900);
      color: #fff;
      border-color: var(--navy-900)
    }

    .confirm-box {
      margin-top: 18px;
      padding: 16px;
      border-radius: 10px;
      background: #eef9f0;
      border: 1px solid #bce3c2;
      color: #235f2d
    }

    .confirm-box strong {
      display: block
    }

    .site-footer {
      background: var(--navy-950);
      color: #fff;
      padding: 70px 0 0
    }

    .footer-grid {
      display: grid;
      grid-template-columns: 1.5fr 1fr 1fr;
      gap: 55px;
      padding-bottom: 55px
    }

    .footer-title {
      font-size: .74rem;
      font-weight: 900;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: #fff;
      margin-bottom: 18px
    }

    .footer-list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: grid;
      gap: 10px;
      color: #9fb1c0;
      font-size: .9rem
    }

    .footer-list a:hover {
      color: var(--gp-green)
    }

    .footer-bottom {
      border-top: 1px solid rgba(255, 255, 255, .08);
      padding: 22px;
      text-align: center;
      color: #718596;
      font-size: .74rem
    }

    .faq {
      max-width: 900px;
      margin: auto;
      display: grid;
      gap: 12px
    }

    .faq details {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 13px;
      padding: 0 20px
    }

    .faq summary {
      padding: 19px 0;
      font-weight: 800;
      cursor: pointer
    }

    .faq p,
    .faq ul {
      color: var(--muted)
    }

    .back-top {
      position: fixed;
      right: 20px;
      bottom: 20px;
      width: 46px;
      height: 46px;
      border-radius: 50%;
      background: var(--navy-900);
      color: #fff;
      border: 1px solid rgba(255, 255, 255, .1);
      display: none;
      z-index: 900
    }

    .back-top.show {
      display: block
    }

    .notice {
      padding: 14px 16px;
      background: #fff7ed;
      border: 1px solid #fed7aa;
      color: #9a4312;
      border-radius: 10px;
      font-size: .9rem
    }

    @keyframes slowZoom {
      from {
        transform: scale(1.04)
      }

      to {
        transform: scale(1.0)
      }
    }

    @media(max-width:1050px) {
      .nav-toggle {
        display: block
      }

      .nav-list {
        position: absolute;
        left: 0;
        right: 0;
        top: 78px;
        background: rgba(6, 17, 29, .98);
        padding: 16px 20px 22px;
        display: none;
        flex-direction: column;
        align-items: stretch
      }

      .nav-list.open {
        display: flex
      }

      .nav-list a {
        display: block
      }

      .grid-3 {
        grid-template-columns: repeat(2, 1fr)
      }

      .process {
        grid-template-columns: repeat(3, 1fr)
      }

      .booking-shell {
        grid-template-columns: 1fr
      }

      .split {
        grid-template-columns: 1fr;
        gap: 35px
      }
    }

    @media(max-width:680px) {
      .container {
        width: min(calc(100% - 28px), var(--container))
      }

      .hero {
        min-height: 610px
      }

      .hero-content {
        padding: 75px 0
      }

      .grid-3,
      .grid-2,
      .form-grid,
      .check-list {
        grid-template-columns: 1fr
      }

      .process {
        grid-template-columns: 1fr 1fr
      }

      .section {
        padding: 70px 0
      }

      .page-hero {
        padding: 70px 0
      }

      .footer-grid {
        grid-template-columns: 1fr;
        gap: 35px
      }

      .brand-sub {
        display: none
      }

      .calendar {
        padding: 12px
      }

      .day {
        min-height: 34px;
        font-size: .8rem
      }
    }

    @media(max-width:430px) {
      .process {
        grid-template-columns: 1fr
      }

      .hero h1 {
        font-size: 2.6rem
      }

      .actions .btn {
        width: 100%
      }
    }

    /* GOOGLE CALENDAR BOOKING */
    .booking-calendar-card {
      min-width: 0;
    }

    .booking-calendar-head {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 20px;
      padding-bottom: 22px;
      border-bottom: 1px solid var(--line);
    }

    .booking-calendar-head h3 {
      margin-top: 6px;
      font-size: 1.65rem;
    }

    .booking-calendar-head p {
      margin-top: 7px;
      color: var(--muted);
    }

    .google-calendar-frame {
      margin-top: 24px;
      min-height: 760px;
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: 14px;
      background: #fff;
    }

    .google-calendar-frame iframe {
      width: 100%;
      min-height: 760px;
      height: 780px;
      border: 0;
      display: block;
      background: #fff;
    }

    .booking-note {
      margin-top: 28px;
      padding: 20px;
      border: 1px solid rgba(255, 106, 43, .28);
      border-radius: 12px;
      background: rgba(255, 106, 43, .06);
      display: grid;
      gap: 8px;
    }

    .booking-note strong {
      color: #fff;
    }

    .booking-note span {
      color: #aebdca;
      font-size: .9rem;
      line-height: 1.6;
    }

    .booking-note .btn {
      margin-top: 8px;
      width: max-content;
    }

    .booking-setup {
      padding: 48px 40px;
      text-align: center;
      border: 1px dashed #b8c5d0;
      border-radius: 16px;
      background: var(--paper);
    }

    .setup-icon {
      width: 52px;
      height: 52px;
      margin: 0 auto 20px;
      display: grid;
      place-items: center;
      border-radius: 50%;
      background: var(--gp-green);
      color: var(--navy-950);
      font: 800 .78rem "IBM Plex Mono", monospace;
    }

    .booking-setup h3 {
      margin-top: 7px;
      font-size: 1.8rem;
      color: var(--navy-900);
    }

    .booking-setup>p {
      max-width: 650px;
      margin: 14px auto 26px;
      color: var(--muted);
      line-height: 1.7;
    }

    .booking-setup code {
      padding: 2px 6px;
      border-radius: 4px;
      background: #e8edf1;
      color: var(--navy-900);
      font-family: "IBM Plex Mono", monospace;
      font-size: .82em;
    }

    .setup-steps {
      max-width: 620px;
      margin: 0 auto 28px;
      display: grid;
      gap: 10px;
      text-align: left;
    }

    .setup-steps div {
      display: flex;
      gap: 12px;
      align-items: center;
      padding: 12px 14px;
      border: 1px solid var(--line);
      border-radius: 9px;
      background: #fff;
      color: var(--navy-900);
    }

    .setup-steps b {
      flex: 0 0 28px;
      width: 28px;
      height: 28px;
      display: grid;
      place-items: center;
      border-radius: 50%;
      background: var(--navy-900);
      color: #fff;
      font: 700 .75rem "IBM Plex Mono", monospace;
    }

    .setup-steps span {
      font-size: .92rem;
    }

    @media (max-width:720px) {
      .booking-calendar-head {
        flex-direction: column;
      }

      .google-calendar-frame,
      .google-calendar-frame iframe {
        min-height: 700px;
        height: 700px;
      }

      .booking-setup {
        padding: 34px 20px;
      }
    }


    /* Study-page adaptation of the supplied GeoProcess design */
    .study-page {
      background: var(--paper)
    }

    .study-nav {
      position: sticky;
      top: 0;
      z-index: 1000;
      background: rgba(6, 17, 29, .94);
      backdrop-filter: blur(18px);
      border-bottom: 1px solid rgba(255, 255, 255, .08)
    }

    .study-nav .nav-inner {
      min-height: 78px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px
    }

    .study-brand {
      display: flex;
      align-items: center;
      gap: 12px;
      color: #fff
    }

    .study-brand-mark {
      width: 42px;
      height: 42px;
      flex-shrink: 0
    }

    .study-brand-name {
      font-weight: 800;
      font-size: 1.05rem;
      line-height: 1.1
    }

    .study-brand-sub {
      display: block;
      color: var(--gp-green);
      font-size: .63rem;
      letter-spacing: .12em;
      text-transform: uppercase;
      margin-top: 3px
    }

    .study-nav-toggle {
      display: none;
      border: 1px solid rgba(255, 255, 255, .15);
      color: #fff;
      background: transparent;
      border-radius: 10px;
      width: 44px;
      height: 44px
    }

    .study-nav-list {
      display: flex;
      align-items: center;
      gap: 1.1rem;
      list-style: none;
      margin: 0;
      padding: 0
    }

    .study-nav-list a {
      color: #c7d4df;
      font-size: .88rem;
      font-weight: 600;
      padding: 8px 0;
      position: relative
    }

    .study-nav-list a:hover {
      color: #fff
    }

    .study-nav-list a:not(.nav-cta)::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: 0;
      width: 0;
      height: 2px;
      background: var(--gp-green);
      transition: .25s
    }

    .study-nav-list a:hover::after {
      width: 100%
    }

    .study-hero {
      position: relative;
      overflow: hidden;
      background: var(--navy-950);
      color: #fff;
      min-height: 560px;
      display: grid;
      align-items: center
    }

    .study-hero-bg {
      position: absolute;
      inset: 0;
      background: radial-gradient(circle at 78% 28%, rgba(255, 106, 43, .24), transparent 30%), linear-gradient(135deg, #06111d, #10283f 55%, #183c5f)
    }

    .study-hero::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(90deg, rgba(6, 17, 29, .98), rgba(6, 17, 29, .76) 52%, rgba(6, 17, 29, .35))
    }

    .study-hero-content {
      position: relative;
      z-index: 2;
      padding: 90px 0
    }

    .study-eyebrow {
      color: var(--gp-green);
      font-size: .72rem;
      font-weight: 800;
      letter-spacing: .15em;
      text-transform: uppercase
    }

    .study-hero h1 {
      font-size: clamp(2.6rem, 6vw, 5rem);
      max-width: 900px;
      margin-top: 14px;
      color: #fff
    }

    .study-hero h1 span {
      color: var(--gp-green)
    }

    .study-hero .lead {
      max-width: 760px;
      color: #c9d7e4;
      font-size: 1.1rem;
      margin: 22px 0 0
    }

    .study-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 30px
    }

    .study-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      min-height: 48px;
      padding: 0 20px;
      border-radius: 9px;
      font-weight: 800;
      border: 1px solid transparent;
      cursor: pointer
    }

    .study-btn-primary {
      background: var(--gp-green);
      color: #07101a
    }

    .study-btn-ghost {
      color: #fff;
      border-color: rgba(255, 255, 255, .25);
      background: rgba(255, 255, 255, .05)
    }

    .study-btn-primary:hover {
      background: var(--gp-green-bright);
      transform: translateY(-2px)
    }

    .study-btn-ghost:hover {
      background: rgba(255, 255, 255, .1);
      transform: translateY(-2px)
    }

    .study-toolbar-wrap {
      background: #fff;
      border-bottom: 1px solid var(--line);
      position: sticky;
      top: 78px;
      z-index: 900
    }

    .study-toolbar {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      align-items: center;
      padding: 14px 0
    }

    .study-search {
      flex: 1;
      min-width: 230px;
      border: 1px solid var(--line);
      border-radius: 9px;
      padding: 12px 14px;
      background: #fbfcfd;
      color: #0c1722;
      outline: none
    }

    .study-search:focus {
      border-color: var(--gp-green);
      box-shadow: 0 0 0 3px rgba(255, 106, 43, .1)
    }

    .study-tool {
      border: 1px solid var(--line);
      background: var(--gp-green);
      border-radius: 9px;
      padding: 11px 14px;
      font-weight: 700;
      cursor: pointer
    }

    .study-progress {
      height: 5px;
      flex-basis: 100%;
      background: #e6edf2;
      border-radius: 99px;
      overflow: hidden
    }

    .study-progress span {
      display: block;
      height: 100%;
      background: linear-gradient(90deg, var(--gp-green), var(--green));
      transition: .3s
    }

    .study-layout {
      display: grid;
      grid-template-columns: 270px minmax(0, 1fr) 290px;
      max-width: 1220px;
      margin: auto
    }

    .study-sidebar {
      position: sticky;
      top: 133px;
      height: calc(100vh - 133px);
      overflow: auto;
      padding: 24px 14px 30px;
      background: var(--navy-900);
      color: #d8e7f1
    }

    .study-sidebar h3 {
      color: #fff;
      margin: 4px 10px 14px
    }

    .study-side-link {
      display: block;
      border: 0;
      background: transparent;
      color: #c7d7e3;
      text-align: left;
      width: 100%;
      padding: 8px 10px;
      border-radius: 8px;
      font-size: .86rem;
      cursor: pointer
    }

    .study-side-link:hover {
      background: #183c5f;
      color: #fff
    }

    .study-side-link .side-num {
      color: var(--gp-green);
      font-weight: 800;
      margin-right: 6px
    }

    .study-services {
      position: sticky;
      top: 133px;
      height: calc(100vh - 133px);
      overflow-y: auto;
      padding: 24px 16px 30px;
      background: #fff;
      border-left: 1px solid var(--line);
    }

    .study-services-card {
      border: 1px solid var(--line);
      border-radius: 14px;
      padding: 20px 18px;
      background: linear-gradient(145deg, #ffffff, #f4f7fa);
      box-shadow: 0 8px 25px rgba(4, 15, 28, .08);
    }

    .study-services-card h3 {
      margin: 0 0 6px;
      color: var(--navy-900);
      font-size: 1.15rem;
    }

    .study-services-card .services-intro {
      margin: 0 0 15px;
      color: var(--muted);
      font-size: .84rem;
    }

    .study-services-list {
      list-style: none;
      padding: 0;
      margin: 0;
      display: grid;
      gap: 9px;
    }

    .study-services-list li {
      position: relative;
      padding-left: 15px;
      color: #415364;
      font-size: .82rem;
      line-height: 1.45;
    }

    .study-services-list li::before {
      content: "▪";
      position: absolute;
      left: 0;
      color: var(--gp-green);
      font-weight: 900;
    }

    .study-contact-btn {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      min-height: 44px;
      margin-top: 18px;
      padding: 0 14px;
      border-radius: 9px;
      background: var(--gp-green);
      color: #07101a;
      font-weight: 800;
      transition: .25s var(--ease);
    }

    .study-contact-btn:hover {
      background: var(--gp-green-bright);
      transform: translateY(-2px);
    }

    @media(max-width:1050px) {
      .study-services {
        display: none;
      }
    }

    .study-main {
      min-width: 0
    }

    .study-section {
      padding: 78px 28px;
      background: #fff;
      scroll-margin-top: 150px
    }

    .study-section:nth-child(even) {
      background: var(--paper)
    }

    .study-section-inner {
      max-width: 950px;
      margin: auto
    }

    .study-section h2 {
      font-size: clamp(1.9rem, 4vw, 3rem);
      color: var(--navy-900);
      margin: 0 0 20px
    }

    .study-section h3 {
      font-size: 1.25rem;
      color: var(--navy-700);
      margin: 24px 0 8px
    }

    .study-section p,
    .study-section li {
      color: #415364
    }

    .study-definition {
      background: #eef5f9;
      border-left: 5px solid var(--gp-green);
      padding: 16px 18px;
      border-radius: 10px;
      margin: 16px 0
    }

    .study-key {
      background: #fff7ed;
      border: 1px solid #fed7aa;
      border-left: 5px solid var(--gp-green);
      padding: 14px 17px;
      border-radius: 10px;
      margin: 17px 0;
      color: #743b15
    }

    .study-grid-3 {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 18px
    }

    .study-card {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 21px;
      box-shadow: 0 5px 20px rgba(4, 15, 28, .05);
      transition: .25s var(--ease)
    }

    .study-card:hover {
      transform: translateY(-5px);
      box-shadow: var(--shadow);
      border-color: rgba(255, 106, 43, .45)
    }

    .study-card b {
      display: block;
      color: var(--navy-700);
      margin-bottom: 6px
    }

    .study-table {
      width: 100%;
      border-collapse: collapse;
      margin: 18px 0;
      font-size: .93rem
    }

    .study-table th,
    .study-table td {
      border: 1px solid var(--line);
      padding: 11px;
      text-align: left;
      vertical-align: top
    }

    .study-table th {
      background: #10283f;
      color: #fff
    }

    .study-table tr:nth-child(even) td {
      background: #f8fafc
    }

    .study-flow {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 7px;
      margin: 18px 0
    }

    .study-flow span {
      padding: 8px 12px;
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 8px;
      font-weight: 700
    }

    .study-flow .arrow {
      color: var(--gp-green);
      font-weight: 900
    }

    .study-footer {
      background: var(--navy-950);
      color: #fff;
      padding: 55px 0 0
    }

    .study-footer-grid {
      display: grid;
      grid-template-columns: 1.5fr 1fr 1fr;
      gap: 45px;
      padding-bottom: 45px
    }

    .study-footer-title {
      font-size: .72rem;
      font-weight: 900;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: #fff;
      margin-bottom: 14px
    }

    .study-footer p {
      color: #91a4b5
    }

    .study-footer-bottom {
      border-top: 1px solid rgba(255, 255, 255, .08);
      padding: 18px;
      text-align: center;
      color: #718596;
      font-size: .75rem
    }

    .study-back-top {
      position: fixed;
      right: 20px;
      bottom: 20px;
      width: 46px;
      height: 46px;
      border-radius: 50%;
      background: var(--gp-green);
      color: #07101a;
      border: 0;
      font-weight: 900;
      display: none;
      z-index: 950
    }

    .study-back-top.show {
      display: block
    }

    @media(max-width:1050px) {
      .study-nav-toggle {
        display: block
      }

      .study-nav-list {
        display: none;
        position: absolute;
        left: 0;
        right: 0;
        top: 78px;
        background: rgba(6, 17, 29, .98);
        padding: 16px 20px 22px;
        flex-direction: column;
        align-items: stretch
      }

      .study-nav-list.open {
        display: flex
      }

      .study-layout {
        grid-template-columns: 1fr
      }

      .study-sidebar {
        position: relative;
        top: 0;
        height: auto;
        max-height: 330px
      }

      .study-grid-3 {
        grid-template-columns: repeat(2, 1fr)
      }
    }

    @media(max-width:680px) {
      .study-section {
        padding: 60px 18px
      }

      .study-grid-3 {
        grid-template-columns: 1fr
      }

      .study-footer-grid {
        grid-template-columns: 1fr
      }
    }


    .gis-master-section {
      border-top: 1px solid var(--line)
    }

    .gis-master-meta {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 10px;
      margin: -20px auto 28px
    }

    .gis-master-meta span {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 999px;
      padding: 7px 12px;
      font-size: .74rem;
      font-weight: 800;
      color: var(--navy-700)
    }

    .gis-master-note {
      max-width: 900px;
      margin: 0 auto 34px;
      padding: 18px 20px;
      border-left: 4px solid var(--gp-green);
      background: #fff7f2;
      border-radius: 10px;
      color: #384b5c
    }

    .gis-master-content {
      max-width: 900px;
      margin: auto;
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 18px;
      padding: 34px 38px;
      box-shadow: 0 8px 30px rgba(4, 15, 28, .05)
    }

    .gis-master-content p {
      color: #334657;
      font-size: 1rem;
      line-height: 1.85;
      margin: 0 0 20px
    }

    .gis-master-subtitle {
      color: var(--navy-800);
      font-size: 1.55rem;
      margin: 42px 0 15px;
      padding-top: 8px;
      border-top: 1px solid #e7edf2
    }

    .gis-master-content .gis-master-subtitle:first-child {
      margin-top: 0;
      border-top: 0
    }

    @media(max-width:760px) {
      .gis-master-content {
        padding: 24px 18px
      }

      .gis-master-content p {
        font-size: .95rem
      }

      .gis-master-subtitle {
        font-size: 1.3rem
      }

      .gis-master-meta {
        gap: 7px
      }
    }


    <style>

    /* ===== ADVANCED SEARCH ENGINE UI ===== */
    .advanced-search-results {
      max-width: 1240px;
      margin: 14px auto 0;
    }

    .advanced-search-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      flex-wrap: wrap;
      padding: 12px 15px;
      border: 1px solid var(--line);
      border-radius: 12px;
      background: #f8fafc;
      color: var(--navy-800);
      font-size: .82rem;
    }

    .advanced-search-head span {
      color: #718293;
      font-size: .75rem
    }

    .advanced-search-list {
      display: grid;
      gap: 8px;
      margin-top: 10px;
      max-height: 620px;
      overflow: auto;
      padding-right: 3px;
    }

    .advanced-search-result {
      width: 100%;
      text-align: left;
      border: 1px solid var(--line);
      background: #fff;
      border-radius: 12px;
      padding: 14px 16px;
      cursor: pointer;
      transition: .18s var(--ease);
    }

    .advanced-search-result:hover {
      border-color: var(--gp-green);
      background: #fffaf7;
      transform: translateY(-1px);
      box-shadow: 0 6px 18px rgba(4, 15, 28, .07);
    }

    .advanced-search-result-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }

    .advanced-search-result-top b {
      color: var(--navy-900);
      font-size: .9rem
    }

    .advanced-search-result-top em {
      color: #b9400f;
      background: #fff1ea;
      border-radius: 999px;
      padding: 4px 8px;
      font-style: normal;
      font-size: .7rem;
      font-weight: 900;
      white-space: nowrap;
    }

    .advanced-search-result-summary {
      display: block;
      margin-top: 4px;
      color: #526779;
      font-size: .78rem;
      font-weight: 800;
    }

    .advanced-search-result-snippet {
      display: block;
      margin-top: 7px;
      color: #68798a;
      font-size: .78rem;
      line-height: 1.55;
    }

    .advanced-search-empty {
      display: flex;
      flex-direction: column;
      gap: 5px;
      padding: 18px;
      border: 1px dashed #c8d4de;
      border-radius: 12px;
      background: #fff;
      color: #526779;
    }

    .advanced-search-empty strong {
      color: var(--navy-900)
    }

    .advanced-search-more {
      padding: 10px;
      text-align: center;
      color: #718293;
      font-size: .75rem;
    }

    @media(max-width:760px) {
      .advanced-search-results {
        margin-top: 10px
      }

      .advanced-search-result-top {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px
      }

      .advanced-search-list {
        max-height: 520px
      }
    }

    /* ===== 16-SOURCE-BOOK LIBRARY ===== */
    .source-library {
      background: #eef3f7;
      padding: 92px 0 110px;
      border-top: 1px solid #d9e3ea
    }

    .source-library .container {
      max-width: 1240px
    }

    .source-library-head {
      max-width: 940px;
      margin: 0 auto 38px;
      text-align: center
    }

    .source-library-head .eyebrow {
      color: var(--gp-green);
      font-size: .72rem;
      font-weight: 900;
      letter-spacing: .15em;
      text-transform: uppercase
    }

    .source-library-head h2 {
      font-size: clamp(2rem, 4vw, 3.3rem);
      margin-top: 10px;
      color: var(--navy-950)
    }

    .source-library-head p {
      color: #536678;
      font-size: 1.04rem;
      margin: 14px 0 0
    }

    .source-library-stats {
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      gap: 9px;
      margin-top: 22px
    }

    .source-library-stats span {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 999px;
      padding: 7px 13px;
      font-size: .74rem;
      font-weight: 900;
      color: var(--navy-700)
    }

    .source-library-tools {
      display: flex;
      gap: 10px;
      align-items: center;
      flex-wrap: wrap;
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 16px;
      padding: 15px;
      box-shadow: 0 8px 26px rgba(4, 15, 28, .05);
      position: sticky;
      top: 78px;
      z-index: 850
    }

    .source-library-search {
      flex: 1;
      min-width: 240px;
      border: 1px solid #cfd9e2;
      border-radius: 10px;
      padding: 12px 14px;
      background: #fbfcfd;
      outline: none;
      color: #073460;
    }

    .source-library-search:focus {
      border-color: var(--gp-green);
      box-shadow: 0 0 0 3px rgba(255, 106, 43, .1)
    }

    .source-library-button {
      border: 1px solid var(--line);
      background: #fff;
      color: var(--navy-900);
      border-radius: 10px;
      padding: 11px 14px;
      font-weight: 800;
      cursor: pointer
    }

    .source-library-button:hover {
      border-color: var(--gp-green);
      color: #b9400f
    }

    .source-library-count {
      font-size: .8rem;
      font-weight: 800;
      color: #647687;
      margin-left: auto
    }

    .source-books {
      display: grid;
      gap: 28px;
      margin-top: 30px
    }

    .source-book {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 20px;
      overflow: hidden;
      box-shadow: 0 8px 30px rgba(4, 15, 28, .055);
      scroll-margin-top: 155px
    }

    .source-book.is-hidden {
      display: none
    }

    .source-book-head {
      padding: 28px 30px;
      background: linear-gradient(135deg, #fff, #f5f8fa);
      border-bottom: 1px solid var(--line)
    }

    .source-book-kicker {
      color: var(--gp-green);
      font-size: .7rem;
      font-weight: 900;
      letter-spacing: .13em;
      text-transform: uppercase
    }

    .source-book-head h3 {
      font-size: 1.65rem;
      color: var(--navy-950);
      margin-top: 7px
    }

    .source-book-head p {
      margin: 8px 0 0;
      color: #5b6d7e
    }

    .source-book-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 14px
    }

    .source-book-meta span {
      font-size: .7rem;
      font-weight: 800;
      color: #385168;
      background: #edf3f7;
      border-radius: 7px;
      padding: 5px 9px
    }

    .source-pages {
      padding: 0 18px 22px
    }

    .source-page {
      border-bottom: 1px solid #e4ebf0
    }

    .source-page:last-child {
      border-bottom: 0
    }

    .source-page summary {
      cursor: pointer;
      list-style: none;
      padding: 15px 12px;
      font-weight: 900;
      color: var(--navy-800);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 15px
    }

    .source-page summary::-webkit-details-marker {
      display: none
    }

    .source-page summary::after {
      content: '+';
      font-size: 1.25rem;
      color: var(--gp-green);
      font-weight: 900
    }

    .source-page[open] summary::after {
      content: '−'
    }

    .source-page summary:hover {
      color: #b9400f;
      background: #fff9f6
    }

    .source-page-body {
      padding: 0 12px 24px;
      overflow: auto
    }

    .source-page-body pre {
      margin: 0;
      white-space: pre-wrap;
      overflow-wrap: anywhere;
      font: 500 .88rem/1.65 ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
      color: #273a4b;
      background: #f8fafb;
      border: 1px solid #e1e8ed;
      border-radius: 12px;
      padding: 20px;
      tab-size: 4
    }

    .source-book-top {
      display: flex;
      justify-content: flex-end;
      padding: 12px 12px 0
    }

    .source-book-top button {
      border: 0;
      background: transparent;
      color: #7a8b99;
      font-weight: 800;
      cursor: pointer
    }

    .source-book-top button:hover {
      color: #b9400f
    }

    .source-side-heading {
      margin: 22px 10px 9px !important;
      color: #fff !important;
      font-size: .82rem !important;
      letter-spacing: .06em;
      text-transform: uppercase
    }

    .source-side-link {
      display: block;
      color: #c7d7e3;
      padding: 7px 10px;
      border-radius: 8px;
      font-size: .79rem;
      line-height: 1.35
    }

    .source-side-link:hover {
      background: #183c5f;
      color: #fff
    }

    .source-side-link .side-num {
      color: var(--gp-green);
      font-weight: 900;
      margin-right: 6px
    }

    @media(max-width:760px) {
      .source-library {
        padding: 70px 0 80px
      }

      .source-library-tools {
        top: 78px
      }

      .source-book-head {
        padding: 22px 20px
      }

      .source-pages {
        padding: 0 10px 16px
      }

      .source-page-body {
        padding: 0 7px 18px
      }

      .source-page-body pre {
        font-size: .78rem;
        padding: 14px
      }

      .source-library-count {
        width: 100%;
        margin-left: 0
      }
    }


    /* ===== SOURCE BOOK TYPOGRAPHY NORMALIZATION ===== */
    .source-book,
    .source-book * {
      font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    }

    .source-book-head h3 {
      font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
      font-weight: 800;
      line-height: 1.2;
      letter-spacing: -0.02em;
    }

    .source-book-kicker {
      font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    }

    .source-page summary {
      font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
      font-weight: 750;
    }

    .source-page-body pre {
      font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
      font-size: .92rem !important;
      line-height: 1.7 !important;
    }

    .source-page-body pre strong,
    .source-page-body pre b {
      font-weight: 800;
    }

    /* ===== PROFESSIONAL SOURCE PAGE NAVIGATION ===== */
    .source-page-navigation {
      padding: 18px 18px 4px;
      border-bottom: 1px solid #e4ebf0;
      background: #fbfcfd
    }

    .source-page-navigation-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      flex-wrap: wrap;
      margin-bottom: 12px
    }

    .source-page-navigation-title {
      font-size: .78rem;
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: var(--navy-800)
    }

    .source-page-navigation-count {
      font-size: .76rem;
      font-weight: 800;
      color: #6a7b8b
    }

    .source-page-nav-row {
      display: flex;
      flex-wrap: wrap;
      gap: 8px
    }

    .source-page-nav-button {
      appearance: none;
      border: 1px solid #cfd9e2;
      background: #fff;
      color: var(--navy-800);
      border-radius: 9px;
      padding: 8px 11px;
      font-size: .78rem;
      font-weight: 850;
      cursor: pointer;
      transition: .2s var(--ease)
    }

    .source-page-nav-button:hover {
      border-color: var(--gp-green);
      color: #b9400f;
      background: #fff9f6;
      transform: translateY(-1px)
    }

    .source-page-nav-button.active {
      background: var(--navy-900);
      border-color: var(--navy-900);
      color: #fff
    }

    .source-page-nav-button.range-root {
      background: #fff7ed;
      border-color: #fed7aa;
      color: #9a4312
    }

    .source-page-nav-button.range-root.active {
      background: var(--gp-green);
      border-color: var(--gp-green);
      color: #07101a
    }

    .source-page-nav-sub {
      display: none;
      margin-top: 10px;
      padding: 10px;
      border: 1px solid #e1e8ed;
      border-radius: 10px;
      background: #f8fafb
    }

    .source-page-nav-sub.open {
      display: flex;
      flex-wrap: wrap;
      gap: 7px
    }

    .source-page-navigation.is-compact .source-page-nav-row {
      display: none
    }

    .source-page-navigation.is-compact .source-page-nav-row.root-row {
      display: flex
    }

    .source-pages.page-nav-managed .source-page {
      display: none
    }

    .source-pages.page-nav-managed .source-page.page-active {
      display: block
    }

    @media(max-width:760px) {
      .source-page-navigation {
        padding: 14px 10px 4px
      }

      .source-page-nav-button {
        padding: 8px 9px;
        font-size: .75rem
      }
    }
  


    /* ===== Source Book Typography & Semantic Hierarchy ===== */
    .source-page-body {
      font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
      color: #111 !important;
      background: #fff;
      line-height: 1.72;
      font-size: 16px;
    }

    .source-page-body .source-text {
      color: #111 !important;
      white-space: normal;
    }

    .source-page-body h2.source-topic-heading {
      margin: 1.35em 0 .55em;
      color: #111 !important;
      font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
      font-size: 1.28rem;
      line-height: 1.3;
      font-weight: 800;
      letter-spacing: -.015em;
    }

    .source-page-body h3.source-subheading {
      margin: 1.05em 0 .4em;
      color: var(--green, #43b45a) !important;
      font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
      font-size: 1.05rem;
      line-height: 1.4;
      font-weight: 800;
    }

    .source-page-body p.source-paragraph {
      margin: .45em 0;
      color: #111 !important;
      font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
      font-size: 1rem;
      font-weight: 400;
    }

    .source-page-body ul.source-list {
      margin: .4em 0 .75em 1.4em;
      padding: 0;
      color: #111 !important;
    }

    .source-page-body li.source-list-item {
      margin: .18em 0;
      color: #111 !important;
    }

    .source-page-body .source-footer {
      margin-top: 1.5em;
      padding-top: .5em;
      border-top: 1px solid #e7edf2;
      color: #7a8792 !important;
      font-size: .78rem;
      text-align: right;
    }

    .source-page-body .source-label {
      color: var(--green, #43b45a) !important;
      font-weight: 800;
    }

    .source-page-body strong {
      font-weight: 700;
      color: #111
    }

    .source-page-body a {
      color: inherit
    }
  


    :root {
      --editor-font: Inter, "Segoe UI", Roboto, Arial, sans-serif;
      --heading: #0b0f14;
      --subheading: #168447;
      --body: #20252b;
      --muted: #66717c
    }

    body,
    .source-library,
    .source-book,
    .source-text,
    .source-page-body,
    .study-main,
    .section {
      font-family: var(--editor-font) !important
    }

    .source-book h2,
    .source-book .source-2-heading {
      color: var(--heading) !important;
      font-weight: 800 !important;
      font-size: 1.34rem !important;
      line-height: 1.28 !important;
      letter-spacing: -.015em !important;
      margin: 1.65rem 0 .65rem !important
    }

    .source-book h3,
    .source-book .source-3-heading {
      color: var(--subheading) !important;
      font-weight: 800 !important;
      font-size: 1.06rem !important;
      line-height: 1.35 !important;
      margin: 1.25rem 0 .45rem !important
    }

    .source-book .source-paragraph,
    .source-book .source-text p:not(.source-paragraph) {
      color: var(--body) !important;
      font-size: .98rem !important;
      line-height: 1.78 !important;
      margin: .55rem 0 !important
    }

    .source-book .source-list {
      margin: .55rem 0 1rem 1.2rem !important
    }

    .source-book .source-list-item {
      color: var(--body) !important;
      line-height: 1.65 !important;
      margin: .25rem 0 !important
    }

    .source-book .source-footer {
      color: var(--muted) !important;
      font-size: .72rem !important;
      font-style: italic !important;
      margin-top: 1.1rem !important;
      border-top: 1px solid #e5e8eb;
      padding-top: .45rem
    }

    .editorial-note {
      background: linear-gradient(135deg, #f7faf8, #fff);
      border-left: 4px solid var(--subheading);
      padding: 14px 17px;
      margin: 16px 0 22px;
      border-radius: 8px;
      color: #27302a;
      line-height: 1.7
    }

    .editorial-note strong {
      color: #0f6e3b
    }
  


    .gis-master-content {
      font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif !important
    }

    .gis-master-content h2 {
      color: #0b0f14 !important;
      font-weight: 800 !important;
      line-height: 1.25 !important;
      letter-spacing: -.02em !important;
      font-size: 1.42rem !important;
      margin: 1.8rem 0 .65rem !important
    }

    .gis-master-content h3,
    .gis-master-content .gis-master-subtitle {
      color: #168447 !important;
      font-weight: 800 !important;
      line-height: 1.35 !important;
      font-size: 1.08rem !important;
      margin: 1.35rem 0 .55rem !important
    }

    .gis-master-content p {
      color: #20252b !important;
      font-size: .98rem !important;
      line-height: 1.78 !important;
      margin: .55rem 0 1rem !important
    }

    .gis-master-content li {
      color: #20252b !important;
      line-height: 1.65 !important
    }
  


    .advanced-search-result-snippet mark {
      background: #fff0b8;
      color: inherit;
      padding: 0 2px;
      border-radius: 3px
    }

    .advanced-search-result-summary {
      display: block;
      color: #2f6f45;
      font-weight: 700;
      margin-top: 4px
    }

    .advanced-search-result em {
      font-style: normal;
      color: #7b8794;
      font-size: .75rem;
      white-space: nowrap
    }

    .advanced-search-empty {
      padding: 18px;
      border: 1px dashed var(--line);
      border-radius: 12px;
      background: #fff
    }

    .advanced-search-empty strong {
      display: block;
      margin-bottom: 5px
    }

    .advanced-search-empty span {
      color: #667788
    }
  


/* ===== SOURCE SEARCH: PHONE + TABLET ===== */
.source-library-tools{
  width:100%;
  box-sizing:border-box;
}
.source-library-search{
  box-sizing:border-box;
  width:100%;
  min-width:0 !important;
  max-width:100%;
  font-size:16px !important; /* prevents iOS Safari zoom */
  -webkit-appearance:none;
  appearance:none;
}
.advanced-search-results{width:min(1240px,100%);box-sizing:border-box;padding:0 0}
.advanced-search-list{width:100%;box-sizing:border-box;-webkit-overflow-scrolling:touch}
.advanced-search-result{box-sizing:border-box;min-width:0;overflow:hidden;word-break:break-word}
.advanced-search-result-top b,
.advanced-search-result-summary,
.advanced-search-result-snippet{overflow-wrap:anywhere;word-break:break-word}
@media (max-width: 1024px){
  .source-library-tools{
    position:sticky;
    top:64px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    padding:10px;
    border-radius:12px;
  }
  .source-library-search{grid-column:1 / -1;min-height:46px;padding:12px 13px}
  .source-library-button{min-height:42px;padding:10px 11px;white-space:nowrap}
  .source-library-count{grid-column:1 / -1;width:auto;margin-left:0}
  .advanced-search-results{margin-left:0;margin-right:0}
  .advanced-search-head{font-size:.8rem;padding:11px 12px}
  .advanced-search-list{max-height:60vh;min-height:0}
}
@media (max-width: 680px){
  .source-library-tools{top:58px;grid-template-columns:1fr 1fr}
  .source-library-button{width:100%;font-size:.78rem}
  .source-library-count{font-size:.75rem}
  .advanced-search-result{padding:12px 13px;border-radius:10px}
  .advanced-search-result-top{flex-direction:column;align-items:flex-start;gap:5px}
  .advanced-search-result-top b{font-size:.86rem}
  .advanced-search-result-summary{font-size:.75rem}
  .advanced-search-result-snippet{font-size:.76rem;line-height:1.55}
  .advanced-search-list{max-height:55vh}
}
@media (max-width: 420px){
  .source-library-tools{padding:8px;gap:7px}
  .source-library-button{font-size:.72rem;padding:9px 7px}
  .advanced-search-head{display:block}
  .advanced-search-head span{display:block;margin-top:4px}
}


.study-divider{border-color:#31536b;margin:17px 8px}
.study-error-panel{padding:48px 20px;text-align:center;color:#0c1722}
.progress span{display:block}
.study-progress-fill{width:0%}
