/*
Theme Name: Swiitch
Author: We Are Flourish
Author URI: https://weareflourish.com/
*/

/* resets
--------------------------------------------------------------------------
*/

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }

html { font-size: 100%; -webkit-text-size-adjust: 100%; line-height: 1; overflow-y: scroll; box-sizing: border-box; }
*, *:before, *:after { box-sizing: inherit; }

article, aside, details, div, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { position: relative; display: block; }
audio, canvas, progress, video { display: inline-block; vertical-align: baseline; }
audio:not([controls]) { display: none; height: 0; }
progress { vertical-align: baseline; }
[hidden], template { display: none; }

svg:not(:root) { overflow: hidden; }

img, iframe { border: 0; vertical-align: bottom; }

strong { font-weight: bolder; }
em { font-style: italic; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }

button, input, optgroup, select, textarea { margin: 0; font: inherit; font-size: 100%; line-height: 1; vertical-align: baseline; color: inherit; outline: 0; border-radius: 0; }
button, input, textarea { padding: 0; }
button, input { overflow: visible; }
button, select { text-transform: none; }
textarea { overflow: auto; vertical-align: top; resize: vertical; }
legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; padding: 0; white-space: normal; }
input[type="radio"] { vertical-align: text-bottom; }
input[type="checkbox"] { vertical-align: bottom; }
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; }
label, button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; }
button, input[type="button"], input[type="reset"], input[type="submit"] { vertical-align: bottom; -webkit-appearance: button; }
button[disabled], input[disabled] { cursor: default; }
button { width: auto; }
button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border: 0; padding: 0; }
input[type="search"] { -webkit-appearance: textfield; outline-offset: -2px; }
input[type="search"]::-ms-clear,
input[type="search"]::-ms-reveal { display: none; width: 0; height: 0; }
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration { -webkit-appearance: none; }
::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; }

table { border-collapse: collapse; border-spacing: 0; }
th, td { vertical-align: top; }
th { font-weight: normal; text-align: left; }

h1, h2, h3, h4, h5, h6 { font-weight: normal; }

ul, ol { list-style: none; }
li { display: list-item; }

hr { box-sizing: content-box; height: 0; overflow: visible; }

a { color: #004F59; background: transparent; text-decoration: none; cursor: pointer; text-decoration-skip: ink; }
a:focus { outline: thin dotted; }
a:active, a:hover { outline: 0; }

.hide { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; white-space: nowrap; }

a, span, button { transition: color 0.4s ease, background-color 0.4s ease, border-color 0.4s ease, opacity 0.4s ease, text-decoration-color 0.4s ease; }

/* global
--------------------------------------------------------------------------
*/

body { font: 62.5%/1 poppins, 'Helvetica Neue', Arial, Helvetica, sans-serif; color: #004F59; background: #FFFFFF; }

.anim,
.animc > * { position: relative; transform: translateY(100px); opacity: 0; transition: transform 0.6s ease, opacity 0.6s ease; }
.anim.inview,
.animc > *.inview { transition-delay: 0.4s; transform: translateY(0); opacity: 1; }

body > header { width: calc( 100% - 14px - 14px ); padding: 14px 24px; background: #F2F2F1; border-radius: 36px; position: fixed; top: 16px; left: 14px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; z-index: 50; }
body > header ul.menu li button { width: 22px; height: 22px; background: none; border: 0; position: relative; display: block; -moz-appearance: none; -webkit-appearance: none; appearance: none; }
body > header ul.menu li button span { width: 100%; height: 100%; position: absolute; top: 0; left: 0; }
body > header ul.menu li button span::before,
body > header ul.menu li button span::after { width: 100%; height: 2px; background: #004F59; border-radius: 2px; position: absolute; left: 0; transition: transform 0.4s ease, top 0.4s ease, background-color 0.4s ease; content: " "; display: block; }
body > header ul.menu li button:hover span::before,
body > header ul.menu li button:hover span::after { background: #48DDA6; }
body > header ul.menu li button span::before { top: calc( 50% + 2px ); }
body > header ul.menu li button span::after { bottom: calc( 50% + 2px ); }
html.menu body > header ul.menu li button span::before { transform: rotate(45deg); top: calc( 50% - 2px ); }
html.menu body > header ul.menu li button span::after { transform: rotate(-45deg); top: calc( 50% - 2px ); }
body > header h1 a img { width: auto; height: 28px; }
body > header ul.links { font-weight: 500; font-size: 10px; display: flex; justify-content: flex-end; }
body > header ul.links li:nth-child(1) { display: none; }
body > header ul.links li a:hover { color: #48DDA6; }

@media only screen and (min-width: 64em) {
	body > header { width: 54.38vw; padding: 0.94vw 1.04vw; border-radius: 1.88vw; top: 1.41vw; left: calc( 50% - ( 54.38vw / 2 ) ); }
	body > header ul.menu li button { width: 1.3vw; height: 1.3vw; }
	body > header ul.menu li button span::before,
	body > header ul.menu li button span::after { height: 0.16vw; border-radius: 0.16vw; }
	body > header ul.menu li button span::before { top: calc( 50% + 0.16vw ); }
	body > header ul.menu li button span::after { bottom: calc( 50% + 0.16vw ); }
	html.menu body > header ul.menu li button span::before { top: calc( 50% - 0.16vw ); }
	html.menu body > header ul.menu li button span::after { top: calc( 50% - 0.16vw ); }
	body > header h1 a img { height: 1.88vw; }
	body > header ul.links { font-size: var(--fluid-8-16); gap: 2.313em; }
	body > header ul.links li:nth-child(1) { display: inline-block; }
}

html.menu { overflow: hidden; }
body > .menu-overlay { width: 100%; height: 100%; position: fixed; top: 0; left: 0; backdrop-filter: blur(9px) brightness(115%); display: none; z-index: 48; }
body > .menu { width: calc( 100% - 14px - 14px ); background: #F2F2F1; border-radius: 36px; position: fixed; top: 16px; left: 14px; display: none; z-index: 49; }
body > .menu .wrap { padding: 180px 25px 25px; }
body > .menu nav ul { font-weight: 500; font-size: 24px; display: flex; flex-direction: column; gap: 12px; }
body > .menu nav ul li a:hover { color: #48DDA6; }
body > .menu .contact { padding: 56px 0 0; }
body > .menu .contact p { width: 240px; font-size: 12px; line-height: 15px; }
body > .menu .contact ul { margin: 20px 0 0; display: flex; flex-direction: column; gap: 7px; }
body > .menu .contact ul li a { padding: 11px 15px 6px; font-weight: 500; font-size: 16px; background: #FFFFFF; border-radius: 16px; display: inline-flex; }
body > .menu .contact ul li a:hover { color: #FFFFFF; background: #004F59; }

@media only screen and (min-width: 64em) {
	body > .menu { width: 54.38vw; border-radius: 1.88vw; top: 1.41vw; left: calc( 50% - ( 54.38vw / 2 ) ); }
	body > .menu .wrap { padding: 8.7vw 1.56vw 2.08vw 2.03vw; display: grid; grid-template-columns: 1fr 18.65vw; align-items: end; }
	body > .menu nav ul { font-size: var(--fluid-18-36); gap: 0.444em; }
	body > .menu .contact { padding: 0; }
	body > .menu .contact p { width: 100%; font-size: var(--fluid-8-16); line-height: 1.250; }
	body > .menu .contact ul { margin: 1.93vw 0 0; gap: 0.36vw; }
	body > .menu .contact ul li a { padding: 0.625em 0.938em 0.375em; font-size: var(--fluid-8-16); border-radius: 1em; }
}

main .btn { font-weight: 500; font-size: 12px; background: none; border: 0; -moz-appearance: none; -webkit-appearance: none; appearance: none; display: inline-flex; gap: 2px; }
main .btn span { height: 33px; color: #FFFFFF; background: #004F59; border-radius: 23px; text-align: center; display: flex; justify-content: center; align-items: center; }
main .btn:hover span { color: #004F59; background: #FFFFFF; }
main .btn span:nth-child(1) { width: 33px; }
main .btn span:nth-child(1) svg { width: auto; height: 16px; }
main .btn span:nth-child(1) svg g { transition: fill 0.4s ease; }
main .btn:hover span:nth-child(1) svg g { fill: #004F59; }
main .btn span:nth-child(2) { padding: 2px 14px 0; }

@media only screen and (min-width: 64em) {
	main .btn { font-size: var(--fluid-10-20); gap: 0.100em; }
	main .btn span { height: 2.300em; }
	main .btn span:nth-child(1) { width: 2.300em; }
	main .btn span:nth-child(1) svg { height: 1.150em; }
	main .btn span:nth-child(2) { padding: 0.200em 0.900em 0; }
}

main > .image-banner { overflow: hidden; z-index: 2; }
main > .image-banner figure { padding: 100px 0 0; position: relative; z-index: 1; }
main > .image-banner figure img { width: 100%; height: 844px; object-fit: cover; object-position: 30% 50%; }
main > .image-banner::after { width: 1072px; height: 693px; position: absolute; left: -660px; top: -146px; background: url(images/image-banner-s.svg) no-repeat 50% 50% / contain; content: " "; display: block; z-index: 2; }
main > .image-banner .text { width: 320px; padding: 163px 14px; position: absolute; top: 0; left: 0; color: #FFFFFF; z-index: 3; }
main > .image-banner .text p { font-family: "Lustria", serif; font-size: 30px; line-height: 34px; letter-spacing: -0.02em; text-wrap: balance; }
main > .image-banner .text p strong { font-weight: 400; color: #48DDA6; }
main > .image-banner .text ul { margin: 25px 0 0; }
main > .image-banner .text ul li .btn span { color: #004F59; background: #FFFFFF; }
main > .image-banner .text ul li .btn:hover span { color: #FFFFFF; background: #004F59; }
main > .image-banner .text ul li .btn span:nth-child(1) svg g { fill: #004F59; }
main > .image-banner .text ul li .btn:hover span:nth-child(1) svg g { fill: #FFFFFF; }

@media only screen and (min-width: 64em) {
	main > .image-banner { overflow: visible; }
	main > .image-banner figure { padding: 0 0 0 19.32vw; }
	main > .image-banner figure img { height: 56.25vw; object-position: 50% 50%; }
	main > .image-banner::after { width: 153.59vw; height: 99.38vw; left: -94.11vw; top: -26.93vw; }
	main > .image-banner .text { width: 41.98vw; padding: 22.71vw 5.05vw; }
	main > .image-banner .text p { font-size: var(--fluid-28-54); line-height: 1.037; }
	main > .image-banner .text ul { margin: 3.65vw 0 0; }
}

main > .text-overview-1 { background: rgba(72, 221, 166, 0.2); overflow: hidden; }
main > .text-overview-1 .wrap { padding: 71px 51px 76px 15px; }
main > .text-overview-1::before { width: 325px; height: 334px; background: url(images/text-overview-1-s.svg) no-repeat 50% 50% / contain; opacity: 0.2; position: absolute; bottom: -18px; right: -74px; pointer-events: none; content: " "; display: block; }
main > .text-overview-1 h2 { font-family: "Lustria", serif; font-size: 24px; line-height: 27px; letter-spacing: -0.02em;  position: relative; }
main > .text-overview-1 p { margin: 19px 0 0; padding: 0 35px 0 0; font-size: 16px; line-height: 19px; position: relative; }
main > .text-overview-1 h2 + p { margin-top: 16px; }
main > .text-overview-1 p:only-child { margin: 0; font-family: "Lustria", serif; font-size: 24px; line-height: 27px; letter-spacing: -0.02em; }
main > .text-overview-1 ul { margin: 24px 0 0; position: relative; }
main > .text-overview-1 ul li .btn span { color: #004F59; background: #FFFFFF; }
main > .text-overview-1 ul li .btn:hover span { color: #FFFFFF; background: #004F59; }
main > .text-overview-1 ul li .btn span:nth-child(1) svg g { fill: #004F59; }
main > .text-overview-1 ul li .btn:hover span:nth-child(1) svg g { fill: #FFFFFF; }

@media only screen and (min-width: 64em) {
	main > .text-overview-1 .wrap { padding: 16.25vw 42.76vw 17.5vw 5.21vw; }
	main > .text-overview-1::before { width: 54.43vw; height: 55.94vw; bottom: -6.77vw; right: -3.02vw; }
	main > .text-overview-1 h2 { font-size: var(--fluid-32-60); line-height: 1.100; }
	main > .text-overview-1 p { width: 24.167em; margin: 1.167em 0 0; padding: 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .text-overview-1 h2 + p { margin-top: 0.833em; }
	main > .text-overview-1 p:only-child { width: 16.267em; margin: 0; font-size: var(--fluid-32-60); line-height: 1.100; }
	main > .text-overview-1 ul { margin: 3.23vw 0 0; }
}

main > .text-overview-2 { color: #FFFFFF; background: #004F59; }
main > .text-overview-2 .wrap { padding: 32px 86px 33px 15px; }
main > .text-overview-2 p { margin: 15px 0 0; font-size: 12px; line-height: 15px; }
main > .text-overview-2 p:first-child { margin: 0; }
main > .text-overview-2 ul { margin: 22px 0 0; position: relative; }
main > .text-overview-2 ul li .btn span { color: #004F59; background: #FFFFFF; }
main > .text-overview-2 ul li .btn:hover span { color: #004F59; background: #E4F8EE; }
main > .text-overview-2 ul li .btn span:nth-child(1) svg g { fill: #004F59; }
main > .text-overview-2 ul li .btn:hover span:nth-child(1) svg g { fill: #004F59; }

@media only screen and (min-width: 64em) {
	main > .text-overview-2 .wrap { padding: 3.13vw 61.2vw 3.44vw 5.21vw; }
	main > .text-overview-2 p { margin: 1.167em 0 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .text-overview-2 p:first-child { margin: 0; }
	main > .text-overview-2 ul { margin: 2.71vw 0 0; }
}

main > .calculator { padding: 0 0 54px; }
main > .calculator .heading { padding: 0 63px; text-align: center; }
main > .calculator .heading h2 { font-family: "Lustria", serif; font-size: 24px; line-height: 27px; letter-spacing: -0.02em; }
main > .calculator .heading p { margin: 15px 0 0; font-size: 12px; line-height: 15px; }
main > .calculator .heading h2 + p { margin-top: 26px; }
main > .calculator .embed { padding: 36px 0 0; }
main > .calculator .embed::after { background: #F0F0F0; padding: 0.5em 1em; font-weight: 500; font-size: 12px; line-height: 15px; text-align: center; content: "Calculator embed to go here"; display: block; }
main > .calculator .note { padding: 34px 63px 0; }
main > .calculator .note p { margin: 15px 0 0; font-size: 12px; line-height: 15px; }
main > .calculator .note p:first-child { margin: 0; }

@media only screen and (min-width: 64em) {
	main > .calculator { padding: 0 0 9.58vw; }
	main > .calculator .heading { padding: 0 35.52vw; }
	main > .calculator .heading h2 { font-size: var(--fluid-18-36); line-height: 1.278; }
	main > .calculator .heading p { margin: 1.167em 0 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .calculator .heading h2 + p { margin-top: 1.750em; }
	main > .calculator .embed { padding: 3.02vw 0 0; }
	main > .calculator .note { padding: 3.33vw 35.52vw 0; }
	main > .calculator .note p { margin: 1.250em 0 0; font-size: var(--fluid-8-16); line-height: 1.250; }
	main > .calculator .note p:first-child { margin: 0; }
}

main > .tracker { padding: 19px 17px; }
main > .tracker .box { padding: 28px 62px 22px 19px; color: #FFFFFF; background: #004F59; border-radius: 20px; overflow: hidden; }
main > .tracker .box::before { width: 512px; height: 526px; background: url(images/tracker-s.svg) no-repeat 50% 50% / contain; opacity: 0.2; position: absolute; top: calc( 50% - ( 526px / 2 ) ); left: calc( 50% - ( 512px / 2 ) ); pointer-events: none; content: " "; display: block; }
main > .tracker figure img { width: auto; height: 120px; }
main > .tracker .text { padding: 108px 0 0; }
main > .tracker .text a { color: #FFFFFF; text-decoration: underline; }
main > .tracker .text a:hover { text-decoration-color: rgba(0, 79, 89, 0); }
main > .tracker .text h2 { font-family: "Lustria", serif; font-size: 24px; line-height: 28px; letter-spacing: -0.02em; }
main > .tracker .text p { margin: 15px 0 0; font-size: 12px; line-height: 15px; }
main > .tracker .text h2 + p { margin-top: 42px; }

@media only screen and (min-width: 64em) {
	main > .tracker { padding: 7.29vw; }
	main > .tracker .box { padding: 13.85vw 2.92vw 2.6vw 8.65vw; border-radius: 1.04vw; }
	main > .tracker .box::before { width: 79.58vw; height: 81.82vw; top: calc( 50% - ( 81.82vw / 2 ) ); left: calc( 50% - ( 79.58vw / 2 ) ); transform: rotate(30deg); }
	main > .tracker figure img { height: 16.67vw; }
	main > .tracker .text { padding: 0 0 0 43.54vw; }
	main > .tracker .text h2 { font-size: var(--fluid-18-36); line-height: 0.778; }
	main > .tracker .text p { margin: 1.167em 0 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .tracker .text h2 + p { margin-top: 2.417em; }
}

main > .downloads { padding: 60px 17px 20px; }
main > .downloads .header h2 { font-family: "Lustria", serif; font-size: 24px; line-height: 28px; letter-spacing: -0.02em; }
main > .downloads .grid { margin: 26px 0 0; display: grid; grid-template-columns: 1fr; gap: 16px; }
main > .downloads .grid .download { padding: 48px 12px 12px 8px; height: 292px; color: #FFFFFF; background: #004F59; border-radius: 12px; overflow: hidden; display: grid; grid-template-columns: 200px 1fr; grid-template-rows: 1fr auto; }
main > .downloads .grid .download:before { width: 426px; height: 438px; background: url(images/downloads-s.svg) no-repeat 50% 50% / contain; opacity: 0.2; position: absolute; top: calc( 50% - ( 438px / 2 ) ); left: calc( 50% - ( 426px / 2 ) ); pointer-events: none; content: " "; display: block; }
main > .downloads .grid .download h3 { font-family: "Lustria", serif; font-size: 24px; line-height: 28px; letter-spacing: -0.02em; text-wrap: balance; position: relative; grid-column: 1 / span 2; grid-row: 1; }
main > .downloads .grid .download .text { position: relative; grid-column: 1; grid-row: 2; }
main > .downloads .grid .download .text p { font-size: 12px; line-height: 15px; }
main > .downloads .grid .download ul { position: relative; grid-column: 2; grid-row: 2; align-self: end; justify-self: end; }
main > .downloads .grid .download ul li a { padding: 12px 13px 9px; font-weight: 500; font-size: 12px; background: #FFFFFF; border-radius: 23px; display: inline-flex; }

@media only screen and (min-width: 64em) {
	main > .downloads { padding: 5.1vw 2.08vw 3.02vw; }
	main > .downloads .header h2 { font-size: var(--fluid-38-72); line-height: 1.292; }
	main > .downloads .grid { margin: 4.27vw 0 0; grid-template-columns: 1fr 1fr 1fr; gap: 1.35vw; }
	main > .downloads .grid .download { padding: 4.06vw 0.94vw 0.94vw 0.73vw; height: 25.47vw; border-radius: 0.63vw; grid-template-columns: 16.67vw 1fr; }
	main > .downloads .grid .download:before { width: 37.24vw; height: 38.28vw; top: calc( 50% - ( 38.28vw / 2 ) ); left: calc( 50% - ( 37.24vw / 2 ) ); }
	main > .downloads .grid .download h3 { font-size: var(--fluid-18-36); line-height: 1.333; }
	main > .downloads .grid .download .text p { font-size: var(--fluid-8-16); line-height: 1.250; }
	main > .downloads .grid .download ul li a { padding: 0.625em 1.375em 0.375em; font-size: var(--fluid-8-16); border-radius: 1.000em; }
}

main > .services { padding: 62px 14px 78px; }
main > .services .box { background: #F2F2F1; border-radius: 15px; }
main > .services .header { padding: 18px 98px 0 23px; }
main > .services .header h2 { font-family: "Lustria", serif; font-size: 32px; line-height: 35px; letter-spacing: -0.02em; }
main > .services .header p { margin: 53px 0 0; font-size: 16px; line-height: 19px; }
main > .services .links { padding: 52px 18px 18px; display: grid; grid-template-columns: 1fr; gap: 14px; }
main > .services .links .link figure { border-radius: 15px; position: relative; display: block; overflow: hidden; }
main > .services .links .link figure img { width: 100%; height: 252px; object-fit: cover; }
main > .services .links .link figure::after { width: 100%; height: 100%; background: #000000; opacity: 0.2; position: absolute; top: 0; left: 0; content: " "; display: block; }
main > .services .links .link h3 { width: 100%; padding: 15px 19px; font-size: 16px; color: #FFFFFF; position: absolute; top: 0; left: 0; }
main > .services .links .link ul { position: absolute; bottom: 17px; left: 19px; }
main > .services .links .link ul li a { padding: 12px 13px 9px; font-weight: 500; font-size: 12px; color: #004F59; background: #FFFFFF; border-radius: 23px; display: inline-flex; }
main > .services .links .link ul li a:hover { color: #FFFFFF; background: #004F59; }

@media only screen and (min-width: 64em) {
	main > .services { padding: 7.71vw 7.29vw 6.77vw; }
	main > .services .box { border-radius: 1.04vw; }
	main > .services .header { padding: 2.29vw 6.41vw 0 2.86vw; display: grid; grid-template-columns: 1fr 22.24vw; gap: 26.04vw; }
	main > .services .header h2 { font-size: var(--fluid-38-72); line-height: 1.042; }
	main > .services .header p { margin: 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .services .links { padding: 6.82vw 2.86vw 2.86vw; grid-template-columns: 1fr 1fr 1fr; gap: 1.2vw; }
	main > .services .links .link figure { border-radius: 1.04vw; }
	main > .services .links .link figure img { height: auto; }
	main > .services .links .link h3 { padding: 1.063em 1.250em; font-size: var(--fluid-16-32); }
	main > .services .links .link ul { bottom: 1.46vw; left: 1.67vw; }
	main > .services .links .link ul li a { padding: 1.000em 2.050em 0.800em; font-size: var(--fluid-10-20); border-radius: 1.400em; }
}

main > .promo-banner figure { position: relative; display: block; }
main > .promo-banner figure::before { width: 100%; height: 100%; background: #000000; opacity: 0.48; position: absolute; top: 0; left: 0; content: " "; display: block; z-index: 2; }
main > .promo-banner figure::after { width: 100%; height: 391px; background: linear-gradient(0deg,rgba(0, 79, 89, 1) 0%, rgba(0, 79, 89, 0) 100%); position: absolute; bottom: 0; left: 0; content: " "; display: block; z-index: 3; }
main > .promo-banner figure img { width: 100%; height: 675px; object-fit: cover; object-position: 80% 50%; position: relative; z-index: 1; }
main > .promo-banner .text { width: 100%; padding: 46px 136px 0 14px; color: #FFFFFF; position: absolute; top: 0; left: 0; }
main > .promo-banner .text p { margin: 19px 0 0; font-size: 16px; line-height: 19px; }
main > .promo-banner .text p:first-child { margin: 0; font-family: "Lustria", serif; font-size: 24px; line-height: 26px; letter-spacing: -0.02em; }
main > .promo-banner .text p:first-child + p { margin-top: 28px; }

@media only screen and (min-width: 64em) {
	main > .promo-banner figure::after { height: 33.39vw; }
	main > .promo-banner figure img { height: 57.14vw; object-position: 50% 50%; }
	main > .promo-banner .text { height: 100%; padding: 0 29.84vw; text-align: center; display: flex; flex-direction: column; justify-content: center; align-items: center; }
	main > .promo-banner .text p { margin: 1.167em 5.375em 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .promo-banner .text p:first-child { margin: 0; font-size: var(--fluid-28-54); line-height: 1.074; }
	main > .promo-banner .text p:first-child + p { margin-top: 2.833em; }
}

main > .image-header figure { width: 100%; position: absolute; top: 0; left: 0; z-index: 1; }
main > .image-header figure::before { width: 100%; height: 100%; background: #000000; opacity: 0.46; position: absolute; top: 0; left: 0; content: " "; display: block; z-index: 2; }
main > .image-header figure::after { width: 100%; height: 315px; background: linear-gradient(0deg,rgba(0, 79, 89, 1) 0%, rgba(0, 79, 89, 0) 100%); position: absolute; bottom: 0; left: 0; content: " "; display: block; z-index: 3; }
main > .image-header figure img { width: 100%; height: 100vh; object-fit: cover; position: relative; z-index: 1; }
main > .image-header .heading { padding: 132px 14px; height: 100vh; color: #FFFFFF; position: relative; z-index: 2; }
main > .image-header .heading h1 { width: 250px; font-family: "Lustria", serif; font-size: 36px; line-height: 38px; letter-spacing: -0.02em; }
main > .image-header .block { padding: 30px 50px 94px 15px; color: #FFFFFF; background: #004F59; overflow: hidden; }
main > .image-header .block::before { width: 389px; height: 400px; background: url(images/image-header-s.svg) no-repeat 50% 50% / contain; opacity: 0.2; position: absolute; bottom: -50px; left: calc( 50% - 133px ); pointer-events: none; content: " "; display: block; }
main > .image-header .block .text-1 { position: relative; }
main > .image-header .block .text-1 p { margin: 27px 0 0; font-family: "Lustria", serif; font-size: 24px; line-height: 27px; letter-spacing: -0.02em; text-wrap: balance; }
main > .image-header .block .text-1 p:first-child { margin: 0; }
main > .image-header .block .text-2 { padding: 26px 86px 0 0; position: relative; }
main > .image-header .block .text-2 p { margin: 19px 0 0; font-size: 16px; line-height: 19px; }
main > .image-header .block .text-2 p:first-child { margin: 0; }

@media only screen and (min-width: 64em) {
	main > .image-header figure::before { opacity: 0.37; }
	main > .image-header figure::after { height: 33.39vw; }
	main > .image-header .heading { padding: 14.79vw 5.1vw; }
	main > .image-header .heading h1 { width: 9.000em; font-size: var(--fluid-52-100); line-height: 1.060; }
	main > .image-header .block { padding: 0 49.38vw 6.41vw 5.1vw; }
	main > .image-header .block::before { width: 33.33vw; height: 34.27vw; bottom: -4.38vw; left: auto; right: -4.38vw; }
	main > .image-header .block .text-1 p { margin: 1.125em 0 0; font-size: var(--fluid-25-48); line-height: 1.125; }
	main > .image-header .block .text-1 p:first-child { margin: 0; }
	main > .image-header .block .text-2 { padding: 2.4vw 16.98vw 0 0; }
	main > .image-header .block .text-2 p { margin: 1.167em 0 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .image-header .block .text-2 p:first-child { margin: 0; }
}

main > .accordion { padding: 80px 15px 72px; }
main > .accordion .heading h2 { width: 75%; font-family: "Lustria", serif; font-size: 32px; line-height: 36px; letter-spacing: -0.02em; text-wrap: balance; }
main > .accordion .heading p { margin: 19px 0 0; padding: 0 122px 0 0; font-size: 16px; line-height: 19px; }
main > .accordion .accordions { margin: 24px 0 0; border-bottom: 1px solid #004F59; }
main > .accordion .accordions h3 { padding: 12px 0; font-size: 16px; line-height: 19px; border-top: 1px solid #004F59; cursor: pointer; position: relative; }
main > .accordion .accordions h3 span { width: 29px; height: 29px; background: #004F59; border-radius: 50%; position: absolute; top: 6px; right: 0; }
main > .accordion .accordions h3 span::before,
main > .accordion .accordions h3 span::after { width: 7px; height: 1px; background: #FFFFFF; position: absolute; top: calc( 50% - ( 1px / 2 ) ); left: calc( 50% - ( 7px / 2 ) ); transition: transform 0.4s ease; content: " "; display: block; }
main > .accordion .accordions h3 span::after { transform: rotate(90deg); }
main > .accordion .accordions h3.open span::after { transform: rotate(0); }
main > .accordion .accordions .text { padding: 9px 78px 37px 0; display: none; }
main > .accordion .accordions .text p { margin: 15px 0 0; font-size: 12px; line-height: 15px; }
main > .accordion .accordions .text p:first-child { margin: 0; }
main > .accordion .info-text { padding: 30px 142px 0 0; }
main > .accordion .info-text p { margin: 15px 0 0; font-size: 12px; line-height: 15px; }
main > .accordion .info-text p:first-child { margin: 0; }

@media only screen and (min-width: 64em) {
	main > .accordion { padding: 8.23vw 7.29vw 12.4vw 5.1vw; }
	main > .accordion .heading h2 { width: 50%; font-size: var(--fluid-52-100); line-height: 1.100; }
	main > .accordion .heading p { width: 18.750em; margin: 1.875em 0 0; padding: 0; font-size: var(--fluid-16-32); line-height: 1.063; }
	main > .accordion .accordions { margin: 5.89vw 0 0 36.41vw; }
	main > .accordion .accordions h3 { padding: 0.781em 0 0.469em; font-size: var(--fluid-16-32); line-height: 1.063; }
	main > .accordion .accordions h3 span { width: 1.500em; height: 1.500em; top: 0.438em; }
	main > .accordion .accordions h3 span::before,
	main > .accordion .accordions h3 span::after { width: 0.344em; height: 0.063em; top: calc( 50% - ( 0.063em / 2 ) ); left: calc( 50% - ( 0.344em / 2 ) ); }
	main > .accordion .accordions .text { padding: 1.98vw 14.01vw 3.75vw 0; }
	main > .accordion .accordions .text p { margin: 1.167em 0 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .accordion .accordions .text p:first-child { margin: 0; }
	main > .accordion .info-text { padding: 3.75vw 15.31vw 0 36.41vw; }
	main > .accordion .info-text p { margin: 1.167em 0 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .accordion .info-text p:first-child { margin: 0; }
}

main > .team { padding: 115px 14px 97px; }
main > .accordion + .team { padding-top: 0; }
main > .team .wrap { padding: 18px 18px 27px; background: #F2F2F1; border-radius: 15px; }
main > .team .heading h2 { width: 50%; font-family: "Lustria", serif; font-size: 32px; line-height: 35px; letter-spacing: -0.02em; text-wrap: balance; }
main > .team:first-child .heading h2 { width: 100%; }
main > .team .listing { margin: 114px 0 0; display: grid; grid-template-columns: 1fr; gap: 21px; }
main > .team .listing .article { perspective: 500px; }
main > .team .listing .article .front { cursor: pointer; }
main > .team .listing .article .card,
main > .team .listing .article .text { perspective: 500px; transition: transform 2s; transform-style: preserve-3d; }
main > .team .listing .article.active .card,
main > .team .listing .article.active .text { transform: rotateY( 180deg ); transition: transform 1s; }
main > .team .listing .article .card .front { backface-visibility: hidden; }
main > .team .listing .article .card .front figure img { width: 100%; height: auto; border-radius: 12px; }
main > .team .listing .article .card .front figure span { padding: 12px 13px 9px; font-weight: 500; font-size: 12px; color: #004F59; background: #FFFFFF; border-radius: 23px; position: absolute; bottom: 13px; right: 13px; display: inline-flex; }
main > .team .listing .article .card .back { width: 100%; height: 100%; padding: 45px 19px 16px 27px; background: #D0EEE2; border-radius: 12px; position: absolute; top: 0; left: 0; display: flex; flex-direction: column; transform: rotateY( 180deg ); backface-visibility: hidden; }
main > .team .listing .article .card .back h3 { font-weight: 500; font-size: 12px; line-height: 16px; }
main > .team .listing .article .card .back p { font-family: "Lustria", serif; font-size: 14px; line-height: 16px; letter-spacing: -0.02em; }
main > .team .listing .article .card .back ul.contacts { margin: 30px 0 0; font-weight: 500; font-size: 12px; display: flex; flex-direction: column; gap: 9px; }
main > .team .listing .article .card .back ul.contacts li a { padding: 9px 15px 6px; background: #FFFFFF; border-radius: 16px; display: inline-flex; }
main > .team .listing .article .card .back ul.contacts li a:hover { color: #FFFFFF; background: #004F59; }
main > .team .listing .article .card .back ul.button { margin: auto 0 0; justify-self: end; align-self: end; }
main > .team .listing .article .card .back ul.button .btn span { color: #004F59; background: #FFFFFF; }
main > .team .listing .article .card .back ul.button .btn span:nth-child(1) svg g { fill: #004F59; }
main > .team .listing .article .card .back ul.button .btn:hover span { color: #FFFFFF; background: #004F59; }
main > .team .listing .article .card .back ul.button .btn:hover span:nth-child(1) svg g { fill: #FFFFFF; }
main > .team .listing .article .text .front { padding: 14px 19px 0; }
main > .team .listing .article .text .front h3 { font-weight: 500; font-size: 12px; line-height: 16px; }
main > .team .listing .article .text .front p { font-family: "Lustria", serif; font-size: 14px; line-height: 16px; letter-spacing: -0.02em; }
main > .team .listing .article .text .back { width: 100%; height: 100%; position: absolute; top: 0; left: 0; background: #F2F2F1; transform: rotateY( 180deg ); backface-visibility: hidden; }

main > .team.highlight { padding: 0; }
main > .team.highlight .wrap { padding: 60px 17px 86px; color: #FFFFFF; background: #004F59; border-radius: 0; }
main > .team.highlight .heading h2 { font-size: 20px; line-height: 1; display: flex; align-items: center; gap: 10px; }
main > .team.highlight .heading h2 img { width: auto; height: 33px; }
main > .team.highlight .heading p { margin: 54px 0 0; font-size: 20px; line-height: 23px; }
main > .team.highlight .listing .article .card .back { color: #004F59; }
main > .team.highlight .listing .article .text .back { background: #004F59; }

@media only screen and (min-width: 64em) {
	main > .team { padding: 12.4vw 7.29vw 8.33vw; }
	main > .accordion + .team { padding-top: 0; }
	main > .team .wrap { padding: 2.29vw 2.81vw 5.05vw; border-radius: 1.04vw; }
	main > .team .heading h2 { width: 25%; font-size: var(--fluid-38-72); line-height: 1.042; min-height: 2.083em; }
	main > .team .listing { margin: 4.58vw 0 0; grid-template-columns: 1fr 1fr 1fr; gap: 5.1vw 0.99vw; }
	main > .team .listing .article .card .front figure img { border-radius: 20px; }
	main > .team .listing .article .card .front figure span { padding: 0.625em 1.375em 0.375em; font-size: var(--fluid-8-16); border-radius: 1.000em; bottom: 0.94vw; right: 0.94vw; }
	main > .team .listing .article .card .back { padding: 6.88vw 1.04vw 1.04vw 1.35vw; border-radius: 1.04vw; }
	main > .team .listing .article .card .back h3 { font-size: var(--fluid-8-16); line-height: 1.250; }
	main > .team .listing .article .card .back p { font-size: var(--fluid-10-20); line-height: 1.300; }
	main > .team .listing .article .card .back ul.contacts { margin: 1.375em 0 0; font-size: var(--fluid-8-16); gap: 0.438em; }
	main > .team .listing .article .card .back ul.contacts li a { padding: 0.625em 0.938em 0.375em; border-radius: 1.000em; }
	main > .team .listing .article .text .front { padding: 1.72vw 1.41vw 0; }
	main > .team .listing .article .text .front h3 { font-size: var(--fluid-8-16); line-height: 1.250; }
	main > .team .listing .article .text .front p { font-size: var(--fluid-10-20); line-height: 1.300; }

	main > .team.highlight { padding: 0; }
	main > .team.highlight .wrap { padding: 10.1vw 5.1vw 6.56vw; border-radius: 0; }
	main > .team.highlight .heading { display: grid; grid-template-columns: 1fr 59.58vw; }
	main > .team.highlight .heading h2 { width: 100%; font-size: var(--fluid-16-32); line-height: 1; gap: 0.625; align-self: start; }
	main > .team.highlight .heading h2 img { height: 1.625em; }
	main > .team.highlight .heading p { margin: 0; font-size: var(--fluid-20-40); line-height: 1.125; }
}

:root {
--fluid-8-16: clamp(0.5rem, -0.0714rem + 0.8929vw, 1rem);
--fluid-10-20: clamp(0.625rem, -0.0893rem + 1.1161vw, 1.25rem);
--fluid-12-24: clamp(0.75rem, -0.1071rem + 1.3393vw, 1.5rem);
--fluid-14-28: clamp(0.875rem, -0.125rem + 1.5625vw, 1.75rem);
--fluid-16-32: clamp(1rem, -0.1429rem + 1.7857vw, 2rem);
--fluid-18-36: clamp(1.125rem, 0.6648rem + 2.0455vw, 2.25rem);
--fluid-20-40: clamp(1.25rem, -0.1786rem + 2.2321vw, 2.5rem);
--fluid-25-48: clamp(1.5625rem, -0.0804rem + 2.567vw, 3rem);
--fluid-28-54: clamp(1.75rem, -0.1071rem + 2.9018vw, 3.375rem);
--fluid-32-60: clamp(2rem, 0rem + 3.125vw, 3.75rem);
--fluid-38-72: clamp(2.375rem, -0.0536rem + 3.7946vw, 4.5rem);
--fluid-52-100: clamp(3.25rem, -0.1786rem + 5.3571vw, 6.25rem);
}

main > .text-banner { padding: 85px 45px 68px 17px; }
main > .text-banner p { font-size: 20px; line-height: 23px; }
main > .text-banner ul { margin: 40px 0 0; }

@media only screen and (min-width: 64em) {
	main > .text-banner { padding: 6.35vw 3.33vw 15.31vw 2.86vw; display: grid; grid-template-columns: 60.05vw 1fr; }
	main > .text-banner p { font-size: var(--fluid-32-60); line-height: 1.100; }
	main > .text-banner ul { margin: 0; justify-self: end; align-self: end; }
}

main > .team-member { padding: 98px 19px 24px; }
main > .team-member figure img { width: 100%; height: auto; border-radius: 12px; }
main > .team-member .header { padding: 28px 0 0; }
main > .team-member .header h1 { font-family: "Lustria", serif; font-size: 32px; line-height: 41px; letter-spacing: -0.02em; }
main > .team-member .header p { margin: 6px 0 0; font-size: 16px; line-height: 22px; }
main > .team-member .header ul { margin: 16px 0 0; font-size: 16px; line-height: 22px; }
main > .team-member .quote { padding: 60px 0 0; }
main > .team-member .quote blockquote { position: relative; display: block; }
main > .team-member .quote blockquote::before { font-family: "Lustria", serif; font-size: 72px; position: absolute; top: 0; left: 0; content: "“"; display: block; }
main > .team-member .quote blockquote q { padding: 48px 0 0; font-family: "Lustria", serif; font-size: 14px; line-height: 16px; letter-spacing: -0.02em; quotes: none; display: block; }
main > .team-member .text { padding: 42px 0 0; }
main > .team-member .text p { margin: 19px 0 0; font-weight: 500; font-size: 16px; line-height: 19px; }
main > .team-member .text p:first-child { margin: 0; }
main > .team-member .text ul.button { margin: 22px 0 0; }

@media only screen and (min-width: 64em) {
	main > .team-member { padding: 9.32vw 5.1vw 2.86vw 5.1vw; display: grid; grid-template-columns: 1fr 52.86vw; gap: 9.06vw 7.81vw; }
	main > .team-member figure { grid-column: 2; grid-row: 1; }
	main > .team-member figure img { border-radius: 1.04vw; }
	main > .team-member .header { padding: 0; grid-column: 1; grid-row: 1; align-self: center; }
	main > .team-member .header h1 { font-size: var(--fluid-38-72); line-height: 1.292; }
	main > .team-member .header p { margin: 0.500em 0 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .team-member .header ul { margin: 1.625em 0 0; font-size: var(--fluid-8-16); line-height: 1.375; }
	main > .team-member .quote { padding: 0; grid-column: 1; grid-row: 2; }
	main > .team-member .quote blockquote::before { font-size: var(--fluid-38-72); top: -0.694em; }
	main > .team-member .quote blockquote q { padding: 0.250em 0 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .team-member .text { padding: 0 8.33vw 0 0; }
	main > .team-member .text p { margin: 1.143em 0 0; font-size: var(--fluid-14-28); line-height: 1.143; }
	main > .team-member .text p:first-child { margin: 0; }
	main > .team-member .text ul.button { margin: 4.27vw 0 0; }
}

main > .contact { background: #004F59; }
main > .contact .wrap { padding: 115px 14px 58px; }
main > .contact .wrap .box { padding: 27px 10px 36px; background: #F2F2F1; border-radius: 15px; }
main > .contact .header h1 { font-family: "Lustria", serif; font-size: 32px; line-height: 36px; letter-spacing: -0.02em; }
main > .contact .form { padding: 60px 0 0; }
main > .contact .form h2 { padding: 0 0 10px; font-size: 20px; border-bottom: 1px solid rgba(0, 79, 89, 0.6); }
main > .contact .form .gform_fields { padding: 46px 0 0; display: grid; grid-template-columns: 1fr; gap: 35px; }
main > .contact .form .gform_fields div.gfield > label { display: none; }
main > .contact .form .gform_fields div.gfield .ginput_container input[type="text"],
main > .contact .form .gform_fields div.gfield .ginput_container input[type="email"],
main > .contact .form .gform_fields div.gfield .ginput_container textarea { width: 100%; padding: 5px 0; font-size: 16px; line-height: 18px; background: none; border: 0; border-bottom: 1px solid rgba(0, 79, 89, 0.6); }
main > .contact .form .gform_fields div.gfield .ginput_container textarea { height: 224px; }
main > .contact .form .gform_fields div.gfield .ginput_container textarea.medium { height: 128px; }
main > .contact .form .gform_footer { padding: 36px 0 0; text-align: center; }
main > .contact .text { padding: 82px 0 0; }
main > .contact .text h2 { padding: 0 0 10px; font-size: 20px; border-bottom: 1px solid rgba(0, 79, 89, 0.6); }
main > .contact .text p { margin: 15px 0 0; padding: 0 140px 0 0; font-size: 12px; line-height: 15px; }
main > .contact .text h2 + p { margin: 58px 0 0; padding: 0 100px 0 0; font-size: 16px; line-height: 18px; }
main > .contact .text ul { margin: 44px 0 0; font-weight: 500; font-size: 16px; display: flex; flex-direction: column; gap: 7px; }
main > .contact .text ul li a { padding: 11px 15px 6px; background: #FFFFFF; border-radius: 16px; display: inline-flex; }
main > .contact .text ul li a:hover { color: #FFFFFF; background: #004F59; }

@media only screen and (min-width: 64em) {
	main > .contact .wrap { padding: 6.88vw 2.08vw 2.08vw; }
	main > .contact .wrap .box { padding: 4.17vw 3.02vw 2.34vw; border-radius: 1.09vw; display: grid; grid-template-columns: 43.23vw 1fr; gap: 10.21vw 3.33vw; }
	main > .contact .header { grid-column: span 2; }
	main > .contact .header h1 { font-size: var(--fluid-38-72); line-height: 1; }
	main > .contact .form { padding: 0; }
	main > .contact .form h2 { padding: 0 0 0.719em; font-size: var(--fluid-16-32); }
	main > .contact .form .gform_fields { padding: 3.85vw 0 0; gap: 2.29vw; }
	main > .contact .form .gform_fields div.gfield .ginput_container input[type="text"],
	main > .contact .form .gform_fields div.gfield .ginput_container input[type="email"],
	main > .contact .form .gform_fields div.gfield .ginput_container textarea { padding: 0.375em 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .contact .form .gform_fields div.gfield .ginput_container textarea { height: 12.417em; }
	main > .contact .form .gform_fields div.gfield .ginput_container textarea.medium { height: 6.667em; }
	main > .contact .form .gform_footer { padding: 3.33vw 0 0; text-align: left; }
	main > .contact .text { padding: 0; }
	main > .contact .text h2 { padding: 0 0 0.719em; font-size: var(--fluid-16-32); }
	main > .contact .text p { margin: 1.250em 0 0; padding: 0 29.500em 0 0; font-size: var(--fluid-8-16); line-height: 1.250; }
	main > .contact .text h2 + p { margin: 3.250em 0 0; padding: 0 16.417em 0 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .contact .text ul { margin: 2.375em 0 0; font-size: var(--fluid-8-16); gap: 0.438; }
	main > .contact .text ul li a { padding: 0.625em 0.938em 0.375em; border-radius: 1.000em; }
}

main > .legal { padding: 140px 24px 100px; }
main > .legal .header h1 { font-family: "Lustria", serif; font-size: 32px; line-height: 36px; letter-spacing: -0.02em; }
main > .legal .text { padding: 45px 0 0; }
main > .legal .text h2 { margin: 20px 0 0; font-size: 16px; line-height: 14px; }
main > .legal .text h2:first-child { margin: 0; }
main > .legal .text p { margin: 15px 0 0; font-size: 12px; line-height: 15px; }
main > .legal .text p:first-child { margin: 0; }
main > .legal .text h2 + p { margin-top: 16px; }

@media only screen and (min-width: 64em) {
	main > .legal { padding: 14.06vw 15.26vw 19.58vw 5.1vw; }
	main > .legal .header h1 { width: 6.150em; font-size: var(--fluid-52-100); line-height: 1.060; }
	main > .legal .text { padding: 7.29vw 0 0 36.41vw; }
	main > .legal .text h2 { margin: 4.500em 0 0; font-size: var(--fluid-16-32); line-height: 1.250; }
	main > .legal .text h2:first-child { margin: 0; }
	main > .legal .text p { margin: 1.167em 0 0; font-size: var(--fluid-12-24); line-height: 1.167; }
	main > .legal .text p:first-child { margin: 0; }
	main > .legal .text h2 + p { margin-top: 2.083em; }
}

body > footer { color: #FFFFFF; background: #004F59; overflow: hidden; }
body > footer::before { width: 964px; height: 991px; background: url(images/ftr.svg) no-repeat 50% 50% / contain; opacity: 0.2; position: absolute; top: 60px; left: calc( 50% - 634px ); transform: rotate(68deg); pointer-events: none; content: " "; display: block; }
body > footer a { color: #FFFFFF; text-decoration: underline; text-decoration-color: rgba(0, 79, 89, 1); }
body > footer a:hover { text-decoration-color: #FFFFFF; }
body > footer .header { border-bottom: 1px solid #FFFFFF; }
body > footer .header .wrap { padding: 25px 17px; }
body > footer .header p a { position: relative; display: inline-block; }
body > footer .header p a img { width: auto; height: 60px; }
body > footer .block .wrap { padding: 22px 17px; }
body > footer .block .contact { padding: 0 102px 0 0; }
body > footer .block .contact h2 { padding: 0 38px 0 0; font-family: "Lustria", serif; font-size: 24px; line-height: 26px; letter-spacing: -0.02em; }
body > footer .block .contact p { margin: 30px 0 0; font-size: 16px; line-height: 20px; }
body > footer .block .contact p a { text-decoration-color: #FFFFFF; }
body > footer .block .contact p a:hover { text-decoration-color: rgba(0, 79, 89, 1); }
body > footer .block .links h2 { font-family: "Lustria", serif; font-size: 20px; line-height: 24px; letter-spacing: -0.02em; text-wrap: balance; }
body > footer .block .links ul { margin: 27px 0 0; font-size: 16px; line-height: 26px; }
body > footer .block .links.sitemap { padding: 66px 0 0; }
body > footer .block .links.legal { padding: 29px 0 0; }
body > footer .block .logo { padding: 32px 0 0; }
body > footer .block .logo img { width: auto; height: 104px; }
body > footer .block .terms { padding: 15px 0 0; }
body > footer .block .terms p { margin: 12px 0 0; font-size: 10px; line-height: 12px; }
body > footer .block .terms p:first-child { margin: 0; }
body > footer .block .copyright { padding: 10px 0 0; }
body > footer .block .copyright ul { font-size: 10px; line-height: 12px; display: flex; gap: 23px; }

@media only screen and (min-width: 1024px) {
	body > footer::before { width: 83.59vw; height: 85.94vw; top: -3.13vw; left: calc( 50% - 44.17vw ); }
	body > footer .header .wrap { padding: 2.6vw 3.13vw; }
	body > footer .header p a img { height: 5.73vw; }
	body > footer .block .wrap { padding: 1.67vw 5.26vw 1.25vw 3.28vw; display: grid; grid-template-columns: 12.24vw 1fr 25.78vw; }
	body > footer .block .contact { padding: 0; grid-column: 3; grid-row: 1; }
	body > footer .block .contact h2 { padding: 0; font-size: var(--fluid-25-48); line-height: 1.125; }
	body > footer .block .contact p { margin: 1.800em 0 0; font-size: var(--fluid-10-20); line-height: 1.200; text-wrap: balance; }
	body > footer .block .links h2 { font-size: var(--fluid-10-20); line-height: 1.400; }
	body > footer .block .links ul { margin: 1.625em 0 0; font-size: var(--fluid-8-16); line-height: 1.625; }
	body > footer .block .links.sitemap { padding: 0; grid-column: 1; grid-row: 1; }
	body > footer .block .links.legal { padding: 0; grid-column: 2; grid-row: 1; }
	body > footer .block .logo { padding: 12.86vw 0 0; grid-column: 1 / span 3; grid-row: 2; }
	body > footer .block .logo img { height: 6.25vw; }
	body > footer .block .terms { padding: 1.46vw 0 0; grid-column: 1 / span 2; grid-row: 3; }
	body > footer .block .terms p { width: 43.188em; margin: 1.250em 0 0; font-size: var(--fluid-8-16); line-height: 1.250; }
	body > footer .block .terms p:first-child { margin: 0; }
	body > footer .block .copyright { padding: 0; grid-column: 3; grid-row: 3; align-self: end; }
	body > footer .block .copyright ul { font-size: var(--fluid-8-16); line-height: 1.250; gap: 2.500em; }
}