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

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
body { line-height: 1; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }
table { border-collapse: collapse; border-spacing: 0; }
strong, b { font-weight: 700; }
i { font-style: italic; }
* { -webkit-margin-before: 0; -webkit-margin-after: 0; box-sizing: border-box; }
.clear { display: block; clear: both; }
textarea, label, input, select { cursor: pointer; }
img { width: auto; height: auto; max-width: 100%; }
sup { vertical-align: super; font-size: smaller; }

@font-face {
    font-family: 'msc';
    src: url('../fonts/msc/msc.eot?36074904');
    src: url('../fonts/msc/msc.eot?36074904#iefix') format('embedded-opentype'),
         url('../fonts/msc/msc.woff2?36074904') format('woff2'),
         url('../fonts/msc/msc.woff?36074904') format('woff'),
         url('../fonts/msc/msc.ttf?36074904') format('truetype'),
         url('../fonts/msc/msc.svg?36074904#msc') format('svg');
    font-weight: normal;
    font-style: normal;
}
[class^="icon-"]:before, [class*=" icon-"]:before { font-family: "msc"; font-style: normal; font-weight: normal; text-decoration: inherit; width: 1em; text-align: center; font-variant: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.icon-youtube-play:before { content: '\f16a'; }
.icon-instagram-1:before { content: '\f16d'; }
.icon-facebook-squared:before { content: '\f308'; }
.email:before { content: ' '; display: inline-block; background: url( '../images/icons/email.webp' ) no-repeat center/contain; width: 25px; height: 19px; }
.phone:before { content: ' '; display: inline-block; background: url( '../images/icons/phone.webp' ) no-repeat center/contain; width: 18px; height: 18px; }
.mark:before { content: ' '; display: inline-block; background: url( '../images/icons/mark.webp' ) no-repeat center/contain; width: 18px; height: 23px; }

/* General */
body { font-family: 'Muli', 'Arial', sans-serif; background: #f0f7fc url( '../images/bg/bg.webp' ) no-repeat center/cover; padding: 0; }
.container { margin: auto; width: 1200px; max-width: 94%; }
input[type="text"], input[type="tel"], input[type="date"], input[type="email"], textarea, select { letter-spacing: .75px; font: 10.5pt/1.1 'Open Sans', 'Arial', sans-serif; padding: 10px 15px; border: 0; background: #f6ebe7; }
button, [type="submit"] { text-decoration: none; cursor: pointer; padding: 10px 35px; border: 0; font: 700 12pt/1.2 'Open Sans', 'Arial', sans-serif; transition: all .4s }
h2 { font-weight: 700; font-family: 'Muli', sans-serif; font-size: clamp( 19pt, 4.5vw, 42pt ); color: #005183; text-transform: none; letter-spacing: 0; margin: 0; }
h3 { font-weight: 700; text-align: left; color: #005183; max-width: 100%; margin: 0; text-transform: none; letter-spacing: 0; }
.animate { opacity: 0; }
.animate.slide-up { animation: slide-up 1s forwards; }
@keyframes slide-up { 0% { opacity: 0; transform: translateY( 20px ); } 100% { opacity: 1; transform: translateY( 0 ); } }
.slide-up.small-delay { animation-delay: .4s; }
.slide-up.medium-delay { animation-delay: .8s; }
.slide-up.large-delay { animation-delay: 1.2s; }
.slide-up.very-large-delay { animation-delay: 1.6s; }
picture { display: block; cursor: pointer; font-size: 0; }
picture img { width: 100%; }
.container > em { display: flex; align-items: center; border: 2px solid #5c1327; color: #58302f; font: normal 400 clamp( 13pt, 2.5vw, 23pt )/1.5 'Muli', 'Arial', sans-serif; text-transform: uppercase; text-align: center; letter-spacing: 4px; padding: 3px 52px; box-sizing: border-box; min-height: 50px; border-radius: 50px; width: max-content; max-width: 100%; margin: 0 auto 45px; }

/* Sign Up */
#sign-up { position: relative; padding: 121px 0 0; }
#sign-up > div { background: url( '../images/bg/sign-up.webp' ) no-repeat center/cover; width: 1111px; max-width: 100%; height: 724px; margin: 0 0 137px; padding: 50px 20px 20px 50px; border-radius: 25px; }
#sign-up section { position: absolute; right: 0; bottom: -30px; background: #fff; width: 640px; max-width: 100%; border-radius: 25px; box-sizing: border-box; padding: 55px 42px; box-shadow: 0 0 10px #09365233; }
#sign-up h2 { font-weight: 400; font-size: clamp( 17pt, 5vw, 33pt ); line-height: 1.3; color: #fff; margin: 0; }
#sign-up h3 { color: #005183; margin: 0 0 34px; font: 700 clamp( 15pt, 4vw, 28pt )/1.1 'Muli', sans-serif; }
#sign-up form { display: inline-block; vertical-align: top; }
#sign-up form div { float: left; width: 48%; margin: 0 20px 22px 0; }
#sign-up form div:nth-of-type( even ) { margin: 0; }
#sign-up label { display: block; font-size: 10pt; color: #444142; margin: 0 0 7px; }
#sign-up input, #sign-up select { border: 2px solid #ccc; background: 0; border-radius: 0; width: 100%; height: 34px; padding: 5px 15px; }
#sign-up button { font: 8pt 'Muli', 'Arial', sans-serif; background: #005183; color: #fff; text-transform: uppercase; letter-spacing: 3px; border-radius: 0; padding: 13px 15px; margin: 13px 0 0; width: 48%; }
#sign-up button:hover, #promotion button:hover { background: #015d96; color: #fff; }
#sign-up small { display: block; color: #4e5359; font: 500 clamp( 12pt, 2.5vw, 18pt ) 'Muli', 'Arial', sans-serif; margin: 25px 0 0; }

/* Intro */
#intro { padding: 0 0 163px; }
#intro h2 { color: #005183; text-align: center; margin: 0 0 57px; }
#intro h2 span { display: block; font: clamp( 40pt, 7vw, 79pt ) 'Bonheur Royale', cursive; background: linear-gradient( to right, #0972b3 0%, #0972b3 50%, #005183 100% ); -webkit-background-clip: text; -webkit-text-fill-color: transparent; text-transform: none; width: 490px; max-width: 100%; margin: auto; }
#intro > div { display: flex; align-items: flex-start; justify-content: center; gap: 25px; }
#intro > div div:first-of-type { width: clamp( 300px, 40vw, 433px ); max-width: 100%; }
#intro > div div:last-of-type { width: calc( 100% - 458px ); max-width: 100%; }
#intro h3 { font: 700 clamp( 14pt, 3vw, 24pt )/1.4 'Montserrat', sans-serif; text-transform: uppercase; background: linear-gradient( to top, #0972b3 0%, #005183 100% ); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin: 0; }
#intro div p { display: flex; flex-wrap: nowrap; gap: 11px; font: italic 600 clamp( 13pt, 2.5vw, 16pt ) 'Muli', 'Arial', sans-serif; color: #737373; padding: 5px 0; }
#intro div p:before { content: ' '; display: inline-block; height: 2px; width: 63px; background: #737373; margin: 12px 0 0; }
#intro > p { font-size: clamp( 13pt, 3vw, 24pt ); color: #005183; margin: 34px 0 15px; }
#intro > p i { font: inherit; font-style: italic; font-weight: 700; }
#intro > p span { display: inline-block; background: url( '../images/icons/intro-5x.webp' ) no-repeat center/contain; text-indent: -9999px; width: clamp( 70px, 10vw, 106px ); aspect-ratio: 1.606; vertical-align: bottom; }
#intro section { display: flex; gap: 34px; flex-wrap: nowrap; }
#intro section ul { width: clamp( 190px, 25vw, 228px ); max-width: 100%; margin: 30px 0 0; }
#intro section li { font: 400 clamp( 12pt, 2.5vw, 16pt ) 'Muli', 'Arial', sans-serif; color: #8f8f8f; border: 1px solid #8f8f8f; margin: 0 0 20px; padding: 8px 25px; border-radius: 25px; cursor: pointer; }
#intro section li.active { font-weight: 400; background: #005183; color: #fff; border-color: #005183; }
#intro section li:last-of-type { margin: 0; }
#intro section > div { width: calc( 100% - 262px ); border-radius: 42px; }
#intro section img { border-radius: 42px; }

/* Choose */
#choose { padding: 0 0 130px; }
#choose section { display: grid; grid-template-columns: repeat( 12, minmax( 0, 1fr ) ); gap: 18px 12px; height: 546px; }
#choose section > div { display: flex; align-items: flex-end; background: url( '../images/icons/skin-benefits.webp' ) no-repeat right center/cover; grid-column: span 4 / span 4; border-radius: 22px; padding: 23px 15px 23px 25px; }
#choose section > div:nth-of-type( 2 ) { background-image: url( '../images/icons/radiance.webp' ); grid-column: span 5 / span 5; }
#choose section > div:nth-of-type( 3 ) { background-image: url( '../images/icons/hydration-boost.webp' ); grid-column: span 3 / span 3; grid-row: span 2 / span 2; }
#choose section > div:nth-of-type( 4 ) { background-image: url( '../images/icons/results-basic-facials.webp' ); grid-column: span 5 / span 5; }
#choose section > div:nth-of-type( 5 ) { background-image: url( '../images/icons/exfoliation-power.webp' ); grid-column: span 4 / span 4; }
#choose h3 { display: flex; flex-wrap: nowrap; align-items: flex-end; font-size: clamp( 13pt, 2.5vw, 18pt ); line-height: 1; color: #fff; margin: 0 0 15px; }
#choose h3 span { flex: none; display: inline-block; background: url( '../images/icons/choose-5x.webp' ) no-repeat center/contain; text-indent: -9999px; width: clamp( 50px, 9vw, 72px ); aspect-ratio: 1.5; vertical-align: bottom; margin: 0 0 -5px; }
#choose section > div:nth-of-type( 3 ) h3 { align-items: center; }
#choose p { font-size: 13pt; color: #fff; line-height: 1.5; }

/* Recommended */
#recommended { padding: 0 0 126px; }
#recommended > em { margin: 0 auto 76px; }
#recommended ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 35px 20px; }
#recommended li { flex: 0 calc( ( 100% - 40px ) / 3 ); display: flex; align-items: center; gap: 16px; flex-wrap: nowrap; color: #005183; font-weight: 700; font-size: clamp( 12pt, 2.5vw, 18pt ); text-transform: uppercase; }
#recommended li:before { content: ' '; flex: none; display: block; background: url( '../images/icons/busy-professionals.webp' ) no-repeat center/contain; width: clamp( 60px, 10vw, 112px ); aspect-ratio: 1; }
#recommended li:nth-of-type( 2 ):before { background-image: url( '../images/icons/event-goers.webp' ); }
#recommended li:nth-of-type( 3 ):before { background-image: url( '../images/icons/acne-skin.webp' ); }
#recommended li:nth-of-type( 4 ):before { background-image: url( '../images/icons/aging-skin.webp' ); }
#recommended li:nth-of-type( 5 ):before { background-image: url( '../images/icons/dull-skin.webp' ); }

/* Difference */
#difference { padding: 0 0 70px; }
#difference > em { margin: 0 auto 65px; }
#difference h2 { text-align: center; margin: 0; }
#difference img { margin: auto; }

/* Results */
#before-after-slider { width: 100%; position: relative; overflow: hidden; border-radius: 25px; box-shadow: 0 0 10px #09365240; }
#after-image { display: block; background: #fff; }
#after-image img { width: 100%; }
#before-image { position: absolute; height: 100%; width: 50%; top: 0; left: 0; overflow: hidden; z-index: 2; background: #fff; }
#before-image img { max-width: 584px; }
#resizer { position: absolute; display: flex; align-items: center; z-index: 5; top: 0; left: 50%; height: 100%; width: 3px; background: #0972b3; -ms-touch-action: pan-y; touch-action: pan-y; }
#resizer:after { background: #ffffff6f; content: '\276E '' \276F'; display: flex; justify-content: center; align-items: center; color: #0972b3; border: 3px solid #0972b3; font-size: clamp( 12pt, 2.5vw, 14pt ); position: absolute; margin:  0 0 0 -24px; width: 45px; height: 45px; border-radius: 50%; }
#results section { display: grid; grid-template-columns: repeat( auto-fit, minmax( 360.1px, 1fr ) ); gap: 32px; }
#results section > div:first-of-type { font-size: 0; }
#results h2 { font-size: clamp( 19pt, 4.5vw, 31pt ); margin: 0 0 20px; }
#results > em { margin: 0 auto 90px; }
#results h4 { font-weight: 400; font-size: clamp( 14pt, 2.5vw, 19pt ); color: #043d60; text-transform: none; margin: 20px 0 30px; }
#results h3 { font-size: clamp( 15pt, 2.5vw, 23pt ); color: #043d60; }
#results p { color: #787878; font-size: clamp( 12pt, 2.5vw, 14pt ); }
#results ul { width: 100%; max-width: 445px; }
#results li { position: relative; padding: 0 0 36px 39px; }
#results li:last-of-type { margin: 0; }
#results li:before { content: ' '; position: absolute; left: 0; top: 7px; display: block; width: 16px; aspect-ratio: 1; background: #0972b3; border-radius: 50%; }
#results li:after { content: ' '; position: absolute; left: 8px; top: 16px; height: 100%; width: 1px; border-left: 1px dashed #0972b3; }
#results li:last-of-type:after { display: none; }

/* Locations */
#locations { display: flex; flex-wrap: wrap; gap: 31px 8px; justify-content: center; padding: 142px 0 130px; }
#locations h2 { font-size: clamp( 17pt, 3vw, 30pt ); text-align: center; width: 100%; max-width: 100%; margin: 0 0 60px; }
#locations address { background: #e0f0fb; padding: 17px 14px; width: 294px; }
#locations b { display: block; color: #043d60; text-transform: uppercase; margin: 0 0 16px; }
#locations p { display: block; font: 11pt 'Muli', 'Arial', sans-serif; color: #595959; }
#locations p i { display: block; font-style: normal; color: #283249; text-transform: uppercase; }
#locations p span:not( :last-of-type ) { display: block; margin: 0 0 10px }
#locations span p { margin: 0 0 16px; }
#locations a { display: inline-block; font-size: 12pt; color: #043d60; margin: 0 0 12px; text-decoration: none; }
#locations a:before { content: ' '; display: inline-block; vertical-align: middle; background: url( '../images/icons/phone-1.webp' ) no-repeat center/contain; width: 23px; aspect-ratio: 1; margin: 0 5px 0 0; }
#locations a:last-of-type:before { content: ' '; display: inline-block; vertical-align: middle; background: url( '../images/icons/wa.webp' ) no-repeat center/contain; width: 21px; aspect-ratio: 1; }

/* Footer */
footer { background: #fff; padding: 80px 0; }
footer section { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 30px; }
footer svg { margin: 0 0 25px; }
footer p, footer li, footer a { font-size: 12pt; color: #562e2d; text-decoration: none; transition: all .4s; }
footer p { margin: 0 0 15px; }
footer section div:first-of-type { flex: 0 308px; border-right: 1px solid #f2b9ad; }
footer section div:first-of-type ul { display: flex; flex-wrap: nowrap; gap: 13px; }
footer section div:first-of-type i { color: #004770; font-size: 27pt; transition: all .4s; }
footer li { display: flex; flex-wrap: nowrap; align-items: center; margin: 0 0 12px; }
footer li:before { margin: 0 15px 0 0; }
footer section div:not( :first-of-type ) li:has( a ) a { display: flex; flex-wrap: nowrap; align-items: center; width: 100%; gap: 10px }
footer section div:not( :first-of-type ) li:has( a ) a:before { flex: 0 25px; }
footer h3 { font: 20pt/1 'Muli', 'Arial', sans-serif; color: #005087; margin: 0 0 15px; }
footer a:hover, footer section div:first-of-type a:hover i { color: #2477ad; }

@media (max-width: 1050px) {
    footer section { justify-content: center; }
}

@media (max-width: 1040px) {
    #sign-up section { bottom: 0; }

    #locations h2 { margin: 0 0 27px; }
}

@media (max-width: 980px) {
    #choose section { height: auto; width: 600px; max-width: 100%; grid-template-columns: repeat( 9, minmax( 0, 1fr ) ); margin: auto; }
    #choose section > div:nth-of-type( 3 ) { grid-column: span 9 / span 9; grid-row: unset; }

    #locations h2 { margin: 0 0 50px; }
}

@media (max-width: 800px) {
    .container > em { letter-spacing: 2px; }
    
    #sign-up { padding: 80px 0 0; }
    #sign-up h2 { text-align: center; }
    #sign-up section { width: 550px; position: static; margin: auto; padding: 60px 20px; }
    #sign-up > div { padding: 30px 20px; height: auto; margin: 0 0 80px; }
    #sign-up small br { display: none; }

    #intro, #choose, #recommended { padding: 0 0 80px; }
    #intro > div { flex-direction: column; align-items: center; gap: 15px; }
    #intro > div div:nth-of-type( n ) { width: 100%; }
    #intro h3 { text-align: center; }
    #intro h2 { margin: 0 0 30px; }
    #intro > p { margin: 20px 0 15px; }

    #choose h3, #choose p { text-shadow: 0 0 3px #000000d2; }
    #choose section > div:nth-of-type( 3 ) h3, #choose section > div:nth-of-type( 3 ) p { text-shadow: none; }

    #recommended li { flex: 0 calc( ( 100% - 20px ) / 2 ); }

    #results section { grid-template-columns: auto; width: 550px; max-width: 100%; margin: auto; }

    #locations { padding: 50px 0 70px; gap: 18px 8px; }
    #locations h2 { margin: 0 0 10px; }
}

@media (max-width: 700px) {
    #intro section { flex-direction: column; width: 400px; max-width: 100%; margin: auto; gap: 20px; }
    #intro section ul, #intro section > div { width: 100%; }
    #intro section ul { order: 2; margin: 0; }
    #intro section > div { order: 1; }
    #intro section li:not( :last-of-type ) { margin: 0 0 10px; }
    #intro > p { text-align: center; }
    #intro section img { border-radius: 30px; }
}

@media (max-width: 645px) {
    footer section { flex-direction: column; }
    footer section div:first-of-type { flex: auto; border: 0; border-bottom: 1px solid #f2b9ad; }
}

@media (max-width: 616px) {
    #sign-up h2, #sign-up h3 { margin: 0 0 25px; }
    #sign-up section { width: 400px; padding: 40px 20px; }
    #sign-up form { display: block; }
    #sign-up form div:nth-of-type( n ) { float: none; width: 100%; margin: 0 auto 18px; }
    #sign-up > div { padding: 30px 12px; }
    #sign-up button { margin: 7px 0 0; width: 55%; }
}

@media (max-width: 550px) {
    .container > em { margin: 0 auto 30px; line-height: 1.3; letter-spacing: 1px; }
    #results > em, #difference > em, #recommended > em { margin: 0 auto 30px; }
}

@media (max-width: 500px) {
    #sign-up { padding: 50px 0 0; }
    #sign-up > div { margin: 0 0 40px; }

    #intro, #choose, #recommended { padding: 0 0 50px; }

    #choose section { grid-template-columns: auto; }
    #choose section > div:nth-of-type( n ) { grid-column: auto; }
}

@media (max-width: 480px) {
    #recommended li { flex: auto; width: 100%; justify-content: center; }
    #recommended li br { display: none; }

    footer { padding: 50px 0; }
}