@font-face {
    font-family: 'High Summit';
    src: url('../fonts/HighSummit.woff2') format('woff2'),
        url('../fonts/HighSummit.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Berlin Sans FB';
    src: url('../fonts/BerlinSansFB-Bold.woff2') format('woff2'),
        url('../fonts/BerlinSansFB-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Berlin Sans FB';
    src: url('../fonts/BerlinSansFB-Reg.woff2') format('woff2'),
        url('../fonts/BerlinSansFB-Reg.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

:root {
    --orange: #FF7C32;
    --orange-accent: #FFC3A1;
    --black: #262626;
    --red: #FF6565;
    --grey: #888;
    --light-green: #D9F1E1;
    --light-yellow: #FFFAEF;
}

::selection { background: var(--orange); color: #fff; }
.blue-wall ::selection { background: #fff; color: var(--orange); }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: initial; } }
body { font-family: 'Inter'; color: var(--black); }
body.modal-open { overflow: hidden; }

h1 { font-weight: 400; font-family: 'Berlin Sans FB'; font-size: 3rem; color: var(--black); line-height: 1.4; margin-bottom: 0.25em; }
h2 { font-weight: 400; font-family: 'Berlin Sans FB'; font-size: 3rem; color: var(--black); line-height: 1.4; margin-bottom: 0.5em; }
h3 { font-weight: 400; font-family: 'Berlin Sans FB'; font-size: 1.25rem; line-height: 1.4; margin-bottom: 0.5em; }

[role="doc-subtitle"] { color: var(--orange-accent); font-family: 'High Summit'; font-size: 3.5rem; }
.h2-subtitle[role="doc-subtitle"] { font-family: 'Inter'; font-size: 1.5rem; font-weight: 300; letter-spacing: 0.2em; color: var(--black); }
.h2-subtitle[role="doc-subtitle"] .pronounced-text,
.h2-subtitle[role="doc-subtitle"] em { color: var(--orange-accent); font-style: inherit; }

hr { border-top: none; opacity: 1; }
hr::after { content: url('../images/stylized-line-break.svg'); display: inline-block; height: 30px; width: 100px; }

h2.title-small { font-size: 1.5rem; }

p,
ul { line-height: 1.8; color: var(--grey); }
a { color: var(--orange); }
a:hover { color: #109ABF; }

ul { list-style: none; padding-left: 0; }
ul li { position: relative; padding-left: 1.5rem; margin-bottom: 0.5rem; }
ul li::before { content: "\ea30"; font-family: "Phosphor-Bold"; position: absolute; left: 0; color: var(--orange-accent); }

blockquote { font-size: 1.5rem; font-weight: 200; margin: 1.5rem; position: relative; margin-top: 150px; margin-bottom: 175px; }
blockquote * { color: var(--grey); line-height: 1.8; font-style: normal; }
blockquote strong { font-weight: 600; }
blockquote::before { content: "“"; left: 0; top: 0; }
blockquote::after { content: "”"; right: 0; top: 100%; transform: translateY(8rem); }
blockquote::before,
blockquote::after { font-family: 'Berlin Sans FB'; font-weight: 400; color: var(--orange-accent); position: absolute; font-size: 20rem; line-height: 0; pointer-events: none; opacity: 0.6; } /* FONT BERLIN MAKEN */

.btn-primary { background: none; color: var(--black); border: 1px solid var(--black); }
.btn-primary:hover { background: #FFC3A1; border-color: #FFC3A1; color: #fff; }
.btn-primary:active,
.btn-primary:focus { background: var(--orange); color: #fff; border-color: var(--orange); }
.btn-primary:focus-visible { background: var(--orange); color: #fff; border-color: var(--orange); box-shadow: 0 0 0 0.25rem rgba(255 124 50 / 20%); }
.btn-primary:active:focus:focus-visible { background: var(--orange); }

.btn-secondary { background: #FFDECC; color: #fff; border: 1px solid #fff; }
.btn-secondary:hover { background: #FFC3A1; border-color: #FFC3A1; color: #fff; }
.btn-secondary:active,
.btn-secondary:focus { background: var(--orange); color: #fff; border-color: var(--orange); }
.btn-secondary:focus-visible { background: var(--orange); color: #fff; border-color: var(--orange); box-shadow: 0 0 0 0.25rem rgba(255 124 50 / 20%); }
.btn-secondary:active:focus:focus-visible { background: var(--orange); }

.btn-tertiary { background: #fff; color: var(--black); }
.btn-tertiary:hover { background: var(--black); color: #fff; }
.btn-tertiary:active,
.btn-tertiary:focus { background: #0e1218; box-shadow: 0 0 0 0.25rem rgb(14 18 24 / 10%); color: #fff; }
.btn-tertiary:active:focus { background: #0b1016; }

.center-title { text-align: center; max-width: 720px; margin: 0 auto 3rem; }
.text-center { text-align: center; }

nav { position: fixed; top: 0; width: 100%; z-index: 5; border-bottom: 1px solid transparent; transition: background 0.3s, border-bottom-color 0.3s; }
nav .container { max-width: 1600px; }
nav .nav-wrap { display: flex; align-items: center; padding: 15px 0 15px; transition: padding 0.3s, border-bottom-color 0.3s, box-shadow 0.3s; }
nav .logo-wrap { margin-right: 25px; }
nav menu.nav-items { display: flex; list-style: none; padding-left: 0; margin-bottom: 0; font-weight: 500; }
nav menu.nav-items li { margin-left: 1rem; }
nav menu.nav-items li.hidden-in-nav { display: none; }
nav menu.nav-items li:first-child { margin-left: 0; }
nav menu.nav-items a { color: var(--black); text-decoration: none; font-size: 1rem; padding: 0.5em; transition: color 0.3s; }
nav menu.nav-items a[aria-current] { color: var(--orange) }
nav menu.nav-items a:hover { text-decoration: underline; }
nav.scroll-nav { background: #fff; border-bottom-color: var(--orange); box-shadow: 0 2px 20px rgba(255 195 161 / 30%); }
nav.scroll-nav .nav-wrap { padding-top: 15px; padding-bottom: 10px; border-bottom-color: transparent; }
nav button.menu-toggle { width: 2rem; height: 2rem; border-radius: 5px; padding: 0.5rem 0.375rem; display: none; flex-direction: column; justify-content: space-between; background: var(--orange); color: #fff; border: none; outline: none; transition: background 0.3s; }
nav button.menu-toggle:hover { cursor: pointer; background: #FFC3A1; }
nav button.menu-toggle:active,
nav button.menu-toggle:focus { background: var(--orange); color: #fff; border-color: var(--orange); box-shadow: 0 0 0 0.25rem rgba(255 124 50 / 20%); }
nav button.menu-toggle:active:focus { background: var(--orange); }
nav button.menu-toggle .hamburger-line { border-top: 2px solid #fff; width: 100%; }

header { --container-width: 1200px; --img-width: 360px; --half-img: calc(var(--img-width) / 2); --img-offset: 50px; --padding-gutter: 0.75rem; position: relative; background: #F9F9F9; padding-top: 140px; padding-bottom: 100px; }
header::after { content: ''; position: absolute; width: calc(calc(50% - calc(var(--img-offset)) - var(--half-img)) - var(--padding-gutter)); height: 100%; right: 0; top: 0; background: var(--light-green); z-index: 0; }
header .container { height: 100%; }
header .header-column { display: flex; flex-direction: column; justify-content: center; z-index: 1; }
header .header-content p { font-size: 1.25rem; }
header .img-wrap { width: var(--img-width); margin-left: var(--img-offset); }
header .img-wrap img { border-radius: 20px; }


main { scroll-margin-top: 150px; overflow: hidden; }

.text-img {}
.text-img .row { align-items: center; }
.text-img .img-container { display: flex; justify-content: center; }
.text-img .img-wrap { max-width: 400px; position: relative; }
.text-img .img-holder { overflow: hidden; border: 8px solid #fff; border-radius: 20px; }
.text-img .img-wrap::after { content: url('../images/pseudo-blob.svg'); width: 130%; position: absolute; top: 50%; left: 50%; transform: translate(-45%,-50%); z-index: -1; }
.text-img .content-wrap {  }
.text-img .content-wrap p { color: var(--grey); margin-bottom: 1.5em; }

.services { padding-top: 60px; }
.services > .row { background: #FAFAFA; }
.services .img-holder { margin-top: -135px; overflow: hidden; border-radius: 20px 0 0 20px; }
.services h3 { font-size: 2.75rem; }
.services ul { list-style: none; padding: 0; margin-bottom: 4rem; }
.services ul li { font-size: 2rem; position: relative; padding-left: 2rem; line-height: 1.2; margin-bottom: 0.75em; }
.services ul li a { color: var(--black); text-decoration: none; position: relative; z-index: 1; display: inline-block; }
.services ul li a::before { content: ''; position: absolute; width: 100%; bottom: 0; height: 75%; background: var(--orange-accent); z-index: -1; opacity: 0.3; transform: scaleY(0); transform-origin: bottom; transition: transform 0.3s; }
.services ul li a:hover::before { transform: none; }
.services ul li::before { content: '•'; font-family: inherit; color: var(--orange-accent); margin-inline-end: 1rem; position: absolute; left: 0; }

.contact-block { background-color: #FFDECC; padding: 50px 75px; position: relative; z-index: 1; overflow: hidden; border-radius: 10px; display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; }
.contact-block h2 { margin-bottom: 0.3em; }
.contact-block p { line-height: 1.4; color: var(--black); }
.contact-block [role="doc-subtitle"] { position: absolute; text-align: center; left: 50%; transform: translateX(-50%); bottom: -0.4em; z-index: -1; color: #fff; opacity: 0.4; font-size: 6rem; }
.contact-block::before { content: ''; position: absolute; top: -3rem; left: -5rem; width: 18rem; height: 12rem; transform: rotate(10deg); background: #fff; opacity: 0.4; border-radius: 50%; z-index: -1; }
.contact-block::after { content: ''; position: absolute; width: 9rem; height: 9rem; bottom: 0; right: 0; transform: translate(30%, 30%); background: var(--red); opacity: 0.6; border-radius: 50%; z-index: -1; }

.intro-content {  }
.intro-content p { font-size: 1.25rem; color: var(--grey); }

.contact-image { display: flex; justify-content: flex-end; padding-right: 2rem; margin-left: -0.75rem; }
.contact-image picture,
.contact-image img { aspect-ratio: 1; max-height: 700px; width: 1200px; border-radius: 0 20px 20px 0; }

.contact-items { background: var(--light-yellow); padding-top: 1.5rem; padding-bottom: 1.5rem; }
.contact-items .item { display: flex; justify-content: center; align-items: center; flex-direction: column; text-align: center; color: var(--black); text-decoration: none; padding: 20px 0; }
.contact-items .item:hover { color: var(--orange); }
.contact-items .item i { font-size: 2.25rem; margin-bottom: 1rem; }
.contact-items .item span { word-break: break-all; }
.contact-items .col-lg-4:nth-child(2) { border: 1px solid #D9D9D9; border-width: 0 1px; }

.map-wrap {  }
.map-wrap iframe { width: 100%; }

.breadcrumbs-wrap { background: var(--light-yellow); display: flex; justify-content: center; align-items: center; padding-top: 1rem; padding-bottom: 1rem; min-height: 100px; }
.breadcrumbs-wrap ul { margin: 0; padding: 0; list-style: none; }
.breadcrumbs-wrap ul li { display: inline-block; color: var(--black); padding-left: 0; }
.breadcrumbs-wrap ul li::after { content: '/'; margin: 0 10px; }
.breadcrumbs-wrap ul li:last-child::after { display: none; }
.breadcrumbs-wrap ul li::before { display: none; }

.numbered-title { color: var(--orange); font-weight: 700; font-size: 2.5rem; }

.rates {  }
.rates h3 { font-family: 'Inter'; font-size: 1.5rem; margin-bottom: 0; }
.rates h4 { font-size: 1.5rem; color: var(--orange); margin-bottom: 1em; }

.text-img-header {  }
.text-img-header [role="doc-subtitle"] { color: var(--orange); font-size: 5rem; }
.text-img-header p { font-size: 1.25rem; color: var(--black); }
.text-img-header img,
.text-img-header picture { border-radius: 20px; }

.wpcf7-form {  }
.wpcf7-form .wpcf7-form-control-wrap { display: block; }
.wpcf7-form .wpcf7-form-control { width: 100%; border: none; border-bottom: 2px solid #E8E8E8; padding-bottom: 0.5rem; font-size: 0.75rem; font-weight: 500; color: var(--black); transition: border-color 0.3s; }
.wpcf7-form .wpcf7-form-control:focus-visible { outline: none; border-bottom-color: var(--orange); }
.wpcf7-form .wpcf7-not-valid-tip { font-size: 0.75rem; font-style: italic; }
.wpcf7-form .wpcf7-response-output { margin: 0; font-size: 0.75rem; border: none; color: var(--grey); }
.wpcf7-form textarea.wpcf7-form-control { resize: vertical; }
.wpcf7-form input[type="submit"].wpcf7-form-control { display: inline-block; width: auto; padding: 1rem 2rem; background: var(--red); color: #fff; min-width: 125px; font-family: 'Inter'; font-size: 1rem; font-weight: 400; letter-spacing: 0.15ch; line-height: 1; text-align: center; text-decoration: none; vertical-align: middle; cursor: pointer; user-select: none; border: none; border-radius: 100px; transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s; }

ul.wp-block-latest-posts { list-style: none; }
ul.wp-block-latest-posts li { padding: 0; }
ul.wp-block-latest-posts li::before { display: none; }
ul.wp-block-latest-posts .wp-block-latest-posts__featured-image { margin-bottom: 0.5rem; }
ul.wp-block-latest-posts .wp-block-latest-posts__featured-image a { display: block; border-radius: 20px; overflow: hidden; }
ul.wp-block-latest-posts .wp-block-latest-posts__featured-image img { display: block; width: 100%; object-fit: cover; aspect-ratio: 1; transition: transform 0.3s; }
ul.wp-block-latest-posts .wp-block-latest-posts__featured-image a:hover img { transform: scale(1.1) }
ul.wp-block-latest-posts a.wp-block-latest-posts__post-title { font-size: 1.5rem; line-height: 1.4; text-decoration: none; }

.post-wrap {  }
.post-wrap .back-btn-wrap { margin-bottom: 25px; }
.post-wrap .back-btn-wrap .btn i { margin-right: 10px; }
.post-wrap .featured-image-wrap { display: flex; justify-content: center; }
.post-wrap .featured-image-wrap img { border-radius: 20px; }
.post-wrap .posted-by-details { font-size: 1.25rem; margin-bottom: 25px; }


footer { background: #FAFAFA; color: var(--black); }
footer .logo { width: 130px; margin-bottom: 1.5rem; }
footer .footer-content { border-top: 1px solid #fff; border-bottom: 1px solid #fff; padding-top: 75px; padding-bottom: 75px; }
footer .name-wrap { display: flex; align-items: center; }
footer h2 { margin-bottom: 1em; font-family: 'Inter'; font-size: 1.25rem; font-weight: 600; }
footer p { color: var(--black); font-size: 1.25rem; }
footer menu { list-style: none; padding: 0; margin-bottom: 0; }
footer menu li { margin-bottom: 1rem; }
footer a { text-decoration: none; color: var(--black); }
footer a:hover { text-decoration: underline; color: var(--black); }
footer .socials { font-size: 2rem; }
footer .socials a { transition: color 0.3s; }
footer .socials a:hover { color: var(--orange); text-decoration: none; }
footer .endpage { text-align: center; padding: 2rem 0; border-top: 1px solid #E8E8E8; color: #6D6D6D; }
footer .endpage a { text-decoration: underline; }
footer .endpage a:hover { color: var(--orange); }

.mobile-menu { position: fixed; top: 0; left: 0; width: 100%; height: 100%; overflow-x: hidden; overflow-y: auto; z-index: 10; display: none; }
.mobile-menu .modal-content { width: 100%; height: 100%; background: var(--orange); transform: translateX(100%); opacity: 0; transition: transform 0.3s, opacity 0.3s; }
.mobile-menu .modal-head { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 1rem; }
.mobile-menu .modal-head .filler { width: calc(12px + 2rem); }
.mobile-menu .close-btn { border: none; background: none; padding: 1rem; }
.mobile-menu .close-btn:hover { cursor: pointer; opacity: 0.6; }
.mobile-menu .close-btn svg { width: 0.75rem; }
.mobile-menu .close-btn svg path { fill: #fff; }
.mobile-menu .logo-wrap { display: flex; justify-content: center; padding: 0 0.75rem; margin-top: 1rem; }
.mobile-menu .logo-wrap svg { width: 100px; }
.mobile-menu .logo-wrap svg path { fill: #fff; }
.mobile-menu menu { list-style: none; padding: 0; margin: 0 auto; max-width: 720px; }
.mobile-menu menu li {  }
.mobile-menu menu li.hidden-in-nav { display: none; }
.mobile-menu menu li a { font-weight: 600; font-size: 2rem; line-height: 1; padding: 0.75rem 1rem; color: #fff; text-decoration: none; display: block; transition: transform 0.3s, opacity 0.3s; }
.mobile-menu menu li a:hover { transform: translateX(0.25rem); opacity: 0.6; }
.mobile-menu.active { display: block; }
.mobile-menu.active .modal-content { transform: none; opacity: 1; }

@media only screen and (max-width: 1599px) {
    h1 { font-size: 2.5rem; }

    nav .nav-wrap { padding-top: 20px; }
    /* nav .logo-wrap img { width: 200px; } */
    nav menu.nav-items a { font-size: 1.125rem; }
    nav menu.nav-items li { margin-left: 0.75rem; }

    /* header { max-height: 500px; min-height: 300px; padding-top: 110px; }
    header .background-text { font-size: 6.5rem; } */
}

@media only screen and (max-width: 1399px) {
    h1 { font-size: 2.25rem; }

    [role="doc-subtitle"],
    .text-img-header [role="doc-subtitle"] { font-size: 3rem; }

    blockquote { margin-top: 125px; margin-bottom: 150px; font-size: 1.25rem; }
    blockquote::before,
    blockquote::after { font-size: 15rem; }
    blockquote::after { transform: translateY(6rem); }

    header { --img-width: 320px; }
    header .header-content p { font-size: 1.125rem; }

    .services h3 { font-size: 2.5rem; }
    .services ul li { font-size: 1.5rem; }

    footer .logo { width: 100px; }

    /* header { max-height: 400px; min-height: 250px; }
    header .background-text { font-size: 5.5rem; } */
}

@media only screen and (max-width: 1199px) {
    h1 { font-size: 2rem; }
    h2 { font-size: 2rem; }

    [role="doc-subtitle"],
    .text-img-header [role="doc-subtitle"] { font-size: 2.5rem; }

    header { --img-width: 300px; }
    header .header-content p { font-size: 1rem; }

    .contact-block [role="doc-subtitle"] { font-size: 4.5rem; }

    .intro-content p { font-size: 1rem; }

    footer p { font-size: 1.125rem; }
}

@media only screen and (max-width: 991px) {
    h1 { font-size: 1.875rem; }

    [role="doc-subtitle"],
    .text-img-header [role="doc-subtitle"] { font-size: 2rem; }

    blockquote { margin-top: 100px; margin-bottom: 100px; }
    blockquote::before,
    blockquote::after { font-size: 10rem; }
    blockquote::after { transform: translateY(4rem); }

    nav menu.nav-items { display: none; }
    nav button.menu-toggle { display: flex; margin-left: auto; }

    .services h3 { font-size: 2.125rem; }
    .services ul li { font-size: 1.125rem; }

    .contact-items { padding-top: 0; padding-bottom: 0; }
    .contact-items .col-lg-4 { padding: 0 50px; }
    .contact-items .col-lg-4:nth-child(2) { border-width: 0; }
    .contact-items .col-lg-4:nth-child(2) .item { border: 1px solid #D9D9D9; border-width: 1px 0; }

    .text-img-header p { font-size: 1rem; }

    footer .column-logo,
    footer .column-info { margin-bottom: 1rem; }
    footer .footer-content { padding-top: 25px; padding-bottom: 25px; }
    footer .name-wrap { margin-bottom: 25px; }
}

@media only screen and (max-width: 767px) {
    h1 { font-size: 1.75rem; }
    h2 { font-size: 1.875rem; }
    h3 { font-size: 1.125rem; }
    h2.title-small { font-size: 1.25rem; }

    hr::after { height: 20px; width: 75px; }

    .center-title { margin-bottom: 2rem; }

    blockquote { font-size: 1.125rem; }

    nav .nav-wrap { padding-top: 15px; padding-bottom: 10px; }
    nav.scroll-nav .nav-wrap { padding-top: 10px; padding-bottom: 7px; }

    header { padding-top: 75px; padding-bottom: 75px; }
    header::after { display: none; }
    header .header-column { display: block }
    header .img-wrap { width: calc(100% + 1.5rem); margin: 0 -0.75rem 1rem; }
    header .img-wrap img,
    header .img-wrap picture { height: 50vw; width: 100%; border-radius: 0; }

    .text-img .img-container { margin-bottom: 25px; }

    .img-text .col-md-6:nth-child(1) { order: 2; }
    .img-text .col-md-6:nth-child(2) { order: 1; }

    .services { padding-top: 0; }
    .services ul { margin-bottom: 2rem; }
    .services .img-holder { margin-top: 0; border-radius: 0; }

    .contact-block { padding: 40px 30px; }
    .contact-block [role="doc-subtitle"] { font-size: 3rem; }

    .contact-image { margin-left: 0; padding-right: 0; }
    .contact-image picture,
    .contact-image img { border-radius: 20px; }

    footer .endpage { font-size: 0.875rem; padding: 0.875rem 0; flex-direction: column; justify-content: flex-start; }
    footer .endpage .endpage-left { margin-bottom: 0.5rem; }
    footer .endpage menu li::after { margin: 0 0.25rem; }

    .mobile-menu .logo-wrap img { width: 200px; }
    .mobile-menu menu { max-width: 540px; }
    .mobile-menu menu li a { font-size: 1.5rem; }
}

@media only screen and (max-width: 575px) {
    h2 { font-size: 1.5rem; }

    .center-title { text-align: left; }

    header { padding-bottom: 50px; }

    .h2-subtitle[role="doc-subtitle"] { font-size: 1.25rem; }

    .services h3 { font-size: 1.875rem; }
    .services ul li { font-size: 1rem; }

    footer .footer-content menu a { text-decoration: underline; }
    footer .footer-content menu a:hover { text-decoration: none; opacity: 0.8; }
    footer p { font-size: 1rem; }
    footer .logo { width: 80px; }

    .mobile-menu .logo-wrap img { width: 150px; }
    .mobile-menu menu { max-width: 100%; }
    .mobile-menu menu li a { font-size: 1.25rem; }
}

@media only screen and (max-width: 479px) {
    body { font-size: 0.875rem; }
    h3 { font-size: 1rem; }
    p { font-size: 0.875rem; }
    input,
    textarea { font-size: 0.875rem; }

    blockquote { margin-top: 75px; margin-bottom: 75px; }
    blockquote p,
    blockquote { font-size: 1rem; margin-left: 0; margin-right: 0; }

    header.mbot-100 { padding-bottom: 25px; margin-bottom: 25px; }
}
