.legal-page {
  background: var(--paper);
}

.legal-hero {
  background:
    radial-gradient(circle at 84% 18%, rgba(33, 211, 139, 0.14), transparent 30%),
    var(--forest-deep);
  color: var(--white);
  padding: 166px 0 78px;
}

.legal-hero h1 {
  max-width: 760px;
  font-family: var(--display);
  font-size: clamp(44px, 6vw, 72px);
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1;
}

.legal-hero p {
  max-width: 680px;
  margin-top: 24px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 17px;
  line-height: 1.72;
}

.legal-content {
  padding: 76px 0 96px;
}

.legal-layout {
  display: grid;
  grid-template-columns: 210px minmax(0, 780px);
  align-items: start;
  justify-content: center;
  gap: clamp(42px, 7vw, 92px);
}

.legal-toc {
  position: sticky;
  top: 112px;
  border-left: 2px solid var(--line);
  padding-left: 18px;
}

.legal-toc strong {
  display: block;
  margin-bottom: 12px;
  color: var(--ink);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.legal-toc ul {
  display: grid;
  gap: 8px;
  list-style: none;
}

.legal-toc a {
  color: var(--ink-2);
  font-size: 13px;
  line-height: 1.4;
  text-decoration: none;
}

.legal-toc a:hover {
  color: var(--mint-dark);
}

.legal-document {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--white);
  padding: clamp(30px, 5vw, 58px);
}

.legal-document h2 {
  margin-top: 58px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 14px;
  color: var(--ink);
  font-family: var(--display);
  font-size: clamp(25px, 3vw, 34px);
  font-weight: 650;
  letter-spacing: -0.015em;
  line-height: 1.18;
  scroll-margin-top: 110px;
}

.legal-document h2:first-child {
  margin-top: 0;
}

.legal-document h3 {
  margin-top: 36px;
  color: var(--ink);
  font-family: var(--display);
  font-size: 19px;
  line-height: 1.3;
  scroll-margin-top: 110px;
}

.legal-document p,
.legal-document li,
.legal-address {
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.78;
}

.legal-document p + p,
.legal-document p + ul,
.legal-document p + ol,
.legal-document ol + p,
.legal-document ul + p {
  margin-top: 17px;
}

.legal-document ol,
.legal-document ul {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding-left: 24px;
}

.legal-document a {
  overflow-wrap: anywhere;
  text-underline-offset: 3px;
}

.legal-address {
  margin-top: 18px;
  border-left: 3px solid var(--mint);
  padding-left: 18px;
  font-style: normal;
}

.legal-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  margin-top: 54px;
  border-top: 1px solid var(--line);
  padding-top: 20px;
  color: #6d817f;
  font-size: 12px;
}

.legal-download {
  margin-top: 24px;
}

@media (max-width: 900px) {
  .legal-layout {
    grid-template-columns: minmax(0, 780px);
  }

  .legal-toc {
    position: static;
    border-left: 0;
    border-bottom: 1px solid var(--line);
    padding: 0 0 24px;
  }

  .legal-toc ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .legal-hero {
    padding: 132px 0 60px;
  }

  .legal-hero h1 {
    font-size: clamp(26px, 8vw, 40px);
    letter-spacing: -0.015em;
    line-height: 1.08;
  }

  .legal-hero p {
    font-size: 15px;
  }

  .legal-content {
    padding: 50px 0 68px;
  }

  .legal-toc ul {
    grid-template-columns: 1fr;
  }

  .legal-document {
    border-radius: 16px;
    padding: 28px 20px;
  }

  .legal-document h2 {
    margin-top: 46px;
  }
}

.resources-content {
  padding: 76px 0 96px;
  background: var(--paper);
}

.resources-intro {
  margin-bottom: 30px;
}

.resources-intro h2 {
  color: var(--ink);
  font-family: var(--display);
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 650;
  letter-spacing: -0.015em;
}

.resources-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.resource-card {
  display: flex;
  min-width: 0;
  min-height: 290px;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--white);
  padding: 30px;
}

.resource-card h3 {
  color: var(--ink);
  font-family: var(--display);
  font-size: 24px;
  line-height: 1.2;
}

.resource-card p {
  margin-top: 14px;
  color: var(--ink-2);
  font-size: 14px;
  line-height: 1.68;
}

.resource-file-info {
  margin-top: 18px;
  color: #6d817f;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.resource-card .button {
  align-self: flex-start;
  margin-top: 14px;
}

@media (max-width: 900px) {
  .resources-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .resources-content {
    padding: 50px 0 68px;
  }

  .resources-grid {
    grid-template-columns: 1fr;
  }

  .resource-card {
    min-height: 260px;
    padding: 26px 22px;
  }
}


/* ===========================
Contact Information
=========================== */

.contact-bottom{

	background:var(--forest);
	padding:39px 5px 1px;

}

.contact-info {
	margin-bottom: 50px;
}


.contact-info h3 {
	text-align: center;
	color: #fff;
	margin-bottom: 32px;
	font-size: 30px;
}

.contact-info-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin-bottom: 35px;
}

/* every information card */

.contact-info-item {
	padding: 5px 18px;
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.contact-info-item .material-symbols-outlined {

	width: 42px;

	height: 42px;

	display: flex;

	justify-content: center;

	align-items: center;

	border-radius: 50%;

	background: rgba(96, 193, 163, .18);

	color: var(--mint);

	font-size: 22px;

	padding: 10px;

	flex-shrink: 0;

}


.contact-info-item strong {

	display: block;

	margin-bottom: 5px;

	font-size: 15px;

	color: #fff;

}

.contact-info-item span {

	font-size: 14px;

	color: rgba(255, 255, 255, .72);

	line-height: 1.55;

}


.contact-map {

	margin-top: 20px;

}

.contact-map iframe {

	width: 100%;

	height: 320px;

	border: none;

	border-radius: 16px;

}

@media (max-width:1000px) {

	.contact-info-grid {

		grid-template-columns: repeat(2, 1fr);

	}

}

@media (max-width:700px) {

	.contact-info-grid {

		grid-template-columns: 1fr;

	}

	.contact-map iframe {

		height: 280px;

	}

}

/* Contact form and enquiry introduction. */
.contact-v2 {
	background: var(--white);
	padding: 112px 0;
	color: var(--ink);
}

.contact-v2 .contact-grid {
	display: grid;
	min-width: 0;
	grid-template-columns: minmax(300px, 0.76fr) minmax(0, 1.24fr);
	align-items: start;
	gap: clamp(55px, 8vw, 105px);
}

.contact-v2 .contact-grid>* {
	min-width: 0;
}

.contact-v2 .contact-copy {
	max-width: 470px;
}

.contact-v2 .contact-copy .section-title {
	color: var(--ink);
}

.contact-v2 .contact-copy>p {
	margin-top: 22px;
	margin-bottom: 0;
	color: var(--ink-2);
	font-size: 16px;
	line-height: 1.7;
}

.contact-v2 .contact-hints {
	display: grid;
	gap: 10px;
	margin-top: 36px;
}

.contact-v2 .contact-hint {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	align-items: start;
	gap: 14px;
	border: 1px solid var(--line);
	border-radius: 16px;
	background: var(--paper);
	padding: 17px;
	transition:
		background 0.2s ease,
		border-color 0.2s ease;
}

.contact-v2 .contact-hint-icon {
	display: grid;
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	place-items: center;
	border-radius: 50%;
	background: var(--mint-soft);
}

.contact-v2 .contact-hint-icon .material-symbols-outlined {
	color: var(--mint-dark);
	font-size: 22px;
	font-variation-settings:
		'FILL' 1,
		'wght' 500;
}

.contact-v2 .contact-hint strong {
	display: block;
	margin: 0;
	color: var(--ink);
	font-family: var(--display);
	font-size: 14px;
}

.contact-v2 .contact-hint span:not(.contact-hint-icon):not(.material-symbols-outlined) {
	display: block;
	margin-top: 4px;
	color: var(--ink-2);
	font-size: 12px;
	line-height: 1.55;
}

.contact-v2 .contact-form {
	position: relative;
	min-width: 0;
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--white);
	box-shadow: 0 24px 70px rgba(7, 60, 58, 0.13);
	padding: clamp(28px, 4vw, 44px);
	color: var(--ink);
	text-align: left;
}

.contact-v2 .form-intro {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-bottom: 28px;
	border-bottom: 1px solid var(--line);
	padding-bottom: 24px;
}

.contact-v2 .form-intro strong,
.contact-v2 .form-intro span {
	display: block;
}

.contact-v2 .form-intro strong {
	margin: 0;
	font-family: var(--display);
	font-size: 20px;
	line-height: 1.2;
}

.contact-v2 .form-intro>span {
	margin-top: 4px;
	color: var(--ink-2);
	font-size: 12px;
}

.contact-v2 .form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.contact-v2 .form-field {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 7px;
}

.contact-v2 .form-field.full {
	grid-column: 1 / -1;
}

.contact-v2 .form-field label,
.contact-v2 .consent-label {
	color: var(--ink);
	font-size: 12px;
	font-weight: 750;
}

.contact-v2 .label-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}

.contact-v2 .optional-label {
	color: #728684;
	font-size: 10px;
	font-weight: 600;
}

.contact-v2 .form-field small {
	color: #6d817f;
	font-size: 12px;
	line-height: 1.4;
}

.contact-v2 .form-field input,
.contact-v2 .form-field select,
.contact-v2 .form-field textarea,
.contact-v2 .iti .iti__tel-input,
.contact-v2 .iti input[type="tel"] {
	width: 100%;
	min-height: 50px;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: #fff;
	color: var(--ink);
	font: inherit;
	font-size: 14px;
	padding: 13px 14px;
	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease,
		background 0.2s ease;
}

.contact-v2 .form-field select {
	cursor: pointer;
}

.contact-v2 .form-field textarea {
	min-height: 126px;
	resize: vertical;
}

.contact-v2 .form-field .compact-textarea {
	min-height: 92px;
}

.contact-v2 .form-field input:hover,
.contact-v2 .form-field select:hover,
.contact-v2 .form-field textarea:hover,
.contact-v2 .iti .iti__tel-input:hover {
	border-color: #a9c2bb;
	background: var(--white);
}

.contact-v2 .form-field input:focus,
.contact-v2 .form-field select:focus,
.contact-v2 .form-field textarea:focus,
.contact-v2 .iti .iti__tel-input:focus {
	outline: none;
	border-color: var(--mint-dark);
	background: var(--white);
	box-shadow: 0 0 0 3px rgba(13, 159, 103, 0.13);
}

.contact-v2 .iti {
	width: 100%;
}

.contact-v2 .iti .iti__tel-input,
.contact-v2 .iti input[type="tel"] {
	padding-left: var(--iti-input-padding, 92px);
}

.iti__country-container {
	min-height: 46px;
}

.iti__selected-country {
	border-radius: 6px 0 0 6px;
}

.iti__dropdown-content {
	z-index: 200;
	overflow: hidden;
	border-radius: 8px;
}

.iti__search-input,
.phone-country-search {
	box-sizing: border-box;
	width: calc(100% - 16px);
	min-height: 40px;
	margin: 8px;
	border: 1px solid var(--line);
	border-radius: 6px;
	padding: 10px 12px 10px 38px;
	font: inherit;
	font-size: 14px;
}

#iti-0__search-input {
	padding-left: 26px;
}

.hp-field {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.contact-v2 .consent {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr);
	align-items: start;
	gap: 10px;
	margin-top: 21px;
}

.contact-v2 .consent input {
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--mint-dark);
}

.contact-v2 .consent-label {
	color: var(--ink-2);
	font-weight: 500;
	line-height: 1.55;
}

.contact-v2 .consent-label a {
	color: var(--mint-dark);
}

.contact-v2 .form-actions {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 18px;
	margin-top: 24px;
}

/* JavaScript validation feedback. */
.contact-v2 .form-field input.is-invalid,
.contact-v2 .form-field select.is-invalid,
.contact-v2 .form-field textarea.is-invalid,
.contact-v2 .iti .iti__tel-input.is-invalid,
.contact-v2 .form-field input.is-invalid:hover,
.contact-v2 .form-field select.is-invalid:hover,
.contact-v2 .form-field textarea.is-invalid:hover,
.contact-v2 .iti .iti__tel-input.is-invalid:hover,
.contact-v2 .form-field input.is-invalid:focus,
.contact-v2 .form-field select.is-invalid:focus,
.contact-v2 .form-field textarea.is-invalid:focus,
.contact-v2 .iti .iti__tel-input.is-invalid:focus {
	border-color: #b42318;
	box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.12);
}

.contact-v2 .consent input.is-invalid {
	outline: 2px solid #b42318;
	outline-offset: 2px;
}

.contact-v2 .form-field .field-error,
.contact-v2 .consent .field-error {
	display: block;
	margin: 0;
	color: #b42318;
	font-size: 12px;
	font-weight: 650;
	line-height: 1.4;
}

.contact-v2 .consent .field-error {
	grid-column: 1 / -1;
}

.contact-v2 .form-status {
	margin: 0 0 20px;
	padding: 0.9rem 1rem;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 650;
	line-height: 1.5;
}

.contact-v2 .form-status:empty {
	display: none;
}

.contact-v2 .form-status.is-error {
	background: #fef3f2;
	color: #8b1e1e;
	padding: 12px 14px;
	border: 1px solid #e3a2a2;
}


.contact-v2 .form-status.is-success {
	background-color: #eaf7ef;
	color: #176b36;
	padding: 12px 14px;
	border: 1px solid #8ac6a0;
}


@media (max-width: 980px) {
	.contact-v2 .contact-grid {
		grid-template-columns: 1fr;
		gap: 48px;
	}

	.contact-v2 .contact-copy {
		max-width: 690px;
	}
}

@media (max-width: 768px) {
	.contact-v2 .form-actions .cta-btn {
		width: 100%;
	}
}

@media (max-width: 640px) {
	.contact-v2 {
		padding: 68px 0;
	}

	.contact-v2 .contact-form {
		border-radius: 22px;
		padding: 25px 18px;
	}

	.contact-v2 .form-grid {
		grid-template-columns: 1fr;
	}

	.contact-v2 .form-field.full {
		grid-column: auto;
	}

	.contact-v2 .form-field input,
	.contact-v2 .form-field select,
	.contact-v2 .form-field textarea,
	.contact-v2 .iti .iti__tel-input,
	.contact-v2 .iti input[type="tel"] {
		font-size: 16px;
	}

}

/* Dedicated FAQ and contact page. */
.contact-page-contact {
	padding-top: 112px;
}

.contact-faq {
	background: var(--warm);
	padding: 166px 0 112px;
}


.contact-faq-layout {
	display: grid;
	grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
	align-items: start;
	gap: clamp(50px, 8vw, 105px);
}

.contact-faq-layout>* {
	min-width: 0;
}

.contact-faq-list {
	display: grid;
	gap: 12px;
	-webkit-user-select: none;
	user-select: none;
}

.contact-faq-list details {
	border: 1px solid rgba(11, 36, 35, 0.1);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.72);
	overflow: hidden;
}

.contact-faq-list summary {
	display: flex;
	min-height: 72px;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 20px 22px;
	cursor: pointer;
	font-family: var(--display);
	font-size: 17px;
	font-weight: 650;
	list-style: none;
}

.contact-faq-list summary::-webkit-details-marker {
	display: none;
}

.contact-faq-list summary .material-symbols-outlined {
	flex: 0 0 auto;
	color: var(--mint-dark);
	transition: transform 0.2s ease;
}

.contact-faq-list details[open] summary .material-symbols-outlined {
	transform: rotate(45deg);
}

.contact-faq-list details p {
	border-top: 1px solid rgba(11, 36, 35, 0.08);
	padding: 18px 22px 22px;
	color: var(--ink-2);
	font-size: 14px;
	line-height: 1.7;
}

@media (max-width: 900px) {
	.contact-faq-layout {
		grid-template-columns: 1fr;
		gap: 40px;
	}

}

@media (max-width: 640px) {
	.contact-page-contact {
		padding-top: 68px;
	}

	.contact-faq {
		padding: 124px 0 68px;
	}

	.contact-faq-list summary {
		min-height: 64px;
		padding: 17px 18px;
		font-size: 15px;
	}

	.contact-faq-list details p {
		padding: 16px 18px 19px;
	}
}
