/**
 * WEBSITE: https://themefisher.com
 * TWITTER: https://twitter.com/themefisher
 * FACEBOOK: https://www.facebook.com/themefisher
 * GITHUB: https://github.com/themefisher/
 */

/*!------------------------------------------------------------------
[MAIN STYLESHEET]

PROJECT:	Project Name
VERSION:	Versoin Number
-------------------------------------------------------------------*/
/*------------------------------------------------------------------
[TABLE OF CONTENTS]
-------------------------------------------------------------------*/
/*  typography */
@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,500;8..60,600&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@500&display=swap");
body {
  font-family: 'Source Serif 4', serif;
  -webkit-font-smoothing: antialiased;
  font-size: 16px;
  line-height: 1.6;
  color: #333;
}

p, .paragraph {
  font-weight: 400;
  color: #333;
  font-size: 16px;
  line-height: 26px;
  font-family: 'Source Serif 4', serif;
}

h1, h2, h3, h4, h5, h6 {
  color: #222;
  font-family: 'Source Serif 4', serif;
  font-weight: 700;
  line-height: 1.2;
}

h1, .h1 {
  font-size: 50px;
  font-weight: 800;
}
@media (max-width: 575px) {
  h1, .h1 {
    font-size: 36px;
    font-weight: 600;
  }
}

h2, .h2 {
  font-size: 42px;
  font-weight: 800;
}
@media (max-width: 575px) {
  h2, .h2 {
    font-size: 32px;
    font-weight: 600;
  }
}

h3, .h3 {
  font-size: 32px;
}
@media (max-width: 575px) {
  h3, .h3 {
    font-size: 28px;
  }
}

h4, .h4 {
  font-size: 26px;
}

h5, .h5 {
  font-size: 22px;
}

h6, .h6 {
  font-size: 18px;
}

/* Button style */
.btn {
  font-size: 16px;
  font-family: 'Source Serif 4', serif;
  text-transform: capitalize;
  padding: 13px 30px;
  border-radius: 6px;
  border: 1px solid;
  position: relative;
  z-index: 1;
  transition: 0.2s ease;
  font-weight: 600;
}
.btn:hover, .btn:active, .btn:focus {
  outline: 0;
  box-shadow: none !important;
}
.btn-sm {
  font-size: 14px;
  padding: 10px 25px;
}

button {
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    border: none;
    border-radius: 8px;
}
.btn-primary {
    background: #0F6656;
    color: #fff;
    padding: 15px 22px;
    font-size: 15px;
    font-weight: 500;
    transition: background .15s ease;
}
.btn-primary:active, .btn-primary:hover, .btn-primary:focus, .btn-primary.focus, .btn-primary.active {
  background: #0F6656 !important;
  border-color: #0F6656 !important;
}

.btn-outline-primary {
  background: transparent;
  color: #0F6656;
  border-color: #0F6656;
}
.btn-outline-primary:active, .btn-outline-primary:hover, .btn-outline-primary:focus, .btn-outline-primary.focus, .btn-outline-primary.active {
  background: #cc0036 !important;
  border-color: #cc0036 !important;
  color: #fff;
}

body {
  background-color: #FAF7F1;
  overflow-x: hidden;
}

::-moz-selection {
  background: #0F6656;
  color: #fff;
}

::selection {
  background: #0F6656;
  color: #fff;
}

/* preloader */
.preloader {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #fff;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}

img {
  vertical-align: middle;
  border: 0;
  max-width: 100%;
  height: auto;
}

ul {
  list-style: none;
}

a {
  color: inherit;
}

a,
a:hover,
a:focus {
  text-decoration: none;
}

a,
button,
select {
  cursor: pointer;
  transition: 0.2s ease;
}
a:focus,
button:focus,
select:focus {
  outline: 0;
}

a:hover {
  color: #0F6656;
}

.slick-slide {
  outline: 0;
}

.section {
  padding-top: 40px;
  padding-bottom: 40px;
}
.section-sm {
  padding-top: 50px;
  padding-bottom: 50px;
}
.section-title {
  margin-bottom: 40px;
}

.bg-cover {
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.border-default {
  border-color: #E2E2E2 !important;
}

/* overlay */
.overlay {
  position: relative;
}
.overlay::before {
  position: absolute;
  content: "";
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  background: #000;
  opacity: 0.5;
}

.outline-0 {
  outline: 0 !important;
}

.rounded, .card-icon, .card {
  border-radius: 12px !important;
}

.shadow, .card, .search-wrapper .form-control, .navigation.nav-bg {
  box-shadow: 0px 15px 60px rgba(62, 62, 62, 0.102) !important;
}

.d-unset {
  display: unset !important;
}

.bg-primary {
  background: #0F6656 !important;
}

.text-primary {
  color: #0F6656 !important;
}

.text-light {
  color: #999 !important;
}

.mb-10 {
  margin-bottom: 10px !important;
}

.mb-20 {
  margin-bottom: 20px !important;
}

.mb-30 {
  margin-bottom: 30px !important;
}

.mb-40 {
  margin-bottom: 40px !important;
}

.mb-50 {
  margin-bottom: 50px !important;
}

.mb-60 {
  margin-bottom: 60px !important;
}

.mb-70 {
  margin-bottom: 70px !important;
}

.mb-80 {
  margin-bottom: 80px !important;
}

.mb-90 {
  margin-bottom: 90px !important;
}

.mb-100 {
  margin-bottom: 100px !important;
}

.zindex-1 {
  z-index: 1;
}

.overflow-hidden {
  overflow: hidden;
}

.font-weight-medium {
  font-weight: 500;
}

.navigation {
  transition: 0.2s ease;
}
.navigation.nav-bg {
  background: #182634;
}
@media (max-width: 991px) {
  .navigation .form-inline {
    width: 100%;
  }
  .navigation .form-inline input {
    width: 100%;
  }
}

.nav-item {
  margin: 0;
}
.nav-item .nav-link {
  text-transform: capitalize;
}

.navbar-light .navbar-nav .nav-link {
  color: #c7cfd6;
}
.navbar-light .navbar-nav .nav-link:hover {
  color: #c7cfd6;
}

.navbar-expand-lg .navbar-nav .nav-link {
  padding: 10px 20px;
  font-size: 15px;
}
@media (max-width: 991px) {
  .navbar-expand-lg .navbar-nav .nav-link {
    padding: 10px;
    display: block;
  }
}

.search-wrapper {
  position: relative;
}
.search-wrapper .form-control {
  height: 46px;
  border: 0;
  outline: 0;
}
.search-wrapper .form-control::-moz-placeholder {
  color: #999;
  font-size: 15px;
}
.search-wrapper .form-control::placeholder {
  color: #999;
  font-size: 15px;
}
.search-wrapper .form-control-lg {
  height: 70px;
}
.search-wrapper .form-control.active.focus-visible {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.search-wrapper button {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
}
.search-wrapper button i {
  color: #0F6656;
}

.card {
  transition: 0.2s ease;
  border: 0;
}
.card-lg .card-body {
  padding: 35px;
}
.card-icon {
  background: #0F6656;
  color: #fff;
  height: 55px;
  width: 60px;
  line-height: 55px;
  text-align: center;
  font-size: 27px;
  display: block;
  margin-top: 40px;
}
.card-text {
  margin-bottom: 0;
}
.card-title {
  font-weight: 700;
}
.card-body {
  padding: 25px;
}
.card:hover {
  box-shadow: 0px 15px 60px rgba(62, 62, 62, 0.2) !important;
}

.social-icons {
  margin-bottom: 0;
}
.social-icons a {
  display: block;
  height: 42px;
  width: 42px;
  line-height: 42px;
  text-align: center;
  color: #fff;
  background: #0F6656;
  border-radius: 6px;
}

.footer-menu {
  margin-bottom: 0;
}
.footer-menu a {
  display: block;
  padding: 10px;
  color: #333;
  transition: 0.2s ease;
}
.footer-menu a:hover {
  color: #0F6656;
}

/* sidenav */
.sidenav {
  border-right: 1px solid #E2E2E2;
  padding-right: 20px;
}
.sidenav ul {
  padding-left: 10px;
}
.sidenav > li a {
  padding: 20px 0;
  color: #222;
  display: block;
  font-size: 18px;
  font-weight: 500;
}
.sidenav > li:not(:last-child) {
  border-bottom: 1px solid #E2E2E2;
}
.sidenav .sidelist ul {
  display: none;
}
.sidenav .parent > a {
  color: #0F6656 !important;
  position: relative;
  margin-left: 10px;
}
.sidenav .parent > a::before {
  position: absolute;
  content: "";
  left: -10px;
  top: 25%;
  height: 50%;
  width: 1px;
  background: #0F6656;
}
.sidenav .parent ul {
  display: block;
  margin-bottom: 10px;
}
.sidenav .parent ul a {
  padding: 5px 0;
  font-size: 14px;
  font-weight: 400;
  color: #222;
}
.sidenav .parent ul li.active > a {
  margin-left: 10px;
}
.sidenav .parent ul li.active > a::before {
  height: 5px;
  width: 5px;
  border-radius: 50%;
  display: block;
  top: 13px;
}

/* /sidenav */
.page-list {
  list-style-type: none;
}
.page-list a {
  display: none;
}
.page-list ul {
  padding: 0;
}
.page-list ul a {
  display: inline-block;
  padding: 7px 0;
  font-size: 20px;
  color: #222;
}

.pagination {
  margin-top: 50px;
  justify-content: space-between;
}
.pagination a {
  color: #0F6656;
  font-size: 18px;
  font-weight: 500;
}
.pagination i {
  line-height: 1.6;
}

.code-tabs {
  border: 1px solid #E2E2E2;
  overflow: hidden;
  margin-bottom: 20px;
}
.code-tabs .nav-tabs {
  margin-bottom: 0;
}
.code-tabs .nav-tabs .nav-item {
  padding-left: 0;
  border-right: 1px solid #E2E2E2;
}
.code-tabs .nav-tabs .nav-item .nav-link {
  text-decoration: none;
  font-weight: 500;
  border: 0;
}
.code-tabs .nav-tabs .nav-item::before {
  display: none;
}
.code-tabs .nav-tabs .nav-item.active {
  background: #0F6656;
}
.code-tabs .nav-tabs .nav-item.active .nav-link {
  color: #fff;
}
.code-tabs .tab-content {
  padding: 20px 15px;
}

pre {
  position: relative;
}
pre .copy-to-clipboard {
  background: #0F6656;
  color: #fff;
  cursor: pointer;
  padding: 4px 5px;
  line-height: 1;
  font-size: 12px;
  font-weight: 500;
  border-radius: 4px;
  position: absolute;
  right: 10px;
  top: 10px;
}

:not(pre) > code + span.copy-to-clipboard {
  display: none;
}

.autocomplete-suggestions {
  border: 0;
  border-radius: 0 0 6px 6px;
  box-shadow: 0px 50px 60px rgba(62, 62, 62, 0.102) !important;
  background: #fff;
}
.autocomplete-suggestions .autocomplete-suggestion {
  transition: 0.2s ease;
  padding: 10px;
  font-weight: 500;
}
.autocomplete-suggestions .autocomplete-suggestion.selected {
  background: #0F6656;
}

.search-item a {
  color: #222;
  display: block;
}
.search-item a:hover {
  color: #0F6656;
}
.search-item:not(:last-child) {
  border-bottom: 1px solid #E2E2E2;
}

.form-group label {
  font-size: 15px;
  font-weight: 500;
}
.form-group .form-control {
  height: 40px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #E2E2E2;
  border-radius: 0;
  padding: 10px 0;
}
.form-group .form-control::-moz-placeholder {
  font-size: 13px;
  color: #999;
}
.form-group .form-control::placeholder {
  font-size: 13px;
  color: #999;
}
.form-group .form-control:focus {
  outline: 0;
  border-color: #0F6656;
  box-shadow: none;
}
.form-group .custom-select {
  font-size: 13px;
  color: #999;
}
.form-group textarea.form-control {
  height: 100px;
}

.badge.added {
  background: #3778FF;
  color: #fff;
}
.badge.fixed {
  background: #F54773;
  color: #fff;
}
.badge.changed {
  background: #3AAA55;
  color: #fff;
}
.badge.depricated {
  background: #343434;
  color: #fff;
}
.badge.removed {
  background: #3bbfe4;
  color: #fff;
}
.badge.security {
  background: #F53535;
  color: #fff;
}
.badge.unreleased {
  background: #A037FF;
  color: #fff;
}

.collapse-wrapper {
  padding: 5px 15px;
}
.collapse-wrapper .collapse-head {
  text-decoration: none;
  color: #333;
  font-size: 18px;
  font-weight: 500;
  align-items: center;
}

:not(.highlight) pre {
  background: #FBFBFB;
}

.content h1,
.content h2,
.content h3,
.content h4,
.content h5,
.content h6 {
  font-weight: 500;
}
.content strong {
  font-weight: 600;
}
.content a {
  text-decoration: underline;
  color: #0F6656;
}
.content ol,
.content ul {
  padding-left: 20px;
}
.content ol li,
.content ul li {
  margin-bottom: 10px;
}
.content ul {
  padding-left: 0;
  margin-bottom: 20px;
}
.content ul li {
  padding-left: 20px;
  position: relative;
}
.content ul li::before {
  position: absolute;
  content: "";
  height: 8px;
  width: 8px;
  border-radius: 50%;
  background: #0F6656;
  left: 3px;
  top: 8px;
}
.content table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 1rem;
  border: 1px solid #EEEEEE;
}
.content table td,
.content table th {
  padding: 0.75rem;
  vertical-align: top;
  margin-bottom: 0;
}
.content tr:not(:last-child) {
  border-bottom: 1px solid #EEEEEE;
}
.content th {
  font-weight: 500;
}
.content thead {
  background: #FBFBFB;
  margin-bottom: 0;
}
.content thead tr {
  border-bottom: 1px solid #EEEEEE;
}
.content tbody {
  background: #fff;
  margin-bottom: 0;
}
.content .notices {
  margin: 2rem 0;
  position: relative;
  overflow: hidden;
}
.content .notices p {
  padding: 10px;
  margin-bottom: 0;
}
.content .notices p::before {
  position: absolute;
  top: 2px;
  color: #fff;
  font-family: "themify";
  font-weight: 900;
  content: "\e717";
  left: 10px;
}
.content .notices.note p {
  border-top: 30px solid #6ab0de;
  background: #e7f2fa;
}
.content .notices.note p::after {
  content: "Note";
  position: absolute;
  top: 2px;
  color: #fff;
  left: 2rem;
}
.content .notices.tip p {
  border-top: 30px solid #78C578;
  background: #E6F9E6;
}
.content .notices.tip p::after {
  content: "Tip";
  position: absolute;
  top: 2px;
  color: #fff;
  left: 2rem;
}
.content .notices.info p {
  border-top: 30px solid #F0B37E;
  background: #FFF2DB;
}
.content .notices.info p::after {
  content: "Info";
  position: absolute;
  top: 2px;
  color: #fff;
  left: 2rem;
}
.content .notices.warning p {
  border-top: 30px solid #E06F6C;
  background: #FAE2E2;
}
.content .notices.warning p::after {
  content: "Warning";
  position: absolute;
  top: 2px;
  color: #fff;
  left: 2rem;
}
.content blockquote {
  font-size: 20px !important;
  color: #222;
  padding: 20px 40px;
  border-left: 2px solid #0F6656;
  margin: 40px 0;
  font-weight: bold;
  background: #FBFBFB;
}
.content blockquote p {
  margin-bottom: 0 !important;
}
.content pre {
  display: block;
  padding: 9.5px;
  margin: 10px 0px 10px;
}
.content code {
  margin-bottom: 0 !important;
  font-size: 100%;
}
/*# sourceMappingURL=style.css.map */
header {
    background: #182634;
}
.hero-bg {
    position: absolute;
    inset: 0;
    z-index: -999999;
    opacity: 0.55;
    background: repeating-linear-gradient(0deg, #EFE9DB 0 1px, transparent 1px 28px), repeating-linear-gradient(90deg, #EFE9DB 0 1px, transparent 1px 28px);
    mask-image: linear-gradient(to bottom, black, transparent 85%);
}
.eyebrow {
    font-size: 12.5px;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: #0A4A3F;
    font-weight: 600;
    margin-bottom: 10px;
}
.hero-section h1 {
    font-family: 'Source Serif 4', serif;
    font-size: 32px;
    line-height: 1.15;
    margin-bottom: 10px;
    font-weight: 500;
    max-width: 520px;
    color: #182634;
    letter-spacing: -0.01em;
}
.hero-sub {
    font-size: 15px;
    color: #44566A;
    line-height: 1.55;
    max-width: 460px;
    margin: 0 0 22px;
}
.search-card {
    background: #FFFFFF;
    border: 1px solid #E7E1D3;
    border-radius: 14px;
    box-shadow: 0 1px 2px #1826340f, 0 8px 24px #1826340f;
    padding: 20px;
}
.search-card label {
    font-size: 12.5px;
    font-weight: 500;
    color: #44566A;
    display: block;
    margin-bottom: 8px;
}
.postcode-row {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
@media (min-width: 520px) {
    .postcode-row {
        flex-direction: row;
    }
}
@media (min-width: 520px) {
    input[type=text] {
        flex: 1;
    }
}
/*input[type=text] {
    padding: 15px 16px;
    border: 1px solid #E7E1D3;
    border-radius: 8px;
    font-size: 16px;
    font-family: 'IBM Plex Mono', monospace;
    text-transform: uppercase;
    background: #FAF7F1;
    color: #182634;
    width: 100%;
}*/
.hint {
    font-size: 12px;
    color: #767267;
    margin-top: 10px;
}
.trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    margin-top: 24px;
}
.trust-item {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    color: #44566A;
}
.trust-item .dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #0F6656;
    flex: none;
}
.pro-strip {
    background: #E6F1EE;
    border-top: 1px solid #E7E1D3;
    border-bottom: 1px solid #E7E1D3;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}
.pro-strip-inner {
    max-width: 760px;
    margin: 0 auto;
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
@media (min-width: 640px) {
    .pro-strip-inner {
        flex-direction: row;
        align-items: center;
        gap: 20px;
        padding: 16px 20px;
    }
}
.pro-strip-label {
    font-size: 12.5px;
    font-weight: 600;
    color: #0A4A3F;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.pro-strip .trust-row {
    margin-top: 0;
}
.how {
    padding: 36px 0 8px;
    border-top: 1px solid #E7E1D3;
}
.how h2 {
    font-size: 20px;
}
.section-lede {
    font-size: 13.5px;
    color: #767267;
    margin: 4px 0 22px;
}
.steps-flow {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
}
@media (min-width: 760px) {
    .steps-flow {
        flex-direction: row;
        align-items: stretch;
    }
}
.how {
    padding: 36px 0 8px;
    border-top: 1px solid #E7E1D3;
}
.how-step {
    background: #FFFFFF;
    border: 1px solid #E7E1D3;
    border-radius: 10px;
    padding: 16px;
    flex: 1;
}
.how-step .num {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 12px;
    color: #0A4A3F;
    background: #E6F1EE;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
}
.how-step .t {
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 4px;
}
.how-step .d {
    font-size: 12.5px;
    color: #767267;
}
.step-connector {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #E7E1D3;
    font-size: 18px;
    transform: rotate(90deg);
    padding: 6px 0;
}
@media (min-width: 760px) {
    .step-connector{
        transform: none;
        padding: 0 8px;
    }
}
.section-block {
    padding: 36px 0;
    border-top: 1px solid #E7E1D3;
}
.section-block h2 {
    font-size: 20px;
}
.section-lede {
    font-size: 13.5px;
    color: #767267;
    margin: 4px 0 22px;
}
.map-explainer {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
@media (min-width: 640px) {
    .map-explainer {
        flex-direction: row;
        align-items: center;
    }
}
.map-explainer .plot-map {
    flex: none;
}
.plot-map {
    background: repeating-linear-gradient(0deg, #EFECE3 0 1px, transparent 1px 24px), repeating-linear-gradient(90deg, #EFECE3 0 1px, transparent 1px 24px), var(--paper);
    border: 1px solid #E7E1D3;
    border-radius: 8px;
    padding: 16px;
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.map-explainer-text p {
    font-size: 14px;
    color: #44566A;
    margin: 0 0 8px;
}
.map-explainer-text p {
    font-size: 14px;
    color: #44566A;
    margin: 0 0 8px;
}
.doc-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}
@media (min-width: 640px) {
    .doc-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
.doc-card {
    background: #FFFFFF;
    border: 1px solid #E7E1D3;
    border-radius: 10px;
    padding: 18px;
}
.badge {
    font-size: 10px;
    padding: 3px 8px;
    border-radius: 100px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.badge.rec {
    background: #FBF1DF;
    color: #B9832E;
}
.doc-card h3 {
    font-size: 15.5px;
    margin: 10px 0 6px;
}
.doc-card p {
    font-size: 13px;
    color: #767267;
    margin: 0;
}
.badge.opt {
    background: #E7E1D3;
    color: #767267;
}
.faq-item {
    border-bottom: 1px solid #E7E1D3;
}
.faq-item:first-child {
    border-top: 1px solid #E7E1D3;
}
.faq-q {
    width: 100%;
    background: none;
    border: none;
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 16px 2px;
    font-size: 14.5px;
    font-weight: 500;
    color: var(--ink);
    cursor: pointer;
}
.faq-icon {
    font-family: 'IBM Plex Mono', monospace;
    color: #0A4A3F;
    font-size: 16px;
    flex: none;
}
.faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height .25s ease;
}
.faq-a p {
    font-size: 13.5px;
    color: #44566A;
    margin: 0 2px 16px;
}
.faq-a.open {
    max-height: 220px;
}
.independent-box {
    background: #E6F1EE;
    border: 1px solid #0F6656;
    border-radius: 10px;
    padding: 22px;
}
.independent-box h2 {
    font-size: 18px;
    color: #0A4A3F;
    margin-bottom: 10px;
}
.independent-box p {
    font-size: 13.5px;
    color: #44566A;
    margin: 0 0 10px;
}
footer {
    border-top: 1px solid #E7E1D3;
    padding: 28px 0;
}
footer .foot-links {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    font-size: 12.5px;
    color: #44566A;
    margin-bottom: 14px;
}
footer .foot-links a {
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}
footer .attribution {
    font-size: 11px;
    color: #767267;
}
.stepper {
    display: flex;
    justify-content: space-between;
    margin-bottom: 28px;
    position: relative;
}
.stepper::before {
    content: "";
    position: absolute;
    top: 15px;
    left: 6%;
    right: 6%;
    height: 1px;
    background: #E7E1D3;
    z-index: 0;
}
.step {
    position: relative;
    z-index: 1;
    text-align: center;
    flex: 1;
}
.step.done .dot {
    background: #E6F1EE;
    border-color: #0F6656;
    color: #0A4A3F;
}
.step .dot {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #FFFFFF;
    border: 1px solid #E7E1D3;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 8px;
    font-size: 13px;
    color: #767267;
    font-family: 'IBM Plex Mono', monospace;
    transition: all .2s ease;
}
.step .label {
    font-size: 11.5px;
    color: #767267;
}
.step.active .dot {
    background: #0F6656;
    border-color: #0F6656;
    color: #fff;
}
.panel {
    background: #FFFFFF;
    border: 1px solid #E7E1D3;
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(24, 38, 52, 0.06), 0 8px 24px rgba(24, 38, 52, 0.06);
    padding: 24px;
    display: none;
}
@media (min-width: 640px) {
    .panel {
        padding: 32px;
    }
}
.panel.active {
    display: block;
    animation: rise .35s ease;
}
.eyebrow {
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #0A4A3F;
    font-weight: 600;
    margin-bottom: 8px;
}
@media (min-width: 640px) {
    .panel h2 {
        font-size: 24px;
    }
}
.panel h2 {
    font-size: 21px;
    margin-bottom: 6px;
}
.panel .sub {
    color: #767267;
    font-size: 13.5px;
    margin-bottom: 24px;
}
.result-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.result-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 16px;
    border: 1px solid #E7E1D3;
    border-radius: 8px;
    margin-bottom: 10px;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.result-item .addr {
    font-size: 14.5px;
}
.result-item .chev {
    color: #0A4A3F;
    font-size: 13px;
    flex: none;
}
.result-item .addr .title-no {
    display: block;
    font-size: 11.5px;
    color: #767267;
    margin-top: 3px;
    font-family: 'IBM Plex Mono', monospace;
}
.confirm-row {
    margin-top: 24px;
    display: none;
    gap: 10px;
}
@media (min-width: 640px) {
    .confirm-row {
        display: flex;
    }
}
.btn-ghost {
    background: transparent;
    color: #44566A;
    padding: 12px 4px;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-size: 14px;
}
.plot-wrap {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
@media (min-width: 640px) {
    .plot-wrap {
        flex-direction: row;
        align-items: flex-start;
    }
}
.plot-map {
    background: repeating-linear-gradient(0deg, #EFECE3 0 1px, transparent 1px 24px), repeating-linear-gradient(90deg, #EFECE3 0 1px, transparent 1px 24px), var(--paper);
    border: 1px solid #E7E1D3;
    border-radius: 8px;
    padding: 16px;
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
}
@media (min-width: 640px) {
    .plot-map {
        flex: 1 1 260px;
    }
}
.plot-details {
    flex: 1 1 220px;
}
.plot-details dt {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #767267;
    margin-top: 14px;
}
.plot-details dt:first-child {
    margin-top: 0;
}
.plot-details dd {
    margin: 2px 0 0;
    font-size: 15px;
}
.stamp {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    border: 1.5px dashed #0F6656;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #0A4A3F;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    text-align: center;
    line-height: 1.3;
    margin-top: 16px;
}
.doc-list {
    margin-top: 4px;
}
.doc-item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 16px 0;
    border-bottom: 1px solid #E7E1D3;
}
.doc-item input[type=checkbox] {
    margin-top: 4px;
    width: 18px;
    height: 18px;
    accent-color: #0F6656;
    flex: none;
}
.doc-main {
    flex: 1;
    min-width: 0;
}
.doc-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.doc-title-row .name {
    font-size: 14.5px;
    font-weight: 500;
}
.badge.rec {
    background: #FBF1DF;
    color: #B9832E;
}
.doc-desc {
    font-size: 12.5px;
    color: #767267;
    margin-top: 3px;
}
.total-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #182634;
}
.total-row .label {
    font-size: 13.5px;
    color: var(--muted);
}
.total-row .amount {
    font-weight: bold;
    font-size: 22px;
}
.foot-note {
    font-size: 11.5px;
    color: #767267;
    margin-top: 10px;
    line-height: 1.55;
}
.order-summary {
    background: #FAF7F1;
    border: 1px solid #E7E1D3;
    border-radius: 8px;
    padding: 16px;
    margin-top: 20px;
}
.order-summary dt {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #767267;
    margin-top: 12px;
}
.order-summary dt:first-child {
    margin-top: 0;
}
.mono {
    font-family: 'IBM Plex Mono', monospace;
    letter-spacing: 0.01em;
}
.order-summary dd {
    margin: 2px 0 0;
    font-size: 14.5px;
}
.order-summary dd.mono {
    font-size: 13.5px;
}
.success-icon {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #E6F1EE;
    color: #0A4A3F;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    margin-bottom: 16px;
}
.legal-page .back-link {
    display: inline-block;
    margin-bottom: 20px;
    font-size: 13.5px;
    color: #0A4A3F;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.legal-page h1 {
    font-size: 26px;
    margin-bottom: 6px;
}
.legal-page .updated {
    font-size: 12px;
    color: #767267;
    margin-bottom: 24px;
}
.legal-notice {
    background: #FBF1DF;
    border: 1px solid #B9832E;
    border-radius: 8px;
    padding: 14px 16px;
    font-size: 12.5px;
    color: #44566A;
    margin-bottom: 24px;
}
.legal-page p, .legal-page li {
    font-size: 14px;
    color: #44566A;
    margin-bottom: 12px;
}
.legal-page h2 {
    font-size: 17px;
    margin-top: 28px;
    margin-bottom: 10px;
    color: #0A4A3F;
}
.legal-page table {
    width: 100%;
    border-collapse: collapse;
    margin: 14px 0 20px;
    font-size: 13px;
}
.legal-page th {
    background: #182634;
    color: #fff;
    font-weight: 500;
}
.legal-page th, .legal-page td {
    border: 1px solid #E7E1D3;
    padding: 8px 10px;
    text-align: left;
}
.legal-page ul {
    padding-left: 20px;
    margin-top: 0;
}
.legal-page p, .legal-page li {
    font-size: 14px;
    color: #44566A;
    margin-bottom: 12px;
    list-style: disc;
}
.btn-cta, btn-cta:hover {
    background: #0F6656;
    color: #fff;
    padding: 9px 16px;
    font-size: 13.5px;
    font-weight: 500;
    border-radius: 8px;
    border-color: transparent;
}

:root{
    --g0:#ffffff;
    --g1:#f6f6fb;
    --g2:#ececf6;
    --g3:#dfe1ef;
    --g4:#c7cae0;
    --g5:#9296bd;
    --g6:#63678f;
    --g7:#40436b;
    --g8:#262a4a;
    --g9:#14162b;

    --indigo-100:#e7e6fb;
    --indigo-500:#4f46e5;
    --indigo-600:#4338ca;
    --indigo-700:#362da3;

    --parcel:#a8813f;      /* brass/seal accent — land-registry stamp tone */
    --parcel-soft:#f4ead8;
    --ok:#146c43;
    --err:#c0293c;

    --font-display:'Syne', system-ui, sans-serif;
    --font-body:'DM Sans', system-ui, sans-serif;

    --radius:14px;
    --radius-sm:9px;
  }

  *{box-sizing:border-box;}
  html{-webkit-text-size-adjust:100%;}
  body{
    margin:0;
    background:var(--g1);
    font-family:var(--font-body);
    color:var(--g9);
    -webkit-font-smoothing:antialiased;
  }

  /* faint cadastral boundary watermark across the whole canvas */
  .boundary-field{
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:0;
    opacity:.5;
  }

  a{color:inherit;}

  .topbar{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    max-width:1040px;
    margin:0 auto;
    padding:22px 20px 0;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:9px;
    font-family:var(--font-display);
    font-weight:700;
    font-size:16px;
    letter-spacing:.01em;
  }
  .brand svg{flex-shrink:0;}
  .steps{
    display:flex;
    align-items:center;
    gap:6px;
    font-size:12.5px;
    color:var(--g6);
  }
  .steps b{color:var(--g9);font-weight:600;}
  .steps .dot{width:4px;height:4px;border-radius:50%;background:var(--g4);}
  @media (max-width:640px){ .steps{display:none;} }

  .wrap{
    position:relative;
    z-index:2;
    max-width:1040px;
    margin:0 auto;
    padding:28px 20px 80px;
  }

  .page-head{
    margin:14px 2px 26px;
  }
  .page-head .eyebrow{
    font-size:12px;
    font-weight:600;
    letter-spacing:.09em;
    text-transform:uppercase;
    color:var(--parcel);
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:8px;
  }
  .page-head .eyebrow .seal{
    width:16px;height:16px;
  }
  .page-head h1{
    font-family:var(--font-display);
    font-size:clamp(24px,3.4vw,32px);
    font-weight:700;
    margin:0 0 6px;
    letter-spacing:-.01em;
  }
  .page-head p{
    margin:0;
    color:var(--g6);
    font-size:14.5px;
    max-width:52ch;
  }

  .grid{
    display:block;
    grid-template-columns:1fr 1.28fr;
    gap:22px;
    align-items:start;
  }
  @media (max-width:860px){
    .grid{grid-template-columns:1fr;}
  }

  .card{
    background:var(--g0);
    border:1px solid var(--g3);
    border-radius:var(--radius);
    box-shadow:0 1px 2px rgba(20,22,43,.03);
  }

  /* ---------- ORDER SUMMARY ---------- */
  .summary{
    padding:0;
    overflow:hidden;
    position:sticky;
    top:20px;
  }
  @media (max-width:860px){ .summary{position:static;} }

  .summary-head{
    position:relative;
    padding:22px 22px 18px;
    background:var(--g9);
    color:var(--g0);
    overflow:hidden;
  }
  .summary-head .parcel-sketch{
    position:absolute;
    right:-18px;
    top:-14px;
    opacity:.35;
  }
  .summary-head .tag{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:11px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--indigo-100);
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.16);
    padding:4px 9px 4px 7px;
    border-radius:999px;
    margin-bottom:12px;
  }
  .summary-head .tag svg{width:11px;height:11px;}
  .summary-head .address{
    font-family:var(--font-display);
    font-size:19px;
    font-weight:700;
    line-height:1.28;
    margin:0 0 4px;
    max-width:26ch;
    position:relative;
    color:#fff;
  }
  .summary-head .postcode-row{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:12.5px;
    color:var(--g4);
  }
  .summary-head .postcode-row .chip{
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.14);
    padding:2px 7px;
    border-radius:6px;
    font-weight:600;
    letter-spacing:.03em;
    color:var(--g1);
  }

  .doc-list{
    padding:16px 22px 6px;
  }
  .doc-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding:12px 0;
    border-bottom:1px dashed var(--g3);
  }
  .doc-row:last-child{border-bottom:none;}
  .doc-info{display:flex;gap:11px;align-items:flex-start;}
  .doc-icon{
    width:30px;height:30px;
    border-radius:8px;
    background:var(--indigo-100);
    color:var(--indigo-600);
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
  }
  .doc-icon svg{width:15px;height:15px;}
  .doc-name{
    font-size:13.5px;
    font-weight:600;
    color:var(--g9);
    line-height:1.35;
  }
  .doc-sub{
    font-size:12px;
    color:var(--g6);
    margin-top:1px;
  }
  .doc-price{
    font-size:13.5px;
    font-weight:600;
    color:var(--g9);
    white-space:nowrap;
    padding-top:2px;
  }
  .doc-price.na{color:var(--g5);font-weight:500;}

  .totals{
    padding:14px 22px 22px;
  }
  .totals .line{
    display:flex;
    justify-content:space-between;
    font-size:13px;
    color:var(--g6);
    padding:5px 0;
  }
  .totals .line.grand{
    margin-top:8px;
    padding-top:14px;
    border-top:1px solid var(--g3);
    font-size:16px;
    font-weight:700;
    color:var(--g9);
    font-family:var(--font-display);
  }
  .totals .line.grand span:last-child{font-size:19px;}

  .plot-note{
    margin:0 22px 20px;
    padding:11px 12px;
    background:var(--parcel-soft);
    border:1px solid #e9d9b8;
    border-radius:var(--radius-sm);
    font-size:12px;
    color:#6b5321;
    display:flex;
    gap:8px;
    align-items:flex-start;
    line-height:1.5;
  }
  .plot-note svg{flex-shrink:0;margin-top:1px;width:14px;height:14px;}

  /* ---------- PAYMENT ---------- */
  .pay{
    padding:24px 24px 26px;
  }
  .pay h2{
    font-family:var(--font-display);
    font-size:16px;
    font-weight:700;
    margin:0 0 3px;
  }
  .pay .sub{
    font-size:12.5px;
    color:var(--g6);
    margin:0 0 20px;
  }

  fieldset{border:none;padding:0;margin:0 0 18px;}
  legend{
    font-size:11.5px;
    font-weight:600;
    letter-spacing:.05em;
    text-transform:uppercase;
    color:var(--g6);
    margin-bottom:9px;
    padding:0;
  }

  .field{margin-bottom:12px;}
  .field label{
    display:block;
    font-size:12.5px;
    font-weight:600;
    color:var(--g8);
    margin-bottom:5px;
  }
  .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .row3{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px;}

  .input-shell{
    position:relative;
  }
  input{
    width:100%;
    font-family:var(--font-body);
    font-size:14.5px;
    color:var(--g9);
    background:var(--g0);
    border:1.5px solid var(--g3);
    border-radius:var(--radius-sm);
    padding:10.5px 12px;
    outline:none;
    transition:border-color .15s ease, box-shadow .15s ease;
  }
  input::placeholder{color:var(--g5);}
  input:focus{
    border-color:var(--indigo-500);
    box-shadow:0 0 0 3px var(--indigo-100);
  }
  input:focus-visible{
    border-color:var(--indigo-500);
    box-shadow:0 0 0 3px var(--indigo-100);
  }
  .card-number-shell input{padding-right:118px;}
  .card-marks{
    position:absolute;
    right:8px; top:50%;
    transform:translateY(-50%);
    display:flex;
    gap:5px;
  }
  .card-mark{
    width:30px;height:19px;
    border-radius:4px;
    display:flex;align-items:center;justify-content:center;
    font-size:6.5px;
    font-weight:700;
    letter-spacing:.02em;
    color:#fff;
    opacity:.35;
    transition:opacity .15s ease;
  }
  .card-mark.active{opacity:1;}
  .m-visa{background:#2f3f8f;}
  .m-mc{background:#7a1f2b;}
  .m-amex{background:#0a6e6e;}

  .err-msg{
    font-size:11.5px;
    color:var(--err);
    margin-top:5px;
    display:none;
  }
  .field.invalid input{border-color:var(--err);}
  .field.invalid .err-msg{display:block;}

  .pay-btn{
    width:100%;
    border:none;
    cursor:pointer;
    background: #0F6656 !important;
    border-color: #0F6656 !important;
    color:#fff;
    font-family:var(--font-body);
    font-weight:700;
    font-size:15px;
    padding:14px 18px;
    border-radius:var(--radius-sm);
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    transition:background .15s ease, transform .05s ease;
    margin-top:6px;
  }
  .pay-btn:hover{background:var(--indigo-600);}
  .pay-btn:active{transform:scale(.99);}
  .pay-btn svg{width:15px;height:15px;}
  .pay-btn[disabled]{background:var(--g4);cursor:progress;}

  .trust-row{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:16px;
    padding-top:16px;
    border-top:1px solid var(--g2);
  }
  .trust-item{
    display:flex;
    align-items:center;
    gap:6px;
    font-size:11.5px;
    color:var(--g6);
  }
  .trust-item svg{width:14px;height:14px;flex-shrink:0;color:var(--g5);}

  .no-store-note{
    font-size:11.5px;
    color:var(--g6);
    text-align:center;
    margin-top:14px;
    line-height:1.5;
  }
  .no-store-note b{color:var(--g8);}

  /* success state */
  .success-panel{
    display:none;
    text-align:center;
    padding:34px 24px 30px;
  }
  .success-panel.show{display:block;}
  .success-panel .ring{
    width:56px;height:56px;
    border-radius:50%;
    background:var(--indigo-100);
    color:var(--indigo-600);
    display:flex;align-items:center;justify-content:center;
    margin:0 auto 16px;
  }
  .success-panel h2{
    font-family:var(--font-display);
    font-size:19px;
    margin:0 0 6px;
  }
  .success-panel p{
    font-size:13.5px;
    color:var(--g6);
    max-width:34ch;
    margin:0 auto;
    line-height:1.55;
  }
  .pay-form.hide{display:none;}

  .footer-note{
    text-align:center;
    font-size:11.5px;
    color:var(--g5);
    margin-top:26px;
    line-height:1.7;
  }
  .footer-note a{text-decoration:underline;}

  @media (prefers-reduced-motion:no-preference){
    .card{animation:rise .45s ease both;}
    .grid > *:nth-child(2){animation-delay:.06s;}
  }
  @keyframes rise{
    from{opacity:0; transform:translateY(8px);}
    to{opacity:1; transform:translateY(0);}
  }
  @media (prefers-reduced-motion:reduce){
    .card{animation:none;}
  }

:root{
    --navy: #182634;
    --navy-panel: #21334533;
    --navy-panel-solid: #223447;
    --teal: #0F6656;
    --teal-bright: #14876F;
    --paper: #F5F2EC;
    --paper-card: #FFFFFF;
    --line: #E4DFD3;
    --ink: #1B2430;
    --ink-soft: #5C6B77;
    --on-navy: #EDEFEE;
    --on-navy-soft: #9FB0BD;
    --error: #B3453B;
  }

  *{ box-sizing:border-box; }

  body{
    margin:0;
    background: var(--paper);
    color: var(--ink);
    font-family: 'IBM Plex Sans', system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
  }

  .shell{
    max-width: 1040px;
    margin: 0 auto;
    padding: 48px 24px 80px;
  }

  .grid{
    /*display:grid;*/
    grid-template-columns: 340px 1fr;
    border: 1px solid var(--line);
    background: var(--paper-card);
    box-shadow: 0 1px 2px rgba(24,38,52,0.04);
  }

  /* ---------- Left panel ---------- */
  .side{
    background: var(--navy);
    color: var(--on-navy);
    padding: 44px 36px;
    position: relative;
    overflow: hidden;
  }
  .side::before{
    content:"";
    position:absolute;
    right:-60px; top:-60px;
    width:220px; height:220px;
    border-radius:50%;
    background: radial-gradient(circle, var(--teal) 0%, transparent 70%);
    opacity:0.35;
  }
  .mark{
    display:flex; align-items:center; gap:10px;
    font-family:'Space Grotesk', sans-serif;
    font-weight:700; font-size:1.05rem;
    letter-spacing:0.01em;
    margin-bottom: 46px;
  }
  .mark-dot{
    width:10px; height:10px; border-radius:50%;
    background: var(--teal-bright);
    box-shadow: 0 0 0 4px rgba(20,135,111,0.2);
  }
  .side h1{
    font-family:'Space Grotesk', sans-serif;
    font-size: 1.7rem;
    line-height:1.25;
    font-weight:600;
    margin: 0 0 14px;
  }
  .side p.lede{
    color: var(--on-navy-soft);
    font-size: 0.92rem;
    line-height:1.6;
    margin: 0 0 40px;
  }

  .steps{
    list-style:none; margin:0; padding:0;
    display:flex; flex-direction:column; gap: 0;
    position: relative;
  }
  .steps li{
    display:flex; gap:14px;
    padding-bottom: 30px;
    position: relative;
  }
  .steps li:last-child{ padding-bottom:0; }
  .steps li::after{
    content:"";
    position:absolute;
    left:11px; top:26px; bottom:6px;
    width:1px;
    background: rgba(159,176,189,0.25);
  }
  .steps li:last-child::after{ display:none; }
  .step-num{
    flex:0 0 auto;
    width:23px; height:23px;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:0.72rem; font-weight:600;
    font-family:'Space Grotesk', sans-serif;
    border: 1px solid rgba(159,176,189,0.4);
    color: var(--on-navy-soft);
    background: var(--navy);
    z-index:1;
  }
  .steps li.active .step-num{
    background: var(--teal-bright);
    border-color: var(--teal-bright);
    color: #08251E;
  }
  .step-body strong{
    display:block;
    font-size:0.9rem;
    font-weight:600;
    color: var(--on-navy);
    margin-bottom:2px;
  }
  .step-body span{
    font-size: 0.8rem;
    color: var(--on-navy-soft);
  }

  .side-foot{
    margin-top: 48px;
    padding-top: 22px;
    border-top: 1px solid rgba(159,176,189,0.2);
    font-size: 0.76rem;
    color: var(--on-navy-soft);
    line-height:1.6;
  }
  .side-foot b{ color: var(--on-navy); }

  /* ---------- Form panel ---------- */
  .form-panel{ padding: 44px 48px; }

  .eyebrow{
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--teal);
    font-weight: 600;
    margin: 0 0 8px;
  }
  .form-panel h2{
    font-family:'Space Grotesk', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    margin: 0 0 6px;
    color: var(--navy);
  }
  .form-panel > p{
    color: var(--ink-soft);
    font-size: 0.9rem;
    margin: 0 0 34px;
  }

  fieldset{
    border: none;
    margin: 0 0 34px;
    padding: 0;
  }
  legend{
    display:flex; align-items:center; gap:10px;
    font-family:'Space Grotesk', sans-serif;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--navy);
    margin-bottom: 18px;
    width: 100%;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
  }
  legend::after{
    content:"";
    flex:1;
  }
  legend .tag{
    font-family:'IBM Plex Sans', sans-serif;
    font-weight: 500;
    font-size: 0.7rem;
    color: var(--teal);
    background: rgba(15,102,86,0.08);
    padding: 3px 9px;
    border-radius: 3px;
  }

  /*.row{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-bottom: 18px;
  }
  .row.single{ grid-template-columns: 1fr; }
  .row.thirds{ grid-template-columns: 1.4fr 1fr 1fr; }*/

  .field{ display:flex; flex-direction:column; }
  .field label{
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--ink);
    margin-bottom: 7px;
  }
  .field .optional{
    font-weight: 400;
    color: var(--ink-soft);
    text-transform:none;
    letter-spacing:0;
  }

  .field input,
  .field select{
    font-family: inherit;
    font-size: 0.92rem;
    color: var(--ink);
    background: var(--paper-card);
    border: 1px solid var(--line);
    border-radius: 4px;
    padding: 11px 12px;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
  }
  .field input::placeholder{ color: #B8B2A4; }
  .field input:focus,
  .field select:focus{
    border-color: var(--teal);
    box-shadow: 0 0 0 3px rgba(15,102,86,0.14);
  }
  .field small{
    margin-top: 6px;
    font-size: 0.74rem;
    color: var(--ink-soft);
  }

  .field input[readonly]{
    background: #F4F2ED;
    color: var(--ink-soft);
    cursor: not-allowed;
  }

  .field select{ appearance:none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%235C6B77'/></svg>");
    background-repeat:no-repeat;
    background-position: right 14px center;
    padding-right: 34px;
  }

  .check-row{
    display:flex; align-items:flex-start; gap:10px;
    font-size: 0.84rem;
    color: var(--ink-soft);
    margin-bottom: 30px;
  }
  .check-row input{ margin-top:3px; accent-color: var(--teal); }

  .actions{
    display:flex; align-items:center; justify-content:space-between;
    gap: 20px;
    padding-top: 6px;
  }
  .secure{
    display:flex; align-items:center; gap:8px;
    font-size: 0.78rem;
    color: var(--ink-soft);
  }
  .secure svg{ flex:0 0 auto; }

  button.submit{
    font-family:'Space Grotesk', sans-serif;
    font-weight: 600;
    font-size: 0.92rem;
    color: #F4FBF9;
    background: var(--teal);
    border: none;
    border-radius: 4px;
    padding: 13px 28px;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.05s ease;
  }
  button.submit:hover{ background: var(--teal-bright); }
  button.submit:active{ transform: translateY(1px); }
  button.submit:focus-visible{
    outline: 2px solid var(--navy);
    outline-offset: 2px;
  }

  button.submit:disabled{opacity: 0.5;}

  .error{color:#FF0000;}

  .fasttrack{
    display:flex; align-items:flex-start; gap:14px;
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 16px 18px;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
  }
  .fasttrack:has(input:checked){
    border-color: var(--teal);
    background: rgba(15,102,86,0.05);
  }
  .fasttrack input{
    margin-top: 3px;
    width: 16px; height: 16px;
    accent-color: var(--teal);
    flex: 0 0 auto;
  }
  .fasttrack-copy{ display:flex; flex-direction:column; gap:4px; }
  .fasttrack-copy strong{
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--navy);
  }
  .fasttrack-copy strong em{
    font-style: normal;
    color: var(--teal);
    font-weight: 600;
    margin-left: 6px;
  }
  .fasttrack-copy small{
    font-size: 0.8rem;
    color: var(--ink-soft);
    line-height: 1.5;
  }
  @media (min-width: 768px) {
    .col-md-6 {margin-top:15px;}
  }
  @media (max-width: 760px){
    .grid{ grid-template-columns: 1fr; }
    .side{ padding: 32px 28px; }
    .steps{ display:none; }
    .form-panel{ padding: 32px 24px; }
    .row, .row.thirds{ grid-template-columns: 1fr; }
    .actions{ flex-direction:column; align-items:stretch; gap:16px; }
    .secure{ order:2; justify-content:center; }    
  }